@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg:#08101b;--panel:#080e18f5;--panel-strong:#0a121efb;--border:#ffffff14;--text:#f8fafc;--muted:#94a3b8;--accent:#38bdf8;--accent-2:#14b8a6;--accent-3:#f97316;--danger:#f87171;--shadow:0 18px 50px #00000059;--radius-lg:20px;--radius-md:14px;--radius-sm:10px;--safe-bottom:max(16px, env(safe-area-inset-bottom));color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,system-ui,sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}.glass-panel{-webkit-backdrop-filter:blur(16px);background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow)}.app-shell,.map-shell{position:fixed;inset:0}.app-boot{background:radial-gradient(circle at top, #38bdf81f, transparent 30%), var(--bg);place-items:center;min-height:100dvh;display:grid}.loading-overlay{z-index:120;background:#08101bd1;place-items:center;display:grid;position:fixed;inset:0}.loading-card{border-radius:var(--radius-lg);background:var(--panel-strong);border:1px solid var(--border);text-align:center;width:min(92vw,360px);padding:24px}.loading-logo{margin-bottom:8px;font-size:32px;display:inline-flex}.loading-title{margin:0;font-size:1.35rem}.loading-subtitle,.loading-step-label,.panel-hint{color:var(--muted)}.loading-progress-track{background:#ffffff14;border-radius:999px;height:6px;margin:16px 0 10px;overflow:hidden}.loading-progress-bar{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--accent-2));height:100%}.loading-error{color:#fdba74;margin-top:12px;font-size:.92rem}.sidebar{z-index:60;border-radius:24px;width:min(392px,100vw - 32px);position:fixed;top:16px;bottom:88px;left:16px;overflow:hidden}.sidebar-header,.sidebar-scroll,.sidebar-section,.workspace-card,.workspace-section{flex-direction:column;display:flex}.sidebar-header{border-bottom:1px solid var(--border);flex-direction:row;justify-content:space-between;align-items:flex-start;padding:20px 20px 16px}.sidebar-header h1{margin:0;font-size:1.15rem}.sidebar-header p,.workspace-header p,.list-subtitle,.workspace-meta{color:var(--muted);margin:4px 0 0;font-size:.9rem}.sidebar-scroll{gap:16px;height:calc(100% - 86px);padding:16px 20px 20px;overflow:auto}.mobile-section-nav{z-index:3;background:var(--panel);border-bottom:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:-16px -20px 0;padding:12px 20px;display:none;position:sticky;top:0}.mobile-section-chip{border:1px solid var(--border);min-height:42px;color:var(--text);background:#ffffff0d;border-radius:12px;justify-content:center;align-items:center;gap:6px;font-size:.82rem;display:inline-flex}.sidebar-section,.workspace-card{background:#121c2be6;border-radius:16px;gap:12px;padding:14px}.workspace-card--manager{background:#0c141ffb;position:relative}.section-title,.field-label,.workspace-header h2{font-size:.93rem;font-weight:600}.field-label{flex-direction:column;gap:8px;display:flex}.field-label--compact{gap:6px}.search-shell{border:1px solid var(--border);background:#ffffff0f;border-radius:12px;align-items:center;gap:8px;min-height:46px;padding:0 12px;display:flex}.search-input,.dropdown{width:100%;min-height:46px;color:var(--text);background:0 0;border:0;outline:0}.dropdown{border:1px solid var(--border);background:#ffffff0f;border-radius:12px;padding:0 12px}.search-results,.proximity-list,.detail-list,.layer-list,.tool-grid,.workspace-actions,.detail-advanced{gap:10px;display:grid}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip,.secondary-btn,.primary-btn,.danger-btn,.tool-btn,.logout-btn,.list-row,.toggle-row,.icon-btn,.status-icon-btn{border:1px solid var(--border);min-height:44px;color:var(--text);background:#ffffff0f;border-radius:12px}.chip,.secondary-btn,.primary-btn,.danger-btn,.tool-btn,.status-icon-btn{justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.icon-only-btn{min-width:44px;padding:0}.chip--active,.tool-btn--active,.primary-btn{background:#38bdf829;border-color:#38bdf873}.danger-btn{color:#fecaca;background:#f8717129;border-color:#f8717173}.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-btn{justify-content:flex-start;padding-inline:14px}.layer-list{gap:8px}.toggle-row,.list-row{text-align:left;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.metric-card span,.stat-label,.detail-label,.tooltip-row span,.workspace-meta,.panel-footer span{color:var(--muted);font-size:.85rem}.workspace-header,.panel-toolbar,.panel-header,.panel-header-title,.panel-header-actions,.radius-header,.detail-row,.tooltip-row,.workspace-status-row,.workspace-switcher,.workspace-section-header,.workspace-dialog-header,.workspace-dialog-actions,.save-toast-title,.save-toast-actions{align-items:center;display:flex}.workspace-header,.panel-toolbar,.panel-header,.panel-header-actions,.radius-header,.workspace-status-row,.workspace-switcher,.workspace-section-header,.workspace-dialog-header,.workspace-dialog-actions{justify-content:space-between}.workspace-sticky-top{background:0 0;border-bottom:1px solid #ffffff0f;gap:12px;margin-bottom:6px;padding-bottom:8px;display:grid;position:static}.workspace-header--manager{align-items:flex-start}.workspace-status-row{flex-wrap:wrap;gap:10px}.workspace-status-copy{color:var(--muted);font-size:.84rem}.status-badge{border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;min-height:30px;padding:0 10px;font-size:.82rem;display:inline-flex}.status-badge--neutral{color:var(--muted)}.status-badge--info{color:#bae6fd;border-color:#38bdf859}.status-badge--success{color:#bbf7d0;border-color:#22c55e59}.status-badge--warning{color:#fde68a;border-color:#facc1559}.status-badge--danger{color:#fecaca;border-color:#f8717159}.workspace-switcher{align-items:flex-end;gap:10px}.workspace-switcher .field-label{flex:1}.workspace-mobile-tabs{gap:8px}.workspace-tab{border:1px solid var(--border);min-height:40px;color:var(--text);background:#ffffff0f;border-radius:12px;flex:1 1 0}.workspace-tab--active{background:#38bdf829;border-color:#38bdf873}.workspace-upload{width:100%}.workspace-dropzone{background:#38bdf80d;border:1px dashed #38bdf859;border-radius:14px;gap:8px;padding:10px;display:grid}.workspace-dropzone--active{background:#38bdf81f;border-color:#38bdf8cc}.workspace-feedback-list{gap:8px;display:grid}.workspace-feedback{border-radius:12px;padding:10px 12px;font-size:.88rem}.workspace-feedback--success{color:#bbf7d0;background:#22c55e1f}.workspace-feedback--warning{color:#fde68a;background:#facc151f}.workspace-feedback--error{color:#fecaca;background:#f871711f}.workspace-item{background:#ffffff0d;border-radius:12px;gap:8px;padding:10px;display:grid}.workspace-item--dataset,.workspace-item--saved{grid-template-columns:1fr;align-items:center}.workspace-item-main{gap:6px;min-width:0;display:grid}.workspace-item-title{font-weight:600}.workspace-toggle{align-items:center;gap:10px;font-weight:600;display:flex}.sync-pill,.sync-pill{border:1px solid var(--border);color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.82rem;display:inline-flex}.workspace-group{gap:10px;display:grid}.workspace-summary-strip,.workspace-layer-title-row{align-items:center;gap:8px;display:flex}.workspace-summary-strip{flex-wrap:wrap}.workspace-layer-title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.workspace-layer-card{border:1px solid #ffffff0d;gap:8px}.workspace-layer-card--visible{background:#f9731614;border-color:#f9731638}.workspace-actions--layer-primary{grid-template-columns:1fr}.workspace-actions--layer-secondary{border-top:1px solid #ffffff0f;grid-template-columns:1fr;padding-top:4px}.workspace-actions--layer-primary .secondary-btn,.workspace-actions--layer-primary .primary-btn,.workspace-actions--layer-secondary .secondary-btn{justify-content:flex-start;min-height:38px;padding-inline:10px}.workspace-item-title{line-height:1.15}.workspace-meta{line-height:1.25}.workspace-group-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.82rem}.workspace-dialog-backdrop{z-index:85;-webkit-backdrop-filter:blur(4px);background:#08101b4d;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.workspace-dialog{border-radius:20px;gap:14px;width:min(100%,420px);padding:16px;display:grid}.workspace-dialog-input{min-height:44px}.save-toast{right:16px;bottom:calc(var(--safe-bottom) + 72px);z-index:69;border-radius:18px;gap:12px;width:min(360px,100vw - 32px);padding:14px;display:grid;position:fixed}.save-toast-copy{gap:4px;display:grid}.save-toast-title{gap:8px;font-weight:600}.save-toast-subtitle{color:var(--muted);font-size:.88rem}.save-toast-actions{flex-wrap:wrap;gap:8px}.save-toast-editor{gap:10px;display:grid}.logout-btn{color:#fecaca;background:#f871711f;justify-content:center;align-items:center;gap:8px;width:100%;display:inline-flex}.panel-sheet{right:16px;bottom:calc(var(--safe-bottom) + 72px);z-index:55;border-radius:24px;width:min(460px,100vw - 468px);min-width:360px;max-height:min(68dvh,720px);position:fixed;overflow:hidden}.panel-header{border-bottom:1px solid var(--border);gap:12px;padding:16px 18px}.panel-header-title{gap:10px;font-weight:600}.panel-scroll{max-height:inherit;gap:14px;padding:16px 18px 18px;display:grid;overflow:hidden auto}.detail-list{gap:8px}.detail-row{border-bottom:1px solid #ffffff0d;justify-content:space-between;gap:12px;padding:10px 0}.panel-toolbar{flex-wrap:wrap;gap:10px}.panel-toolbar>button{flex:140px}.detail-value{text-align:right;overflow-wrap:anywhere;word-break:break-word;max-width:58%}.metric-banner{color:#fde68a;background:#facc151f;border-radius:12px;align-items:center;gap:8px;padding:10px 12px;display:inline-flex}.metric-banner--info{color:#bae6fd;background:#38bdf81a}.inspect-hero{gap:4px;display:grid}.inspect-kicker{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:.72rem}.inspect-title{font-size:1.1rem;font-weight:700}.inspect-subtitle{color:var(--muted);font-size:.92rem}.inspect-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.inspect-summary-card{background:#ffffff0a;border:1px solid #ffffff0d;border-radius:14px;gap:6px;padding:12px;display:grid}.inspect-summary-card strong{overflow-wrap:anywhere;word-break:break-word;font-size:.98rem}.map-legend{z-index:58;border-radius:18px;width:min(280px,100vw - 32px);position:fixed;top:16px;right:16px;overflow:hidden}.map-legend-toggle{width:100%;min-height:46px;color:var(--text);background:0 0;border:0;justify-content:space-between;align-items:center;padding:0 14px;display:flex}.map-legend-title,.map-legend-row{align-items:center;gap:10px;display:flex}.map-legend-list{gap:10px;padding:0 14px 14px;display:grid}.map-legend-row{font-size:.88rem}.legend-swatch{border:2px solid #ffffffb8;border-radius:999px;flex:none;width:18px;height:18px;display:inline-flex}.legend-swatch--line-500,.legend-swatch--line-230,.legend-swatch--line-132{border-radius:999px;width:22px;height:0}.legend-swatch--line-500{border-color:#ff69b4}.legend-swatch--line-230{border-color:#ef4444}.legend-swatch--line-132{border-color:#3b82f6}.legend-swatch--substation{clip-path:polygon(50% 0,100% 100%,0 100%);background:#3b82f6;border-radius:0}.legend-swatch--plant{background:#fbbf24}.legend-swatch--hydro{background:#2dd4bf}.legend-swatch--workspace{background:#f97316}.legend-swatch--saved{background:#fbbf24;box-shadow:inset 0 0 0 2px #08101b8c}.legend-swatch--cluster{background:#2563eb}.panel-footer{justify-content:space-between;align-items:baseline;padding-top:8px;display:flex}.radius-control{gap:10px;display:grid}.radius-slider{accent-color:#a78bfa;width:100%}.list-row strong,.detail-value,.stat-value,.list-title{font-weight:600}.map-tooltip{pointer-events:none;z-index:45;border-radius:14px;min-width:220px;max-width:280px;padding:12px;position:absolute;transform:translate(-50%,calc(-100% - 12px))}.tooltip-title{margin-bottom:8px;font-weight:600}.tooltip-row{justify-content:space-between;gap:14px}.map-shell .maplibregl-ctrl-bottom-right,.map-shell .maplibregl-ctrl-bottom-left{bottom:calc(var(--safe-bottom) + 16px)}.map-shell .maplibregl-ctrl-attrib{-webkit-backdrop-filter:blur(10px);color:var(--muted);background:#0c141feb;border:1px solid #ffffff14;border-radius:999px;margin:0 16px 0 0;padding:0;overflow:hidden;box-shadow:0 10px 28px #0000002e}.map-shell .maplibregl-ctrl-attrib-button{width:34px;height:34px;color:var(--text);background-position:50%;background-repeat:no-repeat;background-size:18px 18px}.map-shell .maplibregl-ctrl-attrib-inner,.map-shell .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{color:var(--muted);padding:10px 14px;font-size:.8rem}.map-shell .maplibregl-ctrl-attrib a{color:#bae6fd}.map-shell .maplibregl-ctrl-attrib.maplibregl-compact{min-height:34px}.map-shell .maplibregl-ctrl-attrib:not(.maplibregl-compact){max-width:280px}.floating-actions{left:16px;right:16px;bottom:var(--safe-bottom);z-index:65;pointer-events:none;gap:10px;display:flex;position:fixed}.floating-actions .mobile-only{margin-right:auto}.floating-btn,.icon-btn{border:1px solid var(--border);background:var(--panel);width:44px;height:44px;color:var(--text);box-shadow:var(--shadow);pointer-events:auto;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.mobile-only{display:none}.desktop-only{display:inline-flex}.mobile-control-menu{display:none}.substation-hint,.selection-chip{z-index:56;border-radius:999px;padding:10px 14px;position:fixed;left:50%;transform:translate(-50%)}.substation-hint{bottom:calc(var(--safe-bottom) + 146px)}.selection-chip{top:16px}.login-root{background:radial-gradient(circle at top, #38bdf81f, transparent 28%), var(--bg);place-items:center;display:grid;position:fixed;inset:0}.login-card{background:var(--panel-strong);border:1px solid var(--border);width:min(92vw,420px);box-shadow:var(--shadow);border-radius:24px;padding:36px}.login-title{margin:0}.login-subtitle{color:var(--muted);margin:6px 0 18px}.login-form{gap:10px;display:grid}.login-label{align-items:center;gap:8px;font-size:.92rem;display:inline-flex}.login-input,.login-btn{border-radius:12px;min-height:46px}.login-input{border:1px solid var(--border);width:100%;color:var(--text);background:#ffffff0a;padding:0 14px}.login-pw-wrap{position:relative}.login-pw-toggle{width:32px;height:32px;color:var(--muted);background:0 0;border:0;border-radius:10px;position:absolute;top:8px;right:8px}.login-btn{color:var(--text);background:#38bdf82e;border:1px solid #38bdf866}.login-error{color:#fdba74;align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.location-toast{left:16px;right:16px;bottom:calc(var(--safe-bottom) + 64px);z-index:68;border-radius:14px;align-items:center;gap:8px;padding:12px 14px;display:inline-flex;position:fixed}.location-toast--loading{color:#bae6fd}.location-toast--success{color:#bbf7d0}.location-toast--error{color:#fecaca}.sidebar-overlay{display:none}@media (width<=960px){.sidebar{border-radius:0 24px 24px 0;width:min(92vw,360px);transition:transform .22s;inset:0 auto 0 0;transform:translate(-105%)}.sidebar--open{transform:translate(0)}.sidebar-overlay{z-index:50;-webkit-backdrop-filter:blur(4px);background:#08101b38;border:0;transition:background .22s;display:block;position:fixed;inset:0}.status-mobile-only,.mobile-only{display:inline-flex}.desktop-only{display:none}.panel-sheet{border-radius:24px;width:auto;min-width:0;max-height:62dvh;bottom:12px;left:12px;right:12px}.floating-actions{bottom:24px;left:12px;right:auto}.mobile-control-menu{z-index:66;-webkit-backdrop-filter:blur(10px);background:#0a121ee6;border:1px solid #ffffff14;border-radius:18px;gap:6px;width:min(220px,100vw - 24px);padding:6px;display:grid;position:fixed;bottom:24px;left:12px;box-shadow:0 12px 28px #0000002e}.mobile-control-option{color:#dbe6f2;background:0 0;border:0;border-radius:12px;justify-content:flex-start;align-items:center;gap:8px;min-height:42px;padding:0 12px;font-weight:500;display:inline-flex}.map-legend{width:min(240px,100vw - 24px);top:12px;right:12px}.map-shell .maplibregl-ctrl-bottom-right,.map-shell .maplibregl-ctrl-bottom-left{bottom:24px}.map-shell .maplibregl-ctrl-attrib{border-radius:999px;margin-right:12px}.mobile-section-nav{display:grid}.location-toast{bottom:68px;left:12px;right:12px}.sidebar-scroll{padding-bottom:96px}.workspace-card--manager{gap:10px;padding:12px}.workspace-sticky-top{background:0 0;gap:10px;padding-bottom:0;position:static}.workspace-header--manager,.workspace-status-row,.workspace-switcher,.workspace-section-header,.workspace-layer-title-row{flex-direction:column;align-items:stretch}.workspace-status-copy{font-size:.8rem}.workspace-mobile-tabs{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.workspace-tab{min-height:38px;font-size:.86rem}.workspace-section{gap:10px;padding:12px}.workspace-dropzone{padding:12px}.workspace-summary-strip,.workspace-actions--layer-primary,.workspace-actions--layer-secondary,.workspace-actions--saved{grid-template-columns:1fr}.workspace-item,.workspace-layer-card{padding:9px}.workspace-meta,.panel-hint{line-height:1.35}.sync-pill,.status-badge{align-self:flex-start}}@media (width<=720px){.tool-grid,.workspace-actions{grid-template-columns:1fr}.sidebar-header,.panel-header,.panel-scroll,.status-strip,.sidebar-scroll{padding-inline:14px}.inspect-summary-grid{grid-template-columns:1fr}.panel-sheet{max-height:68dvh}.workspace-item--dataset,.workspace-item--saved,.workspace-switcher{grid-template-columns:1fr}.workspace-actions--dataset,.workspace-actions--saved{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-actions--layer-primary,.workspace-actions--layer-secondary{grid-template-columns:1fr}.sidebar{width:min(94vw,350px)}.sidebar-header,.sidebar-scroll{padding-inline:12px}.save-toast{width:auto;bottom:84px;left:12px;right:12px}}
