:root{color-scheme:dark;--bg:#111416;--panel:#191e21;--raised:#20272a;--line:#30393d;--text:#edf2ef;--muted:#9ba9a6;--accent:#beed96;--ink:#17250e;--danger:#f9aaa2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px}button,input,select{font:inherit}button,.button{border:1px solid var(--line);background:var(--raised);color:var(--text);padding:11px 17px;border-radius:9px;cursor:pointer;text-decoration:none;font-weight:600;display:inline-flex;justify-content:center;align-items:center;gap:8px}button:hover,.button:hover{border-color:#7a8c80}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.primary{background:var(--accent);color:var(--ink);border-color:var(--accent)}.primary:hover{background:#d0f5b3}.danger-quiet{color:var(--danger);background:transparent}.topbar{height:78px;padding:0 34px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:var(--text);font-size:21px;font-weight:650;letter-spacing:-.5px}.brand-icon{color:var(--accent);font-size:36px}.edition{font-size:10px;font-weight:600;letter-spacing:2px;color:var(--muted);margin-left:10px;border-left:1px solid var(--line);padding-left:20px}.connection{font-size:12px;color:var(--muted)}.workspace{max-width:1600px;margin:auto;display:grid;grid-template-columns:290px minmax(0,1fr);min-height:calc(100vh - 78px)}.sidebar{border-right:1px solid var(--line);padding:32px 20px;display:flex;flex-direction:column;gap:8px}.section-heading{display:flex;justify-content:space-between;align-items:center;padding:0 8px}h1{font-size:16px;margin:0;font-weight:600}.icon-button{padding:0;width:33px;height:33px;font-size:24px;background:transparent;font-weight:400}.muted,.field-help{color:var(--muted);line-height:1.6}.sidebar-intro{font-size:12px;margin:0 8px 24px}.run-list{display:grid;gap:8px}.run-item{display:block;width:100%;text-align:left;padding:15px 14px;background:transparent;border-color:transparent;font-weight:400}.run-item.selected{background:var(--raised);border-color:var(--line)}.run-item strong{display:block;font-weight:550;font-size:13px;margin-bottom:8px;overflow-wrap:anywhere}.run-meta{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:11px}.empty-list{color:var(--muted);font-size:12px;line-height:1.8;padding:0 8px}.sidebar-foot{margin-top:auto;padding:40px 8px 0;color:var(--muted);font-size:11px;display:flex;align-items:center;gap:8px}.dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.main-panel{padding:36px 48px 60px;min-width:0}.run-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;gap:20px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:650;color:var(--muted);text-transform:uppercase;margin:0 0 9px}h2{font-size:27px;letter-spacing:-.7px;line-height:1.25;margin:0;font-weight:550;overflow-wrap:anywhere}.badge{background:#273427;color:var(--accent);padding:7px 11px;border-radius:20px;white-space:nowrap;font-size:11px}.badge.error{background:#3e2829;color:var(--danger)}.preview-wrap{position:relative;aspect-ratio:16/9;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:radial-gradient(ellipse at center,#283330 0%,#161d1b 70%);display:flex;align-items:center;justify-content:center}.preview-wrap img{width:100%;height:100%;object-fit:contain}.preview-caption{position:absolute;bottom:0;left:0;right:0;padding:22px 18px 14px;background:linear-gradient(transparent,#0c100ee0);display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.3px;color:#bfcbc2;pointer-events:none}#preview-placeholder{text-align:center;max-width:320px;padding:20px}#preview-placeholder>span{color:#6b866e;font-size:60px}#preview-placeholder h3{font-size:16px;font-weight:500}#preview-placeholder p{font-size:12px;line-height:1.7;color:var(--muted)}.progress-card{padding:23px 0 20px}.progress-heading{display:flex;justify-content:space-between;font-size:12px;margin-bottom:12px}.progress-heading strong{color:var(--accent)}progress{width:100%;height:5px;border:none;border-radius:10px;display:block;background:#303a33;accent-color:var(--accent)}progress::-webkit-progress-bar{background:#303a33;border-radius:10px}progress::-webkit-progress-value{background:var(--accent);border-radius:10px}progress::-moz-progress-bar{background:var(--accent);border-radius:10px}.stages{display:flex;gap:10px;margin-top:15px}.stage{flex:1;color:#687671;font-size:10px;border-left:2px solid #344039;padding-left:9px}.stage.active{color:var(--accent);border-color:var(--accent)}.stage.done{color:#b8c8b8;border-color:#6f8f60}.stage small{display:block;font-size:9px;margin-top:4px;opacity:.8}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:26px;padding-top:24px;border-top:1px solid var(--line)}.stats span{color:var(--muted);font-size:10px;display:block;margin-bottom:8px}.stats strong{font-size:17px;font-weight:500;font-variant-numeric:tabular-nums}.controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px}.button-group{display:flex;gap:10px}.control-hint{font-size:11px;margin-top:13px}.details{border-top:1px solid var(--line);margin-top:27px;padding-top:19px;color:var(--muted);font-size:12px}summary{cursor:pointer}.detail-data{display:flex;gap:20px;flex-wrap:wrap;line-height:1.7;padding:20px 0}.small-button{font-size:11px;padding:8px 12px}pre{font-size:11px;max-height:260px;overflow:auto;background:#0d1112;border:1px solid var(--line);padding:16px;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere}.welcome{min-height:70vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;max-width:470px;margin:auto}.welcome-symbol{font-size:70px;color:var(--accent);margin-bottom:20px}.welcome p{color:var(--muted);line-height:1.9;margin:20px 0 30px}.notice{padding:15px 34px;background:#3b3021;color:#f1d7a0;border-bottom:1px solid #51402b;font-size:12px}.run-error,.form-error{color:var(--danger);background:#382526;border:1px solid #5b3538;padding:14px;border-radius:8px;line-height:1.6;font-size:12px}dialog{width:min(570px,95vw);max-height:92vh;border:1px solid #49534c;border-radius:16px;background:var(--panel);color:var(--text);padding:30px;box-shadow:0 30px 120px #0009}dialog::backdrop{background:#050907b3;backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:27px}dialog h2{font-size:24px}label{display:block;margin:18px 0 7px;font-size:12px;font-weight:550}input,select{display:block;width:100%;margin-top:9px;padding:12px;border:1px solid #3b4841;background:#131a17;color:var(--text);border-radius:8px;outline:none}input::placeholder{color:#718078}.optional{color:var(--muted);font-size:10px;font-weight:400;margin-left:5px}.field-help{font-size:11px;margin:8px 0}.resolution-explainer{padding:16px;margin-top:22px;border:1px solid #394b35;border-radius:10px;background:#253024}.resolution-explainer strong{font-size:12px;font-weight:500}.resolution-explainer>div{display:flex;justify-content:space-between;align-items:center;margin-top:14px;font-size:11px;color:var(--accent);gap:8px}.resolution-explainer b{color:#6c845f}.resolution-explainer p{font-size:11px;line-height:1.65;color:#a9bca3;margin-bottom:0}.advanced{margin-top:23px;color:var(--muted);font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px}.dialog-note{text-align:right;margin:13px 0 0;font-size:10px}[hidden]{display:none!important}@media(min-width:1500px){.main-panel{padding-left:70px;padding-right:70px}}@media(max-width:900px){.workspace{grid-template-columns:220px minmax(0,1fr)}.main-panel{padding:28px 24px}.stats{gap:12px}.stats strong{font-size:14px}}@media(max-width:640px){.topbar{height:65px;padding:0 18px}.brand{font-size:18px}.edition{display:none}.workspace{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:18px}.sidebar-intro,.sidebar-foot{display:none}.run-list{display:flex;overflow-x:auto;margin-top:8px}.run-item{min-width:190px;width:190px}.empty-list{margin:6px 8px}.main-panel{padding:25px 18px}.run-heading{gap:10px}h2{font-size:23px}.stats{grid-template-columns:1fr 1fr;row-gap:20px}.controls{align-items:flex-start;flex-direction:column}.preview-wrap{aspect-ratio:4/3}.welcome{min-height:55vh}dialog{padding:23px}.connection{font-size:10px}}
/* Whole-scene orbit preview. */
#overview-surface{aspect-ratio:8/5;touch-action:pan-y}
#overview-surface.can-orbit{cursor:grab;touch-action:none}
#overview-surface.can-orbit:active{cursor:grabbing}
#overview-surface:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
#overview-surface img{user-select:none;pointer-events:none}
.overview-toolbar{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.overview-toolbar .small-button{min-height:36px}
.overview-help{font-size:12px;line-height:1.5;min-height:18px;margin:9px 0 20px}
.overview-modes{display:flex;gap:8px;margin-bottom:10px}
.overview-modes button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}

/* The saved-model renderer stays inside the existing scene surface. */
#model-viewer{position:absolute;inset:0}
#model-viewer canvas{display:block;width:100%;height:100%}
#preview-placeholder{position:relative;z-index:1;pointer-events:none}
#model-note{margin-bottom:8px}
.overview-modes{flex-wrap:wrap}

.stages{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stage.error{border-color:#b85a45;color:#b85a45}.stage.pending{opacity:.65}

#regional-dialog {max-width:760px;width:90vw}
#regional-map {width:100%;height:300px;background:#152332;border-radius:8px}
#regional-map rect[aria-disabled="false"] {cursor:pointer}
#regional-map rect:focus {stroke:#fff;stroke-width:3;outline:none}
#regional-choices {max-height:135px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:16px}
#regional-choices label {display:flex;align-items:center;gap:6px;font-size:12px;margin:0}
#regional-choices input {width:auto;margin:0}
#regional-results p {font-size:13px;line-height:1.5}
/* Scene library and guided setup. */
.scene-group{border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px;min-width:0}.scene-group>summary{font-size:14px;font-weight:600;overflow-wrap:anywhere}.scene-group>summary small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin:7px 0 2px}.model-family{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.model-family>summary{font-size:12px;color:var(--muted);line-height:1.6;overflow-wrap:anywhere}.version-name{display:block;font-size:10px;color:var(--muted);line-height:1.4;margin:6px 0}.scene-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:12px;margin-bottom:18px}.scene-summary>span{flex:1}.journey-card{padding:20px;border:1px solid #43513f;border-radius:12px;background:linear-gradient(120deg,#232e22,#19211e);margin-bottom:24px}.journey-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.journey-heading h3{margin:0;font-size:17px;font-weight:550}.journey-card p{font-size:12px;line-height:1.6}.journey-heading button{flex-shrink:0}.journey-track,.wizard-track{list-style:none;display:flex;padding:0;gap:12px;margin:20px 0}.journey-track li,.wizard-track li{flex:1;border-top:2px solid var(--line);padding-top:9px;font-size:11px;color:var(--muted)}.journey-track .active,.wizard-track .active{color:var(--accent);border-color:var(--accent)}.journey-track .done,.wizard-track .done{border-color:#6f8f60}.version-lineage{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:11px;color:var(--muted);padding-top:12px;border-top:1px solid var(--line)}.version-lineage [aria-current=true]{border-color:var(--accent)}.model-notes{white-space:pre-wrap;width:100%}.review-card{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:18px;line-height:1.7}.review-card p,.review-stages{font-size:12px;line-height:1.8;color:var(--muted)}.bulk-actions{display:flex;gap:10px;margin:12px 0}.check-label{display:flex;align-items:center;gap:10px}.check-label input{width:auto;margin:0}textarea{display:block;width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px;margin-top:9px;resize:vertical}#regional-custom{margin-top:18px}#regional-custom summary{font-size:12px;color:var(--muted);margin-bottom:12px}#regional-dialog section>h3,#create-dialog section>h3{font-size:18px}#regional-dialog section>.muted,#create-dialog section>.muted{font-size:13px}
@media(max-width:640px){.run-list{display:block;max-height:330px;overflow:auto}.run-item{min-width:0}.journey-heading{align-items:flex-start;flex-direction:column}.journey-track{display:grid;grid-template-columns:1fr 1fr}.scene-summary>span{flex-basis:100%}.dialog-actions{flex-wrap:wrap}#regional-choices{grid-template-columns:1fr}.wizard-track{gap:8px}.journey-card{padding:16px}}
.controls{flex-wrap:wrap}#operation-results p{font-size:13px;line-height:1.6}
.material-contact{display:block;width:min(100%,960px);height:auto;border-radius:8px;margin:12px 0}#material-upload-progress{width:100%}#material-file-list{max-height:150px;overflow:auto;overflow-wrap:anywhere}
/* Calibration remains available without a selected model. */
#calibration-dialog { width:min(780px, calc(100vw - 32px)); }
#calibration-dialog form, #calibration-session { display:grid; gap:14px; }
#calibration-dialog [hidden] { display:none; }
#calibration-preview { margin:0; }
#calibration-comparison { width:100%; height:auto; border-radius:8px; }
#calibration-file-list { max-height:160px; overflow:auto; overflow-wrap:anywhere; }
#calibration-dialog progress { width:100%; }
.check-label { display:flex; gap:10px; align-items:flex-start; }
.check-label input { width:auto; margin-top:4px; }
@media(max-width:600px) { .topbar { flex-wrap:wrap; gap:8px; } #calibration-dialog .button-group { flex-wrap:wrap; } }

.material-frame { margin: 12px 0; }
.material-frame img { width: 320px; max-width: 100%; border-radius: 8px; }

/* Keep the combined model prominent; retain every attempt in secondary history. */
.model-history,.lineage-details,.training-record{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.model-history>summary,.lineage-details>summary,.training-record>summary{color:var(--muted);font-size:12px;line-height:1.6}
.model-history .run-item .version-name{display:none}
.model-history .run-item{padding:10px 8px}
.scene-group>.run-item{margin-top:10px}
.lineage-details .version-lineage{border-top:0}
.training-record{margin-bottom:20px}
.run-meta{line-height:1.5}

/* Tile training: 2D map, tile cards and planning wizard. */
#map2d{position:absolute;inset:0;overflow:hidden;background:#0d1211;cursor:grab;touch-action:none;outline:none}
#map2d:active{cursor:grabbing}#map2d[data-tool=distance],#map2d[data-tool=area],#map2d[data-tool=reference]{cursor:crosshair}
#map2d:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}
.map2d-canvas{position:absolute;left:0;top:0;transform-origin:0 0}
.map2d-canvas img{position:absolute;left:0;top:0;max-width:none;user-select:none;pointer-events:none}
.map2d-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.map2d-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;margin:0}
.tile-outline{fill:none;stroke:#f3f7f2;stroke-opacity:.75;stroke-width:1.5}.tile-outline.active{stroke:var(--accent);stroke-opacity:1;stroke-width:3}.tile-outline.skipped{stroke-dasharray:5 4;stroke-opacity:.45}
.tile-label,.measure-label{font-size:12px;font-weight:600;fill:#fff;paint-order:stroke;stroke:#000c;stroke-width:3px}
.measure-line,.measure-area{fill:none;stroke:#ffd66b;stroke-width:2.5}.measure-area{fill:#ffd66b33}.measure-dot{fill:#ffd66b;stroke:#000;stroke-width:1}
.ref-point{fill:#ff7a6b;stroke:#fff;stroke-width:2}
.map2d-tools{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;align-items:center}.map2d-tools .small-button{min-height:36px}.map2d-tools button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
.map2d-measure{font-size:12px;color:#ffd66b;font-variant-numeric:tabular-nums;margin-left:4px}
.map2d-status{font-size:12px;margin:8px 0 18px;line-height:1.6}.map2d-readout{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}
.tile-results{padding:10px 0 20px}.tile-heading{font-size:15px;font-weight:600;margin:18px 0 4px}
.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;margin-top:12px}
.tile-card{border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--panel);min-width:0}.tile-card.active{border-color:#6f8f60}
.tile-card h4{margin:0;font-size:15px;font-weight:600}.tile-card h5{font-size:13px;margin:16px 0 6px}
.tile-row{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.tile-stages{display:flex;gap:5px;margin:12px 0 8px}.tile-chip{flex:1;text-align:center;font-size:11px;padding:4px 0;border-radius:6px;background:var(--raised);color:#6f7d78}
.tile-chip.done{color:#b8c8b8}.tile-chip.now{background:var(--accent);color:var(--ink);font-weight:600}
.tile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.tile-stats strong{display:block;font-size:17px;font-weight:550;font-variant-numeric:tabular-nums}.tile-stats span{font-size:10px;color:var(--muted)}
.tile-score{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.tile-score strong{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}
.t-delta{font-size:12px}.t-delta.up{color:var(--accent)}.t-delta.down{color:var(--danger)}.t-ref{margin:2px 0 4px}
.tile-chart{width:100%;height:170px;display:block;overflow:visible}.tile-chart text{fill:var(--muted);font-size:11px}
.tile-chart .grid{stroke:#262f2c}.tile-chart .reference{stroke:#9ba9a6;stroke-width:1.5;stroke-dasharray:6 4}
.tile-chart .series{fill:none;stroke:#7fb2ff;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.tile-chart .series-dot{fill:#7fb2ff;stroke:var(--panel);stroke-width:2}
.tile-chart .crosshair{stroke:#9ba9a6}
.tile-tip{position:fixed;z-index:20;pointer-events:none;background:var(--raised);border:1px solid var(--line);border-radius:8px;padding:6px 9px;font-size:12px;box-shadow:0 6px 20px #0008}
.t-compare{margin:12px 0 0}.t-compare img{width:100%;border-radius:8px;display:block}.t-compare figcaption{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;font-size:11px;color:var(--muted);margin-top:4px}
.tile-table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}.tile-table th,.tile-table td{padding:5px 6px;border-bottom:1px solid var(--line);text-align:right}.tile-table th:first-child,.tile-table td:first-child{text-align:left}.tile-table th{color:var(--muted);font-weight:500}
.t-table{margin-top:8px;font-size:12px;color:var(--muted)}.t-table table{margin-top:6px}
.tile-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.tile-pair figure{margin:0}.tile-pair img{width:100%;border-radius:6px;display:block}.tile-pair figcaption{font-size:11px;color:var(--muted);margin-top:4px}
.tile-merge table{max-width:640px}
#tiles-dialog{width:min(860px,95vw)}#tiles-dialog section>h3{font-size:18px}
.tiles-map{position:relative;margin-top:14px;border-radius:8px;overflow:hidden;background:#151b1c}
.tiles-map img{display:block;width:100%;height:auto}.tiles-map svg{position:absolute;inset:0;width:100%;height:100%}
.plan-cell{fill:#ffffff08;stroke:#dfe8e3;stroke-opacity:.35;stroke-width:1;cursor:pointer}.plan-cell:hover{fill:#beed9633}.plan-cell.seed{stroke:#ffd66b;stroke-opacity:.9;stroke-dasharray:4 3}
.plan-cell.chosen{fill:#beed9666;stroke:var(--accent);stroke-opacity:1;stroke-width:2}.plan-cell.ineligible{fill:#00000055;cursor:not-allowed}
.plan-cell:focus{outline:none;stroke:#fff;stroke-width:3}.plan-label{font-size:10px;fill:#fff;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#000b;stroke-width:3px}
#georef-dialog{width:min(620px,95vw)}.georef-list{font-size:12px;line-height:1.9;padding-left:18px}.georef-list button{margin-left:8px;padding:3px 8px}
@media(max-width:640px){.tile-grid{grid-template-columns:1fr}.map2d-status{font-size:11px}.map2d-readout{white-space:normal}}
.journey-detail{margin-top:4px}.journey-detail>summary{font-size:11px;color:var(--muted)}.journey-detail pre{margin:8px 0 0;max-height:180px}
.events-card{margin-top:22px;border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:var(--panel)}.events-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.events-heading h3{margin:0;font-size:14px;font-weight:600}#events-summary{font-size:11px;color:var(--muted)}#events-summary .error{color:var(--danger)}#events-summary .pause{color:#f1d7a0}
.events-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:0}.events-list li{display:grid;grid-template-columns:118px 12px minmax(0,1fr);gap:10px;align-items:start;padding:9px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.55}.events-list li:first-child{border-top:0}.events-list time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px;padding-top:1px}.events-list .mark{width:8px;height:8px;border-radius:50%;margin-top:5px;background:#6f8f60}.events-list .pause .mark{background:#e6c170}.events-list .error .mark{background:var(--danger)}.events-list .warning .mark{background:#e6c170}.events-list .error p{color:var(--danger)}.events-list p{margin:0;overflow-wrap:anywhere}.events-list details{margin-top:4px}.events-list summary{font-size:11px;color:var(--muted)}.events-list pre{margin:6px 0 0;max-height:160px}#events-more{margin-top:10px}
@media(max-width:640px){.events-list li{grid-template-columns:12px minmax(0,1fr);row-gap:2px}.events-list .mark{grid-column:1;grid-row:1/3}.events-list time{grid-column:2;grid-row:1;padding:0}.events-list .event-body{grid-column:2;grid-row:2}}
.tile-bar{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin-top:12px}.tile-scales{display:flex;gap:6px}.tile-scales [aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
.tile-legend{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.tile-legend span{display:inline-flex;align-items:center;gap:6px}.tile-legend i{width:14px;height:14px;border-radius:3px;display:inline-block}.tile-legend b{width:14px;text-align:center;color:var(--text);font-weight:600}
.g-2{background:#b8433f}.g-1{background:#6e3230}.g0{background:#383835}.g1{background:#2b4a78}.g2{background:#2b66b5}
.tile-overview-scroll{overflow-x:auto;margin-top:12px;padding-bottom:4px}.tile-overview{display:grid;gap:2px}
.tile-cell{aspect-ratio:1;min-width:0;padding:3px;border-radius:5px;border:1px solid transparent;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-weight:400;line-height:1.1;color:var(--text)}
.tile-cell .cell-id{font-size:10px;color:#c9d3cf}.tile-cell .cell-value{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;min-height:13px}
.tile-cell.g-2{background:#b8433f}.tile-cell.g-1{background:#6e3230}.tile-cell.g0,.tile-cell.kept{background:#383835}.tile-cell.g1{background:#2b4a78}.tile-cell.g2{background:#2b66b5}
.tile-cell.done:not([class*=" g"]){background:#262c2e}.tile-cell.waiting,.tile-cell.paused{border-color:var(--line)}.tile-cell.skipped{border:1px dashed #4a5652;opacity:.6}.tile-cell.skipped .cell-id{color:var(--muted)}
.tile-cell.running{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.tile-cell.failed{border-color:var(--danger)}.tile-cell.failed .cell-value{color:var(--danger)}
.tile-cell.selected{outline:2px solid var(--text);outline-offset:1px;z-index:1}.tile-cell:hover{border-color:#9ba9a6}
.tile-detail{margin-top:16px}.tile-detail .tile-card{max-width:760px}.tile-detail-empty{border:1px dashed var(--line);border-radius:12px;padding:16px}
.tile-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.tile-kept{color:#f1d7a0}
.tile-outline.selected{stroke:#fff;stroke-opacity:1;stroke-width:3}
.model-branch{margin-left:4px;padding-left:10px;border-left:1px solid var(--line);border-top:0;margin-top:10px;padding-top:0}.model-branch>summary{padding:4px 0}.model-branch .run-item .version-name{display:none}.model-branch .run-item{padding:9px 8px;border-left:1px solid transparent}
#organize-dialog .dialog-actions{justify-content:space-between}
.tree-label{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);font-weight:650;margin:14px 8px 2px}.scene-group>.tree-label:first-of-type{margin-top:12px}
.scene-group>.run-item{margin-top:4px}.run-item.main{border:1px solid #43513f;background:linear-gradient(120deg,#232e22,#19211e)}.run-item.main.selected{border-color:var(--accent)}
.run-item .run-meta{justify-content:flex-start;align-items:baseline;gap:7px;line-height:1.45}.run-item .tone{flex:none;width:7px;height:7px;border-radius:50%;background:#6f8f60;display:inline-block;position:relative;top:-1px}
.tone.live{background:var(--accent);box-shadow:0 0 0 3px #beed9633}.tone.paused{background:#e6c170}.tone.attention{background:var(--danger)}.tone.plan{background:transparent;border:1px solid var(--muted)}
.model-branch .run-item.child{border-left:1px solid var(--line);border-radius:0 9px 9px 0}
.tile-pair{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.tile-steps{border:1px solid var(--line);border-radius:12px;padding:12px 16px;background:var(--panel);margin-top:18px}.tile-steps>summary{font-size:13px;font-weight:600}
.step-list,#tiles-steps{display:grid;gap:10px;margin-top:12px}.step-choice{align-items:flex-start;margin:0;font-weight:400}.step-choice input{margin-top:3px}.step-choice strong{display:block;font-size:13px;font-weight:600}.step-choice small{display:block;color:var(--muted);font-size:11px;line-height:1.5;margin-top:2px}.step-choice .step-status{color:#b8c8b8}
.step-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.step-actions .field-help{margin:0;flex:1;min-width:200px}
.step-choices{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:18px 0 0}.step-choices legend{font-size:12px;font-weight:600;padding:0 6px}
#map2d-source[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
.volume-panel{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:14px 16px;margin-top:10px;font-size:12px}.volume-panel>p{margin:0 0 10px}
.volume-bases{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}.volume-bases button{display:block;text-align:left;padding:10px 12px;font-weight:400;line-height:1.45}.volume-bases strong{display:block;font-size:12px}.volume-bases small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.volume-bases [aria-pressed=true]{border-color:var(--accent)}.volume-bases [aria-pressed=true] strong{color:var(--accent)}
.volume-height{display:flex;align-items:center;gap:8px;margin:12px 0 0;font-weight:400}.volume-height input{width:110px;margin:0;padding:7px 9px}
.volume-result{margin-top:12px}.volume-figures{display:grid;grid-template-columns:auto 1fr;gap:4px 18px;margin:0 0 8px}.volume-figures dt{color:var(--muted)}.volume-figures dd{margin:0;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}


.volume-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.volume-height{flex-wrap:wrap}

.sketch-result{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.volume-actions [aria-pressed=true]{border-color:var(--accent);color:var(--accent)}

.tile-cell.carried{background:var(--raised);color:var(--muted);border:1px dashed var(--line)}.tile-cell.copied{border:1px dashed var(--line)}.tile-cell.carried .cell-id{color:var(--muted)}
.block-map{margin:10px 0 4px;max-width:260px}.block-map figcaption{font-size:12px;color:var(--muted);margin-top:6px}
.block-grid{display:grid;gap:2px}.block-grid .block{aspect-ratio:1;display:grid;place-items:center;font-size:11px;border-radius:3px;background:var(--raised);color:var(--muted);border:1px solid var(--line)}
.block-grid .block.new{background:#2b66b5;border-color:#2b66b5;color:#fff;font-weight:600}
.grid-update{border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:12px 0}.grid-update legend{padding:0 6px;font-weight:600}
.grid-update-steps{margin:8px 0 6px 18px;padding:0;font-size:13px;line-height:1.5}
