:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}:root{color-scheme:light;--sidebar-width: clamp(320px, 26vw, 410px);--bg: #f8f8f8;--bg-deep: #f1f1f1;--panel: #ffffff;--panel-strong: #ffffff;--panel-dark: #417690;--ink: #333333;--ink-soft: #666666;--line: #dddddd;--line-strong: #cccccc;--accent: #79aec8;--accent-strong: #417690;--amber: #a47025;--green: #5b8a3c;--red: #a64635;--fill: #417690;--cut: #a64635;--zero: #d9d9d9;--shadow: 0 1px 0 rgba(255, 255, 255, .95);--radius-sm: 2px;--radius-md: 3px;--radius-lg: 3px;--dock-pad: clamp(.42rem, .7vw, .7rem);--ui-font: "Segoe UI", "Tahoma", sans-serif;--mono-font: "Lucida Console", "Consolas", "Courier New", monospace;font-family:var(--ui-font)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{width:100%;height:100%;overflow:hidden}html{font-size:17px}body{margin:0;color:var(--ink);background:linear-gradient(180deg,#fafafa,#f4f4f4);font-size:11.5px}button,input,select,textarea{font:inherit}button{cursor:pointer}#app{width:100%;height:100vh;height:100dvh;overflow:hidden}.workspace{width:100%;height:100vh;height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.auth-screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:9;display:grid;place-items:center;background:linear-gradient(180deg,#355f74f5,#213f4ef5)}.auth-card{width:min(360px,92vw);background:#fff;border-radius:var(--radius-lg);padding:1rem 1.2rem;border:1px solid #cdd7df;box-shadow:0 12px 30px #0000002e}.auth-logo{display:block;width:min(220px,80%);margin:0 auto 1.5rem;object-fit:contain}.auth-title{font-weight:700;font-size:.86rem;margin-bottom:.2rem}.auth-subtitle{font-size:.6rem;color:var(--ink-soft);margin-bottom:.8rem}.auth-form{display:grid;gap:.6rem}.auth-error{background:#f8e0dd;color:#8a2d24;border:1px solid #e2b8b2;padding:.4rem .5rem;border-radius:var(--radius-sm);font-size:.58rem}.topbar-user{margin-left:auto;text-align:right;padding:0;font-weight:300;font-size:.6875rem;letter-spacing:.5px;text-transform:uppercase;color:#fff;align-self:center}.topbar-user strong{font-weight:600}.topbar-link{color:#fff;text-decoration:none}.topbar-link:hover{text-decoration:underline;color:#fff}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;padding:.22rem .38rem .2rem;padding-left:var(--dock-pad);background:linear-gradient(180deg,#417690,#355f74);color:#ffc;border-bottom:1px solid #264b5d;box-shadow:inset 0 1px #ffffff24}.brand-block{max-width:720px}.product-tag{color:#f5dd5d;font-size:.78rem;font-weight:300;letter-spacing:.5px;text-transform:uppercase}.brand-block h1{display:none}.brand-block p{margin:.16rem 0 0;max-width:72ch;color:#ffffffc7;font-size:.66rem;line-height:1.18}.topbar-stats{display:grid;grid-template-columns:repeat(3,minmax(72px,1fr));gap:.2rem;width:min(360px,100%);margin-left:auto;justify-content:end}.stat-box{padding:.2rem .28rem;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-sm);background:#ffffff14;box-shadow:none;text-align:center}.stat-box span{display:block;color:#ffffffbd;font-size:.46rem;letter-spacing:.08em;text-transform:uppercase}.stat-box strong{display:block;margin-top:.06rem;font-size:.68rem;line-height:1.1;font-family:var(--mono-font);color:#fff}.stat-box-time strong{font-size:.62rem}.app-grid{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:0;overflow:hidden}.dock{height:100%;min-height:0;padding:var(--dock-pad);overflow-y:auto;overscroll-behavior:contain}.dock-left{border-right:1px solid var(--line);background:#f6f6f6}.sidebar-stack{display:flex;flex-direction:column;gap:.58rem}.map-stage{height:100%;min-height:0;overflow:hidden;display:grid;grid-template-rows:minmax(0,1fr) 228px;background:#eef2f5}.map-viewport{position:relative;min-height:0;overflow:hidden;background:linear-gradient(180deg,rgba(65,118,144,.05),transparent 16%),linear-gradient(180deg,#edf2f5,#e5eaee)}#map{width:100%;height:100%;min-height:0}.map-bottom-panel{min-height:0;border-top:1px solid var(--line);background:linear-gradient(180deg,#fafafa,#f1f3f5);display:flex;flex-direction:column;overflow:hidden}.bottom-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.65rem;padding:.36rem .5rem .28rem;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f8fbfd,#edf3f7)}.bottom-panel-tag{color:var(--accent-strong);font-size:.48rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.bottom-panel-head h2{margin:.1rem 0 0;font-size:.72rem;line-height:1.1;color:var(--ink)}.bottom-panel-filters{display:flex;align-items:flex-end;gap:.4rem}.bottom-panel-filters label{min-width:130px}.calculation-table-wrap{min-height:0;overflow:auto;padding:0}.calculation-table{width:100%;border-collapse:collapse;table-layout:fixed;background:#fff}.calculation-table th,.calculation-table td{padding:.34rem .42rem;border-bottom:1px solid #e7e7e7;vertical-align:middle;font-size:.68rem}.calculation-table th{position:sticky;top:0;z-index:1;background:#f3f6f9;color:var(--ink-soft);font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-align:left}.calculation-table th.numeric-header,.calculation-table .numeric-cell{text-align:right;border-left:1px solid #e1e6ee}.calculation-table th.numeric-header{width:9%}.calculation-table th.note-header{width:20%;text-align:right}.calculation-table th.action-header{width:18%;text-align:right}.table-head-note{display:inline-block;margin-top:.08rem;color:var(--ink-soft);font-size:.52rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.calculation-table td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calculation-table td.note-cell{white-space:normal;line-height:1.25}.calculation-table td.action-cell{display:flex;justify-content:flex-end;gap:.24rem}.calculation-table .table-action{font-size:.56rem}.calculation-table .table-action.danger{color:#b3362d;border-color:#e0b3ad}.calculation-table tbody tr:hover{background:#79aec814}.calculation-table .numeric-cell{font-family:var(--mono-font);font-variant-numeric:tabular-nums;letter-spacing:.02em;font-weight:600}.calculation-table th.technical-head{font-family:var(--mono-font);font-variant-numeric:tabular-nums;letter-spacing:.08em}.calculation-table .unit{text-transform:none;letter-spacing:.04em;font-size:.9em}.calculation-table .cut-cell{color:var(--cut)}.calculation-table .fill-cell{color:var(--fill)}.calculation-table .net-cell{color:var(--ink);font-weight:700}.calculation-table-empty{text-align:center;color:var(--ink-soft);padding:1rem .5rem}.module{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.accordion-module{padding:0}.intro-module{background:var(--panel)}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;padding:.42rem .5rem;background:linear-gradient(180deg,#79aec8,#699bb4);border-bottom:1px solid #5b8aa1}.accordion-summary{list-style:none;cursor:pointer}.accordion-summary::-webkit-details-marker{display:none}.section-kicker{display:flex;align-items:center;gap:.35rem}.section-step{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;padding:.12rem .28rem;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:#ffffff1f;color:#fff;font-size:.48rem;font-weight:700;letter-spacing:.12em}.section-tag{color:#fffc;font-size:.46rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.section-head h2{margin:.18rem 0 0;font-size:.69rem;line-height:1.15;letter-spacing:.02em;color:#fff}.section-subtitle{margin:.18rem 0 0;color:#ffffffd1;font-size:.56rem;line-height:1.3}.accordion-indicator{position:relative;flex:0 0 auto;width:1.4rem;height:1.4rem;margin-top:.02rem;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:#ffffff14}.accordion-indicator:before,.accordion-indicator:after{content:"";position:absolute;top:50%;left:50%;width:.56rem;height:1px;background:#fff;transform:translate(-50%,-50%)}.accordion-indicator:after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .14s ease}.accordion-module[open] .accordion-indicator:after{transform:translate(-50%,-50%) rotate(0)}.accordion-body{padding:.56rem}.chip-row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.45rem}.signal-chip,.badge,.visible-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .48rem;border-radius:999px;font-size:.64rem;font-weight:700;letter-spacing:.06em}.signal-chip.ok,.badge.success{color:#245c40;background:#2f8f5b24}.signal-chip.warn,.badge.warn{color:#8a6112;background:#c78a1b29}.badge.danger{color:#943927;background:#b64a3824}.badge.raster,.visible-chip.raster{color:#0e6794;background:#1490c21f}.badge.vector,.visible-chip.vector{color:#74520d;background:#c78a1b24}.visible-chip.aoi{color:#8a6112;background:#c78a1b29}.badge.neutral{color:var(--ink-soft);background:#5a6c7d1a}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem;margin-bottom:.62rem}.summary-card{padding:.46rem .48rem;border:1px solid var(--line);border-radius:var(--radius-md);background:#fbfbfb;text-align:center;box-shadow:none}.summary-card span{display:block;color:var(--ink-soft);font-size:.54rem;letter-spacing:.08em;text-transform:uppercase}.summary-card strong{display:block;margin-top:.18rem;font-size:.8rem;font-family:var(--mono-font)}.layer-list,.job-list{display:flex;flex-direction:column;gap:.5rem}.aoi-layer-list{margin-top:.78rem}.layer-card,.job-card{padding:.38rem .42rem;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;box-shadow:none}.layer-card+.layer-card,.job-card+.job-card{margin-top:.42rem}.layer-card{display:block;min-width:0}.layer-main{min-width:0}.layer-name,.job-card h3{margin:0;font-size:.72rem;line-height:1.2;letter-spacing:.01em}.layer-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:.18rem}.badge-row{display:flex;flex-wrap:nowrap;gap:.28rem;flex:0 0 auto;overflow:hidden}.layer-meta,.job-meta,.job-message,.job-target,.empty-inline,.empty-state{color:var(--ink-soft);font-size:.62rem;line-height:1.35}.layer-meta{margin-top:.42rem}.layer-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:.18rem;width:100%}.layer-actions-triple{gap:.22rem}.layer-actions-five{grid-template-columns:2rem 2rem repeat(3,minmax(0,1fr))}.layer-actions-six{grid-template-columns:2rem 2rem repeat(4,minmax(0,1fr))}button,.map-tool{padding:.34rem .46rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:linear-gradient(180deg,#fafafa,#ececec);color:#333;font-weight:700;letter-spacing:.01em;box-shadow:inset 0 1px #ffffffbf;transition:border-color .12s ease,background .12s ease}button:hover,.map-tool:hover{background:linear-gradient(180deg,#fff,#f0f0f0)}button:active,.map-tool:active{background:linear-gradient(180deg,#e9e9e9,#f8f8f8);box-shadow:inset 0 1px 1px #00000014}button.secondary{background:linear-gradient(180deg,#fafafa,#ededed);color:var(--ink)}button.ghost,.ghost{background:linear-gradient(180deg,#fff,#f1f1f1);color:var(--ink)}.primary-action,.toggle-button.is-on{background:linear-gradient(180deg,#79aec8,#5f97b3);border-color:#4f7f98;color:#fff}.primary-action:hover,.toggle-button.is-on:hover{background:linear-gradient(180deg,#86b7cf,#679eb8)}.compact{padding:.24rem .34rem;font-size:.58rem;line-height:1.05}.layer-action-button{flex:1 1 0;min-width:0;justify-content:center;text-align:center;padding:.28rem .34rem;font-size:.58rem}.remove-layer-button{color:#5b1208;border-color:#cfbbb7;background:linear-gradient(180deg,#f8ece9,#efd9d5)}.remove-layer-button:hover{background:linear-gradient(180deg,#faf0ee,#f1ddda)}.toggle-button{min-width:0;background:linear-gradient(180deg,#fafafa,#ececec);color:var(--ink)}.toggle-button.is-on{color:#fff}.layer-card .badge{max-width:88px;padding:.2rem .45rem;font-size:.64rem;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.primary-action{width:100%;margin-top:.25rem}.form-grid{display:grid;gap:.75rem}.layer-picker-grid{grid-template-columns:1fr;margin-bottom:.9rem}.layer-stack-hint{margin-bottom:.55rem}label{display:flex;flex-direction:column;gap:.28rem;font-size:.62rem;font-weight:700;letter-spacing:.02em}.field-hint{margin-top:-.28rem;color:var(--ink-soft);font-size:.56rem;line-height:1.3}.field-hint[data-tone=locked]{color:var(--accent-strong)}.field-hint[data-tone=warning]{color:#8a6112}.layer-opacity-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;margin-top:.34rem}.layer-opacity-control{gap:.18rem;font-size:.56rem}.layer-opacity-control span{color:var(--ink-soft);font-weight:700;letter-spacing:.03em;text-transform:uppercase}.layer-opacity-control input[type=range]{padding:0;border:none;box-shadow:none;background:transparent}.layer-opacity-value{min-width:2.7rem;text-align:right;font-family:var(--mono-font);font-size:.58rem;color:var(--ink)}input,select,textarea{width:100%;padding:.34rem .4rem;border:1px solid #ccc;border-radius:var(--radius-sm);background:#fff;color:var(--ink);font-size:.62rem;box-shadow:inset 0 1px 2px #0000000d}input.input-locked,textarea.input-locked{background:#ebeff3f5;color:var(--ink-soft)}input:focus,select:focus,textarea:focus,button:focus{outline:2px solid rgba(20,144,194,.22);outline-offset:1px}input:disabled,select:disabled,textarea:disabled,button:disabled{cursor:not-allowed;opacity:.62}.button-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:.32rem;margin-top:.42rem}.button-row.aoi-actions{grid-template-columns:repeat(3,minmax(0,1fr))}select:disabled,input:disabled,textarea:disabled{background:#f0f0f0;color:#9aa1aa;border-color:#d1d1d1;box-shadow:none}button:disabled{background:#e6e6e6;color:#8f8f8f;border-color:#d1d1d1;box-shadow:none}.technical-note{margin-top:.48rem;padding:.42rem .48rem;border:1px solid var(--line);border-radius:var(--radius-md);background:#fafafa}.subtraction-note{margin-top:.36rem;margin-bottom:.42rem;border-color:#c7d7e1;background:#f7f9fb}.technical-note.aoi-note{background:#eef8f1;border-color:#b9d8c2}.technical-note.aoi-visual-note{background:#f1f4f7;border-color:#c7d2dc}.technical-note.compare-note{background:#eef4fb;border-color:#b8c9e3}.technical-note.order-note{background:#f8f1e6;border-color:#e0c9a8}.technical-note-title{font-weight:700}.technical-note-body,.draw-status,.status-text{color:var(--ink-soft);font-size:.62rem;line-height:1.35}.draw-status{margin-top:.45rem}.analysis-summary{display:flex;flex-direction:column;gap:.8rem}.result-card{padding:.5rem .54rem;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;box-shadow:none}.result-card.accent{background:linear-gradient(90deg,rgba(166,70,53,.05),transparent 16%),linear-gradient(90deg,rgba(121,174,200,.08),transparent 34%),#fff}.result-card.muted{background:#f5f7f9fa}.result-label{display:block;color:var(--ink-soft);font-size:.54rem;letter-spacing:.1em;text-transform:uppercase}.result-card strong{display:block;margin-top:.14rem;font-size:.7rem;line-height:1.2}.result-meta{margin-top:.16rem;color:var(--ink-soft);font-size:.62rem;line-height:1.35}.result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.result-head-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.18rem}.result-head-time{color:var(--ink-soft);font-size:.54rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.metric-board,.job-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem;margin-top:.42rem}.metric-board-technical{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-tile,.job-metric{padding:.46rem .48rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fbfbfb;text-align:center;box-shadow:none}.metric-tile span,.job-metric span{display:block;color:var(--ink-soft);font-size:.52rem;letter-spacing:.1em;text-transform:uppercase}.metric-tile strong,.job-metric strong{display:block;margin-top:.14rem;font-size:.82rem;font-family:var(--mono-font);word-break:break-word}.metric-tile-cut{border-left:3px solid var(--cut);background:linear-gradient(180deg,#a6463514,#fff)}.metric-tile-fill{border-left:3px solid var(--fill);background:linear-gradient(180deg,#41769014,#fff)}.metric-tile-balance{border-left:3px solid #bfbfbf;background:linear-gradient(180deg,#d9d9d942,#fff)}.metric-tile-cut strong{color:var(--cut)}.metric-tile-fill strong{color:var(--fill)}.jobs-module{margin-bottom:0}.job-card.active{border-color:#41769085;box-shadow:inset 0 0 0 1px #79aec82e}.job-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.job-message{margin-top:.5rem}.job-target{margin-top:.35rem;font-family:var(--mono-font)}.map-toolbar{position:absolute;top:.62rem;left:.62rem;z-index:4;display:flex;gap:.24rem;flex-wrap:wrap;max-width:calc(100% - 1.24rem)}.map-tool{padding:.28rem .42rem;font-size:.58rem;letter-spacing:.08em;text-transform:uppercase}.map-hud{position:absolute;z-index:3}.map-hud-left{left:1rem;bottom:1rem;max-width:340px;display:flex;flex-direction:column;gap:.5rem}.map-hud-right{right:1rem;bottom:1rem;max-width:360px}.legend-box{position:absolute;top:1rem;right:1rem;z-index:3;padding:.42rem;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fffffff5;box-shadow:var(--shadow);min-width:190px}.legend-scale{display:flex;gap:.38rem;align-items:stretch}.legend-gradient{width:16px;height:110px;border-radius:6px;border:1px solid #d6d6d6;background:linear-gradient(180deg,#1f4aa8,#e6eef9,#b12a1e)}.legend-labels{display:flex;flex-direction:column;justify-content:space-between;font-size:.58rem;color:var(--ink-soft)}.legend-label{line-height:1}.hud-panel,.status-box{padding:.42rem;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fffffff5;box-shadow:none;color:#111;transition:background-color .16s ease,border-color .16s ease,color .16s ease}.status-box[data-tone=success]{border-color:#5b8a3c73;background:#dceacd}.status-box[data-tone=warning]{border-color:#a4702573;background:#f1dfbf}.status-box[data-tone=danger]{border-color:#a6463580;background:#efd3cf}.status-box[data-tone=neutral]{border-color:#4176904d;background:#dbe7ee}.probe-box{margin-top:.42rem;padding:.38rem .42rem;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fffffffa;box-shadow:none}.probe-box-floating{position:absolute;z-index:5;margin-top:0;min-width:170px;max-width:min(260px,calc(100% - 1.6rem));pointer-events:none;border-color:#4176906b;background:#fffffffa}.probe-box strong{display:block;margin-bottom:.14rem;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase}.probe-box[data-tone=active] strong{color:var(--accent-strong)}.probe-box[data-tone=loading] strong{color:#8a6112}.probe-box[data-tone=muted] strong{color:var(--ink-soft)}.hud-title{margin-bottom:.38rem;color:var(--ink-soft);font-size:.52rem;letter-spacing:.12em;text-transform:uppercase}.active-layer-list{display:flex;flex-wrap:wrap;gap:.45rem}.empty-inline,.empty-state{padding:.2rem 0}.map-crosshair{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.map-crosshair:before,.map-crosshair:after{content:"";position:absolute;background:#0f78a238}.map-crosshair:before{top:50%;left:calc(50% - 18px);width:36px;height:1px}.map-crosshair:after{left:50%;top:calc(50% - 18px);width:1px;height:36px}.status-box strong{display:block;margin-bottom:.14rem;font-size:.66rem;color:#111}.statusbar{display:flex;flex-wrap:nowrap;align-items:stretch;gap:.18rem;padding:.18rem .28rem;border-top:1px solid var(--line);background:linear-gradient(180deg,#fafafa,#f0f0f0);overflow:hidden}.status-field{flex:1 1 0;padding:.18rem .28rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;min-width:0}.status-field span{display:block;color:var(--ink-soft);font-size:.46rem;letter-spacing:.08em;text-transform:uppercase}.status-field strong{display:block;margin-top:.08rem;font-size:.58rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-field-wide{flex:1.55 1 0}.mono{font-family:var(--mono-font)}.ol-zoom{top:auto;right:1rem;bottom:7.5rem;left:auto}.ol-control button{width:2rem;height:2rem;border-radius:var(--radius-sm);background:#0e1722e0;color:#edf4fa}.ol-control button:hover{background:#0e1722f5}.ol-scale-line{left:auto;right:1rem;bottom:1rem;background:#0e1722d6;border-radius:var(--radius-sm)}.ol-scale-line-inner{border-color:#edf4faeb;color:#edf4fa;font-family:var(--mono-font)}@media (max-height: 940px){.workspace{grid-template-rows:auto minmax(0,1fr)}.statusbar{display:none}.topbar{padding:.28rem .52rem;padding-left:var(--dock-pad)}.brand-block p{display:none}.topbar-stats{grid-template-columns:repeat(3,minmax(72px,1fr));width:min(360px,100%);margin-left:auto}.stat-box{padding:.28rem .38rem}.stat-box span{font-size:.52rem}.stat-box strong{font-size:.76rem}.dock{padding:.7rem}.sidebar-stack{gap:.68rem}.accordion-body{padding:.72rem}.map-toolbar{top:.72rem;left:.72rem;gap:.34rem;max-width:calc(100% - 1.44rem)}.map-tool{padding:.46rem .62rem;font-size:.72rem}.hud-panel,.status-box,.probe-box{padding:.72rem}}@media (max-height: 780px){.map-hud-left{display:none}.topbar-stats{grid-template-columns:repeat(auto-fit,minmax(76px,1fr));width:min(360px,100%);margin-left:auto}}@media (max-width: 1440px){.topbar{flex-direction:column}.topbar-stats{width:100%;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));justify-content:end}.app-grid{grid-template-columns:minmax(300px,360px) minmax(0,1fr)}}@media (max-width: 1240px){.app-grid{grid-template-columns:minmax(280px,340px) minmax(0,1fr)}.dock-left{border-right:1px solid rgba(144,160,176,.4)}}@media (max-width: 980px){.app-grid{grid-template-columns:1fr;grid-template-rows:minmax(280px,42vh) minmax(0,auto)}.map-stage{min-height:280px;grid-row:1;grid-template-rows:minmax(220px,1fr) 210px}.dock-left{grid-column:1;grid-row:2;border-left:0;border-right:0;border-top:1px solid rgba(144,160,176,.4)}.map-hud-left,.map-hud-right{position:static;margin:.75rem;max-width:none}.map-toolbar{right:.75rem;left:.75rem;top:.75rem;max-width:none}.button-row{grid-template-columns:1fr}}@media (max-width: 760px){.topbar{padding:.5rem .62rem;padding-left:var(--dock-pad)}.workspace{grid-template-rows:auto minmax(0,1fr)}.topbar-stats,.summary-grid,.metric-board,.job-metric-grid{grid-template-columns:1fr 1fr}.brand-block{max-width:none}.map-stage{min-height:0;grid-template-rows:minmax(220px,1fr) 200px}.bottom-panel-head{flex-direction:column;align-items:stretch}.bottom-panel-filters{width:100%}.bottom-panel-filters label{min-width:0;flex:1 1 0}.ol-zoom{right:.75rem;bottom:.75rem}.ol-scale-line,.statusbar{display:none}}@media (max-width: 640px){.topbar-stats,.summary-grid,.metric-board,.job-metric-grid,.layer-picker-grid,.layer-actions{grid-template-columns:1fr}.map-toolbar{position:static;padding:.7rem .7rem 0}.map-stage{overflow-y:auto;grid-template-rows:minmax(220px,1fr) 220px}.accordion-body{padding:.66rem}.bottom-panel-filters{flex-direction:column;align-items:stretch}.calculation-table th,.calculation-table td{font-size:.58rem;padding:.3rem .34rem}#map{min-height:260px}.map-hud-left,.map-hud-right{margin:.7rem}.hud-panel,.status-box,.probe-box{padding:.66rem}}
