:root{font-family:Inter,"Segoe UI",sans-serif;color:#dae5ee;background:#0d151c;color-scheme:dark;font-size:14px}
*{box-sizing:border-box}body{margin:0;height:100dvh;display:flex;flex-direction:column}
button,select{font:inherit;color:inherit;background:#1b2a36;border:1px solid #344955;border-radius:6px;padding:8px 10px}
button{cursor:pointer;white-space:nowrap}button:hover{border-color:#22b4bc;background:#263b49}button:disabled{opacity:.4;cursor:default}
button:focus-visible,select:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid #28c7cc;outline-offset:2px}
button.primary,button[aria-pressed=true]{background:#087f88;border-color:#22b2bc;color:white}
body>header{flex-shrink:0;display:flex;align-items:center;gap:15px;padding:10px 14px;border-bottom:1px solid #2b3b47;background:#14212c;overflow-x:auto;white-space:nowrap}
.brand{display:flex;gap:9px;align-items:center;text-decoration:none;letter-spacing:-.8px;font-size:21px;font-weight:700;color:#e7f0f6}.brand b{color:#26c0c4}.brand small{display:block;color:#8ba1b1;letter-spacing:1.8px;font-size:8px;margin-top:3px}.brand-icon{font-size:28px;color:#26c0c4;border-bottom:2px solid #26c0c4;line-height:24px}
nav{display:flex;align-items:center;gap:4px}nav button,nav select{height:34px;padding:6px 8px;font-size:12px}nav button{min-width:31px}#pack{width:75px}#level{width:112px}.divider{height:22px;border-left:1px solid #344955;margin:0 3px}
main{flex:1;min-height:0;display:flex;overflow:hidden}.stage{flex:1;min-width:0;position:relative;background:#0d1821;overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}
.stage-top{position:absolute;top:20px;left:24px;right:24px;display:flex;justify-content:space-between;pointer-events:none;color:#8ca6b8;font-size:12px;letter-spacing:1px}.stage-top #levelTitle{font-weight:600;color:#c8dbe6}#mode{font-size:10px;border:1px solid #2b4556;background:#122432c9;padding:5px 9px;border-radius:20px}
.stage-bottom{position:absolute;bottom:14px;left:20px;right:20px;display:flex;gap:20px;justify-content:space-between;font-size:11px;color:#8ca5b7;pointer-events:none}.view-tools{position:absolute;bottom:45px;left:20px;display:flex;gap:4px}.view-tools button{width:32px;height:32px;padding:0;background:#152a39d9}
.card-overlay{position:absolute;inset:0;pointer-events:none}
.info-card{position:absolute;left:18px;top:65px;z-index:4;width:245px;max-width:calc(100% - 16px);max-height:calc(100% - 50px);overflow:auto;pointer-events:auto;background:#142936ed;border:1px solid #355567;border-radius:9px;box-shadow:0 8px 25px #0005;backdrop-filter:blur(6px)}
.card-head{display:flex;align-items:center;gap:6px;padding:8px 9px;background:#1b3444;border-bottom:1px solid #355567}
.card-drag-handle{flex:1;min-width:0;text-align:left;white-space:normal;border:0;background:transparent;padding:3px;font-size:12px;font-weight:600;color:#b9e6ea;cursor:grab;touch-action:none}.card-drag-handle:hover{background:transparent}.card-drag-handle:active{cursor:grabbing}
.card-collapse{width:23px;height:23px;padding:0;flex-shrink:0}.collapsed .card-body{display:none}.collapsed .card-head{border-bottom:0}.card-body{padding:13px 15px;font-size:12px}
.budget small,.metrics small{font-size:9px;letter-spacing:1.3px;color:#91a7b5}.budget strong{font-size:25px;display:block;margin:8px 0 10px;font-variant-numeric:tabular-nums;letter-spacing:-1px}.budget span{display:block;font-size:11px;color:#9cb5c4;margin-top:8px}.meter{height:4px;background:#0b1b25;border-radius:4px;overflow:hidden}.meter i{display:block;height:100%;width:0;background:#24c0c4;transition:width .2s}
.metrics{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:17px 0}.metrics b{display:block;font-size:18px;margin-top:5px}.local-note{font-size:10px;line-height:1.6;color:#8fa6b6;margin:12px 0 0}
h2{font-size:12px;margin:14px 0 8px}#simulationCard label{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin:0 0 10px;gap:8px}#simulationCard select{font-size:11px;padding:5px;width:88px}#simulationCard p,.note{color:#9fb7c7;font-size:11px;line-height:1.6}#testStage{color:#4bd5cf}#critical{padding:0;list-style:none;margin:0;font-size:11px;color:#c0d5e0}#critical li{border-top:1px solid #2b4556;padding:6px 0}
.legend p{display:flex;align-items:center;gap:10px;font-size:11px;color:#a4bbc9}.legend .note{display:block}.anchor-dot{width:9px;height:9px;background:#f4c25c;transform:rotate(45deg)}.deck-line{width:18px;height:7px;background:linear-gradient(#35d4c4 0 28%,#142c34 28% 72%,#35d4c4 72% 100%)}.bar-line{width:18px;height:2px;background:#7896ae}.stress-scale{height:5px;border-radius:3px;margin-top:18px;background:linear-gradient(90deg,#f16c62,#768ea2 50%,#47a4ed)}.scale-labels{display:flex;justify-content:space-between;font-size:9px;color:#8ba3b3;margin-top:5px}
#selectionInfo{font-size:12px;color:#aac0ce}#selection .card-body button{font-size:11px;display:block;width:100%;margin-top:7px}
#result{width:350px}#resultTitle{font-size:15px}#result p{font-size:12px;line-height:1.5;color:#b0c8d6}#result .card-body button{font-size:12px;margin:0 4px 5px 0}
footer{flex-shrink:0;display:flex;gap:20px;justify-content:space-between;align-items:center;padding:9px 18px;border-top:1px solid #2b3b47;background:#14212c;font-size:10px;color:#8fa8b8}footer a{color:#88bfc8;text-decoration:none;white-space:nowrap}footer a:hover{text-decoration:underline}#status{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
dialog{color:#d7e5ee;background:#172936;border:1px solid #395767;border-radius:12px;width:min(720px,92vw);max-height:85vh;padding:26px;line-height:1.65;font-size:13px}dialog::backdrop{background:#050e18bd}.dialog-heading{display:flex;justify-content:space-between;align-items:start;gap:10px}.dialog-heading h2{font-size:22px}dialog h3{font-size:15px;color:#2bcccb;margin-top:23px}dialog a{color:#52c7d3}dialog li{margin-bottom:9px}dialog button{font-size:19px;padding:2px 10px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
@media(max-width:1000px){body>header{gap:10px;padding:8px}.brand{font-size:18px}.brand-icon{display:none}nav button{padding:6px}.info-card{width:230px}footer a{font-size:9px}}
@media(max-width:700px){.info-card{width:220px}footer{gap:8px;align-items:start;flex-direction:column;padding:5px 10px}.stage-top{left:12px}.stage-bottom{left:12px;right:12px}#coords{display:none}}
.heat-scale{background:linear-gradient(90deg,rgb(255,216,66),rgb(255,140,32) 50%,rgb(239,68,44))}
.critical-meter{height:8px;margin-top:7px;background:#0a1b26;border:1px solid #355060;border-radius:5px;overflow:hidden}.critical-fill{display:block;height:100%;border-radius:4px;transform-origin:left;animation:effort-fill .7s ease-out both;transition:width .3s ease-out,background-color .3s ease-out}
.tension-summary{margin-top:12px;padding:10px;background:#132a3c;border:1px solid #315777;border-radius:6px;color:#c0dcf2;font-size:11px}.tension-summary small{display:block;margin-top:6px;font-size:10px;color:#9fb7c7}#tensionFill{width:0;background:#5caaf5}
#trainDialog{width:min(360px,92vw)}#trainDialog h2{font-size:18px;margin:0 0 18px}#trainDialog label{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0;font-size:12px}#trainDialog select{width:92px}
@keyframes effort-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.critical-fill{animation:none;transition:none}}
#critical{max-height:220px;overflow-y:auto;scrollbar-width:thin}
.critical-link{display:block;width:100%;padding:0;border:0;border-radius:3px;background:transparent;color:inherit;font:inherit;text-align:left;white-space:normal;line-height:1.5}.critical-link:hover{background:transparent;color:#f2d78c}#critical li:hover,#critical li:focus-within{background:#203846;border-radius:4px}
#result.passed .card-head{background:#17603f}#result.failed .card-head{background:#8a2d33}#result.passed .card-drag-handle,#result.failed .card-drag-handle{color:#fff}
#pack{width:100px}
