:root{--ink:#203837;--muted:#617573;--teal:#246b60;--paper:#f6f7f3;--line:#d8dfd8;--white:#fff;--warm:#80561d;--pale:#f5edda;font-family:"Yu Gothic UI","Meiryo",system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,select,input{touch-action:manipulation}button,.file-button,.download{border:1px solid var(--line);background:white;color:var(--ink);padding:.6rem .8rem;border-radius:6px;cursor:pointer;font-size:.875rem;text-align:center}button:hover,.file-button:hover{background:#edf3ec}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #dc9c44;outline-offset:2px}button:disabled{opacity:.55;cursor:wait}.primary{background:var(--teal);color:white;border-color:var(--teal)}.primary:hover{background:#17584e;color:white}a{color:var(--teal);text-underline-offset:3px}.top{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.5rem .85rem;background:white;border-bottom:1px solid var(--line)}.eyebrow{font:600 .75rem/1.2 system-ui;letter-spacing:.16em;color:var(--muted)}h1{font-size:1.35rem;margin:.35rem 0 0;font-weight:650}h1 span{font-size:.9rem;color:var(--muted);font-weight:400;padding-left:.6rem}.top-actions{display:flex;gap:.5rem}.tabs{display:flex;gap:1.8rem;border-bottom:1px solid var(--line);background:white;padding:0 1.5rem}.tabs button{border:0;border-radius:0;border-bottom:3px solid transparent;padding:.95rem .15rem;background:transparent;font-weight:600}.tabs button[aria-selected=true]{color:var(--teal);border-bottom-color:var(--teal)}.workspace{display:grid;grid-template-columns:290px minmax(0,1fr);height:calc(100dvh - 147px);min-height:650px}.sidebar{overflow-y:auto;border-right:1px solid var(--line);background:var(--paper);padding:1.1rem 1.15rem}.property{padding-bottom:1rem;border-bottom:1px solid var(--line)}.tag{font-size:.75rem;color:var(--teal)}h2{font-size:1.125rem;margin:.6rem 0}.property p{font-size:.875rem;line-height:1.6;margin:.4rem 0;color:var(--muted)}.area{margin-top:1rem}.area strong{font-size:1.6rem;font-variant-numeric:tabular-nums}.area strong span{font-size:1rem;margin-left:.3rem}.area small{display:block;font-size:.75rem;color:var(--muted);margin-top:.2rem}p{line-height:1.65}.panel{padding:.5rem 0}.panel h2{margin:1rem 0}.panel label{display:block;margin:.85rem 0;font-size:.875rem;font-weight:550}.panel select,.panel textarea{display:block;width:100%;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);padding:.6rem;margin-top:.4rem}.panel input[type=range]{display:block;width:100%;accent-color:var(--teal);margin-top:.6rem}.panel label.check{display:flex;gap:.5rem;align-items:center}.panel input[type=checkbox]{accent-color:var(--teal);width:17px;height:17px}.panel>button{width:100%;margin:.3rem 0}.panel>a{display:block;font-size:.875rem;margin:1rem 0}.seg{display:flex;margin:.8rem 0}.seg button{flex:1}.seg button.active{background:#dceae0;border-color:#86a996}.stats{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:1rem}.stats div{border-top:1px solid var(--line);padding:.55rem 0}.stats small{display:block;color:var(--muted);font-size:.75rem}.stats strong{font-size:1.3rem;font-weight:550}.small{font-size:.75rem;color:var(--muted);line-height:1.6}.quality{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.quality strong{font-size:.875rem;color:var(--warm)}.quality p{font-size:.75rem;color:var(--muted)}.quality button{font-size:.75rem;padding:.45rem .6rem}.stage{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:#e9eee6}.viewer-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem 1rem;background:#f7f9f5;border-bottom:1px solid var(--line)}.viewer-top span{font-size:.875rem;font-weight:600}.viewer-top button{font-size:.75rem;padding:.4rem .6rem}#canvasWrap{flex:1;position:relative;min-height:340px;overflow:hidden}#scene{display:block;width:100%;height:100%;touch-action:none}#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;text-align:center;background:#edf2e9e8;font-size:.875rem}.compass{position:absolute;top:1rem;right:1rem;width:42px;text-align:center;color:var(--teal);font-size:.8rem;pointer-events:none}.compass i{display:block;font-size:2rem;font-style:normal;line-height:1}.legend{position:absolute;left:1rem;top:1rem;background:#fffffff0;padding:.6rem .75rem;border-radius:6px;font-size:.75rem;max-width:220px;pointer-events:none}.legend:empty{display:none}.legend .r{display:flex;align-items:center;gap:.45rem;margin:.2rem 0}.swatch{width:12px;height:12px;display:inline-block;border-radius:2px}.inspect{padding:.75rem 1rem;background:#fff;border-top:1px solid var(--line)}.inspect-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.inspect-head strong{font-size:.875rem;font-weight:500}.inspect-head button{flex-shrink:0;font-size:.75rem}.source-line{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem 1rem;color:var(--muted);background:var(--paper);font-size:.75rem;line-height:1.5}.source-line button{padding:.2rem .6rem;font-size:.75rem}#profileChart{width:100%;height:180px;margin-top:.6rem;display:block}.profile-foot{display:flex;justify-content:space-between;gap:.8rem;font-size:.75rem;align-items:center}.profile-foot button{padding:.3rem .6rem;font-size:.75rem}.notice{padding:.75rem;background:var(--pale);color:#735522;font-size:.75rem;line-height:1.65;border-left:3px solid #c39952;margin:.8rem 0}.result{font-size:.875rem;line-height:1.65;padding:.8rem 0;border-top:1px solid var(--line);margin-top:1rem}.documents{padding:1.5rem 2rem;overflow-y:auto;background:#fcfdfa}.doc-title{display:flex;justify-content:space-between;gap:1rem;align-items:center}.doc-title h2{font-size:1.4rem}.doc-title span{font-size:.8rem}.doc-card{padding:1rem 0;border-bottom:1px solid var(--line)}.doc-card h4{font-size:1rem;margin:0 0 .4rem}.doc-card p{margin:.3rem 0;color:var(--muted);font-size:.875rem}.doc-card small{display:block;color:var(--muted);font-size:.75rem}.doc-card a{font-size:.875rem;display:inline-block;margin-top:.5rem}.check-row{display:flex;gap:.8rem;align-items:flex-start;border-top:1px solid var(--line);padding:.8rem 0}.check-row .status{font-size:.75rem;color:#83591a;background:#f6ecd3;white-space:nowrap;padding:.25rem .45rem}.check-row strong{font-size:.875rem}.check-row p{font-size:.8rem;margin:.25rem 0;color:var(--muted)}.file-button{display:block!important;font-weight:500!important;margin:.7rem 0}.file-button input{display:none}dialog{border:1px solid var(--line);border-radius:10px;max-width:650px;width:calc(100% - 2rem);max-height:85dvh;padding:1.5rem;color:var(--ink);background:var(--paper);box-shadow:0 20px 70px #14332840}dialog::backdrop{background:#152f3460}dialog p{font-size:.875rem}dialog>a,dialog>button:not(.close){display:block;margin:1rem 0}.close{float:right;border:0;padding:.1rem .55rem;font-size:1.5rem;background:none}.disclaimer{padding-top:1rem;border-top:1px solid var(--line);font-size:.8rem;line-height:1.8}.download{text-decoration:none;display:block}#toast{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);background:#183d36;color:white;padding:.9rem 1.3rem;border-radius:8px;z-index:100;max-width:90%;font-size:.875rem}.bar-row{display:grid;grid-template-columns:45px 1fr 40px;align-items:center;gap:.35rem;font-size:.75rem;margin:.45rem 0}.bar-row i{height:5px;background:#dde4da}.bar-row b{display:block;height:100%}.bar-row span:last-child{text-align:right}#hazardLegend img{width:100%;height:auto;max-height:300px;object-fit:contain;background:white}.local-actions{display:flex;gap:.5rem;align-items:center;margin-top:.4rem}.local-actions select{font-size:.8rem;padding:.4rem;max-width:150px}[hidden]{display:none!important}@media(max-width:850px){.top{padding:.8rem 1rem}.top .eyebrow{font-size:.7rem}h1{font-size:1.1rem}h1 span{display:none}.tabs{padding:0 .8rem;justify-content:space-between;gap:.2rem}.tabs button{font-size:.8rem}.workspace{display:flex;flex-direction:column;height:auto;min-height:0}.stage{order:0}.sidebar{order:1;overflow:visible;display:block;border:0;padding:1rem}.stage #canvasWrap{height:52dvh;min-height:320px;flex:none}.property{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.property .tag,.property p{display:none}.property h2{margin:.2rem 0}.property .area{margin:0 0 0 auto}.property .area strong{font-size:1.3rem}.property small{font-size:.7rem}.panel{max-width:600px;margin:auto}.quality{max-width:600px;margin:1rem auto}.documents{order:0;padding:1.2rem}.inspect{padding:.65rem .75rem}.inspect-head{gap:.5rem}.inspect-head strong{font-size:.75rem}.source-line{font-size:.75rem;padding:.4rem .7rem}.viewer-top{padding:.55rem .75rem}.profile-foot{display:block}.profile-foot button{margin-top:.4rem}.top-actions button{padding:.5rem .6rem;font-size:.8rem}}

.compact-disclaimer{background:var(--paper);padding:.4rem 1rem .65rem;color:var(--muted);font-size:.75rem;line-height:1.6}



.viewer-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.viewer-top .help-button{font-size:.875rem;padding:.4rem .65rem;background:white;border-color:#8fae9f}.help-button span{font-size:1.2rem;vertical-align:middle}
.height-tools{position:absolute;right:1rem;bottom:.6rem;display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;z-index:5}.height-tools output{background:#fffffff5;border:1px solid white;border-radius:5px;padding:.3rem .55rem;font-size:.875rem;color:#224239;font-variant-numeric:tabular-nums}.height-tools>div{display:flex;gap:.3rem}.height-tools button{font-size:.875rem;background:#fff;border-color:#88a796;min-height:40px}.height-tools button[aria-pressed=true]{background:#246b60;color:white;border-color:white;box-shadow:0 0 0 2px #246b60}.height-adjusting{cursor:ns-resize}
.profile-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.inspect-head .profile-actions button{font-size:.875rem}.profile-status{background:#edf4ee;color:#285b4b;border-left:3px solid #246b60;padding:.6rem .8rem;font-size:.875rem;line-height:1.6;margin-top:.7rem}.profile-legend{display:flex;gap:.6rem 1rem;flex-wrap:wrap;align-items:center;margin:.75rem 0 .2rem;font-size:.875rem}.profile-legend>span{display:flex;gap:.5rem;align-items:center}.profile-legend i{display:inline-block;width:25px;flex-shrink:0}.ground-line{border-top:3px solid #246b60}.surface-line{border-top:3px dashed #ae7608}.profile-legend button{font-size:.875rem;padding:.35rem .6rem}#profileChart{height:210px}.profile-foot{font-size:.875rem;line-height:1.6}.profile-foot button{font-size:.875rem}
.help-section{padding:.6rem 0;border-bottom:1px solid var(--line)}.help-section h3{font-size:1rem;margin:.6rem 0}.help-section dl{display:grid;grid-template-columns:135px 1fr;gap:.7rem 1rem;font-size:.875rem;line-height:1.65}.help-section dt{font-weight:650}.help-section dd{margin:0}.help-section p{font-size:.875rem}kbd{display:inline-block;border:1px solid #b4c2b9;border-bottom-width:2px;border-radius:4px;background:white;padding:0 .3rem;font:inherit;margin:0 .08rem}.panel input[type=number]{display:block;width:100%;border:1px solid var(--line);border-radius:5px;padding:.6rem;background:#fff;margin-top:.4rem;color:var(--ink)}
.stage{overflow-y:auto;overflow-x:hidden}#canvasWrap{flex:1 0 340px}
@media(max-width:850px){.viewer-top{align-items:flex-start}.viewer-actions{justify-content:flex-end;gap:.3rem}.viewer-top>span{max-width:40%;line-height:1.5}.viewer-top .viewer-actions button{font-size:.8rem}.height-tools{right:.75rem;bottom:.6rem}.height-tools button{font-size:.875rem;min-height:44px;padding:.45rem .6rem}.inspect-head{align-items:flex-start;flex-direction:column}.profile-actions{justify-content:flex-start;width:100%}.profile-legend{font-size:.875rem;gap:.55rem}.profile-foot{font-size:.875rem}.help-section dl{grid-template-columns:1fr;gap:.15rem}.help-section dd{margin-bottom:.6rem}.source-line{flex-wrap:wrap}.stage #canvasWrap{flex:none}}

.eye-hud{position:absolute;top:.8rem;left:.9rem;display:flex;flex-direction:column;gap:.3rem;background:#fffffff2;border:2px solid white;border-radius:6px;padding:.65rem .8rem;max-width:calc(100% - 270px);z-index:3;pointer-events:none}.eye-hud strong{font-size:.95rem}.eye-hud span{font-size:.875rem}.eye-map-panel{position:absolute;right:.8rem;top:.8rem;width:240px;border:2px solid white;border-radius:7px;background:white;box-shadow:0 2px 12px #1d403338;overflow:hidden;z-index:5}.eye-map-panel>div{display:flex;justify-content:space-between;align-items:center;padding:.35rem .45rem}.eye-map-panel strong{font-size:.875rem}.eye-map-panel button{font-size:.75rem;padding:.25rem .4rem}.eye-map-panel canvas{display:block;width:100%;height:auto;cursor:crosshair;touch-action:manipulation}.eye-map-panel small{display:block;font-size:.75rem;padding:.35rem .4rem;line-height:1.4}.eye-reticle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:1.8rem;color:#163c34;-webkit-text-stroke:2px white;paint-order:stroke fill;pointer-events:none;z-index:2}.eye-active .legend,.eye-active .compass{display:none}.eye-walk{position:absolute;left:1rem;bottom:.6rem;display:flex;flex-direction:column;align-items:center;gap:.3rem;z-index:5}.eye-walk>div{display:flex;gap:.3rem}.eye-walk button{min-height:44px;min-width:52px;background:white;border-color:#749889;touch-action:none;user-select:none}.eye-walk button.held{background:#246b60;color:white}.eye-walk span{font-size:.75rem;background:#fffffff2;border-radius:4px;padding:.3rem .4rem;max-width:190px;text-align:center}.eye-warning{position:absolute;left:.9rem;top:5.6rem;max-width:calc(100% - 270px);background:#fff5dceF;border:1px solid white;padding:.6rem .75rem;border-radius:5px;font-size:.8rem;line-height:1.6;pointer-events:none;z-index:3}
@media(max-width:850px){.eye-map-panel{width:145px;right:.6rem;top:.6rem}.eye-map-panel strong{font-size:.75rem}.eye-map-panel small{font-size:.75rem}.eye-hud{left:.6rem;top:.6rem;max-width:calc(100% - 165px);padding:.5rem}.eye-hud strong,.eye-hud span{font-size:.8rem}.eye-warning{left:.6rem;top:5.8rem;max-width:calc(100% - 165px);font-size:.75rem;padding:.4rem}.eye-walk{left:.6rem;bottom:.6rem}.eye-walk button{min-width:42px;padding:.5rem .4rem;font-size:.8rem}.eye-walk span{display:none}.eye-active .height-tools{max-width:calc(100% - 1.2rem);right:.6rem;bottom:.6rem}.eye-active .height-tools>div{flex-wrap:nowrap;justify-content:flex-end}.eye-active #heightToggle{width:auto}.eye-active .height-tools button{min-height:38px;padding:.4rem .5rem}.eye-active .height-tools output{font-size:.75rem}}

.eye-hud small{font-size:.75rem;line-height:1.5;color:#536960}

/* Put display controls directly beside their visual result, on every screen size. */
.terrain-toolbar{flex:none;padding:.7rem 1rem .85rem;background:#fff;border-bottom:1px solid var(--line)}
.terrain-toolbar-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.6rem}
.terrain-toolbar-head h2{font-size:1rem;margin:0}
.boundary-control{display:flex;align-items:center;gap:.4rem;font-size:.875rem;min-height:32px;cursor:pointer}
.boundary-control input{accent-color:var(--teal);width:18px;height:18px;margin:0}
.terrain-toolbar-fields{display:grid;grid-template-columns:minmax(120px,1fr) minmax(145px,1.15fr) minmax(110px,.85fr) minmax(140px,1fr) minmax(175px,1.15fr);gap:.7rem;align-items:start}
.display-field{display:grid;grid-template-rows:20px 44px auto;row-gap:6px;min-width:0;align-content:start}
.display-field>label,.display-field>.field-label{font-size:.875rem;font-weight:600;line-height:20px;margin:0;min-width:0}
.terrain-toolbar select,.boundary-tools>button{display:block;width:100%;min-width:0;height:44px;min-height:44px;margin:0;border:1px solid #a8bcb0;border-radius:5px;padding:.5rem .55rem;color:var(--ink);background:#fff;font-size:.875rem}
.view-angle{min-width:0;margin:0;padding:0;border:0}
.view-angle>div{display:flex;gap:.3rem;min-width:0}
.view-angle button{flex:1;min-width:0;height:44px;min-height:44px;margin:0;padding:.4rem .25rem;line-height:1.35;border-color:#a8bcb0;font-size:.875rem}
.boundary-tools .field-note{grid-row:3;font-size:.75rem;line-height:1.5;margin:0;max-width:none;color:var(--muted);overflow-wrap:anywhere}
@media(min-width:851px) and (max-width:1250px){.terrain-toolbar-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.view-angle{grid-column:span 2}}
@media(max-width:850px){.terrain-toolbar{padding:.6rem .75rem .75rem}.terrain-toolbar-head{margin-bottom:.45rem}.terrain-toolbar-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.view-angle{grid-column:span 2}.boundary-control{font-size:.875rem}}


/* No permanent instruction banner: controls sit at the bottom edge. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;pointer-events:none}
.height-tools{flex-direction:row;align-items:center;justify-content:flex-end;flex-wrap:nowrap;max-width:calc(100% - 1.2rem);right:.6rem;bottom:.6rem}
.height-tools output{margin:0;white-space:nowrap}
.eye-active .height-tools{flex-direction:row;align-items:center}
.eye-walk{left:.6rem;bottom:.6rem}
@media(max-width:850px){.height-tools{gap:.3rem}.height-tools output{font-size:.8rem}.eye-active .height-tools{bottom:.6rem;right:.6rem;max-width:calc(100% - 1.2rem)}.eye-walk{bottom:.6rem}}
.workspace-link{display:inline-flex;align-items:center;padding:10px 12px;color:inherit;font-size:14px;font-weight:600;text-decoration:none;border:1px solid #b8c9bd;border-radius:8px;background:white}.workspace-link:hover{background:#eff4ed}
.shared-notice{margin:12px 22px 0;padding:12px 16px;border:1px solid #b1cbc4;border-radius:9px;background:#eaf4f0;font-size:14px;line-height:1.7;color:#254b42}.shared-view [data-tab="docs"],.shared-view #saveOpen,.shared-view .workspace-link{display:none}.share-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.share-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #b8c9bd;padding:12px 16px;border-radius:8px;font-size:14px;text-decoration:none;font-weight:600;color:#254b42;background:white}.share-button.line-button{background:#087a38;color:white;border-color:#087a38}#shareURL{width:100%;min-width:0;font-size:14px;padding:10px;border:1px solid #a6bcb4;border-radius:7px}#shareSummary{font-weight:700}.top-actions{flex-wrap:wrap}@media(max-width:650px){.shared-notice{margin:8px 10px 0}.share-actions>*{flex:1 1 42%}}

/* Square, larger map surface; keep scrolling on the page rather than shrinking the map. */
.workspace{height:auto;align-items:start}
.stage{overflow:visible}
.sidebar{position:sticky;top:0;max-height:100dvh}
.stage #canvasWrap{width:100%;height:auto;aspect-ratio:1 / 1;flex:none;min-height:340px}
/* Match every control to the original compact elevation readout. */
.height-tools output,.height-tools button,.eye-active .height-tools output,.eye-active .height-tools button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;font-size:.875rem;line-height:1.4;height:2.125rem;min-height:2.125rem;padding:0 .55rem;white-space:nowrap}
.height-tools>div{align-items:center;flex-wrap:nowrap;flex-shrink:0}
@media(max-width:850px){.sidebar{position:static;max-height:none}.stage #canvasWrap{height:auto;min-height:320px}}

/* Terrain and eye-level views keep a 4:3 canvas at every viewport width. */
.stage #canvasWrap{aspect-ratio:4 / 3;min-height:0}
.legend-panel{position:absolute;left:.7rem;top:.7rem;z-index:6;background:#fffffff0;border:1px solid #d8dfd8;border-radius:7px;max-width:calc(100% - 145px);overflow:hidden}
#legendToggle{display:flex;align-items:center;justify-content:space-between;gap:1.4rem;width:100%;min-height:32px;padding:.25rem .6rem;border:0;background:transparent;text-align:left;font-size:.8rem}
.legend-panel .legend{position:static;max-width:310px;background:none;border-radius:0;padding:.2rem .6rem .5rem;font-size:.75rem}
.legend.slope-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:.65rem}
.legend.slope-legend>.r:first-child,.legend.slope-legend>.r:nth-child(7),.legend.slope-legend>div:not(.r){grid-column:1 / -1}
.legend .r{margin:.12rem 0}.legend .swatch{flex:none}
.eye-active .legend-panel{display:none}
.map-navigation{position:absolute;right:.7rem;top:5rem;z-index:5;display:grid;gap:.35rem;background:#fffffff0;padding:.4rem;border:1px solid #d8dfd8;border-radius:9px}
.map-navigation button{width:32px;height:32px;min-height:32px;padding:0;display:flex;align-items:center;justify-content:center;font-size:18px;touch-action:none;user-select:none;border-color:#a7beb1}
.map-navigation button.held{background:#246b60;color:white}
.nav-pad{display:grid;grid-template-columns:repeat(3,32px);grid-template-rows:repeat(3,32px);gap:2px}
.nav-up{grid-area:1 / 2}.nav-left{grid-area:2 / 1}.nav-centre{grid-area:2 / 2;font-size:14px!important}.nav-right{grid-area:2 / 3}.nav-down{grid-area:3 / 2}
.nav-pair{display:flex;justify-content:center;gap:4px}.nav-pair button{width:48px}
@media(max-width:850px){.stage #canvasWrap{min-height:0}.map-navigation{top:3.7rem;right:.45rem}.legend-panel{left:.45rem;top:.45rem;max-width:calc(100% - 135px)}}
@media(max-width:500px){.map-navigation{top:3.1rem;transform:scale(.85);transform-origin:top right}.legend-panel{max-width:calc(100% - 115px)}.legend-panel .legend{font-size:.7rem;padding:.1rem .4rem .4rem}.legend.slope-legend{column-gap:.35rem}}

/* Mouse controls occupy roughly half the previous area; retain touch target sizes. */
@media(hover:hover) and (pointer:fine){
 .map-navigation{gap:3px;padding:3px;right:.5rem;top:4rem;transform:none;background:transparent;border:0;border-radius:5px}
 .map-navigation button{width:24px;height:24px;min-height:24px;font-size:15px;border-radius:4px;background:#ffffffdc}
 .map-navigation button:hover,.map-navigation button:focus-visible{background:#fff}
 .map-navigation button.held{background:#246b60;color:white}
 .nav-pad{grid-template-columns:repeat(3,24px);grid-template-rows:repeat(3,24px);gap:1px}
 .nav-centre{font-size:12px!important}
 .nav-pair{gap:2px}.nav-pair button{width:36px}
}

.case-select{font-size:.75rem;display:flex;gap:.4rem;align-items:center}.case-select select{font:inherit;border:1px solid #b8c9bd;border-radius:5px;padding:.5rem;background:white;color:inherit}#farMarker{position:absolute;transform:translate(-50%,-130%);pointer-events:none;background:#ffffffe0;border-radius:4px;padding:.2rem .4rem;color:#31555e;font-size:.75rem;z-index:4;max-width:180px;text-align:center}#sceneExtras{border-bottom:1px solid var(--line);padding-bottom:.7rem;margin-bottom:.7rem}#sceneExtras a{font-size:.8rem}#sceneExtras button{width:100%}

/* Keep navigation above, and orientation clear of the controls. */
#mapNavigation{top:.6rem;bottom:auto}#compass{top:auto;right:auto;bottom:.8rem;left:.8rem;pointer-events:none}

dialog.boundary-editor{width:min(1050px,96vw);max-width:96vw;max-height:94dvh;padding:18px;overflow:auto}
.boundary-editor h2{margin:0 0 8px}.boundary-editor p{font-size:13px;margin:8px 0}.boundary-editor canvas{display:block;width:100%;aspect-ratio:4/3;height:auto;max-height:none;touch-action:none;cursor:crosshair}
.boundary-actions{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin:8px 0}.boundary-actions label{display:flex;flex-direction:column;font-size:12px}.boundary-actions input{width:90px}.boundary-actions button,.boundary-actions select,.boundary-actions input{min-height:34px;padding:6px 10px;font-size:13px}

/* Side-by-side references stay independent from the georeferenced editing canvas. */
dialog.boundary-copy{width:min(1580px,97vw);max-width:97vw;max-height:95dvh;padding:18px;overflow:auto;background:#fff}
.boundary-copy h2{font-size:22px;margin:0 40px 8px 0}.boundary-copy h3{font-size:16px;margin:8px 0}.boundary-copy p{font-size:14px;line-height:1.6;margin:8px 0}.copy-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.copy-columns>section{min-width:0;border:1px solid var(--line);border-radius:8px;padding:12px}.copy-actions{display:flex;align-items:end;gap:7px;flex-wrap:wrap;margin:8px 0}.copy-actions label,.copy-ai label{display:flex;flex-direction:column;gap:4px;font-size:14px;min-width:0;max-width:100%}.copy-actions button,.copy-actions select,.copy-actions input,.copy-ai button{min-height:34px;font-size:14px;padding:5px 8px}.copy-actions input[type=file]{max-width:245px;width:100%}.copy-actions input[type=number]{width:85px}.copy-actions input[type=color]{width:40px;padding:2px}.copy-actions input[type=range]{width:75px}.copy-actions select{max-width:220px}.copy-source-viewport{height:440px;max-height:62vh;overflow:auto;background:#eef1ee;border:1px solid var(--line)}.boundary-copy canvas{display:block;width:100%;height:auto;touch-action:none}.copy-source-viewport canvas{max-width:none;cursor:crosshair}.boundary-copy [data-target-canvas]{aspect-ratio:4/3;background:#eef1ee;border:1px solid var(--line);cursor:grab}.copy-ai{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.copy-ai summary{font-size:14px;cursor:pointer}.copy-ai textarea{width:100%;font-size:14px;resize:vertical}.copy-ai label{margin:10px 0}.boundary-copy .copy-small{font-size:12px;color:var(--muted)}.boundary-copy [data-status],.boundary-copy [data-source-status]{min-height:2.5em;overflow-wrap:anywhere}.boundary-copy [data-copy]{margin:8px 0}.boundary-copy [data-source-name],.boundary-copy [data-target-note]{overflow-wrap:anywhere}.copy-transform{padding:8px;background:#f2f6f3;border-radius:6px}
@media(max-width:900px){.copy-columns{grid-template-columns:minmax(0,1fr)}.copy-source-viewport{height:360px}.boundary-copy{padding:10px!important}.copy-columns>section{padding:10px}.copy-actions{gap:5px}.copy-actions select{max-width:100%}}
dialog.boundary-editor{width:min(1500px,97vw);max-width:97vw}.boundary-comparison{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;align-items:start}.boundary-map-pane{min-width:0}.boundary-comparison.reference-hidden{grid-template-columns:minmax(0,1fr)}.boundary-reference{min-width:0;background:#f1f4ef;border:1px solid #c5d1c7;border-radius:8px;padding:12px}.boundary-reference h3{margin:0 0 10px;font-size:16px}.boundary-reference label{display:block;font-size:12px;margin:6px 0}.boundary-reference input,.boundary-reference select{width:100%;max-width:100%}.reference-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:8px 0}.reference-actions button,.reference-actions a{padding:5px 8px;font-size:12px}.reference-viewport{height:clamp(300px,48vh,650px);overflow:auto;background:#d8dfd8}.reference-viewport iframe{width:100%;height:100%;border:0}.reference-viewport img{display:block;height:auto}.reference-viewport [hidden]{display:none}.boundary-reference small{display:block;font-size:11px;margin-top:8px}.boundary-map-pane>p{font-size:12px;background:#eef2ec;padding:8px}
@media(max-width:800px){.boundary-comparison{grid-template-columns:minmax(0,1fr)}.reference-viewport{height:400px;max-height:60vh}.boundary-reference{padding:8px}}

.distance-panel{margin:12px 0;padding:14px;background:#eef5fb;border:1px solid #aac9df;border-radius:8px}.distance-panel>div{display:flex;gap:8px;flex-wrap:wrap}.distance-panel p,.distance-panel small{font-size:12px;line-height:1.7}.distance-panel small{display:block;margin-top:8px}

.boundary-map-source{display:block;font-size:11px;margin:4px 0 10px}.boundary-adjustments{padding:10px;background:#eef3ee;border-radius:6px}

/* Allow longer, descriptive Japanese actions to wrap on smaller screens. */
.top{flex-wrap:wrap}.top-actions{flex-wrap:wrap;align-items:center;min-width:0}
@media(max-width:850px){.top-actions{width:100%;gap:.4rem}.case-select{min-width:0}}

.earth-export{padding:16px;margin:16px 0 22px;border:1px solid #aac3ba;border-radius:10px;background:#f5faf7}.earth-export h3{margin:0 0 8px;font-size:17px}.earth-export p{line-height:1.65}.earth-export button{max-width:100%;white-space:normal}.earth-export a{display:inline-block;margin:4px 0}

/* Customer presentations keep editing tools out of the explanation surface. */
.presentation-editor{width:min(1100px,96vw);max-width:1100px;background:#fff}
.presentation-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.presentation-heading h2{margin:3px 0 12px}.presentation-heading small{color:var(--muted)}.presentation-heading>button{font-size:24px;padding:0 10px}
.presentation-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.presentation-editor label,.presentation-share label,.presentation-narrative label{display:block;font-size:13px;font-weight:600;margin:12px 0}.presentation-editor input:not([type=file]),.presentation-editor textarea,.presentation-share input,.presentation-narrative select{display:block;width:100%;min-width:0;margin-top:6px;border:1px solid #bdcdc3;border-radius:6px;padding:10px;font:inherit;color:var(--ink);background:#fff}.presentation-editor textarea{resize:vertical;line-height:1.6}.presentation-page-edit{border:1px solid var(--line);border-radius:10px;padding:18px;background:#f6f9f6;align-self:start}.presentation-page-edit h3{margin-top:0}
.presentation-pages{list-style:none;padding:0;display:grid;gap:6px;max-height:270px;overflow:auto}.presentation-pages button{width:100%;text-align:left;padding:10px 12px;overflow-wrap:anywhere}.presentation-pages button[aria-current=true]{border-color:var(--teal);box-shadow:inset 3px 0 var(--teal);background:#eef6f1;font-weight:600}.presentation-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.presentation-actions button,.presentation-actions a,.presentation-actions .file-button{margin:0!important;white-space:normal}.presentation-main-actions{border-top:1px solid var(--line);padding-top:16px}.presentation-status{font-size:13px;min-height:24px;color:var(--teal)}.presentation-status.error{color:#9c372c}
.presentation-bar{position:sticky;top:0;z-index:12;display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border-bottom:1px solid var(--line);padding:14px 24px}.presentation-bar h1{font-size:20px;line-height:1.4;margin:3px 0;overflow-wrap:anywhere}.presentation-bar small{font-size:11px;letter-spacing:.1em;color:var(--teal)}.presentation-bar .presentation-actions{flex-shrink:0}.presentation-bar button{font-size:12px}
.presenting>.top,.presenting .tabs,.presenting>#sharedNotice,.presentation-reader>.top,.presentation-reader .tabs,.presentation-reader>#sharedNotice{display:none!important}
.presenting .workspace>.sidebar,.presentation-reader .workspace>.sidebar,.presenting .terrain-toolbar,.presentation-reader .terrain-toolbar,.presenting .viewer-top,.presentation-reader .viewer-top,.presenting #docsMain,.presentation-reader #docsMain{display:none!important}
.presenting .workspace,.presentation-reader .workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;min-height:0;max-width:1600px;margin:0 auto;height:auto;align-items:start;padding-bottom:78px}
.presenting .stage,.presentation-reader .stage{min-width:0}.presenting .stage #canvasWrap,.presentation-reader .stage #canvasWrap{width:100%;max-width:calc(68dvh * 4 / 3);align-self:center;height:auto;aspect-ratio:4 / 3;min-height:0}
.presenting .inspect-head,.presenting .profile-status,.presenting .profile-foot,.presenting .profile-legend button,.presenting .distance-panel>div,.presentation-reader .inspect-head,.presentation-reader .profile-status,.presentation-reader .profile-foot,.presentation-reader .profile-legend button,.presentation-reader .distance-panel>div{display:none!important}
.presenting .inspect:has(#profileArea[hidden]):has(#distancePanel[hidden]),.presentation-reader .inspect:has(#profileArea[hidden]):has(#distancePanel[hidden]){display:none}
.presentation-narrative{padding:25px 22px;background:white;min-width:0;border-left:1px solid var(--line)}.presentation-number{margin:0;color:var(--teal);font-size:12px;letter-spacing:.12em;font-weight:700}.presentation-narrative h2{font-size:23px;line-height:1.5;overflow-wrap:anywhere;margin:12px 0}.presentation-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85;font-size:15px}.presentation-condition{font-size:12px;line-height:1.7;background:#eef3ec;padding:10px;border-radius:6px}.presentation-narrative details{border-block:1px solid var(--line);padding:12px 0;margin:20px 0}.presentation-narrative summary{font-size:13px;cursor:pointer}.presentation-narrative details p{font-size:13px}.presentation-narrative>button{width:100%}
.presentation-footer{position:fixed;bottom:0;inset-inline:0;z-index:14;display:flex;justify-content:center;align-items:center;gap:24px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line)}.presentation-footer button{min-width:130px;min-height:44px}.presentation-footer span{font-size:14px;text-align:center;min-width:65px}
.presentation-prep{position:sticky;top:0;z-index:15;background:#e6f1e9;border-block:1px solid #8bad98;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 22px}.presentation-prep strong{font-size:15px}.presentation-prep span{font-size:13px}.presentation-prep button{font-size:13px}
.presentation-error{margin:30px auto;padding:24px;max-width:650px;background:white;border:1px solid #d7b3ac;border-radius:10px}.presentation-error p{overflow-wrap:anywhere}.presentation-failed .workspace{display:none!important}.presentation-busy .stage{visibility:hidden}.presentation-share [data-status]{font-size:13px;color:var(--teal)}.presentation-share a:not([href]){pointer-events:none;opacity:.4}.presentation-share ol{font-size:14px;line-height:1.8}
@media(max-width:1000px){.presenting .workspace,.presentation-reader .workspace{grid-template-columns:minmax(0,1fr) 280px}.presentation-narrative{padding:20px 16px}.presentation-narrative h2{font-size:20px}.presentation-bar{padding:10px 16px;flex-wrap:wrap}.presentation-bar h1{font-size:18px}}
@media(max-width:700px){.presentation-editor-grid{grid-template-columns:1fr;gap:12px}.presentation-editor{padding:16px}.presentation-pages{max-height:180px}.presenting .workspace,.presentation-reader .workspace{display:flex;flex-direction:column;padding-bottom:90px}.presenting .stage,.presentation-reader .stage{width:100%;order:0}.presentation-narrative{order:1;width:100%;border-left:0;border-top:1px solid var(--line);padding:18px}.presentation-narrative h2{font-size:20px;margin:8px 0}.presentation-narrative .presentation-text{margin:8px 0;line-height:1.7}.presentation-narrative details{margin:12px 0}.presentation-bar{position:static;gap:8px}.presentation-bar .presentation-actions{gap:5px}.presentation-bar button{padding:6px 9px}.presentation-footer{gap:10px;padding-inline:12px}.presentation-footer button{min-width:0;flex:1}.presentation-footer span{font-size:12px}.presenting .eye-map-panel,.presentation-reader .eye-map-panel{width:120px;right:6px;top:6px}.presenting .eye-map-panel small,.presenting .eye-map-panel button,.presentation-reader .eye-map-panel small,.presentation-reader .eye-map-panel button{display:none}.presenting .eye-map-panel strong,.presentation-reader .eye-map-panel strong{font-size:11px}.presenting .eye-hud,.presentation-reader .eye-hud{max-width:calc(100% - 140px);left:6px;top:6px;padding:7px}.presenting .eye-hud strong,.presenting .eye-hud span,.presentation-reader .eye-hud strong,.presentation-reader .eye-hud span{font-size:11px}.presenting .eye-hud small,.presentation-reader .eye-hud small{font-size:10px}.presenting .height-tools,.presentation-reader .height-tools{left:6px;right:6px;gap:5px;flex-wrap:wrap;justify-content:flex-end}.presenting .height-tools output,.presenting .height-tools button,.presentation-reader .height-tools output,.presentation-reader .height-tools button{font-size:11px;padding:0 6px}.presenting .eye-walk,.presentation-reader .eye-walk{display:none}}

/* Keep gesture choice outside the map, with the same controls in customer view. */
.gesture-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:7px 12px;background:#fff;border-bottom:1px solid var(--line);flex-shrink:0}
.gesture-toolbar label{display:flex;align-items:center;gap:8px;font-size:12px;margin:0;white-space:nowrap}.gesture-toolbar select{width:auto;margin:0;min-height:32px;padding:4px 24px 4px 8px;font-size:13px}.gesture-toolbar span{font-size:12px;color:var(--muted)}.gesture-toolbar button{font-size:12px;padding:4px 8px;min-height:32px;margin-left:auto}
.presentation-pose-status{font-size:12px;color:var(--teal);min-height:2em}.presentation-footer [data-reset]{font-size:13px;min-width:110px}.presentation-footer .view-changed{border-color:var(--teal);background:#e7f3ed;box-shadow:inset 0 0 0 1px var(--teal)}
@media(max-width:700px){.gesture-toolbar{padding:6px 8px;gap:5px}.gesture-toolbar>span{display:none}.gesture-toolbar select,.gesture-toolbar button{min-height:36px}.presentation-footer{gap:6px;padding-inline:8px}.presentation-footer button{padding:7px 5px;font-size:12px}.presentation-footer [data-reset]{min-width:0;font-size:12px}.presentation-footer span{min-width:36px}.presentation-footer{padding-bottom:calc(12px + env(safe-area-inset-bottom))}}

/* Customer-facing type and comparison evidence remain readable without covering the map. */
.presentation-narrative .presentation-text{font-size:1rem;line-height:1.8}.presentation-narrative label,.presentation-editor label,.presentation-share label{font-size:.875rem}
.presentation-compare{margin:16px 0;padding:12px;border:1px solid #a8c4b5;border-radius:8px;background:#f2f7f3}.presentation-compare>strong{font-size:.875rem}.presentation-compare>div{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.presentation-compare button{flex:1;min-height:44px;font-size:.875rem;white-space:normal;min-width:0}.presentation-compare [aria-pressed=true]{color:#fff;background:#246b60;border-color:#246b60}.presentation-compare p{font-size:.875rem;line-height:1.6;margin-bottom:0}
.presentation-facts{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:12px 0}.presentation-facts li{font-size:.875rem;background:#edf3ee;border:1px solid #d8e3db;border-radius:4px;padding:4px 7px}.presentation-condition{font-size:.875rem;line-height:1.7}.presentation-narrative .small,.presentation-narrative details p,.presentation-narrative summary{font-size:.875rem}
.presentation-photo{margin:18px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.presentation-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#edf1ed}.presentation-photo figcaption{padding:12px;font-size:.875rem;line-height:1.7;overflow-wrap:anywhere}.presentation-photo strong,.presentation-photo span,.presentation-photo small{display:block}.presentation-photo small{font-size:.8125rem;color:#526663}.presentation-photo a{display:inline-block;padding:8px 0}.presentation-photo [data-photo-error]{color:#953c25;background:#fff3ea;padding:8px}
.presentation-review{padding:12px;border:1px solid var(--line);border-radius:7px;margin:16px 0;background:#f6f8f5}.presentation-review summary{cursor:pointer;font-size:.875rem;font-weight:600}.presentation-review ul{padding-left:20px;font-size:.875rem;line-height:1.75;overflow-wrap:anywhere}
.presentation-editor [data-photo-editor]{padding:12px;border:1px solid var(--line);border-radius:6px;margin:12px 0}.presentation-editor [data-photo-editor] summary{cursor:pointer;font-size:.875rem}.presentation-editor input,.presentation-editor textarea,.presentation-editor select{max-width:100%;min-width:0}.presentation-editor .small,.presentation-share .small{font-size:.875rem}
.presentation-bar button,.presentation-narrative button,.presentation-footer button{min-height:44px;font-size:.875rem}.presentation-footer span{font-size:.875rem}.presentation-footer [data-reset]{font-size:.875rem}.presentation-pose-status{font-size:.8125rem}.presentation-bar h1{font-size:1.25rem}.presentation-narrative h2{font-size:1.4rem}.presentation-narrative [data-contact-status]{font-size:.875rem}
.presenting .eye-hud,.presentation-reader .eye-hud{display:none}.presenting .eye-warning,.presentation-reader .eye-warning{font-size:.875rem}
.presenting .gesture-toolbar label,.presenting .gesture-toolbar select,.presenting .gesture-toolbar button,.presentation-reader .gesture-toolbar label,.presentation-reader .gesture-toolbar select,.presentation-reader .gesture-toolbar button{font-size:.875rem;min-height:36px}
.presentation-editor textarea:focus-visible,.presentation-share input:focus-visible,.presentation-narrative summary:focus-visible,.presentation-editor summary:focus-visible,.presentation-review summary:focus-visible{outline:3px solid #b67716;outline-offset:3px}
@media(max-width:700px){.presentation-narrative .presentation-text{font-size:1rem}.presentation-bar .presentation-actions{flex-wrap:wrap}.presentation-footer{gap:5px}.presentation-footer button,.presentation-footer [data-reset]{font-size:.875rem;min-width:0;white-space:normal;line-height:1.35}.presentation-footer span{font-size:.8125rem;min-width:34px}.presentation-bar h1{font-size:1.125rem}.presentation-narrative h2{font-size:1.25rem}.presenting .gesture-toolbar,.presentation-reader .gesture-toolbar{flex-wrap:wrap}.presenting .gesture-toolbar label,.presentation-reader .gesture-toolbar label{flex-wrap:wrap;min-width:0;max-width:100%}.presenting .gesture-toolbar select,.presentation-reader .gesture-toolbar select{min-width:0;max-width:100%}.presentation-photo img{max-height:45dvh}.presenting .eye-map-panel,.presentation-reader .eye-map-panel{width:100px}.presenting .eye-map-panel strong,.presentation-reader .eye-map-panel strong{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){.presenting *,.presentation-reader *,.presentation-editor *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.viewer-failure{max-width:660px;margin:32px auto;padding:24px;background:#fff;border:1px solid #bc9d85;border-radius:10px;overflow-wrap:anywhere}.viewer-failure p{font-size:1rem;line-height:1.75}.viewer-failure>div{display:flex;gap:8px;flex-wrap:wrap}.viewer-failure button{min-height:44px}.viewer-failed .workspace{display:none!important}

/* Compare beside the map, so phone users can see the effect immediately. */
.stage .presentation-compare{display:flex;align-items:center;gap:12px;margin:0;padding:8px 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;flex-shrink:0}.stage .presentation-compare>div{margin:0;flex:1;max-width:520px}.stage .presentation-compare button{padding:7px 10px}.presentation-narrative [data-comparison-note]{font-size:.875rem;padding:10px;background:#eef4ef;line-height:1.65}
.presenting .height-tools,.presentation-reader .height-tools{display:none!important}
@media(max-width:700px){.stage .presentation-compare{display:block;padding:6px 8px}.stage .presentation-compare>strong{display:block;font-size:.8125rem;margin-bottom:4px}.stage .presentation-compare>div{display:flex;gap:6px}.stage .presentation-compare button{padding:6px;font-size:.875rem;min-height:44px}}

/* Reader text can be enlarged without obscuring the map or its controls. */
.presenting .presentation-text,.presenting .presentation-condition,.presenting .presentation-facts,.presenting .presentation-photo figcaption,.presenting [data-comparison-note]{font-size:var(--presentation-copy-size,1rem);overflow-wrap:anywhere;line-height:1.65}
.presenting .presentation-photo small{font-size:inherit}
.presentation-bar>div{min-width:0}.presentation-bar .presentation-actions{min-width:0;max-width:100%;flex-shrink:1}

/* Keep elevation and its three controls in one compact row. */
@media(max-width:1100px){.height-tools,.eye-active .height-tools{gap:4px}.height-tools>div{gap:4px}.height-tools output,.height-tools button,.eye-active .height-tools output,.eye-active .height-tools button{font-size:12px;padding:0 5px}}
@media(max-width:600px){.eye-active .eye-walk{bottom:3.25rem}}
@media(max-width:850px){.workspace>.stage{width:100%;max-width:100%}}
@media(max-width:360px){.height-tools output,.height-tools button,.eye-active .height-tools output,.eye-active .height-tools button{padding-inline:3px}}

/* Keep the purpose tabs above every map or document panel. */
#terrainMain{display:contents}.stage>.tabs{flex:none;gap:1.5rem;padding:0 1rem}.stage>.tabs button{min-height:44px;padding:.45rem .15rem;white-space:nowrap}.stage>#docsMain{min-width:0}
@media(max-width:850px){.stage>.tabs{justify-content:flex-start;gap:.5rem;padding:0 .75rem}.stage>.tabs button{font-size:.8rem}}
@media(max-width:400px){.stage>.tabs{justify-content:space-between;gap:3px;padding:0 4px}.stage>.tabs button{font-size:12px;padding-inline:1px}}
/* Leave the height controls clear inside the shorter mobile eye-level canvas. */
@media(max-width:600px){.eye-map-panel{width:120px}.eye-map-panel small{display:none}}
