/* Approved blue/white desktop UI. Geometry, data and interaction styles stay in styles.css. */
:root {
  --ink:#172b4d; --muted:#728099; --line:#e2e8f2; --panel:#fff;
  --blue:#2563eb; --blue-soft:#eaf2ff; --green:var(--blue); --green-soft:var(--blue-soft);
  --danger:#dc3545; --shadow:0 6px 24px #23395c12;
  font-family:Inter,"Microsoft YaHei UI","Microsoft YaHei",system-ui,sans-serif;
}
button,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
button { transition:background .12s,border-color .12s,color .12s; }
button:focus-visible,summary:focus-visible { outline:2px solid #8bb2ff; outline-offset:2px; }
input[type="checkbox"],input[type="radio"] { accent-color:var(--blue); cursor:pointer; }
[data-icon] { display:inline-flex; align-items:center; justify-content:center; gap:7px; }
[data-icon]::before { content:""; display:block; flex:0 0 18px; width:18px; height:18px; background:currentColor; mask:var(--ui-icon) center/contain no-repeat; -webkit-mask:var(--ui-icon) center/contain no-repeat; }
button.icon-only { width:32px; min-width:32px; padding:0!important; font-size:0!important; gap:0; }
.icon-only::before { flex-basis:18px; }
.app-shell { background:#f5f7fb; }
.topbar { order:0; height:64px; min-height:64px; padding:10px 20px; gap:18px; grid-template-columns:240px minmax(260px,620px) auto minmax(95px,1fr); border-color:var(--line); background:white; }
.brand { gap:10px; }
.brand-mark { width:34px; height:34px; background:none; border-radius:0; }
.brand-mark svg { width:34px; height:34px; }
h1 { color:#102344; font-size:20px; font-weight:700; letter-spacing:.2px; }
.search-wrap { display:block; }
.search-wrap input { height:42px; padding:0 45px 0 14px; border:1px solid #cfd8e8; border-radius:7px; color:var(--ink); font-size:13px; background:#fff; }
.search-wrap input::placeholder { color:#8c99ac; }
.search-wrap input:focus { border-color:#76a2fc; box-shadow:0 0 0 3px #2563eb0c; }
#searchButton { position:absolute; top:5px; right:5px; height:32px; border-radius:5px; background:white; color:#71839f; }
#searchButton:hover { background:var(--blue-soft); color:var(--blue); }
.locate-button { height:40px; padding:0 12px; border:1px solid #d4ddec; border-radius:6px; font-size:13px; }
.locate-button::before { color:var(--blue); }
.locate-button:hover { background:var(--blue-soft); }
.app-readiness { justify-self:end; display:flex; align-items:center; gap:8px; font-size:12px; white-space:nowrap; color:#40516d; }
.app-readiness::before { content:""; width:8px; height:8px; border-radius:50%; background:#9baabe; }
.app-readiness[data-state="ready"]::before { background:#28bb7f; box-shadow:0 0 0 3px #28bb7f12; }
.app-readiness[data-state="partial"]::before { background:#e5a12c; }
.app-readiness[data-state="error"]::before { background:var(--danger); }
.suggestions { top:48px; border-color:var(--line); box-shadow:var(--shadow); }
.suggestion:hover,.suggestion:focus,.suggestion.active { background:#eff5ff; }
.map-tool-stack { order:1; min-height:55px; padding:7px 14px; gap:6px 10px; background:#fff; border-color:var(--line); }
.drawing-tools { order:0; padding:0; gap:3px; background:none; border-radius:0; }
.drawing-tools button,.drawing-actions button,.drawing-kml-actions button,.dsm-launch-button,.drawing-file-menu>summary { min-height:38px; padding:0 9px; border:1px solid transparent; border-radius:6px; background:transparent; color:#30435e; box-shadow:none; font-size:13px; font-weight:500; }
.drawing-tools button::before,.dsm-quick-actions button::before { color:var(--blue); }
.drawing-tools button { min-width:0; }
.drawing-tools button:hover,.drawing-actions button:hover,.drawing-kml-actions button:hover,.dsm-launch-button:hover,.drawing-file-menu>summary:hover { border-color:transparent; background:#f0f5fc; color:var(--blue); }
.drawing-tools button.active { color:var(--blue); border-color:transparent; background:#e5efff; font-weight:600; }
.drawing-tools [data-drawing-tool="select"] { position:relative; margin-right:12px; }
.drawing-tools [data-drawing-tool="select"]::after { content:""; position:absolute; right:-8px; top:8px; bottom:8px; width:1px; background:var(--line); }
.drawing-actions { order:1; gap:2px; padding-left:10px; border-left:1px solid var(--line); }
.drawing-actions button:nth-child(2) { color:#61738e; border-color:transparent; }
.drawing-kml-actions { order:2; gap:2px; padding-left:10px; border-left:1px solid var(--line); }
.drawing-kml-actions .drawing-primary { border-color:transparent; background:transparent; color:#30435e; }
.drawing-kml-actions .drawing-primary:hover { background:var(--blue-soft); color:var(--blue); }
.drawing-session-actions { display:flex; align-items:center; gap:2px; }
.drawing-session-actions[hidden] { display:none; }
#drawingFinishButton:not(:disabled) { background:var(--blue); color:white; }
.dsm-quick-actions { order:3; gap:2px; padding-left:10px; border-color:var(--line); }
.drawing-file-menu { order:4; margin-left:auto; }
.drawing-file-menu>summary { list-style:none; display:flex; font-size:0; gap:0; width:34px; justify-content:center; cursor:pointer; }
.drawing-file-menu>summary::after { display:none; }
.drawing-file-actions { border-color:var(--line); box-shadow:var(--shadow); z-index:12; }
.drawing-file-actions button { white-space:normal; }
button:disabled { opacity:.42; cursor:not-allowed; }
.workspace { order:2; display:grid; grid-template-columns:var(--sidebar-width) minmax(0,1fr); --sidebar-width:0px; overflow:hidden; }
.workspace:has(> .drawing-list-panel:not([hidden])) { --sidebar-width:280px; }
#map { grid-column:2; grid-row:1; min-width:0; min-height:0; height:100%; background:#e7eef4; }
.drawing-list-panel { position:relative; grid-column:1; grid-row:1; top:auto; left:auto; width:100%; height:100%; max-height:none; min-height:0; padding:17px 15px 0; border:0; border-right:1px solid #dce5f1; border-radius:0; box-shadow:2px 0 8px #263c5807; background:#fff; z-index:8; }
.drawing-properties-heading { margin-bottom:15px; gap:8px; }
.drawing-properties-heading strong { font-size:15px; line-height:1.5; font-weight:650; color:#182d4c; overflow-wrap:anywhere; }
.drawing-properties-heading button { flex-shrink:0; width:28px; min-width:28px; height:28px; min-height:28px; border:0; background:transparent; color:#64748b; }
.drawing-properties-heading button:hover { background:#edf3fc; color:var(--blue); }
.list-count { display:inline-flex; min-width:24px; height:24px; align-items:center; justify-content:center; margin-left:7px; padding:0 6px; border-radius:12px; background:#edf1f7; color:#64748b; font-size:12px; font-weight:500; }
.list-search { position:relative; width:100%; }
.list-search::before { position:absolute; left:10px; color:#8593a8; pointer-events:none; }
.drawing-list-panel input[type="search"] { height:37px; padding:7px 10px 7px 34px; border-color:#d7e0ed; border-radius:6px; background:#fff; font-size:12px; outline:none; }
.drawing-list-panel input[type="search"]:focus { border-color:#84aafe; }
.drawing-list-actions { justify-content:space-between; align-items:center; flex-wrap:nowrap; gap:2px; margin:12px 0 9px; }
.drawing-list-actions button { min-height:32px; gap:5px; padding:0 6px; background:transparent; border:0; border-radius:5px; font-size:11px; }
.drawing-list-actions button::before { width:15px; height:15px; flex-basis:15px; }
.drawing-list-actions button:hover:not(:disabled) { background:#eff5ff; color:var(--blue); }
.drawing-list-actions .danger { background:transparent!important; border:0!important; color:#66758e!important; }
.drawing-list-actions .danger:hover:not(:disabled) { color:var(--danger)!important; background:#fff0f1!important; }
.drawing-list-rows { flex:1; min-height:0; margin:0 -6px; overflow:auto; scrollbar-width:thin; scrollbar-color:#ced7e5 transparent; }
.drawing-list-row { position:relative; min-height:51px; padding:8px 5px; grid-template-columns:17px 18px minmax(0,1fr) repeat(3,27px); gap:3px; border:0; border-bottom:1px solid #edf1f7; }
.drawing-list-row.is-selected { box-shadow:inset 3px 0 var(--blue); background:#eaf2ff; border-radius:4px; }
.drawing-list-row:hover { background:#f4f7fc; }
.drawing-list-row.is-selected:hover { background:#eaf2ff; }
.drawing-list-row input[type="checkbox"] { width:14px; height:14px; margin:0 0 0 1px; }
.drawing-list-row .row-type { color:var(--blue); }
.drawing-list-row .row-type::before { width:17px; height:17px; flex-basis:17px; }
.drawing-list-row input[type="text"] { height:31px; padding:4px 3px; color:#253c5c; border-radius:4px; font-size:13px; }
.drawing-list-row button { width:27px; min-width:27px; min-height:29px; height:29px; border:0; background:transparent; color:#516580; }
.drawing-list-row button::before { width:16px; height:16px; flex-basis:16px; }
.drawing-list-row .danger { border:0!important; background:transparent!important; color:#66758e!important; }
.drawing-list-row button:hover { background:#dceaff; color:var(--blue); }
.drawing-list-row .danger:hover { color:var(--danger)!important; background:#ffe6e9!important; }
.drawing-list-empty { padding:28px 14px; text-align:center; line-height:1.9; color:#8a97a9; }
.drawing-list-footer { flex-shrink:0; padding:13px 0; margin-top:8px; border-top:1px solid var(--line); color:#8190a6; font-size:11px; }
.layer-control { left:calc(var(--sidebar-width) + 14px); bottom:14px; min-width:186px; border:1px solid #e0e7f0; border-radius:8px; background:#fffffff5; box-shadow:var(--shadow); font-size:11px; }
.layer-control summary { padding:8px 12px; color:#60718c; font-size:11px; }
.layer-control[open] summary { padding-bottom:2px; }
.layer-options { padding:7px 10px 10px; gap:7px; }
.basemap-options { padding-bottom:8px; border-color:#e9edf4; gap:4px; }
.basemap-options span { min-height:30px; border:0; background:#f1f4f9; border-radius:5px; font-size:11px; }
.basemap-options input:checked+span { background:var(--blue); }
.drawing-properties,.result-panel { top:14px; right:14px; width:312px; max-height:calc(100% - 28px); padding:16px; border:1px solid #e0e7f0; border-radius:9px; background:white; box-shadow:var(--shadow); overflow-y:auto; scrollbar-width:thin; scrollbar-color:#cfdae9 transparent; }
.drawing-properties { display:flex; flex-direction:column; overflow:hidden; }
.drawing-properties[hidden] { display:none; }
.drawing-properties .drawing-properties-heading { flex-shrink:0; position:static; z-index:2; margin:-2px 0 6px; padding:3px 0 12px; border-bottom:1px solid #edf1f7; background:white; }
.drawing-properties-title-wrap { display:grid; gap:3px; min-width:0; flex:1; }
.drawing-properties-title-wrap strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.drawing-properties-title-wrap small { color:#6881aa; font-size:11px; font-weight:500; line-height:1.4; }
.drawing-properties-title-wrap small[hidden],.drawing-measurement-card[hidden] { display:none; }
.inspector-body { flex:1 1 auto; min-height:0; overflow:auto; padding:0 1px 1px; scrollbar-width:thin; scrollbar-color:#cfdae9 transparent; }
.drawing-properties label { margin-top:10px; gap:5px; color:#61718b; font-size:12px; }
.drawing-properties input:not([type="color"]),.drawing-properties select,.drawing-properties textarea { min-height:35px; padding:7px 9px; border-color:#d2dceb; border-radius:5px; color:#243b5d; font-size:13px; background:#fff; }
.drawing-properties textarea { min-height:46px; resize:vertical; }
.drawing-properties input:focus,.drawing-properties select:focus,.drawing-properties textarea:focus { border-color:#719ffc; box-shadow:0 0 0 2px #2563eb0b; }
.drawing-basics-row { align-items:end; gap:10px; }
.drawing-basics-row:has(#drawingLineStyles[hidden]) { grid-template-columns:1fr; }
.drawing-basics-row>label,.drawing-basics-row .drawing-style-fields,.drawing-basics-row .drawing-style-fields label { margin-top:0; }
.drawing-appearance { margin-top:9px; padding-top:8px; border-top:1px solid #edf1f7; }
.inspector-section-title { display:block; color:#324764; font-size:12px; font-weight:700; }
.drawing-color-setting { display:grid; grid-template-columns:39px minmax(0,1fr); align-items:center; gap:5px; margin-top:8px; }
.drawing-color-setting>span { display:block; color:#61718b; font-size:11px; white-space:nowrap; }
.drawing-palette-row { display:flex; align-items:center; gap:5px; min-width:0; }
.drawing-color-presets { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); flex:1; gap:3px; min-width:0; }
.drawing-color-presets button { width:100%; height:28px; min-width:0; padding:0; border:1px solid #cbd5e4; border-radius:6px; background:var(--swatch); cursor:pointer; }
.drawing-color-presets button:hover { transform:translateY(-1px); border-color:#6485be; }
.drawing-color-presets button.active { outline:2px solid var(--blue); outline-offset:2px; }
.drawing-properties .drawing-color-custom { display:grid; flex:0 0 31px; width:31px; height:31px; margin:0; padding:3px; place-items:center; position:relative; border:1px solid #cbd5e4; border-radius:6px; background:conic-gradient(#ef4444,#f59e0b,#22c55e,#06b6d4,#2563eb,#8b5cf6,#ef4444); cursor:pointer; }
.drawing-color-custom.active { outline:2px solid var(--blue); outline-offset:2px; }
.drawing-color-custom .color-preview { display:block; width:22px; height:22px; border:2px solid white; border-radius:4px; pointer-events:none; }
.drawing-color-custom input[type="color"] { position:absolute; inset:0; width:100%; height:100%; margin:0; padding:0; opacity:0; cursor:pointer; }
.drawing-color-custom:focus-within { outline:2px solid var(--blue); outline-offset:2px; }
.drawing-point-styles { margin-top:15px; gap:7px; }
.drawing-point-styles button { flex-direction:column; gap:2px; min-height:65px; padding:4px; border:1px solid #dbe3ef; border-radius:5px; background:white; color:#405573; font-size:11px; }
.drawing-point-styles button img { width:29px; height:35px; }
.drawing-point-styles button.active { border-color:var(--blue); background:#edf4ff; box-shadow:inset 0 0 0 1px var(--blue); color:var(--blue); }
.drawing-style-fields { display:grid; gap:2px; margin-top:8px; }
.drawing-style-fields[hidden] { display:none; }
.drawing-style-fields label { margin-top:8px; }
.drawing-opacity-control { display:flex; align-items:center; gap:10px; min-height:35px; }
.drawing-properties .drawing-opacity-control input[type="range"] { flex:1; min-width:0; min-height:24px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; accent-color:var(--blue); cursor:pointer; }
.drawing-opacity-control output { min-width:36px; color:#405573; text-align:right; font-size:12px; font-variant-numeric:tabular-nums; }
.drawing-opacity-hint { margin-top:1px; color:#8794a8; font-size:10px; }
.drawing-properties .drawing-label-setting { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; padding:9px 10px; border:1px solid #e0e7f0; border-radius:7px; background:#f7f9fd; cursor:pointer; }
.drawing-properties .drawing-label-setting[hidden] { display:none; }
.drawing-label-setting>span { display:grid; gap:2px; min-width:0; }
.drawing-label-setting strong { color:#324764; font-size:12px; font-weight:650; }
.drawing-label-setting small { color:#8190a6; font-size:10px; line-height:1.35; }
.drawing-properties .drawing-label-setting input[type="checkbox"] { appearance:none; flex:0 0 36px; width:36px; min-height:20px; height:20px; margin:0; padding:2px; border:0; border-radius:999px; background:#aeb9c9; box-shadow:none; cursor:pointer; transition:background-color .16s ease; }
.drawing-properties .drawing-label-setting input[type="checkbox"]::after { content:""; display:block; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:0 1px 3px #0f254033; transition:transform .16s ease; }
.drawing-properties .drawing-label-setting input[type="checkbox"]:checked { background:var(--blue); }
.drawing-properties .drawing-label-setting input[type="checkbox"]:checked::after { transform:translateX(16px); }
.drawing-properties .drawing-label-setting input[type="checkbox"]:focus-visible { outline:2px solid #8eb2ff; outline-offset:2px; }
.drawing-properties .drawing-label-setting input[type="checkbox"]:disabled { opacity:.55; cursor:not-allowed; }
.drawing-measurement-card { padding:9px 10px; margin-top:12px; border-radius:6px; background:#eaf3ff; }
.measurement-heading { display:flex; justify-content:space-between; align-items:center; min-height:20px; }
.measurement-heading>span { color:var(--blue); font-size:10px; font-weight:650; letter-spacing:.4px; }
.measurement-heading button { height:24px; min-height:24px; border:0; background:transparent; color:#4b6a96; }
.drawing-measurement { min-height:0; margin:2px 0 0; padding:0; background:transparent; color:#213e64; font-size:12px; line-height:1.6; font-variant-numeric:tabular-nums; }
.field-with-unit { position:relative; }
.field-with-unit input { padding-right:26px!important; }
.field-with-unit>span { position:absolute; right:10px; top:50%; transform:translateY(-50%); color:#7b8aa1; font-size:11px; }
#drawingSurfaceMin,#drawingSurfaceMax { font-size:16px; font-weight:500; background:#fcfdff; }
.drawing-elevation-note { margin-top:8px; color:#7f8da3; font-size:10px; line-height:1.5; }
.drawing-elevation-note small { font-size:10px; }
.drawing-elevation-note a { color:#5879a6; }
.drawing-source-note { margin-top:5px; }
.drawing-source-note summary { cursor:pointer; color:#7688a4; font-size:10px; }
.drawing-source-note small { display:block; margin-top:5px; }
.drawing-remark-details { margin-top:12px; border-top:1px solid #edf1f7; padding-top:8px; }
.drawing-remark-details summary { cursor:pointer; color:#61718b; font-size:12px; }
.drawing-remark-details textarea { width:100%; margin-top:8px; }
.drawing-properties-actions { flex-shrink:0; display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:16px; padding-top:12px; border-top:1px solid #edf1f7; }
.drawing-properties-actions .drawing-export-selected { flex:1; height:38px; border:0; border-radius:5px; background:#dfebff; color:var(--blue); font-weight:600; font-size:12px; }
.drawing-properties-actions .drawing-export-selected:hover { background:#cfdefc; }
.drawing-properties-actions .danger { height:36px; border:0!important; background:transparent!important; padding:0 8px; font-size:12px; }
.drawing-properties-actions .danger:hover { background:#fff0f1!important; }
.drawing-properties-actions #drawingDeleteVertex { font-size:11px; }
.drawing-properties-actions [hidden],.measurement-heading [hidden] { display:none; }
#drawingDownloadDsm { flex:1 0 100%; min-height:38px; border:0; border-radius:5px; background:var(--blue); color:white; font-size:12px; font-weight:600; }
#drawingDownloadDsm:hover:not(:disabled) { background:#1d4ed8; }
#drawingDownloadDsm[hidden] { display:none; }
.dsm-source-drawing { margin:0 18px 12px; padding:8px 10px; border-radius:6px; background:#edf4ff; color:#486997; font-size:12px; line-height:1.6; }
.dsm-source-drawing[hidden] { display:none; }
.dsm-drawing-instruction { margin:4px 0 15px; color:#62748e; font-size:13px; line-height:1.8; }
.result-panel { z-index:7; }
.panel-heading { gap:8px; }
.panel-heading h2 { font-size:15px; line-height:1.5; }
.panel-close { width:26px; height:26px; border:0; background:#f6f8fc; color:#64748b; }
.status-badge { padding:5px 7px; font-size:10px; }
.details { font-size:12px; }
.details div { gap:14px; padding:10px 0; border-color:#edf1f7; }
.details dd { overflow-wrap:anywhere; }
.copy-button { border:0; background:#eff5ff; color:var(--blue); }
.data-version { font-size:10px; color:#8a97aa; }
.interaction-status { order:3; z-index:8; min-height:30px; padding:5px 16px; gap:3px 14px; border-top:1px solid var(--line); border-bottom:0; background:#fff; font-size:10px; line-height:1.6; color:#75849c; }
#drawingDraftMeasure { color:#42628f; }
#drawingRecoveryUndo { padding:1px 7px; border-color:#bfd2f9; }
.map-attribution { position:static; margin-left:auto; padding:0; max-width:none; background:transparent; color:#8a97aa; font-size:9px; line-height:1.6; }
.map-hint { left:calc(50% + var(--sidebar-width)/2); bottom:16px; max-width:calc(100% - var(--sidebar-width) - 40px); white-space:normal; border:1px solid #e0e7f0; background:#fffffff5; color:#526782; box-shadow:var(--shadow); font-size:12px; text-align:center; }
.location-notice[hidden],.location-notice a[hidden]{display:none}
.location-notice{position:absolute;z-index:8;top:14px;left:calc(var(--sidebar-width) + 14px);display:flex;gap:10px;width:min(350px,calc(100% - var(--sidebar-width) - 28px));padding:12px 12px 11px;border:1px solid #dce6f4;border-radius:10px;background:#fffffff7;box-shadow:var(--shadow);color:#253b5e;font-size:12px;line-height:1.55}
.location-notice>div:first-child{flex:1;min-width:0}.location-notice strong{display:block;font-size:13px}.location-notice p{margin:3px 0 0;color:#667994}.location-notice a{display:inline-block;margin-top:5px;color:#2b63db;font-weight:600;text-decoration:none}.location-notice a:hover{text-decoration:underline}
.location-notice-actions{display:flex;align-items:flex-start;gap:5px;flex-shrink:0}.location-notice-actions button{min-height:28px;padding:3px 7px;border:1px solid #cbdaf2;border-radius:6px;background:#f1f6ff;color:#3463ba;font-size:11px;cursor:pointer}.location-notice-actions #locationNoticeClose{width:28px;padding:2px;font-size:18px;line-height:1}
.maintenance-notice[hidden]{display:none}.maintenance-notice{position:absolute;z-index:7;top:14px;left:calc(var(--sidebar-width) + 14px);display:flex;align-items:flex-start;gap:9px;width:min(350px,calc(100% - var(--sidebar-width) - 28px));padding:11px 12px;border:1px solid #f4d7a1;border-radius:10px;background:#fffaf0f7;box-shadow:var(--shadow);color:#654316;font-size:12px;line-height:1.5}.workspace:has(> .location-notice:not([hidden]))>.maintenance-notice{top:112px}.maintenance-notice>div{flex:1;min-width:0}.maintenance-notice strong{display:block;font-size:12px}.maintenance-notice p{margin:2px 0 0;color:#795d38}.maintenance-notice-dot{flex:0 0 7px;height:7px;margin-top:6px;border-radius:50%;background:#ef9b1d}.maintenance-notice button{flex:0 0 25px;width:25px;height:25px;padding:0;border:0;border-radius:5px;background:transparent;color:#8f724d;font-size:18px;cursor:pointer}.maintenance-notice button:hover{background:#fbeed7}
.map-fatal { border-color:#f5bec3; }
.query-marker { width:20px; height:20px; background:var(--blue); border:3px solid white; box-shadow:0 0 0 6px #2563eb22,0 3px 10px #243b532a; pointer-events:none; }
.maplibregl-ctrl-bottom-right { right:5px; bottom:6px; }
.maplibregl-ctrl-group { border:1px solid #dde5ef; border-radius:7px!important; box-shadow:var(--shadow)!important; overflow:hidden; }
.dsm-selecting .workspace { --sidebar-width:0px!important; }
.dsm-selection-actions { border-color:#cddbf2; box-shadow:var(--shadow); background:white; }
.dsm-selection-actions button,.dsm-dialog button,.dsm-dialog a { border-color:#d7e0ed; color:#405677; }
.dsm-selection-actions button:hover,.dsm-dialog button:hover { border-color:#91b5ff; background:#eff5ff; }
.dsm-selection-actions #dsmSelectionFinish,.dsm-primary { background:var(--blue)!important; border-color:var(--blue)!important; color:white!important; }
.dsm-dialog { border-color:#d8e2f0; box-shadow:0 20px 65px #16305730; border-radius:12px; }
.dsm-dialog::backdrop { background:#2439553d; backdrop-filter:blur(2px); }
.dsm-dialog-heading { padding:17px 18px 13px; }
.dsm-dialog-heading h2 { font-size:17px; }
.dsm-view { padding:4px 18px 18px; font-size:12px; }
.dsm-vertical-datum select { border-color:#d7e0ed; }
.dsm-job-status,.dsm-edit-status { color:#426898; }
.dsm-progress-row progress { accent-color:var(--blue); }
.duplicate-dialog { border-color:#d8e2f0; box-shadow:0 20px 65px #16305730; }
.duplicate-dialog p { color:#60718a; font-size:13px; }
@media (min-width:901px) {
  body:has(.drawing-list-panel:not([hidden])) #drawingListButton { display:none; }
}
@media (max-width:1350px) and (min-width:901px) {
  .map-tool-stack { gap:4px 6px; padding:6px 10px; }
  .map-tool-stack button { padding:0 7px; font-size:12px; }
  .drawing-actions,.drawing-kml-actions,.dsm-quick-actions { padding-left:7px; }
}
@media (max-width:1200px) and (min-width:901px) {
  .topbar { gap:12px; padding:10px 14px; grid-template-columns:auto minmax(220px,1fr) auto; }
  .app-readiness { display:none; }
  .map-tool-stack { gap:4px 6px; padding:6px 10px; }
  .map-tool-stack button { padding:0 6px; font-size:11px; }
  .workspace:has(> .drawing-list-panel:not([hidden])) { --sidebar-width:250px; }
  .drawing-properties,.result-panel { width:286px; }
  .drawing-list-panel { padding:14px 10px 0; }
  .drawing-list-row { grid-template-columns:16px 16px minmax(0,1fr) repeat(3,24px); gap:2px; }
}
@media (max-width:900px) {
  .workspace:has(> .location-notice:not([hidden]))>.maintenance-notice{top:128px}
  .topbar { min-height:108px; height:auto; padding:8px 12px; grid-template-columns:1fr auto; gap:8px; }
  .brand { grid-column:1; }.brand-mark,.brand-mark svg { width:29px; height:29px; } h1 { font-size:17px; }
  .search-wrap { grid-column:1/-1; grid-row:2; }
  .locate-button { grid-column:2; grid-row:1; height:34px; font-size:12px; }
  .app-readiness { display:none; }
  .map-tool-stack { padding:6px 8px; gap:4px 6px; }
  .map-tool-stack button { min-height:34px; padding:0 7px; font-size:11px; }
  .map-tool-stack [data-icon]::before { flex-basis:16px; width:16px; height:16px; }
  .drawing-tools { width:100%; gap:2px; }
  .drawing-tools button { flex:1; justify-content:center; }
  .drawing-tools [data-drawing-tool="select"] { margin-right:5px; }
  .drawing-tools [data-drawing-tool="select"]::after { right:-3px; }
  .drawing-kml-actions { order:1; padding:0; border:0; }
  .drawing-actions { order:2; padding:0; border:0; }
  .dsm-quick-actions { order:3; padding:0; border:0; width:auto; }
  .dsm-quick-actions button { flex:none; }
  .drawing-file-menu { order:4; margin-left:auto; }
  .drawing-file-menu>summary { min-height:34px; }
  .workspace,.workspace:has(> .drawing-list-panel:not([hidden])) { --sidebar-width:0px; }
  .drawing-list-panel { position:absolute; top:8px; bottom:8px; left:8px; width:min(330px,calc(100% - 16px)); height:auto; max-height:calc(100% - 16px); padding:14px 12px 0; border:1px solid #dce5f1; border-radius:9px; box-shadow:var(--shadow); z-index:9; }
  .drawing-list-row { min-height:49px; }
  .drawing-properties,.result-panel { top:8px; right:8px; width:min(310px,calc(100% - 16px)); max-height:calc(100% - 16px); padding:14px; }
  .drawing-properties .drawing-properties-heading { top:-14px; }
  .drawing-point-styles button { min-height:57px; }
  .drawing-point-styles button img { width:25px; height:30px; }
  .drawing-properties label { margin-top:9px; }
  .drawing-measurement-card { margin-top:12px; }
  .drawing-elevation-note { font-size:9px; }
  .drawing-properties-actions { margin-top:12px; padding-top:10px; }
  .layer-control { left:10px; bottom:10px; }
  .dsm-selection-actions { width:calc(100% - 20px); top:10px; }
  .interaction-status { padding:5px 10px; font-size:10px; gap:2px 8px; }
  .map-attribution { font-size:8px; }
  .map-hint { left:50%; bottom:10px; }
  .maplibregl-ctrl-group { display:block; }
  .maplibregl-ctrl-bottom-right { right:2px; bottom:1px; }
}
@media (prefers-reduced-motion:reduce) { button { transition:none; } }
.navigation-link{display:flex;align-items:center;justify-content:center;gap:7px;min-height:38px;width:100%;padding:8px 12px;border:1px solid #d5e2ff;border-radius:6px;background:#edf3ff;color:#3566ed;text-decoration:none;font-size:13px;font-weight:600;cursor:pointer;box-sizing:border-box}
.navigation-link:hover{background:#dfebff;border-color:#b6ceff}.navigation-link:focus-visible{outline:2px solid #3566ed;outline-offset:2px}.navigation-link[hidden]{display:none!important}
.navigation-actions{display:flex;gap:7px;width:100%;flex-basis:100%;min-width:0}.navigation-actions[hidden]{display:none!important}.navigation-actions .navigation-link{flex:1;width:auto;font-size:12px;padding:8px 6px}
.navigation-copy{display:flex;align-items:center;justify-content:center;gap:5px;flex:1;min-width:0;min-height:38px;padding:8px 6px;border:1px solid #d5e2ff;border-radius:6px;background:white;color:#456394;font-size:12px;white-space:nowrap}.navigation-copy:hover{background:#f1f6ff}.navigation-copy:disabled{opacity:.6}
.result-panel>.navigation-actions{margin-top:12px}
.navigation-dialog{width:min(390px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;padding:20px;border:1px solid #dbe4f3;border-radius:14px;background:#fff;color:var(--ink);box-shadow:0 20px 56px #172b4d35}
.navigation-dialog::backdrop{background:#172b4d80}
.navigation-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.navigation-dialog-heading h2{font-size:18px}
.navigation-dialog-heading button{width:30px;height:30px;border:1px solid #dae3ef;border-radius:7px;background:#fff;color:#66758f;cursor:pointer}
.navigation-dialog-place{margin:10px 0 14px;color:#344663;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.navigation-qr{display:grid;place-items:center;min-height:236px;padding:10px;border:1px solid #e0e7f0;border-radius:9px;background:#fff;color:#728099;text-align:center;font-size:13px}
.navigation-qr svg{display:block;width:min(216px,100%);height:auto}
.navigation-dialog-tip{margin:12px 0;color:#66758f;font-size:12px;line-height:1.55}
.navigation-dialog-actions{display:grid;gap:8px}
.navigation-dialog-actions button,.navigation-dialog-actions a{display:flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;border:1px solid #c9d8f5;border-radius:7px;background:#edf3ff;color:#285fd3;text-align:center;text-decoration:none;font-size:13px;font-weight:600;cursor:pointer}
.navigation-dialog-actions a{background:#fff;color:#526788;font-weight:500}
.navigation-dialog-actions button:hover,.navigation-dialog-actions a:hover{background:#e2ecff}
.navigation-dialog-feedback{margin:10px 0 0;color:#285fd3;font-size:12px;line-height:1.4;text-align:center}
#airspaceUpdateButton[hidden]{display:none}
.airspace-update-dialog{width:min(480px,calc(100vw - 28px));padding:22px;border:1px solid #dbe4f1;border-radius:14px;color:#243b5d;background:white;box-shadow:0 20px 70px #14294a33}
.airspace-update-dialog::backdrop{background:#172e4b4d;backdrop-filter:blur(2px)}
.airspace-update-dialog header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.airspace-update-dialog h2{margin:0;font-size:18px}.airspace-update-dialog header button{border:0;background:#f1f5fb;color:#71829b;border-radius:7px;width:30px;height:30px;font-size:22px;cursor:pointer}
.update-intro{color:#62748e;font-size:13px;line-height:1.7;margin:0 0 18px}.airspace-update-dialog label{display:block;font-size:12px;margin-bottom:7px}.airspace-update-dialog input{box-sizing:border-box;width:100%;padding:11px;border:1px solid #cbd9ec;border-radius:7px;font-size:13px}.airspace-update-dialog input:focus{outline:2px solid #d9e6ff;border-color:#4a7be8}.update-note{font-size:11px;color:#8795ab;line-height:1.5}
.update-progress-box{display:grid;gap:10px;padding:15px;margin:20px 0;background:#f3f7fd;border-radius:9px}.update-progress-box strong{font-size:13px;line-height:1.6}.update-progress-box progress{width:100%;height:7px;accent-color:#3566ed}.update-progress-box span{font-size:12px;color:#72839d}.update-error{font-size:12px;color:#c83d46;line-height:1.6}.update-error[hidden]{display:none}
.airspace-update-dialog footer{display:flex;align-items:center;gap:16px;justify-content:space-between}.airspace-update-dialog footer span{font-size:11px;color:#8291a7;line-height:1.6}.airspace-update-dialog footer button{flex-shrink:0;padding:10px 20px;background:#3566ed;color:white;border:0;border-radius:7px;font-size:13px;cursor:pointer}.airspace-update-dialog footer button:disabled{opacity:.55;cursor:wait}
