/* Platform-wide reading scale. Loaded after route-specific styles. */
:root,body.map-workspace {
 --ink:#152e43;--muted:#4b6075;--border:#cbd6e1;--teal:#006b80;
 --teal-light:#dceff2;--navy:#142d45;--bg:#eaf0f6;
 --green:#08764d;--blue:#1663ad;--yellow:#8a5b00;--orange:#ad470a;--red:#b7253e;--purple:#74449c;
 --ui-title:#152e43;--ui-text:#283f55;--ui-secondary:#4b6075;--ui-accent:#006b80;--ui-navy:#142d45;--ui-line:#b8c9d8;
 color:var(--ink);background:var(--bg);font-family:'Microsoft YaHei','PingFang SC','Segoe UI',sans-serif;font-size:14px;
 font-weight:400;line-height:1.65;--shell-header:70px;--shell-footer:31px;--shell-sidebar:224px;
}
body {color:var(--ink)}
::selection {background:#b6e2ee;color:#102e46}
button,input,select,textarea {font:inherit}
a,.text-link {color:#00677e}
a:hover,.text-link:hover {color:#00485c}
.app-header,body.map-workspace .app-header {height:var(--shell-header);border-bottom:1px solid #bfcdda;box-shadow:0 2px 8px #18364e0c}
.app-brand,body.map-workspace .app-brand {width:var(--shell-sidebar);padding:0 18px;gap:12px;background:#142d45;color:white;border-color:#29445c}
.brand-icon,body.map-workspace .brand-icon {color:#50d3dd;width:34px}
.brand-text strong,body.map-workspace .brand-text strong {font-size:14px;font-weight:700;color:#fff;letter-spacing:0;line-height:1.45}
.brand-text small,body.map-workspace .brand-text small {font-size:12px;color:#bfd0de;margin-top:4px}
.header-project {min-width:225px;padding-left:26px}
.header-project small {font-size:12px;color:#4b6075;margin:0 0 3px}
.header-project strong,body.map-workspace .header-project strong {font-size:16px;color:#152e43;font-weight:700}
.header-context,body.map-workspace .header-context {font-size:13px;color:#425970;gap:24px;margin-left:22px}
.header-context b {font-weight:650;color:#203d54}
.header-actions {gap:16px;padding-right:24px}
.header-actions button,body.map-workspace .header-actions button {font-size:13px;color:#425970}
.header-actions .env-badge,body.map-workspace .header-actions .env-badge {font-size:12px;font-weight:600;background:#fff0d3;border:1px solid #dfbc76;color:#805000;padding:5px 10px;border-radius:5px}
.header-user-label,body.map-workspace .header-user-label {color:#344c62;font-size:13px}
.avatar {width:34px;height:34px;font-size:14px;background:#dceff2}
.connection-dot {width:7px;height:7px;background:#0b8a61}
.sidebar,body.map-workspace .sidebar {top:var(--shell-header);bottom:var(--shell-footer);width:var(--shell-sidebar);background:#142d45;border-color:#29445c;color:#e7eff6}
.sidebar-scroll {padding:15px 12px;scrollbar-color:#52718b transparent}
.nav-group {margin:5px 0 20px}
.nav-group h2,body.map-workspace .nav-group h2 {font-size:12px;font-weight:600;color:#adc0d1;letter-spacing:1px;margin:0 14px 8px}
.nav-item,body.map-workspace .nav-item {height:42px;font-size:14px;font-weight:500;gap:11px;padding:0 14px;border-radius:6px;color:#e3edf5;margin:3px 0}
.nav-item .icon {width:20px;height:20px;color:#aec8da;stroke-width:1.8}
.nav-item:hover,body.map-workspace .nav-item:hover {background:#233f59;color:#fff}
.nav-item.active,body.map-workspace .nav-item.active {background:#007c91;color:#fff;font-weight:700;box-shadow:0 3px 9px #061b2b33}
.nav-item.active .icon {color:#fff}
.nav-item.active:before,body.map-workspace .nav-item.active:before {background:#68e1de;height:26px;width:4px;border-radius:2px}
.nav-item .nav-count {font-size:12px;line-height:21px;background:#9ce6e6;color:#003d50}
.sidebar-footer,body.map-workspace .sidebar-footer {padding:15px 22px;font-size:12px;color:#bacddc;background:#10263b;border-color:#304b62;line-height:1.85}
.sidebar-footer strong,body.map-workspace .sidebar-footer strong {color:#e1ecf4;font-weight:500}
.sidebar-collapse,body.map-workspace .sidebar-collapse {font-size:12px;min-height:42px;background:#10263b;color:#cfdfeb;border-color:#304b62}
.sidebar-collapse:hover {background:#233f59}
.app-main,body.map-workspace .app-main {margin:var(--shell-header) 0 var(--shell-footer) var(--shell-sidebar);min-height:calc(100dvh - var(--shell-header) - var(--shell-footer));padding:25px 26px 34px;max-width:none}
body.map-workspace .app-main {height:calc(100dvh - var(--shell-header) - var(--shell-footer));min-height:0;padding:16px}
.system-footer,body.map-workspace .system-footer {height:var(--shell-footer);font-size:12px;color:#425970;background:#f8fafc;border-color:#c4d1dd;gap:22px;padding:0 20px}
.breadcrumb {font-size:12px;color:#4b6075;margin-bottom:6px}
.breadcrumb span {color:#4b6075}
h1,.page-heading h1 {font-size:24px;font-weight:700;line-height:1.45;letter-spacing:0;color:#152e43}
.page-heading {margin-bottom:23px;align-items:center}
.page-heading p {font-size:14px;color:#4b6075;line-height:1.8;margin-top:8px}
h2,.panel-header h2 {font-size:16px;font-weight:700;color:#1a364d}
h3 {font-size:14px;font-weight:650}
.panel {border:1px solid #c5d3df;border-radius:8px;box-shadow:0 2px 5px #193b5410}
.panel-header {min-height:60px;padding:15px 20px;background:#f8fafc;border-color:#ccd9e4}
.panel-header .eyebrow,.panel-actions {font-size:12px;color:#4b6075}
.panel-body {padding:22px}
.panel.dark>.panel-header h2 {color:#fff}
.panel.dark>.panel-header {background:#142d45;border-color:#34536b}
.eyebrow,.tiny {font-size:12px;color:#4b6075}
.muted {color:#4b6075}
.btn,.heading-actions .btn {font-size:13px;min-height:40px;padding:8px 14px;border-radius:5px;border-color:#9eb4c6;color:#294b62;font-weight:550}
.btn .icon {width:17px;height:17px}
.btn:hover {background:#e4eff5;border-color:#548599}
.btn.primary {color:#fff;background:#006b80;border-color:#006b80;box-shadow:0 2px 4px #006b801f}
.btn.primary:hover {background:#005366;border-color:#005366}
.btn.soft {background:#dceff2;color:#00576d;border-color:#9ecbd4}
.btn.danger {color:#a51e36;border-color:#d998a5}
.btn.small {font-size:12px;min-height:34px;padding:6px 11px}
.btn.link,.text-link {font-size:13px;font-weight:550;min-height:28px}
.chip {font-size:12px;line-height:1.5;padding:4px 9px;font-weight:550;border-radius:4px}
.chip.neutral {color:#3d536a;background:#e9eff5;border-color:#c8d5e0}
.chip.green {color:#08623e;background:#e1f2e9;border-color:#a8d4be}
.chip.blue {color:#15568f;background:#e1edfb;border-color:#adc9e7}
.chip.yellow {color:#785000;background:#fff2c9;border-color:#ddc47a}
.chip.orange {color:#943d0a;background:#ffead6;border-color:#e4b384}
.chip.red {color:#a11d35;background:#fce3e8;border-color:#e5a9b6}
.chip.purple {color:#68328f;background:#efe5f7;border-color:#cfb4e0}
table {font-size:14px}
th {font-size:13px;font-weight:650;color:#344d64;background:#eaf0f6;padding:13px 17px;border-color:#bfcedd}
td {font-size:14px;padding:15px 17px;color:#2e485e;border-color:#dae3eb;line-height:1.75}
td strong {font-weight:650;color:#16374e}
td .sub {font-size:12px;color:#4b6075;margin-top:4px}
tbody tr:nth-child(even) {background:#f8fafc}
tbody tr:hover {background:#eaf4f8}
.table-footer {font-size:12px;color:#4b6075;background:#f8fafc;border-color:#ccd9e4;padding:13px 18px;gap:14px}
.toolbar {padding:16px 18px;gap:12px}
.toolbar label,.field {font-size:13px;color:#3b5369}
.input,.select,input[type='number'],input[type='text'],input[type='datetime-local'],input[type='date'],input[type='search'],select,textarea {font-size:14px;color:#203e55;border:1px solid #9eb4c6;border-radius:5px;min-height:40px;padding:8px 11px;background:#fff}
input::placeholder,textarea::placeholder {color:#566c80;opacity:1}
input:focus,select:focus,textarea:focus {border-color:#006b80;outline:2px solid #007c9126}
.search-field .icon {top:12px;color:#526b80;width:18px;height:18px}
.search-field input {padding-left:37px}
.tabs button {font-size:14px;padding:14px 20px;color:#425b70;font-weight:500}
.tabs button.active {background:#e5f2f5;color:#005b70;font-weight:650;border-bottom-width:3px}
.kv>div,.kv.compact>div {font-size:14px;padding:11px 0;line-height:1.8;border-color:#dce5ed}
.kv dt {color:#4b6075;min-width:112px}
.kv dd {color:#233f55}
.notice {font-size:13px;color:#38576d;background:#eaf3f9;border-color:#b8cedf;padding:14px 17px;line-height:1.9}
.notice.warning {color:#795716;background:#fff3dc;border-color:#dfc38a}
.empty strong {font-size:14px;color:#38576d}
.empty p {font-size:13px;color:#52677b}
.quality-item {border:1px solid #c5d3df;border-top:4px solid #006b80;border-radius:7px;padding:20px 22px;background:#fff;box-shadow:0 2px 5px #193b5410}
.quality-item>span {font-size:14px;font-weight:550;color:#3b556d}
.quality-item strong {font-size:30px;font-weight:700;line-height:1.3;color:#123951;margin:14px 0 12px;font-variant-numeric:tabular-nums}
.quality-item p {font-size:13px;color:#4b6075;line-height:1.7}
.system-row {padding:18px 0;font-size:14px;color:#24435b}
.system-row p {font-size:13px;color:#4b6075;line-height:1.8;margin-top:6px}
.system-row>.icon,.inspection-task>.icon {color:#38748c;width:21px;height:21px}
.inspection-task {font-size:14px;padding:16px 0;color:#294b62}
.inspection-task small {font-size:12px;color:#52677b}
.monitor-metric .metric-title {font-size:13px;color:#3d586e;font-weight:550}
.monitor-metric .metric-value {font-size:26px;color:#123b52;font-weight:700;margin:12px 0}
.monitor-metric .metric-value small {font-size:13px;color:#52677b;font-weight:500}
.monitor-metric p {font-size:12px;color:#52677b}
.monitor-metric {border-color:#c5d3df;border-radius:7px;padding:18px}
.metric-cell>span {font-size:13px;color:#3e5b70;font-weight:550}
.metric-cell strong {font-size:28px;font-weight:700;color:#123b52}
.metric-cell strong small,.metric-cell>small {font-size:12px;color:#4b6075}
.network-point {font-size:14px;min-height:66px;color:#294c63}
.network-point small {font-size:12px;color:#4b6075}
.network-point.active {background:#ddf0f3}
.network-point .point-reading {font-size:15px;font-weight:650}
.monitor-layout {grid-template-columns:230px minmax(0,1fr);gap:20px}
.network-stats {font-size:13px;color:#4b6075}
.chart-box {padding:20px 22px 12px}
.chart {height:240px}
.chart.mini {height:180px}
.chart-title {font-size:14px;font-weight:600;margin-bottom:14px}
.chart-title>span,.chart-legend {font-size:12px;color:#4b6075;font-weight:400}
.chart-axis {fill:#3e556a;font-size:12px;font-weight:500}
.chart-unit {fill:#3e556a;font-size:12px}
.chart-grid {stroke:#cbd7e2;stroke-dasharray:4 4}
.chart-sampling-note {font-size:12px;color:#4b6075;margin-top:10px}
.summary-name h1 {font-size:24px;font-weight:700}
.summary-name p,.summary-cell small {font-size:12px;color:#4b6075}
.summary-cell>span {font-size:13px;color:#4b6075}
.summary-cell strong {font-size:14px;color:#1d3c53;font-weight:650}
.summary-cell {padding:22px 18px}
.facts-strip span {font-size:13px;color:#4b6075}
.facts-strip strong {font-size:24px;font-weight:700;color:#16394f}
.facts-strip strong small,.facts-strip p {font-size:12px;color:#52677b}
.project-summary {grid-template-columns:280px repeat(4,minmax(0,1fr));border-color:#c5d3df;border-left:4px solid #006b80;border-radius:7px}
.result-strip {background:#def0f4;border-color:#9cc7d3;border-left:4px solid #00788d;border-radius:6px}
.result-strip>div>span {font-size:14px;color:#275568;font-weight:550}
.result-strip>div>small {font-size:12px;color:#4b6075}
.result-strip strong {font-size:42px;font-weight:700;color:#005d73}
.result-strip strong small {font-size:14px;color:#41687a}
.parameter-card {background:#f5f8fb;border-color:#c4d3df;border-radius:6px;padding:18px}
.parameter-card h3 {font-size:14px;color:#244a61}
.check-fields label {font-size:13px;color:#3e5b70}
.ledger-summary {font-size:14px;background:#e7f1f8;color:#35576e;border-color:#b8d0e0;padding:13px 16px}
.ledger-summary span,.coordinate-note {font-size:12px}
dialog {width:min(1020px,calc(100vw - 40px));border-color:#93adbf;border-radius:9px;box-shadow:0 24px 90px #0a223c70;overflow:hidden}
body:has(dialog[open]) {overflow:hidden}
dialog::backdrop {background:#0b213773;backdrop-filter:blur(3px)}
.dialog-header {padding:18px 24px;background:#142d45;border-color:#34516a;color:white}
.dialog-header h2 {font-size:20px;color:#fff}
.dialog-header button {color:#fff;padding:7px;border-radius:4px}
.dialog-header button:hover {background:#ffffff20}
.dialog-body {padding:25px;line-height:1.8;max-height:calc(90dvh - 90px)}
.dialog-body .note-paragraph {font-size:14px;color:#38576d}
.dialog-body .chart {height:230px}
.user-menu {font-size:14px;border-color:#9ab2c5;box-shadow:0 9px 28px #142d4530}
.user-menu p {font-size:13px;color:#4b6075}
.section-title {color:#2e4f67;font-size:16px;font-weight:650}
.video-frame {background:#142d45;color:#c6d9e7}
.video-frame strong {font-size:15px;font-weight:600;color:#f0f6fb}
.video-frame>small {font-size:13px;color:#c1d2e0}
.video-osd {font-size:12px;color:#cee0ec}
.video-source-info {font-size:13px;color:#4b6075}
.terrain-navigation button {font-size:12px}
.terrain-credit {background:#fff;color:#3b5369;font-size:12px}
.terrain-credit span {color:#4b6075}
.terrain-cluster,.cluster-marker>span {font-size:13px;background:#155f83;color:white}
.attention-item .muted {font-size:12px}
.rule-levels .tiny {font-size:13px}
.formula {font-size:14px;color:#294d63;background:#f1f6fa;border-color:#c4d4df;overflow-x:auto}
.beach-section {height:280px}
.beach-section text,.profile-svg text {font-size:12px;fill:#35556d;font-weight:500}
:is(button,a,input,select,textarea):focus-visible {outline:3px solid #2488bd;outline-offset:3px}
button:disabled,.text-link:disabled {opacity:.65;color:#52677b}
/* Map has separate layout constraints; shared chrome uses the same global scale. */
body.map-workspace .map-page-heading {height:72px;min-height:72px;padding:0 20px}
body.map-workspace .map-page-heading h1 {font-size:22px}
body.map-workspace .map-page-heading .eyebrow {font-size:12px}
body.map-workspace .map-heading-icon {width:42px;height:42px;border-radius:9px}
body.map-workspace .map-page-status>.btn {font-size:13px;min-height:38px}
body.map-workspace .map-update,body.map-workspace .map-ledger-link {font-size:12px}
body.map-workspace .map-simulated,body.map-workspace .map-ledger-link i {font-size:12px}
body.map-workspace .map-navigation {width:280px;border-radius:9px}
body.map-workspace .map-nav-heading {height:58px;min-height:58px}
body.map-workspace .map-nav-heading strong {font-size:15px}
body.map-workspace .map-nav-heading>div>span {font-size:12px}
body.map-workspace .map-search input {height:42px;min-height:42px;font-size:14px}
body.map-workspace .map-type-toggle,body.map-workspace .map-filter-heading>button:first-child {font-size:13px}
body.map-workspace .map-filter-heading>button:first-child b {font-size:12px}
body.map-workspace .map-filters {top:158px}
body.map-workspace .map-filters button {font-size:12px;height:60px}
body.map-workspace .map-list-caption {font-size:12px}
body.map-workspace .tree-group-heading {height:40px}
body.map-workspace .tree-group-heading>button:first-child {font-size:14px}
body.map-workspace .tree-group-heading small {font-size:12px}
body.map-workspace .tree-point {min-height:62px;padding:8px;gap:8px}
body.map-workspace .tree-point-copy strong {font-size:13px;font-weight:600}
body.map-workspace .tree-point-copy small {font-size:12px}
body.map-workspace .tree-point-value {font-size:16px}
body.map-workspace .tree-point-value small {font-size:12px}
body.map-workspace .map-nav-source,body.map-workspace .map-nav-source>button {font-size:12px}
body.map-workspace .map-top-strip,body.map-workspace .map-stage .terrain-navigation {left:318px}
body.map-workspace .terrain-credit {left:318px;font-size:11px;max-width:calc(100% - 380px)}
body.map-workspace .map-view-switch button {font-size:13px;padding:8px 12px}
body.map-workspace .terrain-navigation button {font-size:12px;padding:8px 11px}
body.map-workspace .map-scene-tools .btn {font-size:13px;min-height:38px}
body.map-workspace .map-footer-legend,body.map-workspace .map-coordinate-bar {font-size:12px}
body.map-workspace .map-inspector {width:340px;border-radius:9px}
body.map-workspace .map-inspector .kv>div,body.map-workspace .map-inspector .kv dt,body.map-workspace .map-inspector .kv dd {font-size:13px}
body.map-workspace .device-title {font-size:16px}
body.map-workspace .inspector-location,body.map-workspace .map-inspector .standalone-note {font-size:13px}
body.map-workspace .inspector-value small {font-size:13px}
body.map-workspace .map-layout:has(.map-inspector:not(:empty)) .map-top-strip,
body.map-workspace .map-layout:has(.map-inspector:not(:empty)) .map-float-tools,
body.map-workspace .map-layout:has(.map-inspector:not(:empty)) .terrain-zoom,
body.map-workspace .map-layout:has(.map-inspector:not(:empty)) .map-fullscreen-button {right:376px}
body.map-workspace .nav-collapsed .map-top-strip,body.map-workspace .nav-collapsed .terrain-credit {left:20px}
body.map-workspace .nav-collapsed .terrain-navigation {left:195px}
.terrain-label,.beach-measure-label>span,.shoreline-label>span,.dam-trace-label>span {font-size:12px}
.terrain-label.measurement small,.beach-measure-label small {font-size:12px}
.terrain-label.point small,.point-label {font-size:12px}
body.map-workspace .terrain-cluster,body.map-workspace .cluster-marker>span {font-size:13px}
.map-fullscreen .terrain-credit {max-width:calc(100% - 90px)}
.layout-collapsed {--shell-sidebar:76px}
.layout-collapsed .app-brand {width:224px}
.layout-collapsed .sidebar,.layout-collapsed.map-workspace .sidebar {width:76px}
.layout-collapsed .app-main,.layout-collapsed.map-workspace .app-main {margin-left:76px}
@media(max-width:1350px){
 .header-range {display:none!important}.header-project {min-width:200px}.header-context {gap:16px;margin-left:10px}
 .header-user-label {display:none}.header-actions {padding-right:18px;gap:10px}
 .monitor-metrics {grid-template-columns:repeat(3,minmax(0,1fr))}
 .project-summary {grid-template-columns:repeat(4,minmax(0,1fr))}.project-summary .summary-name {grid-column:1/-1;border-bottom:1px solid #cbd6e1}
 .quality-matrix {grid-template-columns:repeat(2,minmax(0,1fr))}
 body.map-workspace .map-navigation {width:250px}
 body.map-workspace .map-top-strip,body.map-workspace .map-stage .terrain-navigation,body.map-workspace .terrain-credit {left:286px}
 body.map-workspace .map-inspector {width:300px}
 body.map-workspace .map-layout:has(.map-inspector:not(:empty)) .map-top-strip {right:20px}
 body.map-workspace .map-inspector:not(:empty) {top:82px;max-height:calc(100% - 100px)}
 body.map-workspace .map-layout:has(.map-inspector:not(:empty)) .map-float-tools,
 body.map-workspace .map-layout:has(.map-inspector:not(:empty)) .terrain-zoom,
 body.map-workspace .map-layout:has(.map-inspector:not(:empty)) .map-fullscreen-button {right:334px}
 body.map-workspace .map-stage .terrain-navigation {top:76px}
 body.map-workspace .map-update {display:none}
}
@media(max-width:1050px){
 :root,body.map-workspace {--shell-sidebar:210px}
 .brand-text strong,body.map-workspace .brand-text strong {font-size:13px}.brand-text small,body.map-workspace .brand-text small {font-size:11px}
 .app-brand,body.map-workspace .app-brand {padding:0 12px;gap:8px}.nav-item,body.map-workspace .nav-item {font-size:14px;padding:0 10px}
 .header-context {display:none}.header-project {flex:1;padding-left:20px}
 .app-main {padding:21px 20px}.grid-2,.dashboard-top,.page-grid {grid-template-columns:1fr}
 .monitor-layout {grid-template-columns:190px minmax(0,1fr)}.metric-cell strong {font-size:24px}
 .heading-actions {justify-content:flex-start}.page-heading {align-items:flex-start;flex-wrap:wrap}
}
@media(max-width:820px){
 :root,body.map-workspace {--shell-sidebar:68px;--shell-header:66px;--shell-footer:31px}
 .app-brand,body.map-workspace .app-brand {width:68px;justify-content:center;padding:0}.brand-text {display:none}
 .sidebar,body.map-workspace .sidebar {width:68px}.sidebar-scroll {padding:8px 7px}
 .nav-group h2,.nav-item>span,.sidebar-footer,.sidebar-collapse span {display:none}
 .nav-item,body.map-workspace .nav-item {padding:0;justify-content:center;height:44px}.nav-group {margin-bottom:14px}
 .nav-item .icon {width:22px;height:22px}.nav-item.active:before {left:0}
 .header-project {padding-left:16px;min-width:0}.header-project strong,body.map-workspace .header-project strong {font-size:14px}
 .header-actions {padding-right:12px;gap:6px}.header-user-label {display:none!important}
 .system-footer,body.map-workspace .system-footer {font-size:11px;gap:14px;padding:0 10px}
 .system-footer>span:last-child {display:none}.app-main {padding:18px 15px}
 .page-heading h1 {font-size:23px}.page-heading p {font-size:13px}.panel-header {padding:14px 16px}.panel-header h2 {font-size:15px}
 .panel-body {padding:17px}.monitor-layout {grid-template-columns:1fr}
 .parameter-card {grid-template-columns:1fr 1fr}.quality-item {padding:18px}
 .monitor-metrics {grid-template-columns:repeat(2,minmax(0,1fr))}.chart-box {padding:16px 14px}
 .quality-matrix {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 body.map-workspace .app-main {padding:10px}
 body.map-workspace .map-page-heading {height:66px;min-height:66px;padding:0 14px}
 body.map-workspace .map-page-heading h1 {font-size:18px}
 body.map-workspace .map-navigation {width:245px;top:66px;left:10px}
 body.map-workspace .tree-point-copy strong {font-size:13px}
 body.map-workspace .tree-point-value {font-size:15px}
 body.map-workspace .map-top-strip,body.map-workspace .map-layout:has(.map-inspector:not(:empty)) .map-top-strip {left:10px;right:10px;top:12px}
 body.map-workspace .map-view-switch button {font-size:12px;padding:6px 9px}
 body.map-workspace .map-inspector:not(:empty) {left:265px;right:10px;width:auto;top:auto;bottom:12px;max-height:65%}
 body.map-workspace .terrain-credit {display:none}
 body.map-workspace .map-layout:has(.map-inspector:not(:empty)) .terrain-zoom,
 body.map-workspace .map-layout:has(.map-inspector:not(:empty)) .map-fullscreen-button {right:12px}
 body.map-workspace .map-footer-legend,body.map-workspace .map-ledger-link {display:none}
}
@media(max-width:560px){
 .header-actions .avatar {display:none}.header-actions .env-badge,body.map-workspace .header-actions .env-badge {font-size:12px;padding:4px 7px}
 .header-project small {font-size:12px}.header-project strong,body.map-workspace .header-project strong {font-size:14px}
 .page-heading {gap:14px}.page-heading h1 {font-size:22px}.page-heading p {line-height:1.7}
 .quality-matrix {grid-template-columns:1fr 1fr;gap:9px}.quality-item {padding:14px}.quality-item strong {font-size:26px}
 .quality-item>span,.quality-item p {font-size:12px}.project-summary {grid-template-columns:1fr 1fr}
 .system-row {flex-wrap:wrap}.system-row>.chip {margin-left:30px}
 .inspection-task {flex-wrap:wrap;gap:8px}.inspection-task small {margin-left:29px}
 th {font-size:12px;padding:12px}td {font-size:13px;padding:12px}
 .panel-body {padding:15px}.system-footer>span:first-child {display:none}
 .btn,.heading-actions .btn {font-size:12px;padding:7px 11px}
 body.map-workspace .map-navigation {width:225px}
 body.map-workspace .map-page-heading h1 {font-size:16px}
 body.map-workspace .map-nav-heading strong {font-size:14px}
 body.map-workspace .map-search input {font-size:13px}
 body.map-workspace .map-inspector:not(:empty) {left:12px;right:12px;max-height:58%}
 .dialog-body {padding:18px}.dialog-header h2 {font-size:16px}
}
/* Narrow preview panels keep the satellite view above a compact device drawer. */
.standards-audit-panel table {table-layout:fixed;white-space:normal;min-width:800px}
.standards-audit-panel th,.standards-audit-panel td {vertical-align:top;overflow-wrap:anywhere;line-height:1.8}
.standards-audit-panel th:nth-child(1) {width:22%}
.standards-audit-panel th:nth-child(2) {width:13%}
.standards-audit-panel th:nth-child(3) {width:32%}
.standards-audit-panel th:nth-child(4) {width:33%}
.standards-audit-panel td .sub {font-size:12px}
.composite-panel table {white-space:normal}
.composite-panel td,.composite-panel th {vertical-align:top}
/* Data availability is visually separate from the gold dry-beach measurement. */
body .terrain-label.measurement.invalid.beach-status-label,
body.map-workspace .beach-measure-label.invalid.beach-status-label>span,
body .beach-measure-label.invalid.beach-status-label>span {
 width:248px;max-width:248px;white-space:normal;text-align:left;padding:10px 12px;
 background:#fff;color:#263e53;border:1px solid #a899bd;border-left:4px solid #76539a;
 border-radius:7px;box-shadow:0 4px 15px #132a4255;cursor:pointer;font:400 13px/1.65 'Microsoft YaHei',sans-serif;
}
body .beach-status-label strong {display:block;color:#59377a;font-size:13px;font-weight:650;margin-bottom:4px}
body .terrain-label.measurement.invalid.beach-status-label {z-index:8}
body .beach-measure-label.invalid.beach-status-label>span {transform:none;left:0;top:0}
body .beach-status-label .beach-status-reason {display:block;color:#263e53;font-size:12px}
body .terrain-label.measurement.invalid.beach-status-label small,
body .beach-measure-label.invalid.beach-status-label small {display:block;color:#644585;font-size:12px;font-weight:500;margin-top:7px}
body .terrain-label.measurement.invalid.beach-status-label:hover,
body .beach-measure-label.invalid.beach-status-label:hover>span {background:#f6f2fb;border-color:#76539a}
.beach-inline-status {display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f3eff8;border:1px solid #c8b9d8;border-left:4px solid #76539a;border-radius:5px;padding:12px 14px;margin:13px 0;color:#3e3050}
.beach-inline-status strong {font-size:14px;color:#59377a;font-weight:600}
.beach-inline-status p {font-size:13px;line-height:1.8;margin:4px 0 0;color:#3f4c5e}
.beach-inline-status .btn {flex-shrink:0}
.beach-status-lead {font-size:17px;font-weight:600;line-height:1.8;color:#273f55;margin:20px 0 14px}
.beach-status-detail ul {padding-left:20px;color:#4b6075;font-size:14px}
.map-inspector .beach-inline-status {flex-wrap:wrap;padding:10px}
.map-inspector .beach-inline-status strong {font-size:14px!important}
.network-node .point-symbol {width:26px;height:26px;border-radius:7px;padding:2px}
.network-node .point-symbol .device-icon {width:21px;height:21px}
.network-node .point-label {bottom:31px;font-size:12px}
@media(max-width:560px){body .terrain-label.measurement.invalid.beach-status-label,body.map-workspace .beach-measure-label.invalid.beach-status-label>span {width:205px;max-width:205px}.beach-inline-status {flex-wrap:wrap}}
@media(max-width:560px){
 body.map-workspace .map-navigation {left:10px;right:10px;bottom:12px;top:auto;width:auto;height:44%;max-height:none}
 body.map-workspace .map-nav-heading {height:42px;min-height:42px;margin-bottom:8px}
 body.map-workspace .map-search {margin-bottom:6px}
 body.map-workspace .map-search input {min-height:34px;height:34px}
 body.map-workspace .map-filter-heading {padding-bottom:6px}
 body.map-workspace .map-list-caption,body.map-workspace .map-nav-source {display:none}
 body.map-workspace .map-filters {top:112px}
 body.map-workspace .map-layout:has(.map-inspector:not(:empty)) .map-navigation {display:none}
}

/* Keep risk severity and acquisition quality visible at the same time. */
.assessment-badges{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;vertical-align:middle}.summary-cell .assessment-badges{max-width:100%}.standards-audit-panel td:last-child{min-width:115px}
.form-actions{flex-wrap:wrap}.form-actions>.btn{flex-shrink:0}
@media(max-width:600px){#radar-form .form-actions{justify-content:flex-start}#radar-form .form-actions>.btn{max-width:100%;white-space:normal}.parameter-card,.parameter-other{grid-template-columns:minmax(0,1fr)}.parameter-card .field,.parameter-other .field{min-width:0}.parameter-card .field input,.parameter-other .field input{min-width:0;width:100%}}

.standards-action-panel table{min-width:930px}.standards-action-panel th:nth-child(1){width:20%}.standards-action-panel th:nth-child(2){width:13%}.standards-action-panel th:nth-child(3){width:27%}.standards-action-panel th:nth-child(4){width:27%}.standards-action-panel th:nth-child(5){width:13%}.standards-action-panel td:last-child .btn{padding:0;white-space:normal;text-align:left;max-width:100%;line-height:1.7}

/* A compact point workspace keeps the map visible while browsing observations. */
.map-list-caption .text-link{font-size:12px;font-weight:600}
body.map-workspace .inspector-location{padding:12px 16px 6px;line-height:1.6}
.inspector-location>strong{display:block;color:#17384d;font-size:14px}.inspector-location>small{display:block;color:#536b7d;margin-top:4px}
body.map-workspace .inspector-value{padding:12px 16px 14px;gap:8px}
.inspector-trend-heading{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 4px;border-top:1px solid #dce5ed;font-size:13px}.inspector-trend-heading strong small{font-weight:400;color:#526b7d;margin-left:4px}
.inspector-range{display:flex;gap:2px;padding:3px;background:#edf2f6;border-radius:6px}.inspector-range button{border:0;background:none;font-size:12px;color:#4c6579;border-radius:4px;padding:4px 7px}.inspector-range button[aria-pressed=true]{background:#fff;color:#007c91;font-weight:600;box-shadow:0 1px 4px #15394718}
.inspector-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 16px 12px;background:#f0f5f8;border:1px solid #dce5ed;border-radius:6px}.inspector-stats>div{padding:9px 5px;text-align:center;border-right:1px solid #dce5ed}.inspector-stats>div:last-child{border:0}.inspector-stats span{display:block;color:#526a7d;font-size:11px;margin-bottom:5px}.inspector-stats strong{font:600 14px/1.3 'Segoe UI','Microsoft YaHei',sans-serif;color:#18394d}
.inspector-observed{display:flex;align-items:center;gap:5px;margin:0 16px;padding:10px 0;border-top:1px solid #e0e7ed;color:#506a7e;font-size:12px}.inspector-observed>.icon{width:14px;height:14px}.inspector-observed>strong{margin-left:auto;font-size:12px;font-weight:500;color:#213e53}
.inspector-installation{border-top:1px solid #e0e7ed}.inspector-installation>summary{padding:12px 16px;font-size:13px;font-weight:600;color:#365b70;cursor:pointer}.inspector-installation .kv>div{padding:7px 0!important}.inspector-installation .kv dd{overflow-wrap:anywhere}
.inspector-stepper{position:sticky;bottom:61px;display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-top:1px solid #dce5ed;background:#f4f8fa;z-index:3}.inspector-stepper button{display:flex;align-items:center;gap:3px;padding:4px 0;border:0;background:none;color:#087c90;font-size:12px;font-weight:600}.inspector-stepper button:disabled{opacity:.35;cursor:default}.inspector-stepper .icon{height:12px;width:12px}.inspector-stepper button:first-child .icon{transform:rotate(180deg)}.inspector-stepper>span{font-size:12px;color:#5e7281;font-variant-numeric:tabular-nums}
body.map-workspace .inspector-footer{position:sticky;bottom:0;padding:11px 14px;background:#fff;border-top:1px solid #dce5ed;z-index:4;min-height:61px}
@media(min-width:1201px) and (max-width:1500px){body.map-workspace .map-navigation{width:264px}body.map-workspace .map-inspector{width:318px}body.map-workspace .map-layout:has(.map-inspector:not(:empty)) .map-top-strip,body.map-workspace .map-layout:has(.map-inspector:not(:empty)) .map-float-tools{right:350px}}

body.map-workspace .inspector-title{position:sticky;top:0;background:#edf4f8;z-index:5}body.map-workspace .inspector-chart{padding-top:0}body.map-workspace .inspector-chart .chart{height:145px;max-height:none}@media(min-width:1101px){body.map-workspace .map-inspector:not(:empty){top:16px;max-height:calc(100% - 32px)}}

body.map-workspace .inspector-title{padding:8px 12px}body.map-workspace .inspector-location{padding:8px 12px 6px}body.map-workspace .inspector-location>small{display:none}body.map-workspace .inspector-value{padding:8px 12px}body.map-workspace .inspector-value small{font-size:12px;line-height:1.25;margin-bottom:3px}body.map-workspace .inspector-value strong{font-size:28px;line-height:1.15}.inspector-trend-heading{padding:7px 12px 2px}.inspector-stats{margin:0 12px 8px}.inspector-stats>div{padding:6px 3px}.inspector-stats span{margin-bottom:3px}body.map-workspace .inspector-chart .chart{height:126px}.inspector-stepper{bottom:52px;padding:6px 12px}body.map-workspace .inspector-footer{padding:7px 12px;min-height:52px}.inspector-observed{margin:0 12px}

.inspector-stepper{bottom:0}body.map-workspace .inspector-footer{position:static}
