:root{--color-primary:#4f6bf5;--color-primary-hover:#3d5ae0;--color-primary-active:#2e49c8;--color-primary-muted:#7b8ff7;--color-primary-light:#93a8fa;--color-secondary:#3b5075;--color-secondary-hover:#2e4060;--color-bg-base:#0c0e14;--color-bg-surface:#141820;--color-bg-elevated:#1f242e;--color-bg-hover:#2a2e39;--color-border:#2a2e39;--color-border-subtle:#1f242e;--color-border-strong:#3a3f4a;--color-text-primary:#f8fafc;--color-text-secondary:#94a3b8;--color-text-tertiary:#64748b;--color-text-inverse:#141929;--color-success:#22c55e;--color-success-bg:#22c55e1a;--color-warning:#f59e0b;--color-warning-bg:#f59e0b1a;--color-error:#ef4444;--color-error-bg:#ef44441a;--color-info:#3b82f6;--color-info-bg:#3b82f61a;--color-status-success:var(--color-success);--color-status-success-bg:var(--color-success-bg);--color-status-warning:var(--color-warning);--color-status-warning-bg:var(--color-warning-bg);--color-status-danger:var(--color-error);--color-status-danger-bg:var(--color-error-bg);--color-status-info:var(--color-info);--color-status-info-bg:var(--color-info-bg);--color-action-primary:var(--color-primary);--color-action-hover:var(--color-primary-hover);--color-action-active:var(--color-primary-active);--color-action-muted:var(--color-primary-muted);--color-action-light:var(--color-primary-light);--color-tooltip-bg:var(--color-bg-elevated);--color-tooltip-border:var(--color-border);--color-tooltip-text:var(--color-text-primary);--color-tooltip-shadow:var(--shadow-lg);--color-tooltip-bg-map:var(--color-map-tooltip-bg);--color-tooltip-border-map:var(--color-map-tooltip-border);--color-tooltip-text-map:var(--color-map-tooltip-text);--color-autonomous:#4f6bf5;--color-conventional:#64748b;--color-highlight:gold;--color-lane-cross-border:var(--color-map-lane-cross-border);--color-overlay:#00000080;--color-overlay-strong:#0009;--color-accent-tint:#4f6bf51a;--color-accent-tint-strong:#4f6bf51f;--color-focus-ring:#4f6bf540;--color-focus-ring-subtle:#4f6bf533;--color-focus-ring-error:#ef444440;--color-focus-ring-error-subtle:#ef444433;--font-family-base:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono:"JetBrains Mono", "Fira Code", Consolas, monospace;--font-size-3xs:.625rem;--font-size-2xs:.6875rem;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.875rem;--font-size-lg:1rem;--font-size-xl:1.125rem;--font-size-2xl:1.25rem;--font-size-3xl:1.5rem;--font-size-4xl:1.875rem;--font-size-5xl:2.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-base:1.4;--line-height-relaxed:1.6;--letter-spacing-tight:-.02em;--letter-spacing-normal:-.01em;--letter-spacing-wide:0;--space-0-5:.09375rem;--space-1:.1875rem;--space-1-5:.28125rem;--space-2:.375rem;--space-2-5:.46875rem;--space-3:.5625rem;--space-4:.75rem;--space-5:.9375rem;--space-6:1.125rem;--space-7:1.3125rem;--space-8:1.5rem;--space-10:1.875rem;--space-12:2.25rem;--space-16:3rem;--space-20:3.75rem;--space-24:4.5rem;--space-32:6rem;--radius-sm:1px;--radius-md:2px;--radius-lg:4px;--radius-xl:8px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px -1px #0000004d, 0 2px 4px -1px #0003;--shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -2px #0000004d;--shadow-xl:0 20px 25px -5px #00000080, 0 10px 10px -5px #0006;--shadow-overlay:0 0 0 1px #ffffff1a, 0 20px 25px -5px #00000080, 0 10px 10px -5px #0006;--card-shadow-hover:0 20px 25px -5px #0000004d, 0 10px 10px -5px #0000001a;--shadow-glow:0 0 15px #93a8fa33;--color-chart-axis:#94a3b8;--color-chart-grid:#334155;--color-chart-baseline:#f59e0b;--color-chart-capex:#ef4444;--color-chart-opex:#4f6bf5;--color-chart-savings:#4f6bf5;--color-chart-net-cf:#22c55e;--color-chart-text:#94a3b8;--font-size-chart-axis:var(--font-size-xs);--chart-line-width:2.5;--chart-axis-line-width:1.5;--color-map-background:var(--color-bg-base);--color-map-tile-bg:#0f172a;--color-map-lane:var(--color-primary-light);--color-map-lane-cross-border:var(--color-highlight);--color-map-lane-selected:var(--color-warning);--color-map-site-outline:#3d4765;--color-map-site-selected:var(--color-warning);--color-map-site-default:gray;--color-map-site-default-text:var(--color-text-primary);--color-map-capacity-ok:#34d399;--color-map-capacity-over:#f87171;--color-map-tooltip-bg:var(--color-bg-elevated);--color-map-tooltip-border:var(--color-border-subtle);--color-map-tooltip-text:var(--color-text-primary);--color-map-legend-bg:var(--color-bg-elevated);--color-map-legend-border:var(--color-border-subtle);--color-map-legend-text:var(--color-text-secondary);--color-map-legend-title:var(--color-text-tertiary);--color-map-attribution-bg:#0f172ab3;--color-map-attribution-text:var(--color-text-tertiary);--glass-bg:#1e293b99;--glass-border:#ffffff14;--z-base:0;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-modal-backdrop:400;--z-modal:500;--z-popover:600;--z-tooltip:9999;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--transition-normal:.25s ease;--width-max-form:600px;--width-sidebar-collapsed:64px;--width-sidebar-expanded:170px;--height-header:48px;--bg-primary:var(--color-bg-base);--bg-secondary:var(--color-bg-surface);--bg-tertiary:var(--color-bg-elevated);--bg-elevated:var(--color-bg-elevated);--bg-overlay:#0009;--text-primary:var(--color-text-primary);--text-secondary:var(--color-text-secondary);--text-muted:var(--color-text-tertiary);--text-inverse:var(--color-text-inverse);--accent-primary:var(--color-primary);--accent-primary-hover:var(--color-primary-hover);--accent-primary-light:var(--color-primary-light);--accent-success:var(--color-success);--accent-success-bg:var(--color-success-bg);--accent-warning:var(--color-warning);--accent-warning-bg:var(--color-warning-bg);--accent-error:var(--color-error);--accent-error-bg:var(--color-error-bg);--accent-info:var(--color-info);--accent-info-bg:var(--color-info-bg);--border-color:var(--color-border);--border-color-light:var(--color-border-strong);--border-focus:var(--color-primary);--font-family:var(--font-family-base);--font-mono:var(--font-family-mono);--spacing-2xs:var(--space-0-5);--spacing-xs:var(--space-1);--spacing-sm:var(--space-2);--spacing-md:var(--space-4);--spacing-lg:var(--space-6);--spacing-xl:var(--space-8);--spacing-2xl:var(--space-12);--z-overlay:var(--z-modal-backdrop);--z-toast:var(--z-popover);--sidebar-width:var(--width-sidebar-expanded);--header-height:var(--height-header)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px;overflow-y:scroll}body{font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);letter-spacing:var(--letter-spacing-normal);font-variant-numeric:tabular-nums;color:var(--color-text-primary);background-color:var(--color-bg-base);min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--color-text-primary)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5,h6{font-size:var(--font-size-base)}p{color:var(--color-text-secondary);line-height:var(--line-height-base)}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-hover)}code,pre,kbd,samp{font-family:var(--font-family-mono);font-size:var(--font-size-sm)}pre{background-color:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-4);overflow-x:auto}::selection{background-color:var(--color-primary);color:var(--color-text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-base)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}*{scrollbar-width:thin;scrollbar-color:var(--color-border) var(--color-bg-base)}ul,ol{list-style:none}img,svg{max-width:100%;display:block}table{border-collapse:collapse;width:100%}button{font-family:inherit;font-size:inherit;cursor:pointer;color:inherit;background:0 0;border:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none;outline:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}#app{min-height:100vh}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{background-color:var(--color-bg-base);flex-direction:column;min-height:100vh;display:flex}.page-enter-active,.page-leave-active{transition:opacity .2s}.page-enter-from,.page-leave-to{opacity:0}.app-header{height:var(--header-height);padding:0 var(--space-8);background:var(--color-bg-surface);border-bottom:1px solid var(--color-border);z-index:var(--z-sticky);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.app-header__left{align-items:center;display:flex}.app-header__logo{align-items:center;gap:var(--spacing-sm);color:var(--color-text-primary);font-weight:700;font-size:var(--font-size-lg);text-decoration:none;display:flex}.app-header__logo:hover,.app-header__logo-icon{color:var(--accent-primary)}.app-header__center{align-items:center;gap:var(--spacing-xl);display:flex}.kpi{align-items:center;gap:var(--spacing-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm);display:flex}.kpi__label{color:var(--color-text-tertiary)}.kpi__value{font-weight:600;font-family:var(--font-family-mono);color:var(--color-text-primary)}.app-header__right{align-items:center;gap:var(--spacing-md);display:flex}.avatar{background:var(--accent-primary);cursor:pointer;width:36px;height:36px;transition:background var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.avatar:hover{background:var(--accent-primary-hover)}.avatar__initials{color:#fff;font-weight:600;font-size:var(--font-size-sm)}.page-sidebar{width:var(--width-sidebar-expanded);padding:var(--space-3) 0;flex-shrink:0}.sidebar-nav{gap:var(--space-1);flex-direction:column;display:flex}.sidebar-link{align-items:center;gap:var(--space-3);padding:var(--space-1-5) var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-tertiary);border-radius:var(--radius-md);transition:color var(--transition-fast), background-color var(--transition-fast);text-decoration:none;display:flex}.sidebar-link:hover{color:var(--color-text-secondary);background-color:var(--color-bg-hover)}.sidebar-link--top-level{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.sidebar-link--active{color:var(--color-primary);background-color:var(--color-accent-tint);font-weight:var(--font-weight-medium);border-left:3px solid var(--color-primary);padding-left:calc(var(--space-3) - 3px)}.sidebar-link--active.sidebar-link--top-level{font-weight:var(--font-weight-semibold)}.sidebar-link--dashboard{margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-subtle)}.sidebar-link--sub{padding-left:var(--space-8);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal)}.sidebar-chevron{opacity:.5;margin-left:auto}.sidebar-section{flex-direction:column;display:flex}.sidebar-subitems{max-height:0;transition:max-height .25s ease-in-out;overflow:hidden}.sidebar-subitems--expanded{max-height:400px}.btn{justify-content:center;align-items:center;gap:var(--space-1-5);padding:var(--space-1-5) var(--space-3);font-family:var(--font-family-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background-color:var(--color-primary);color:var(--color-text-primary)}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn--primary:active:not(:disabled){background-color:var(--color-primary-active)}.btn--secondary{color:var(--color-text-primary);background-color:#1e2636;border-color:#2d3b4e}.btn--secondary:hover:not(:disabled){background-color:#283145;border-color:#3b5075}.btn--secondary:active:not(:disabled){background-color:#161c29}.btn--ghost{color:var(--color-text-secondary);background-color:#0000}.btn--ghost:hover:not(:disabled){background-color:var(--color-bg-hover);color:var(--color-text-primary)}.btn--danger{background-color:var(--color-error);color:var(--color-text-inverse)}.btn--danger:hover:not(:disabled){background-color:var(--color-status-danger)}.btn--sm{padding:var(--space-1-5) var(--space-1);font-size:var(--font-size-xs)}.btn--lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base)}.btn--icon{padding:var(--space-2);width:36px;height:36px}.btn--square{aspect-ratio:1;padding:var(--space-2)}.btn--icon.btn--sm{width:28px;height:28px;padding:0}.btn svg{flex-shrink:0}.input{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);line-height:var(--line-height-base);color:var(--color-text-primary);background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);display:block}.input::placeholder{color:var(--color-text-tertiary)}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.input:disabled{opacity:.5;cursor:not-allowed}.input--error{border-color:var(--color-error)}.input--error:focus{box-shadow:0 0 0 2px var(--color-focus-ring-error)}.input[type=number],.input-number{font-family:var(--font-family-mono)}.form-field{gap:var(--space-1);flex-direction:column;display:flex}.form-field__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.form-field__required{color:var(--color-error)}.form-field__input{padding:var(--space-2) var(--space-3);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.form-field__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring-subtle);outline:none}.form-field__input:disabled{opacity:.5;cursor:not-allowed}.form-field__input::placeholder{color:var(--color-text-tertiary)}.form-field__input[type=number]{font-family:var(--font-family-mono)}.form-field--error .form-field__input{border-color:var(--color-error)}.form-field--error .form-field__input:focus{box-shadow:0 0 0 2px var(--color-focus-ring-error-subtle)}.form-field__hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin:0}.form-field__error{font-size:var(--font-size-xs);color:var(--color-error);margin:0}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.form-error{font-size:var(--font-size-xs);color:var(--color-error)}.combobox{width:100%;position:relative}.combobox__input{padding-right:var(--space-10)}.combobox__chevron{right:var(--space-3);color:var(--color-text-tertiary);pointer-events:none;font-size:var(--font-size-xs);position:absolute;top:50%;transform:translateY(-50%)}.combobox__menu{top:calc(100% + var(--space-2));background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:260px;box-shadow:var(--shadow-overlay);z-index:var(--z-tooltip);padding:var(--space-1) 0;position:absolute;left:0;right:0;overflow-y:auto}.combobox__option,.combobox__empty{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-primary)}.combobox__option{cursor:pointer}.combobox__option--active{background:var(--color-bg-hover)}.combobox__option--selected{color:var(--color-primary)}.combobox__option--disabled{cursor:not-allowed;opacity:.5}.combobox__empty{color:var(--color-text-tertiary)}.modal-form{gap:var(--space-4);flex-direction:column;display:flex}.derived-summary{gap:var(--space-4);padding:var(--space-3);background:var(--color-bg-elevated);border-radius:var(--radius-md);border:1px solid var(--color-border);grid-template-columns:1fr 1fr;display:grid}.derived-summary__item{gap:var(--space-0-5,2px);flex-direction:column;display:flex}.derived-summary__label{font-size:var(--font-size-2xs);color:var(--color-text-tertiary);text-transform:uppercase}.derived-summary__value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-family-mono);color:var(--color-text-primary)}.info-note{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-xs);border:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text-secondary);line-height:1.4;display:inline-flex}.info-note__icon{color:var(--color-info);flex-shrink:0}.info-note__text{color:inherit}.info-note--warning{border-color:var(--color-warning-border,var(--color-border));background:var(--color-warning-bg,var(--color-bg-elevated));color:var(--color-warning,var(--color-text-secondary))}.info-note--warning .info-note__icon{color:var(--color-warning,var(--color-text-secondary))}.info-note--success{border-color:var(--color-success-border,var(--color-border));background:var(--color-success-bg,var(--color-bg-elevated));color:var(--color-success,var(--color-text-secondary))}.info-note--success .info-note__icon{color:var(--color-success,var(--color-text-secondary))}.target-toggle{background:var(--color-bg-elevated);padding:var(--space-1);border-radius:var(--radius-md);gap:var(--space-1);display:flex}.target-toggle__btn{padding:var(--space-1-5);font-size:var(--font-size-xs);border-radius:var(--radius-sm);color:var(--color-text-secondary);transition:all var(--transition-fast);flex:1}.target-toggle__btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.target-toggle__btn--active{background:var(--color-bg-surface);color:var(--color-primary);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-sm)}.hos-warning{gap:var(--space-2);padding:var(--space-3);background:var(--color-error-bg);border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-size-xs);display:flex}.card{background-color:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);width:100%;padding:var(--space-4);box-shadow:var(--shadow-sm)}.card--interactive{cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast)}.card--interactive:hover{border-color:var(--color-border);background-color:var(--color-bg-elevated);box-shadow:var(--shadow-md)}.card--selected{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.table-container{border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);flex:auto;max-width:100%;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.table th{padding:var(--space-2) var(--space-3);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);background-color:var(--color-bg-surface);border-bottom:1px solid var(--color-border);vertical-align:bottom}.table td{padding:var(--space-2) var(--space-3);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border-subtle);word-break:break-word}.table th.table-align-left,.table td.table-align-left{text-align:left}.table th.table-align-center,.table td.table-align-center{text-align:center}.table th.table-align-right,.table td.table-align-right{text-align:right}.table td{padding:var(--space-2) var(--space-3);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border-subtle)}.table tbody tr{transition:background-color var(--transition-fast)}.table tr:hover td{background-color:var(--color-bg-hover)}.table tr:last-child td{border-bottom:none}.table td.numeric{text-align:right;font-family:var(--font-family-mono);font-size:var(--font-size-xs)}.table-numeric{font-family:var(--font-family-mono);font-size:var(--font-size-xs);text-align:right;display:block}.text-ellipsis{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.data-table{flex-direction:column;width:100%;display:flex}.data-table .table-container{flex:1;min-height:0}.data-table.lanes-table .table,.data-table.period-breakdown-table .table,.data-table.sites-table .table{table-layout:fixed}.table th:hover{color:var(--color-text-primary)}.group-header-row th{text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-bg-surface)}.group-header-row th.group-header{background:var(--color-bg-elevated);border-left:1px solid var(--color-border)}.group-header-row th:first-child{border-left:none}.table-row{transition:background var(--transition-fast)}.table-row:hover{background:var(--color-bg-hover)}.table-row--clickable{cursor:pointer}.loading-row td{padding:var(--space-8) var(--space-4)}.loading-cell{justify-content:center;align-items:center;gap:var(--space-2);color:var(--color-text-tertiary);font-size:var(--font-size-sm);display:flex}.empty-cell{text-align:center;padding:var(--space-8);color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.pagination{padding:var(--space-3) 2px;margin-top:var(--space-1);justify-content:space-between;align-items:center;display:flex}.pagination__info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.pagination__controls{align-items:center;gap:var(--space-4);display:flex}.pagination__size{width:120px}.pagination__size-input.input{padding:var(--space-1) var(--space-2);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm)}.pagination__buttons{align-items:center;gap:var(--space-1);display:flex}.pagination__buttons .pagination__btn:last-child{margin-right:-1px}.pagination__btn{padding:var(--space-1) var(--space-3);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm);font-family:var(--font-family-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);justify-content:center;align-items:center;display:inline-flex}.pagination__btn:hover:not(:disabled){background:var(--color-border);color:var(--color-text-primary)}.pagination__btn:disabled{opacity:.3;cursor:not-allowed}.pagination__page{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center;min-width:60px}.table-cell-actions{gap:var(--space-1);align-items:center;display:flex}.table-sort-indicator{margin-left:var(--space-1)}.table-align-left{text-align:left}.table-align-center{text-align:center}.table-align-right{text-align:right}.table-header--sortable{cursor:pointer}.table-cell-actions--right{justify-content:flex-end}.table-cell-actions--left{justify-content:flex-start}.lane-modal-body{gap:var(--space-4);grid-template-columns:1fr 1fr;align-items:stretch;max-height:none;display:grid}.lane-modal-form{gap:var(--space-4);flex-direction:column;display:flex}.lane-modal-map{border-radius:var(--radius-lg);flex:1;min-height:350px;position:relative;overflow:hidden}.lane-modal-map-placeholder{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);height:100%;color:var(--color-text-tertiary);font-size:var(--font-size-sm);text-align:center;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.lane-modal-footer{align-items:center;gap:var(--space-3);width:100%;display:flex}.lane-modal-footer__actions{align-items:center;gap:var(--space-2);display:inline-flex}.lane-modal-footer__spacer{flex:1}.badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;border-radius:9999px;line-height:1;display:inline-flex}.badge--success{background-color:var(--color-success-bg);color:var(--color-success)}.badge--warning{background-color:var(--color-warning-bg);color:var(--color-warning)}.badge--error{background-color:var(--color-error-bg);color:var(--color-error)}.badge--info{background-color:var(--color-info-bg);color:var(--color-info)}.badge--primary{background-color:var(--color-accent-tint);color:var(--color-primary)}.badge--neutral{background-color:var(--color-bg-hover);color:var(--color-text-secondary)}.notification-badge{top:var(--space-0-5,2px);right:var(--space-0-5,2px);min-width:18px;height:18px;padding:0 var(--space-1);background-color:var(--color-error);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);font-family:var(--font-family-mono);color:var(--color-text-inverse);justify-content:center;align-items:center;display:flex;position:absolute}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg, var(--color-bg-surface) 25%, var(--color-bg-elevated) 50%, var(--color-bg-surface) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.skeleton-loader--table{gap:var(--space-3);flex-direction:column;display:flex}.skeleton-loader__row{gap:var(--space-4);display:flex}.skeleton-loader--cards{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.skeleton-card{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-4)}.skeleton-card .skeleton-kpi-label{margin-bottom:var(--space-2)}.skeleton-loader--text{flex-direction:column;display:flex}.skeleton-loader--kpi{padding:var(--space-4)}.skeleton-cell{flex:1;height:16px}.skeleton-cell:first-child{flex:.5}.skeleton-kpi-label{width:80px;height:12px}.skeleton-kpi-value{width:120px;height:28px}.skeleton-text{width:100%;height:14px;margin-bottom:var(--space-2)}.skeleton-text--short{width:75%}.tab-bar{gap:var(--space-1);border-bottom:1px solid var(--color-border-subtle);padding:0 var(--space-2);display:flex}.tab{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000}.tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.breadcrumb-nav{margin-bottom:var(--space-1)}.breadcrumb-list{gap:var(--space-1);font-size:var(--font-size-xs);align-items:center;margin:0;padding:0;list-style:none;display:flex}.breadcrumb-item a{color:var(--color-text-tertiary);text-decoration:none}.breadcrumb-item a:hover{color:var(--color-primary)}.breadcrumb-current{color:var(--color-text-secondary)}.breadcrumb-sep{color:var(--color-text-tertiary)}.header-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.header-description{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:var(--space-1) 0 0}.header-actions{gap:var(--space-4);align-items:center;display:flex}.step-indicator{align-items:center;gap:0;display:flex}.step{align-items:center;gap:var(--space-2);display:flex}.step-circle{border-radius:var(--radius-full);width:28px;height:28px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border:2px solid var(--color-border);color:var(--color-text-tertiary);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.step--active .step-circle{border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-text-primary)}.step--completed .step-circle{border-color:var(--color-success);background-color:var(--color-success);color:var(--color-text-primary)}.step-label{font-size:var(--font-size-sm);color:var(--color-text-tertiary);white-space:nowrap}.step--active .step-label{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.step--completed .step-label{color:var(--color-text-secondary)}.step-connector{background-color:var(--color-border);width:40px;height:2px;margin:0 var(--space-2);flex-shrink:0}.step--completed+.step .step-connector,.step--completed .step-connector{background-color:var(--color-success)}.card__header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.card__body{padding:var(--space-5)}.card__body--no-padding{padding:0}.card__footer{justify-content:flex-end;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-bg-elevated);display:flex}.card__header{justify-content:space-between;align-items:center;display:flex}.card__subtitle{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.tab:hover{color:var(--color-text-secondary)}.dashboard-grid{gap:var(--space-6);margin-top:var(--space-6);grid-template-columns:repeat(4,1fr);display:grid}.dashboard-card{border-radius:var(--radius-lg);background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);cursor:pointer;height:300px;transition:border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;animation:.5s ease-out both card-enter;display:flex;position:relative;overflow:hidden}.dashboard-card:before{content:"";height:var(--space-0-5,3px);background:linear-gradient(90deg, var(--accent-primary), var(--accent-primary-light), var(--accent-success));opacity:0;transition:opacity var(--transition-fast);border-radius:var(--radius-lg) var(--radius-lg) 0 0;z-index:2;position:absolute;top:0;left:0;right:0}.dashboard-card:hover:before{opacity:1}.dashboard-card:hover{border-color:var(--accent-primary);box-shadow:var(--card-shadow-hover);transform:translateY(-4px)}.dashboard-card:first-child{animation-delay:50ms}.dashboard-card:nth-child(2){animation-delay:.15s}.dashboard-card:nth-child(3){animation-delay:.25s}.dashboard-card:nth-child(4){animation-delay:.35s}@keyframes card-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.card-top{padding:var(--space-6);flex:0 0 65%;align-items:flex-end;display:flex;position:relative;overflow:hidden}.card-bg-graphic{width:100%;height:100%;color:var(--accent-primary);opacity:.15;pointer-events:none;position:absolute;inset:0}.card-top-overlay{background:linear-gradient(to bottom, transparent 50%, var(--color-bg-elevated) 95%);pointer-events:none;position:absolute;inset:0}.card-title{z-index:1;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0;position:relative}.card-bottom{padding:var(--space-4) var(--space-6) var(--space-6);flex:1;align-items:center;display:flex}.card-stats{gap:var(--space-1);flex-direction:column;display:flex}.stat-row{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.stat-value{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);font-family:var(--font-family-mono);color:var(--accent-primary-light);text-shadow:var(--shadow-glow)}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.stat-sep{font-size:var(--font-size-lg);color:var(--color-text-tertiary);margin:0 var(--space-1)}.card-description{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.modal{z-index:var(--z-modal);padding:var(--space-4);background:0 0;border:none;width:100%;max-width:90vw;max-height:90vh;margin:auto;position:fixed;inset:0;overflow:auto}.modal::backdrop{background:var(--color-overlay-strong)}.modal--wide{max-width:80vw}.modal--extra-wide{max-width:1200px}.modal__content{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);min-width:400px;max-width:560px;margin:0 auto}.modal--lane .modal__body{max-height:none!important;overflow-y:visible!important}.modal__content .form-field__error{font-size:var(--font-size-xs);color:var(--color-error)}.modal--wide .modal__content{max-width:900px}.modal--extra-wide .modal__content{max-width:1200px}.modal__header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.modal__close{width:32px;height:32px;color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.modal__close:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.modal__body{padding:var(--space-4);max-height:60vh;overflow-y:auto}.modal__footer{justify-content:flex-end;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-bg-elevated);display:flex}.confirm-dialog{z-index:var(--z-modal);padding:var(--space-4);background:0 0;border:none;width:100%;max-width:480px;margin:auto;position:fixed;inset:0}.confirm-dialog::backdrop{background:var(--color-overlay-strong)}.confirm-dialog__content{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-xl)}.confirm-dialog__icon{border-radius:var(--radius-lg);width:40px;height:40px;margin-bottom:var(--space-3);justify-content:center;align-items:center;display:inline-flex}.confirm-dialog__icon--danger{background:var(--color-error-bg);color:var(--color-error)}.confirm-dialog__title{margin:0 0 var(--space-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.confirm-dialog__message{margin:0 0 var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-base)}.confirm-dialog__actions{justify-content:flex-end;gap:var(--space-2);display:flex}.kpi-cards,.kpi-grid{gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.kpi-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);cursor:default;transition:border-color var(--transition-fast);position:relative;overflow:hidden}.kpi-card:hover{border-color:var(--color-border-strong)}.kpi-card__bg-icon{top:var(--space-2);right:var(--space-2);opacity:.25;width:48px;height:48px;color:var(--color-text-secondary);position:absolute}.kpi-card__bg-icon svg{width:100%;height:100%}.kpi-label,.kpi-card__label{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-1)}.kpi-value,.kpi-card__value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);font-family:var(--font-family-mono);color:var(--color-text-primary);margin:0}.kpi-value--muted,.kpi-card__value--muted{color:var(--color-text-tertiary);font-size:var(--font-size-sm);font-style:italic}.kpi-card__value--positive{color:var(--color-success)}@media (width<=900px){.kpi-cards,.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=500px){.kpi-cards,.kpi-grid{grid-template-columns:1fr}}.wizard{gap:var(--space-6);flex-direction:column;display:flex}.wizard__header{align-items:center;gap:var(--space-4);display:flex}.wizard__back{align-items:center;gap:var(--space-1);color:var(--color-text-secondary);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:all var(--transition-fast);background:0 0;border:none;display:inline-flex}.wizard__back:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.wizard__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.wizard__step{gap:var(--space-4);flex-direction:column;display:flex}.wizard__instruction{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.wizard__cards{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.wizard__card{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-8);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);color:var(--color-text-primary);flex-direction:column;display:flex}.wizard__card:hover{border-color:var(--color-primary);background:var(--color-bg-surface)}.wizard__card-icon{color:var(--color-primary)}.wizard__card-label{font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.wizard__form{gap:var(--space-4);flex-direction:column;display:flex}.wizard__field{gap:var(--space-1);flex-direction:column;display:flex}.wizard__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.wizard__readonly{padding:var(--space-2) var(--space-3);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.wizard__footer{justify-content:flex-end;align-items:center;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border);display:flex}.notification-center{position:relative}.notification-bell-button{border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-fast), background-color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:relative}.notification-bell-button:hover{color:var(--color-text-primary);background-color:var(--color-bg-hover)}.notification-overlay{background-color:var(--color-overlay);z-index:var(--z-tooltip);position:fixed;inset:0}.notification-drawer{background-color:var(--color-bg-surface);border-left:1px solid var(--color-border);width:360px;max-width:100%;box-shadow:var(--shadow-xl);z-index:var(--z-tooltip);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.notification-drawer-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.notification-drawer-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.notification-drawer-actions{align-items:center;gap:var(--space-2);display:flex}.notification-action-btn{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-fast), background-color var(--transition-fast);background:0 0;border:none;display:flex}.notification-action-btn:hover{color:var(--color-text-primary);background-color:var(--color-bg-hover)}.notification-action-btn-danger:hover{color:var(--color-error)}.notification-close-btn{border-radius:var(--radius-md);width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-fast), background-color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.notification-close-btn:hover{color:var(--color-text-primary);background-color:var(--color-bg-hover)}.notification-list{padding:var(--space-2);flex:1;overflow-y:auto}.notification-empty{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-12) var(--space-4);color:var(--color-text-tertiary);flex-direction:column;display:flex}.notification-empty-icon{opacity:.5}.notification-empty p{font-size:var(--font-size-sm);margin:0}.notification-item{width:100%;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2);border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:background-color var(--transition-fast);background:0 0;border:none;align-items:flex-start;display:flex;position:relative}.notification-item:hover{background-color:var(--color-bg-hover)}.notification-item.unread{background-color:var(--color-accent-tint)}.notification-item.unread:hover{background-color:var(--color-accent-tint-strong)}.notification-item-content{gap:var(--space-3);flex:1;display:flex}.notification-severity-icon{margin-top:var(--space-0-5,2px);flex-shrink:0}.notification-severity-icon--success{color:var(--color-success)}.notification-severity-icon--info{color:var(--color-info)}.notification-severity-icon--warning{color:var(--color-warning)}.notification-severity-icon--error{color:var(--color-error)}.notification-item-body{min-width:0;padding-right:var(--space-4);flex:1}.notification-item-header{justify-content:space-between;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.notification-item-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.notification-item-time{font-size:var(--font-size-xs);color:var(--color-text-tertiary);flex-shrink:0}.notification-item-message{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-base);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;transition:-webkit-line-clamp .2s;display:-webkit-box;overflow:hidden}.notification-item-message.expanded{-webkit-line-clamp:unset;overflow:visible}.notification-expand-btn{margin-top:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-primary-muted);cursor:pointer;transition:color var(--transition-fast);border-radius:var(--radius-sm);background:0 0;border:none;display:inline-block}.notification-expand-btn:hover{color:var(--color-primary);background-color:var(--color-accent-tint)}.notification-item-action{align-items:center;gap:var(--space-1);margin-top:var(--space-2);padding:var(--space-1) var(--space-2);background-color:var(--color-bg-elevated);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-primary);transition:background-color var(--transition-fast);display:inline-flex}.notification-item:hover .notification-item-action{background-color:var(--color-primary);color:var(--color-text-inverse)}.notification-unread-indicator{top:50%;right:var(--space-4);background-color:var(--color-primary);border-radius:var(--radius-full);width:8px;height:8px;position:absolute;transform:translateY(-50%)}.drawer-enter-active,.drawer-leave-active{transition:opacity var(--transition-base)}.drawer-enter-from,.drawer-leave-to{opacity:0}.drawer-slide-enter-active,.drawer-slide-leave-active{transition:transform var(--transition-base)}.drawer-slide-enter-from,.drawer-slide-leave-to{transform:translate(100%)}@media (width<=640px){.notification-drawer{width:100%}}.notification-progress{margin-top:var(--space-2);background:var(--color-bg-surface-raised);border-radius:2px;height:4px;overflow:hidden}.notification-progress-bar{border-radius:2px;height:100%;transition:width .3s}.notification-progress-bar--in-progress{background:var(--color-brand-primary);animation:1.5s ease-in-out infinite progress-pulse}.notification-progress-bar--pending{background:var(--color-text-muted)}.notification-progress-complete{margin-top:var(--space-2);font-size:var(--font-size-xs);font-weight:500}@keyframes progress-pulse{0%,to{opacity:1}50%{opacity:.7}}.toast-container{top:calc(var(--height-header) + var(--space-4));right:var(--space-4);z-index:var(--z-tooltip);gap:var(--space-3);pointer-events:none;flex-direction:column;max-width:380px;display:flex;position:fixed}.toast-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background-color:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);pointer-events:auto;display:flex}.toast-success{border-left:3px solid var(--color-success)}.toast-info{border-left:3px solid var(--color-info)}.toast-warning{border-left:3px solid var(--color-warning)}.toast-error{border-left:3px solid var(--color-error)}.toast-icon{flex-shrink:0}.toast-success .toast-icon{color:var(--color-success)}.toast-info .toast-icon{color:var(--color-info)}.toast-warning .toast-icon{color:var(--color-warning)}.toast-error .toast-icon{color:var(--color-error)}.toast-message{font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:var(--line-height-base);flex:1}.toast-dismiss{color:var(--color-text-tertiary);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:color var(--transition-fast), background-color var(--transition-fast);background:0 0;border:none;align-items:center;display:flex}.toast-dismiss:hover{color:var(--color-text-primary);background-color:var(--color-bg-hover)}.toast-enter-active{transition:opacity var(--transition-base), transform var(--transition-base)}.toast-leave-active{transition:opacity var(--transition-fast), transform var(--transition-fast)}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(100%)}.toast-move{transition:transform var(--transition-base)}@media (width<=640px){.toast-container{top:auto;right:auto;bottom:var(--space-4);width:calc(100% - var(--space-8));max-width:380px;left:50%;transform:translate(-50%)}.toast-enter-from,.toast-leave-to{transform:translateY(100%)translate(-50%)}}.dashboard-card-skeleton{border-radius:var(--radius-lg);background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);height:300px;position:relative;overflow:hidden}.dashboard-card-skeleton .skeleton-graphic{border-radius:0;position:absolute;inset:0}.dashboard-card-skeleton .skeleton-stat{bottom:60px;left:var(--space-6);width:80px;height:36px;position:absolute}.dashboard-card-skeleton .skeleton-label-sm{bottom:30px;left:var(--space-6);width:140px;height:12px;position:absolute}.table-skeleton{gap:var(--space-3);flex-direction:column;display:flex}.table-skeleton__row{gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-subtle);display:grid}.table-skeleton__row:last-child{border-bottom:none}.error-banner{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-error-bg);border:1px solid var(--color-error);border-radius:var(--radius-lg);color:var(--color-error);font-size:var(--font-size-sm);margin-bottom:var(--space-4);display:flex}.table-body--loading{opacity:.5;pointer-events:none}.skeleton-overlay-row td{padding:var(--space-2);text-align:center}.skeleton-overlay{justify-content:center;align-items:center;gap:var(--space-2);color:var(--color-text-tertiary);font-size:var(--font-size-sm);display:flex}.color-pill{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;background:var(--color-pill-bg,var(--color-bg-elevated));color:var(--color-pill-text,var(--color-text-primary));border-radius:9999px;line-height:1;display:inline-flex}.color-pill--swatch{justify-content:center;min-width:48px;min-height:20px}.network-map{width:100%;height:var(--network-map-height,600px);background-color:var(--color-map-background);border-radius:var(--radius-lg);border:1px solid var(--color-border);position:relative;overflow:hidden}.network-map .leaflet-container{background:var(--color-map-tile-bg)!important}.network-map .lane-line{transition:opacity var(--transition-base)}.network-map .lane-line:hover{opacity:1}.network-map .lane-arrow{color:var(--color-map-lane);background:0 0;border:none}.network-map .lane-arrow--selected{color:var(--color-map-lane-selected)}.network-map .site-marker-pulse{animation:2s ease-in-out infinite marker-pulse}@keyframes marker-pulse{0%,to{r:7;opacity:1}50%{r:10;opacity:.7}}.network-map .leaflet-control-attribution{font-size:var(--font-size-2xs);background-color:var(--color-map-attribution-bg)!important;color:var(--color-map-attribution-text)!important}.network-map .leaflet-control-attribution a{color:var(--color-map-attribution-text)!important}.map-legend{bottom:var(--space-8);right:var(--space-3);z-index:1000;background:var(--color-map-legend-bg);border:1px solid var(--color-map-legend-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-map-legend-text);box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:absolute}.legend-item{align-items:center;gap:var(--space-2);white-space:nowrap;display:flex}.legend-dot{background:var(--legend-dot-color,var(--color-map-site-default));border-radius:50%;flex-shrink:0;width:10px;height:10px}.legend-lane-arrow{flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:flex}.legend-arrow-icon{color:var(--color-map-lane)}.legend-lane-line{background:var(--color-map-lane);border-radius:999px;flex-shrink:0;width:16px;height:4px}.legend-lane-line--cross-border{background:var(--color-map-lane-cross-border)}.legend-section__title{font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);color:var(--color-map-legend-title);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1);display:block}.legend-divider{background:var(--color-border-subtle);height:1px;margin:var(--space-1) 0}.legend-ring{border:2px solid;border-radius:50%;flex-shrink:0;width:12px;height:12px}.legend-ring--ok{border-color:var(--color-map-capacity-ok);background:0 0}.legend-ring--over{border-color:var(--color-map-capacity-over);background:0 0}.network-map .capacity-ring{animation:2s ease-in-out infinite capacity-ring-pulse}@keyframes capacity-ring-pulse{0%,to{opacity:.9}50%{opacity:.5}}.network-map .capacity-ring--over{stroke:var(--color-map-capacity-over)}.network-map .capacity-ring--ok{stroke:var(--color-map-capacity-ok)}.grid{gap:var(--space-6);grid-template-columns:repeat(12,1fr);display:grid}.col-1{grid-column:span 1}.col-2{grid-column:span 2}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-9{grid-column:span 9}.col-10{grid-column:span 10}.col-11{grid-column:span 11}.col-12{grid-column:span 12}@media (width<=1280px){.lg\:col-6{grid-column:span 6}.lg\:col-12{grid-column:span 12}}@media (width<=1024px){.md\:col-6{grid-column:span 6}.md\:col-12{grid-column:span 12}.grid{gap:var(--space-4)}}@media (width<=768px){.sm\:col-12{grid-column:span 12}.grid{gap:var(--space-3)}}.page{flex-direction:column;flex:1;width:100%;display:flex}.page-content{width:100%;padding-left:var(--space-8);padding-right:var(--space-8);gap:var(--space-8);flex:1;display:flex}.page-main{width:100%;min-width:0;padding-top:var(--space-6);padding-bottom:var(--space-6);flex:1}.page-header{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.page-content{gap:var(--space-6);display:flex}.page-sidebar{width:var(--width-sidebar-expanded);flex-shrink:0}.page-main{flex:1;min-width:0}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm);color:var(--color-text-primary)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.text-muted{color:var(--color-text-tertiary)}.numeric-value{font-family:var(--font-family-mono);font-size:var(--font-size-xs);text-align:right}.numeric-value--positive{color:var(--color-success);font-family:var(--font-family-mono);font-size:var(--font-size-xs);text-align:right}.numeric-value--negative{color:var(--color-error);font-family:var(--font-family-mono);font-size:var(--font-size-xs);text-align:right}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.cursor-help,.tooltip-target{cursor:help}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.font-mono{font-family:var(--font-family-mono);font-size:var(--font-size-xs)}.font-mono-sm{font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.font-mono-base{font-family:var(--font-family-mono);font-size:var(--font-size-base)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.m-0{margin:0!important}.m-1{margin:var(--space-1)!important}.m-2{margin:var(--space-2)!important}.m-3{margin:var(--space-3)!important}.m-4{margin:var(--space-4)!important}.m-6{margin:var(--space-6)!important}.m-8{margin:var(--space-8)!important}.mt-0{margin-top:0!important}.mt-1{margin-top:var(--space-1)!important}.mt-2{margin-top:var(--space-2)!important}.mt-3{margin-top:var(--space-3)!important}.mt-4{margin-top:var(--space-4)!important}.mt-6{margin-top:var(--space-6)!important}.mt-8{margin-top:var(--space-8)!important}.mt-10{margin-top:var(--space-10)!important}.mt-12{margin-top:var(--space-12)!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:var(--space-1)!important}.mb-2{margin-bottom:var(--space-2)!important}.mb-3{margin-bottom:var(--space-3)!important}.mb-4{margin-bottom:var(--space-4)!important}.mb-6{margin-bottom:var(--space-6)!important}.mb-8{margin-bottom:var(--space-8)!important}.mb-10{margin-bottom:var(--space-10)!important}.mb-12{margin-bottom:var(--space-12)!important}.ml-0{margin-left:0!important}.ml-1{margin-left:var(--space-1)!important}.ml-2{margin-left:var(--space-2)!important}.ml-4{margin-left:var(--space-4)!important}.ml-auto{margin-left:auto!important}.mr-0{margin-right:0!important}.mr-1{margin-right:var(--space-1)!important}.mr-2{margin-right:var(--space-2)!important}.mr-4{margin-right:var(--space-4)!important}.mr-auto{margin-right:auto!important}.p-0{padding:0!important}.p-1{padding:var(--space-1)!important}.p-2{padding:var(--space-2)!important}.p-3{padding:var(--space-3)!important}.p-4{padding:var(--space-4)!important}.p-6{padding:var(--space-6)!important}.p-8{padding:var(--space-8)!important}.p-10{padding:var(--space-10)!important}.pt-0{padding-top:0!important}.pt-1{padding-top:var(--space-1)!important}.pt-2{padding-top:var(--space-2)!important}.pt-4{padding-top:var(--space-4)!important}.pt-6{padding-top:var(--space-6)!important}.pt-8{padding-top:var(--space-8)!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:var(--space-1)!important}.pb-2{padding-bottom:var(--space-2)!important}.pb-4{padding-bottom:var(--space-4)!important}.pb-6{padding-bottom:var(--space-6)!important}.pb-8{padding-bottom:var(--space-8)!important}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.relative{position:relative}.absolute{position:absolute}.sticky{position:sticky}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.min-h-600{min-height:600px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.global-tooltip{z-index:9999;background:var(--color-tooltip-bg);color:var(--color-tooltip-text);border:1px solid var(--color-tooltip-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);box-shadow:var(--color-tooltip-shadow);white-space:pre-line;pointer-events:none;opacity:0;text-align:center;width:fit-content;min-width:80px;max-width:320px;top:var(--tooltip-top,0);left:var(--tooltip-left,0);transition:opacity .15s;position:fixed;transform:translate(-50%,-100%)}.global-tooltip--wide{text-align:left}.global-tooltip.visible{opacity:1}.global-tooltip--map{background:var(--color-map-tooltip-bg);color:var(--color-map-tooltip-text);border-color:var(--color-map-tooltip-border)}.global-tooltip--html{white-space:normal;white-space:normal}.financial-summary-page{width:100%}.financial-summary-page .loading-state,.financial-summary-page .empty-state{text-align:center;padding:var(--space-8);color:var(--color-text-tertiary)}.financial-summary-page .charts-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.reference-data-page{width:100%}.reference-data-page .tab-content,.reference-data-page .data-section{margin-top:var(--space-4)}.reference-data-page .actions-cell{gap:var(--space-2);justify-content:flex-end;display:flex}.reference-data-page .code-cell{font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.reference-data-page .form-grid{gap:var(--space-4);flex-direction:column;display:flex}.reference-data-page .color-input-wrapper{align-items:center;gap:var(--space-2);display:flex}.reference-data-page .input--color{cursor:pointer;width:50px;height:32px;padding:2px}.financial-summary-page .chart-container{width:100%;min-height:300px}.financial-summary-page .kpi-value--mono{font-family:var(--font-family-mono)}@media (width<=900px){.financial-summary-page .charts-grid{grid-template-columns:1fr}}.simulation-detail-page{width:100%}.simulation-detail-page .kpi-grid{margin-bottom:0}.simulation-detail-page .simulation-detail-grid,.network-detail-page .network-detail-grid,.period-detail-page .period-detail-grid{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:1.15fr .85fr;display:grid}.simulation-detail-page .map-section,.network-detail-page .map-section,.period-detail-page .map-section{flex-direction:column;min-height:500px;display:flex}.simulation-detail-page .map-placeholder,.network-detail-page .map-placeholder,.period-detail-page .map-placeholder{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;color:var(--color-text-tertiary);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.simulation-detail-page .map-placeholder-icon,.network-detail-page .map-placeholder-icon,.period-detail-page .map-placeholder-icon{margin-bottom:var(--space-4);opacity:.5}.simulation-detail-page .map-placeholder-text,.network-detail-page .map-placeholder-text,.period-detail-page .map-placeholder-text{font-size:var(--font-size-sm);max-width:240px}.simulation-detail-page .network-map-wrapper,.network-detail-page .network-map-wrapper,.period-detail-page .network-map-wrapper{flex:1;min-height:500px}.simulation-detail-page .period-table-card .card__header,.network-detail-page .lanes-table-card .card__header,.financial-summary-page .card .card__header,.period-detail-page .network-selection-card .card__header{padding-left:0;padding-right:0}.simulation-detail-page .period-table-card,.network-detail-page .lanes-table-card,.period-detail-page .network-selection-card{flex-direction:column;height:100%;display:flex}.simulation-detail-page .period-table-card .table-container,.network-detail-page .lanes-table-card .table-container,.period-detail-page .network-selection-card .table-container{flex:1}.network-detail-page .lanes-table-card .table-container,.simulation-detail-page .period-table-card .table-container{min-height:26rem}.simulation-detail-page .kpi-grid--spaced{margin-bottom:0}.simulation-detail-page .map-section,.network-detail-page .map-section{flex-direction:column;min-height:500px;display:flex}.simulation-detail-page .map-placeholder,.network-detail-page .map-placeholder{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;color:var(--color-text-tertiary);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.simulation-detail-page .map-placeholder-icon,.network-detail-page .map-placeholder-icon{margin-bottom:var(--space-4);opacity:.5}.simulation-detail-page .map-placeholder-text,.network-detail-page .map-placeholder-text{font-size:var(--font-size-sm);max-width:240px}.simulation-detail-page .network-map-wrapper,.network-detail-page .network-map-wrapper{flex:1;min-height:500px}.simulation-detail-page .period-table-card .card__header,.network-detail-page .lanes-table-card .card__header,.financial-summary-page .card .card__header{padding-left:0;padding-right:0}.simulation-detail-page .period-table-card,.network-detail-page .lanes-table-card{flex-direction:column;height:100%;display:flex}.simulation-detail-page .period-table-card .table-container,.network-detail-page .lanes-table-card .table-container{flex:1}.simulation-detail-page .form-grid{gap:var(--space-4);flex-direction:column;display:flex}.simulation-detail-page .section-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.simulation-detail-page .section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.simulation-detail-page .baseline-cell{font-family:var(--font-family-mono);cursor:help}.simulation-detail-page .inline-map{min-height:600px}.simulation-detail-page .empty-card{padding:var(--space-8);text-align:center}.simulation-detail-page .skeleton-title{width:300px;margin-bottom:var(--space-2)}.simulation-detail-page .skeleton-subtitle{width:500px;margin-bottom:var(--space-6)}.simulation-detail-page .skeleton-cell{width:200px;height:24px;margin-bottom:var(--space-4)}.period-detail-page .tab-card{padding:var(--space-4) var(--space-5)}.period-detail-page .tab-section-card{padding:var(--space-5)}.period-detail-page .summary-card{padding:var(--space-3);flex:1}.period-detail-page .network-map-wrapper{min-height:600px}.period-detail-page .base-tag{color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.period-detail-page .mono-strong{font-weight:var(--font-weight-semibold)}.period-detail-page .mono{font-family:var(--font-family-mono)}.create-simulation-modal{gap:var(--space-4);flex-direction:column;display:flex}.create-simulation-modal .step-content{padding:var(--space-4) 0 var(--space-8)}.create-simulation-modal .form-grid{gap:var(--space-4);flex-direction:column;width:100%;display:flex}.create-simulation-modal .review-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.create-simulation-modal .review-item{gap:var(--space-1);flex-direction:column;display:flex}.create-simulation-modal .review-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.create-simulation-modal .review-value{font-size:var(--font-size-base);color:var(--color-text-primary);font-weight:var(--font-weight-medium);font-family:var(--font-family-mono)}.create-simulation-modal .review-value--positive{color:var(--color-success)}.create-simulation-modal .review-value--currency{font-family:var(--font-family-mono);color:var(--color-success)}.create-simulation-modal .step-navigation,.create-simulation-modal__dialog .modal__footer .step-navigation{justify-content:flex-end;align-items:center;gap:var(--space-3);width:100%;display:flex}.period-detail-page .target-label{margin-left:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.period-detail-page .target-type--derived{color:var(--color-text-tertiary);font-style:italic}.period-detail-page .utilization--high{color:var(--color-error)}.period-detail-page .utilization--low{color:var(--color-warning)}.period-detail-page .utilization--ok{color:var(--color-text-primary)}.period-detail-page .section-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.period-detail-page .section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.period-detail-page .section-header__actions{align-items:center;gap:var(--space-2);display:flex}.period-detail-page .section-subtitle{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.period-detail-page .section-description{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:var(--space-1) 0 var(--space-3)}.period-detail-page .capacity-split{font-size:var(--font-size-xs);flex-direction:column;line-height:1.2;display:flex}.period-detail-page .capacity-split__manual{color:var(--color-conventional)}.period-detail-page .capacity-split__auto{color:var(--color-autonomous)}.period-detail-page .total-row{padding:var(--space-3) 0;border-top:1px solid var(--color-border);text-align:right;font-size:var(--font-size-base);color:var(--color-text-primary)}.period-detail-page .assignment-summary-cards{gap:var(--space-4);margin:var(--space-4) 0;grid-template-columns:repeat(3,1fr);display:grid}.period-detail-page .summary-card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);gap:var(--space-1);flex-direction:column;display:flex}.period-detail-page .summary-card__label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.period-detail-page .summary-card__value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);font-family:var(--font-family-mono)}.period-detail-page .summary-card__value-row{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.period-detail-page .summary-card__percentage{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);white-space:nowrap}.period-detail-page .summary-card--over .summary-card__percentage{color:var(--color-error)}.period-detail-page .summary-card--over{border-color:var(--color-error);background:var(--color-error-bg)}.period-detail-page .summary-card--over .summary-card__value{color:var(--color-error)}.period-detail-page .capacity-dot{background:var(--color-text-tertiary);border-radius:50%;width:10px;height:10px;display:inline-block}.period-detail-page .capacity-dot--ok{background:var(--color-success)}.period-detail-page .capacity-dot--over{background:var(--color-error)}.period-detail-page .capacity-dot--incompatible{background:var(--color-warning)}.period-detail-page .capacity-dot--unknown{background:var(--color-text-tertiary);opacity:.5}.period-detail-page .capacity-dot--hoverable{cursor:help}.color-swatch-preview{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-swatch-bg,var(--color-bg-elevated));flex-shrink:0;width:32px;height:32px;display:inline-block}.period-detail-page .form-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.period-detail-page .opex-derived-note{padding:0 var(--space-5);margin-top:0;margin-bottom:var(--space-3)}.period-detail-page .empty-state{text-align:center;padding:var(--space-8);color:var(--color-text-tertiary)}.period-detail-page .icon-spin{animation:1s linear infinite icon-spin}@keyframes icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.networks-page,.network-detail-page{width:100%}.network-detail-page .loading-state{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-8);color:var(--color-text-tertiary);font-size:var(--font-size-sm);display:flex}.network-detail-page .error-banner{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);margin-bottom:var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-size-sm);display:flex}.network-detail-page .empty-state{padding:var(--space-8);text-align:center;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.network-detail-page .group-badge-row{margin-top:var(--space-1)}.network-detail-page .summary-cards{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.network-detail-page .card-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1)}.network-detail-page .card-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.network-detail-page .section-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.network-detail-page .section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.network-detail-page .form-error{margin-bottom:var(--space-4)}.network-detail-page .form-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.network-detail-page .lane-modal-body{max-height:none}@media (width<=768px){.network-detail-page .section-header{align-items:flex-start;gap:var(--space-2);flex-direction:column}}.networks-table{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.networks-table .table-header,.networks-table .group-row,.networks-table .network-row{grid-template-columns:1fr 100px 100px 100px 160px;display:grid}.networks-table .table-header{padding:var(--space-2) var(--space-4);background:var(--color-bg-elevated);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border)}.networks-table .group-row{padding:var(--space-2) var(--space-4);background:var(--color-bg-surface);cursor:pointer;border-bottom:1px solid var(--color-border);transition:background var(--transition-fast);align-items:center}.networks-table .group-row:hover{background:var(--color-bg-elevated)}.networks-table .group-row:last-child{border-bottom:none}.networks-table .network-row{padding:var(--space-2) var(--space-4) var(--space-2) calc(var(--space-4) + 24px);background:var(--color-bg-base);cursor:pointer;border-bottom:1px solid var(--color-border);transition:background var(--transition-fast);align-items:center}.networks-table .network-row:hover{background:var(--color-bg-elevated)}.networks-table .network-row:last-child{border-bottom:none}.networks-table .col-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.networks-table .col-name--right{text-align:right}.networks-table .group-name{align-items:center;gap:var(--space-1);display:flex}.networks-table .group-label{font-weight:var(--font-weight-semibold)}.networks-table .network-name{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.networks-table .col-count,.networks-table .col-lanes,.networks-table .col-sites{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:right;font-family:var(--font-family-mono)}.networks-table .col-actions{justify-content:flex-end;gap:var(--space-1);display:flex}.networks-page .skeleton-line{height:var(--skeleton-line-height,16px);width:var(--skeleton-line-width,120px)}.networks-page .skeleton-line--short{width:30px}.networks-page .skeleton-line--label{width:150px;height:14px}.networks-page .skeleton-line--mini{width:20px;height:14px}.networks-table .group-actions{justify-content:flex-end}.networks-table .chevron{color:var(--color-text-tertiary);transition:transform var(--transition-fast)}.networks-page .form-error{margin-bottom:var(--space-4)}.networks-page .form-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.vehicles-page{width:100%}.vehicles-table .skeleton--w-120{width:120px}.vehicles-table .skeleton--w-150{width:150px}.vehicles-table .skeleton--w-80{width:80px}.vehicles-table .skeleton--w-70{width:70px}.vehicles-table .skeleton--w-60{width:60px}.vehicles-table .skeleton--w-50{width:50px}.vehicles-table .skeleton--w-40{width:40px}.vehicles-table .skeleton--w-30{width:30px}.vehicles-table .skeleton--h-16{height:16px}.vehicles-table .skeleton--h-14{height:14px}.vehicles-table .sort-indicator{margin-left:var(--space-1)}.vehicles-table{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}.vehicles-table .table-header,.vehicles-table .group-row,.vehicles-table .vehicle-row{grid-template-columns:minmax(240px,2.8fr) minmax(140px,1fr) minmax(140px,1fr) minmax(160px,1.2fr) minmax(120px,.9fr) minmax(130px,1fr) minmax(120px,.9fr) minmax(120px,.9fr) minmax(120px,.8fr);min-width:1060px;display:grid}.vehicles-table .table-header{padding:var(--space-2) var(--space-4);background:var(--color-bg-elevated);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);text-align:left}.vehicles-table .group-row{padding:var(--space-2) var(--space-4);background:var(--color-bg-surface);cursor:pointer;border-bottom:1px solid var(--color-border);transition:background var(--transition-fast);align-items:center}.vehicles-table .group-row:hover{background:var(--color-bg-elevated)}.vehicles-table .group-row:last-child{border-bottom:none}.vehicles-table .vehicle-row{padding:var(--space-2) var(--space-4) var(--space-2) calc(var(--space-4) + 24px);background:var(--color-bg-base);min-height:36px;font-size:var(--font-size-sm);border-bottom:1px solid var(--color-border);transition:background var(--transition-fast);align-items:center}.vehicles-table .vehicle-row--alt{background:var(--color-bg-surface)}.vehicles-table .vehicle-row:hover{background:var(--color-bg-elevated)}.vehicles-table .vehicle-row:last-child{border-bottom:none}.vehicles-table .col-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-align:left;justify-content:flex-start;align-items:center;min-width:0;display:flex}.vehicles-table .group-name{gap:var(--space-1);min-width:0;display:flex}.vehicles-table .group-label{font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vehicles-table .vehicle-name{color:var(--color-text-secondary);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vehicles-table .col-count{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-family:var(--font-family-mono);text-align:left;justify-content:flex-start;align-items:center;display:flex}.vehicles-table .col-type,.vehicles-table .col-propulsion{color:var(--color-text-secondary);text-align:left;justify-content:flex-start;align-items:center;min-width:0;display:flex}.vehicles-table .col-type-header,.vehicles-table .col-propulsion-header{text-align:left}.vehicles-table .col-capacity,.vehicles-table .col-range,.vehicles-table .col-cost,.vehicles-table .col-energy{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-family:var(--font-family-mono);text-align:right;white-space:nowrap;justify-content:flex-end;align-items:center;display:flex}.vehicles-table .col-energy-header,.vehicles-table .col-capacity-header,.vehicles-table .col-range-header,.vehicles-table .col-cost-header{text-align:right}.vehicles-table .col-actions{justify-content:flex-end;gap:var(--space-1);text-align:right;display:flex}.vehicles-table .sort-button{color:inherit;font:inherit;text-transform:uppercase;letter-spacing:.05em;justify-content:flex-end;align-items:center;gap:var(--space-1);cursor:pointer;background:0 0;border:none;padding:0;display:flex}.vehicles-table .sort-button:hover{color:var(--color-text-primary)}.vehicles-table .group-actions{justify-content:flex-end}.vehicles-table .chevron{color:var(--color-text-tertiary);transition:transform var(--transition-fast)}.vehicles-page .form-error{margin-bottom:var(--space-4)}.vehicles-page .form-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.vehicles-page .notification{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.vehicles-page .notification--error{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error)}.map-page,.networks-map-page,.sites-map-page{flex-direction:column;width:100%;display:flex;position:relative}.map-page{height:calc(100vh - 64px)}.networks-map-page,.sites-map-page{height:calc(100vh - 112px)}.map-top-bar{top:var(--space-3);left:var(--space-3);right:var(--space-3);z-index:1000;background-color:var(--color-bg-elevated);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);align-items:center;gap:var(--space-4);box-shadow:var(--shadow-md);display:flex;position:absolute}.breadcrumb-nav--compact{margin-bottom:0}.map-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.map-count{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-left:auto}.map-error-banner{top:70px;left:var(--space-3);right:var(--space-3);z-index:1000;background-color:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);position:absolute}.map-loading{justify-content:center;align-items:center;gap:var(--space-3);height:100%;color:var(--color-text-secondary);font-size:var(--font-size-sm);display:flex}.map-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.map-container{flex:1;min-height:0}.map-side-panel{top:60px;right:calc(var(--space-3));background-color:var(--color-bg-elevated);border-radius:var(--radius-lg);width:280px;padding:var(--space-4);z-index:1000;box-shadow:var(--shadow-md);position:absolute}.map-side-panel--simulation{top:60px;right:var(--space-3)}.panel-content{flex-direction:column;display:flex}.panel-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-1)}.panel-subtitle{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0 0 var(--space-3)}.panel-row{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);display:flex}.panel-value{text-align:right;word-break:break-word}.panel-row:last-of-type{border-bottom:none}.panel-label{color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.panel-actions{gap:var(--space-2);margin-top:var(--space-4);display:flex}.panel-actions .btn{flex:1;justify-content:center}.map-period-slider{bottom:var(--space-3);left:var(--space-3);right:var(--space-3);z-index:5;background-color:var(--color-bg-elevated);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);align-items:center;gap:var(--space-3);box-shadow:var(--shadow-md);display:flex;position:absolute}.map-page .map-container{flex:1;min-height:0}.slider{accent-color:var(--color-primary);flex:1}.slide-enter-active,.slide-leave-active{transition:transform .2s,opacity .2s}.slide-enter-from,.slide-leave-to{opacity:0;transform:translate(20px)}.simulation-period-page{width:100%}.period-content{gap:var(--space-4);margin-top:var(--space-4);flex-direction:column;display:flex}.dashboard-page,.sites-page{width:100%}.sites-page .actions-cell{gap:var(--space-1);justify-content:flex-end;width:100%;display:flex}.sites-page .form-error{margin-bottom:var(--space-4)}.sites-page .notification{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.sites-page .notification--success{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success)}.sites-page .notification--error{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error)}.sites-page .notification__close{cursor:pointer;font-size:var(--font-size-lg);color:inherit;opacity:.7;background:0 0;border:none}.sites-page .notification__close:hover{opacity:1}.sites-page .site-form,.site-form{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.sites-page .site-form__fields,.site-form__fields{gap:var(--space-4);flex-direction:column;display:flex}.sites-page .form-grid,.site-form .form-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.sites-page .site-form__map,.site-form__map{border-radius:var(--radius-lg);border:1px solid var(--color-border);min-height:400px;overflow:hidden}.sites-page .site-form__map .leaflet-container,.site-form__map .leaflet-container{background:var(--color-bg-base)}.sites-page .site-marker,.site-marker{border:2px solid var(--color-map-lane-selected);width:12px;height:12px;box-shadow:var(--shadow-sm);background:var(--site-marker-color,var(--color-map-site-outline));border-radius:50%}.period-detail-page .period-detail-tab-card{padding:var(--space-4) var(--space-5)}.period-detail-page .period-detail-section-card{padding:var(--space-5)}.period-detail-page .period-detail-summary-card{padding:var(--space-3);flex:1}
