:root{--ui-font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;--ui-font-mono: ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;--ui-weight-regular: 400;--ui-weight-medium: 500;--ui-weight-strong: 600;--ui-eyebrow-tracking: .07em;--ui-radius-xs: 4px;--ui-radius-sm: 6px;--ui-radius-md: 8px;--ui-radius-lg: 12px;--ui-radius-xl: 16px;--ui-radius-pill: 9999px;--ui-z-chrome: 60;--ui-z-drawer: 70;--ui-z-panel: 80;--ui-z-modal: 90;--ui-z-popover: 100;--ui-z-toast: 120;--ui-z-critical: 10050;--ui-ease: cubic-bezier(.32, .72, 0, 1);--ui-dur-fast: .12s;--ui-dur: .26s;--ui-dur-slow: .52s;--ui-power: #d4a017;--ui-gas: #e8772e;--ui-water: #06b6d4;--ui-map-ink: rgb(255 255 255);--ui-map-halo: 0 1px 2px rgb(0 0 0 / .6);--ui-map-halo-line: 0 1px 2px rgb(0 0 0 / .5)}:root,:root[data-theme=dark]{--ui-color-scheme: dark;--tw-surface-base: 11 15 16;--tw-surface-raised: 20 24 27;--tw-surface-overlay: 27 32 36;--tw-surface-input: 31 38 43;--tw-surface-hover: 31 38 43;--tw-surface-active: 39 48 53;--tw-text-primary: 232 237 240;--tw-text-secondary: 163 177 186;--tw-text-tertiary: 143 160 171;--tw-text-on-accent: 6 18 27;--tw-border-subtle: 31 38 43;--tw-border-default: 42 51 58;--tw-border-strong: 59 71 79;--tw-status-success: 63 185 143;--tw-status-warning: 224 160 48;--tw-status-error: 240 110 100;--tw-status-info: 74 163 230;--tw-button-primary: 28 130 133;--tw-button-primary-hover: 26 104 107;--tw-accent: 63 194 192;--ui-accent-ink: rgb(6 18 27);--ui-on-primary: rgb(255 255 255);--ui-on-fill: rgb(6 18 27);--ui-mat-bg: rgb(20 24 27 / .9);--ui-mat-bg-solid: rgb(20 24 27);--ui-mat-border: rgb(255 255 255 / .1);--ui-mat-shadow: 0 8px 24px rgb(0 0 0 / .35), inset 0 1px 0 rgb(255 255 255 / .05);--ui-mat-blur: blur(30px) saturate(170%);--ui-hair: rgb(255 255 255 / .1);--ui-hover: rgb(255 255 255 / .07);--ui-fill-quiet: rgb(118 118 128 / .24);--ui-scrim: rgb(0 0 0 / .45);--ui-shadow-sm: 0 2px 6px rgb(0 0 0 / .3);--ui-swatch-edge: inset 0 0 0 1px rgb(255 255 255 / .15);--ui-dot-edge: inset 0 0 0 1px rgb(255 255 255 / .2);--ui-well: rgb(255 255 255 / .04);--ui-switch-knob: rgb(232 237 240);--ui-switch-knob-shadow: none;--ui-seg-on: rgb(39 48 53);--ui-tip-bg: rgb(0 0 0 / .85);--ui-tip-ink: rgb(232 237 240);--ui-tip-ink-muted: rgb(163 177 186);--ui-st-not: rgb(143 160 171);--ui-st-energised: rgb(242 210 122);--ui-critical: rgb(240 112 96)}:root[data-theme=light]{--ui-color-scheme: light;--tw-surface-base: 255 255 255;--tw-surface-raised: 247 248 248;--tw-surface-overlay: 237 238 241;--tw-surface-input: 215 218 224;--tw-surface-hover: 215 218 224;--tw-surface-active: 181 186 196;--tw-text-primary: 9 38 42;--tw-text-secondary: 72 78 92;--tw-text-tertiary: 88 96 113;--tw-text-on-accent: 6 18 27;--tw-border-subtle: 237 238 241;--tw-border-default: 215 218 224;--tw-border-strong: 181 186 196;--tw-status-success: 18 122 78;--tw-status-warning: 143 91 10;--tw-status-error: 184 40 31;--tw-status-info: 21 98 143;--tw-button-primary: 26 104 107;--tw-button-primary-hover: 25 83 86;--tw-accent: 26 104 107;--ui-accent-ink: rgb(255 255 255);--ui-on-primary: rgb(255 255 255);--ui-on-fill: rgb(255 255 255);--ui-mat-bg: rgb(255 255 255 / .94);--ui-mat-bg-solid: rgb(255 255 255);--ui-mat-border: rgb(9 38 42 / .12);--ui-mat-shadow: 0 8px 24px rgb(15 23 42 / .16), 0 1px 2px rgb(15 23 42 / .1);--ui-mat-blur: blur(24px) saturate(160%);--ui-hair: rgb(9 38 42 / .1);--ui-hover: rgb(9 38 42 / .06);--ui-fill-quiet: rgb(118 118 128 / .12);--ui-scrim: rgb(9 20 24 / .32);--ui-shadow-sm: 0 1px 3px rgb(15 23 42 / .18);--ui-swatch-edge: inset 0 0 0 1px rgb(9 38 42 / .18);--ui-dot-edge: inset 0 0 0 1px rgb(9 38 42 / .2);--ui-well: rgb(9 38 42 / .03);--ui-switch-knob: rgb(255 255 255);--ui-switch-knob-shadow: 0 1px 2px rgb(15 23 42 / .3);--ui-seg-on: rgb(255 255 255);--ui-tip-bg: rgb(9 20 24 / .92);--ui-tip-ink: rgb(241 252 250);--ui-tip-ink-muted: rgb(241 252 250 / .72);--ui-st-not: rgb(88 96 113);--ui-st-energised: rgb(140 100 0);--ui-critical: rgb(190 60 40)}:root{--color-surface-base: rgb(var(--tw-surface-base));--color-surface-raised: rgb(var(--tw-surface-raised));--color-surface-overlay: rgb(var(--tw-surface-overlay));--color-surface-input: rgb(var(--tw-surface-input));--color-surface-hover: rgb(var(--tw-surface-hover));--color-surface-active: rgb(var(--tw-surface-active));--color-text-primary: rgb(var(--tw-text-primary));--color-text-secondary: rgb(var(--tw-text-secondary));--color-text-tertiary: rgb(var(--tw-text-tertiary));--color-text-on-accent: rgb(var(--tw-text-on-accent));--color-border-subtle: rgb(var(--tw-border-subtle));--color-border-default: rgb(var(--tw-border-default));--color-border-strong: rgb(var(--tw-border-strong));--color-status-success: rgb(var(--tw-status-success));--color-status-warning: rgb(var(--tw-status-warning));--color-status-error: rgb(var(--tw-status-error));--color-status-info: rgb(var(--tw-status-info));--color-button-primary: rgb(var(--tw-button-primary));--color-button-primary-hover: rgb(var(--tw-button-primary-hover));--ui-accent: rgb(var(--tw-accent));--ui-accent-tint: rgb(var(--tw-accent) / .16);--ui-accent-ring: rgb(var(--tw-accent) / .7);--ui-focus: 2px solid var(--ui-accent);--ui-focus-offset: 2px}:root,:root[data-density=comfortable]{--ui-text-micro: 10px;--ui-text-caption-sm: 11px;--ui-text-caption: 12px;--ui-text-sm: 13px;--ui-text-body: 14px;--ui-text-md: 16px;--ui-text-lg: 18px;--ui-leading: 1.5;--ui-leading-tight: 1.3;--ui-weight-control: var(--ui-weight-medium);--ui-space-1: 4px;--ui-space-2: 8px;--ui-space-3: 12px;--ui-space-4: 20px;--ui-space-5: 28px;--ui-gutter: 20px;--ui-target: 44px;--ui-target-sm: 36px;--ui-target-xs: 28px;--ui-field-h: 40px;--ui-badge-h: 22px;--ui-panel-scale: 1.08}:root[data-density=compact]{--ui-text-micro: 9px;--ui-text-caption-sm: 10px;--ui-text-caption: 11px;--ui-text-sm: 12px;--ui-text-body: 13px;--ui-text-md: 15px;--ui-text-lg: 17px;--ui-leading: 1.4;--ui-leading-tight: 1.25;--ui-weight-control: var(--ui-weight-strong);--ui-space-1: 4px;--ui-space-2: 6px;--ui-space-3: 8px;--ui-space-4: 12px;--ui-space-5: 16px;--ui-gutter: 12px;--ui-target: 32px;--ui-target-sm: 28px;--ui-target-xs: 24px;--ui-field-h: 32px;--ui-badge-h: 18px;--ui-panel-scale: 1}@media(pointer:coarse){:root[data-density=compact]{--ui-target: 44px;--ui-target-sm: 36px;--ui-target-xs: 28px;--ui-field-h: 40px}}@media(prefers-contrast:more){:root,:root[data-theme=dark]{--ui-mat-bg: rgb(20 24 27);--ui-mat-border: rgb(255 255 255 / .32);--ui-hair: rgb(255 255 255 / .28);--tw-text-secondary: 210 218 223;--tw-text-tertiary: 190 200 207}:root[data-theme=light]{--ui-mat-bg: rgb(255 255 255);--ui-mat-border: rgb(9 38 42 / .4);--ui-hair: rgb(9 38 42 / .32);--tw-text-secondary: 40 46 58;--tw-text-tertiary: 52 58 72}}@media(forced-colors:active){:root,:root[data-theme=dark],:root[data-theme=light]{--ui-mat-border: CanvasText;--ui-hair: CanvasText;--ui-focus: 2px solid Highlight}}@media(prefers-reduced-motion:reduce){:root{--ui-dur-fast: 0ms;--ui-dur: 0ms;--ui-dur-slow: 0ms}}:root{color-scheme:dark;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bg-dark: #060913;--bg-panel: rgba(8, 14, 28, .4);--bg-panel-solid: #090e1a;--bg-card: rgba(18, 28, 52, .22);--bg-card-hover: rgba(28, 44, 76, .4);--border-panel: rgba(255, 255, 255, .12);--border-card: rgba(255, 255, 255, .08);--border-active: rgba(56, 189, 248, .65);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--color-power: #eab308;--color-gas: #f97316;--color-water: #06b6d4;--color-bore: #ef4444;--color-accent: #38bdf8;--color-accent-glow: rgba(56, 189, 248, .35);--color-success: #10b981;--color-purple: #a855f7;--color-warning: #f59e0b;--color-danger: #ef4444;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-pill: 9999px;--shadow-hud: 0 16px 36px rgba(0, 0, 0, .5);--shadow-card: 0 4px 12px rgba(0, 0, 0, .3);--shadow-elevation-1: 0 14px 34px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .2);--shadow-elevation-2: 0 16px 40px rgba(0, 0, 0, .75), 0 0 20px rgba(56, 189, 248, .16), inset 0 1px 0 rgba(255, 255, 255, .15);--shadow-elevation-3: 0 30px 70px -10px rgba(0, 0, 0, .9), 0 0 30px rgba(56, 189, 248, .2);--backdrop-sm: blur(12px);--backdrop-md: blur(16px);--backdrop-lg: blur(24px) saturate(190%) contrast(105%);--backdrop-xl: blur(28px) saturate(190%) contrast(105%);--glass-card-bg: rgba(15, 23, 42, .9);--glass-card-border: 1px solid rgba(255, 255, 255, .12);--glass-card-radius: 12px;--glass-card-shadow: 0 16px 32px -4px rgba(0, 0, 0, .42), 0 0 0 1px rgba(255, 255, 255, .05);--glass-card-backdrop: blur(16px);--glass-surface-panel: linear-gradient(135deg, rgba(255, 255, 255, .08) 0%, rgba(255, 255, 255, .02) 100%), rgba(8, 14, 28, .85);--glass-surface-modal: linear-gradient(135deg, rgba(8, 14, 28, .94) 0%, rgba(15, 23, 42, .96) 100%);--glass-surface-dock: linear-gradient(135deg, rgba(255, 255, 255, .08) 0%, rgba(255, 255, 255, .02) 100%), rgba(8, 14, 28, .75)}:root:not([data-theme=light]){--radius-sm: var(--ui-radius-sm);--color-water: var(--ui-water)}.app-boot-curtain{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:99999;background-color:var(--bg-dark, #060913);display:flex;align-items:center;justify-content:center;opacity:1;visibility:visible;transition:opacity .35s cubic-bezier(.16,1,.3,1),visibility .35s ease;pointer-events:auto;user-select:none}.app-boot-curtain.boot-curtain-fade{opacity:0;visibility:hidden;pointer-events:none}.app-boot-curtain.boot-curtain-hidden{display:none!important}.boot-curtain-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,#38bdf814,#060913fa 70%);pointer-events:none}.boot-curtain-container{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px;max-width:440px}.boot-brand-emblem{position:relative;width:64px;height:64px;margin-bottom:20px;border-radius:18px;background:#0f172acc;border:1px solid rgba(56,189,248,.35);display:flex;align-items:center;justify-content:center;box-shadow:0 0 32px #38bdf840,inset 0 1px #fff3}.boot-logo-icon{width:42px;height:42px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(56,189,248,.4))}.boot-pulse-ring{position:absolute;inset:-6px;border-radius:24px;border:1px solid rgba(56,189,248,.4);animation:bootRingPulse 2s cubic-bezier(.16,1,.3,1) infinite;pointer-events:none}@keyframes bootRingPulse{0%{transform:scale(.92);opacity:.8}50%{transform:scale(1.18);opacity:.1}to{transform:scale(.92);opacity:.8}}.boot-brand-title{font-size:22px;font-weight:800;letter-spacing:-.02em;background:linear-gradient(180deg,#fff,#cbd5e1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:6px}.boot-brand-sub{font-size:12px;font-weight:500;color:#94a3b8;letter-spacing:.02em;margin-bottom:24px}.boot-loader-track{width:200px;height:3px;background:#ffffff14;border-radius:999px;overflow:hidden;position:relative;margin-bottom:14px}.boot-loader-bar{position:absolute;top:0;left:0;height:100%;width:45%;background:linear-gradient(90deg,#38bdf8,#10b981);border-radius:999px;box-shadow:0 0 10px #38bdf899;animation:bootBarIndeterminate 1.4s ease-in-out infinite}@keyframes bootBarIndeterminate{0%{left:-45%}50%{left:45%;width:60%}to{left:100%;width:30%}}.boot-status-text{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b;min-height:14px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;overflow:hidden;position:fixed;background-color:var(--bg-dark, #060913);font-family:var(--font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);color:var(--text-primary, #f8fafc);-webkit-font-smoothing:antialiased}.mobile-app{position:relative;width:100vw;height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column}.mobile-header{position:fixed;top:0;left:0;right:0;height:calc(56px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);padding-left:14px;padding-right:14px;display:flex;align-items:center;justify-content:space-between;background:#080e1cc7;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(255,255,255,.12);z-index:100}.mobile-header-left{display:flex;align-items:center;gap:10px;min-width:0}.mobile-brand-pill{display:flex;align-items:center;gap:8px;text-decoration:none;color:#fff;flex-shrink:0}.mobile-brand-logo{width:28px;height:28px;object-fit:contain;border-radius:6px}.mobile-brand-name{font-weight:700;font-size:15px;letter-spacing:-.02em;background:linear-gradient(135deg,#fff 40%,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}@media(max-width:420px){.mobile-brand-name{display:none}}.mobile-project-picker-btn{display:flex;align-items:center;gap:6px;background:#ffffff14;border:1px solid rgba(255,255,255,.14);border-radius:9999px;padding:6px 12px;color:#f8fafc;font-size:13px;font-weight:600;cursor:pointer;min-height:38px;max-width:170px;min-width:0;transition:background .15s ease,border-color .15s ease}@media(max-width:420px){.mobile-project-picker-btn{max-width:145px}}.mobile-project-picker-btn:active{background:#38bdf833;border-color:#38bdf880}.mobile-project-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-chevron{color:#94a3b8;flex-shrink:0}.mobile-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.mobile-capex-badge{display:flex;flex-direction:column;align-items:flex-end;background:#10b9811f;border:1px solid rgba(16,185,129,.35);border-radius:8px;padding:3px 8px;min-height:38px;justify-content:center}.mobile-capex-sub{font-size:9px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:#10b981}.mobile-capex-val{font-family:var(--font-mono, monospace);font-size:13px;font-weight:700;color:#34d399}.mobile-icon-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#ffffff14;border:1px solid rgba(255,255,255,.14);border-radius:10px;color:#f8fafc;cursor:pointer;transition:all .15s ease}.mobile-icon-btn:active{background:#38bdf840;border-color:#38bdf899;transform:scale(.96)}.mobile-map-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.mobile-map{width:100%;height:100%}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right{margin-bottom:calc(90px + env(safe-area-inset-bottom,0px))}.maplibregl-ctrl-attrib{display:none!important}.mobile-quick-actions{position:absolute;right:16px;bottom:calc(96px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:12px;z-index:30;pointer-events:auto}.mobile-fab{width:48px;height:48px;border-radius:50%;background:#0f172ad9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 24px #00000080,inset 0 1px #fff3;color:#f8fafc;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:transform .15s ease,background .15s ease}.mobile-fab:active{transform:scale(.92);background:#38bdf84d}.mobile-fab.active{background:#38bdf859;border-color:#38bdf8b3;color:#38bdf8;box-shadow:0 0 16px #38bdf866}.fab-label{font-size:8px;font-weight:800;letter-spacing:.05em;margin-top:-2px;color:#94a3b8}.mobile-measure-hud{position:absolute;top:calc(68px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);background:#0f172ae6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(56,189,248,.5);box-shadow:0 8px 24px #00000080;border-radius:9999px;padding:8px 16px;display:flex;align-items:center;gap:12px;z-index:45;color:#f8fafc;font-size:13px;font-weight:600}.mobile-measure-hud.hidden{display:none!important}.measure-hud-content{display:flex;align-items:center;gap:8px}.measure-hud-close{background:#ffffff26;border:none;border-radius:50%;width:22px;height:22px;color:#fff;font-size:11px;cursor:pointer}.mobile-sheet{position:fixed;left:0;right:0;bottom:0;height:88vh;height:88dvh;background:#0a101ee0;backdrop-filter:blur(24px) saturate(190%);-webkit-backdrop-filter:blur(24px) saturate(190%);border-top:1px solid rgba(255,255,255,.16);border-top-left-radius:20px;border-top-right-radius:20px;box-shadow:0 -12px 36px #000000a6;z-index:50;display:flex;flex-direction:column;touch-action:none;will-change:transform;transition:transform .32s cubic-bezier(.16,1,.3,1)}.mobile-sheet[data-state=peek]{transform:translateY(calc(88vh - 84px - env(safe-area-inset-bottom,0px)));transform:translateY(calc(88dvh - 84px - env(safe-area-inset-bottom,0px)))}.mobile-sheet[data-state=half]{transform:translateY(42vh);transform:translateY(42dvh)}.mobile-sheet[data-state=full]{transform:translateY(0)}.mobile-sheet-drag-zone{padding:10px 16px 12px;cursor:grab;user-select:none;flex-shrink:0}.mobile-sheet-pill-handle{width:38px;height:4px;border-radius:9999px;background:#ffffff4d;margin:0 auto 10px}.mobile-sheet-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.mobile-sheet-title{font-size:16px;font-weight:700;letter-spacing:-.01em;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-sheet-badge{font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;background:#38bdf829;border:1px solid rgba(56,189,248,.3);color:#38bdf8;flex-shrink:0}.mobile-sheet-stats-bar{display:flex;align-items:center;gap:6px;font-size:12px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-sheet-stat{font-weight:500}.mobile-stat-sep{color:#fff3}.mobile-sheet-scroll-container{flex:1;overflow-y:auto;overflow-x:hidden;padding:12px 16px calc(24px + env(safe-area-inset-bottom,0px));touch-action:pan-y;-webkit-overflow-scrolling:touch}.mobile-routing-toggle-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;margin-bottom:16px}.routing-toggle-label{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.toggle-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8}.toggle-desc{font-size:11px;color:#64748b}.routing-segmented-pill{display:grid;grid-template-columns:1fr 1fr;background:#00000059;border-radius:8px;padding:3px;gap:4px}.segment-btn{border:none;background:transparent;color:#94a3b8;font-size:13px;font-weight:600;padding:8px 12px;border-radius:6px;cursor:pointer;min-height:36px;transition:all .15s ease}.segment-btn.active{background:#38bdf840;color:#fff;box-shadow:0 2px 8px #0000004d}.mobile-section-header{display:flex;align-items:center;justify-content:space-between;margin:16px 0 10px}.section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#cbd5e1}.section-badge{font-size:11px;color:#64748b;font-family:var(--font-mono, monospace)}.mobile-matrix-grid{display:flex;flex-direction:column;gap:10px}.mobile-util-card{background:#0f172ab3;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px 14px;box-shadow:0 4px 12px #00000040}.power-card{border-left:3px solid #eab308}.gas-card{border-left:3px solid #f97316}.water-card{border-left:3px solid #06b6d4}.fiber-card{border-left:3px solid #a855f7}.util-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px}.util-icon-title{display:flex;align-items:center;gap:10px}.util-icon{font-size:18px;line-height:1}.util-names{display:flex;flex-direction:column;gap:1px}.util-name{font-size:14px;font-weight:700;color:#f8fafc}.util-sub{font-size:11px;color:#94a3b8}.util-capex{font-family:var(--font-mono, monospace);font-size:14px;font-weight:700;color:#38bdf8}.util-card-body{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;background:#0003;border-radius:8px;padding:8px}.util-metric-chip{display:flex;flex-direction:column;gap:2px}.chip-k{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.chip-v{font-size:11px;font-weight:600;color:#e2e8f0;font-family:var(--font-mono, monospace);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-diligence-card{background:#0f172ab3;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.diligence-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.05)}.diligence-row:last-child{border-bottom:none;padding-bottom:0}.diligence-k{color:#94a3b8;font-weight:500}.diligence-v{font-weight:600;color:#f8fafc;font-family:var(--font-mono, monospace)}.text-success{color:#34d399!important}.mobile-actions-card{display:flex;flex-direction:column;gap:10px;margin-top:16px}.mobile-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;border-radius:10px;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;border:none;transition:all .15s ease}.mobile-btn.primary{background:#0284c7;color:#fff;box-shadow:0 4px 14px #0284c766}.mobile-btn.primary:active{background:#0369a1;transform:scale(.98)}.mobile-btn.secondary{background:#ffffff14;border:1px solid rgba(255,255,255,.14);color:#f8fafc}.mobile-btn.secondary:active{background:#ffffff26;transform:scale(.98)}.mobile-drawer-backdrop{position:fixed;inset:0;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:200;transition:opacity .2s ease}.mobile-drawer{position:fixed;left:0;right:0;bottom:0;max-height:75vh;background:#0f172af5;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border-top:1px solid rgba(255,255,255,.18);border-top-left-radius:20px;border-top-right-radius:20px;box-shadow:0 -16px 40px #000000bf;z-index:210;display:flex;flex-direction:column;padding:16px 20px calc(24px + env(safe-area-inset-bottom,0px));transition:transform .28s cubic-bezier(.16,1,.3,1)}.mobile-drawer-backdrop.hidden,.mobile-drawer.hidden{display:none!important}.mobile-drawer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1)}.mobile-drawer-header h3{font-size:16px;font-weight:700;color:#fff}.drawer-close-btn{background:#ffffff1a;border:none;border-radius:50%;width:32px;height:32px;color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}.mobile-drawer-body{overflow-y:auto;display:flex;flex-direction:column;gap:12px}.drawer-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;margin-bottom:6px}.basemap-pill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.basemap-choice{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:12px 8px;color:#cbd5e1;font-size:12px;font-weight:600;cursor:pointer;text-align:center;transition:all .15s ease}.basemap-choice.active{background:#38bdf833;border-color:#38bdf899;color:#38bdf8;box-shadow:0 0 12px #38bdf840}.layer-toggle-list{display:flex;flex-direction:column;gap:8px}.layer-checkbox-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:8px;cursor:pointer}.layer-checkbox-item input[type=checkbox]{width:18px;height:18px;accent-color:#0284c7}.layer-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0}.layer-name{font-size:13px;font-weight:500;color:#f1f5f9}.project-select-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;cursor:pointer;transition:all .15s ease;min-height:52px}.project-select-item.active{background:#38bdf826;border-color:#38bdf880}.project-select-item:active{background:#38bdf840}.project-item-info{display:flex;flex-direction:column;gap:3px}.project-item-name{font-size:14px;font-weight:600;color:#fff}.project-item-sub{font-size:11px;color:#94a3b8}.project-item-check{color:#38bdf8;font-size:16px;font-weight:700}@media(min-width:641px){.mobile-header{height:60px;padding-left:20px;padding-right:20px}.mobile-project-picker-btn{max-width:260px}.mobile-sheet{inset:76px auto 24px 24px;width:410px;height:auto;max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);border-radius:16px;border:1px solid rgba(255,255,255,.16);transform:none!important;box-shadow:0 20px 48px #000000b3,inset 0 1px #fff3}.mobile-sheet-pill-handle{display:none}.mobile-sheet-drag-zone{cursor:default;padding:16px 18px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.mobile-quick-actions{right:24px;bottom:32px}.mobile-drawer{left:50%;transform:translate(-50%);width:480px;border-radius:20px;bottom:40px;border:1px solid rgba(255,255,255,.2)}}
