:root{--font:"Inter Variable",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--bg:#f4f5f8;--surface:#ffffff;--surface-2:#eff1f5;--surface-3:#e5e8ee;--border:#dbe0e8;--border-strong:#c3cad6;--text:#171c28;--muted:#5a6578;--brand:#c8102e;--brand-ink:#ffffff;--brand-deep:#c8102e;--brand-soft:#fdecef;--brand-text:var(--brand);--accent:var(--brand);--link:#1d4ed8;--ok:#166534;--ok-soft:#dcfce7;--warn:#92400e;--warn-soft:#fef3c7;--info:#1e40af;--info-soft:#dbeafe;--danger:#b42318;--danger-soft:#fee4e2;--radius-sm:6px;--radius:10px;--radius-lg:14px;--shadow:0 1px 2px rgb(16 24 40/5%),0 1px 3px rgb(16 24 40/8%);--shadow-md:0 4px 12px rgb(16 24 40/10%),0 2px 4px rgb(16 24 40/6%);--shadow-lg:0 18px 40px rgb(16 24 40/22%);--ease:cubic-bezier(.2,.7,.2,1);color-scheme:light}:root[data-theme=dark]{--bg:#0f131a;--surface:#181e28;--surface-2:#202836;--surface-3:#2a3445;--border:#2c3647;--border-strong:#3b475c;--text:#e8ecf3;--muted:#9aa6b8;--brand:#ef3b57;--brand-soft:#3a1820;--brand-text:#ff9aa9;--brand-ink:#1b0b0f;--brand-deep:#a8112c;--link:#8ab4ff;--ok:#86efac;--ok-soft:#12351f;--warn:#fcd34d;--warn-soft:#3a2f10;--info:#93c5fd;--info-soft:#14284a;--danger:#fda29b;--danger-soft:#3d1b18;--shadow:none;--shadow-md:0 4px 14px rgb(0 0 0/40%);--shadow-lg:0 18px 44px rgb(0 0 0/60%);color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f131a;--surface:#181e28;--surface-2:#202836;--surface-3:#2a3445;--border:#2c3647;--border-strong:#3b475c;--text:#e8ecf3;--muted:#9aa6b8;--brand:#ef3b57;--brand-soft:#3a1820;--brand-text:#ff9aa9;--brand-ink:#1b0b0f;--brand-deep:#a8112c;--link:#8ab4ff;--ok:#86efac;--ok-soft:#12351f;--warn:#fcd34d;--warn-soft:#3a2f10;--info:#93c5fd;--info-soft:#14284a;--danger:#fda29b;--danger-soft:#3d1b18;--shadow:none;--shadow-md:0 4px 14px rgb(0 0 0/40%);--shadow-lg:0 18px 44px rgb(0 0 0/60%);color-scheme:dark}}body[data-client=suzuki]{--accent:#2563eb}body[data-client=honda]{--accent:#dc2626}body[data-client=gnu]{--accent:#059669}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 var(--font);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}.kpi strong,.mini-stats strong,.num,.tile strong,table{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}h1{font-size:24px;margin:0 0 4px;line-height:1.2;letter-spacing:-.01em;font-weight:700}h2{font-size:16px;margin:24px 0 8px;font-weight:650}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.skip-link{position:absolute;left:8px;top:-56px;z-index:100;background:var(--brand);color:var(--brand-ink);padding:8px 14px;border-radius:6px;font-weight:600}.skip-link:focus{top:8px;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.icon{flex:none}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:10px;height:52px;padding:0 16px;background:var(--surface);border-bottom:1px solid var(--border)}.brand{font-weight:800;letter-spacing:.04em;color:var(--brand);white-space:nowrap}.brand small{color:var(--muted);font-weight:500;letter-spacing:0;margin-left:8px}.topbar-spacer{flex:1 1}.client-pill{background:var(--brand-soft);color:var(--brand-text);font-weight:700;font-size:12px;padding:2px 10px;border-radius:999px;white-space:nowrap}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;padding:0;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer}.icon-btn:hover{color:var(--text);background:var(--surface-2)}.icon-btn[aria-pressed=true]{color:var(--warn);background:var(--warn-soft);border-color:transparent}.menu-toggle{display:none}.search-btn{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 8px 0 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--muted);cursor:pointer;font:inherit;min-width:190px}.search-btn:hover{color:var(--text)}.search-btn .search-text{flex:1 1;text-align:left}kbd{font:11px ui-monospace,SFMono-Regular,Menlo,monospace;border:solid var(--border);border-width:1px 1px 2px;border-radius:4px;padding:0 5px;background:var(--surface);color:var(--muted);white-space:nowrap}.app-shell{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:calc(100vh - 52px);transition:grid-template-columns calc(.15s * var(--spd, 1))}.app-shell.compact{grid-template-columns:60px minmax(0,1fr)}.app-nav{border-right:1px solid var(--border);position:-webkit-sticky;position:sticky;top:52px;align-self:start;height:calc(100vh - 52px);display:flex;flex-direction:column;min-height:0;min-width:0}.nav-scroll{flex:1 1;overflow-y:auto;overscroll-behavior:contain;padding:8px 10px 12px}.nav-tools{display:flex;justify-content:flex-end}.compact .nav-tools{justify-content:center}.nav-group{margin-top:10px}.nav-title{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;border:0;border-radius:6px;background:var(--surface);color:var(--muted);font:inherit;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;position:-webkit-sticky;position:sticky;top:-8px;z-index:2}.nav-title:hover{background:var(--surface-2);color:var(--text)}.nav-title .t{flex:1 1;text-align:left}.nav-title>.icon:last-child{transition:transform calc(.15s * var(--spd, 1))}.nav-title[aria-expanded=false]>.icon:last-child{transform:rotate(-90deg)}.nav-sub{display:flex;align-items:center;gap:6px;margin:10px 10px 2px;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.nav-divider{border:0;border-top:1px solid var(--border);margin:10px 6px}.nav-row{position:relative}.nav-link,.nav-row{display:flex;align-items:center}.nav-link{flex:1 1;gap:10px;padding:7px 28px 7px 10px;border-radius:6px;color:var(--text);min-width:0}.nav-link:hover{text-decoration:none}.nav-link[aria-current=page]{font-weight:600}.nav-link .nav-label{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-link.locked{opacity:.55;cursor:not-allowed}.nav-link.locked:hover{background:transparent}.nav-badge{flex:none;font-size:11px;font-weight:700;min-width:20px;text-align:center;padding:0 6px;background:var(--surface-2);color:var(--muted);line-height:18px}.nav-badge.warn{background:var(--warn-soft);color:var(--warn)}.nav-badge.bad{background:var(--danger-soft);color:var(--danger)}.dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--muted)}.dot.ok{background:var(--ok)}.dot.bad{background:var(--danger)}.nav-star{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--muted);cursor:pointer;opacity:0}.nav-row:hover .nav-star,.nav-star.on,.nav-star:focus-visible,.nav-star[aria-pressed=true]{opacity:1}.nav-star[aria-pressed=true]{color:var(--warn)}.nav-star:hover{background:var(--surface-2);color:var(--text)}.nav-foot{border-top:1px solid var(--border);padding:8px 10px;display:grid;grid-gap:6px;gap:6px}.nav-check{gap:8px;font-size:12px;color:var(--muted);padding:0 4px}.nav-check,.nav-profile{display:flex;align-items:center}.nav-profile{gap:10px;padding:6px 8px;border-radius:8px;color:var(--text);min-width:0}.nav-profile:hover{background:var(--surface-2);text-decoration:none}.nav-profile .nav-label{display:grid;line-height:1.25;min-width:0;overflow:hidden}.nav-profile small,.nav-profile strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-profile small{color:var(--muted);font-size:12px}.nav-foot-row{display:flex;gap:6px}.nav-foot-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:32px;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);font:inherit;cursor:pointer;flex:1 1}.nav-foot-btn:hover{color:var(--text);background:var(--surface-2)}.nav-foot-row .nav-foot-btn:last-child{flex:none;width:36px;padding:0}.compact .dot,.compact .nav-badge,.compact .nav-check,.compact .nav-label,.compact .nav-star,.compact .nav-sub,.nav-backdrop{display:none}.compact .nav-link{justify-content:center;padding:9px 0}.compact .nav-profile{justify-content:center;padding:6px 0}.compact .nav-foot-row{flex-direction:column}.compact .nav-foot-row .nav-foot-btn:last-child{width:auto;flex:1 1}.app-main{padding:24px;min-width:0;max-width:1280px}.app-main:focus{outline:none}.crumbs{margin:-8px 0 10px;font-size:12px;color:var(--muted)}.crumbs ol{display:flex;flex-wrap:wrap;gap:2px 8px;margin:0;padding:0;list-style:none}.crumbs li{display:flex;gap:8px}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--brand)}.crumbs [aria-current=page]{color:var(--text);font-weight:600}.palette-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:60;display:grid;place-items:start center;padding:12vh 12px 0}.palette{width:min(100%,580px);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.3);overflow:hidden}.palette-input{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);color:var(--muted)}.palette-input input{flex:1 1;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-size:15px;padding:6px 0}.palette-input input:focus{outline:0;border:0}.palette-list{list-style:none;margin:0;padding:6px;max-height:50vh;overflow-y:auto}.palette-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer}.palette-list li[aria-selected=true]{background:var(--brand-soft);color:var(--brand-text)}.palette-list .pal-label{font-weight:600}.palette-list .pal-sub{margin-left:auto;color:var(--muted);font-size:12px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55%}.palette-list .pal-empty{color:var(--muted);cursor:default}.palette-foot{display:flex;gap:14px;margin:0;padding:8px 14px;border-top:1px solid var(--border);color:var(--muted);font-size:12px}.shortcuts{margin:0;padding:8px 14px 14px;display:grid;grid-gap:6px;gap:6px}.shortcuts div{display:grid;grid-template-columns:150px 1fr;grid-gap:12px;gap:12px;align-items:baseline}.shortcuts dd,.shortcuts dt{margin:0}.page-head{display:flex;flex-wrap:wrap;gap:8px 16px;margin-bottom:16px}.page-head p,.sub{margin:0;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);padding:16px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px}.toolbar .grow{flex:1 1}.btn{border-radius:6px;border:1px solid var(--border);font-weight:600}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary:hover{filter:brightness(.92)}.btn-sm{font-size:12px}input,select,textarea{border:1px solid var(--border);border-radius:6px;max-width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand)}input[type=checkbox]{min-height:0;width:16px;height:16px;accent-color:var(--brand);vertical-align:-3px}.field{display:grid;grid-gap:4px;gap:4px;font-weight:600}.field input,.field select{font-weight:400;width:100%}.form-grid{display:grid;grid-gap:14px;gap:14px}.form-card{max-width:460px}.row-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px}.row-fields .wide{grid-column:1/-1}fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px 14px;margin:0;background:var(--surface);min-width:0}legend{padding:0 6px;font-weight:700}.checks{display:flex;flex-wrap:wrap;gap:8px 18px;margin:8px 0}.checks label{display:inline-flex;align-items:center;gap:6px}.alert{padding:10px 12px;border-radius:6px;background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger-soft);font-weight:600}.table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}table.data{width:100%;border-collapse:collapse}table.data th{text-align:left;padding:10px 8px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-2)}table.data td,table.data th{white-space:nowrap;border-bottom:1px solid var(--border)}table.data td{padding:9px 8px;vertical-align:middle}table.data td.wrap{white-space:normal;min-width:220px}table.data tbody tr:last-child td{border-bottom:0}table.data td.empty{text-align:center;color:var(--muted);padding:28px}table.data input,table.data select{min-height:30px;padding:3px 8px}.actions{display:flex;flex-wrap:nowrap;gap:6px}.pager{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;color:var(--muted)}.pager .grow{flex:1 1}.kv{display:grid;grid-template-columns:max-content 1fr;grid-gap:8px 24px;gap:8px 24px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:600}.badge{display:inline-block;font-weight:700}.badge-start{background:var(--info-soft);color:var(--info)}.badge-ongoing{background:var(--warn-soft);color:var(--warn)}.badge-closed{background:var(--ok-soft);color:var(--ok)}.badge-draft{background:var(--surface-2);color:var(--muted)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:12px;gap:12px}.tile{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;border:1px solid var(--border);border-top:3px solid var(--border)}.tile strong{display:block;font-size:30px;line-height:1.1}.tile span{color:var(--muted)}.tile-ongoing{border-top-color:var(--warn)}.tile-closed{border-top-color:var(--ok)}.tile-start{border-top-color:var(--info)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}.login-card{width:100%;max-width:380px}.login-card h1{color:var(--brand);letter-spacing:.04em}@media (max-width:820px){.menu-toggle{display:inline-grid}.app-shell,.app-shell.compact{grid-template-columns:minmax(0,1fr)}.app-nav{position:fixed;top:52px;left:0;bottom:0;height:auto;width:min(86vw,300px);z-index:45;transform:translateX(-102%);visibility:hidden;transition:transform calc(.18s * var(--spd, 1)) ease,visibility calc(0s * var(--spd, 1)) calc(.18s * var(--spd, 1));box-shadow:0 0 40px rgba(0,0,0,.35)}.app-nav.open{transform:none;visibility:visible;transition:transform calc(.18s * var(--spd, 1)) ease}.nav-backdrop{display:block;position:fixed;inset:52px 0 0 0;background:rgba(0,0,0,.4);z-index:44}body.nav-open{overflow:hidden}.compact .nav-badge,.compact .nav-check,.compact .nav-label,.compact .nav-sub{display:revert}.compact .nav-link{justify-content:flex-start;padding:7px 28px 7px 10px}.compact .nav-star{display:grid}.app-main{padding:16px}.brand small,.search-btn .search-text,.search-btn kbd{display:none}.search-btn{min-width:0;padding:0;width:34px;justify-content:center}.kv{grid-template-columns:1fr;gap:2px}.kv dd{margin-bottom:8px}.shortcuts div{grid-template-columns:1fr;gap:2px}}@media (prefers-reduced-motion:reduce){:root:not([data-motion]) .app-nav,:root:not([data-motion]) .app-shell{transition:none}}@media print{.app-nav,.crumbs,.skip-link,.topbar{display:none}.app-shell{display:block}}a.tile{display:block;color:inherit;text-decoration:none}a.tile:hover{border-color:var(--brand)}.dash-bar{gap:8px 16px;margin-bottom:16px}.dash-bar,.dash-bar form{display:flex;flex-wrap:wrap;align-items:center}.dash-bar form{gap:8px}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.seg a{padding:5px 12px;color:var(--muted);text-decoration:none;font-weight:600;background:var(--surface)}.seg a[aria-current=true]{background:var(--brand);color:var(--brand-ink)}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));grid-gap:16px;gap:16px;margin-top:16px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;min-width:0}.panel h2{margin:0 0 4px;font-size:16px}.panel .sub{margin:0 0 10px;color:var(--muted);font-size:13px}.panel.wide{grid-column:1/-1}.rows{list-style:none;margin:0;padding:0}.rows li{display:flex;gap:8px;justify-content:space-between;align-items:center;padding:7px 0;border-top:1px solid var(--border);flex-wrap:wrap}.rows li:first-child{border-top:0}.rows .meta{color:var(--muted);font-size:12px}.empty{color:var(--muted);margin:8px 0 0}.meter{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin:6px 0}.meter>span{display:block;height:100%;background:var(--ok)}.meter.low>span{background:var(--warn)}.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.up{color:var(--ok)}.down,.up{font-weight:700}.down{color:var(--danger)}.pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:700;background:var(--surface-2);color:var(--muted)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.bad{background:var(--danger-soft);color:var(--danger)}.pill.good{background:var(--ok-soft);color:var(--ok)}.skeleton{background:linear-gradient(90deg,var(--surface-2),var(--surface),var(--surface-2));animation:shimmer calc(1.2s * var(--spd, 1)) infinite;min-height:88px}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){:root:not([data-motion]) .skeleton{animation:none}}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.panel-head h2{margin:0 0 4px}.panel-actions{display:inline-flex;gap:8px;font-size:12px}.panel-actions a{color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:0 6px}.panel-actions a:hover{color:var(--brand);text-decoration:none;border-color:var(--brand)}.panel h3{font-size:13px;margin:12px 0 2px;color:var(--muted)}.mini-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));grid-gap:8px;gap:8px;margin:6px 0}.mini-stats div{background:var(--surface-2);border-radius:8px;padding:8px 10px}.mini-stats strong{display:block;font-size:22px;line-height:1.2}.mini-stats span{color:var(--muted);font-size:12px}.dash-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.customize{position:relative}.customize .panel{margin-top:8px;min-width:min(92vw,420px);position:absolute;z-index:20;left:0;box-shadow:0 12px 30px rgba(0,0,0,.25)}.customize-list{list-style:none;margin:8px 0;padding:0;max-height:40vh;overflow:auto}.customize-list li{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-top:1px solid var(--border)}.customize-list li:first-child{border-top:0}.customize-list .icon-btn{width:28px;height:28px;margin-left:4px}.customize-list .icon-btn:disabled{opacity:.35;cursor:default}button[aria-pressed=true].btn{background:var(--brand-soft);color:var(--brand-text);border-color:var(--brand)}.linklike{background:none;border:0;padding:0;color:var(--link);cursor:pointer;font:inherit;text-align:left}.linklike:hover{text-decoration:underline}.dims-form{margin:6px 0 10px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.dims-form th{font-weight:600;text-align:left}.chart-link{cursor:pointer}.chart-link:hover circle,.chart-link:hover rect:not([fill=transparent]){filter:brightness(1.2)}.chart-data{margin-top:6px;font-size:13px}.chart-data summary{cursor:pointer;color:var(--muted)}.toast{position:fixed;right:16px;bottom:16px;z-index:70;background:var(--text);color:var(--bg);padding:10px 14px;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.3);max-width:min(90vw,360px);cursor:pointer}.print-only{display:none}body:has(.tv){background:#0b1220}.tv{--bg:#0b1220;--surface:#121b2e;--surface-2:#1a2540;--border:#263556;--text:#f2f5fb;--muted:#9db0d0;--brand:#ff5a73;--brand-soft:#3a1c28;--brand-text:#ff9aa9;--ok:#4ade80;--warn:#fbbf24;--warn-soft:#3b2f10;--link:#93c5fd;min-height:100vh;padding:24px 32px;background:var(--bg);color:var(--text);font-size:22px}.tv-head{display:flex;align-items:baseline;gap:24px;margin-bottom:16px}.tv-title{font-size:34px;letter-spacing:.04em;color:var(--brand)}.tv-clock{flex:1 1;font-size:26px;color:var(--muted)}.tv-exit{color:var(--muted);font-size:14px}.tv-tabs{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.tv-tabs button{background:var(--surface);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:4px 16px;font:inherit;font-size:16px;cursor:pointer}.tv-tabs button[aria-current=true]{background:var(--brand-soft);color:var(--brand-text);border-color:var(--brand)}.tv-hint{margin-left:auto;font-size:14px;color:var(--muted)}.tv-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:16px;gap:16px;margin-bottom:24px}.tv-tile{background:var(--surface);border:1px solid var(--border);border-top:6px solid var(--border);border-radius:14px;padding:20px 24px}.tv-tile strong{display:block;font-size:84px;line-height:1}.tv-tile span{color:var(--muted);font-size:24px}.tv-tile.ongoing{border-top-color:var(--warn)}.tv-tile.closed{border-top-color:var(--ok)}.tv-tile.start{border-top-color:#60a5fa}.tv-tile.warn{border-top-color:var(--warn)}.tv-rows{display:grid;grid-gap:14px;gap:14px}.tv-row{display:grid;grid-template-columns:200px 260px 1fr;grid-gap:16px;gap:16px;align-items:center}.tv-name{font-weight:700;font-size:28px}.tv-num{font-size:28px;color:var(--muted)}.tv-meter{height:22px}.tv-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:10px;gap:10px;font-size:26px}.tv-list em{color:var(--muted);font-style:normal;font-size:20px;margin-left:8px}.tv-h{font-size:28px;margin:0 0 12px}.tv-stage .leaflet-container{height:62vh!important}@media (max-width:800px){.tv{padding:12px;font-size:16px}.tv-tile strong{font-size:48px}.tv-row{grid-template-columns:1fr}}@media print{.chart-data summary,.crumbs,.customize,.leaflet-container,.no-print,.panel-actions,.toast{display:none!important}.chart-data:not([open])>:not(summary),.print-only{display:block}.app-main{padding:0;max-width:none}.panel,.tile{page-break-inside:avoid;break-inside:avoid;box-shadow:none}.dash-grid{grid-template-columns:1fr 1fr}body{background:#fff;color:#000}}.week-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));grid-gap:6px;gap:6px;margin-top:8px}.week-grid input{width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-weight:550;cursor:pointer;transition:background calc(.15s * var(--spd, 1)) var(--ease),border-color calc(.15s * var(--spd, 1)) var(--ease),box-shadow calc(.15s * var(--spd, 1)) var(--ease),transform calc(.08s * var(--spd, 1)) var(--ease)}.btn,.btn:hover{text-decoration:none}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}.btn-sm{min-height:28px;padding:0 10px;font-size:13px}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);box-shadow:0 1px 2px rgb(200 16 46/25%)}.btn-primary:hover{background:var(--brand);filter:brightness(.93)}.btn-danger{color:var(--danger);border-color:var(--danger-soft);background:var(--danger-soft)}.btn-danger:hover{filter:brightness(.96);background:var(--danger-soft)}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger-solid:hover{background:var(--danger);filter:brightness(.92)}.btn-ghost{border-color:transparent;background:transparent}.btn .icon{margin-left:-2px}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:6px 10px;min-height:34px;transition:border-color calc(.15s * var(--spd, 1)) var(--ease),box-shadow calc(.15s * var(--spd, 1)) var(--ease)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}input[type=checkbox],input[type=radio]{min-height:0;accent-color:var(--brand)}.card{border-radius:var(--radius)}.badge{gap:4px}.seg-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:0;background:var(--surface);color:var(--muted);font:inherit;font-weight:600;cursor:pointer;border-left:1px solid var(--border)}.seg-btn:first-child{border-left:0}.seg-btn[aria-checked=true],.seg-btn[aria-pressed=true]{background:var(--brand);color:var(--brand-ink)}.logo-mark{display:block;flex:none}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}.card,.empty-state,.hero,.kpi,.panel,.tile{animation:rise calc(.35s * var(--spd, 1)) var(--ease) backwards}.dash-grid>:nth-child(2),.kpis>:nth-child(2),.tiles>:nth-child(2){animation-delay:calc(.04s * var(--spd, 1))}.dash-grid>:nth-child(3),.kpis>:nth-child(3),.tiles>:nth-child(3){animation-delay:calc(.08s * var(--spd, 1))}.dash-grid>:nth-child(4),.kpis>:nth-child(4),.tiles>:nth-child(4){animation-delay:calc(.12s * var(--spd, 1))}.dash-grid>:nth-child(n+5),.tiles>:nth-child(n+5){animation-delay:calc(.16s * var(--spd, 1))}@media (prefers-reduced-motion:reduce){:root:not([data-motion]) *,:root:not([data-motion]) :after,:root:not([data-motion]) :before{animation-duration:.001ms!important;animation-delay:0s!important;transition-duration:.001ms!important}}.kpi.link,a.tile{transition:transform calc(.15s * var(--spd, 1)) var(--ease),box-shadow calc(.15s * var(--spd, 1)) var(--ease),border-color calc(.15s * var(--spd, 1)) var(--ease)}.kpi.link:hover,a.tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}tbody tr{transition:background calc(.12s * var(--spd, 1)) var(--ease)}.nav-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:100;background:var(--accent);box-shadow:0 0 8px var(--accent);opacity:0;pointer-events:none}.nav-progress.run{opacity:1;width:82%;transition:width calc(10s * var(--spd, 1)) cubic-bezier(.1,.8,.2,1)}.nav-progress.done{opacity:0;width:100%;transition:width calc(.2s * var(--spd, 1)) ease-out,opacity calc(.35s * var(--spd, 1)) calc(.2s * var(--spd, 1))}.toasts{position:fixed;right:16px;bottom:16px;z-index:90;display:grid;grid-gap:8px;gap:8px;width:min(92vw,380px)}.toast-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--info);box-shadow:var(--shadow-lg);animation:rise calc(.25s * var(--spd, 1)) var(--ease)}.toast-item.success{border-left-color:var(--ok)}.toast-item.success>.icon:first-child{color:var(--ok)}.toast-item.error{border-left-color:var(--danger)}.toast-item.error>.icon:first-child{color:var(--danger)}.toast-item.info>.icon:first-child{color:var(--info)}.toast-text{flex:1 1}.toast-undo{display:inline-flex;align-items:center;gap:4px;color:var(--link);font:inherit;font-weight:650}.toast-undo,.toast-x{border:0;background:transparent;cursor:pointer}.toast-x{color:var(--muted);padding:2px;display:grid}.modal-backdrop{position:fixed;inset:0;z-index:95;background:rgb(8 12 20/55%);display:grid;place-items:center;padding:16px;animation:fade calc(.15s * var(--spd, 1));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{width:min(100%,440px);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:22px;animation:rise calc(.2s * var(--spd, 1)) var(--ease)}.modal h2{margin:10px 0 4px;font-size:18px}.modal-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--info-soft);color:var(--info)}.modal-icon.danger{background:var(--danger-soft);color:var(--danger)}.modal-msg{margin:0 0 4px;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.drawer-backdrop{position:fixed;inset:0;z-index:80;background:rgb(8 12 20/45%);animation:fade calc(.15s * var(--spd, 1))}.drawer{position:fixed;top:0;right:0;bottom:0;z-index:81;width:min(100vw,560px);background:var(--surface);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slide-in calc(.22s * var(--spd, 1)) var(--ease)}.drawer.wide{width:min(100vw,960px)}@keyframes slide-in{0%{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}.drawer-head{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border)}.drawer-head h2{margin:0;flex:1 1;font-size:16px}.drawer-body{flex:1 1;overflow:auto;padding:16px}.drawer-foot{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border);flex-wrap:wrap}.drawer iframe{width:100%;height:100%;min-height:60vh;border:0;background:var(--surface-2);border-radius:var(--radius-sm)}.empty-state{display:grid;justify-items:center;grid-gap:6px;gap:6px;text-align:center;padding:28px 16px;color:var(--muted)}.empty-state strong{color:var(--text);font-size:15px}.empty-state p{margin:0 0 6px;max-width:42ch}.empty-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--surface-2);color:var(--muted)}.status-page{min-height:100vh;display:grid;align-content:center;justify-items:center;grid-gap:6px;gap:6px;padding:24px;text-align:center}.status-page.inline{min-height:50vh}.status-code{font-size:64px;font-weight:800;margin:8px 0 0;color:var(--brand);letter-spacing:-.03em;line-height:1}.skeleton{background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:shimmer calc(1.3s * var(--spd, 1)) infinite;border-radius:var(--radius)}.skel-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:grid;grid-gap:10px;gap:10px;min-height:190px}.skel-line{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:shimmer calc(1.3s * var(--spd, 1)) infinite}.skel-line.title{height:16px;width:45%}.skel-line.s{width:70%}.skel-line.xs{width:40%}.ring{position:relative;display:inline-grid;place-items:center;flex:none}.ring svg{position:absolute;inset:0}.ring-arc{transition:stroke-dasharray calc(.8s * var(--spd, 1)) var(--ease)}.ring-text{position:relative;font-weight:700;font-size:14px}.spark{color:var(--accent);display:block}.donut{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.donut-legend{list-style:none;margin:0;padding:0;display:grid;grid-gap:4px;gap:4px}.donut-legend .swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}.chip{display:inline-flex;align-items:center;gap:6px;padding:2px 4px 2px 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand-text);font-size:12px;font-weight:600}.chip button{display:grid;place-items:center;width:18px;height:18px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.chip button:hover{background:color-mix(in srgb,var(--brand) 18%,transparent)}.menu{position:relative;display:inline-block}.menu-list{position:fixed;z-index:60;overflow:auto;min-width:170px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:grid;animation:rise calc(.15s * var(--spd, 1)) var(--ease)}.menu-list.left{right:auto;left:0}.menu-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;text-decoration:none;white-space:nowrap}.menu-item:hover{background:var(--surface-2);text-decoration:none}.menu-item.danger{color:var(--danger)}.menu-sep{height:1px;margin:4px 0;background:var(--border)}.menu-label{padding:4px 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.menu-check{display:flex;align-items:center;gap:8px;padding:6px 10px;cursor:pointer}.tile{position:relative}.tile-icon{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--surface-2);color:var(--muted)}.tile-ongoing .tile-icon{background:var(--info-soft);color:var(--info)}.tile-closed .tile-icon{background:var(--ok-soft);color:var(--ok)}.tile-start .tile-icon{background:var(--warn-soft);color:var(--warn)}.tile-hero{background:linear-gradient(135deg,var(--brand-deep),color-mix(in srgb,var(--brand-deep) 70%,#000));color:#fff;border-color:transparent}.tile-hero small,.tile-hero>span{color:rgb(255 255 255/85%)}.tile-hero .tile-icon{background:rgb(255 255 255/20%);color:#fff}.tile-hero .spark{color:#fff;margin-top:6px}.tile-hero .down,.tile-hero .up{color:#fff;font-weight:600}.tile-hero strong{color:#fff}.status-tabs{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:12px;background:var(--surface);max-width:100%;overflow-x:auto}.chips{flex-wrap:wrap;gap:8px;margin-bottom:12px}.chips,.menu-row{display:flex;align-items:center}.menu-row .menu-item{flex:1 1}.menu-x{display:grid;place-items:center;border:0;background:transparent;color:var(--muted);padding:6px;border-radius:var(--radius-sm);cursor:pointer}.menu-x:hover{color:var(--danger);background:var(--danger-soft)}.menu-save{display:flex;gap:6px;padding:4px 6px 6px}.menu-save input{min-width:0;flex:1 1;min-height:30px}.table-scroll{max-height:70vh;overflow:auto}table.data thead th{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:var(--surface-2)}.table-scroll.compact table.data td{padding-top:4px;padding-bottom:4px;font-size:13px}table.data td.empty-cell{padding:8px}table.data td .skel-line{min-width:40px}table.data tbody tr:nth-child(2n){background:color-mix(in srgb,var(--surface-2) 45%,transparent)}table.data tbody tr:hover{background:var(--surface-2)}@media (max-width:720px){table.cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}table.cards,table.cards tbody,table.cards td,table.cards tr{display:block;width:100%}table.cards tr{padding:10px 12px;border-bottom:1px solid var(--border)}table.cards td{display:flex;justify-content:space-between;gap:12px;border:0;padding:3px 0;white-space:normal;text-align:right}table.cards td[data-label]:before{content:attr(data-label);color:var(--muted);font-size:12px;text-align:left;flex:none}table.cards td.empty-cell{display:block}.table-scroll{max-height:none}}.search-select,.ss-box{position:relative}.ss-box input[role=combobox]{width:100%;padding-right:32px}.ss-icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;display:grid}.ss-list{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 4px);max-height:240px;overflow:auto;margin:0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.ss-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--radius-sm);cursor:pointer}.ss-list li.on{background:var(--surface-2)}.ss-list li.sel{font-weight:650;color:var(--brand-text)}.ss-list .ss-empty{color:var(--muted);cursor:default}.field-hint{color:var(--muted);font-size:12px}.field-error{color:var(--danger);font-size:12px;font-weight:600}.field.invalid input,input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--danger)}.unsaved{color:var(--warn);font-weight:600;align-self:center}.auth-split{min-height:100vh;display:grid;grid-template-columns:minmax(320px,5fr) minmax(360px,6fr)}.auth-brand{position:relative;display:grid;align-items:center;padding:48px;color:#fff;background:radial-gradient(circle at 20% 15%,rgb(255 255 255/14%),transparent 45%),linear-gradient(145deg,var(--brand-deep),color-mix(in srgb,var(--brand-deep) 55%,#000));overflow:hidden}.auth-brand:after{content:"";position:absolute;right:-90px;bottom:-90px;width:320px;height:320px;border-radius:50%;background:rgb(255 255 255/8%)}.auth-brand-inner{position:relative;z-index:1;max-width:420px}.auth-brand .logo-mark rect{fill:#fff}.auth-brand .logo-mark path{stroke:var(--brand)}.auth-brand .logo-mark circle{fill:#fff;stroke:var(--brand)}.auth-brand h2{margin:18px 0 8px;font-size:28px;letter-spacing:-.01em;color:#fff}.auth-brand p{margin:0 0 20px;color:rgb(255 255 255/85%)}.auth-brand ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:12px;gap:12px}.auth-brand li{display:flex;align-items:center;gap:10px;color:rgb(255 255 255/92%)}.auth-panel{position:relative;display:grid;place-items:center;padding:24px}.auth-panel .login-wrap{min-height:0;padding:0;width:100%;display:grid;place-items:center}.auth-theme{position:absolute;top:12px;right:12px}.pw-box{position:relative}.pw-box input{width:100%;padding-right:38px}.pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer}.pw-toggle:hover{color:var(--text);background:var(--surface-2)}@media (max-width:860px){.auth-split{grid-template-columns:1fr}.auth-brand{padding:24px}.auth-brand p,.auth-brand ul{display:none}.auth-brand h2{font-size:20px;margin:10px 0 0}.auth-brand .logo-mark{width:36px;height:36px}}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.stepper{list-style:none;margin:0 0 16px;padding:0;display:flex;gap:0}.stepper li{flex:1 1;display:flex;align-items:center;gap:8px;color:var(--muted);font-weight:600;position:relative}.stepper li:not(:last-child):after{content:"";flex:1 1;height:2px;margin:0 10px;background:var(--border)}.stepper li.done:not(:last-child):after{background:var(--ok)}.step-dot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;background:var(--surface-2);border:1px solid var(--border-strong);flex:none}.stepper li.done{color:var(--ok)}.stepper li.done .step-dot{background:var(--ok);border-color:var(--ok);color:#fff}.stepper li.now{color:var(--text)}.stepper li.now .step-dot{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);box-shadow:0 0 0 4px var(--brand-soft)}.detail-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:minmax(280px,1fr) minmax(320px,1.4fr);align-items:start;margin-bottom:16px}.card-title{margin:0 0 10px;font-size:15px}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.card-title-row .card-title{margin:0}.progress-note{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.progress-note .ring-text{font-size:12px}dl.kv dt{display:flex;align-items:center;gap:6px}dl.kv dt .icon{color:var(--muted)}.route-line{list-style:none;margin:0;padding:0}.route-line li{position:relative;display:flex;gap:12px;padding-bottom:16px}.route-line li:last-child{padding-bottom:0}.route-line li:not(:last-child):before{content:"";position:absolute;left:11px;top:26px;bottom:2px;width:2px;background:var(--border-strong)}.route-line li.has:not(:last-child):before{background:var(--ok)}.stop-dot{width:24px;height:24px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--surface-2);border:1px solid var(--border-strong)}.route-line li.has .stop-dot{background:var(--ok);border-color:var(--ok);color:#fff}.stop-body{flex:1 1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;min-width:0}.stop-actions{display:inline-flex;gap:6px;flex-wrap:wrap}@media (max-width:860px){.detail-grid{grid-template-columns:1fr}.stepper li{font-size:12px}}.bottom-nav{display:none}@media (max-width:820px){.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 10px rgb(0 0 0/6%)}.bn-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:54px;padding:6px 4px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:11px;font-weight:600;text-decoration:none;cursor:pointer}.bn-item[aria-current=page],.bn-item[aria-expanded=true]{color:var(--brand)}.app-main{padding-bottom:84px}.toasts{bottom:72px;right:8px;left:8px;width:auto}}@media print{.bottom-nav{display:none}}.nav-foot-btn{min-width:0}.nav-foot-btn,.nav-foot-btn .nav-label{white-space:nowrap}@media (min-width:721px){table.cards td:last-child,table.cards th:last-child{position:-webkit-sticky;position:sticky;right:0;box-shadow:-8px 0 8px -8px rgb(0 0 0/18%)}table.cards td:last-child{background:var(--surface)}table.cards th:last-child{z-index:3}}@media (max-width:720px){.ss-list{max-height:38vh}}.login-hint{margin:0;color:var(--muted);font-size:12px}.tab-count{margin-left:6px;padding:0 6px;border-radius:999px;background:color-mix(in srgb,currentColor 14%,transparent);font-size:11px;font-weight:700}.quick-ranges{display:flex;flex-wrap:wrap;gap:6px;margin:-4px 0 12px}.chip-btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--muted);border-radius:999px;padding:2px 12px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.chip-btn:hover{color:var(--text);background:var(--surface-2)}.chip-btn[aria-pressed=true]{background:var(--brand-soft);border-color:transparent;color:var(--brand-text)}.bulk-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;margin-bottom:8px;border:1px solid var(--brand);border-radius:var(--radius);background:var(--brand-soft);animation:rise calc(.2s * var(--spd, 1)) var(--ease)}.bulk-bar strong{margin-right:6px}tr.clickable{cursor:pointer}tr.picked{background:var(--brand-soft)!important}tr.attn td:first-child,tr.attn td:nth-child(2){box-shadow:inset 3px 0 0 var(--warn)}.attn-dot{display:inline-grid;place-items:center;margin-left:6px;color:var(--warn);vertical-align:middle}.activity{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.activity li{display:grid;grid-template-columns:24px 1fr auto;grid-gap:10px;gap:10px;align-items:center}.activity time{color:var(--muted);font-size:12px;white-space:nowrap}.act-dot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--muted)}@media print{.bell,.bottom-nav,.bulk-bar,.nav-progress,.offline-banner,.page-actions,.quick-ranges,.status-tabs,.stop-actions,.tabs-bar,.toasts{display:none!important}.card,.detail-grid{page-break-inside:avoid;break-inside:avoid;box-shadow:none}.detail-grid{grid-template-columns:1fr 1fr}a{color:inherit;text-decoration:none}}.bilty-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;grid-gap:16px;gap:16px;align-items:start}.bilty-preview{position:-webkit-sticky;position:sticky;top:76px}.readiness{list-style:none;margin:12px 0 8px;padding:0;display:grid;grid-gap:6px;gap:6px;font-size:13px}.readiness li{display:flex;gap:6px;align-items:center;color:var(--warn)}.readiness li.ok{color:var(--ok)}@media (max-width:1100px){.bilty-layout{grid-template-columns:1fr}.bilty-preview{position:static;order:-1}}.drag-handle{display:inline-grid;vertical-align:middle;color:var(--muted);cursor:-webkit-grab;cursor:grab}tr.dragging{opacity:.45}.role-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;grid-gap:16px;gap:16px;align-items:start}.role-preview{position:-webkit-sticky;position:sticky;top:76px;font-size:13px}.role-nav,.role-nav ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:4px;gap:4px}.role-nav ul{padding-left:12px;margin-top:4px;color:var(--muted)}.role-nav li{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.role-nav>li>strong{width:100%;margin-top:6px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}@media (max-width:1100px){.role-layout{grid-template-columns:1fr}.role-preview{position:static}}.tabs-bar{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto}.tab-btn{border:0;background:transparent;padding:9px 14px;font:inherit;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap}.tab-btn:hover{color:var(--text)}.tab-btn[aria-selected=true]{color:var(--brand);border-bottom-color:var(--brand)}.menu-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--brand);color:var(--brand-ink);font-size:10px;font-weight:700;display:grid;place-items:center}.icon-btn{position:relative}.bell-list{display:grid;min-width:260px;max-width:320px;max-height:60vh;overflow:auto}.bell-list .menu-item{white-space:normal;align-items:flex-start}.offline-banner{position:-webkit-sticky;position:sticky;top:0;z-index:70;display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 12px;background:var(--danger);color:#fff;font-weight:600}.palette-list .pal-group{cursor:default;padding:8px 10px 2px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.palette-list mark{background:transparent;color:var(--brand);font-weight:800}.mix-card{margin-top:16px}.dash-bar{position:-webkit-sticky;position:sticky;top:52px;z-index:20;background:var(--bg);padding:8px 0}:root[data-theme=dark] .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.9)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.9)}}@media print{.dash-bar{position:static}}.brand{color:var(--brand-text)}.card p a,.panel .sub a,.panel p a,.rows a{text-decoration:underline;text-underline-offset:2px}.menu-badge:after{content:attr(data-count)}:root{--radius-sm:8px;--radius:12px;--radius-lg:18px;--shadow:0 1px 2px rgb(16 24 40/4%),0 2px 8px rgb(16 24 40/5%);--shadow-md:0 2px 4px rgb(16 24 40/5%),0 8px 20px rgb(16 24 40/8%);--data-1:#4f46e5;--data-2:#0d9488;--data-3:#d97706;--data-4:#db2777;--glass:rgb(255 255 255/72%);--border:#e3e7ee;--bg:#f5f6fa}:root[data-theme=dark]{--data-1:#8b93ff;--data-2:#2dd4bf;--data-3:#fbbf24;--data-4:#f472b6;--glass:rgb(24 30 40/72%);--border:#2a3444}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--data-1:#8b93ff;--data-2:#2dd4bf;--data-3:#fbbf24;--data-4:#f472b6;--glass:rgb(24 30 40/72%);--border:#2a3444}}:root[data-accent=indigo]{--brand:#4f46e5;--brand-deep:#4338ca;--brand-soft:#eceeff;--brand-text:#4338ca;--brand-ink:#ffffff}:root[data-theme=dark][data-accent=indigo]{--brand:#8b93ff;--brand-deep:#4338ca;--brand-soft:#202552;--brand-text:#b9bdff;--brand-ink:#0b1020}@media (prefers-color-scheme:dark){:root:not([data-theme=light])[data-accent=indigo]{--brand:#8b93ff;--brand-deep:#4338ca;--brand-soft:#202552;--brand-text:#b9bdff;--brand-ink:#0b1020}}:root[data-accent=teal]{--brand:#0f766e;--brand-deep:#0f766e;--brand-soft:#e6f6f4;--brand-text:#0a5a54;--brand-ink:#ffffff}:root[data-theme=dark][data-accent=teal]{--brand:#2dd4bf;--brand-deep:#0f766e;--brand-soft:#0f3531;--brand-text:#86f0e0;--brand-ink:#04201d}@media (prefers-color-scheme:dark){:root:not([data-theme=light])[data-accent=teal]{--brand:#2dd4bf;--brand-deep:#0f766e;--brand-soft:#0f3531;--brand-text:#86f0e0;--brand-ink:#04201d}}:root[data-accent=green]{--brand:#15803d;--brand-deep:#15803d;--brand-soft:#e6f6ea;--brand-text:#0f6a31;--brand-ink:#ffffff}:root[data-theme=dark][data-accent=green]{--brand:#4ade80;--brand-deep:#15803d;--brand-soft:#123420;--brand-text:#9af0b5;--brand-ink:#05210f}@media (prefers-color-scheme:dark){:root:not([data-theme=light])[data-accent=green]{--brand:#4ade80;--brand-deep:#15803d;--brand-soft:#123420;--brand-text:#9af0b5;--brand-ink:#05210f}}:root[data-accent=slate]{--brand:#334155;--brand-deep:#334155;--brand-soft:#e7ecf2;--brand-text:#334155;--brand-ink:#ffffff}:root[data-theme=dark][data-accent=slate]{--brand:#a3b1c6;--brand-deep:#475569;--brand-soft:#232d3b;--brand-text:#d3dbe7;--brand-ink:#0c1119}@media (prefers-color-scheme:dark){:root:not([data-theme=light])[data-accent=slate]{--brand:#a3b1c6;--brand-deep:#475569;--brand-soft:#232d3b;--brand-text:#d3dbe7;--brand-ink:#0c1119}}:root[data-contrast=high]{--text:#000;--muted:#28303d;--border:#5b6678;--border-strong:#28303d}:root[data-theme=dark][data-contrast=high]{--text:#fff;--muted:#e2e8f1;--border:#8a96a9;--border-strong:#c3ccda}@media (prefers-color-scheme:dark){:root:not([data-theme=light])[data-contrast=high]{--text:#fff;--muted:#e2e8f1;--border:#8a96a9;--border-strong:#c3ccda}}:root[data-contrast=high] :focus-visible{outline-width:3px}html[data-font=large] body{zoom:1.12}html[data-density=compact] .btn{min-height:30px;padding:0 11px}html[data-density=compact] input,html[data-density=compact] select{min-height:30px}html[data-density=compact] table.data td{padding-top:4px;padding-bottom:4px}html[data-density=compact] .card,html[data-density=compact] .panel{padding:12px}html[data-density=compact] .app-main{padding:16px}html[data-density=compact] .nav-link{padding-top:5px;padding-bottom:5px}.pref-group{display:grid;grid-gap:8px;gap:8px;margin-bottom:18px}.pref-group>strong{font-size:13px}.swatches{display:flex;flex-wrap:wrap;gap:10px}.swatch-btn{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 8px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.swatch-btn .dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--border-strong)}.swatch-btn[aria-checked=true]{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 22%,transparent)}.topbar{background:var(--glass);-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px);border-bottom-color:var(--border)}.app-nav{background:var(--surface)}.nav-link{border-radius:10px;transition:background calc(.15s * var(--spd, 1)) var(--ease),color calc(.15s * var(--spd, 1)) var(--ease)}.nav-link:hover{background:var(--surface-2)}.nav-link[aria-current=page]{background:var(--brand-soft);color:var(--brand-text);font-weight:650;box-shadow:inset 3px 0 0 var(--brand)}.nav-title{border-radius:10px;font-size:12px;letter-spacing:.06em}.nav-badge{border-radius:999px}.app-main{max-width:1440px;width:100%;margin-inline:auto}.client-pill{background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--text);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent)}.client-pill:before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--accent)}.page-head{align-items:flex-end;padding-bottom:14px;margin-bottom:20px;border-bottom:1px solid var(--border)}.page-head h1{font-size:26px;letter-spacing:-.02em}.page-head p{font-size:14px}.card,.panel,.table-scroll,.tile{border-radius:var(--radius);box-shadow:var(--shadow)}.card,.panel,.tile{transition:box-shadow calc(.2s * var(--spd, 1)) var(--ease),border-color calc(.2s * var(--spd, 1)) var(--ease)}.badge,.kv dd,.pager,.tab-count,.tile strong,td,th,time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}h2{letter-spacing:-.01em}input,select,textarea{border-radius:10px}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:color-mix(in srgb,var(--brand) 45%,var(--border-strong))}::selection{background:color-mix(in srgb,var(--brand) 25%,transparent)}.form-section{display:grid;grid-gap:12px;gap:12px;padding-bottom:16px;margin-bottom:4px;border-bottom:1px dashed var(--border)}.form-section:last-of-type{border-bottom:0}.form-section>h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.form-section .section-fields{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}table.data th{font-size:11px;letter-spacing:.06em;font-weight:700}table.data td,table.data th{padding:11px 10px}table.data tbody tr:hover{background:color-mix(in srgb,var(--brand) 5%,var(--surface))}.table-scroll{background:var(--surface)}@media (min-width:721px){#trips-list table.cards td:first-child,#trips-list table.cards th:first-child{position:-webkit-sticky;position:sticky;left:0;z-index:2;width:40px;min-width:40px;background:var(--surface)}#trips-list table.cards td:nth-child(2),#trips-list table.cards th:nth-child(2){position:-webkit-sticky;position:sticky;left:40px;z-index:2;background:var(--surface);box-shadow:6px 0 8px -8px rgb(0 0 0/22%)}#trips-list table.cards th:first-child,#trips-list table.cards th:nth-child(2){background:var(--surface-2);z-index:3}#trips-list table.cards tbody tr:nth-child(2n) td:first-child,#trips-list table.cards tbody tr:nth-child(2n) td:nth-child(2){background:color-mix(in srgb,var(--surface-2) 45%,var(--surface))}#trips-list table.cards tbody tr:hover td:first-child,#trips-list table.cards tbody tr:hover td:nth-child(2){background:color-mix(in srgb,var(--brand) 5%,var(--surface))}#trips-list table.cards tbody tr.picked td{background:var(--brand-soft)}#trips-list table.cards td:last-child,#trips-list table.cards th:last-child{right:0}}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:650;line-height:1.6}.badge:not(:has(svg)):before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.btn{border-radius:10px}.btn-primary{box-shadow:0 1px 2px color-mix(in srgb,var(--brand) 40%,transparent),inset 0 1px 0 rgb(255 255 255/14%)}.btn-primary:hover{filter:brightness(1.06)}.btn[aria-busy=true]{position:relative;color:transparent!important;pointer-events:none}.btn[aria-busy=true]>*{visibility:hidden}.btn[aria-busy=true]:after{content:"";position:absolute;inset:0;margin:auto;width:16px;height:16px;border-radius:50%;border:2px solid var(--brand-ink);border-right:2px solid transparent;animation:spin calc(.7s * var(--spd, 1)) linear infinite}.btn:not(.btn-primary)[aria-busy=true]:after{border-color:var(--muted);border-right-color:transparent}@keyframes spin{to{transform:rotate(1turn)}}.page-fade{animation:page-in calc(.24s * var(--spd, 1)) var(--ease) backwards}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.nav-progress:after{content:"";position:absolute;right:-4px;top:3px;width:22px;height:12px;background:var(--brand);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 14'%3E%3Cpath d='M1 2h13v8H1zM14 4h5l4 3v3h-9z'/%3E%3Ccircle cx='5' cy='11.5' r='2'/%3E%3Ccircle cx='18' cy='11.5' r='2'/%3E%3C/svg%3E") center /contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 14'%3E%3Cpath d='M1 2h13v8H1zM14 4h5l4 3v3h-9z'/%3E%3Ccircle cx='5' cy='11.5' r='2'/%3E%3Ccircle cx='18' cy='11.5' r='2'/%3E%3C/svg%3E") center /contain no-repeat}.nav-progress.done:after,.nav-progress.idle:after{opacity:0}.tile strong{font-size:32px;letter-spacing:-.02em}@media (min-width:1100px){.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}.tiles>.tile-hero{grid-column:span 2;grid-row:span 2;display:grid;align-content:center;grid-gap:4px;gap:4px;padding:24px}.tiles>.tile-hero strong{font-size:56px}}@media (min-width:1200px){.dash-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.dash-grid>.panel,.dash-grid>.skel-panel,.dash-grid>.skeleton{grid-column:span 6}.dash-grid>.panel.wide{grid-column:1/-1}.dash-grid>[data-panel=drop],.dash-grid>[data-panel=myday],.dash-grid>[data-panel=quick]{grid-column:span 4}}.chart-link:hover rect:last-of-type{opacity:.75}.fab{display:none}@media (max-width:820px){.fab{position:fixed;right:16px;bottom:74px;z-index:45;display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--brand);color:var(--brand-ink);box-shadow:var(--shadow-lg)}.fab,.fab:hover{text-decoration:none}.fab:hover{filter:brightness(1.06)}.toasts{bottom:136px}}@media (max-width:600px){.modal-backdrop{place-items:end center;padding:0}.modal{width:100%;max-width:none;border-radius:20px 20px 0 0;padding:22px 20px calc(22px + env(safe-area-inset-bottom));animation:sheet calc(.26s * var(--spd, 1)) var(--ease)}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%;justify-content:center;min-height:42px}.drawer,.drawer.wide{width:100vw}}@keyframes sheet{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}@media print{.fab{display:none}}.peek{position:fixed;top:52px;right:0;bottom:0;z-index:35;width:min(100vw,400px);display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);animation:slide-in calc(.22s * var(--spd, 1)) var(--ease)}.peek-head{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border)}.peek-head h2{margin:0;flex:1 1;font-size:16px}.peek-body{flex:1 1;overflow:auto;padding:16px}.peek-foot{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--border)}.peek-sub{display:flex;justify-content:space-between;align-items:baseline;margin:18px 0 10px;font-size:13px}tr.peeked td{background:var(--brand-soft)!important}@media (max-width:820px){.new-trip-btn{display:none}}@media print{.new-trip-btn,.peek{display:none!important}}@media (min-width:1100px){.tiles>.tile:nth-last-child(-n+2):not(.tile-hero){grid-column:span 2}}.mix-card{display:flex;align-items:center;gap:32px;flex-wrap:wrap}.mix-card .card-title{margin:0;min-width:140px}.tabs-bar{overflow-y:hidden}.seg-btn[aria-pressed=true] .tab-count{background:transparent;box-shadow:inset 0 0 0 1px currentColor}.photo-actions{display:inline-flex;gap:6px;flex-wrap:wrap}.photo-grid{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}.photo-grid button{display:block;width:100%;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-2);cursor:zoom-in;aspect-ratio:1}.photo-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform calc(.2s * var(--spd, 1)) var(--ease)}.photo-grid button:hover img{transform:scale(1.05)}.lightbox{position:fixed;inset:0;z-index:96;display:grid;place-items:center;padding:16px;background:rgb(6 9 15/82%);animation:fade calc(.15s * var(--spd, 1))}.lightbox-body{position:relative;max-width:min(100%,1100px);max-height:100%;display:grid;grid-gap:10px;gap:10px}.lightbox-body img{max-width:100%;max-height:calc(100vh - 110px);margin-inline:auto;border-radius:var(--radius);background:#000;object-fit:contain}.lightbox-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:var(--radius);background:var(--surface)}.lb-nav{position:absolute;top:45%;display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:50%;background:rgb(255 255 255/85%);color:#111;cursor:pointer}.lb-nav.prev{left:8px;transform:rotate(90deg)}.lb-nav.next{right:8px;transform:rotate(-90deg)}@media print{.no-print-photos{display:none}}table.data th{position:relative}th[draggable=true]{cursor:-webkit-grab;cursor:grab}th.col-dragging{opacity:.5}.col-resizer{position:absolute;top:0;right:0;bottom:0;width:8px;cursor:col-resize;touch-action:none}.col-resizer:after{content:"";position:absolute;top:25%;bottom:25%;right:3px;width:2px;border-radius:2px;background:var(--border-strong);opacity:0;transition:opacity calc(.15s * var(--spd, 1))}.col-resizer:active:after,th:hover .col-resizer:after{opacity:1}.icon-btn-sm{width:22px;height:22px;border-radius:6px;margin-left:4px;vertical-align:middle}.menu-item:disabled{opacity:.5;cursor:not-allowed}.menu-item .meta{margin-left:auto;font-size:11px}.sheet-backdrop{position:fixed;inset:0;z-index:94;background:rgb(8 12 20/50%);animation:fade calc(.15s * var(--spd, 1))}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:95;display:grid;padding:8px 12px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-radius:20px 20px 0 0;box-shadow:var(--shadow-lg);animation:sheet calc(.26s * var(--spd, 1)) var(--ease)}.sheet-grip{width:40px;height:4px;margin:4px auto 10px;border-radius:4px;background:var(--border-strong)}.sheet-title{gap:8px;margin:0 4px 6px;font-size:16px}.sheet-item,.sheet-title{display:flex;align-items:center}.sheet-item{gap:12px;min-height:48px;padding:0 10px;border:0;border-radius:12px;background:transparent;color:var(--text);font:inherit;font-weight:600;text-decoration:none;text-align:left;cursor:pointer}.sheet-item:hover{background:var(--surface-2);text-decoration:none}.sheet-item.danger{color:var(--danger)}@media (min-width:721px){.sheet,.sheet-backdrop{display:none}}.chart-frame{position:relative}.chart-cross{top:4px;bottom:22px;width:1px;background:var(--border-strong)}.chart-cross,.chart-tip{position:absolute;pointer-events:none}.chart-tip{top:6px;z-index:5;display:grid;grid-gap:2px;gap:2px;padding:6px 10px;border-radius:8px;background:var(--text);color:var(--bg);font-size:12px;white-space:nowrap;box-shadow:var(--shadow-md)}.chart-tip strong{font-size:11px;opacity:.75;font-weight:700}.legend-btn{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font:inherit;cursor:pointer}.legend-btn:hover{color:var(--text)}.legend-btn[aria-pressed=false]{opacity:.5;text-decoration:line-through}.panel[data-hidden~=cost] [data-series=cost],.panel[data-hidden~=sale] [data-series=sale]{display:none}.chart-bar{transform-box:fill-box;transform-origin:bottom;animation:grow-bar calc(.6s * var(--spd, 1)) var(--ease) both;animation-delay:calc(var(--i, 0) * calc(14ms * var(--spd, 1)))}@keyframes grow-bar{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.chart-line{stroke-dasharray:1;stroke-dashoffset:1;animation:draw-line calc(1.1s * var(--spd, 1)) var(--ease) calc(.1s * var(--spd, 1)) forwards}.chart-line-b{animation:fade calc(.8s * var(--spd, 1)) calc(.5s * var(--spd, 1)) both}@keyframes draw-line{to{stroke-dashoffset:0}}svg:hover .chart-bar{opacity:.85}.float-field{position:relative}.float-field input{width:100%;min-height:50px;padding:22px 12px 6px}.float-field label{position:absolute;left:13px;top:15px;color:var(--muted);font-size:14px;pointer-events:none;transition:top calc(.14s * var(--spd, 1)) var(--ease),font-size calc(.14s * var(--spd, 1)) var(--ease),color calc(.14s * var(--spd, 1))}.float-field input:focus+label,.float-field input:not(:placeholder-shown)+label{top:6px;font-size:11px;font-weight:600}.float-field input:focus+label{color:var(--brand-text)}.float-field.pw-box input{padding-right:40px}.tip{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding:8px 12px;border-radius:var(--radius);background:var(--info-soft);color:var(--info);font-size:13px;animation:rise calc(.3s * var(--spd, 1)) var(--ease)}.tip span{flex:1 1;color:var(--text)}.tip-x{border:0;background:transparent;color:var(--info);font:inherit;font-weight:700;cursor:pointer;white-space:nowrap}.btn kbd{margin-left:6px;padding:0 5px;border:1px solid;border-radius:5px;font:inherit;font-size:11px;line-height:1.5;opacity:.75}@media (max-width:820px),(pointer:coarse){.btn kbd{display:none}}.shortcuts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}.shortcuts-label{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.chip-link{padding:3px 12px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);color:var(--text);font-size:13px;font-weight:600;text-decoration:none}.chip-link:hover{background:var(--brand-soft);color:var(--brand-text);text-decoration:none}.ptr{position:fixed;top:52px;left:50%;z-index:80;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--surface);color:var(--brand);box-shadow:var(--shadow-lg);border:1px solid var(--border);pointer-events:none}.ptr-spin{display:grid;animation:spin calc(.8s * var(--spd, 1)) linear infinite}.toast-item.success>.icon:first-child path{stroke-dasharray:30;stroke-dashoffset:30;animation:tick calc(.45s * var(--spd, 1)) calc(.1s * var(--spd, 1)) var(--ease) forwards}@keyframes tick{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){:root:not([data-motion]) .toast-item.success>.icon:first-child path{stroke-dashoffset:0}}.panel .dash-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:16px}.panel .dash-grid>*{grid-column:auto;min-width:0}table.data thead th{position:static}.table-scroll table.data thead th{position:-webkit-sticky;position:sticky;top:0;z-index:2}.th-sort{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;font-weight:inherit;cursor:pointer}.th-sort:hover{color:var(--text)}.th-sort .icon{opacity:.45}th[aria-sort] .th-sort{color:var(--brand-text)}th[aria-sort] .th-sort .icon{opacity:1}tr.kbd-active td{background:color-mix(in srgb,var(--brand) 9%,var(--surface))!important}tr.kbd-active td:first-child{box-shadow:inset 3px 0 0 var(--brand)}.history{list-style:none;margin:0;padding:0;display:grid;grid-gap:14px;gap:14px}.history>li{display:grid;grid-template-columns:24px 1fr auto;grid-gap:10px;gap:10px;align-items:start}.history time{color:var(--muted);font-size:12px;white-space:nowrap}.changes{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-gap:2px;gap:2px;font-size:13px}.changes del{color:var(--danger);text-decoration:line-through}.changes ins{color:var(--ok);text-decoration:none;font-weight:600}.form-warn{grid-column:1/-1;list-style:none;margin:0;padding:10px 12px;display:grid;grid-gap:6px;gap:6px;border-radius:var(--radius);background:var(--warn-soft);color:var(--warn);font-size:13px}.form-warn li{display:flex;gap:8px;align-items:flex-start}.form-warn .icon{margin-top:2px;flex:none}.bulk table.data td{padding:6px 8px}.bulk input,.bulk select{min-width:150px;width:100%}.bulk input[type=datetime-local]{min-width:190px}.fill-down{display:inline-flex;align-items:center;gap:2px;margin-left:6px;padding:0 6px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);color:var(--muted);font:inherit;font-size:10px;text-transform:none;letter-spacing:0;cursor:pointer}.fill-down:hover{color:var(--brand-text);border-color:var(--brand)}tr.row-error td{background:var(--danger-soft)}.start-from{flex-wrap:wrap;gap:8px;padding:10px 12px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2)}.nav-title-row,.start-from{display:flex;align-items:center}.nav-title-row .nav-title{flex:1 1;min-width:0}.nav-move{display:inline-flex;flex-direction:column;opacity:0;transition:opacity calc(.15s * var(--spd, 1))}.nav-title-row:focus-within .nav-move,.nav-title-row:hover .nav-move{opacity:1}.nav-move-btn{display:grid;place-items:center;width:18px;height:12px;padding:0;border:0;background:transparent;color:var(--muted);cursor:pointer}.nav-move-btn:hover:not(:disabled){color:var(--brand-text)}.nav-move-btn:disabled{opacity:.25;cursor:default}@media (hover:none){.nav-move{opacity:1}}@media (max-width:600px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tile{padding:12px}.tile strong{font-size:24px}.tile .tile-icon{display:none}.tiles>.tile-hero{grid-column:1/-1;padding:16px}.tiles>.tile-hero strong{font-size:36px}.dash-grid{gap:10px}.panel{padding:12px}.panel-actions{display:none}.mix-card{gap:12px}.dash-bar .seg{max-width:100%;overflow-x:auto;flex-wrap:nowrap}.dash-bar .seg a{white-space:nowrap}.shortcuts{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.chip-link{white-space:nowrap}}.report-charts{display:grid;grid-gap:16px;gap:16px;grid-template-columns:minmax(0,2fr) minmax(0,1fr);margin-bottom:16px}@media (max-width:900px){.report-charts{grid-template-columns:1fr}}.schedules{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.schedules li{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius)}.schedules li.paused{background:var(--surface-2);border-style:dashed}.goals-card{margin-top:16px}.goal-list{display:grid;grid-gap:18px;gap:18px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.goal{display:flex;gap:14px;align-items:center}.goal small{display:block}@media (min-width:1200px){.peek-open{margin-right:416px;transition:margin-right calc(.2s * var(--spd, 1)) var(--ease)}}.field-hint.warn{color:var(--warn);font-weight:600}@media (pointer:coarse){body,html{overscroll-behavior-y:contain}}:root{--status-draft:#667085;--status-start:#2563eb;--status-ongoing:#d97706;--status-closed:#15803d}:root[data-theme=dark]{--status-draft:#98a2b3;--status-start:#60a5fa;--status-ongoing:#fbbf24;--status-closed:#4ade80}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--status-draft:#98a2b3;--status-start:#60a5fa;--status-ongoing:#fbbf24;--status-closed:#4ade80}}:root[data-contrast=high]{--status-draft:#344054;--status-start:#1d4ed8;--status-ongoing:#b45309;--status-closed:#166534}:root[data-theme=dark][data-contrast=high]{--status-draft:#d0d5dd;--status-start:#93c5fd;--status-ongoing:#fde047;--status-closed:#86efac}@media (prefers-color-scheme:dark){:root:not([data-theme=light])[data-contrast=high]{--status-draft:#d0d5dd;--status-start:#93c5fd;--status-ongoing:#fde047;--status-closed:#86efac}}@supports not (zoom:1){html[data-font=large] body{font-size:16px}}.schedule-paused{margin:4px 0;color:var(--warn);font-weight:600;font-size:13px}:root{--spd:1}:root[data-speed=fast]{--spd:.6}:root[data-speed=relaxed]{--spd:1.6}.pref-sub{margin:18px 0 10px;font-size:14px;border-top:1px solid var(--border);padding-top:14px}:root[data-motion=off] *,:root[data-motion=off] :after,:root[data-motion=off] :before{animation-duration:.001ms!important;animation-delay:0s!important;transition-duration:.001ms!important}:root[data-motion=off] .btn[aria-busy=true]:after,:root[data-motion=off] .ptr-spin{animation-duration:.8s!important}:root[data-motion=reduced] .card,:root[data-motion=reduced] .drawer,:root[data-motion=reduced] .empty-state,:root[data-motion=reduced] .hero,:root[data-motion=reduced] .kpi,:root[data-motion=reduced] .modal,:root[data-motion=reduced] .page-fade,:root[data-motion=reduced] .panel,:root[data-motion=reduced] .sheet,:root[data-motion=reduced] .tile,:root[data-motion=reduced] .tip,:root[data-motion=reduced] .toast-item{animation-name:fade}:root[data-motion=reduced] .kpi.link:hover,:root[data-motion=reduced] a.tile:hover{transform:none}:root[data-motion=reduced] .chart-bar,:root[data-motion=reduced] .chart-line,:root[data-motion=reduced] .chart-line-b{animation:none}:root[data-motion=reduced] .chart-line{stroke-dashoffset:0}:root[data-chartfx=off] .chart-bar,:root[data-chartfx=off] .chart-line,:root[data-chartfx=off] .chart-line-b,:root[data-pagefx=off] .card,:root[data-pagefx=off] .empty-state,:root[data-pagefx=off] .hero,:root[data-pagefx=off] .kpi,:root[data-pagefx=off] .page-fade,:root[data-pagefx=off] .panel,:root[data-pagefx=off] .tile,:root[data-pagefx=off] .tip{animation:none}:root[data-chartfx=off] .chart-line{stroke-dashoffset:0}@keyframes pulse{50%{opacity:.55}}:root[data-loading=pulse] .skeleton{background:var(--surface-2);animation:pulse calc(1.4s * var(--spd, 1)) ease-in-out infinite}:root[data-loading=static] .skeleton{background:var(--surface-2);animation:none}@keyframes flash-bg{0%{background-color:var(--brand-soft)}to{background-color:transparent}}@keyframes row-in{0%{opacity:0}to{opacity:1}}@keyframes row-out{to{opacity:0}}.live-flash{border-radius:6px;animation:flash-bg calc(1.6s * var(--spd, 1)) var(--ease)}.row-new{animation:row-in calc(.35s * var(--spd, 1)) var(--ease) both}.row-new td{animation:flash-bg calc(1.8s * var(--spd, 1)) var(--ease)}.row-leave{animation:row-out calc(.25s * var(--spd, 1)) var(--ease) forwards}:root[data-flash=off] .live-flash,:root[data-flash=off] .row-new td,:root[data-rows=off] .row-leave,:root[data-rows=off] .row-new{animation:none}:root[data-motion=reduced] .live-flash,:root[data-motion=reduced] .row-new td{animation-name:flash-bg}@media (min-width:721px){:root[data-toastpos=bl] .toast,:root[data-toastpos=bl] .toasts{right:auto;left:16px}:root[data-toastpos=tr] .toast,:root[data-toastpos=tr] .toasts{bottom:auto;top:64px}:root[data-toastpos=tc] .toast,:root[data-toastpos=tc] .toasts{bottom:auto;top:64px;right:auto;left:50%;transform:translateX(-50%)}}@keyframes tv-slide{0%{opacity:0;transform:translateX(60px)}to{opacity:1;transform:none}}.tv-slide{animation:fade calc(.5s * var(--spd, 1)) var(--ease) both}:root[data-tvfx=slide] .tv-slide{animation-name:tv-slide}:root[data-tvfx=none] .tv-slide{animation:none}.odo{display:inline-flex;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1;vertical-align:bottom}.odo-d{display:inline-block;height:1em;overflow:hidden}.odo-strip{display:flex;flex-direction:column;transform:translateY(calc(var(--d) * -1em));transition:transform calc(.6s * var(--spd, 1)) var(--ease);animation:odo-roll calc(.9s * var(--spd, 1)) var(--ease) both}.odo-strip>span{display:block;height:1em;line-height:1}@keyframes odo-roll{0%{transform:translateY(0)}}@keyframes pill-pop{0%{transform:scale(.7)}55%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes bar-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes err-in{0%{opacity:0;transform:translateX(-6px)}30%{transform:translateX(5px)}60%{transform:translateX(-3px)}to{opacity:1;transform:none}}@keyframes shake{0%,to{transform:none}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}@keyframes donut-in{0%{stroke-dasharray:0 var(--c)}}@keyframes ring-in{0%{stroke-dasharray:0 var(--c)}}@keyframes ring-pulse{0%,to{transform:scale(1)}40%{transform:scale(1.12)}}@keyframes spark-draw{to{stroke-dashoffset:0}}@keyframes bell-swing{0%,to{transform:rotate(0)}20%{transform:rotate(16deg)}40%{transform:rotate(-14deg)}60%{transform:rotate(9deg)}80%{transform:rotate(-5deg)}}@keyframes badge-pop{0%{transform:scale(.5)}60%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes attn-pulse{0%,to{box-shadow:inset 3px 0 0 var(--warn)}50%{box-shadow:inset 7px 0 0 var(--warn)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes stale-pulse{50%{opacity:.4}}@keyframes tv-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes toast-fill{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes tick-in{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@keyframes list-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes confetti{0%{opacity:1;transform:translate(0) rotate(0)}to{opacity:0;transform:translate(var(--x),calc(var(--y) * -1 + 220px)) rotate(var(--r))}}@keyframes confetti-up{0%{opacity:1;transform:translate(0) rotate(0)}40%{opacity:1}to{opacity:0;transform:translate(var(--x),calc(var(--y) + 260px)) rotate(var(--r))}}@keyframes spin-slow{to{transform:rotate(1turn)}}.tv-progress{height:4px;margin-bottom:14px;border-radius:2px;background:var(--surface-2);overflow:hidden}.tv-progress span{display:block;height:100%;background:var(--brand);transform-origin:left;animation:tv-fill var(--dur,15s) linear forwards}.toast-item{position:relative;overflow:hidden}.toast-timer{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--info);transform-origin:left;animation:toast-fill var(--dur,9s) linear forwards}.form-progress{grid-column:1/-1;height:4px;margin:-4px 0 4px;border-radius:2px;background:var(--surface-2);overflow:hidden}.form-progress span{display:block;height:100%;background:var(--brand);transition:width calc(.4s * var(--spd, 1)) var(--ease)}.tab-ind{position:absolute;bottom:0;left:0;height:2px;background:var(--brand);transition:transform calc(.28s * var(--spd, 1)) var(--ease),width calc(.28s * var(--spd, 1)) var(--ease)}.tabs-bar{position:relative}.tabs-bar.has-ind .tab-btn[aria-selected=true]{border-bottom-color:transparent}.photo-pending{display:grid;place-items:center;aspect-ratio:1;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2)}.spin-ring{width:26px;height:26px;border-radius:50%;border:3px solid var(--border-strong);border-top-color:var(--brand);animation:spin-slow .9s linear infinite}.photo-grid img{animation:fade calc(.4s * var(--spd, 1)) var(--ease) both}.theme-fading,.theme-fading *,.theme-fading :after,.theme-fading :before{transition:background-color calc(.35s * var(--spd, 1)) ease,color calc(.35s * var(--spd, 1)) ease,border-color calc(.35s * var(--spd, 1)) ease,fill calc(.35s * var(--spd, 1)) ease,stroke calc(.35s * var(--spd, 1)) ease!important}.tbody-reveal{animation:fade calc(.3s * var(--spd, 1)) var(--ease)}.btn-done{color:transparent!important;background:var(--ok)!important;border-color:var(--ok)!important}.btn-done:after{content:"\2713";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:800;animation:tick-in calc(.3s * var(--spd, 1)) var(--ease)}.confetti{position:fixed;left:50%;top:40%;z-index:120;pointer-events:none}.confetti i{position:absolute;width:8px;height:12px;border-radius:2px;animation:confetti-up 1.5s cubic-bezier(.2,.7,.3,1) forwards}.confetti .c0{background:#c8102e}.confetti .c1{background:#2563eb}.confetti .c2{background:#d97706}.confetti .c3{background:#15803d}.confetti .c4{background:#7c3aed}.mk-stale{animation:stale-pulse 1.6s ease-in-out infinite}details>summary{cursor:pointer}@supports (interpolate-size:allow-keywords){:root{interpolate-size:allow-keywords}details::details-content{block-size:0;overflow:clip;transition:block-size calc(.25s * var(--spd, 1)) var(--ease),content-visibility calc(.25s * var(--spd, 1)) var(--ease) allow-discrete}details[open]::details-content{block-size:auto}}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .pill-pop{animation:pill-pop calc(.45s * var(--spd, 1)) var(--ease)}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .bulk-bar{animation:bar-up calc(.25s * var(--spd, 1)) var(--ease)}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .field-error{animation:err-in calc(.32s * var(--spd, 1)) var(--ease)}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .bulk tbody tr{animation:row-in calc(.3s * var(--spd, 1)) var(--ease)}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .bulk tr.row-error{animation:shake calc(.35s * var(--spd, 1)) var(--ease)}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .donut-seg{animation:donut-in calc(.8s * var(--spd, 1)) var(--ease) both;animation-delay:calc(var(--i, 0) * 90ms * var(--spd, 1))}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .ring-arc{animation:ring-in calc(.9s * var(--spd, 1)) var(--ease) both}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .ring-done{animation:ring-pulse calc(.7s * var(--spd, 1)) var(--ease) calc(.9s * var(--spd, 1))}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .spark-line{stroke-dasharray:1;stroke-dashoffset:1;animation:spark-draw calc(.9s * var(--spd, 1)) var(--ease) forwards}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .spark-area,:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .spark-dot{animation:fade calc(.5s * var(--spd, 1)) var(--ease) calc(.6s * var(--spd, 1)) both}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .bell.ringing .icon-btn svg{transform-origin:50% 10%;animation:bell-swing calc(.9s * var(--spd, 1)) ease-in-out}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .bell.ringing .menu-badge{animation:badge-pop calc(.5s * var(--spd, 1)) var(--ease)}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .palette-list li{animation:list-in calc(.16s * var(--spd, 1)) var(--ease) both;transition:background-color calc(.12s * var(--spd, 1))}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) svg:has(.chart-bar:hover) .chart-bar:not(:hover){opacity:.55}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .chart-bar{transition:opacity calc(.15s * var(--spd, 1)),filter calc(.15s * var(--spd, 1))}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .chart-bar:hover{opacity:1;filter:brightness(1.12)}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .customize-list li{will-change:transform}@media (prefers-reduced-motion:no-preference){:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) tr.attn td:first-child,:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) tr.attn td:nth-child(2){animation:attn-pulse 2.4s ease-in-out infinite}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .empty-icon{animation:floaty 3.2s ease-in-out infinite}}:root[data-navfx=bar] .nav-progress:after,:root[data-navfx=none] .nav-progress{display:none}:root[data-fx=off] .tab-ind,:root[data-motion=off] .tab-ind,:root[data-motion=reduced] .tab-ind{transition:none}:root[data-fx=off] .photo-grid img,:root[data-fx=off] .tbody-reveal{animation:none}:root[data-motion=off] .toast-timer,:root[data-motion=off] .tv-progress span{animation-duration:var(--dur)!important;animation-delay:0s!important}@media (prefers-reduced-motion:reduce){:root:not([data-motion]) .toast-timer,:root:not([data-motion]) .tv-progress span{animation-duration:var(--dur)!important;animation-delay:0s!important}}.searchbox{position:relative;display:inline-flex;align-items:center;gap:4px;min-width:min(100%,320px);padding:0 6px 0 10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--muted)}.searchbox:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.searchbox input[type=search]{flex:1 1;min-width:0;background:transparent;color:var(--text);font:inherit;padding:7px 4px;min-height:0}.searchbox input[type=search],.searchbox input[type=search]:focus{border:0;outline:0;box-shadow:none}.search-pop{position:absolute;z-index:40;top:calc(100% + 4px);left:0;right:0;max-height:60vh;overflow:auto;padding:6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-lg);color:var(--text)}.search-row{display:flex;align-items:center;gap:8px;width:100%;padding:7px 9px;border:0;border-radius:8px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.search-row:focus-visible,.search-row:hover{background:var(--brand-soft);color:var(--brand-text)}.search-row .meta{margin-left:auto;font-size:12px;text-align:right}.search-row-wrap{display:flex;align-items:center}.search-row-wrap .search-row{flex:1 1}.search-tip{margin:6px 9px 2px;font-size:12px}.empty-help{display:grid;grid-gap:8px;gap:8px;justify-items:center;margin:4px 0 18px;text-align:center}.link-btn{border:0;background:transparent;padding:0;color:var(--link);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}.palette.has-preview{width:min(100%,880px)}.palette-body{display:grid;grid-template-columns:minmax(0,1fr)}.palette.has-preview .palette-body{grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr)}.palette-preview{display:grid;align-content:start;grid-gap:8px;gap:8px;padding:14px;border-left:1px solid var(--border);background:var(--surface-2);max-height:50vh;overflow:auto}.palette-preview dl{display:grid;grid-template-columns:auto 1fr;grid-gap:4px 12px;gap:4px 12px;margin:0;font-size:13px}.palette-preview dt{color:var(--muted)}.palette-preview dd{margin:0;overflow-wrap:anywhere}.palette-actions{display:flex;flex-wrap:wrap;gap:6px}@media (max-width:720px){.palette-backdrop{padding:0;place-items:stretch}.palette,.palette.has-preview{width:100%;height:100%;max-height:none;border-radius:0;display:flex;flex-direction:column}.palette-body,.palette.has-preview .palette-body{flex:1 1;min-height:0;display:flex;flex-direction:column}.palette-list{flex:1 1;max-height:none}.palette-list li{padding:12px 10px}.palette-preview{border-left:0;border-top:1px solid var(--border);max-height:34vh}.palette-foot kbd,.palette-foot span:nth-child(n+2){display:none}.searchbox{width:100%}}.scan-overlay{position:fixed;inset:0;z-index:130;display:grid;grid-template-rows:1fr auto auto;justify-items:center;grid-gap:12px;gap:12px;padding:12px 12px 24px;background:#000;color:#fff}.scan-overlay video{width:100%;height:100%;min-height:0;object-fit:cover;border-radius:var(--radius)}.scan-frame{position:absolute;top:28%;left:50%;width:min(80vw,420px);height:28vh;transform:translateX(-50%);border:3px solid #fff;border-radius:14px;box-shadow:0 0 0 9999px rgba(0,0,0,.45);pointer-events:none}.scan-hint{margin:0;font-size:15px;text-align:center}.search-page-form{display:flex;gap:8px;margin-bottom:14px}.search-page-form input{flex:1 1;min-width:0}.search-help{grid-gap:6px;gap:6px;margin:0 0 12px}.search-help,.search-results{display:grid;padding:0;list-style:none}.search-results{grid-gap:2px;gap:2px;margin:0}.search-results li{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--border)}.search-results li:last-child{border-bottom:0}.search-main{display:grid;flex:1 1;min-width:0;color:var(--text);text-decoration:none}.search-main:hover strong{color:var(--brand-text);text-decoration:underline}.search-main .meta{overflow-wrap:anywhere}.search-actions{display:flex;flex-wrap:wrap;gap:6px}@media (max-width:720px){.search-results li{flex-wrap:wrap}.search-page-form{flex-direction:column}}.auth-theme{display:flex;align-items:center;gap:8px}.lang-switch{min-width:64px}.auth-brand-inner{display:grid;align-content:center;grid-gap:0;gap:0}.auth-route{position:absolute;left:-10px;right:-10px;bottom:0;width:calc(100% + 20px);height:auto;color:rgb(255 255 255/30%);pointer-events:none}.auth-truck{fill:rgb(255 255 255/85%);offset-path:path("M0 90 C70 90 90 30 170 40 S290 100 400 40")}.auth-greet{margin:14px 0 0;font-weight:700;color:#fff}.auth-greet span{font-weight:400;color:rgb(255 255 255/80%)}.auth-tip{display:flex;align-items:flex-start;gap:8px;margin:18px 0 0;min-height:44px;padding:10px 12px;border-radius:10px;background:rgb(0 0 0/22%);color:#fff;font-size:13px}.auth-tip svg{flex:none;margin-top:2px}.auth-status{display:flex;align-items:center;gap:8px;margin:14px 0 0;font-size:13px;color:rgb(255 255 255/92%)}.auth-dot{width:9px;height:9px;border-radius:50%;background:#fbbf24}.auth-status.ok .auth-dot{background:#4ade80}.auth-status.down .auth-dot{background:#fca5a5}.auth-foot{margin:22px 0 0;font-size:12px;color:rgb(255 255 255/78%)}.notice{display:flex;align-items:flex-start;gap:8px;margin:0;padding:9px 12px;border-radius:8px;background:var(--info-soft);color:var(--text);font-size:13px}.notice svg{flex:none;margin-top:2px;color:var(--info)}.notice.warn{background:var(--warn-soft)}.notice.warn svg{color:var(--warn)}.alert-sub{font-weight:500;font-size:13px}.alert-sub,.lock-count{display:block;margin-top:4px}.lock-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.login-checks{display:grid;grid-gap:6px;gap:6px}.check-line{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.check-line input{width:18px;height:18px;min-height:0;margin:0}.login-alt{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;font-size:14px}.login-or{display:flex;align-items:center;gap:10px;margin:0;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.login-or:after,.login-or:before{content:"";flex:1 1;height:1px;background:var(--border)}.passkey-btn{justify-content:center;gap:8px}.login-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.conn,.login-meta{align-items:center}.conn{display:inline-flex;gap:5px;font-size:12px}.conn.ok{color:var(--ok)}.conn.warn{color:var(--danger);font-weight:600}.check-title{margin:0;font-size:18px}.strength{display:grid;grid-gap:4px;gap:4px;margin-top:-4px}.strength-bar{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:4px;gap:4px}.strength-bar span{height:6px;border-radius:3px;background:var(--surface-3)}.strength-bar span.on.s1{background:var(--danger)}.strength-bar span.on.s2{background:var(--warn)}.strength-bar span.on.s3,.strength-bar span.on.s4{background:var(--ok)}.passkey-list{display:grid;grid-gap:8px;gap:8px;margin:0 0 14px;padding:0;list-style:none}.passkey-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius)}.passkey-list li>span{flex:1 1;min-width:0}.passkey-add{display:grid;grid-gap:10px;gap:10px}.login-card .btn-primary:focus-visible{outline:3px solid var(--text);outline-offset:2px;box-shadow:0 0 0 5px var(--surface)}.login-card input:focus-visible{outline-offset:1px}@keyframes auth-drive{0%{offset-distance:0}to{offset-distance:100%}}@keyframes auth-tip-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:no-preference){:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .auth-truck-a{animation:auth-drive 14s linear infinite}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .auth-truck-b{animation:auth-drive 14s linear infinite;animation-delay:-7s}:root:not([data-fx=off]):not([data-motion=reduced]):not([data-motion=off]) .auth-tip{animation:auth-tip-in .5s var(--ease)}}@media (max-width:820px){.auth-split{min-height:100dvh}.auth-brand-inner>:not(.logo-mark):not(h2):not(.auth-status),.auth-route{display:none}.auth-brand{padding:16px 20px}.auth-brand-inner{grid-template-columns:auto 1fr;align-items:center;column-gap:12px}.auth-brand-inner h2{margin:0}.auth-status{grid-column:1/-1;margin-top:6px}.auth-panel{align-items:start;padding:16px 12px 24px}.login-card{max-width:none}.login-card .btn,.login-card input:not([type=checkbox]){min-height:48px}.check-line{min-height:36px}.login-alt .link-btn,.login-alt a{padding:8px 0}.auth-theme{top:8px;right:8px}}.login-logo{display:block;width:154px;height:auto;margin:0 0 14px;border-radius:8px;background:#fff}@media (max-width:820px){.login-logo{width:132px}}