:root {
  --ink: #14243a;
  --muted: #718094;
  --line: #dfe7eb;
  --panel: #ffffff;
  --soft: #f4f8f8;
  --teal: #0ca19c;
  --teal-dark: #087e7b;
  --blue: #5687d8;
  --orange: #ef9b4a;
  --shadow: 0 18px 50px rgba(21, 55, 68, .08);
  font-family: Inter, "Segoe UI", "Microsoft YaHei", sans-serif;
  color: var(--ink);
  background: #edf3f3;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 0; background: #edf3f3; }
button, input, select { font: inherit; }
button { cursor: pointer; }

.app-shell { min-height: 100vh; }
.auth-gate { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; min-width: 0; padding: 24px; overflow-x: hidden; background: radial-gradient(circle at 20% 20%, rgba(12,161,156,.16), transparent 32%), linear-gradient(135deg, #eaf3f3, #dfeaea); }
.login-card { width: min(410px, 100%); max-width: 100%; min-width: 0; padding: 34px; border: 1px solid rgba(255,255,255,.8); border-radius: 18px; background: rgba(255,255,255,.96); box-shadow: 0 28px 80px rgba(21,55,68,.18); }
.login-card h2 { margin: 9px 0 8px; font-size: 25px; }
.login-card p { margin-bottom: 22px; line-height: 1.65; }
.login-card label { display: block; margin-top: 14px; color: #516275; font-size: 11px; font-weight: 800; }
.login-card label .text-input { margin-top: 7px; }
.login-card small { display: block; margin-top: 14px; color: #8a9aa1; line-height: 1.6; }
.login-mark { margin-bottom: 15px; }
.login-submit { width: 100%; margin-top: 20px; }
.login-error { margin-top: 13px; padding: 10px 12px; border-radius: 8px; background: #fff0ef; color: #a54c48; font-size: 11px; }
@media (max-width: 430px) {
  .auth-gate { padding: 16px; }
  .login-card { padding: 24px; }
  .login-card h2 { font-size: 22px; }
}
body:not(.auth-locked) .auth-gate { display: none; }
body.auth-locked .app-shell { filter: blur(3px); pointer-events: none; user-select: none; }
.topbar { min-height: 78px; padding: 12px 28px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 30; }
.brand-block, .topbar-actions, .hero-meta, .sync-state, .card-header, .map-actions, .map-legend, .switch-row, .slider-label { display: flex; align-items: center; }
.brand-block { gap: 14px; }
.brand-mark { display: flex; align-items: end; gap: 3px; width: 36px; height: 32px; padding: 3px; }
.brand-mark span { display: block; width: 8px; border-radius: 6px 6px 2px 2px; background: var(--teal); }
.brand-mark span:nth-child(1) { height: 15px; opacity: .75; }.brand-mark span:nth-child(2) { height: 25px; }.brand-mark span:nth-child(3) { height: 31px; opacity: .85; }
.eyebrow { color: #7b8b99; font-size: 10px; letter-spacing: .16em; font-weight: 800; text-transform: uppercase; }
h1, h2, h3, p { margin: 0; } h1 { font-size: 21px; letter-spacing: -.03em; } h2 { font-size: 23px; letter-spacing: -.04em; } h3 { font-size: 18px; letter-spacing: -.03em; }
.topbar-actions { gap: 10px; }.sync-state { gap: 7px; margin-right: 8px; font-size: 12px; color: var(--muted); }.sync-state i { width: 8px; height: 8px; background: #29bb88; border-radius: 50%; box-shadow: 0 0 0 4px #def7ed; }
.topbar-actions { flex-wrap: wrap; justify-content: flex-end; }
.project-switcher { display: flex; align-items: center; gap: 6px; padding: 4px 8px; border: 1px solid var(--line); border-radius: 9px; background: #f7fafa; }
.project-switcher span { color: #84949d; font-size: 9px; font-weight: 800; }
.project-switcher select { max-width: 150px; border: 0; outline: 0; background: transparent; color: #284751; font-size: 11px; font-weight: 800; }
.compact-button { padding: 8px 10px; }
.user-chip { max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #49636d; font-size: 10px; font-weight: 800; }
.ghost-button, .primary-button, .run-button, .icon-button { border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--ink); padding: 10px 15px; font-size: 12px; font-weight: 700; }.primary-button, .run-button { background: var(--teal); color: white; border-color: var(--teal); }.primary-button:hover, .run-button:hover { background: var(--teal-dark); }
body.project-readonly #runTopButton:disabled { background: #e5ecee; border-color: #cbd6da; color: #788b92; box-shadow: none; cursor: not-allowed; }
.workspace { display: grid; grid-template-columns: 306px minmax(0, 1fr); min-height: calc(100vh - 78px); }
.control-panel { background: #fbfdfd; border-right: 1px solid var(--line); padding: 26px 24px 34px; overflow: auto; }.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 23px; }.panel-heading h2 { margin-top: 5px; font-size: 21px; }.icon-button { padding: 3px 7px; border: 0; font-size: 20px; color: var(--muted); }
.field-label, .section-title { display: block; margin: 18px 0 8px; color: #516275; font-size: 11px; font-weight: 800; }.section-title { margin-top: 24px; text-transform: uppercase; letter-spacing: .09em; color: #80909c; }
.text-input, .select-input { width: 100%; height: 39px; padding: 0 11px; border: 1px solid #dbe5e7; border-radius: 8px; background: white; color: var(--ink); outline: none; }.text-input:focus, .select-input:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(12,161,156,.12); }
.segmented-control { display: grid; grid-template-columns: repeat(3, 1fr); padding: 3px; background: #edf3f3; border-radius: 9px; }.segment { border: 0; border-radius: 7px; background: transparent; padding: 9px 4px; color: #82909e; font-size: 11px; font-weight: 800; }.segment.active { background: white; color: var(--teal-dark); box-shadow: 0 2px 7px rgba(31, 74, 86, .1); }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.field-grid .field-label { margin-top: 14px; }.input-with-unit { position: relative; }.input-with-unit .text-input { padding-right: 42px; }.input-with-unit span { position: absolute; top: 12px; right: 10px; color: #8a98a3; font-size: 10px; }
.slider-field { margin-top: 18px; }.slider-label { justify-content: space-between; color: #516275; font-size: 11px; font-weight: 800; }.slider-label strong { color: var(--ink); }.slider-field input { width: 100%; accent-color: var(--orange); margin: 13px 0 0; }.range-hints { display: flex; justify-content: space-between; color: #97a4ad; font-size: 10px; }
.model-card { display: flex; width: 100%; gap: 10px; padding: 12px 10px; margin-top: 8px; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--ink); text-align: left; }.model-card.selected { border-color: #81d1cc; background: #f2fbfb; }.radio-dot { width: 12px; height: 12px; margin-top: 2px; border: 2px solid #bdcbd0; border-radius: 50%; flex: none; }.selected .radio-dot { border-color: var(--teal); box-shadow: inset 0 0 0 3px white; background: var(--teal); }.model-card strong, .model-card small { display: block; }.model-card strong { font-size: 11px; }.model-card small { color: #91a0a9; font-size: 10px; margin-top: 4px; }.model-range-note { margin-top: 7px; color: #87969d; font-size: 9px; line-height: 1.5; }
.switch-row { justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #edf1f2; color: #566777; font-size: 11px; }.switch { width: 30px; height: 18px; padding: 2px; border: 0; border-radius: 20px; background: #b6c3c7; }.switch i { display: block; width: 14px; height: 14px; border-radius: 50%; background: white; transition: transform .2s; }.switch.on { background: var(--teal); }.switch.on i { transform: translateX(12px); }
.control-note { display: grid; gap: 5px; margin: 22px 0 14px; padding: 12px; border: 1px solid #cfe9e6; border-radius: 9px; background: #f1fbfa; }.control-note strong { color: var(--teal-dark); font-size: 11px; }.control-note span, .small-note { color: #80949a; font-size: 10px; line-height: 1.5; }.run-button { width: 100%; padding: 14px; font-size: 13px; box-shadow: 0 8px 18px rgba(12,161,156,.18); }.run-button span { margin-right: 6px; }.small-note { text-align: center; margin-top: 9px; }
.main-content { padding: 31px 34px 50px; min-width: 0; }.hero-row { display: flex; align-items: end; justify-content: space-between; margin-bottom: 22px; }.hero-row h2 { margin: 6px 0; }.muted { color: var(--muted); font-size: 12px; }.hero-meta { gap: 15px; }.status-pill, .count-pill { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 30px; color: #177c62; background: #e8f8f1; font-size: 11px; font-weight: 800; }.status-pill.running { color: #8a5a12; background: #fff5dc; }.status-pill.done { color: #167c75; background: #e6f8f7; }.status-pill.failed { color: #a84d4d; background: #fdecec; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }.metric-card, .map-card, .data-card { background: var(--panel); border: 1px solid #e4ecee; border-radius: 15px; box-shadow: var(--shadow); }.metric-card { padding: 18px 20px; }.metric-card > span { color: #768795; font-size: 11px; font-weight: 700; }.metric-card strong { display: block; margin: 8px 0 4px; font-size: 28px; letter-spacing: -.05em; }.metric-card em { margin-left: 4px; color: #72818e; font-size: 11px; font-style: normal; letter-spacing: 0; }.metric-card small { color: var(--teal); font-size: 10px; }.metric-progress, .progress-track { height: 5px; background: #eaf0f0; border-radius: 5px; overflow: hidden; margin: 9px 0 7px; }.metric-progress i, .progress-track i { display: block; height: 100%; background: var(--teal); border-radius: inherit; }
.map-card { padding: 20px; margin-bottom: 18px; }.card-header { justify-content: space-between; margin-bottom: 15px; }.card-header h3 { margin-top: 5px; }.map-actions { gap: 8px; }.map-tab { border: 0; background: transparent; color: #80909e; padding: 8px 9px; font-size: 11px; font-weight: 800; }.map-tab.active { color: var(--teal-dark); border-bottom: 2px solid var(--teal); }.map-stage { position: relative; height: 430px; overflow: hidden; border-radius: 11px; background: linear-gradient(135deg, #345f61, #799c8c 42%, #5c826f); isolation: isolate; }.map-stage::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .22; background-image: linear-gradient(38deg, transparent 47%, #d1e2be 48%, transparent 49%), linear-gradient(110deg, transparent 47%, #355d55 48%, transparent 49%), repeating-linear-gradient(14deg, transparent 0 32px, rgba(231,242,212,.5) 33px 35px, transparent 36px 63px); background-size: 180px 160px, 220px 190px, auto; }.terrain { position: absolute; border-radius: 50%; filter: blur(2px); opacity: .56; }.terrain-a { width: 440px; height: 200px; left: -70px; top: 60px; background: #7aa28d; transform: rotate(21deg); }.terrain-b { width: 570px; height: 180px; right: -100px; top: 140px; background: #a5b18d; transform: rotate(-19deg); }.terrain-c { width: 360px; height: 180px; left: 35%; bottom: -40px; background: #3d736e; transform: rotate(12deg); }.road { position: absolute; height: 7px; border-radius: 50%; background: rgba(236,224,183,.9); box-shadow: 0 0 0 2px rgba(112,102,75,.2); transform-origin: left center; }.road-main { width: 980px; left: -90px; bottom: 66px; transform: rotate(-6deg); }.road-secondary { width: 650px; left: 40%; top: 30px; transform: rotate(72deg); opacity: .7; }.map-label { position: absolute; color: rgba(248,255,243,.84); text-shadow: 0 1px 3px #244a4c; font-size: 12px; }.label-a { left: 42%; top: 53%; }.label-b { left: 23%; top: 19%; }.label-c { right: 21%; bottom: 13%; font-weight: 800; }.coverage { position: absolute; border-radius: 50%; filter: blur(15px); opacity: .58; }.coverage-a { width: 330px; height: 280px; left: 22%; top: 16%; background: radial-gradient(circle, rgba(27,209,144,.8), rgba(241,181,67,.5) 54%, transparent 70%); }.coverage-b { width: 360px; height: 250px; right: 8%; top: 21%; background: radial-gradient(circle, rgba(27,188,156,.6), rgba(244,146,58,.55) 48%, transparent 72%); }.coverage-c { width: 280px; height: 220px; left: 40%; bottom: 2%; background: radial-gradient(circle, rgba(41,193,166,.66), rgba(89,190,98,.46) 50%, transparent 72%); }
.site { position: absolute; width: 76px; height: 58px; text-align: center; color: #0a3140; font-size: 10px; font-weight: 800; cursor: pointer; transition: transform .2s; }.site:hover { transform: scale(1.08); z-index: 5; }.site i, .site b { position: absolute; left: 50%; top: 4px; transform: translateX(-50%); display: block; }.site i { width: 0; height: 0; border-left: 26px solid transparent; border-right: 26px solid transparent; border-bottom: 45px solid rgba(87,144,221,.76); filter: drop-shadow(0 2px 2px rgba(16,60,74,.25)); }.site i::after { content: ""; position: absolute; top: 8px; left: -24px; width: 0; height: 0; border-left: 24px solid transparent; border-right: 24px solid transparent; border-bottom: 40px solid rgba(232,242,253,.22); }.site b { z-index: 1; width: 11px; height: 11px; top: 21px; border: 3px solid white; background: #6f9ce0; border-radius: 50%; }.site span { position: absolute; top: 51px; left: 50%; transform: translateX(-50%); white-space: nowrap; text-shadow: 0 1px 3px white; }.site-1 { left: 19%; top: 24%; }.site-2 { left: 40%; top: 16%; }.site-3 { left: 64%; top: 27%; }.site-4 { left: 32%; top: 61%; }.site-5 { left: 52%; top: 59%; }.site-6 { right: 11%; top: 63%; }.map-controls { position: absolute; right: 15px; top: 15px; display: grid; gap: 2px; }.map-controls button { width: 33px; height: 33px; border: 0; background: rgba(255,255,255,.91); color: #536d73; font-size: 19px; }.map-controls button:first-child { border-radius: 8px 8px 0 0; }.map-controls button:last-child { border-radius: 0 0 8px 8px; }.map-scale, .map-coordinates { position: absolute; bottom: 13px; color: white; font-size: 10px; text-shadow: 0 1px 2px #274b4f; }.map-scale { left: 16px; border-top: 2px solid white; padding-top: 3px; width: 61px; text-align: center; }.map-coordinates { right: 16px; }.map-legend { gap: 9px; padding: 13px 4px 0; color: #7d8c95; font-size: 10px; }.legend-gradient { width: 145px; height: 9px; border-radius: 8px; background: linear-gradient(90deg, #283b9c, #1eb4d3, #23be8a, #ffd345, #ef592d); }.legend-note { margin-left: auto; }
.lower-grid { display: grid; grid-template-columns: 1.25fr .85fr; gap: 18px; }.data-card { padding: 20px; min-width: 0; }.card-header.compact { margin-bottom: 12px; }.count-pill { color: var(--teal-dark); background: #e9f8f7; }.table-wrap { overflow: auto; }table { width: 100%; border-collapse: collapse; font-size: 11px; }th { padding: 10px 9px; color: #8a98a1; text-align: left; font-weight: 700; border-bottom: 1px solid var(--line); }td { padding: 12px 9px; border-bottom: 1px solid #eef2f2; }td:nth-child(2) { color: #4677c4; font-weight: 800; }td:last-child { color: #1b9a74; }.cell-name { font-weight: 800; }.cell-code { color: #94a0a8; font-size: 10px; margin-left: 5px; }.task-progress { margin: 21px 0 17px; }.task-progress strong { display: block; margin-top: 8px; font-size: 12px; }.progress-track i { width: 0; transition: width .35s ease; }.task-steps { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 16px; }.task-steps span { padding: 5px 8px; border-radius: 4px; background: #f0f3f4; color: #97a3aa; font-size: 10px; }.task-steps span.done { color: var(--teal-dark); background: #e4f7f5; }.task-steps span.active { color: #8a5a12; background: #fff2d2; }.log-box { height: 125px; overflow: auto; padding: 10px; border-radius: 8px; background: #16293b; color: #cfdee2; font-family: Consolas, monospace; font-size: 10px; line-height: 1.7; }.log-box time { color: #86adae; margin-right: 8px; }.toast { position: fixed; right: 28px; bottom: 28px; transform: translateY(20px); padding: 11px 15px; border-radius: 9px; color: white; background: #18394a; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transition: .25s; font-size: 12px; }.toast.show { opacity: 1; transform: translateY(0); }
.workload-card { margin: 14px 0; padding: 12px; border: 1px solid #dce9e9; border-radius: 10px; background: #f7fbfb; }.workload-card strong, .workload-card span { display: block; }.workload-card > div > span { margin-top: 4px; color: #74858d; font-size: 10px; line-height: 1.45; }.workload-card.warning { border-color: #f2c979; background: #fff9eb; }.workload-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 10px; }.workload-metrics span { padding: 6px; border-radius: 6px; background: white; color: #71818a; font-size: 9px; text-align: center; }.workload-metrics b { display: block; margin-top: 3px; color: #23434b; font-size: 11px; }
@media (max-width: 1280px) { .workspace { grid-template-columns: 280px minmax(0, 1fr); }.control-panel { padding-left: 18px; padding-right: 18px; }.main-content { padding-left: 22px; padding-right: 22px; }.metric-card strong { font-size: 23px; } }

.hidden { display: none !important; }
.input-validation-card { margin-bottom: 18px; }
.validation-card-actions { display: flex; align-items: center; gap: 9px; }
.validation-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin: 14px 0; }
.validation-summary-grid > div { padding: 11px 13px; border-radius: 8px; background: #f5f8f8; }
.validation-summary-grid small { display: block; color: #82939a; font-size: 10px; }
.map-tab:disabled { color: #bac4c9; cursor: not-allowed; }
.result-download { padding: 7px 10px; font-size: 10px; }
.result-download:disabled { opacity: .45; cursor: not-allowed; }
.coverage-canvas { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; pointer-events: auto; }
.quick-sim-map-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: -2px 0 12px; }
.quick-sim-map-toolbar label { color: #536c75; font-size: 10px; font-weight: 800; }
.quick-sim-map-toolbar select, .quick-sim-map-toolbar input { box-sizing: border-box; min-width: 0; height: 34px; padding: 6px 8px; border: 1px solid #cbd9dc; border-radius: 6px; color: #24424e; background: #fff; font: inherit; font-size: 11px; }
.quick-sim-map-toolbar select { width: 108px; }
.quick-sim-map-toolbar input { width: 116px; }
.quick-sim-map-toolbar button { min-height: 34px; }
.quick-sim-basemap { position: absolute; inset: 0; z-index: 1; overflow: hidden; background-color: #e6eeeb; background-image: linear-gradient(rgba(72,103,105,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(72,103,105,.08) 1px, transparent 1px); background-size: 32px 32px; pointer-events: none; }
.quick-sim-tile { position: absolute; width: 256px; height: 256px; max-width: none; user-select: none; pointer-events: none; }
.quick-sim-tile.annotation { z-index: 2; }
.quick-sim-input-sites { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.quick-sim-input-site { position: absolute; width: 14px; height: 14px; padding: 0; transform: translate(-50%,-50%); border: 2px solid #fff; border-radius: 50%; background: #137a86; box-shadow: 0 1px 6px rgba(12,57,65,.5); cursor: pointer; pointer-events: auto; }
.quick-sim-input-site:hover, .quick-sim-input-site:focus-visible { z-index: 4; background: #e87536; outline: 2px solid #153f48; outline-offset: 2px; }
.quick-sim-basemap-status { position: absolute; z-index: 6; left: 12px; top: 12px; max-width: min(360px,calc(100% - 120px)); padding: 8px 10px; border: 1px solid rgba(80,109,116,.18); border-radius: 7px; color: #35666d; background: rgba(239,250,251,.94); box-shadow: 0 4px 14px rgba(28,61,71,.12); font-size: 9px; font-weight: 800; line-height: 1.45; pointer-events: none; }
.quick-sim-basemap-status.warning { color: #886320; background: rgba(255,249,232,.95); }
.quick-sim-basemap-status.failed { color: #a34b46; background: rgba(255,241,239,.95); }
.quick-sim-map-hint { position: absolute; z-index: 6; left: 50%; top: 12px; transform: translateX(-50%); padding: 6px 9px; border-radius: 6px; color: #476168; background: rgba(255,255,255,.86); box-shadow: 0 3px 12px rgba(28,61,71,.1); font-size: 9px; font-weight: 800; pointer-events: none; }
#simulationPage .quick-sim-basemap-status.warning + .quick-sim-map-hint, #simulationPage .quick-sim-basemap-status.failed + .quick-sim-map-hint { left: 12px; top: 92px; max-width: calc(100% - 110px); transform: none; }
.quick-sim-attribution { position: absolute; z-index: 6; right: 12px; bottom: 34px; padding: 3px 6px; border-radius: 4px; color: #3f555d; background: rgba(255,255,255,.82); font-size: 8px; pointer-events: none; }
.map-stage:not(.has-real-results) { background: #e6eeeb; cursor: grab; touch-action: none; }
.map-stage:not(.has-real-results).dragging { cursor: grabbing; }
.map-stage:not(.has-real-results) .coverage-canvas { pointer-events: none; }
.map-stage:not(.has-real-results) .result-map-empty { top: auto; bottom: 42px; max-width: min(560px,calc(100% - 190px)); transform: translateX(-50%); text-align: center; pointer-events: none; }
.map-stage .map-controls, .map-stage .map-scale, .map-stage .map-coordinates { z-index: 7; }
.result-map-sites { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.result-site { position: absolute; width: 14px; height: 14px; transform: translate(-50%, -50%); border: 3px solid white; border-radius: 50%; background: #1c607d; box-shadow: 0 2px 7px rgba(8,45,62,.35); pointer-events: auto; cursor: pointer; }
.result-site::after { content: attr(data-label); position: absolute; left: 50%; top: 14px; transform: translateX(-50%); padding: 2px 5px; border-radius: 4px; color: #123b4b; background: rgba(255,255,255,.86); font-size: 9px; font-weight: 800; white-space: nowrap; }
.map-tooltip { position: absolute; z-index: 7; min-width: 185px; max-width: 260px; padding: 10px 12px; border: 1px solid rgba(17,73,88,.12); border-radius: 8px; color: #24424e; background: rgba(255,255,255,.96); box-shadow: 0 8px 24px rgba(17,55,67,.2); font-size: 10px; line-height: 1.6; pointer-events: none; }
.map-tooltip strong { display: block; color: #0d6867; font-size: 12px; }
.result-map-empty { position: absolute; z-index: 4; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: 9px 13px; border-radius: 8px; color: #597079; background: rgba(255,255,255,.86); font-size: 11px; box-shadow: 0 4px 15px rgba(31,67,75,.12); }
.map-stage.has-real-results .terrain, .map-stage.has-real-results .road, .map-stage.has-real-results .map-label, .map-stage.has-real-results .coverage, .map-stage.has-real-results > .site { display: none; }
.map-stage.has-real-results .result-map-empty { display: none; }
.map-stage.has-real-results .quick-sim-basemap, .map-stage.has-real-results .quick-sim-input-sites, .map-stage.has-real-results .quick-sim-basemap-status, .map-stage.has-real-results .quick-sim-map-hint, .map-stage.has-real-results .quick-sim-attribution { display: none; }
.map-stage.has-real-results { background: linear-gradient(145deg, #eaf2ef, #d8e7e4); }
.validation-summary-grid strong { display: block; margin-top: 4px; color: #277c70; font-size: 18px; }
.validation-summary-grid .danger-text { color: #b45555; }
.validation-summary-grid .warning-text { color: #a47720; }
.validation-summary-grid .summary-id { overflow: hidden; color: #587580; font-family: Consolas, monospace; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.validation-toolbar { display: flex; align-items: center; gap: 12px; margin: 11px 0; }
.validation-toolbar .text-input { flex: 1; min-width: 0; }
.validation-table-wrap { max-height: 285px; }
.validation-table-wrap table { min-width: 720px; }
.validation-table-wrap td { vertical-align: top; }
.validation-table-wrap td:last-child { color: #5d727a; font-weight: 400; }
.validation-type-error { color: #ad5555; font-weight: 800; }
.validation-type-warning { color: #a47720; font-weight: 800; }
.validation-empty { padding: 17px; color: #81939a; text-align: center; font-size: 11px; }
.antenna-library-page { padding: 31px 34px 50px; min-width: 0; }
.scenario-library-page { padding: 31px 34px 50px; min-width: 0; }
.scenario-library-grid { display: grid; grid-template-columns: minmax(290px, .7fr) minmax(620px, 1.5fr); gap: 18px; align-items: start; }
.scenario-list-card, .scenario-detail-card { min-height: 620px; }
.scenario-create-form { display: grid; gap: 12px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.scenario-create-form label { color: #60757e; font-size: 11px; font-weight: 800; }
.scenario-create-form .text-input { display: block; width: 100%; box-sizing: border-box; margin-top: 6px; resize: vertical; }
.scenario-list { display: grid; gap: 8px; max-height: 560px; margin-top: 16px; overflow: auto; }
.scenario-list-item { padding: 12px; border: 1px solid var(--line); border-radius: 9px; background: #fbfdfd; text-align: left; transition: .18s; }
.scenario-list-item:hover, .scenario-list-item.active { border-color: #73cfc2; background: #effaf8; }
.scenario-list-item strong, .scenario-list-item small { display: block; }
.scenario-list-item strong { color: #193c4b; font-size: 12px; }
.scenario-list-item small { margin-top: 5px; color: #82939a; font-size: 9px; }
.scenario-list-meta { display: flex; justify-content: space-between; gap: 8px; margin-top: 9px; color: #67808a; font-size: 10px; }
.scenario-detail-empty { display: grid; min-height: 560px; place-items: center; color: #89999f; font-size: 12px; }
.scenario-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin: 15px 0; }
.scenario-version-table { min-width: 930px; }
.scenario-version-table td { vertical-align: top; color: #587079; }
.scenario-version-table button { padding: 6px 9px; border: 1px solid #99d7d0; border-radius: 6px; background: #eefaf8; color: #08786f; font-size: 9px; font-weight: 800; }
.archive-filter { display: flex; align-items: center; gap: 6px; color: #60757e; font-size: 10px; font-weight: 800; }
.library-hero { display: flex; align-items: end; justify-content: space-between; margin-bottom: 22px; }
.library-hero h2 { margin: 6px 0; }
.library-grid { display: grid; grid-template-columns: minmax(270px, .72fr) minmax(560px, 1.5fr); gap: 18px; align-items: start; }
.library-list-card, .antenna-editor-card { min-height: 620px; }
.antenna-list { display: grid; gap: 8px; max-height: 720px; overflow: auto; }
.antenna-list-item { border: 1px solid var(--line); border-radius: 9px; padding: 12px; background: #fbfdfd; cursor: pointer; transition: .18s; }
.antenna-list-item:hover, .antenna-list-item.active { border-color: #73cfc2; background: #effaf8; }
.antenna-list-item strong { display: block; color: #193c4b; font-size: 13px; }
.antenna-list-item small { display: block; margin-top: 5px; color: #82939a; font-size: 10px; }
.antenna-list-item .list-meta { display: flex; justify-content: space-between; gap: 8px; margin-top: 9px; color: #67808a; font-size: 10px; }
.empty-state { padding: 30px 10px; color: #8a9aa1; text-align: center; font-size: 12px; }
.antenna-form { display: grid; gap: 13px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.antenna-import-panel { padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid var(--line); }
.antenna-import-actions, .antenna-demo-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; }
.antenna-import-actions input { flex: 1 1 210px; min-width: 0; font-size: 11px; }
.antenna-demo-row span { color: #60757e; font-size: 11px; }
.antenna-demo-import-status { padding: 4px 7px; border-radius: 6px; background: #f3f7f7; font-weight: 800; }
.antenna-demo-import-status.enabled { color: #08786f; background: #e8f8f5; }
.antenna-demo-import-status.disabled { color: #7b6a43; background: #fff8e5; }
.antenna-demo-candidates { display: grid; gap: 6px; margin-top: 10px; max-height: 190px; overflow: auto; color: #526b74; font-size: 11px; line-height: 1.7; overflow-wrap: anywhere; }
.antenna-demo-candidate { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border: 1px solid #e1ebeb; border-radius: 7px; background: #fbfdfd; }
.antenna-demo-candidate strong, .antenna-demo-candidate small { display: block; }
.antenna-demo-candidate strong { color: #2c5660; }
.antenna-demo-candidate small { margin-top: 2px; color: #82939a; font-size: 9px; }
.antenna-demo-readonly { flex-shrink: 0; color: #8a6e37; font-size: 10px; font-weight: 800; }
.antenna-provenance-label { color: #a25437 !important; font-weight: 800; line-height: 1.5; }
.antenna-demo-provenance { margin: 4px 0 12px; padding: 10px 12px; border: 1px solid #efc98f; border-radius: 8px; color: #7b531c; background: #fff8e7; font-size: 11px; font-weight: 800; line-height: 1.55; }
.antenna-pattern-provenance { margin-top: 7px; color: #9a6330; font-size: 10px; font-weight: 800; line-height: 1.45; }
.antenna-3d-section { margin-top: 16px; }
.antenna-3d-stage { position: relative; width: 100%; height: clamp(260px, 32vw, 390px); min-height: 260px; overflow: hidden; background: #f1f6f5; }
.antenna-3d-stage canvas { display: block; width: 100%; height: 100%; touch-action: none; cursor: grab; }
.antenna-3d-stage canvas:active { cursor: grabbing; }
.antenna-3d-empty { position: absolute; inset: 0; display: grid; place-items: center; padding: 20px; color: #60757e; font-size: 12px; text-align: center; pointer-events: none; }
.antenna-3d-note { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 5px 12px; padding-top: 7px; color: #667c83; font-size: 10px; }
.antenna-3d-legend { display: inline-flex; align-items: center; gap: 5px; }
.antenna-3d-legend i { display: inline-block; width: 62px; height: 5px; background: linear-gradient(90deg,#2367cd,#38bdc7,#91d36b,#e18e33); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.antenna-form label { color: #60757e; font-size: 11px; font-weight: 800; }
.antenna-form label .text-input { display: block; width: 100%; margin-top: 6px; box-sizing: border-box; }
.antenna-detail { padding-top: 20px; }
.detail-heading, .version-row, .detail-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.detail-heading h3 { margin: 4px 0 0; }
.detail-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 13px 0; color: #73868e; font-size: 11px; }
.version-row { padding: 12px; border-radius: 8px; background: #f4f8f8; font-size: 11px; }
.version-row .select-input { flex: 1; margin-left: auto; }
.upload-block { margin-top: 16px; padding: 13px; border: 1px solid var(--line); border-radius: 9px; }
.upload-block > strong { display: block; color: #385761; font-size: 11px; }
.upload-line { display: flex; align-items: center; gap: 8px; margin-top: 9px; }
.upload-line input[type=file] { min-width: 0; flex: 1; color: #7b8c94; font-size: 10px; }
.pattern-upload-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pattern-upload-grid .upload-block { min-width: 0; }
.pattern-upload-grid canvas { display: block; width: 100%; max-width: 260px; height: auto; margin: 14px auto 0; border-radius: 8px; background: #fbfdfd; }
.validation-panel { min-height: 42px; margin-top: 16px; padding: 12px; border-radius: 8px; background: #f5f8f8; color: #5d727a; font-size: 11px; line-height: 1.7; }
.validation-panel .validation-error { color: #a84d4d; }
.validation-panel .validation-warning { color: #98681c; }
.detail-actions { justify-content: flex-end; margin-top: 15px; }
.task-center-page { padding: 31px 34px 50px; min-width: 0; }
.task-center-page .hero-meta > button { flex-shrink: 0; white-space: nowrap; }
.upload-management-page { padding: 31px 34px 50px; min-width: 0; }
.upload-management-card { min-height: 360px; }
.upload-management-table { min-width: 980px; }
.upload-management-table td { vertical-align: top; color: #536a73; }
.upload-management-table td:nth-child(2), .upload-management-table td:last-child { color: inherit; font-weight: 400; }
.upload-reference-summary { display: grid; gap: 3px; }
.upload-reference-summary small { color: #7b8c94; }
.task-center-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
.task-center-metrics article { padding: 17px 19px; border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: var(--shadow); }
.task-center-metrics span { display: block; color: #7b8c94; font-size: 10px; font-weight: 800; }
.task-center-metrics strong { display: block; margin-top: 7px; color: #173d4a; font-size: 25px; }
.task-center-card { min-height: 430px; }
.task-center-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.task-center-toolbar .select-input { width: 180px; }
.task-center-table { min-width: 1120px; }
.task-center-table td { vertical-align: top; color: #536a73; }
.task-center-table td:nth-child(2), .task-center-table td:last-child { color: inherit; font-weight: 400; }
.task-name strong, .task-name small { display: block; }
.task-name strong { color: #214653; font-size: 12px; }
.task-name small, .task-stage small { margin-top: 4px; color: #8a9aa1; font-size: 9px; }
.task-stage strong { display: block; color: #526b75; font-size: 10px; }
.task-action-row { display: flex; flex-wrap: wrap; gap: 5px; }
.task-action-row button { padding: 6px 8px; border: 1px solid #dbe5e7; border-radius: 6px; background: white; color: #47636d; font-size: 9px; font-weight: 800; }
.task-action-row button.primary { border-color: #99d7d0; color: #08786f; background: #eefaf8; }
.project-management-page { padding: 31px 34px 50px; min-width: 0; }
.project-lifecycle-card { margin-bottom: 18px; }
.project-lifecycle-metrics { display: flex; flex-wrap: wrap; gap: 18px; color: #71848c; font-size: 11px; }
.project-lifecycle-metrics strong { margin-left: 4px; color: #173d4a; font-size: 18px; }
.project-management-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr); gap: 18px; align-items: start; }
.management-card { min-width: 0; padding: 18px; }
.management-card.audit-card { grid-column: 1 / -1; }
.member-add-form { display: grid; grid-template-columns: minmax(180px, 1fr) 150px auto; gap: 9px; margin-bottom: 14px; }
.management-table { min-width: 660px; }
.management-table td { vertical-align: middle; color: #587079; }
.management-user strong, .management-user small { display: block; }
.management-user strong { color: #214653; font-size: 11px; }
.management-user small { margin-top: 3px; color: #8a9aa1; font-size: 9px; }
.management-actions { display: flex; align-items: center; gap: 6px; }
.management-actions .select-input { min-width: 112px; padding: 6px 8px; }
.management-actions button { padding: 6px 8px; border: 1px solid #dbe5e7; border-radius: 6px; background: white; color: #47636d; font-size: 9px; font-weight: 800; }
.management-actions button.danger { border-color: #efc7c7; color: #a24d4d; background: #fff8f8; }
.audit-table { min-width: 1050px; }
.audit-table td:last-child { max-width: 360px; white-space: normal; word-break: break-word; }
.status-dot { display: inline-flex; align-items: center; gap: 5px; font-size: 10px; font-weight: 800; }
.status-dot::before { width: 7px; height: 7px; border-radius: 50%; background: #9aa8ad; content: ""; }
.status-dot.active::before { background: #20a785; }
.status-dot.inactive::before { background: #cf6767; }
.environment-library-page { padding: 31px 34px 50px; min-width: 0; }
.environment-library-grid { display: grid; grid-template-columns: minmax(280px, .55fr) minmax(720px, 1.45fr); gap: 18px; align-items: start; }
.environment-upload-card, .environment-list-card { min-width: 0; }
.environment-upload-form { display: grid; gap: 13px; }
.environment-upload-form label { color: #60757e; font-size: 11px; font-weight: 800; }
.environment-upload-form .text-input, .environment-upload-form .select-input { display: block; width: 100%; margin-top: 6px; resize: vertical; }
.environment-upload-form input[type="file"] { display: block; width: 100%; margin-top: 7px; color: #60757e; font-size: 10px; }
.environment-basemap-card { margin-bottom: 18px; padding: 18px; }
.environment-basemap-card > p { margin: 0 0 13px; color: #6f8289; font-size: 10px; line-height: 1.6; }
.tianditu-session-form { display: grid; gap: 6px; }
.tianditu-session-form > label { color: #536c75; font-size: 10px; font-weight: 800; }
.tianditu-session-form > div { display: flex; flex-wrap: wrap; gap: 8px; }
.tianditu-session-form > div > :first-child, .tianditu-session-form > div > :nth-child(2):not(button) { flex: 1 1 190px; min-width: 0; }
.environment-table { min-width: 920px; }
.environment-table td { vertical-align: top; color: #587079; }
.environment-name strong, .environment-name small { display: block; }
.environment-name strong { color: #214653; font-size: 11px; }
.environment-name small { margin-top: 4px; color: #8a9aa1; font-size: 9px; }
.environment-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.environment-actions button { padding: 6px 8px; border: 1px solid #dbe5e7; border-radius: 6px; background: white; color: #47636d; font-size: 9px; font-weight: 800; }
.environment-actions button.primary { border-color: #99d7d0; color: #08786f; background: #eefaf8; }
.environment-preview-card { grid-column: 1 / -1; min-width: 0; }
.environment-layer-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 17px; margin: 13px 0; color: #587079; font-size: 10px; font-weight: 800; }
.environment-layer-toolbar label { display: inline-flex; align-items: center; gap: 6px; }
.environment-layer-toolbar span { margin-left: auto; color: #83939a; }
.environment-preview-stage { position: relative; height: 430px; overflow: hidden; border: 1px solid #d9e5e7; border-radius: 12px; background: linear-gradient(145deg, #eff6f3, #dfecea); }
.environment-preview-basemap { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.environment-preview-basemap img { position: absolute; width: 256px; height: 256px; max-width: none; }
.environment-preview-stage canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.environment-preview-basemap-status, .environment-preview-attribution { position: absolute; left: 10px; bottom: 10px; max-width: calc(100% - 20px); padding: 5px 7px; background: rgba(255,255,255,.93); color: #335762; font-size: 10px; pointer-events: none; }
.environment-preview-attribution { left: auto; right: 10px; bottom: 40px; }
.environment-preview-stage canvas.selecting-profile { cursor: crosshair; }
.environment-preview-empty { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: 9px 13px; border-radius: 8px; color: #60777f; background: rgba(255,255,255,.9); font-size: 11px; box-shadow: 0 5px 18px rgba(20,61,72,.1); }
.environment-map-legend { position: absolute; right: 12px; bottom: 12px; display: flex; gap: 11px; padding: 8px 10px; border-radius: 8px; background: rgba(255,255,255,.9); color: #5f727a; font-size: 9px; font-weight: 800; }
.environment-map-legend span { display: inline-flex; align-items: center; gap: 4px; }
.environment-map-legend i { width: 10px; height: 10px; border-radius: 3px; background: #888; }
.environment-map-legend i.elevation { border-radius: 50%; background: #7957b5; }
.environment-map-legend i.clutter { background: #55a477; }
.environment-map-legend i.building { background: #e1904c; }
.environment-preview-meta { display: grid; grid-template-columns: 1fr 1fr 1.4fr; gap: 10px; margin-top: 13px; }
.environment-preview-meta > div { padding: 11px 13px; border-radius: 9px; background: #f5f8f8; }
.environment-preview-meta small, .environment-preview-meta strong, .environment-preview-meta span { display: block; }
.environment-preview-meta small { color: #82939a; font-size: 9px; font-weight: 800; }
.environment-preview-meta strong { margin-top: 5px; color: #2d5662; font-size: 11px; }
.environment-preview-meta span { margin-top: 4px; color: #7c8d94; font-size: 9px; }
.environment-compatibility.covered { background: #edf9f5; }.environment-compatibility.covered strong { color: #16816d; }
.environment-compatibility.partial { background: #fff8e9; }.environment-compatibility.partial strong { color: #9b6b17; }
.environment-compatibility.outside { background: #fff0ef; }.environment-compatibility.outside strong { color: #b25050; }
.environment-profile-panel { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.environment-profile-form { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)) auto auto; gap: 10px; align-items: end; margin: 12px 0; }
.environment-profile-form label { color: #60757e; font-size: 10px; font-weight: 800; }
.environment-profile-form .text-input { display: block; width: 100%; margin-top: 5px; box-sizing: border-box; }
.environment-profile-stage { position: relative; height: 250px; overflow: hidden; border: 1px solid #d9e5e7; border-radius: 11px; background: #f8fbfa; }
.environment-profile-stage canvas { display: block; width: 100%; height: 100%; }
.environment-profile-empty { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); color: #7b8d94; font-size: 11px; }
.environment-profile-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 10px; }
.environment-profile-summary > div { padding: 10px 12px; border-radius: 8px; background: #f5f8f8; }
.environment-profile-summary small, .environment-profile-summary strong { display: block; }
.environment-profile-summary small { color: #82939a; font-size: 9px; font-weight: 800; }
.environment-profile-summary strong { margin-top: 4px; color: #2d5662; font-size: 12px; }
.system-landcover { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line); }
.system-landcover-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.system-landcover-header h3 { margin: 4px 0 0; font-size: 18px; }
.system-landcover-notice { margin: 13px 0; padding: 10px 12px; border-left: 3px solid #c48b3d; background: #fff9eb; color: #5b5760; font-size: 11px; line-height: 1.6; }
.system-landcover-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin: 14px 0; font-size: 11px; }
.system-landcover-toolbar label { font-weight: 800; color: #526b74; }
.system-landcover-toolbar select { width: 165px; }
.system-landcover-toolbar span { margin-left: auto; color: #627881; overflow-wrap: anywhere; }
.system-landcover-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr); gap: 22px; align-items: start; }
.system-landcover-stage { position: relative; display: grid; place-items: center; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid #d9e5e7; background: #e7eceb; }
.system-landcover-stage canvas { display: block; width: 100%; height: 100%; object-fit: contain; image-rendering: pixelated; }
.system-landcover-empty { position: absolute; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(242,247,246,.94); color: #536a73; text-align: center; font-size: 12px; }
.system-landcover-detail { min-width: 0; color: #405b65; font-size: 11px; }
.system-landcover-detail > strong { display: block; margin-bottom: 11px; font-size: 12px; }
.system-landcover-legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 12px; }
.system-landcover-legend span { display: flex; align-items: center; gap: 6px; min-width: 0; }
.system-landcover-legend i { flex: 0 0 12px; width: 12px; height: 12px; border: 1px solid rgba(26,51,56,.12); }
.system-landcover-legend strong { font-size: 11px; }
.system-landcover-detail p { margin: 15px 0; line-height: 1.6; }
.system-landcover-sources { border-top: 1px solid var(--line); }
.system-landcover-sources > div { padding: 9px 0; border-bottom: 1px solid var(--line); }
.system-landcover-sources strong, .system-landcover-sources small { display: block; overflow-wrap: anywhere; }
.system-landcover-sources small { margin-top: 3px; color: #71868d; font-size: 9px; line-height: 1.5; }
@media (max-width: 900px) { .system-landcover-layout { grid-template-columns: 1fr; }.system-landcover-stage { aspect-ratio: 4 / 3; }.system-landcover-toolbar span { flex-basis: 100%; margin-left: 0; } }
@media (max-width: 480px) { .system-landcover-header { align-items: flex-start; }.system-landcover-header h3 { font-size: 16px; }.system-landcover-stage { aspect-ratio: 1 / 1; }.system-landcover-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1100px) { .antenna-library-page { padding-left: 22px; padding-right: 22px; }.library-grid { grid-template-columns: 1fr; }.library-list-card { min-height: 0; }.antenna-list { max-height: 280px; } }
@media (max-width: 1100px) { .scenario-library-page { padding-left: 22px; padding-right: 22px; }.scenario-library-grid { grid-template-columns: 1fr; }.scenario-list-card, .scenario-detail-card { min-height: 0; } }
@media (max-width: 1100px) { .upload-management-page { padding-left: 22px; padding-right: 22px; } }
@media (max-width: 1100px) { .project-management-page { padding-left: 22px; padding-right: 22px; }.project-management-grid { grid-template-columns: 1fr; }.management-card.audit-card { grid-column: auto; } }
@media (max-width: 1100px) { .environment-library-page { padding-left: 22px; padding-right: 22px; }.environment-library-grid { grid-template-columns: 1fr; } }
@media (max-width: 1100px) { .environment-profile-form { grid-template-columns: repeat(2, 1fr); }.environment-profile-form button { grid-column: 1 / -1; }.environment-profile-summary { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) { .validation-summary-grid { grid-template-columns: repeat(2, 1fr); } }

.platform-layout { display: grid; grid-template-columns: 238px minmax(0, 1fr); min-height: calc(100vh - 78px); }
.platform-sidebar { position: sticky; top: 78px; align-self: start; height: calc(100vh - 78px); padding: 20px 14px; background: #102b39; color: #d8e7e8; border-right: 1px solid rgba(255,255,255,.08); display: flex; flex-direction: column; justify-content: space-between; z-index: 20; }
.primary-navigation { display: flex; flex-direction: column; gap: 4px; }
.nav-item { width: 100%; display: flex; align-items: center; gap: 11px; padding: 11px 12px; border: 0; border-radius: 9px; background: transparent; color: #c5d8dc; font: inherit; font-size: 13px; text-align: left; cursor: pointer; }
.nav-item:hover { background: rgba(255,255,255,.07); color: white; }
.nav-item.active { background: #1d6667; color: white; box-shadow: inset 3px 0 #7ce0c3; }
.nav-icon { width: 22px; flex: 0 0 22px; font-size: 17px; text-align: center; }
.nav-section-label { padding: 18px 12px 6px; color: #78969d; font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.sidebar-project-card { padding: 13px; border: 1px solid rgba(255,255,255,.09); border-radius: 10px; background: rgba(255,255,255,.04); }
.sidebar-project-card small, .sidebar-project-card strong, .sidebar-project-card span { display: block; }
.sidebar-project-card small { color: #76969d; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.sidebar-project-card strong { margin-top: 6px; color: white; font-size: 13px; }
.sidebar-project-card span { margin-top: 4px; color: #9bb4b9; font-size: 10px; }
.page-host { min-width: 0; }
.platform-page { min-width: 0; }
.sidebar-toggle { display: none; }
.project-readonly-banner { min-height: 44px; padding: 9px 24px; background: #fff3d6; border-bottom: 1px solid #ecd08d; color: #714f13; display: flex; align-items: center; gap: 12px; font-size: 12px; }
.project-readonly-banner span { flex: 1; }
.project-readonly-banner .ghost-button { border-color: #d7b564; color: #714f13; background: rgba(255,255,255,.45); }
.workbench-page, .application-center-page { padding: 31px 34px 50px; }
.free-tier #newProjectButton, .free-tier .workbench-metrics, .free-tier .workbench-grid, .entitlement-unknown #newProjectButton, .entitlement-unknown .workbench-metrics, .entitlement-unknown .workbench-grid { display: none; }
.free-tier .primary-navigation .nav-item[data-nav-page]:not([data-nav-page="workbench"]):not([data-nav-page="quick-sim"])::after { content: '付费'; margin-left: auto; color: #e5c58c; font-size: 10px; font-weight: 800; }
.entitlement-unknown .primary-navigation .nav-item[data-nav-page]:not([data-nav-page="workbench"]):not([data-nav-page="quick-sim"])::after { content: '待确认'; margin-left: auto; color: #e5c58c; font-size: 10px; font-weight: 800; }
@media (min-width: 821px) and (max-width: 1280px) { .free-tier .primary-navigation .nav-item[data-nav-page]:not([data-nav-page="workbench"])::after, .entitlement-unknown .primary-navigation .nav-item[data-nav-page]:not([data-nav-page="workbench"])::after { display: none; } }
.free-experience { margin-bottom: 18px; padding: 20px 0; border-top: 1px solid #b9dcda; border-bottom: 1px solid #b9dcda; }
.free-experience h3 { color: #176d67; font-size: 17px; }
.free-experience p, .paid-access-page p { max-width: 680px; margin-top: 10px; color: #557179; font-size: 12px; line-height: 1.7; }
.entitlement-unavailable { border-color: #e9cf96; }
.entitlement-unavailable h3 { color: #86621b; }
.entitlement-unavailable button { margin-top: 14px; }
.paid-access-page { padding: 31px 34px 50px; }
.paid-access-page h2 { margin-top: 8px; }
.paid-access-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.workbench-hero { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.workbench-hero h2 { margin: 6px 0; }
.workbench-project-summary { padding: 17px 20px; border: 1px solid #cfe1e1; border-radius: 12px; background: linear-gradient(135deg,#f9fcfc,#eaf4f2); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.workbench-project-summary small, .workbench-project-summary strong, .workbench-project-summary span { display: block; }
.workbench-project-summary small { color: var(--muted); font-size: 10px; }
.workbench-project-summary strong { margin-top: 3px; color: #173e49; font-size: 19px; }
.workbench-project-summary span { margin-top: 3px; color: #668087; font-size: 11px; }
.workbench-project-summary p { max-width: 600px; margin: 0; color: #557179; font-size: 12px; line-height: 1.65; text-align: right; }
.workbench-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin: 18px 0; }
.workbench-metrics article { padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: 0 5px 18px rgba(35,69,78,.05); }
.workbench-metrics span, .workbench-metrics strong, .workbench-metrics small { display: block; }
.workbench-metrics span { color: #60757c; font-size: 11px; font-weight: 700; }
.workbench-metrics strong { margin: 7px 0 4px; color: #123f4b; font-size: 28px; }
.workbench-metrics small { color: #8a9a9f; font-size: 9px; line-height: 1.45; }
.workbench-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(330px,.65fr); gap: 18px; align-items: start; }
.workbench-card { min-height: 330px; }
.recent-task-list { display: flex; flex-direction: column; }
.recent-task-item { width: 100%; padding: 13px 2px; border: 0; border-bottom: 1px solid #e5eeee; background: transparent; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; text-align: left; cursor: pointer; }
.recent-task-item:hover { background: #f7fbfb; }
.recent-task-item strong, .recent-task-item small { display: block; }
.recent-task-item small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.recent-task-meta { text-align: right; }
.readiness-list { display: grid; gap: 8px; }
.readiness-list button { width: 100%; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 12px; padding: 12px 13px; border: 1px solid #deebeb; border-radius: 9px; background: #f9fcfc; color: #284a54; text-align: left; cursor: pointer; }
.readiness-list button:hover { border-color: #8fc7c3; background: #f1f9f8; }
.readiness-list span { font-size: 12px; font-weight: 800; }
.readiness-list strong { grid-row: 1 / 3; grid-column: 2; align-self: center; color: #0b7771; font-size: 22px; }
.readiness-list small { color: var(--muted); font-size: 9px; }
.simulation-quick-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: -10px 0 14px; }
.scenario-binding-card { margin-bottom: 17px; padding: 11px 12px; border: 1px solid #cfe3e0; border-radius: 9px; background: #f0f8f7; }
.scenario-binding-card small, .scenario-binding-card strong, .scenario-binding-card span { display: block; }
.scenario-binding-card small { color: #6c8388; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.scenario-binding-card strong { margin-top: 3px; color: #126b68; font-size: 12px; }
.scenario-binding-card span { margin-top: 3px; color: #6a7f85; font-size: 9px; line-height: 1.45; }
.scenario-binding-card.modified { border-color: #ebc276; background: #fff8e8; }
.scenario-binding-card.modified strong { color: #8b5d0d; }
.capability-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid #e6eeee; color: #526970; font-size: 11px; }
.capability-row strong { color: #18736e; font-size: 10px; }
.parameter-group { margin-bottom: 14px; padding: 16px; border: 1px solid #dde9ea; border-radius: 12px; background: #fff; box-shadow: 0 7px 20px rgba(24,67,76,.045); }
.parameter-group-heading { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 14px; }
.parameter-group-heading > span { display: grid; place-items: center; width: 25px; height: 25px; flex: none; border-radius: 8px; background: #e6f6f4; color: #0b817c; font-size: 9px; font-weight: 900; }
.parameter-group-heading strong, .parameter-group-heading small { display: block; }
.parameter-group-heading strong { color: #24434d; font-size: 12px; }
.parameter-group-heading small { margin-top: 3px; color: #829398; font-size: 9px; line-height: 1.45; }
.parameter-group .simulation-quick-actions { margin: 0 0 14px; }
.parameter-group .section-title { margin-top: 16px; }
.field-label-with-badge { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.field-label-with-badge em, .reference-parameter-heading span { padding: 3px 6px; border-radius: 999px; background: #fff1d8; color: #986816; font-size: 8px; font-style: normal; letter-spacing: .04em; }
.reference-parameter-card { margin-top: 14px; padding: 11px; border: 1px dashed #dfc98f; border-radius: 9px; background: #fffaf0; }
.reference-parameter-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #5c4d2d; font-size: 10px; }
.reference-parameter-card .field-label { margin-top: 11px; }
.reference-parameter-card p, .parameter-boundary-note { margin: 9px 0 0; color: #7b898e; font-size: 9px; line-height: 1.55; }
.reference-parameter-card .radio-parameter-priority-note { padding: 8px 9px; border-left: 3px solid #d7a440; border-radius: 5px; background: rgba(255,255,255,.72); color: #6f654f; }
.radio-parameter-priority-note strong { color: #8b5f12; }
.parameter-boundary-note { padding: 9px 10px; border-radius: 8px; background: #f4f8f8; }
.propagation-field-grid { align-items: end; }
.parameter-submit-group { border-color: #b9dfdb; background: #f9fdfc; }
.parameter-submit-group .workload-card { margin-top: 0; }
.segment:disabled { opacity: .55; cursor: not-allowed; }
.application-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.application-card { min-height: 190px; padding: 22px; border: 1px dashed #c6d5d6; border-radius: 13px; background: rgba(255,255,255,.65); }
.application-card.available { border-style: solid; border-color: #aad6cf; background: white; box-shadow: 0 8px 24px rgba(30,75,84,.07); }
.application-card h3 { margin: 18px 0 8px; color: #173f4a; }
.application-card p { min-height: 45px; color: var(--muted); font-size: 12px; line-height: 1.6; }

.task-detail-page, .result-workspace-page { min-width: 0; padding: 31px 34px 50px; }
.detail-page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.detail-page-heading h2 { margin: 5px 0 6px; color: #173d4a; font-size: 26px; }
.detail-page-heading p { margin: 0; }
.text-back-button { margin: 0 0 14px; padding: 0; border: 0; color: #16837d; background: transparent; font-size: 11px; font-weight: 800; cursor: pointer; }
.detail-heading-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.task-detail-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 16px; }
.task-detail-metrics article { min-width: 0; padding: 16px 18px; border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: var(--shadow); }
.task-detail-metrics span, .task-detail-metrics small { display: block; color: #7b8c94; font-size: 10px; }
.task-detail-metrics strong { display: block; overflow: hidden; margin: 7px 0 4px; color: #173d4a; font-size: 23px; text-overflow: ellipsis; white-space: nowrap; }
.task-detail-progress-card { margin-bottom: 16px; padding: 16px 18px; }
.task-detail-progress-copy { display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #6f828a; font-size: 10px; }
.task-detail-progress-copy strong { color: #28515d; font-size: 12px; }
.task-detail-progress-track { height: 8px; overflow: hidden; margin-top: 11px; border-radius: 999px; background: #e8efef; }
.task-detail-progress-track i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#20aaa0,#4d86d5); transition: width .25s ease; }
.task-detail-grid { display: grid; grid-template-columns: minmax(260px,.9fr) minmax(300px,1.05fr) minmax(260px,.9fr); gap: 16px; align-items: stretch; }
.task-detail-card { min-width: 0; min-height: 360px; padding: 18px; }
.detail-definition-list { display: grid; gap: 0; }
.detail-definition-row { display: grid; grid-template-columns: minmax(92px,.72fr) minmax(0,1.28fr); gap: 12px; padding: 9px 0; border-bottom: 1px solid #edf1f2; }
.detail-definition-row:last-child { border-bottom: 0; }
.detail-definition-row span { color: #819097; font-size: 10px; }
.detail-definition-row strong { overflow-wrap: anywhere; color: #294d58; font-size: 10px; text-align: right; }
.task-stage-timeline { display: grid; gap: 3px; }
.task-stage-item { position: relative; display: grid; grid-template-columns: 24px minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 45px; padding: 7px 8px; border-radius: 8px; color: #7b8d94; }
.task-stage-item::before { content: ''; position: absolute; left: 19px; top: 36px; width: 1px; height: 19px; background: #dbe5e6; }
.task-stage-item:last-child::before { display: none; }
.task-stage-item i { display: grid; width: 22px; height: 22px; place-items: center; border: 2px solid #d4dfe1; border-radius: 50%; background: white; color: #91a0a5; font-size: 9px; font-style: normal; font-weight: 800; }
.task-stage-item strong, .task-stage-item small { display: block; }
.task-stage-item strong { color: #526a73; font-size: 11px; }
.task-stage-item small { margin-top: 2px; font-size: 9px; }
.task-stage-item.done { background: #f2faf8; }
.task-stage-item.done i { border-color: #28a493; color: white; background: #28a493; }
.task-stage-item.active { background: #edf6fd; }
.task-stage-item.active i { border-color: #5687d8; color: white; background: #5687d8; box-shadow: 0 0 0 4px rgba(86,135,216,.12); }
.task-stage-item.failed { background: #fff2f2; }
.task-stage-item.failed i { border-color: #c75b5b; color: white; background: #c75b5b; }
.detail-section-label { margin: 18px 0 9px; color: #72848b; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.detail-chip-list { display: flex; flex-wrap: wrap; gap: 6px; }
.detail-chip-list span:not(.muted) { padding: 5px 8px; border-radius: 999px; color: #176d68; background: #eaf7f5; font-size: 9px; font-weight: 800; }
.detail-file-list { display: grid; gap: 7px; }
.detail-file-item { display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 9px 10px; border: 1px solid #e2eaeb; border-radius: 8px; color: #536c75; background: #fbfdfd; font-size: 10px; }
.detail-file-item button { padding: 4px 6px; border: 0; color: #0b7e77; background: transparent; font-size: 9px; font-weight: 800; cursor: pointer; }
.task-detail-notice { padding: 11px 12px; border: 1px solid #efc7c7; border-radius: 8px; color: #994848; background: #fff3f3; font-size: 10px; line-height: 1.6; }
.task-detail-lower-grid { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(340px,.8fr); gap: 16px; margin-top: 16px; }
.task-detail-log-card, .task-detail-snapshot-card { min-width: 0; padding: 18px; }
.task-detail-log { max-height: 330px; overflow: auto; border-radius: 9px; background: #16293b; }
.task-detail-log-line { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 10px; padding: 8px 11px; border-bottom: 1px solid rgba(255,255,255,.06); color: #c7d8dc; font: 10px/1.55 Consolas, monospace; }
.task-detail-log-line span { color: #7fa3aa; }
.task-detail-log .empty-state { color: #aac0c5; }
.task-detail-snapshot-card details { border-top: 1px solid #e6edef; }
.task-detail-snapshot-card details:first-of-type { border-top: 0; }
.task-detail-snapshot-card summary { padding: 11px 0; color: #345966; font-size: 10px; font-weight: 800; cursor: pointer; }
.snapshot-content { overflow-wrap: anywhere; color: #647a82; font-size: 10px; line-height: 1.65; }
.snapshot-content .detail-definition-row { grid-template-columns: minmax(105px,.8fr) minmax(0,1.2fr); }

.result-workspace-grid { display: grid; grid-template-columns: 238px minmax(430px,1fr) 290px; gap: 16px; align-items: start; }
.result-workspace-sidebar, .result-workspace-map-card, .result-workspace-inspector { min-width: 0; padding: 17px; }
.result-layer-list { display: grid; gap: 8px; }
.result-layer-list button { padding: 11px 12px; border: 1px solid #dfe8e9; border-radius: 9px; color: #587079; background: #fafcfc; text-align: left; cursor: pointer; }
.result-layer-list button strong, .result-layer-list button small { display: block; }
.result-layer-list button strong { color: #315461; font-size: 11px; }
.result-layer-list button small { margin-top: 4px; font-size: 9px; }
.result-layer-list button.active { border-color: #73bbb3; background: #ecf9f7; box-shadow: 0 0 0 2px rgba(51,158,148,.08); }
.result-layer-list button.active strong { color: #087a73; }
.result-layer-list button:disabled { opacity: .52; cursor: not-allowed; }
.result-download-grid { display: grid; grid-template-columns: 1fr; gap: 7px; }
.result-map-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 12px; }
.result-map-toolbar strong, .result-map-toolbar span { display: block; }
.result-map-toolbar strong { color: #254e5b; font-size: 12px; }
.result-map-toolbar span { margin-top: 3px; color: #839399; font-size: 9px; }
.result-map-toolbar > div:last-child { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.result-workspace-stage { position: relative; height: 590px; overflow: hidden; border: 1px solid #dce7e7; border-radius: 11px; background: linear-gradient(145deg,#eaf2ef,#d8e7e4); }
.result-workspace-basemap { position: absolute; inset: 0; z-index: 1; overflow: hidden; background: #e8efec; pointer-events: none; }
.result-workspace-tile { position: absolute; width: 256px; height: 256px; max-width: none; user-select: none; pointer-events: none; }
.result-workspace-tile.annotation { z-index: 2; }
.result-workspace-stage canvas { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; cursor: crosshair; }
.result-workspace-stage .result-spatial-overlay-canvas { z-index: 3; pointer-events: none; }
.result-workspace-stage.spatial-drawing-active .result-spatial-overlay-canvas { pointer-events: auto; touch-action: none; cursor: crosshair; }
.result-spatial-draw-map-hint { position: absolute; z-index: 5; left: 50%; top: 10px; transform: translateX(-50%); max-width: calc(100% - 220px); padding: 7px 10px; border: 1px solid rgba(8,122,115,.22); border-radius: 8px; color: #0b6966; background: rgba(239,252,249,.94); box-shadow: 0 4px 14px rgba(28,61,71,.1); font-size: 9px; font-weight: 800; line-height: 1.45; text-align: center; pointer-events: none; }
.result-workspace-stage .result-map-sites { z-index: 4; }
.result-workspace-basemap-status { position: absolute; z-index: 4; left: 10px; top: 10px; max-width: min(320px,calc(100% - 20px)); padding: 7px 9px; border: 1px solid rgba(80,109,116,.18); border-radius: 7px; color: #516970; background: rgba(255,255,255,.92); box-shadow: 0 4px 14px rgba(28,61,71,.1); font-size: 9px; line-height: 1.45; pointer-events: none; }
.result-workspace-basemap-status.loading { color: #276b76; background: rgba(239,250,251,.94); }
.result-workspace-basemap-status.warning { color: #886320; background: rgba(255,249,232,.95); }
.result-workspace-basemap-status.failed { color: #a34b46; background: rgba(255,241,239,.95); }
.result-workspace-attribution { position: absolute; z-index: 5; right: 8px; bottom: 7px; padding: 3px 6px; border-radius: 4px; color: #3f555d; background: rgba(255,255,255,.82); font-size: 8px; pointer-events: none; }
.result-workspace-bbox-overlay { position: absolute; inset: 0; z-index: 6; pointer-events: none; }
.result-workspace-bbox-box { position: absolute; display: none; border: 2px solid #087a73; border-radius: 4px; background: rgba(12,161,156,.14); box-shadow: 0 0 0 1px rgba(255,255,255,.85) inset; pointer-events: none; }
.result-workspace-bbox-box.visible { display: block; }
.result-workspace-stage.bbox-selection-active .result-workspace-bbox-overlay { pointer-events: auto; touch-action: none; cursor: crosshair; }
.result-workspace-stage.bbox-selection-active canvas, .result-workspace-stage.bbox-selection-active .result-site { pointer-events: none; }
.result-map-toolbar .map-tool.active { border-color: #62b8ae; color: #087a73; background: #e8f8f5; }
.result-map-toolbar .map-tool:disabled { cursor: not-allowed; opacity: .48; }
.result-workspace-empty { position: absolute; z-index: 4; left: 50%; top: 50%; transform: translate(-50%,-50%); padding: 10px 13px; border-radius: 8px; color: #62767d; background: rgba(255,255,255,.9); font-size: 10px; box-shadow: 0 5px 18px rgba(28,61,71,.12); }
.result-workspace-stage.has-results .result-workspace-empty { display: none; }
.result-workspace-legend { display: grid; grid-template-columns: auto minmax(120px,1fr); align-items: center; gap: 8px 12px; margin-top: 12px; color: #61747c; font-size: 9px; }
.result-workspace-legend > i { height: 8px; border-radius: 99px; background: linear-gradient(90deg,#283b9c,#1eb4d3,#23be8a,#ffd345,#ef592d); }
.result-workspace-legend > div { display: grid; grid-column: 2; grid-template-columns: repeat(5,1fr); color: #819097; text-align: center; }
.result-summary-stack { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.result-summary-stack article { min-width: 0; padding: 11px; border-radius: 9px; background: #f5f9f9; }
.result-summary-stack article:nth-child(2), .result-summary-stack article:nth-child(4) { grid-column: span 1; }
.result-summary-stack span, .result-summary-stack small { display: block; color: #7a8c92; font-size: 9px; }
.result-summary-stack strong { display: block; overflow-wrap: anywhere; margin: 5px 0 3px; color: #1e4a56; font-size: 17px; }
.result-feature-properties { max-height: 285px; overflow: auto; }
.result-property-title { display: block; margin-bottom: 8px; color: #195f61; font-size: 11px; }
.result-feature-properties .detail-definition-row { grid-template-columns: minmax(90px,.8fr) minmax(0,1.2fr); }
.result-workspace-bottom { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 16px; }
.result-workspace-bottom > article { min-width: 0; padding: 17px; }
.result-gis-analysis { display: grid; gap: 16px; min-width: 0; margin-top: 16px; }
.result-gis-controls-card, .result-gis-preview-card, .result-gis-cells-card { min-width: 0; padding: 17px; }
.result-spatial-card { min-width: 0; padding: 17px; }
#resultSpatialCoveragePanel { scroll-margin-top: 90px; }
.result-spatial-notice { margin: 0 0 14px; color: #687d84; font-size: 10px; line-height: 1.6; }
.result-spatial-mode { display: inline-grid; grid-template-columns: repeat(3,minmax(72px,1fr)); margin-bottom: 12px; padding: 3px; border: 1px solid #d8e6e6; border-radius: 9px; background: #f3f8f7; }
.result-spatial-mode-button { min-height: 31px; padding: 6px 14px; border: 0; border-radius: 6px; color: #657980; background: transparent; font-size: 10px; font-weight: 900; cursor: pointer; }
.result-spatial-mode-button.active { color: #087a73; background: white; box-shadow: 0 2px 8px rgba(27,70,76,.12); }
.result-spatial-form { display: grid; grid-template-columns: minmax(190px,.8fr) minmax(150px,.55fr) minmax(260px,1.2fr) auto; gap: 10px; align-items: end; }
.result-spatial-form > label { min-width: 0; color: #5d7078; font-size: 9px; font-weight: 800; }
.result-spatial-form .select-input, .result-spatial-form input[type="file"] { display: block; width: 100%; margin-top: 6px; }
.result-spatial-form input[type="file"] { min-height: 39px; padding: 8px; border: 1px solid #dbe5e7; border-radius: 8px; color: #60757e; background: white; font-size: 10px; }
.result-spatial-actions { display: flex; gap: 7px; }
.result-spatial-draw-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; padding: 10px 11px; border: 1px solid #cfe3e1; border-radius: 9px; background: #f2faf8; }
.result-spatial-draw-toolbar > div:first-child { min-width: 0; }
.result-spatial-draw-toolbar strong, .result-spatial-draw-toolbar span { display: block; }
.result-spatial-draw-toolbar strong { color: #185f61; font-size: 10px; }
.result-spatial-draw-toolbar span { margin-top: 3px; color: #6b8086; font-size: 9px; line-height: 1.45; }
.result-spatial-draw-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.result-spatial-input-meta { margin-top: 10px; color: #7a8d93; font-size: 9px; line-height: 1.55; }
.result-spatial-warning { margin-top: 10px; padding: 10px 11px; border: 1px solid #edd19c; border-radius: 8px; color: #825e20; background: #fff8e8; font-size: 10px; line-height: 1.55; }
.result-spatial-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; margin: 14px 0; }
.result-spatial-summary article { min-width: 0; padding: 11px; border: 1px solid #deebeb; border-radius: 9px; background: #f7fbfb; }
.result-spatial-summary span, .result-spatial-summary small { display: block; color: #74878e; font-size: 9px; }
.result-spatial-summary strong { display: block; margin: 6px 0 4px; color: #174f59; font-size: 19px; overflow-wrap: anywhere; }
.result-spatial-table { min-width: 960px; }
.result-spatial-table th, .result-spatial-table td { padding: 9px 8px; text-align: left; }
.result-spatial-table tbody tr[data-spatial-object] { cursor: pointer; }
.result-spatial-table tbody tr[data-spatial-object]:hover, .result-spatial-table tbody tr.selected { background: #eef8f7; }
.result-spatial-object-status { display: inline-flex; padding: 3px 6px; border-radius: 999px; font-size: 8px; font-weight: 900; }
.result-spatial-object-status.complete { color: #087a73; background: #e6f7f4; }
.result-spatial-object-status.no-data { color: #986816; background: #fff1d8; }
.result-spatial-distribution { display: flex; flex-wrap: wrap; gap: 8px; margin: -4px 0 14px; padding: 10px 11px; border: 1px solid #deebeb; border-radius: 9px; background: #f7fbfb; }
.result-spatial-distribution span { display: inline-flex; align-items: center; gap: 5px; color: #60757e; font-size: 9px; }
.result-spatial-distribution strong { color: #174f59; font-size: 10px; }
.result-gis-header-actions, .result-gis-filter-actions, .result-gis-toolbar, .result-gis-pagination { display: flex; align-items: center; gap: 8px; }
.result-gis-header-actions { flex-wrap: wrap; justify-content: flex-end; }
.result-gis-report-status { flex-basis: 100%; min-width: 0; overflow-wrap: anywhere; font-size: 10px; line-height: 1.5; text-align: right; }
.result-gis-filter-grid { display: grid; grid-template-columns: repeat(6,minmax(105px,1fr)); gap: 10px; }
.result-gis-filter-grid label { min-width: 0; color: #5d7078; font-size: 9px; font-weight: 800; }
.result-gis-filter-grid .text-input { display: block; margin-top: 6px; }
.result-gis-filter-actions { flex-wrap: wrap; margin-top: 12px; }
.result-gis-filter-actions .muted { min-width: 180px; overflow-wrap: anywhere; }
.result-gis-stat-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; margin-top: 14px; }
.result-gis-stat-grid article { min-width: 0; padding: 12px; border: 1px solid #deebeb; border-radius: 9px; background: #f7fbfb; }
.result-gis-stat-grid span, .result-gis-stat-grid small { display: block; color: #74878e; font-size: 9px; }
.result-gis-stat-grid strong { display: block; margin: 6px 0 4px; color: #174f59; font-size: 20px; }
.result-gis-stat-grid article.unavailable { border-color: #ead9bd; background: #fffaf0; }
.result-gis-stat-grid article.unavailable strong { color: #916520; font-size: 13px; }
.result-gis-metric-chart { margin-top: 18px; min-width: 0; }
.result-gis-metric-chart h4 { margin: 0 0 10px; font-size: 12px; color: #174f59; }
.result-gis-metric-chart-list { display: grid; gap: 10px; }
.result-gis-metric-row { display: grid; grid-template-columns: 78px minmax(0,1fr) minmax(110px,auto); gap: 10px; align-items: center; min-width: 0; }
.result-gis-metric-name { font-size: 11px; font-weight: 700; color: #304e55; }
.result-gis-metric-track { height: 8px; overflow: hidden; border-radius: 4px; background: #e5eeee; }
.result-gis-metric-fill { display: block; height: 100%; background: #087a73; }
.result-gis-metric-row:nth-child(2) .result-gis-metric-fill { background: #d08929; }
.result-gis-metric-row:nth-child(3) .result-gis-metric-fill { background: #b06b42; }
.result-gis-metric-row:nth-child(4) .result-gis-metric-fill { background: #c07b25; }
.result-gis-metric-row:nth-child(5) .result-gis-metric-fill { background: #b84b45; }
.result-gis-metric-value { font-size: 10px; font-weight: 700; color: #304e55; text-align: right; white-space: nowrap; }
.result-gis-metric-detail { grid-column: 2 / -1; margin-top: -7px; font-size: 9px; color: #687e84; }
.result-gis-metric-row.unavailable .result-gis-metric-value { color: #916520; white-space: normal; }
.result-gis-content-grid { display: grid; grid-template-columns: minmax(300px,.8fr) minmax(0,1.2fr); gap: 16px; min-width: 0; }
.result-gis-toolbar { flex-wrap: wrap; margin-bottom: 10px; }
.result-gis-toolbar .select-input { max-width: 150px; }
.result-gis-toolbar > button { flex-shrink: 0; white-space: nowrap; }
.result-gis-feature-context { margin-bottom: 10px; color: #28525c; font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
.result-gis-drill-button { display: block; margin-top: 6px; padding: 4px 7px; font-size: 10px; white-space: nowrap; }
.result-gis-drill-unavailable { display: block; margin-top: 5px; color: #71858c; }
.result-gis-preview-stage { position: relative; height: 310px; overflow: hidden; border: 1px solid #dce7e7; border-radius: 10px; background: linear-gradient(145deg,#eef5f2,#dfecea); }
.result-gis-preview-stage canvas { width: 100%; height: 100%; }
.result-gis-preview-stage .empty-state { position: absolute; inset: 50% auto auto 50%; width: min(280px,calc(100% - 32px)); transform: translate(-50%,-50%); text-align: center; }
.result-gis-preview-stage.has-results .empty-state { display: none; }
.result-gis-cell-toolbar { display: grid; grid-template-columns: minmax(150px,1fr) auto minmax(100px,auto); gap: 8px; align-items: center; margin-bottom: 10px; }
.result-gis-cell-views { display: flex; gap: 6px; margin-bottom: 10px; }
.result-gis-cell-views .active { border-color: #0b827d; color: #087e7b; background: #e8f5f3; }
.result-gis-diagnostics-meta { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 16px; margin-bottom: 12px; color: #61767d; font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
.result-gis-diagnostics-alert { grid-column: 1 / -1; min-width: 0; padding: 8px 10px; border-left: 3px solid #b87635; background: #fff8e9; color: #704c22; font-weight: 700; overflow-wrap: anywhere; }
.result-gis-diagnostics-meta-group { min-width: 0; padding-bottom: 8px; border-bottom: 1px solid #e5eded; }
.result-gis-diagnostics-meta-group > strong, .result-gis-diagnostics-meta-group > span, .result-gis-diagnostics-meta-group > small { display: block; }
.result-gis-diagnostics-meta-group > strong { margin-bottom: 5px; color: #28525c; font-size: 11px; }
.result-gis-diagnostics-meta-group > small, .result-gis-diagnostics-meta-row small { color: #71858c; font-size: 10px; }
.result-gis-diagnostics-meta-row { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 3px 8px; margin-top: 3px; }
.result-gis-diagnostics-meta-row > span:first-child { color: #28525c; font-weight: 700; }
.result-gis-diagnostics-meta-row small { grid-column: 2; }
.result-gis-diagnostics-table { min-width: 640px; }
.result-gis-diagnostics-table td { min-width: 125px; }
.result-gis-diagnostics-table td:first-child { min-width: 150px; }
.result-gis-diagnostics-table .result-gis-cell-state { margin-top: 4px; }
.result-gis-checkbox { display: inline-flex; align-items: center; gap: 5px; color: #5d7078; font-size: 10px; font-weight: 800; white-space: nowrap; }
.result-gis-cell-table-wrap { max-width: 100%; overflow: auto; }
.result-gis-cell-table { width: 100%; min-width: 720px; border-collapse: collapse; }
.result-gis-cell-table th, .result-gis-cell-table td { padding: 9px 8px; border-bottom: 1px solid #e5eded; color: #506870; font-size: 9px; text-align: left; vertical-align: top; }
.result-gis-cell-table th { color: #71858c; background: #f5f9f9; font-weight: 800; }
.result-gis-cell-table strong, .result-gis-cell-table small { display: block; }
.result-gis-cell-table strong { color: #244f5a; font-size: 10px; }
.result-gis-cell-table small { margin-top: 3px; color: #819197; }
.result-gis-cell-state { display: inline-flex; padding: 4px 7px; border-radius: 99px; color: #177c62; background: #e8f8f1; font-size: 9px; font-weight: 800; }
.result-gis-cell-state.warning { color: #8a5a12; background: #fff5dc; }
.result-gis-cell-state.failed { color: #a84d4d; background: #fdecec; }
.result-gis-cell-state.muted { color: #65767c; background: #edf2f3; }
.result-gis-pagination { justify-content: flex-end; margin-top: 10px; }
.result-gis-pagination .muted { min-width: 100px; text-align: center; }
.result-gis-compare-panel { min-width: 0; padding: 17px; scroll-margin-top: 90px; }
.result-gis-compare-actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.result-gis-compare-notice, .result-gis-compare-scope { padding: 10px 12px; border: 1px solid #dbe8e8; border-radius: 8px; color: #61767d; background: #f6fafa; font-size: 10px; line-height: 1.6; }
.result-gis-compare-toolbar { display: grid; grid-template-columns: minmax(180px,1fr) minmax(220px,1.4fr) minmax(120px,.6fr) auto; gap: 10px; align-items: end; margin: 12px 0; }
.result-gis-compare-toolbar label { min-width: 0; color: #5d7078; font-size: 9px; font-weight: 800; }
.result-gis-compare-toolbar .text-input, .result-gis-compare-toolbar .select-input { display: block; margin-top: 6px; }
.result-gis-compare-meta { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 12px 0; }
.result-gis-compare-meta > article { min-width: 0; padding: 12px; border: 1px solid #deebeb; border-radius: 9px; background: #fbfdfd; }
.result-gis-compare-meta strong, .result-gis-compare-meta span, .result-gis-compare-meta small { display: block; }
.result-gis-compare-meta strong { color: #174f59; font-size: 12px; }
.result-gis-compare-meta span { margin-top: 7px; overflow-wrap: anywhere; color: #516970; font-size: 10px; line-height: 1.55; }
.result-gis-compare-meta small { margin-top: 7px; color: #7d8f95; font-size: 9px; line-height: 1.5; }
.result-gis-compare-chart { min-width: 0; margin: 16px 0; }
.result-gis-compare-chart h4 { margin: 0 0 10px; color: #174f59; font-size: 12px; }
.result-gis-compare-chart-list { display: grid; gap: 10px; }
.result-gis-compare-chart-row { display: grid; grid-template-columns: 76px minmax(0,1fr); gap: 10px; min-width: 0; align-items: center; }
.result-gis-compare-chart-label { color: #304e55; font-size: 11px; font-weight: 700; }
.result-gis-compare-chart-sides { display: grid; gap: 5px; min-width: 0; }
.result-gis-compare-chart-side { display: grid; grid-template-columns: 18px minmax(0,1fr) minmax(110px,auto); gap: 8px; align-items: center; min-width: 0; }
.result-gis-compare-chart-side strong { color: #526970; font-size: 10px; }
.result-gis-compare-chart-side .result-gis-metric-value { font-size: 10px; white-space: normal; overflow-wrap: anywhere; }
.result-gis-compare-chart-side[data-side="B"] .result-gis-metric-fill { background: #d08929; }
.result-gis-compare-chart-side.unavailable .result-gis-metric-value { color: #916520; }
.result-gis-compare-table-wrap { max-width: 100%; overflow: auto; }
.result-gis-compare-table { width: 100%; min-width: 680px; border-collapse: collapse; }
.result-gis-compare-table th, .result-gis-compare-table td { padding: 10px; border-bottom: 1px solid #e5eded; color: #536b73; font-size: 10px; text-align: left; vertical-align: top; }
.result-gis-compare-table th { color: #71858c; background: #f5f9f9; font-size: 9px; }
.result-gis-compare-table td:first-child { color: #244f5a; font-weight: 800; }
.result-gis-compare-table td { overflow-wrap: anywhere; }
.result-gis-v2-threshold { display: block; margin-top: 5px; color: #61767d; font-size: 9px; font-weight: 400; line-height: 1.5; }
.result-gis-compare-value { display: block; color: #174f59; font-size: 15px; font-weight: 800; }
.result-gis-compare-reason { display: block; margin-top: 3px; color: #819197; font-size: 9px; line-height: 1.45; }
.result-gis-compare-delta.positive { color: #a34d36; }
.result-gis-compare-delta.negative { color: #177c62; }
.result-gis-compare-cells { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 12px; }
.result-gis-compare-cells > article { min-width: 0; padding: 12px; border: 1px solid #deebeb; border-radius: 9px; background: #fbfdfd; }
.result-gis-compare-cells > article > strong { display: block; margin-bottom: 8px; color: #174f59; font-size: 11px; }
.result-gis-compare-cell-list { display: grid; gap: 6px; }
.result-gis-compare-cell-list div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 4px 10px; padding: 8px; border-radius: 7px; background: #f2f7f7; }
.result-gis-compare-cell-list strong, .result-gis-compare-cell-list span, .result-gis-compare-cell-list small { min-width: 0; overflow-wrap: anywhere; }
.result-gis-compare-cell-list strong { color: #28525c; font-size: 10px; }
.result-gis-compare-cell-list span { color: #49666f; font-size: 9px; }
.result-gis-compare-cell-list small { grid-column: 1 / -1; color: #809198; font-size: 9px; }

@media (max-width: 1280px) {
  .platform-layout { grid-template-columns: 76px minmax(0,1fr); }
  .platform-sidebar { padding-left: 9px; padding-right: 9px; }
  .nav-item { justify-content: center; padding-left: 8px; padding-right: 8px; }
  .nav-item > span:last-child, .nav-section-label, .sidebar-project-card { display: none; }
  .nav-icon { width: 24px; flex-basis: 24px; }
  .workbench-grid { grid-template-columns: 1fr; }
  .result-workspace-grid { grid-template-columns: 210px minmax(400px,1fr); }
  .result-workspace-inspector { grid-column: 1 / -1; }
  .result-summary-stack { grid-template-columns: repeat(5,minmax(0,1fr)); }
  .result-gis-filter-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 1100px) {
  .workspace { grid-template-columns: 1fr; }
  .control-panel { border-right: 0; border-bottom: 1px solid var(--line); max-height: none; }
  .workbench-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .topbar .sync-state { display: none; }
  .task-detail-grid, .task-detail-lower-grid { grid-template-columns: 1fr; }
  .result-workspace-grid { grid-template-columns: 1fr; }
  .result-workspace-inspector { grid-column: auto; }
  .result-workspace-sidebar { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
  .result-workspace-sidebar .card-header { grid-column: 1 / -1; }
  .result-workspace-bottom { grid-template-columns: 1fr 1fr; }
  .result-spatial-form { grid-template-columns: 1fr 1fr; }
  .result-spatial-actions { grid-column: 1 / -1; }
  .result-spatial-draw-toolbar { align-items: flex-start; flex-direction: column; }
  .result-gis-content-grid { grid-template-columns: 1fr; }
  .result-gis-compare-toolbar { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 820px) {
  .topbar { padding: 10px 14px; }
  .brand-block .eyebrow, .brand-block h1 { display: none; }
  .topbar-actions { flex-wrap: nowrap; }
  .topbar-actions > .ghost-button.compact-button, .topbar-actions > .user-chip { display: none; }
  .sidebar-toggle { display: inline-flex; }
  .platform-layout { grid-template-columns: minmax(0,1fr); }
  .platform-sidebar { position: fixed; top: 69px; left: 0; bottom: 0; width: 238px; height: auto; transform: translateX(-100%); transition: transform .2s ease; box-shadow: 12px 0 30px rgba(9,37,49,.22); }
  body.sidebar-open .platform-sidebar { transform: translateX(0); }
  .nav-item { justify-content: flex-start; padding-left: 12px; padding-right: 12px; }
  .nav-item > span:last-child, .nav-section-label, .sidebar-project-card { display: block; }
  .workbench-page, .application-center-page, .paid-access-page, .main-content, .scenario-library-page, .antenna-library-page, .environment-library-page, .upload-management-page, .task-center-page, .task-detail-page, .result-workspace-page, .project-management-page { padding-left: 16px; padding-right: 16px; }
  .workbench-hero, .workbench-project-summary { align-items: flex-start; flex-direction: column; }
  .workbench-project-summary p { text-align: left; }
  .application-grid { grid-template-columns: 1fr; }
  .project-readonly-banner { align-items: flex-start; flex-wrap: wrap; padding-left: 16px; padding-right: 16px; }
  .detail-page-heading { flex-direction: column; }
  .detail-heading-actions { justify-content: flex-start; }
  .task-detail-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .result-workspace-stage { height: 480px; }
  .result-summary-stack { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .environment-library-page .library-hero { align-items: stretch; flex-direction: column; gap: 12px; }
  .environment-library-page .hero-meta { justify-content: flex-start; gap: 12px; }
  .environment-library-page .archive-filter { white-space: nowrap; }
  .result-gis-diagnostics-meta { grid-template-columns: 1fr; gap: 8px; }
  .result-gis-compare-panel > .card-header { align-items: flex-start; flex-direction: column; gap: 10px; }
  .result-gis-compare-panel > .card-header > div:first-child { min-width: 0; width: 100%; }
  .task-center-page .library-hero { align-items: stretch; flex-direction: column; gap: 12px; }
  .task-center-page .hero-meta { flex-wrap: wrap; gap: 8px; }
  .project-switcher span, #newProjectButton, #runTopButton { display: none; }
  .project-switcher select { max-width: 150px; }
  .workbench-metrics { grid-template-columns: 1fr; }
  .field-grid, .form-grid, .pattern-upload-grid { grid-template-columns: 1fr; }
  .metric-grid, .lower-grid { grid-template-columns: 1fr; }
  .map-actions { overflow-x: auto; max-width: 100%; }
  .task-detail-metrics, .result-workspace-bottom { grid-template-columns: 1fr; }
  .result-workspace-sidebar { display: block; }
  .result-workspace-stage { height: 400px; }
  .result-map-toolbar > div:last-child { width: 100%; justify-content: flex-start; }
  .tianditu-session-form > div { grid-template-columns: 1fr 1fr; }
  .tianditu-session-form .text-input { grid-column: 1 / -1; }
  .result-summary-stack { grid-template-columns: 1fr; }
  .result-spatial-form, .result-spatial-summary { grid-template-columns: 1fr; }
  .result-spatial-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .result-spatial-mode { display: grid; width: 100%; }
  .result-spatial-draw-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .result-spatial-draw-map-hint { max-width: calc(100% - 20px); top: 48px; }
  .result-gis-header-actions { width: 100%; justify-content: flex-start; }
  .result-gis-header-actions .result-gis-report-status, .result-gis-compare-actions .result-gis-report-status { text-align: left; }
  .result-gis-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .result-gis-filter-actions > button { flex: 1; }
  .result-gis-filter-actions .muted { width: 100%; }
  .result-gis-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .result-gis-stat-grid article:last-child { grid-column: 1 / -1; }
  .result-gis-metric-row { grid-template-columns: 72px minmax(0,1fr); gap: 5px 8px; }
  .result-gis-metric-value { grid-column: 2; text-align: left; }
  .result-gis-metric-detail { margin-top: -3px; }
  .result-gis-toolbar { align-items: stretch; flex-direction: column; }
  .result-gis-toolbar .select-input { max-width: none; }
  .result-gis-preview-stage { height: 240px; }
  .result-gis-cell-toolbar { grid-template-columns: minmax(0,1fr) auto; }
  .result-gis-cell-toolbar #resultGisCellLimit { grid-column: 1 / -1; }
  .result-gis-pagination { justify-content: space-between; }
  .result-gis-compare-actions { width: 100%; justify-content: flex-start; }
  .result-gis-compare-toolbar, .result-gis-compare-meta, .result-gis-compare-cells { grid-template-columns: 1fr; }
  .result-gis-compare-chart-row { grid-template-columns: 1fr; gap: 5px; }
  .result-gis-compare-chart-side { grid-template-columns: 18px minmax(0,1fr); }
  .result-gis-compare-chart-side .result-gis-metric-value { grid-column: 2; }
  .result-gis-compare-toolbar .primary-button { width: 100%; }
  .result-gis-compare-table { min-width: 620px; }
}

#simulationPage.workspace { grid-template-columns: minmax(235px,255px) minmax(0,1fr) minmax(260px,290px); align-items: stretch; }
#simulationPage .control-panel { padding: 20px 16px 28px; }
#simulationPage .main-content { display: flex; flex-direction: column; padding: 20px 16px 28px; }
#simulationPage .hero-row { order: 1; }
#simulationPage .map-card { order: 2; }
#simulationPage .metric-grid { order: 3; }
#simulationPage .input-validation-card { order: 4; }
#simulationPage .lower-grid { order: 5; }
#simulationPage .metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
#simulationPage .metric-card { padding: 11px 13px; }
#simulationPage .metric-card strong { font-size: 20px; letter-spacing: 0; }
#simulationPage .map-card { padding: 14px; border-radius: 8px; }
#simulationPage .map-stage { height: min(54vh,530px); min-height: 360px; }
#simulationPage .lower-grid { grid-template-columns: minmax(0,1fr); }
#simulationPage .quick-sim-map-toolbar { gap: 6px; }
.quick-sim-tool-group { display: inline-flex; align-items: center; gap: 3px; padding: 3px; border: 1px solid #d5e3e3; border-radius: 6px; background: #f5f9f9; }
.quick-sim-tool { display: grid; place-items: center; width: 30px; height: 28px; padding: 0; border: 0; border-radius: 4px; color: #4c6b73; background: transparent; cursor: pointer; font-size: 16px; }
.quick-sim-tool.active { color: #067d74; background: #fff; box-shadow: 0 1px 4px rgba(24,66,72,.14); }
.quick-sim-measure-line { position: absolute; z-index: 5; height: 2px; transform-origin: left center; background: #d16d36; box-shadow: 0 0 0 1px white; pointer-events: none; }
.quick-sim-measure-label { position: absolute; z-index: 6; padding: 3px 6px; border: 1px solid #e4b492; border-radius: 4px; color: #8a421d; background: #fffaf5; font-size: 10px; font-weight: 800; pointer-events: none; }
.quick-sim-input-site.selected { z-index: 5; width: 19px; height: 19px; border-color: #fff; background: #e57035; box-shadow: 0 0 0 3px rgba(229,112,53,.32),0 2px 7px rgba(12,57,65,.5); }
.quick-sim-inspector { min-width: 0; padding: 18px 14px 26px; border-left: 1px solid var(--line); background: #fbfdfd; }
.quick-sim-inspector-section { min-width: 0; padding: 0 0 15px; margin-bottom: 15px; border-bottom: 1px solid var(--line); }
.quick-sim-inspector-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.quick-sim-inspector-heading h3 { margin: 3px 0 0; font-size: 14px; }
.quick-sim-inspector-heading > span { color: #278078; font-size: 11px; font-weight: 800; white-space: nowrap; }
.quick-sim-site-filters { display: grid; grid-template-columns: minmax(0,1fr) 96px; gap: 6px; }
.quick-sim-site-filters input, .quick-sim-site-filters select { box-sizing: border-box; min-width: 0; width: 100%; height: 33px; padding: 6px 7px; border: 1px solid #d6e2e4; border-radius: 5px; background: #fff; color: #24424e; font-size: 11px; }
.quick-sim-site-actions { display: flex; gap: 10px; padding: 9px 0; }
.quick-sim-site-actions button { padding: 0; border: 0; background: none; color: #0a7f76; font-size: 10px; font-weight: 800; cursor: pointer; }
.quick-sim-site-actions button:disabled { color: #9aaeb1; cursor: default; }
.quick-sim-site-list { max-height: min(36vh,310px); min-height: 110px; overflow: auto; border: 1px solid #e1e9e9; border-radius: 6px; background: #fff; }
.quick-sim-site-row { display: grid; grid-template-columns: 16px minmax(0,1fr); align-items: center; gap: 7px; padding: 8px; border-bottom: 1px solid #edf1f1; }
.quick-sim-site-row:last-child { border-bottom: 0; }
.quick-sim-site-row.active { background: #eaf8f6; }
.quick-sim-site-row.excluded { opacity: .52; }
.quick-sim-site-row input { margin: 0; accent-color: #0c9a8c; }
.quick-sim-site-row button { min-width: 0; padding: 0; border: 0; color: #315761; background: none; text-align: left; cursor: pointer; }
.quick-sim-site-row strong, .quick-sim-site-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.quick-sim-site-row strong { font-size: 11px; }
.quick-sim-site-row small { margin-top: 3px; color: #82969b; font-size: 9px; }
.quick-sim-selection-list { max-height: min(42vh,360px); }
.quick-sim-selection-create { width: 100%; margin-top: 10px; }
.quick-sim-selection-section { scroll-margin-top: 90px; }
.quick-sim-selection-section .quick-sim-site-row { grid-template-columns: 16px minmax(0,1fr); }
.quick-sim-selection-section .quick-sim-site-row span { min-width: 0; }
.quick-sim-selection-section .quick-sim-site-row strong, .quick-sim-selection-section .quick-sim-site-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.quick-sim-selection-section .quick-sim-site-row strong { font-size: 11px; color: #315761; }
.quick-sim-selection-section .quick-sim-site-row small { margin-top: 3px; color: #82969b; font-size: 9px; }
.quick-sim-selection-create:disabled { opacity: .45; cursor: not-allowed; }
.quick-sim-readonly-note { margin: 9px 0 0; color: #806333; font-size: 10px; line-height: 1.55; }
.quick-sim-selected-detail { display: grid; gap: 4px; color: #5f7780; font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.quick-sim-selected-detail strong { color: #1c525a; font-size: 12px; }
.quick-sim-draft-section { scroll-margin-top: 90px; }
.quick-sim-draft-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
.quick-sim-draft-actions select { box-sizing: border-box; flex: 1 1 145px; min-width: 0; height: 34px; padding: 6px; border: 1px solid #d6e2e4; border-radius: 5px; background: #fff; color: #24424e; }
.quick-sim-draft-actions button { min-height: 34px; }
.quick-sim-draft-actions .primary-button { flex: 1 1 100%; }
.quick-sim-draft-actions span, .quick-sim-draft-status { color: #58717b; font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.quick-sim-draft-status { margin: 8px 0 0; }
.quick-sim-draft-form { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.quick-sim-draft-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; max-height: 280px; overflow-y: auto; padding-right: 3px; }
.quick-sim-draft-fields label { min-width: 0; color: #58717b; font-size: 10px; font-weight: 700; }
.quick-sim-draft-fields input { box-sizing: border-box; display: block; width: 100%; min-width: 0; height: 32px; margin-top: 3px; padding: 6px; border: 1px solid #d6e2e4; border-radius: 5px; background: #fff; color: #24424e; font: inherit; }
.quick-sim-draft-form > .primary-button { width: 100%; margin-top: 10px; }
#simulationPage .run-button:disabled, #simulationPage .quick-sim-draft-actions button:disabled, #simulationPage .quick-sim-draft-form button:disabled { opacity: .45; cursor: not-allowed; }
.quick-sim-estimate-summary { color: #55717b; font-size: 11px; line-height: 1.55; overflow-wrap: anywhere; }
#simulationPage .quick-sim-inspector .run-button { width: 100%; margin-top: 12px; }
#simulationPage .quick-sim-inspector .task-card { min-width: 0; padding: 12px; border-radius: 8px; box-shadow: none; }
#simulationPage .quick-sim-inspector .task-steps { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px; }
#simulationPage .quick-sim-inspector .log-box { max-height: 130px; overflow: auto; }
@media (max-width: 1240px) { #simulationPage.workspace { grid-template-columns: minmax(225px,245px) minmax(0,1fr); } #simulationPage .quick-sim-inspector { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; border-left: 0; border-top: 1px solid var(--line); } #simulationPage .quick-sim-inspector-section { margin: 0; } }
@media (max-width: 900px) { #simulationPage.workspace { display: flex; flex-direction: column; } #simulationPage .main-content { order: 1; } #simulationPage .quick-sim-inspector { order: 2; scroll-margin-top: 86px; } #simulationPage .control-panel { order: 3; border-right: 0; border-top: 1px solid var(--line); } }
@media (max-width: 600px) { #simulationPage .main-content { padding: 14px 12px; } #simulationPage .map-card > .card-header { align-items: stretch; flex-direction: column; gap: 8px; } #simulationPage .map-actions { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 4px; width: 100%; max-width: none; overflow: visible; } #simulationPage .map-actions > button { min-width: 0; } #simulationPage .map-actions .map-tab { padding: 8px 4px; } #simulationPage .map-actions .result-download { grid-column: span 2; } #simulationPage .quick-sim-inspector { display: block; padding: 14px 12px; } #simulationPage .quick-sim-inspector-section { margin-bottom: 14px; } #simulationPage .metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } #simulationPage .map-stage { height: 350px; min-height: 350px; } #simulationPage .quick-sim-map-toolbar input { width: 88px; } #simulationPage .quick-sim-site-list { max-height: 280px; } }
/* Versioned standard workbench; quick-sim styles stay scoped to its own module. */
.version-workbench, .precision-workbench { margin-top: 14px; padding: 12px; border: 1px solid #d6e2ec; border-radius: 10px; background: #f8fbff; }
.version-save-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 12px 0; }
.version-save-actions button { white-space: normal; }
.precision-check { display: flex; gap: 8px; align-items: flex-start; font-size: 12px; line-height: 1.6; margin: 12px 0; }
.precision-check input { margin-top: 4px; flex: 0 0 auto; }
.version-run-summary { background: #eff6ff; border-left: 3px solid #4779cd; padding: 12px; margin-bottom: 12px; font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.engineering-version-center { margin-top: 20px; padding: 20px; }
.engineering-version-center table { min-width: 900px; width: 100%; }
.engineering-version-center td { padding: 12px; border-bottom: 1px solid #e5eaf0; vertical-align: top; }
.version-sha { max-width: 190px; overflow-wrap: anywhere; font: 11px monospace; }
.version-detail-json { max-height: 360px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; padding: 16px; background: #f4f7fb; }
.linked-version-result { display: grid; gap: 6px; border-bottom: 1px solid #e1e8ef; padding: 12px 0; overflow-wrap: anywhere; }
.linked-version-result button { justify-self: start; }
#workbenchVersionSource, #workbenchDirtyState { overflow-wrap: anywhere; }
.tuning-details { margin: 12px 0; border: 1px solid #d6e2ec; border-radius: 10px; background: #fbfdff; overflow: hidden; }
.tuning-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px; cursor: pointer; list-style: none; }
.tuning-details > summary::-webkit-details-marker { display: none; }
.tuning-details > summary::before { content: '＋'; color: #52707d; font-weight: 800; }
.tuning-details[open] > summary::before { content: '－'; }
.tuning-details > summary span { display: grid; gap: 3px; min-width: 0; }
.tuning-details > summary strong { color: #193e4b; font-size: 13px; }
.tuning-details > summary small, .tuning-details > summary em { color: #718991; font-size: 10px; font-style: normal; overflow-wrap: anywhere; }
.tuning-details-body { padding: 0 12px 12px; }
.standard-advanced-details { margin-top: 12px; border: 1px solid #c8dfe1; border-radius: 10px; background: #f7fcfc; overflow: hidden; }
.standard-advanced-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px; cursor: pointer; list-style: none; }
.standard-advanced-details > summary::-webkit-details-marker { display: none; }
.standard-advanced-details > summary::before { content: '＋'; color: #2a8985; font-weight: 800; }
.standard-advanced-details[open] > summary::before { content: '－'; }
.standard-advanced-details > summary span { display: grid; gap: 3px; min-width: 0; }
.standard-advanced-details > summary strong { color: #193e4b; font-size: 12px; }
.standard-advanced-details > summary small, .standard-advanced-details > summary em { color: #718991; font-size: 10px; font-style: normal; overflow-wrap: anywhere; }
.standard-advanced-details-body { padding: 0 12px 12px; }
.standard-advanced-parameter-grid { margin-top: 8px; }
.tuning-diff { margin-bottom: 10px; padding: 8px 10px; border-left: 3px solid #7aa6b2; background: #f1f8f8; color: #52717a; font-size: 10px; line-height: 1.5; }
.tuning-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.standard-region-card { border: 1px solid #b9d8d9; background: #f5fbfb; }
.standard-region-card .selection-toolbar { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 6px; margin: 10px 0; }
.standard-region-card .quick-sim-site-list { max-height: 280px; overflow: auto; }
@media (max-width: 600px) { .standard-region-card .selection-toolbar { grid-template-columns: 1fr 1fr; } .standard-region-card .selection-toolbar input { grid-column: 1 / -1; } }
.standard-region-mode { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.standard-region-mode .segment { flex: 1 1 90px; }
.standard-region-form { display: grid; gap: 8px; }
.standard-region-preview, .standard-region-capability { margin-top: 10px; padding: 9px 10px; border-radius: 7px; background: #fff; color: #52717a; font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.standard-region-capability { border-left: 3px solid #4b9d9a; }
.result-assets-card { margin: 16px 0; }
.wide-area-parameter-details { margin: 18px 0; }
.wide-area-parameter-body { padding: 0; }
.wide-area-parameter-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.wide-area-parameter-toolbar p { margin: 4px 0 0; font-size: 10px; }
.wide-area-parameter-layout { display: grid; grid-template-columns: minmax(230px, 260px) minmax(0, 1fr); gap: 24px; align-items: start; }
.wide-area-group-sidebar { min-width: 0; padding: 18px; background: #fff; border: 1px solid #dfe8eb; border-radius: 14px; position: sticky; top: 16px; }
.wide-area-group-sidebar .ghost-button { padding: 8px 10px; white-space: nowrap; }
.wide-area-list-filter { display: grid; gap: 6px; margin-bottom: 12px; min-width: 0; }
.wide-area-list-filter .field-label, .wide-area-mobile-picker .field-label { margin: 0; font-size: 12px; }
.wide-area-list-count, .wide-area-sidebar-note { color: #607880; font-size: 12px; line-height: 1.6; margin: 10px 0; }
.wide-area-sidebar-note { margin-bottom: 0; }
.wide-area-mobile-picker { display: none; }
.wide-area-filter-toggle { display: none; }
.wide-area-list-section { display: grid; gap: 8px; }
.wide-area-list-section h4 { margin: 4px 0 0; color: #607880; font-size: 12px; display: flex; justify-content: space-between; }
.wide-area-parameter-groups { display: grid; gap: 9px; }
.wide-area-group-sidebar .wide-area-parameter-groups { max-height: max(240px, calc(100vh - 370px)); overflow-y: auto; padding-right: 3px; scrollbar-width: thin; }
.wide-area-parameter-group-item { display: grid; gap: 4px; width: 100%; padding: 12px; border: 1px solid #e0e9eb; border-radius: 9px; background: #fff; color: #234b55; text-align: left; cursor: pointer; }
.wide-area-parameter-group-item:hover { border-color: #8ac7c0; background: #f5fbf9; }
.wide-area-parameter-group-item.active { border-color: #65b6ab; background: #eff9f6; box-shadow: inset 3px 0 #178879; }
.wide-area-parameter-group-item strong { font-size: 14px; overflow-wrap: anywhere; }
.wide-area-parameter-group-item small, .wide-area-parameter-group-item span { color: #607880; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.wide-area-parameter-editor { min-width: 0; padding: 24px; border: 1px solid #dfe8eb; border-radius: 14px; background: #fff; box-shadow: 0 4px 18px #173b4a04; }
.wide-area-editor-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.wide-area-editor-heading h3 { margin: 0; color: #203e4b; font-size: 20px; line-height: 1.5; overflow-wrap: anywhere; }
.wide-area-editor-links { display: flex; justify-content: space-between; gap: 12px; align-items: start; margin-bottom: 12px; }
.wide-area-editor-link-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: end; }
.wide-area-editor-link-actions > button { padding: 7px 10px; }
.wide-area-source-details { min-width: 0; flex: 1; color: #607880; font-size: 12px; line-height: 1.7; }
.wide-area-source-details > summary { cursor: pointer; padding: 6px 0; }
.wide-area-source-details .wide-area-source-note { margin: 6px 0; }
.wide-area-source-alert { margin: 0 0 12px; padding: 10px 12px; color: #916024; background: #fff8ea; border-radius: 7px; font-size: 12px; line-height: 1.7; }
.wide-area-parameter-fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 0; }
.wide-area-field-section { min-width: 0; padding: 8px 0 20px; border: 0; scroll-margin-top: 140px; }
.wide-area-field-section > header, .wide-area-field-section > header > div { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.wide-area-field-section > header { justify-content: space-between; background: #f4f7f9; padding: 12px 14px; border-radius: 8px; }
.wide-area-field-section h4 { margin: 0; color: #174d57; font-size: 16px; }
.wide-area-section-number { font-size: 12px; font-weight: 700; color: #087e7b; background: #e9f6f3; padding: 4px 7px; border-radius: 5px; }
.wide-area-section-summary { font-size: 12px; line-height: 1.6; color: #607880; }
.wide-area-section-note { margin: 12px 0 20px; color: #687e88; font-size: 12px; line-height: 1.8; }
.wide-area-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 28px; align-items: start; }
.wide-area-field-help { color: #607880; font-size: 12px; line-height: 1.65; }
.wide-area-field-help > summary { cursor: pointer; color: #55747e; width: fit-content; }
.wide-area-field-help[open] { padding: 9px 11px; background: #f5f8fa; border-radius: 6px; }
.wide-area-field-help p { margin: 8px 0; }
.wide-area-field-help .wide-area-field-range { display: block; margin-top: 7px; }
.wide-area-field-help .wide-area-field-range:empty { display: none; }
.wide-area-parameter-field { display: grid; align-content: start; gap: 7px; min-width: 0; color: #34515e; font-size: 14px; }
.wide-area-field-label { display: flex; align-items: baseline; gap: 8px; justify-content: space-between; margin: 0; font-size: 13px; font-weight: 600; line-height: 1.6; overflow-wrap: anywhere; }
.wide-area-unit { color: #718094; font-size: 12px; font-weight: 400; flex: 0 0 auto; }
.wide-area-parameter-field input, .wide-area-parameter-field textarea, .wide-area-parameter-field select, .wide-area-calibration-panel textarea { box-sizing: border-box; width: 100%; min-width: 0; min-height: 40px; padding: 9px 11px; border: 1px solid #cbdfe0; border-radius: 7px; background: #fff; color: #244b56; font: inherit; }
.wide-area-parameter-field textarea, .wide-area-calibration-panel textarea { resize: vertical; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 12px; }
.wide-area-parameter-field-complex { grid-column: 1 / -1; }
.wide-area-parameter-field input:focus-visible, .wide-area-parameter-field select:focus-visible, .wide-area-parameter-field textarea:focus-visible { outline: 2px solid #10968d; outline-offset: 2px; }
.wide-area-parameter-field :disabled, .wide-area-calibration-panel :disabled { background: #f5f7f8; color: #657a86; border-color: #e0e7eb; cursor: default; opacity: 1; }
.wide-area-parameter-editor[data-system-default="true"] .wide-area-parameter-field :disabled { color: #3d5867; }
.wide-area-switch-line { display: flex; align-items: center; gap: 12px; min-height: 40px; }
.wide-area-switch-line input { appearance: none; position: relative; flex: 0 0 auto; width: 40px; height: 24px; min-height: 0; padding: 0; border: 1px solid #aebfc6; border-radius: 20px; background: #aebfc6; cursor: pointer; }
.wide-area-switch-line input::before { content: ''; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px #34515e30; }
.wide-area-switch-line input:checked { border-color: #087e7b; background: #087e7b; }
.wide-area-switch-line input:checked::before { transform: translateX(16px); }
.wide-area-switch-line input:disabled { opacity: .6; cursor: default; }
.wide-area-switch-line span { font-size: 13px; }
.wide-area-field-range, .wide-area-field-state { color: #607880; font-size: 12px; line-height: 1.6; }
.wide-area-field-state { color: #916024; }
.wide-area-field-range:empty, .wide-area-field-state:empty { display: none; }
.wide-area-expert-details { margin-top: 20px; border-top: 1px dashed #dfe7eb; padding-top: 14px; }
.wide-area-expert-details > summary { cursor: pointer; color: #087e7b; font-size: 13px; line-height: 1.8; }
.wide-area-expert-details > .wide-area-field-grid { margin-top: 20px; }
.wide-area-calibration-panel { border: 1px solid #dfe7eb; border-radius: 8px; padding: 16px; min-width: 0; }
.wide-area-calibration-panel h5 { margin: 0; font-size: 15px; }
.wide-area-calibration-panel [multiple] { min-height: 140px; }
.wide-area-name-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; margin: 12px 0 16px; }
.wide-area-parameter-editor[data-system-default="true"] .wide-area-name-row, .wide-area-parameter-editor[data-system-default="true"] .wide-area-edit-toolbar, .wide-area-parameter-editor[data-system-default="true"] .wide-area-editor-actions, .wide-area-parameter-editor[data-system-default="true"] .wide-area-change-review { display: none; }
.wide-area-edit-toolbar { position: sticky; top: 10px; z-index: 5; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding: 12px 14px; margin: 0 0 20px; border: 1px solid #cfe5e1; border-radius: 9px; background: #f3faf8; box-shadow: 0 4px 14px #204c5010; }
.wide-area-edit-toolbar > div:first-child { flex: 1 1 200px; min-width: 0; }
.wide-area-edit-toolbar strong { font-size: 13px; color: #195b5d; }
.wide-area-edit-toolbar small { display: block; margin-top: 4px; font-size: 12px; color: #607880; line-height: 1.6; }
.wide-area-edit-toolbar-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.wide-area-key-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0 0 20px; padding: 14px 16px; border: 1px solid #e0ecea; border-radius: 9px; background: #f6faf9; }
.wide-area-key-summary dt { color: #607880; font-size: 12px; margin-bottom: 5px; }
.wide-area-key-summary dd { color: #234b55; font-size: 13px; font-weight: 600; margin: 0; overflow-wrap: anywhere; }
.wide-area-history-panel { border: 1px solid #cfe5e1; background: #f8fcfb; border-radius: 8px; padding: 16px; margin-bottom: 20px; min-width: 0; }
.wide-area-history-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.wide-area-history-heading h4 { margin: 0; font-size: 15px; }
.wide-area-history-meta { color: #607880; font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.wide-area-history-diff { list-style: none; padding: 0; margin: 0 0 12px; font-size: 13px; }
.wide-area-history-diff li { padding: 9px 0; border-bottom: 1px solid #e0eaed; overflow-wrap: anywhere; }
.wide-area-history-diff span { display: block; color: #607880; margin-top: 4px; }
.wide-area-history-snapshot { color: #34515e; font-size: 12px; line-height: 1.7; }
.wide-area-history-snapshot > summary { cursor: pointer; color: #087e7b; }
.wide-area-history-snapshot dl > div { display: grid; grid-template-columns: minmax(110px, 1fr) minmax(0, 2fr); gap: 12px; padding: 7px 0; border-bottom: 1px solid #e0eaed; }
.wide-area-history-snapshot dt, .wide-area-history-snapshot dd { margin: 0; overflow-wrap: anywhere; }
.wide-area-validation-summary { padding: 12px; margin-bottom: 16px; background: #fff8ea; border: 1px solid #e6c78e; border-radius: 8px; color: #916024; font-size: 12px; line-height: 1.7; }
.wide-area-validation-summary > div { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.wide-area-validation-summary .ghost-button { color: #916024; padding: 6px 8px; text-align: left; }
.wide-area-draft-badge { display: inline-block; color: #956322; font-size: 12px; line-height: 1.6; }
.wide-area-parameter-field [aria-invalid="true"] { border-color: #bd5a46; background: #fffaf7; }
.wide-area-parameter-field:has([aria-invalid="true"]) > .wide-area-field-label { color: #a94432; }
.wide-area-source-note { padding: 12px 14px; background: #f3f8f9; border-radius: 8px; color: #4c6872; font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.wide-area-section-nav { display: flex; flex-wrap: wrap; gap: 6px; padding-bottom: 12px; border-bottom: 1px solid #e7edef; }
.wide-area-section-nav a { color: #4b6874; background: #fff; border: 1px solid #e0e8eb; border-radius: 6px; padding: 7px 9px; text-decoration: none; font-size: 12px; line-height: 1.5; }
.wide-area-section-nav a:hover { background: #dff1ed; }
.wide-area-section-picker { display: none; }
.wide-area-parameter-finder { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 16px; align-items: center; margin: 0 0 18px; }
.wide-area-parameter-finder > .field-label { margin: 0; color: #34515e; font-size: 13px; }
.wide-area-finder-input { display: flex; align-items: center; gap: 8px; min-width: 0; }
.wide-area-finder-input .text-input { min-width: 0; width: 100%; background: #fbfcfd; font-size: 13px; }
.wide-area-finder-input button { flex: 0 0 auto; padding: 8px; }
.wide-area-finder-status { grid-column: 1 / -1; margin: 0; font-size: 12px; color: #607880; line-height: 1.7; }
.wide-area-finder-status:empty { display: none; }
.wide-area-finder-results { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.wide-area-finder-results[hidden] { display: none; }
.wide-area-finder-results button { display: grid; gap: 4px; text-align: left; border: 1px solid #dce8ea; border-radius: 8px; padding: 10px 12px; background: #f8fbfb; color: #24545d; cursor: pointer; overflow-wrap: anywhere; }
.wide-area-finder-results button strong { font-size: 13px; }
.wide-area-finder-results button span { color: #607880; font-size: 12px; }
.wide-area-finder-results button:hover { background: #eff8f5; border-color: #82beb5; }
.wide-area-parameter-field.is-search-target { outline: 2px solid #71bdb2; outline-offset: 8px; border-radius: 4px; scroll-margin-block: 180px; }
#scenarioLibraryPage :is(button, a, summary, input, select, textarea):focus-visible { outline: 2px solid #168c80; outline-offset: 3px; }
.wide-area-parameter-editor[data-system-default="true"] .wide-area-quick-values { display: none; }
@media (max-width: 760px) { .wide-area-parameter-finder { grid-template-columns: 1fr; gap: 6px; } .wide-area-finder-results { grid-template-columns: 1fr; } .wide-area-field-section > header { padding: 10px 12px; } .wide-area-editor-links { flex-wrap: wrap; gap: 8px; } .wide-area-editor-link-actions { margin-left: auto; } .wide-area-field-grid { gap: 22px; } }
.wide-area-quick-values { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.wide-area-quick-values button { border: 1px solid #d5e5e5; border-radius: 5px; background: #f4f9f8; color: #246b6d; padding: 4px 7px; font-size: 12px; }
.wide-area-quick-values span { display: none; }
.wide-area-pending-change { border: 1px solid #e6c78e; border-radius: 8px; background: #fff8ea; padding: 14px; font-size: 13px; line-height: 1.7; }
.wide-area-pending-change p { margin: 0 0 10px; }
.wide-area-pending-change button + button { margin-left: 8px; }
.wide-area-change-review { margin-top: 20px; padding: 14px; border-radius: 8px; background: #f4f8fa; font-size: 13px; }
.wide-area-change-review summary { cursor: pointer; color: #236b73; }
.wide-area-change-review ul { padding-left: 20px; margin-bottom: 0; }
.wide-area-change-review li { padding: 7px 0; overflow-wrap: anywhere; }
.wide-area-change-review li span { display: block; color: #607880; margin-top: 3px; }
.wide-area-form-message { color: #916024; font-size: 13px; line-height: 1.7; }
.wide-area-form-message:empty { display: none; }
.wide-area-edit-toolbar .wide-area-form-message { color: #916024; overflow-wrap: anywhere; }
.wide-area-name-row [aria-invalid="true"] { border-color: #bd5a46; background: #fffaf7; }
.wide-area-editor-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #e0eaed; }
@media (max-width: 1100px) { .wide-area-parameter-layout { grid-template-columns: 1fr; } .wide-area-group-sidebar { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; } .wide-area-group-sidebar .wide-area-parameter-groups { display: none; } .wide-area-group-sidebar .wide-area-parameter-toolbar { grid-column: 1 / -1; grid-row: 1; margin: 0; } .wide-area-mobile-picker { display: grid; gap: 6px; grid-column: 1 / -1; grid-row: 2; } .wide-area-group-sidebar .wide-area-list-count { grid-column: 1; grid-row: 3; margin: 0; align-self: center; } .wide-area-filter-toggle { display: block; grid-column: 2; grid-row: 3; justify-self: end; } .wide-area-list-filters { grid-column: 1 / -1; grid-row: 4; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .wide-area-group-sidebar:not(.is-filter-open) .wide-area-list-filters, .wide-area-group-sidebar .wide-area-sidebar-note { display: none; } .wide-area-list-filter { margin: 0; } }
@media (max-width: 760px) { .wide-area-field-grid, .wide-area-name-row { grid-template-columns: 1fr; } .wide-area-parameter-editor { padding: 14px; } .wide-area-field-section { padding: 14px 0; scroll-margin-top: 210px; } #scenarioLibraryPage > .library-hero { flex-direction: column; align-items: stretch; } #scenarioLibraryPage > .library-hero .hero-meta { justify-content: flex-end; flex-wrap: wrap; } #scenarioLibraryPage > .library-hero .archive-filter { white-space: nowrap; } .wide-area-editor-heading { flex-wrap: wrap; } .wide-area-key-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .wide-area-history-heading { flex-wrap: wrap; } .wide-area-history-panel { padding: 12px; } .wide-area-history-snapshot dl > div { grid-template-columns: 1fr; gap: 3px; } .wide-area-section-nav > a { display: none; } .wide-area-section-picker { display: grid; gap: 6px; width: 100%; } }
@media (max-width: 760px) {
  .wide-area-key-summary { display: none; }
  .wide-area-section-picker > .field-label { margin: 0; }
  .wide-area-parameter-layout { gap: 16px; }
  .wide-area-parameter-editor .wide-area-parameter-help { font-size: 12px; }
}
@media (max-width: 600px) { .tuning-details > summary { align-items: flex-start; } .tuning-details > summary em { max-width: 90px; text-align: right; } .standard-region-mode .segment { min-width: 0; } }


.wide-area-parameter-help {
  display: block;
  margin-top: 0;
  color: var(--muted, #718096);
  font-size: 12px;
  line-height: 1.5;
}

.module-independence-note {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid rgba(64, 132, 255, .24);
  border-radius: 10px;
  background: rgba(64, 132, 255, .07);
  color: var(--text, #24344d);
  font-size: 13px;
  line-height: 1.55;
}

.module-independence-note strong {
  flex: 0 0 auto;
  color: #2f6fed;
}
