.ui-skeleton{position:relative;overflow:hidden;border-radius:var(--radius-sm);background-color:var(--surface-inset);background-image:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--surface-card) 70%,transparent) 50%,transparent 100%);background-size:200% 100%;animation:skeleton-sweep 1.4s var(--ease-in-out) infinite}@media (prefers-reduced-motion: reduce){.ui-skeleton{background-image:none;animation:none}}.ui-skeleton--text{height:.75rem;border-radius:var(--radius-pill)}.ui-skeleton--circle{border-radius:var(--radius-pill)}.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:0 var(--space-4);height:34px;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.ui-button:active:not(:disabled){transform:scale(.98)}@media (prefers-reduced-motion: reduce){.ui-button:active:not(:disabled){transform:none}}.ui-button:disabled{cursor:not-allowed;opacity:.5}.ui-button[data-busy=true]{cursor:progress;opacity:1}.ui-button--solid{background:var(--control-solid-bg);color:var(--control-solid-fg)}.ui-button--solid:hover:not(:disabled){background:var(--control-solid-bg-hover)}.ui-button--outline{background:var(--surface-card);border-color:var(--border-strong);color:var(--text-primary)}.ui-button--outline:hover:not(:disabled){background:var(--surface-hover);border-color:var(--text-muted)}.ui-button--ghost{background:transparent;color:var(--text-secondary)}.ui-button--ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.ui-button--danger{background:var(--surface-card);border-color:color-mix(in srgb,var(--color-signal-down) 35%,transparent);color:var(--color-signal-down)}.ui-button--danger:hover:not(:disabled){background:var(--color-signal-down-soft);border-color:var(--color-signal-down)}.ui-button--sm{height:28px;padding:0 var(--space-3);font-size:var(--text-xs)}.ui-button--lg{height:40px;padding:0 var(--space-5);font-size:var(--text-base)}.ui-button--block{width:100%}.ui-button__spinner{width:14px;height:14px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:var(--radius-pill);animation:spin .64s linear infinite;flex:none}.ui-icon-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.ui-icon-button:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.ui-icon-button:disabled{opacity:.45;cursor:not-allowed}.ui-icon-button--bordered{border-color:var(--border-subtle);background:var(--surface-card)}.ui-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.ui-card--interactive{cursor:pointer;text-align:left;width:100%;padding:0;font:inherit;color:inherit;transition:box-shadow var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard)}.ui-card--interactive:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-1px)}@media (prefers-reduced-motion: reduce){.ui-card--interactive:hover{transform:none}}.ui-card--selected{border-color:var(--text-primary);box-shadow:var(--shadow-sm)}.ui-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface-inset);color:var(--text-secondary);font-size:var(--text-xs);font-weight:500;line-height:1.5;white-space:nowrap}.ui-badge--outline{background:transparent}.ui-badge--strong{background:var(--surface-inverse);border-color:var(--surface-inverse);color:var(--text-inverse)}.ui-badge--working{background:transparent;border-style:dashed;color:var(--text-secondary)}.ui-badge__spinner{width:9px;height:9px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:var(--radius-pill);animation:spin .64s linear infinite;flex:none}.ui-badge--up{background:var(--color-signal-up-soft);border-color:color-mix(in srgb,var(--color-signal-up) 30%,transparent);color:var(--color-signal-up)}.ui-badge--down{background:var(--color-signal-down-soft);border-color:color-mix(in srgb,var(--color-signal-down) 30%,transparent);color:var(--color-signal-down)}.ui-field{display:flex;flex-direction:column;gap:var(--space-2)}.ui-field__label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);letter-spacing:var(--tracking-wide);text-transform:uppercase}.ui-field__hint{font-size:var(--text-xs);color:var(--text-muted)}.ui-field__error{display:flex;align-items:flex-start;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-signal-down)}.ui-input,.ui-select,.ui-textarea{width:100%;padding:0 var(--space-3);height:36px;background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.ui-textarea{height:auto;padding:var(--space-2) var(--space-3);min-height:76px;resize:vertical;line-height:var(--leading-normal)}.ui-input::placeholder,.ui-textarea::placeholder{color:var(--text-muted)}.ui-input:hover:not(:disabled),.ui-select:hover:not(:disabled),.ui-textarea:hover:not(:disabled){border-color:var(--text-muted)}.ui-input:focus-visible,.ui-select:focus-visible,.ui-textarea:focus-visible{outline:none;border-color:var(--text-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--text-primary) 12%,transparent)}.ui-input[aria-invalid=true],.ui-textarea[aria-invalid=true]{border-color:var(--color-signal-down)}.ui-input:disabled,.ui-select:disabled,.ui-textarea:disabled{background:var(--surface-inset);color:var(--text-muted);cursor:not-allowed}.ui-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:var(--space-8);cursor:pointer}.ui-select-wrap{position:relative;display:block}.ui-select-wrap__chevron{position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);pointer-events:none;color:var(--text-muted)}.ui-segmented{display:inline-flex;padding:2px;gap:2px;background:var(--surface-inset);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.ui-segmented__option{padding:var(--space-1) var(--space-3);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.ui-segmented__option:hover{color:var(--text-primary)}.ui-segmented__option[aria-checked=true]{background:var(--surface-card);color:var(--text-primary);box-shadow:var(--shadow-xs)}.ui-segmented--icons .ui-segmented__option--icon{display:grid;place-items:center;width:26px;height:22px;padding:0}.ui-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:var(--space-4);background:var(--surface-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ui-modal{width:min(480px,100%);max-height:calc(100vh - var(--space-16));display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden}.ui-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-5) var(--space-3)}.ui-modal__title{font-size:var(--text-md)}.ui-modal__description{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--text-secondary)}.ui-modal__body{padding:var(--space-2) var(--space-5) var(--space-5);overflow-y:auto}.ui-modal__footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border-subtle);background:var(--surface-app)}.ui-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-10) var(--space-6);text-align:center}.ui-state__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-pill);background:var(--surface-inset);color:var(--text-muted)}.ui-state__title{font-size:var(--text-base);font-weight:600}.ui-state__body{max-width:44ch;font-size:var(--text-sm);color:var(--text-secondary)}.ui-state--inline{padding:var(--space-6) var(--space-4)}.ui-tooltip-wrap{position:relative;display:inline-flex}.ui-tooltip{position:absolute;z-index:60;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:var(--space-1) var(--space-2);max-width:260px;width:max-content;background:var(--surface-inverse);color:var(--text-inverse);font-size:var(--text-xs);line-height:1.4;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);pointer-events:none;animation:fade-in var(--duration-fast) var(--ease-standard)}.ui-tooltip--below{bottom:auto;top:calc(100% + 6px)}.ui-toast-viewport{position:fixed;z-index:200;bottom:var(--space-5);right:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);width:min(360px,calc(100vw - var(--space-8)));pointer-events:none}.ui-toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);pointer-events:auto}.ui-toast__icon{flex:none;margin-top:1px;color:var(--text-muted)}.ui-toast--success .ui-toast__icon{color:var(--color-signal-up)}.ui-toast--error .ui-toast__icon{color:var(--color-signal-down)}.ui-toast__title{font-size:var(--text-sm);font-weight:600}.ui-toast__body{font-size:var(--text-xs);color:var(--text-secondary)}.ui-stat{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4)}.ui-stat__label{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}.ui-stat__value{font-size:var(--text-xl);font-weight:600;line-height:1.1;letter-spacing:-.02em}.ui-stat__meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted)}.ui-sparkline{display:block;width:100%;height:12px;color:var(--text-muted)}.ui-divider{height:1px;background:var(--border-subtle);border:0}.ui-kbd{display:inline-block;padding:1px 5px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:var(--radius-sm);background:var(--surface-inset);font-size:10px;font-weight:600;color:var(--text-secondary)}.map-shell{position:relative;width:100%;height:100%;background:var(--surface-inset);overflow:hidden}.map-shell .map-shell__canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.map-shell__loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background-color:var(--surface-inset);background-image:linear-gradient(to right,var(--border-subtle) 1px,transparent 1px),linear-gradient(to bottom,var(--border-subtle) 1px,transparent 1px);background-size:64px 64px;z-index:2}.map-shell__loading-chip{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);font-size:var(--text-xs);color:var(--text-secondary)}.map-shell__spinner{width:13px;height:13px;border:1.5px solid var(--text-muted);border-top-color:transparent;border-radius:var(--radius-pill);animation:spin .72s linear infinite}.map-shell__toolbar{position:absolute;top:var(--space-4);left:var(--space-4);z-index:3;display:flex;align-items:center;gap:var(--space-2)}.map-shell__panel{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.map-shell__mode-banner{position:absolute;top:var(--space-4);left:50%;transform:translate(-50%);z-index:4;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-inverse);color:var(--text-inverse);border-radius:var(--radius-pill);box-shadow:var(--shadow-lg);font-size:var(--text-xs);white-space:nowrap}.map-shell__mode-banner .ui-kbd{background:color-mix(in srgb,var(--surface-inverse) 70%,var(--text-inverse));border-color:color-mix(in srgb,var(--surface-inverse) 40%,var(--text-inverse));color:var(--text-inverse)}.map-shell__legend{position:absolute;left:var(--space-4);bottom:var(--space-6);z-index:3;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:color-mix(in srgb,var(--surface-card) 92%,transparent);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);font-size:var(--text-xs);color:var(--text-secondary);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.map-shell__legend-row{display:flex;align-items:center;gap:var(--space-2)}.map-shell__legend-swatch{width:18px;height:12px;border-radius:3px;border:1.2px solid var(--map-polygon-line);background:var(--map-polygon-fill)}.map-shell__legend-swatch--strong{background:var(--map-polygon-fill-active);border-width:2px}.map-shell__legend--collapsed{flex-direction:row;align-items:center;gap:var(--space-2);font:inherit;cursor:pointer;color:var(--text-secondary)}.map-shell__legend--collapsed:hover{color:var(--text-primary);border-color:var(--border-strong)}.map-legend__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);font-weight:600;color:var(--text-primary)}.map-legend__collapse{display:inline-flex;border:none;background:none;padding:2px;color:var(--text-muted);cursor:pointer}.map-legend__collapse:hover{color:var(--text-primary)}.map-legend__group{display:flex;flex-direction:column;gap:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--border-subtle)}.map-legend__group-title{font-size:10px;font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}.map-legend__swatch{width:18px;height:12px;flex:none;border-radius:3px;border:1px solid var(--border-subtle);background-color:var(--surface-inset)}.map-legend__swatch--dense{background-color:color-mix(in srgb,var(--map-polygon-line) 75%,transparent)}.map-legend__swatch--hatch{background-image:repeating-linear-gradient(45deg,color-mix(in srgb,var(--map-polygon-line) 80%,transparent) 0 2px,transparent 2px 6px)}.map-legend__swatch--crosshatch{background-image:repeating-linear-gradient(45deg,color-mix(in srgb,var(--map-polygon-line) 55%,transparent) 0 1.5px,transparent 1.5px 6px),repeating-linear-gradient(-45deg,color-mix(in srgb,var(--map-polygon-line) 55%,transparent) 0 1.5px,transparent 1.5px 6px)}.map-legend__swatch--stipple{background-image:radial-gradient(color-mix(in srgb,var(--map-polygon-line) 85%,transparent) 1.2px,transparent 1.2px);background-size:6px 6px}.map-legend__swatch--outline{background-color:transparent;border-width:1.5px;border-color:color-mix(in srgb,var(--map-polygon-line) 55%,transparent)}.map-legend__swatch--decline{background:var(--map-polygon-fill);border-width:2px;border-color:var(--color-signal-down)}.map-popup{min-width:190px;padding:var(--space-3);font-family:var(--font-sans)}.map-popup__name{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.map-popup__project{margin-top:2px;font-size:var(--text-xs);color:var(--text-secondary)}.map-popup__stats{margin-top:var(--space-2);display:flex;gap:var(--space-3);font-size:var(--text-xs);color:var(--text-secondary);font-variant-numeric:tabular-nums}.map-popup__status{margin-top:var(--space-2);font-size:var(--text-xs);font-weight:600;color:var(--text-secondary)}.map-popup__status[data-tone=down]{color:var(--color-signal-down)}.map-popup__status[data-tone=up]{color:var(--color-signal-up)}.map-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:var(--space-6);background-color:var(--surface-inset);background-image:linear-gradient(to right,var(--border-subtle) 1px,transparent 1px),linear-gradient(to bottom,var(--border-subtle) 1px,transparent 1px);background-size:64px 64px}.map-placeholder__card{max-width:420px;padding:var(--space-6);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);text-align:center}.map-placeholder__code{display:block;margin-top:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-inset);border-radius:var(--radius-sm);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--text-xs);color:var(--text-secondary);text-align:left;overflow-x:auto;white-space:pre}.map-shell .mapboxgl-ctrl-top-right{top:var(--space-4);right:var(--space-4)}.map-shell .mapboxgl-ctrl-bottom-right{bottom:var(--space-2)}.mapboxgl-ctrl-group button.darukaa-reset-view{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;background:none;color:var(--text-secondary);cursor:pointer}.mapboxgl-ctrl-group button.darukaa-reset-view:hover{color:var(--text-primary)}.mapboxgl-ctrl-group button.darukaa-reset-view svg{display:block;stroke-width:2}.shell{display:flex;flex-direction:column;height:100%;overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);height:var(--topbar-height);flex:none;padding:0 var(--space-4);background:var(--surface-card);border-bottom:1px solid var(--border-subtle);z-index:10}.topbar__brand{display:flex;align-items:center;gap:var(--space-3);min-width:0}.topbar__mark{display:grid;place-items:center;width:28px;height:28px;flex:none;border-radius:var(--radius-md);background:var(--surface-inverse);color:var(--text-inverse);font-weight:700;font-size:13px;letter-spacing:-.03em}.topbar__name{font-size:var(--text-base);font-weight:600;letter-spacing:-.02em;white-space:nowrap}.topbar__actions{display:flex;align-items:center;gap:var(--space-2)}.topbar__status{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-app);font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap}.topbar__status-dot{width:6px;height:6px;flex:none;border-radius:var(--radius-pill);background:var(--color-signal-up)}.topbar__status-dot--stale{background:var(--text-muted)}.topbar__status-dot--offline{background:var(--color-signal-down)}.topbar__account{display:flex;align-items:center;gap:var(--space-2);padding-left:var(--space-2);border-left:1px solid var(--border-subtle)}.topbar__avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-pill);background:var(--surface-inset);border:1px solid var(--border-subtle);font-size:var(--text-xs);font-weight:600;color:var(--text-secondary)}.shell__body{display:flex;flex:1;min-height:0}.shell__main{position:relative;display:flex;flex:1;min-width:0}.shell__map{position:relative;flex:1;min-width:0}.sidebar{display:flex;flex-direction:column;width:var(--sidebar-width);flex:none;background:var(--surface-card);border-right:1px solid var(--border-subtle)}.sidebar__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-4) var(--space-4) var(--space-3)}.sidebar__title{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}.sidebar__body{flex:1;min-height:0;padding:0 var(--space-2) var(--space-4)}.sidebar__footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-subtle);font-size:var(--text-xs);color:var(--text-muted)}.nav-group{margin-bottom:var(--space-1)}.nav-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-2);border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.nav-item:hover{background:var(--surface-hover);color:var(--text-primary)}.nav-item[aria-current=page],.nav-item[data-active=true]{background:var(--surface-active);color:var(--text-primary);font-weight:500}.nav-item__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item__count{font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.nav-item__chevron{flex:none;color:var(--text-muted);transition:transform var(--duration-base) var(--ease-standard)}.nav-item__chevron[data-expanded=true]{transform:rotate(90deg)}.nav-children{overflow:hidden;margin-left:var(--space-4);padding-left:var(--space-2);border-left:1px solid var(--border-subtle)}.nav-child{display:flex;align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-1) var(--space-2);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:var(--text-xs);text-align:left;cursor:pointer}.nav-child:hover{background:var(--surface-hover);color:var(--text-primary)}.nav-child[data-active=true]{background:var(--surface-active);color:var(--text-primary);font-weight:500}.nav-child__text{display:flex;flex-direction:column;min-width:0;flex:1}.nav-child__meta{margin-top:1px;font-size:10px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.nav-child__dot{width:5px;height:5px;flex:none;margin-top:4px;border-radius:var(--radius-pill);background:var(--text-muted)}.nav-child__dot--real{background:var(--text-primary)}.nav-child__dot[data-tone=down]{background:var(--color-signal-down)}.nav-child__dot[data-tone=up]{background:var(--color-signal-up)}.nav-sort-row{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-1);padding:2px var(--space-2) var(--space-1)}.nav-sort-row__label{font-size:10px;color:var(--text-muted)}.nav-sort{height:20px;padding:0 var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-secondary);font-size:10px;cursor:pointer}.detail-pane{display:flex;flex-direction:column;width:var(--detail-pane-width);flex:none;background:var(--surface-app);border-left:1px solid var(--border-subtle);box-shadow:var(--shadow-md);z-index:5}.detail-pane__scroll{flex:1;min-height:0;padding:var(--space-5)}.detail-header{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--surface-card);border-bottom:1px solid var(--border-subtle)}.detail-header__breadcrumb{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--text-muted);min-width:0}.detail-header__crumb{border:none;background:none;padding:0;color:inherit;font:inherit;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-header__crumb:hover{color:var(--text-primary);text-decoration:underline}.detail-header__title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.detail-header__title-group{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);min-width:0}.detail-header__title{font-size:var(--text-lg);min-width:0;overflow-wrap:anywhere}.detail-header__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.section{margin-bottom:var(--space-6)}.section__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.section__title{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.grid-1{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3)}.provenance{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-inset);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-secondary)}.provenance__icon{flex:none;margin-top:1px;color:var(--text-muted)}.provenance__rows{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.provenance__row{display:flex;gap:var(--space-2);align-items:baseline;flex-wrap:wrap}.provenance__label{font-weight:600;color:var(--text-primary);white-space:nowrap}.provenance__ref{overflow-wrap:anywhere;color:var(--text-muted)}.provenance__ref a{text-decoration:underline;text-underline-offset:2px}.provenance-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-inset);overflow:hidden}.provenance-strip__col{padding:var(--space-2) var(--space-3)}.provenance-strip__col:first-child{border-right:1px solid var(--border-subtle)}.provenance-strip__head{display:flex;align-items:center;width:100%;gap:var(--space-2);border:none;background:none;padding:0;color:var(--text-secondary);cursor:pointer;text-align:left}.provenance-strip__head:disabled{cursor:default}.provenance-strip__label{font-size:var(--text-xs);font-weight:600;color:var(--text-primary);white-space:nowrap}.provenance-strip__value{flex:1;min-width:0;font-size:var(--text-xs);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.provenance-strip__chevron{flex:none;color:var(--text-muted);transition:transform var(--duration-base) var(--ease-standard)}.provenance-strip__chevron[data-expanded=true]{transform:rotate(180deg)}.provenance-strip__summary{margin-top:2px;font-size:var(--text-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.provenance-strip__detail{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-subtle);font-size:var(--text-xs);color:var(--text-secondary);overflow-wrap:anywhere}.provenance-strip__detail a{text-decoration:underline;text-underline-offset:2px}@media (max-width: 520px){.provenance-strip{grid-template-columns:minmax(0,1fr)}.provenance-strip__col:first-child{border-right:none;border-bottom:1px solid var(--border-subtle)}}.project-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.project-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.project-card__name{font-size:var(--text-base);font-weight:600;color:var(--text-primary)}.project-card__description{margin-top:2px;font-size:var(--text-xs);color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2;overflow:hidden}.project-card__stats{display:flex;gap:var(--space-5)}.project-card__stat-label{font-size:10px;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}.project-card__stat-value{font-size:var(--text-base);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary)}.site-row{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);text-align:left}.site-row__main{flex:1;min-width:0}.site-row__name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-row__meta{display:flex;align-items:center;gap:var(--space-2);margin-top:2px;font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}@media (max-width: 1180px){.detail-pane{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;border-left:none}.detail-pane[data-hidden=true]{display:none}}@media (max-width: 860px){.sidebar,.topbar__status{display:none}}.measurement-note{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);background:var(--color-signal-down-soft);border:1px solid color-mix(in srgb,var(--color-signal-down) 30%,transparent);border-radius:var(--radius-md);color:var(--color-signal-down);font-size:var(--text-xs);line-height:var(--leading-normal)}.measurement-note svg{flex:none;margin-top:1px}.metric-provenance-row{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);background:var(--surface-inset);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.metric-provenance-row__item{display:flex;align-items:center;gap:var(--space-2);min-width:0}.metric-provenance-row__metric{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.auth{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);height:100%;background:var(--surface-app)}.auth__form-side{display:flex;align-items:center;justify-content:center;padding:var(--space-8) var(--space-6);background:var(--surface-card);overflow-y:auto}.auth__form{width:min(380px,100%)}.auth__brand{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-8)}.auth__mark{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-md);background:var(--surface-inverse);color:var(--text-inverse);font-weight:700;letter-spacing:-.03em}.auth__title{font-size:var(--text-lg)}.auth__subtitle{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary)}.auth__fields{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-6)}.auth__error{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);background:var(--color-signal-down-soft);border:1px solid color-mix(in srgb,var(--color-signal-down) 30%,transparent);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--color-signal-down)}.auth__switch{margin-top:var(--space-5);font-size:var(--text-xs);color:var(--text-secondary);text-align:center}.auth__switch button{border:none;background:none;padding:0;font:inherit;font-weight:600;color:var(--text-primary);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.auth__aside{display:flex;flex-direction:column;justify-content:center;gap:var(--space-6);padding:var(--space-10);background-color:var(--surface-app);background-image:linear-gradient(to right,var(--border-subtle) 1px,transparent 1px),linear-gradient(to bottom,var(--border-subtle) 1px,transparent 1px);background-size:48px 48px;overflow-y:auto}.auth__aside-inner{max-width:440px}.auth__headline{font-size:var(--text-2xl);line-height:1.15;letter-spacing:-.03em}.auth__lede{margin-top:var(--space-4);font-size:var(--text-base);color:var(--text-secondary);line-height:1.6}.auth__points{margin-top:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);list-style:none;padding:0}.auth__point{display:flex;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary)}.auth__point-icon{flex:none;margin-top:2px;color:var(--text-muted)}.auth__demo{margin-top:var(--space-8);padding:var(--space-4);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.auth__demo-title{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}.auth__demo-row{display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-2);font-size:var(--text-sm)}.auth__demo-value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--text-xs);color:var(--text-primary)}@media (max-width: 900px){.auth{grid-template-columns:minmax(0,1fr)}.auth__aside{display:none}}.chart-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);margin:0}.chart-card__head{display:flex;flex-direction:column;gap:2px}.chart-card__title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.chart-card__subtitle{font-size:var(--text-xs);color:var(--text-muted)}.chart-card__plot{position:relative;width:100%}.metric-table-wrap{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-card)}.metric-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.metric-table caption{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-xs);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.metric-table th,.metric-table td{padding:var(--space-2) var(--space-4);text-align:right;white-space:nowrap;border-bottom:1px solid var(--border-subtle)}.metric-table th:first-child,.metric-table td:first-child{text-align:left}.metric-table thead th{position:sticky;top:0;z-index:1;background:var(--surface-inset);color:var(--text-secondary);font-weight:600;font-size:var(--text-xs)}.metric-table tbody tr:last-child td{border-bottom:0}.metric-table tbody tr:hover td{background:var(--surface-hover)}.metric-table__scroll{max-height:420px;overflow-y:auto}:root{--color-white: #ffffff;--color-gray-50: #f7f7f8;--color-gray-100: #ededef;--color-gray-150: #e5e5e8;--color-gray-200: #dedee1;--color-gray-300: #c4c4c9;--color-gray-400: #9a9aa1;--color-gray-500: #77777e;--color-gray-600: #5c5c63;--color-gray-700: #45454b;--color-gray-800: #2c2c31;--color-gray-900: #1b1b1e;--color-black: #0a0a0b;--color-signal-up: #2f6f4f;--color-signal-up-soft: #e8f0eb;--color-signal-down: #8a2e2e;--color-signal-down-soft: #f4e9e9;--surface-app: var(--color-gray-50);--surface-card: var(--color-white);--surface-raised: var(--color-white);--surface-inset: var(--color-gray-100);--surface-hover: var(--color-gray-50);--surface-active: var(--color-gray-100);--surface-inverse: var(--color-gray-900);--surface-scrim: rgb(10 10 11 / 45%);--border-subtle: var(--color-gray-200);--border-strong: var(--color-gray-300);--border-inverse: var(--color-gray-700);--text-primary: var(--color-gray-900);--text-secondary: var(--color-gray-600);--text-muted: var(--color-gray-400);--text-inverse: var(--color-white);--text-on-accent: var(--color-white);--control-solid-bg: var(--color-black);--control-solid-bg-hover: var(--color-gray-800);--control-solid-fg: var(--color-white);--focus-ring: var(--color-gray-900);--focus-ring-offset: var(--surface-card);--viz-line: var(--color-gray-900);--viz-fill-top: rgb(27 27 30 / 12%);--viz-fill-bottom: rgb(27 27 30 / 0%);--viz-grid: var(--color-gray-150);--viz-axis-text: var(--color-gray-500);--viz-crosshair: var(--color-gray-400);--viz-point: var(--color-gray-900);--viz-surface: var(--color-white);--map-fill-opacity-rest: .25;--map-fill-opacity-hover: .38;--map-fill-opacity-selected: .52;--map-line-width-rest: 1.6;--map-line-width-hover: 2.2;--map-line-width-selected: 3;--map-polygon-line: var(--color-gray-900);--map-basemap-land: var(--color-gray-100);--map-basemap-water: var(--color-gray-200);--map-basemap-road: var(--color-gray-300);--map-basemap-label: var(--color-gray-500);--map-polygon-fill: color-mix( in srgb, var(--viz-line) calc(var(--map-fill-opacity-rest) * 100%), transparent );--map-polygon-fill-active: color-mix( in srgb, var(--viz-line) calc(var(--map-fill-opacity-selected) * 100%), transparent );--shadow-xs: 0 1px 2px rgb(10 10 11 / 5%);--shadow-sm: 0 1px 3px rgb(10 10 11 / 8%), 0 1px 2px rgb(10 10 11 / 4%);--shadow-md: 0 4px 12px rgb(10 10 11 / 8%), 0 1px 3px rgb(10 10 11 / 5%);--shadow-lg: 0 12px 32px rgb(10 10 11 / 12%), 0 2px 8px rgb(10 10 11 / 6%);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.25rem;--text-xl: 1.75rem;--text-2xl: 2.25rem;--leading-tight: 1.2;--leading-normal: 1.5;--tracking-wide: .06em;--ease-standard: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .15s;--duration-base: .25s;--duration-slow: .4s;--sidebar-width: 268px;--detail-pane-width: 460px;--topbar-height: 56px;color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--surface-app: #0e0e10;--surface-card: #17171a;--surface-raised: #1e1e22;--surface-inset: #202025;--surface-hover: #202025;--surface-active: #26262b;--surface-inverse: var(--color-gray-100);--surface-scrim: rgb(0 0 0 / 65%);--border-subtle: #2b2b31;--border-strong: #3a3a42;--border-inverse: var(--color-gray-300);--text-primary: #ededef;--text-secondary: #a8a8b0;--text-muted: #77777e;--text-inverse: var(--color-gray-900);--text-on-accent: var(--color-gray-900);--control-solid-bg: #ededef;--control-solid-bg-hover: var(--color-white);--control-solid-fg: var(--color-gray-900);--focus-ring: #ededef;--focus-ring-offset: var(--surface-card);--color-signal-up: #6fbf95;--color-signal-up-soft: #16241d;--color-signal-down: #e08585;--color-signal-down-soft: #2a1a1a;--viz-line: #ededef;--viz-fill-top: rgb(237 237 239 / 14%);--viz-fill-bottom: rgb(237 237 239 / 0%);--viz-grid: #26262b;--viz-axis-text: #8a8a92;--viz-crosshair: #55555d;--viz-point: #ededef;--viz-surface: #17171a;--map-fill-opacity-rest: .18;--map-fill-opacity-hover: .28;--map-fill-opacity-selected: .42;--map-polygon-line: #ededef;--map-basemap-land: #1a1a1e;--map-basemap-water: #101013;--map-basemap-road: #3a3a42;--map-basemap-label: #6f6f77;--shadow-xs: 0 1px 2px rgb(0 0 0 / 40%);--shadow-sm: 0 1px 3px rgb(0 0 0 / 50%), 0 1px 2px rgb(0 0 0 / 30%);--shadow-md: 0 4px 12px rgb(0 0 0 / 55%), 0 1px 3px rgb(0 0 0 / 35%);--shadow-lg: 0 12px 32px rgb(0 0 0 / 65%), 0 2px 8px rgb(0 0 0 / 40%)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}body{font-family:var(--font-sans);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--text-primary);background:var(--surface-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,svg,canvas{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-weight:600;line-height:var(--leading-tight);letter-spacing:-.01em}:focus{outline:none}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.numeric{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.scroll-area{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.scroll-area::-webkit-scrollbar{width:10px;height:10px}.scroll-area::-webkit-scrollbar-thumb{background:var(--border-strong);border:3px solid transparent;background-clip:content-box;border-radius:var(--radius-pill)}.scroll-area::-webkit-scrollbar-track{background:transparent}@keyframes skeleton-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.mapboxgl-ctrl-group{background:var(--surface-card)!important;border:1px solid var(--border-subtle)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-sm)!important;overflow:hidden}.mapboxgl-ctrl-group button+button{border-top:1px solid var(--border-subtle)!important}.mapboxgl-ctrl-group button .mapboxgl-ctrl-icon{filter:grayscale(1)}.mapboxgl-ctrl-group button:not(:disabled):hover{background:var(--surface-hover)!important}.mapboxgl-ctrl-attrib{background:color-mix(in srgb,var(--surface-card) 88%,transparent)!important;font-size:var(--text-xs)!important}.mapboxgl-ctrl-attrib a{color:var(--text-secondary)!important}.mapboxgl-popup-content{padding:0!important;background:var(--surface-card)!important;border:1px solid var(--border-subtle);border-radius:var(--radius-md)!important;box-shadow:var(--shadow-md)!important}.mapboxgl-popup-close-button{display:none}.mapboxgl-popup-tip{border-top-color:var(--surface-card)!important;border-bottom-color:var(--surface-card)!important}.mapbox-gl-draw_ctrl-draw-btn{background-color:var(--surface-card)!important}
