@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/fira-sans-latin-300-normal-B2LrTgQS.woff2)format("woff2"),url(/assets/fira-sans-latin-300-normal-Dwkm-oZ7.woff)format("woff")}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-latin-400-normal-a0AnQzuD.woff2)format("woff2"),url(/assets/fira-sans-latin-400-normal-66xCkunx.woff)format("woff")}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-latin-500-normal-Bvbxc8ch.woff2)format("woff2"),url(/assets/fira-sans-latin-500-normal-Bkfzcwmr.woff)format("woff")}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-latin-700-normal-CRhwpWTq.woff2)format("woff2"),url(/assets/fira-sans-latin-700-normal-DgqLm3Fi.woff)format("woff")}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-mono-latin-400-normal-DVTTRLHv.woff2)format("woff2"),url(/assets/fira-mono-latin-400-normal-C3FQ26ho.woff)format("woff")}:root{--renfe-magenta:#8f0161;--renfe-cool-gray-11:#656366;--renfe-cool-gray-9:#919193;--renfe-cool-gray-3:#d8d8da;--renfe-silver:#adabac;--renfe-cream:#f1e6c6;--magenta-50:#f9eef5;--magenta-100:#f0d6e6;--magenta-200:#dcaac8;--magenta-300:#c377a5;--magenta-400:#a94182;--magenta-500:#8f0161;--magenta-600:#7b0053;--magenta-700:#620043;--magenta-800:#4a0032;--magenta-900:#320022;--gray-0:#fff;--gray-50:#f7f7f8;--gray-100:#eeeeef;--gray-200:#d8d8da;--gray-300:#c5c4c6;--gray-400:#adabac;--gray-500:#919193;--gray-600:#7b797c;--gray-700:#656366;--gray-800:#4a494b;--gray-900:#2c2b2d;--gray-1000:#1a191b;--cream-50:#faf6ea;--cream-100:#f1e6c6;--cream-200:#e2d3a9;--brand-avlo:#00c8c8;--brand-cercanias:#e30613;--brand-ave:#919193;--brand-transcantabrico:#0a5a7a;--brand-al-andalus:#a82c10;--brand-costa-verde:#0a6a4a;--brand-lujo-gold:#c9a227;--status-success:#0a6a4a;--status-success-surface:#e6f2ed;--status-warning:#b07d10;--status-warning-surface:#fbf2dc;--status-danger:#e30613;--status-danger-surface:#fdeaeb;--status-info:#0a5a7a;--status-info-surface:#e6f0f4;--brand:var(--magenta-500);--brand-hover:var(--magenta-600);--brand-active:var(--magenta-700);--brand-subtle:var(--magenta-50);--brand-border:var(--magenta-200);--on-brand:#fff;--text-strong:var(--gray-1000);--text-body:var(--gray-800);--text-muted:var(--gray-600);--text-faint:var(--gray-500);--text-brand:var(--magenta-500);--text-on-dark:#fff;--text-on-dark-muted:#ffffffb8;--text-link:var(--magenta-500);--text-link-hover:var(--magenta-700);--surface-page:var(--gray-50);--surface-card:#fff;--surface-sunken:var(--gray-100);--surface-inverse:var(--gray-1000);--surface-brand:var(--magenta-500);--surface-brand-deep:var(--magenta-800);--surface-cream:var(--cream-100);--border-subtle:var(--gray-200);--border-default:var(--gray-300);--border-strong:var(--gray-500);--border-focus:var(--magenta-500);--overlay-scrim:#1a191b8c;--overlay-protect:linear-gradient(180deg,#1a191b00 0%,#1a191b9e 62%,#1a191bd1 100%);--overlay-brand-protect:linear-gradient(90deg,#4a0032e0 0%,#4a00328c 55%,#4a003200 100%);--font-core:"Renfe Vialog","Fira Sans",-apple-system,"Segoe UI",sans-serif;--font-display:var(--font-core);--font-mono:"Renfe Mono","Fira Mono",ui-monospace,"SFMono-Regular",monospace;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-bold:700;--fs-3xs:11px;--fs-2xs:12px;--fs-xs:13px;--fs-sm:14px;--fs-md:16px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:28px;--fs-3xl:34px;--fs-4xl:44px;--fs-5xl:56px;--fs-6xl:72px;--lh-tight:1.06;--lh-snug:1.2;--lh-normal:1.45;--lh-relaxed:1.6;--ls-tight:-.02em;--ls-snug:-.01em;--ls-normal:0;--ls-wide:.04em;--ls-caps:.08em;--text-display:var(--fw-bold) var(--fs-5xl)/var(--lh-tight) var(--font-display);--text-h1:var(--fw-bold) var(--fs-3xl)/var(--lh-snug) var(--font-display);--text-h2:var(--fw-bold) var(--fs-2xl)/var(--lh-snug) var(--font-display);--text-h3:var(--fw-medium) var(--fs-xl)/var(--lh-snug) var(--font-core);--text-lead:var(--fw-light) var(--fs-lg)/var(--lh-normal) var(--font-core);--text-base:var(--fw-regular) var(--fs-sm)/var(--lh-normal) var(--font-core);--text-small:var(--fw-regular) var(--fs-2xs)/var(--lh-normal) var(--font-core);--text-label:var(--fw-bold) var(--fs-3xs)/1.2 var(--font-core);--text-numeric:var(--fw-bold) var(--fs-xl)/1.1 var(--font-core);--fvn-tabular:tabular-nums;--space-0:0px;--space-1:2px;--space-2:4px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:20px;--space-7:24px;--space-8:32px;--space-9:40px;--space-10:48px;--space-11:64px;--space-12:80px;--space-13:104px;--radius-none:0px;--radius-xs:2px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:20px;--radius-pill:999px;--radius-card:var(--radius-md);--radius-control:var(--radius-sm);--border-width:1px;--border-width-strong:2px;--focus-ring-width:2px;--focus-ring-offset:2px;--control-h-sm:32px;--control-h-md:40px;--control-h-lg:48px;--container-sm:640px;--container-md:960px;--container-lg:1200px;--container-xl:1360px;--gutter:24px;--gutter-wide:40px;--shadow-none:none;--shadow-xs:0 1px 2px #1a191b0f;--shadow-sm:0 1px 3px #1a191b14,0 1px 2px #1a191b0a;--shadow-md:0 2px 8px #1a191b1a;--shadow-lg:0 8px 24px #1a191b1f;--shadow-xl:0 16px 48px #1a191b2e;--shadow-inset-top:inset 0 1px 0 #fff9;--shadow-focus:0 0 0 3px #8f016138;--blur-glass:saturate(140%) blur(14px);--surface-glass:#ffffffb8;--surface-glass-dark:#1a191b8f;--dur-instant:80ms;--dur-fast:.14s;--dur-base:.22s;--dur-slow:.32s;--dur-slower:.48s;--ease-standard:cubic-bezier(.2,0,.2,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in:cubic-bezier(.4,0,1,1);--ease-emphasis:cubic-bezier(.2,.7,.2,1);--transition-control:background-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}@media (prefers-reduced-motion:reduce){:root{--dur-instant:0s;--dur-fast:0s;--dur-base:0s;--dur-slow:0s;--dur-slower:0s}}*,:before,:after{box-sizing:border-box}body{font:var(--text-base);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4,p{margin:0}h1{font:var(--text-h1);color:var(--text-strong);letter-spacing:var(--ls-snug)}h2{font:var(--text-h2);color:var(--text-strong);letter-spacing:var(--ls-snug)}h3{font:var(--text-h3);color:var(--text-strong)}a{color:var(--text-link);border-bottom:1px solid var(--magenta-200);transition:var(--transition-control);text-decoration:none}a:hover{color:var(--text-link-hover);border-bottom-color:var(--magenta-500)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:var(--focus-ring-width) solid var(--border-focus);outline-offset:var(--focus-ring-offset)}.renfe-eyebrow{font:var(--text-label);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-muted)}.renfe-tabular{font-variant-numeric:var(--fvn-tabular)}html,body{height:100%}a[class]{border-bottom:none}.app-shell{background:var(--surface-page);min-height:100vh}.top-rule{background:var(--brand);height:4px}.topbar{align-items:center;gap:var(--space-5);height:56px;padding:0 var(--space-7);background:var(--surface-card);border-bottom:1px solid var(--border-subtle);display:flex}.topbar .logo-mark{height:18px;display:block}.topbar .divider{background:var(--border-subtle);width:1px;height:20px}.depot-badge{align-items:center;gap:var(--space-3);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-strong);display:flex}.depot-badge .dot{background:var(--brand);border-radius:50%;flex:none;width:8px;height:8px}.depot-badge .code{font-size:var(--fs-3xs);font-weight:var(--fw-bold);letter-spacing:var(--ls-caps);color:var(--text-muted);text-transform:uppercase}.topbar .spacer{flex:1}.user-menu{align-items:center;gap:var(--space-3);font-size:var(--fs-xs);color:var(--text-body);display:flex}.user-menu button{margin-left:var(--space-2);font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:1px solid #0000;padding:0}.user-menu button:hover{color:var(--text-link-hover);border-bottom-color:currentColor}.user-menu{position:relative}.user-menu .account-trigger{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);color:var(--text-body);border:1px solid #0000;margin:0;display:flex}.user-menu .account-trigger:hover,.user-menu .account-trigger[aria-expanded=true]{background:var(--gray-100);color:var(--text-body);border-color:var(--border-subtle)}.account-menu{top:calc(100% + var(--space-2));z-index:10;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);min-width:240px;box-shadow:var(--shadow-md);padding:var(--space-3);position:absolute;right:0}.account-menu .who{padding:var(--space-3) var(--space-4) var(--space-4);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-3)}.account-menu .who .name{font-weight:var(--fw-bold);color:var(--text-strong);font-size:var(--fs-xs)}.account-menu .who .meta{font-size:var(--fs-2xs);color:var(--text-muted)}.account-menu .field-error{padding:var(--space-3) var(--space-4);margin:0}.account-menu a,.account-menu button{text-align:left;width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-xs);color:var(--text-body);cursor:pointer;background:0 0;border:none;margin:0;display:block}.account-menu a:hover,.account-menu button:hover{background:var(--gray-100);color:var(--text-body);border:none}.avatar{background:var(--brand-subtle);width:28px;height:28px;color:var(--brand);font-size:var(--fs-3xs);font-weight:var(--fw-bold);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.shell-body{min-height:calc(100vh - 60px);display:flex}.sidenav{background:var(--surface-card);border-right:1px solid var(--border-subtle);width:84px;padding-top:var(--space-5);align-items:center;gap:var(--space-2);flex-direction:column;flex:none;display:flex}.nav-item{border-radius:var(--radius-md);justify-content:center;align-items:center;gap:var(--space-2);width:72px;height:56px;color:var(--text-muted);transition:var(--transition-control);flex-direction:column;text-decoration:none;display:flex}.nav-item .label{font-size:10.5px;font-weight:var(--fw-bold);letter-spacing:var(--ls-normal)}.nav-item.active{background:var(--brand-subtle);color:var(--brand)}.nav-item:hover:not(.active){background:var(--gray-100);color:var(--text-body)}.nav-item svg{width:20px;height:20px}.main{min-width:0;padding:var(--space-8) var(--space-9) 80px;gap:var(--space-6);flex-direction:column;flex:1;display:flex}.page-head{justify-content:space-between;align-items:center;gap:var(--space-5);display:flex}.page-head>div{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.page-head h1{font-size:var(--fs-xl);font-weight:var(--fw-medium)}.btn{appearance:none;border-radius:var(--radius-control);font:inherit;font-weight:var(--fw-bold);height:var(--control-h-md);padding:0 var(--space-5);font-size:var(--fs-sm);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-3);transition:var(--transition-control);white-space:nowrap;border:1px solid #0000;line-height:1;display:inline-flex}.btn:disabled{cursor:not-allowed}.btn svg{flex:none;width:16px;height:16px}.btn-primary{background:var(--brand);color:var(--on-brand)}.btn-primary:hover:not(:disabled){background:var(--brand-hover)}.btn-primary:active:not(:disabled){background:var(--brand-active);transform:translateY(1px)}.btn-primary:disabled{background:var(--gray-200);color:var(--gray-500)}.btn-ghost{background:var(--surface-card);color:var(--text-body);border-color:var(--border-default)}.btn-ghost:hover:not(:disabled){background:var(--gray-100)}.link-action{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-link);cursor:pointer;background:0 0;border:none;padding:0}.link-action:hover{color:var(--text-link-hover)}.link-action.danger{color:var(--status-danger)}.card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);box-shadow:var(--shadow-xs)}.kpi-row{gap:var(--space-4);flex-wrap:wrap;display:flex}.kpi-tile{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);padding:var(--space-5) var(--space-6);flex:140px}.kpi-tile .l{margin-bottom:var(--space-2)}.kpi-tile .v{font-size:var(--fs-2xl)}table.data-table{border-collapse:collapse;width:100%}table.data-table th{text-align:left;font:var(--text-label);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-muted);padding:var(--space-4) var(--space-4);border-bottom:1px solid var(--border-default)}table.data-table th.num,table.data-table td.num{text-align:right;white-space:nowrap}table.data-table th.center,table.data-table td.center{text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}.prototype-dialog td.center input[type=number]{text-align:center}table.data-table .actions-heading{text-align:right}.row-actions{justify-content:flex-end;align-items:center;gap:var(--space-4);white-space:nowrap;display:flex}.stop-actions{text-align:right;white-space:nowrap}.stop-actions button+button{margin-left:var(--space-2)}table.data-table td{padding:var(--space-4);border-bottom:1px solid var(--border-subtle);font-size:var(--fs-xs);color:var(--text-body);vertical-align:middle}table.data-table td.num{font-variant-numeric:tabular-nums}table.data-table tr:last-child td{border-bottom:none}table.data-table tr.hoverable:hover td{background:var(--gray-50)}table.data-table.compact th,table.data-table.compact td{padding:var(--space-3)}.status-pill{align-items:center;gap:var(--space-2);height:22px;padding:0 var(--space-4);border-radius:var(--radius-pill);font-size:10.5px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-caps);display:inline-flex}.status-pill .dot{border-radius:50%;width:6px;height:6px}.status-pill.running{background:var(--brand-subtle);color:var(--brand)}.status-pill.running .dot{background:var(--brand);animation:1.2s ease-in-out infinite sipo-pulse}@keyframes sipo-pulse{0%,to{opacity:1}50%{opacity:.35}}.status-pill.optimal{background:var(--status-success-surface);color:var(--status-success)}.status-pill.optimal .dot{background:var(--status-success)}.status-pill.feasible{background:var(--status-warning-surface);color:var(--status-warning)}.status-pill.feasible .dot{background:var(--status-warning)}.status-pill.failed{background:var(--status-danger-surface);color:var(--status-danger)}.status-pill.failed .dot{background:var(--status-danger)}.sim-tag{height:18px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--brand-subtle);color:var(--brand);font-size:10px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-wide);align-items:center;display:inline-flex}.empty-state{text-align:center;min-height:420px;padding:var(--space-9);color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state .icon{background:var(--gray-100);width:44px;height:44px;margin-bottom:var(--space-6);border-radius:50%;justify-content:center;align-items:center;display:flex}.empty-state .icon svg{width:20px;height:20px}.empty-state h2{font-size:var(--fs-lg);font-weight:var(--fw-medium);color:var(--text-strong);margin-bottom:var(--space-2)}.empty-state p{font-size:var(--fs-xs);margin:0 0 var(--space-6);max-width:340px;line-height:var(--lh-normal)}.field{gap:var(--space-3);flex-direction:column;display:flex}.field label,.field>.label{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-body)}.field .hint{color:var(--text-faint);font-size:11.5px}select,.field input:not([type=file]),.prototype-dialog input:not([type=file]){box-sizing:border-box;max-width:100%;height:var(--control-h-md);padding:0 var(--space-5);font:inherit;font-size:var(--fs-sm);color:var(--text-strong);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-control);font-variant-numeric:tabular-nums}select{appearance:none;background-image:url(/assets/select-chevron-vVhoAjvx.svg);background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.field input,.field select{width:100%}select:hover:not(:disabled),input:not([type=file]):hover:not(:disabled){border-color:var(--gray-500)}select:disabled,input:disabled,button:disabled{opacity:.55;cursor:not-allowed}.field.error input{border-color:var(--status-danger)}.field-error{font-size:var(--fs-2xs);color:var(--status-danger)}.form-banner{gap:var(--space-3);background:var(--status-danger-surface);border:1px solid var(--status-danger);border-radius:var(--radius-control);padding:var(--space-4) var(--space-5);font-size:var(--fs-xs);color:var(--status-danger);line-height:var(--lh-normal);align-items:flex-start;display:flex}.stat-tile .l{font:var(--text-label);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-muted)}.stat-tile .v{font-weight:var(--fw-bold);color:var(--text-strong);font-variant-numeric:tabular-nums}.stat-tile .v .unit{font-size:var(--fs-sm);font-weight:var(--fw-regular);color:var(--text-muted);margin-left:var(--space-2)}.prototype-dialog{border:1px solid var(--border-default);width:min(940px,94vw);max-height:90vh;color:var(--text-body);background:var(--surface-card);box-shadow:var(--shadow-xl);border-radius:12px;padding:0;overflow:hidden}.prototype-dialog::backdrop{background:#17131b80}.prototype-dialog h2,.prototype-dialog h3{margin:16px 0}.prototype-dialog p{margin:12px 0}.prototype-dialog table{width:100%}input[type=file]{font:inherit;color:var(--text-body);max-width:100%}input::file-selector-button{height:var(--control-h-md);margin-right:var(--space-4);padding:0 var(--space-5);font:inherit;font-weight:var(--fw-bold);color:var(--text-body);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-control);cursor:pointer}input::file-selector-button:hover{background:var(--gray-100)}.prototype-dialog .actions{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.scroll-table{overflow-x:auto}.prototype-dialog .notice,.modal .notice{background:var(--brand-subtle);padding:12px}.prototype-dialog .row2{flex-wrap:wrap;gap:16px;display:flex}.prototype-dialog .row2 label{flex-direction:column;flex:1;gap:6px;min-width:160px;display:flex}.prototype-dialog .field>label{flex-direction:column;gap:6px;display:flex}.prototype-dialog td input:not([type=file]),.prototype-dialog td select{height:var(--control-h-sm);font-size:var(--fs-xs)}.prototype-dialog td input[type=number]{text-align:right;width:86px}.prototype-dialog td select{max-width:300px}.prototype-dialog [data-coverage]{border-bottom:1px solid var(--border-subtle);grid-template-columns:minmax(0,1fr) minmax(0,1fr) 220px 40px;align-items:end;gap:12px;padding:16px 0;display:grid}.prototype-dialog [data-coverage]:first-child{padding-top:0}.coverage-station{min-width:0;font-size:var(--fs-xs);flex-direction:column;gap:6px;display:flex}.prototype-dialog [data-coverage] select{width:100%;max-width:100%}.prototype-dialog [data-drop]{justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.prototype-dialog [data-drop] svg{pointer-events:none}#add-coverage{align-self:flex-start}@media (width<=850px){.prototype-dialog [data-coverage]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.prototype-dialog [data-drop]{justify-self:end}}@media (width<=500px){.coverage-station,.prototype-dialog [data-coverage] .weekday-picker{grid-column:1/-1}.prototype-dialog [data-drop]{grid-column:2}}.prototype-dialog .covered-stop{background:var(--brand-subtle)}@media (width<=700px){.topbar{flex-wrap:wrap;gap:8px;height:auto;min-height:60px;padding:8px}.topbar .user-menu{margin-left:auto}.main{padding:16px 16px 80px}.page-head{flex-wrap:wrap;gap:12px}.page-head>div{gap:8px}.filters select{max-width:210px}}.prototype-dialog[open]{flex-direction:column;display:flex}.dialog-head{z-index:2;justify-content:space-between;align-items:center;gap:var(--space-5);background:var(--surface-card);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle);flex:none;display:flex}.dialog-head h2{font-size:var(--fs-lg);margin:0}.dialog-close{flex:none}.dialog-content{min-height:0;padding:var(--space-6);font-size:var(--fs-xs);line-height:var(--lh-normal);overflow-y:auto}.dialog-content>form{gap:var(--space-5);flex-direction:column;display:flex}.dialog-content>form>h3{margin:var(--space-4) 0 0}.dialog-content>form>p{margin:0}.prototype-dialog .dialog-foot{background:var(--surface-card);padding:var(--space-5) var(--space-6);border-top:1px solid var(--border-subtle);flex:none;justify-content:flex-end;margin:0}:is(.dialog-content,.modal-body,.drawer-body){scrollbar-width:thin;scrollbar-color:var(--gray-300) transparent}:is(.dialog-content,.modal-body,.drawer-body)::-webkit-scrollbar{width:8px}:is(.dialog-content,.modal-body,.drawer-body)::-webkit-scrollbar-thumb{background:var(--gray-300);border:2px solid var(--surface-card);border-radius:var(--radius-pill)}:is(.dialog-content,.modal-body,.drawer-body)::-webkit-scrollbar-track{background:0 0}.dialog-content table button,.dialog-content [data-drop]{min-width:32px;min-height:32px;font:inherit;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-body);cursor:pointer}.dialog-content h3{font-size:var(--fs-sm);color:var(--text-strong)}.table-empty{text-align:center;color:var(--text-muted);padding:48px 24px}.table-empty h3{font-size:var(--fs-md);margin-bottom:8px}.muted{color:var(--text-muted);font-size:var(--fs-xs)}[hidden]{display:none!important}@media (width<=600px){.sidenav{width:64px}.nav-item{width:60px}.nav-item .label{font-size:9px}.topbar .spacer,.topbar .divider{display:none}.user-menu{flex-wrap:wrap;font-size:11px}.topbar .user-menu{width:100%}.prototype-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.dialog-content,.dialog-head,.prototype-dialog .dialog-foot{padding:16px}.dialog-head h2{font-size:var(--fs-md)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.confirmation-dialog{width:min(460px,100vw - 32px)}.btn-danger{background:var(--status-danger);color:var(--on-brand)}.btn-danger:is(:hover,:focus-visible):not(:disabled){filter:brightness(.9)}button.danger:is(:hover,:focus-visible):not(:disabled){color:var(--status-danger);border-color:var(--status-danger);background:var(--status-danger-surface)}button.danger:focus-visible,.btn-danger:focus-visible{outline-color:var(--status-danger)}.weekday-pattern{vertical-align:middle;white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.weekday{border:1px solid var(--border-default);width:20px;height:20px;color:var(--text-muted);background:var(--surface-card);font-size:10px;font-weight:var(--fw-bold);border-radius:50%;justify-content:center;align-items:center;line-height:1;display:inline-flex}.weekday.active{color:var(--on-brand);background:var(--brand);border-color:var(--brand)}.weekday-picker{border:0;min-width:220px;margin:0;padding:0}.weekday-picker legend{font-size:var(--fs-xs);color:var(--text-body);margin-bottom:6px;padding:0}.weekday-picker>div{align-items:center;gap:4px;min-height:40px;display:flex}.prototype-dialog .weekday-picker label{cursor:pointer;flex:none;min-width:0;display:inline-flex;position:relative}.prototype-dialog .weekday-picker input[type=checkbox]{opacity:0;width:1px;height:1px;min-height:0;margin:0;padding:0;position:absolute}.weekday-picker label span{border:1px solid var(--border-default);background:var(--surface-card);width:28px;height:28px;color:var(--text-muted);font-size:12px;font-weight:var(--fw-bold);border-radius:50%;justify-content:center;align-items:center;display:flex}.weekday-picker input:checked+span{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.weekday-picker input:focus-visible+span{outline:var(--focus-ring-width) solid var(--border-focus);outline-offset:var(--focus-ring-offset)}.weekday-picker label:hover span{border-color:var(--brand)}.prototype-dialog .row2>.weekday-picker{flex:1}.prototype-dialog td .clock-input{text-align:center;width:86px}.service-summary,.station-route{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.service-summary{gap:16px}.station-badge{background:var(--gray-100);border-radius:var(--radius-sm);font-size:var(--fs-xs);padding:6px 10px}.service-detail-section{border-top:1px solid var(--border-subtle);margin-top:24px;padding-top:24px}.service-detail-section>h3{margin:0 0 16px}.coverage-detail,.material-cycle{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:16px}.coverage-detail+.coverage-detail,.material-cycle+.material-cycle{margin-top:12px}.coverage-days{font-size:var(--fs-xs);flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px;display:flex}.material-cycle h4{font-size:var(--fs-sm);margin:0 0 12px}.cycle-help{font-size:var(--fs-xs);color:var(--text-muted);margin:0 0 16px}.cycle-sequence{grid-template-columns:repeat(auto-fill,96px);gap:12px 28px;margin:0;padding:0 0 0 20px;list-style:none;display:grid}.cycle-sequence li{align-items:center;display:flex;position:relative}.cycle-sequence li+li:before{content:"→";text-align:center;width:16px;color:var(--text-muted);position:absolute;left:-22px}.train-badge{box-sizing:border-box;border:1px solid var(--border-default);border-radius:var(--radius-sm);width:96px;height:56px;font-size:var(--fs-xs);flex-direction:column;flex:none;justify-content:center;align-items:center;gap:3px;padding:8px 6px;display:inline-flex}.train-badge small{font-size:10px}.train-badge.reference{color:var(--text-muted);border-style:dashed}.train-badge.current{background:var(--brand-subtle);border-color:var(--brand);color:var(--brand)}.upload-steps{gap:24px;margin:0 0 24px;padding:0;list-style:none;display:flex}.upload-steps li{color:var(--text-muted);font-size:var(--fs-xs);align-items:center;gap:8px;display:flex}.upload-steps li>span{background:var(--gray-100);border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.upload-steps [aria-current=step]{color:var(--brand);font-weight:var(--fw-bold)}.upload-steps [aria-current=step]>span{background:var(--brand);color:var(--on-brand)}.upload-intro{margin:0 0 8px}.upload-format,.upload-demo,.upload-spec-note{font-size:var(--fs-xs);color:var(--text-muted)}.upload-format{margin:0 0 24px}#upload-form{flex-direction:column;gap:16px;display:flex}.upload-file{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:16px}.upload-file-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.upload-file-heading h3{margin:0}.upload-file-type{border-radius:var(--radius-sm);background:var(--gray-100);color:var(--text-muted);padding:3px 6px;font-size:10px}.upload-file>p{font-size:var(--fs-xs);margin:8px 0 12px}.upload-picker{align-items:center;gap:12px;display:flex}.upload-select{flex:none;display:inline-flex;position:relative}.upload-input{opacity:0;width:1px;height:1px;position:absolute}.upload-input:focus-visible+.btn{outline:var(--focus-ring-width) solid var(--border-focus);outline-offset:var(--focus-ring-offset)}.upload-select:hover .btn{background:var(--gray-100)}.upload-filename{overflow-wrap:anywhere;font-size:var(--fs-xs)}.upload-file details{border-top:1px solid var(--border-subtle);margin-top:16px;padding-top:12px}.upload-file summary{cursor:pointer;color:var(--text-link);font-size:var(--fs-xs);font-weight:var(--fw-bold)}.upload-file details p{font-size:var(--fs-xs)}.upload-file details td:first-child{width:30%}.upload-count{color:var(--text-muted);font-size:var(--fs-xs);align-self:center;margin-right:auto}@media (width<=600px){.upload-steps{gap:12px}.upload-picker{flex-direction:column;align-items:flex-start}}.data-table .sort-button{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex;position:relative}.sort-button:after{content:"↕";color:var(--text-muted);font-size:12px}[aria-sort=ascending] .sort-button:after{content:"↑";color:var(--brand)}[aria-sort=descending] .sort-button:after{content:"↓";color:var(--brand)}.data-table .sort-button:hover,.data-table [aria-sort] .sort-button{color:var(--brand)}table.data-table[data-sorted] tr.duty-start td{border-top:0}.login-page{background:var(--surface-page);min-height:100dvh}.login-center{min-height:calc(100dvh - 4px);padding:var(--space-8);justify-content:center;align-items:center;display:flex}.login-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);width:380px;max-width:100%;box-shadow:var(--shadow-sm);padding:var(--space-9) var(--space-8) var(--space-8)}.login-card .logo-mark{height:26px;margin-bottom:var(--space-8);display:block}.login-card h1{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin-bottom:var(--space-2)}.login-card .lead{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:var(--space-7)}.login-card .field{margin-bottom:var(--space-5)}.login-card .btn-primary,.login-card .btn-ghost{width:100%;margin-top:var(--space-3)}.login-card .form-banner{margin-bottom:24px}@media (width<=600px){.login-center{padding:24px 16px}.login-card{padding:24px}}.live-card{border:1px solid var(--brand-border);padding:24px}.live-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;display:flex}.live-head h2{font-size:var(--fs-md);color:var(--text-strong);margin:0}.live-actions{flex-wrap:wrap;gap:12px;margin-left:auto;display:flex}.live-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 24px;display:grid}.live-metric{background:var(--gray-50);border-radius:var(--radius-md);padding:16px 20px}.live-metric dt{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:8px}.live-metric dd{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-strong);font-variant-numeric:tabular-nums;margin:0}.live-time{font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:10px;display:flex}.live-time strong{color:var(--text-strong)}.progress-track{border-radius:var(--radius-pill);background:var(--gray-100);height:6px;overflow:hidden}.progress-fill{background:var(--brand);border-radius:var(--radius-pill);height:100%;transition:width var(--dur-slow) var(--ease-standard)}@media (width<=600px){.live-card{padding:16px}.live-head{gap:8px}.live-metrics{grid-template-columns:1fr;gap:8px}.live-metric{justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.live-metric dt{margin:0}.live-metric dd{font-size:var(--fs-md)}}.drawer h3{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--text-strong);margin-bottom:var(--space-1)}.drawer .sub{font-size:var(--fs-2xs);color:var(--text-muted);margin-bottom:var(--space-5)}.rule-row{padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle);font-size:var(--fs-2xs);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.rule-row .rn{color:var(--text-body)}.rule-row .rv{font-variant-numeric:tabular-nums;color:var(--text-strong);font-weight:var(--fw-bold);white-space:nowrap}.rule-row.overridden .rv{color:var(--brand)}.fail-banner{gap:var(--space-4);background:var(--status-danger-surface);border:1px solid var(--status-danger);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);color:var(--text-body);font-size:12.5px;line-height:var(--lh-normal);align-items:flex-start;display:flex}.fail-banner .fb-icon{color:var(--status-danger);flex:none;margin-top:1px}.fail-banner .fb-body{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.fail-banner .fb-title{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--status-danger)}.fail-banner .fb-hint{color:var(--text-muted)}.modal{box-sizing:border-box;border:1px solid var(--border-subtle);width:640px;max-width:94vw;max-height:86dvh;color:var(--text-body);background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);flex-direction:column;padding:0;overflow:hidden}.modal[open]{display:flex}.modal::backdrop,.drawer::backdrop{background:var(--overlay-scrim)}.modal-head{padding:var(--space-6) var(--space-7) var(--space-5);border-bottom:1px solid var(--border-subtle);flex:none}.modal-head h2{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--text-strong);margin-bottom:var(--space-4)}.modal-body{min-height:0;padding:var(--space-6) var(--space-7);flex:0 auto;overflow-y:auto}.fixed-text{color:var(--text-strong);font-size:13.5px;font-weight:var(--fw-bold)}.switch-row{padding:var(--space-4) 0;border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.switch-row .label{font-size:var(--fs-xs);color:var(--text-body)}.switch{border-radius:var(--radius-pill);background:var(--gray-300);cursor:pointer;border:none;flex:none;width:34px;height:20px;padding:0;position:relative}.switch.on{background:var(--brand)}.switch .knob{background:var(--on-brand);width:16px;height:16px;transition:left var(--dur-fast) var(--ease-standard);border-radius:50%;position:absolute;top:2px;left:2px}.switch.on .knob{left:16px}.modal-foot{padding:var(--space-5) var(--space-7);border-top:1px solid var(--border-subtle);align-items:center;gap:var(--space-4);flex:none;display:flex}.foot-spacer{flex:1}.drawer{border:0;border-left:1px solid var(--border-default);box-sizing:border-box;border-radius:0;width:min(540px,94vw);max-width:94vw;height:100dvh;max-height:100dvh;margin:0;padding:0;position:fixed;inset:0 0 0 auto;overflow:hidden}.drawer[open]{flex-direction:column;display:flex}.drawer-body{padding:var(--space-6);min-height:0;overflow-y:auto}@media (width<=600px){.modal-body,.modal-head,.modal-foot{padding:16px}}.execution-table-wrap{overflow-x:auto}.execution-table{min-width:960px}.execution-table th{background:var(--gray-50)}.execution-table td{box-sizing:border-box;height:64px}.execution-table .run-id{font-weight:var(--fw-bold);color:var(--text-strong)}.execution-table tr.hoverable{cursor:pointer}.execution-table tr:focus-visible{outline-offset:-2px}.execution-table .row-actions{gap:16px}.execution-table .sim-tag{margin:0}.cloud-amount{font-variant-numeric:tabular-nums;color:var(--text-strong);font-weight:var(--fw-bold);display:block}.queue-card{padding:20px 24px}.queue-head{align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.queue-head h2{font-size:var(--fs-md);margin:0}.queue-head p{font-size:var(--fs-xs);color:var(--text-muted);margin:0}.queue-list{margin:0;padding:0;list-style:none}.queue-item{border-top:1px solid var(--border-subtle);align-items:center;gap:16px;padding:16px 0;display:flex}.queue-position{background:var(--gray-100);width:28px;height:28px;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;display:grid}.queue-info{flex:1;min-width:0}.queue-info strong{font-size:var(--fs-sm);display:block}.queue-info span{font-size:var(--fs-xs);color:var(--text-muted);margin-top:4px;display:block}.queue-item .row-actions{flex-wrap:wrap}@media (width<=600px){.queue-card{padding:16px}.queue-head{flex-wrap:wrap;gap:8px}.queue-item{flex-wrap:wrap}.queue-item .row-actions{width:100%}}.status-pill.pending,.status-pill.assigned,.status-pill.cancelled{background:var(--gray-100);color:var(--text-muted)}.status-pill.pending .dot,.status-pill.assigned .dot,.status-pill.cancelled .dot{background:currentColor}.run-cloud{margin-top:var(--space-6);padding:var(--space-5);background:var(--gray-50);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.drawer .run-cloud h3{margin:0 0 var(--space-4)}.run-cloud dl{font-size:var(--fs-2xs);margin:0}.run-cloud dl>div{justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;display:flex}.run-cloud dt{color:var(--text-muted)}.run-cloud dd{text-align:right;color:var(--text-strong);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;min-width:0;margin:0}.modal-body>.notice{margin:0 0 var(--space-5);line-height:var(--lh-normal)}.modal-body>.field+.field{margin-top:var(--space-5)}.drawer .fail-banner{margin-bottom:var(--space-5)}.run-name{font-family:var(--font-mono)}.launch-form{flex-direction:column;flex:auto;min-height:0;display:flex}.launch-form .estimate{margin:var(--space-4) 0 0;font-size:var(--fs-xs);color:var(--text-muted)}.launch-form .estimate strong{color:var(--text-strong)}.launch-form .switch-row .label{font-weight:var(--fw-bold);flex:1}.drawer-actions{margin-top:var(--space-6);gap:var(--space-4);flex-wrap:wrap;display:flex}.drawer .parameter-section{margin:var(--space-5) 0 0;border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.drawer .parameter-section h3{padding:var(--space-4);background:var(--gray-50);font-size:var(--fs-2xs);border-bottom:1px solid var(--border-subtle);margin:0}.parameter-section .rule-row{margin:0 var(--space-4)}.parameter-section .rule-row:last-child{border-bottom:0}.launch-form .hint{color:var(--text-faint);font-size:11.5px}.tabs{gap:var(--space-4);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-5);display:flex}.tab{padding:var(--space-3) var(--space-1);font-size:12.5px;font-weight:var(--fw-bold);color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;font-family:inherit}.tab.active{color:var(--brand);border-bottom-color:var(--brand)}table.rules-table th{text-align:left;font:var(--text-label);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-muted);padding:var(--space-3) var(--space-3);border-bottom:1px solid var(--border-default)}table.rules-table td{padding:var(--space-3);border-bottom:1px solid var(--border-subtle);color:var(--text-body);vertical-align:middle;font-size:12.5px}table.rules-table .num{text-align:right;white-space:nowrap}table.rules-table td .pname{display:block}table.rules-table td.base-val{color:var(--text-faint);font-variant-numeric:tabular-nums;white-space:nowrap}.uncovered-note{font-size:var(--fs-2xs);color:var(--text-muted);line-height:var(--lh-normal);margin:0 0 var(--space-5)}.uncovered-task{padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--fs-2xs)}.uncovered-task header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.drawer .uncovered-task h3{margin:0}.uncovered-badge{border-radius:var(--radius-pill);background:var(--gray-100);color:var(--text-body);padding:4px 8px;font-size:11px}.uncovered-type{color:var(--text-muted);margin:var(--space-2) 0 var(--space-4)}.uncovered-route{color:var(--text-strong);line-height:var(--lh-normal);margin:0 0 var(--space-2)}.uncovered-time{font-variant-numeric:tabular-nums;margin:0 0 var(--space-4)}.uncovered-days{align-items:center;gap:var(--space-3);color:var(--text-muted);flex-wrap:wrap;display:flex}.uncovered-reason{margin:var(--space-4) 0 0;padding-top:var(--space-4);border-top:1px solid var(--border-subtle);color:var(--text-muted);line-height:var(--lh-normal)}table.rules-table{border-collapse:collapse;width:100%}.rules-table tr.overridden td:last-child{color:var(--brand);font-weight:var(--fw-bold)}.steps{align-items:center;gap:var(--space-3);display:flex}.step{align-items:center;gap:var(--space-3);font-size:var(--fs-2xs);color:var(--text-muted);display:flex}.step .n{background:var(--gray-200);width:18px;height:18px;color:var(--text-muted);font-size:10.5px;font-weight:var(--fw-bold);border-radius:50%;justify-content:center;align-items:center;display:flex}.step .n svg{width:12px;height:12px}.step.active{color:var(--text-strong);font-weight:var(--fw-bold)}.step.active .n{background:var(--brand);color:var(--on-brand)}.step.done .n{background:var(--brand-subtle);color:var(--brand)}.step-sep{background:var(--border-default);width:24px;height:1px}.sim-banner{background:var(--brand-subtle);border:1px solid var(--brand-border);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-5);font-size:var(--fs-2xs);color:var(--brand);line-height:var(--lh-normal);margin-bottom:var(--space-5)}.rule-switch{background:var(--gray-100);border-radius:var(--radius-control);gap:4px;margin-bottom:16px;padding:4px;display:flex}.rule-switch button{border-radius:var(--radius-sm);min-height:36px;font:inherit;font-size:var(--fs-xs);cursor:pointer;color:var(--text-muted);background:0 0;border:none;flex:1}.rule-switch button[aria-pressed=true]{background:var(--surface-card);color:var(--brand);box-shadow:var(--shadow-xs);font-weight:var(--fw-bold)}table.rules-table input.override{text-align:right;width:84px;height:28px;padding:0 var(--space-3);font-size:var(--fs-2xs);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;font-family:inherit}table.rules-table tr.touched input.override{border-color:var(--brand);background:var(--brand-subtle);color:var(--brand);font-weight:var(--fw-bold)}table.rules-table td .bounds{color:var(--text-faint);font-size:11px;display:block}table.rules-table td .field-error{margin:0;display:block}.parameter-section>.btn{margin-top:var(--space-4)}table.rules-table input.slider{width:140px;margin:0 0 var(--space-3) auto;accent-color:var(--brand);display:block}.pref-list>.hint{margin:0 0 var(--space-4)}.pref{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin:0 0 var(--space-4)}.pref.touched{border-color:var(--brand)}.pref legend{padding:0 var(--space-2);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-strong)}.pref-options{gap:var(--space-3);margin:var(--space-3) 0;display:flex}.pref-options label{justify-content:center;align-items:center;gap:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);min-height:36px;font-size:var(--fs-xs);color:var(--text-body);cursor:pointer;flex:1;display:flex}.pref-options label.on{border-color:var(--brand);background:var(--brand-subtle);color:var(--brand);font-weight:var(--fw-bold)}.pref-options input{accent-color:var(--brand)}.pref .hint{color:var(--text-faint);margin:0;font-size:11.5px}.runbar{align-items:center;gap:var(--space-5);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);padding:var(--space-4) var(--space-5);flex-wrap:wrap;display:flex}.runbar select{max-width:100%}.runbar .meta{font-size:var(--fs-2xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.runbar .spacer{flex:1}.runbar .note{font-size:var(--fs-2xs);color:var(--text-faint)}.chart-card{padding:var(--space-6) var(--space-6) var(--space-8)}.chart-head{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.chart-head h2{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--text-strong)}.legend{align-items:center;gap:var(--space-7);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.legend-group{align-items:center;gap:var(--space-5);display:flex}.legend-group+.legend-group{padding-left:var(--space-7);border-left:1px solid var(--border-subtle)}.legend-item{align-items:center;gap:var(--space-3);color:var(--text-body);font-size:11.5px;display:flex}.legend-swatch{border-radius:3px;flex:none;width:18px;height:11px}.view-toggle{background:var(--gray-100);border-radius:7px;padding:2px;display:flex}.view-toggle .opt{border-radius:var(--radius-control);min-height:36px;font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 12px;font-family:inherit}.view-toggle .opt.active{background:var(--surface-card);color:var(--text-strong);box-shadow:var(--shadow-xs)}.chart-actions{align-items:center;gap:var(--space-5);display:flex}.gantt-wrap{margin-top:var(--space-3);display:flex}.gantt-labels{flex:0 0 150px;padding-top:30px}.gantt-group-header{padding:0 var(--space-3);background:var(--gray-50);font-size:11px;font-weight:var(--fw-bold);color:var(--text-strong);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.gantt-group-header .meta{font-size:10px;font-weight:var(--fw-regular);color:var(--text-muted)}.gantt-row-label-cell{padding-left:var(--space-5);flex-direction:column;justify-content:center;display:flex}.gantt-row-label-cell .name{font-size:12.5px;font-weight:var(--fw-bold);color:var(--text-strong)}.gantt-row-label-cell .meta{color:var(--text-muted);font-size:10px}.gantt-scroll{flex:1;min-width:0;overflow-x:auto}.gantt-scroll svg{min-width:900px;display:block}.gantt-scroll svg text{font-family:var(--font-core)}.gantt-grid{stroke:var(--border-subtle);stroke-width:1px}.gantt-tick{fill:var(--text-muted);font-variant-numeric:tabular-nums;font-size:10.5px}.gantt-group-band{fill:var(--gray-50)}.gantt-group-label{font-size:11px;font-weight:var(--fw-bold);fill:var(--text-strong)}.gantt-bar-label{font-size:10px;font-weight:var(--fw-bold);fill:#fff;pointer-events:none}.gantt-marker path,.legend-marker path{fill:none;stroke:var(--text-muted);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round}.gantt-bar.drv{fill:var(--brand)}.gantt-bar.drv-handover{fill:var(--magenta-800)}.legend-swatch.drv{background:var(--brand)}.legend-swatch.drv-handover{background:var(--magenta-800)}.gantt-bar.vj{fill:var(--status-info)}.gantt-bar.vjtaxi{fill:color-mix(in srgb, var(--status-info) 65%, white)}.legend-swatch.vj{background:var(--status-info)}.legend-swatch.vjtaxi{background:color-mix(in srgb, var(--status-info) 65%, white)}.gantt-bar.ac-filler{fill:var(--gray-200);stroke:var(--gray-400);stroke-width:1px}.gantt-bar.ac{fill:var(--gray-400)}.gantt-bar.other{fill:var(--text-muted)}.gantt-bar.sc{fill:var(--gray-800)}.legend-swatch.ac-filler{background:var(--gray-200);border:1px solid var(--gray-400)}.legend-swatch.ac{background:var(--gray-400)}.legend-swatch.sc{background:var(--gray-800)}.legend-marker{flex:none}table.data-table tr.duty-start td{border-top:2px solid var(--border-default)}.relevo-pill{height:18px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--brand-subtle);color:var(--brand);font-size:10.5px;font-weight:var(--fw-bold);align-items:center;display:inline-flex}.legend-group{flex-wrap:wrap}@media (width<=600px){.gantt-labels{flex-basis:100px}.chart-card{padding:16px}.chart-actions{flex-wrap:wrap}.legend-group+.legend-group{border-left:none;padding-left:0}}.task-tooltip{z-index:100;pointer-events:none;white-space:pre-line;background:var(--surface-inverse);color:var(--text-on-dark);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);font-size:var(--fs-xs);line-height:var(--lh-normal);max-width:min(320px,100vw - 16px);padding:12px;position:fixed}#kpi-row{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.kpi-description{margin-top:var(--space-2);color:var(--text-muted);font-size:var(--fs-2xs);line-height:var(--lh-normal)}@media (width<=900px){#kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){#kpi-row{grid-template-columns:1fr}}.gantt-bar.drifted{opacity:.35}.gantt-relevo{stroke:#fff;stroke-width:2px;pointer-events:none}.gantt-bar:focus-visible,.gantt-marker:focus-visible{outline:var(--focus-ring-width) solid var(--border-focus);outline-offset:1px}.drift-notice{background:var(--brand-subtle);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);font-size:var(--fs-xs);line-height:var(--lh-normal);color:var(--text-body);margin:0}.confirmation-dialog .drift-notice{margin:var(--space-4) 0}
