:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,sans-serif;background:#0b1118;color:#edf4fb}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;overflow:hidden}#viewport{width:100vw;height:100vh}canvas{display:block}.status-card,.toolbox,.legend{position:fixed;z-index:2;border:1px solid rgba(120,157,180,.18);border-radius:.8rem;background:rgba(14,23,33,.58);backdrop-filter:blur(18px) saturate(130%);box-shadow:0 .75rem 2rem #0005}.status-card{top:.65rem;left:.65rem;max-width:min(18rem,calc(100vw - 7.3rem));padding:.65rem .75rem}.status-line{display:flex;align-items:center;gap:.45rem}.status-line strong{font-size:.88rem}.status-card>#status{display:block;margin-top:.16rem;overflow:hidden;color:#dce9f4;font-size:.76rem;white-space:nowrap;text-overflow:ellipsis}.status-detail{display:block;margin-top:.25rem;color:#91a5b8;font-size:.72rem;line-height:1.35}.status-indicator{width:.58rem;height:.58rem;border-radius:50%;background:#8293a3}.status-indicator[data-state="loading"]{background:#f7bf55;animation:pulse 1.2s ease-in-out infinite}.status-indicator[data-state="finished"]{background:#55b6f3}.status-indicator[data-state="failed"]{background:#ef6570}@keyframes pulse{50%{opacity:.4}}.session-meta{display:grid;grid-template-columns:auto 1fr;gap:.2rem .5rem;margin:.48rem 0 0;padding-top:.45rem;border-top:1px solid #294052;font-size:.68rem}.session-meta dt{color:#91a5b8}.session-meta dd{margin:0;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.toolbox{top:.65rem;right:.65rem;display:flex;align-items:center;gap:.32rem;padding:.35rem}.icon-button{display:grid;place-items:center;min-width:2.35rem;min-height:2.35rem;border:0;border-radius:.48rem;background:#394a5c;color:#fff;font:inherit;font-weight:650;text-decoration:none;cursor:pointer}.icon-button svg{width:1.16rem;height:1.16rem;fill:currentColor}.icon-button:hover{background:#506378}.icon-button:disabled{opacity:.38;cursor:not-allowed;pointer-events:none}.primary{background:#287ec4}.primary:hover{background:#3c93dc}.danger{background:#8c3d4b}.secondary{background:#394a5c}.tool-separator{width:1px;height:1.45rem;margin:0 .08rem;background:rgba(141,173,194,.2)}.legend{bottom:.65rem;left:.65rem;display:flex;align-items:center;flex-wrap:wrap;gap:.32rem;padding:.4rem}.layer-toggle{display:flex;align-items:center;gap:.3rem;padding:.34rem .45rem;border:0;border-radius:.38rem;background:rgba(31,52,68,.72);color:#dce8f1;font-size:.72rem;cursor:pointer}.layer-toggle[data-active="false"]{opacity:.35}.layer-toggle:disabled{cursor:not-allowed}.layer-toggle span{width:.55rem;height:.55rem;border-radius:50%;background:var(--layer-color)}.layer-toggle .elevation-dot{background:#00c752}.height-scale{display:flex;align-items:center;gap:.28rem;margin-left:.2rem;color:#91a5b8;font-size:.62rem}.height-scale i{display:block;width:4.8rem;height:.38rem;border-radius:1rem;background:linear-gradient(90deg,#1a33f2,#00d1ff,#00c752,#ffdb00,#ff1f14)}button{font:inherit}button:focus-visible{outline:2px solid #70bdf5;outline-offset:2px}dialog{width:min(27rem,calc(100vw - 1.3rem));border:1px solid #355166;border-radius:.8rem;background:#101a24;color:#edf4fb;box-shadow:0 1rem 3rem #000;padding:1rem}dialog::backdrop{background:#000a}dialog p{margin:.15rem 0 .75rem;color:#a9bac9;font-size:.82rem;line-height:1.4}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.dialog-heading .icon-button{min-width:2rem;min-height:2rem}.source-choice{display:grid;gap:.15rem;width:100%;padding:.7rem;border:1px solid #355166;border-radius:.45rem;background:#182a39;color:#edf4fb;text-align:left;cursor:pointer}.source-choice:hover{background:#233d51}.source-choice small{color:#91a5b8;font-size:.7rem}.source-heading{display:flex;align-items:center;justify-content:space-between;margin:.9rem 0 .35rem}.source-heading>strong{font-size:.78rem}.source-heading button{border:0;background:none;color:#70bdf5;font-size:.7rem;cursor:pointer}.map-list{display:grid;gap:.3rem;max-height:16rem;overflow:auto}.map-option{display:grid;grid-template-columns:2.35rem minmax(0,1fr) auto;align-items:center;gap:.6rem;width:100%;padding:.55rem;border:0;border-radius:.42rem;background:#182733;color:#edf4fb;text-align:left;cursor:pointer}.map-option:hover{background:#243b4c}.format-badge{display:grid;place-items:center;width:2.2rem;height:2rem;border-radius:.35rem;background:#29465a;color:#84cdfc;font-size:.6rem;font-weight:800}.option-name{overflow:hidden;font-size:.75rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.option-size{color:#91a5b8;font-size:.66rem}.empty-list{margin:0;padding:1rem .5rem;border:1px dashed #355166;border-radius:.4rem;color:#91a5b8;text-align:center;font-size:.73rem;line-height:1.4}@media(max-width:720px){.height-scale{width:100%;justify-content:center}}@media(max-width:560px){.status-card{top:.5rem;left:.5rem;max-width:calc(100vw - 5.4rem);padding:.55rem .65rem}.session-meta{display:none}.toolbox{top:.5rem;right:.5rem;display:grid;grid-template-columns:repeat(2,2.35rem);gap:.25rem;padding:.25rem}.tool-separator{display:none}.legend{right:.5rem;bottom:.5rem;left:.5rem;justify-content:center}.layer-toggle{padding:.36rem .4rem;font-size:.68rem}.map-option{grid-template-columns:2.35rem minmax(0,1fr)}.option-size{grid-column:2}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
