*{box-sizing:border-box}
body{margin:0;background:#f7f8f2;color:#29483e;font:14px/1.4 system-ui,'Malgun Gothic',sans-serif;height:100dvh;display:flex;flex-direction:column}
button,select,input{font:inherit;color:inherit}button,select,.file{background:#fff;border:1px solid #ccd5c9;border-radius:7px;padding:9px 12px;cursor:pointer}button:hover,.file:hover{border-color:#467a67;background:#edf2e8}button.primary,button.active{background:#315d4e;color:#fff;border-color:#315d4e}button.big{font-weight:700;padding:11px 18px}button:disabled{opacity:.4;cursor:default}input[type=number]{width:104px;padding:7px;border:1px solid #ccd5c9;border-radius:5px;background:#fff}
header{padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #dce3d6}header h1{font-size:21px;margin:0 0 3px}header p{margin:0;color:#788574;font-size:12px}.total{text-align:right}.total strong{display:block;font-size:26px;letter-spacing:-1px}.total span{font-size:12px;color:#70806b}
#stage{position:relative;flex:1;min-height:300px;overflow:hidden}#stage canvas{display:block;touch-action:none}.view-tools{position:absolute;left:16px;top:12px;display:flex;align-items:center;gap:6px}.view-tools label{font-size:12px}#legend{position:absolute;right:16px;top:14px;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:60%;pointer-events:none}#legend span{padding:4px 7px;background:#ffffffdf;border-radius:5px;font-size:11px;border-left:4px solid var(--color)}#loading{position:absolute;top:40%;left:20px;right:20px;text-align:center}.selection{position:absolute;bottom:9px;left:16px;right:16px;display:flex;align-items:center;gap:8px;pointer-events:none}.selection>*{pointer-events:auto}.selection span{background:#ffffffeb;padding:7px 10px;border-radius:6px;font-size:12px}
.console{padding:10px 20px 14px;max-height:50dvh;overflow:auto;border-top:1px solid #dce3d6;background:#eff3e9;flex-shrink:0}.setup-card{background:#fff;border:1px solid #d4ddcf;border-radius:10px;padding:12px 14px}.setup-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.setup-title div{display:flex;flex-direction:column}.setup-title strong{font-size:16px}.setup-title span{font-size:11px;color:#71806d}.fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:10px}.fields label{display:flex;flex-direction:column;gap:4px;font-size:12px}.main-fields{padding-bottom:10px;border-bottom:1px solid #e0e6db}.department-fields{margin-top:8px}.main-fields label{position:relative}.main-fields small{position:absolute;right:8px;bottom:8px;color:#82907c}.main-fields input{padding-right:25px}#saved{font-size:11px;color:#7b8b74}#status{font-size:12px;margin:7px 2px;min-height:17px;color:#657a58}#status.error,#missing{color:#ac503a}#missing{font-size:11px;margin:6px 0 0}
.sim-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sim-controls label{display:flex;align-items:center;gap:6px;font-size:12px}#clock{font-size:21px;font-variant-numeric:tabular-nums;margin-left:8px}#progress{font-size:12px;color:#60765b}#timeline{width:100%;accent-color:#315d4e;margin:9px 0 3px}.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.metric{border:1px solid #d6dece;border-radius:7px;background:#ffffffb8;padding:8px 12px}.metric span{font-size:11px;display:block;color:#74816b}.metric strong{font-size:20px;display:block;font-weight:600}
details{border-top:1px solid #d6dece;margin-top:10px;padding-top:7px}summary{cursor:pointer;font-weight:600;padding:3px 0;font-size:12px}details p{font-size:12px;color:#708066;margin:8px 0;max-width:1100px}.file input{display:none}.busy{cursor:progress}
@media(max-width:750px){header{padding:9px 12px}header h1{font-size:17px}.total strong{font-size:21px}.console{padding:8px;max-height:56dvh}.setup-card{padding:9px}.setup-title{position:sticky;top:-8px;z-index:3;background:#fff;padding:3px 0 7px}.setup-title span{display:none}.main-fields,.department-fields{gap:7px}.main-fields label,.department-fields label{font-size:10px}.fields input{width:82px}.setup-title button{padding:9px 12px}#stage{min-height:225px}#legend{top:50px;max-width:96%;right:8px;left:8px;justify-content:center;gap:4px}#legend span{font-size:9px}.metrics{grid-template-columns:repeat(3,1fr);gap:4px}.metric{padding:5px 7px}.metric strong{font-size:16px}.metric span{font-size:10px}.view-tools{left:10px;top:8px}.selection{left:10px;right:10px}.selection span{max-width:65%;font-size:10px}button,select,.file{padding:7px 9px;font-size:12px}#progress{font-size:11px}.sim-controls{gap:5px}}
