:root{--bg:#f6f7fb;--surface:#fff;--sidebar:#1e293b;--sidebar-2:#0f172a;--sidebar-ink:#cbd5e1;--ink:#1f2933;--muted:#6b7280;--primary:#4f46e5;--primary-2:#4338ca;--accent:var(--primary);--border:#e6e8ef;--arr:#e7f4e4;--arr-bd:#5aa02c;--arr-ink:#2e6b1f;--dep:#fdebda;--dep-bd:#e08a3c;--dep-ink:#a4500f;--sc:#e6effb;--sc-bd:#2f80c8;--sc-ink:#1f5fa6;--warn:#fcefc7;--warn-bd:#c9a227;--warn-ink:#7a5e12;--danger:#dc2626;--danger-soft:#fde8e8;--radius:14px;--shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.1);--shadow-lg:0 10px 30px rgba(16,24,40,.12);--gap:20px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--r-sm:8px;--r-md:10px;--r-lg:12px;--r-xl:14px;--r-pill:999px;--fs-xs:11px;--fs-sm:12px;--fs-base:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:22px;--lh-tight:1.2;--lh-base:1.45;--lh-relaxed:1.55;--fw-med:500;--fw-semi:600;--fw-bold:700;--shadow-xs:0 1px 2px rgba(16,24,40,.05);--shadow-md:0 4px 12px rgba(16,24,40,.08);--shadow-focus:0 0 0 3px rgba(79,70,229,.15);--tr-fast:.12s ease;--tr:.15s ease;--tr-slow:.25s ease;--surface-2:#f4f6fb;--surface-3:#eef1f8;--surface-edit:var(--surface-2);--surface-soft:var(--surface-3);--ink-2:#374151;--ink-3:#4b5563;--primary-soft:rgba(79,70,229,.08);--primary-ring:rgba(79,70,229,.18);--primary-bg:#e9e7fb;--stars:var(--warn-bd)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--accent)}h1,h2,h3{font-weight:600}.shell{display:flex;min-height:100vh}.sidebar{width:236px;flex:0 0 236px;background:linear-gradient(180deg,var(--sidebar),var(--sidebar-2));color:var(--sidebar-ink);display:flex;flex-direction:column;padding:18px 14px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{color:#fff;font-weight:700;font-size:18px;padding:6px 10px 4px;letter-spacing:.01em}.brand small{display:block;font-weight:400;font-size:11px;color:#94a3b8;margin-top:2px}.sidebar nav{display:flex;flex-direction:column;gap:4px;margin-top:16px}.navitem{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:transparent;border:none;color:var(--sidebar-ink);padding:10px 12px;border-radius:10px;font-size:14px;cursor:pointer;transition:background .15s,color .15s}.navitem:hover{background:hsla(0,0%,100%,.06);color:#fff}.navitem.active{background:rgba(99,102,241,.22);color:#fff;box-shadow:inset 3px 0 0 var(--primary)}.navitem .ic{font-size:16px;width:20px;text-align:center}.navitem .nav-badge{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;background:var(--danger);color:#fff;font-size:10px;font-weight:600;line-height:1;border-radius:999px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sidebar-foot{margin-top:auto;font-size:11px;color:#94a3b8;padding:12px 10px 2px;border-top:1px solid hsla(0,0%,100%,.08)}.nav-section{display:flex;flex-direction:column;gap:4px}.nav-section+.nav-section{margin-top:14px}.nav-hub{margin-bottom:4px}.nav-group-label{display:flex;flex-direction:column;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6b7a90;padding:4px 12px 2px}.nav-group-caption{font-size:10px;font-weight:400;letter-spacing:.01em;text-transform:none;color:#54627a;margin-top:1px}.content{flex:1 1;min-width:0;display:flex;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;background:rgba(246,247,251,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);padding:16px 32px}.topbar h1{margin:0;font-size:20px}.topbar .kpis{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.content-body{padding:26px 32px 56px;max-width:1280px;width:100%}.view-hint{color:var(--muted);font-size:13px;margin:-6px 0 18px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px;margin-bottom:var(--gap);box-shadow:var(--shadow-md)}.panel h2{margin:0 0 14px;font-size:16px;color:var(--ink)}.panel .hint{color:var(--muted);font-size:12.5px;margin:-4px 0 16px;line-height:1.55}.row{gap:14px;flex-wrap:wrap;align-items:flex-end}.field,.row{display:flex}.field{flex-direction:column;gap:5px}.field label{font-size:12px;color:var(--muted);font-weight:500}input,select,textarea{font:inherit;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.15)}button{font:inherit;cursor:pointer;border:1px solid var(--primary);background:var(--primary);color:#fff;padding:9px 16px;border-radius:9px;font-weight:500;transition:filter .15s,background .15s,box-shadow .15s}button:hover:not(:disabled){filter:brightness(1.06);box-shadow:var(--shadow)}button.secondary{background:#fff;color:var(--primary);border-color:var(--border)}button.secondary:hover:not(:disabled){background:var(--primary-soft);filter:none}button.ghost{background:transparent;border-color:var(--border);color:var(--muted)}button.ghost:hover:not(:disabled){background:var(--surface-3);filter:none}button.danger{background:var(--danger);border-color:var(--danger)}button.small{padding:5px 10px;font-size:12px}button:disabled{opacity:.5;cursor:not-allowed}.tag{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.tag.arr{background:var(--arr);color:var(--arr-ink)}.tag.dep{background:var(--dep);color:var(--dep-ink)}.tag.sc{background:var(--sc);color:var(--sc-ink)}.tag.warn{background:var(--warn);color:var(--warn-ink)}.tag.off{background:var(--surface-3);color:var(--ink-2)}table{width:100%;border-collapse:collapse;font-size:13px}td,th{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{background:var(--surface-3);color:var(--primary-2);font-size:11px;text-transform:uppercase;letter-spacing:.04em;position:-webkit-sticky;position:sticky;top:0}tbody tr:hover td{background:rgba(79,70,229,.035)}.scroll{overflow-x:auto;border-radius:10px;-webkit-overflow-scrolling:touch;background:linear-gradient(90deg,#fff 30%,hsla(0,0%,100%,0)),linear-gradient(90deg,hsla(0,0%,100%,0),#fff 70%) 100% 0,radial-gradient(farthest-side at 0 50%,rgba(16,24,40,.12),transparent),radial-gradient(farthest-side at 100% 50%,rgba(16,24,40,.12),transparent) 100% 0;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}tr.arr-row td{background:rgba(231,244,228,.5)}tr.dep-row td{background:hsla(29,90%,92%,.5)}tr.sc-row td{background:rgba(230,239,251,.55)}tr.warn-row td{background:hsla(45,90%,88%,.55)}tr.arr-row td:first-child{border-left:3px solid var(--arr-bd)}tr.dep-row td:first-child{border-left:3px solid var(--dep-bd)}tr.sc-row td:first-child{border-left:3px solid var(--sc-bd)}tr.warn-row td:first-child{border-left:3px solid var(--warn-bd)}.flights-table input,.flights-table select{padding:6px 8px;font-size:12.5px;width:100%;min-width:84px}.flights-table td{min-width:100px;padding:8px}.fl-list{display:flex;flex-direction:column;gap:10px}.fl-card{border-left:1px solid var(--border);border:1px solid var(--border);border-left-width:4px;border-radius:12px;background:#fff;transition:box-shadow .15s,transform .15s;animation:fade-rise .25s ease both}.fl-card:hover:not(.editing){box-shadow:var(--shadow-lg);transform:translateY(-2px)}.fl-card.arr{border-left-color:var(--arr-bd)}.fl-card.dep{border-left-color:var(--dep-bd)}.fl-card.editing{box-shadow:var(--shadow-lg)}.fl-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px}.fl-main{min-width:0}.fl-name{font-size:15px;gap:2px}.fl-name,.fl-route{display:flex;align-items:center;flex-wrap:wrap}.fl-route{font-size:13px;margin-top:3px;gap:6px}.fl-day{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--primary-2)}.fl-dest{color:var(--muted)}.fl-actions{display:flex;align-items:center;gap:8px}.fl-edit{border-top:1px solid var(--border);padding:14px 16px;background:var(--surface-edit);border-radius:0 0 12px 12px}.fl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:12px;gap:12px}.fl-grid .field span{font-size:11px;color:var(--muted);font-weight:500}.fl-grid .field input,.fl-grid .field select{width:100%}.fl-inline{display:flex;gap:6px}.fl-inline input,.fl-inline select{min-width:0}@media (max-width:700px){.fl-summary{flex-direction:column;align-items:flex-start}.fl-actions{width:100%;justify-content:space-between}}.toast{position:fixed;bottom:20px;right:20px;z-index:90;display:flex;align-items:center;gap:8px;background:#111827;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow-lg);max-width:360px;animation:toast-in .18s ease}.toast.error{background:var(--danger)}.toast .toast-x{background:transparent;border:none;color:inherit;padding:0 2px;margin-left:4px;font-size:14px;line-height:1;flex:none}.toast .toast-x:hover{background:transparent;box-shadow:none;filter:none;opacity:.8}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.list{list-style:none;padding:0;margin:0}.list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border)}.list li:last-child{border-bottom:none}.badge{font-size:11px;color:var(--muted)}.spacer{flex:1 1}.muted{color:var(--muted)}.right{text-align:right}.nowrap,.visually-hidden{white-space:nowrap}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.skip-link{position:absolute;left:8px;top:-48px;z-index:1100;background:var(--primary);color:#fff;padding:9px 14px;border-radius:0 0 10px 10px;font-size:13px;font-weight:600;transition:top .15s}.skip-link:focus{top:0}.kpi-warn{background:var(--danger-soft);color:var(--danger);font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px}.kpi-warn.soft{background:var(--warn);color:var(--warn-ink)}.nownext{border-left:4px solid var(--primary)}.nn-sep{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 8px}.nn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));grid-gap:12px;gap:12px}.nn-card{display:flex;gap:12px;border-radius:12px;padding:12px 14px;background:#fff;border:1px solid var(--border);border-left-width:4px;transition:box-shadow .15s,transform .15s}.nn-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.nn-card.arr{border-left-color:var(--arr-bd)}.nn-card.dep{border-left-color:var(--dep-bd)}.nn-card.sc{border-left-color:var(--sc-bd)}.nn-card.warn{border-left-color:var(--warn-bd)}.nn-card.big{box-shadow:var(--shadow-lg)}.nn-when{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:66px}.nn-ora{font-size:21px;font-weight:700;line-height:1}.nn-card.big .nn-ora{font-size:27px}.nn-cd{font-size:11px;color:var(--muted);margin-top:3px;white-space:nowrap}.nn-route{font-size:12.5px;margin-top:3px}.save-status{font-size:11px;min-width:84px;min-height:13px;display:inline-block;text-align:right;transition:color .15s}.save-status.dirty{color:var(--warn-ink)}.save-status.saving{color:var(--muted)}.save-status.saved{color:var(--arr-ink)}.save-status.error{color:var(--danger)}.summary-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;background:var(--surface-3);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;font-size:12px;color:var(--ink-3)}.summary-sep{font-size:11px;color:var(--ink-3)}.chip-problem{font:inherit;font-size:11px;border:1px solid var(--border);background:#fff;color:var(--danger);padding:3px 9px;border-radius:999px;cursor:pointer;transition:background .15s}.chip-problem:hover{background:var(--danger-soft)}.chip-problem.active{background:var(--danger);color:#fff;border-color:var(--danger)}.warn-banner{background:var(--warn);border:1px solid var(--warn-bd);color:var(--warn-ink);padding:9px 12px;border-radius:10px;font-size:12.5px;margin:0 0 14px}.imp-progress{display:flex;align-items:center;gap:10px}.imp-bar{flex:1 1;height:8px;background:var(--border);border-radius:999px;overflow:hidden}.imp-bar span{display:block;height:100%;background:var(--primary);transition:width .25s ease}.imp-recap{border:1px solid var(--border);border-radius:12px;padding:14px 16px;background:var(--surface-2)}tr.imp-current td{background:var(--primary-soft);font-weight:500}.day-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.day-pill{font:inherit;font-size:13px;border:1px solid var(--border);background:#fff;color:var(--ink);padding:7px 14px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .15s,border-color .15s}.day-pill.active,.day-pill:hover{border-color:var(--primary)}.day-pill.active{background:var(--primary);color:#fff}.day-pill-n{font-size:11px;background:rgba(0,0,0,.08);border-radius:999px;padding:0 7px}.day-pill.active .day-pill-n{background:hsla(0,0%,100%,.25)}.facet-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.facet-tab{font:inherit;font-size:13px;border:1px solid var(--border);background:#fff;color:var(--ink);padding:7px 14px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .15s,border-color .15s}.facet-tab.active,.facet-tab:hover{border-color:var(--primary)}.facet-tab.active{background:var(--primary);color:#fff}.facet-n{font-size:11px;background:rgba(0,0,0,.08);border-radius:999px;padding:0 7px}.facet-tab.active .facet-n{background:hsla(0,0%,100%,.25)}.sc-actions{justify-content:space-between;gap:12px;margin-bottom:12px}.sc-actions,.sc-actions-main{display:flex;align-items:center;flex-wrap:wrap}.sc-actions-main{gap:8px}.sc-quickadd{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.sc-quickadd select{min-width:200px}@media (max-width:640px){.sc-actions{flex-direction:column;align-items:stretch}.sc-quickadd select{min-width:0;flex:1 1}}.sc-day-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:4px 0 12px}.sc-day-label{font-size:14px}.sc-day-label,.sc-day-nav-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sc-handle-cell{white-space:nowrap;width:1%}.sc-handle{cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;font-size:15px;color:var(--muted);padding:0 4px;display:inline-block}.sc-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.sc-move{font:inherit;font-size:11px;line-height:1;padding:3px 6px;margin-left:3px;background:#fff;color:var(--ink);border:1px solid var(--border);border-radius:6px}.sc-move:hover:not(:disabled){border-color:var(--primary);background:var(--surface-2);filter:none;box-shadow:none}.sc-move:disabled{opacity:.4;cursor:not-allowed}.sc-row.dragging td{opacity:.45}.sc-prev{color:var(--primary);font-style:italic}.print-only{display:none}@media print{.screen-only{display:none!important}.print-only{display:block!important}}.nn-cd,.nn-ora,td,th{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.danger-zone{justify-content:space-between;gap:16px;margin-top:22px;padding:14px 16px;border:1px solid var(--danger-soft);background:var(--danger-soft);border-radius:12px}.danger-zone,.modal-overlay{display:flex;align-items:center}.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);justify-content:center;z-index:1000;padding:20px;animation:fade-in .15s ease}.modal-card{background:#fff;border-radius:14px;padding:22px 24px;max-width:460px;width:100%;max-height:calc(100vh - 40px);overflow-y:auto;box-shadow:var(--shadow-lg);animation:fade-rise .2s ease both}.cast-days{display:flex;flex-direction:column;gap:12px}.cast-day{border:1px solid var(--border);border-radius:12px;padding:12px 14px}.cast-day.off{opacity:.5}.cast-day-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.cast-slots{display:flex;flex-wrap:wrap;gap:6px}.cast-slot{display:inline-flex;align-items:center;gap:6px;font-size:12px;border:1px solid var(--border);border-radius:999px;padding:3px 10px;background:#fff}.cast-slot-t{font-weight:600;color:var(--primary-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cast-slot.over{border-color:var(--warn-bd);background:var(--warn)}.tl-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;position:-webkit-sticky;position:sticky;top:0;background:rgba(246,247,251,.92);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:4px 0 12px;z-index:6}.chip3{font:inherit;font-size:12px;border:1px solid var(--border);background:#fff;color:var(--ink-3);padding:5px 11px;border-radius:999px;cursor:pointer;opacity:1;transition:color .15s,border-color .15s,background .15s}.chip3.on{opacity:1;font-weight:600}.chip3.arr.on{border-color:var(--arr-bd);color:var(--arr-ink);background:var(--arr)}.chip3.dep.on{border-color:var(--dep-bd);color:var(--dep-ink);background:var(--dep)}.chip3.sc.on{border-color:var(--sc-bd);color:var(--sc-ink);background:var(--sc)}.tl-day{margin-top:8px}.tl-day-head{position:-webkit-sticky;position:sticky;top:44px;display:flex;align-items:center;gap:10px;background:var(--bg);padding:8px 0;z-index:4}.tl-day-date{font-size:15px;font-weight:700}.tl-rail{margin-left:8px;padding-left:24px;border-left:2px solid var(--border);display:flex;flex-direction:column}.tl-item,.tl-rail{position:relative;gap:10px}.tl-item{display:grid;grid-template-columns:52px 1fr;grid-gap:10px;align-items:start}.tl-node{position:absolute;left:-31px;top:6px;width:11px;height:11px;border-radius:50%;background:var(--muted);border:2px solid #fff;box-shadow:0 0 0 2px var(--border)}.tl-item.arr .tl-node{background:var(--arr-bd)}.tl-item.dep .tl-node{background:var(--dep-bd)}.tl-item.sc .tl-node{background:var(--sc-bd)}.tl-item.warn .tl-node{background:var(--warn-bd)}.tl-time{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding-top:3px}.tl-card{background:#fff;border:1px solid var(--border);border-left-width:3px;border-radius:10px;padding:9px 12px;transition:box-shadow .15s,transform .15s}.tl-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.tl-item.arr .tl-card{border-left-color:var(--arr-bd)}.tl-item.dep .tl-card{border-left-color:var(--dep-bd)}.tl-item.sc .tl-card{border-left-color:var(--sc-bd)}.tl-item.warn .tl-card{border-left-color:var(--warn-bd)}.tl-card-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tl-route{font-size:12.5px;margin-top:3px}.tl-item.is-now .tl-card{box-shadow:0 0 0 3px rgba(79,70,229,.25)}.live-dot,.tl-item.is-now .tl-node{background:var(--primary);animation:pulse-ring 1.8s infinite}.live-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.ride-tl-day{margin-top:6px}.ride-tl-day.is-pastday{opacity:.72}.ride-tl-drv{font-size:11.5px;margin-top:3px}.ride-tl-untimed{margin-top:12px}.ride-tl-rail{padding-top:30px;padding-bottom:24px}.tl-playhead{position:absolute;left:0;right:4px;height:0;border-top:2px dashed var(--primary);z-index:3;pointer-events:none;transition:top .6s ease-out}.tl-playhead-dot{position:absolute;left:-8px;top:-7px;width:13px;height:13px;border-radius:50%;background:var(--primary);border:2px solid #fff;box-shadow:0 0 0 3px rgba(79,70,229,.3);animation:pulse-ring 1.8s infinite}.tl-playhead-label{position:absolute;left:4px;top:-10px;font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--primary);background:var(--bg);padding:1px 7px;border-radius:999px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;box-shadow:inset 0 0 0 1px var(--border)}.ride-tl-item.is-past{opacity:.55}.ride-tl-item.is-done{opacity:.7}.ride-tl-item.is-done .tl-node{background:var(--muted)}.ride-tl-item.is-cancelled{opacity:.5}.ride-tl-item.is-cancelled .tl-node{background:var(--muted)}.ride-tl-item.is-cancelled .tl-time{text-decoration:line-through}.ride-tl-item.is-active .tl-node{background:var(--primary);animation:pulse-ring 1.8s infinite}.ride-tl-item.is-active .tl-card{box-shadow:0 0 0 3px rgba(79,70,229,.25)}.ride-tl-item.is-imminent .tl-node{background:var(--warn-bd)}.ride-tl-item.is-suppressed{opacity:.5}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 rgba(79,70,229,.5)}70%{box-shadow:0 0 0 8px rgba(79,70,229,0)}to{box-shadow:0 0 0 0 rgba(79,70,229,0)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.view-enter{animation:fade-rise .22s ease both}.animate-in{animation:fade-rise .3s ease both;animation-delay:calc(var(--i, 0) * 40ms)}.nn-card{animation:fade-rise .3s ease both}.navitem{transition:background .15s,color .15s,transform .12s}.navitem:active{transform:scale(.97)}button:active:not(:disabled):not(.auth-pw-toggle){transform:translateY(1px);filter:brightness(.97);box-shadow:none}@media (pointer:coarse){button.small{min-height:40px;padding:8px 14px}.chip-problem,.chip3{min-height:38px}.day-pill,.navitem{min-height:40px}}.chip-problem:focus-visible,.chip3:focus-visible,.day-pill:focus-visible,.navitem:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px;box-shadow:0 0 0 3px rgba(79,70,229,.18)}.imp-bar.indeterminate span{width:40%!important;background:linear-gradient(90deg,var(--primary),#a5b4fc,var(--primary));background-size:400px 100%;animation:shimmer 1s linear infinite}.skel-list{display:flex;flex-direction:column;gap:10px}.skel{height:64px;border-radius:12px;border:1px solid var(--border);background:linear-gradient(90deg,var(--surface-soft) 25%,var(--bg) 37%,var(--surface-soft) 63%);background-size:400px 100%;animation:shimmer 1.2s linear infinite}.skel.kpi{height:24px;width:84px;border-radius:999px;display:inline-block}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}@media print{.animate-in,.nn-card,.view-enter{animation:none!important;opacity:1!important;transform:none!important}}.warn-text{color:var(--danger);font-size:11px;margin-top:3px}.day-block h3{color:var(--ink)}@media (max-width:900px){.shell{flex-direction:column}.sidebar{width:auto;height:auto;flex:none;position:-webkit-sticky;position:sticky;top:0;z-index:30;flex-direction:row;align-items:center;gap:6px;padding:8px 10px;overflow-x:auto}.brand{padding:0 12px 0 4px;font-size:16px;white-space:nowrap}.brand small{display:none}.sidebar nav{align-items:center;margin-top:0}.nav-section,.sidebar nav{flex-direction:row;gap:4px}.nav-section+.nav-section{margin-top:0;border-left:1px solid hsla(0,0%,100%,.1);padding-left:6px}.nav-group-label{display:none}.navitem{white-space:nowrap;padding:8px 11px}.navitem.active{box-shadow:inset 0 -3px 0 var(--primary)}.navitem .label-full{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.sidebar-foot{display:none}.topbar{padding:12px 16px}.topbar h1{font-size:17px}.content-body{padding:16px}.tl-filters{position:static;-webkit-backdrop-filter:none;backdrop-filter:none}.scroll table{min-width:720px}}@media (max-width:700px){.topbar{flex-wrap:wrap;row-gap:8px}.topbar h1{flex:1 1 100%}}@media print{body *{visibility:hidden!important}.printable,.printable *{visibility:visible!important}.printable .no-print{display:none!important}.printable{position:absolute;left:0;top:0;width:100%;padding:0;border:none;box-shadow:none}.printable .scroll{overflow:visible!important;background:none!important}.day-block{page-break-inside:avoid}th{position:static}tr.arr-row td,tr.dep-row td,tr.sc-row td,tr.warn-row td{background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.anag-group,.aud-card,.fl-card,.hotel-card,.nn-card,.panel,.tl-card,.usr-card{box-shadow:none!important}.acc-hotel-head{background:#fff!important;border-color:#ccc;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.route-map-wrap{margin-top:12px}.route-map-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px}.route-map{width:100%;height:300px;border:1px solid var(--border,#e2e8f0);border-radius:12px;overflow:hidden;display:block;background:var(--surface-soft);position:relative;z-index:0}iframe.route-map{border:0}.map-placeholder{display:flex;align-items:center;justify-content:center;text-align:center;padding:24px}.map-placeholder p{margin:0;max-width:440px}.leaflet-container{font:inherit}.travel-source-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--surface-3);color:var(--ink-3);border:1px solid var(--border)}.travel-source-badge.google{background:var(--sc);color:var(--sc-ink);border-color:var(--sc-bd)}.travel-source-badge.osm{background:var(--arr);color:var(--arr-ink);border-color:var(--arr-bd)}.travel-source-badge.manual{background:var(--dep);color:var(--dep-ink);border-color:var(--dep-bd)}.btn-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--primary,#4f46e5);text-decoration:none;padding:4px 8px;border-radius:8px}.btn-link:hover{background:rgba(79,70,229,.08);text-decoration:underline}.detail-split{display:flex;gap:var(--sp-4);align-items:flex-start;flex-wrap:wrap}.detail-split>.detail-main{flex:1 1 360px;min-width:0}.detail-split>.tk-origin{flex:1 1 340px;min-width:0;margin-top:0}.detail-split>.detail-main.tk-info,.detail-split>.tk-origin{border:1px solid var(--border);border-radius:12px;background:#fff;padding:12px 16px}.detail-split>.detail-main.tk-info>.kv:first-child{margin-top:0}.audit-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}.audit-filters input,.audit-filters select{font-size:var(--fs-sm)}.audit-filters input[type=date]{width:auto}.audit-table-wrap{overflow-x:auto}.audit-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.audit-table td,.audit-table th{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:top}.audit-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap}.audit-table tbody tr:hover{background:var(--surface-2)}.audit-when{white-space:nowrap;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.audit-action{font-size:12px;background:var(--surface-2);padding:1px 6px;border-radius:4px}.audit-idlink{padding:0 4px}.audit-changes{max-width:420px}.audit-kv{display:inline-flex;gap:2px;margin-right:8px;font-size:12px;white-space:nowrap}.audit-kv b{color:var(--ink-2);font-weight:var(--fw-semi)}.tk-origin{margin-top:18px}.tk-origin>h3{margin:0 0 4px}.tk-origin-sub{margin:0 0 8px;font-size:var(--fs-sm);display:flex;flex-wrap:wrap;align-items:center;gap:4px}.tk-origin-none{margin:14px 0 0}.tk-prev{margin:0;max-width:720px}.tk-prev-skel{height:240px;border-radius:var(--r-md)}.tk-prev-img{max-width:100%;max-height:70vh;border:1px solid var(--border);border-radius:var(--r-md);display:block;background:var(--surface-2)}.tk-prev-pdf{display:flex;flex-direction:column;gap:8px;max-height:72vh;overflow:auto}.tk-prev-pdf:empty{display:none}.tk-prev-page{width:100%;height:auto;display:block;border-radius:4px;box-shadow:var(--shadow-sm);background:#fff}.tk-prev-actions{margin-top:6px}.tk-prev-err{margin:8px 0}@media print{.tk-prev-actions,.tk-prev-pdf{display:none}}.ride-print{display:none}@media print{.ride-print{display:block!important}.ride-print table{width:100%}.ride-print .day-block{page-break-inside:avoid}}.daysheet{border:1px solid var(--border,#e2e8f0);border-radius:12px;padding:14px 16px;margin-bottom:16px}.daysheet-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:8px}.daysheet-head h3{font-size:15px}.daysheet-hotel{background:var(--surface-soft);border-radius:8px;padding:6px 10px;font-size:13px;margin-bottom:8px}@media print{.daysheet{page-break-inside:avoid;border:1px solid #ccc}.daysheet-hotel{background:#f3f4f6!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.detail-view{padding:26px 32px 56px;max-width:1280px;width:100%;outline:none}.detail-head{display:flex;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}.detail-head h2{margin:0;font-size:18px}@media (max-width:900px){.detail-view{padding:16px}}.fl-main.clickable{cursor:pointer;border-radius:10px}.fl-main.clickable:hover .fl-name b{text-decoration:underline;text-underline-offset:2px}tr.row-link{cursor:pointer}tr.row-link:hover td{background:rgba(79,70,229,.06)}li.clickable{cursor:pointer;border-radius:8px}li.clickable:hover{background:rgba(79,70,229,.06)}li.clickable:hover b{text-decoration:underline;text-underline-offset:2px}.fl-main.clickable:focus-visible,.usr-main.clickable:focus-visible,li.clickable:focus-visible,tr.row-link:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.usr-main.clickable{cursor:pointer;border-radius:10px}.usr-main.clickable:hover .usr-name b{text-decoration:underline;text-underline-offset:2px}.nn-card.clickable,.tl-card.clickable{cursor:pointer}.nn-card.clickable:hover b,.tl-card.clickable:hover b{text-decoration:underline;text-underline-offset:2px}.nn-card.clickable:focus-visible,.tl-card.clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.tag.ok{background:var(--arr);color:var(--arr-ink)}.kv{display:grid;grid-template-columns:max-content 1fr;grid-gap:6px 16px;gap:6px 16px;margin:0}.kv dt{color:var(--muted);font-size:13px}.kv dd{margin:0}.artist-head{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}.artist-photo{width:96px;height:96px;border-radius:14px;overflow:hidden;flex:none;background:linear-gradient(135deg,var(--primary),var(--primary-2));display:flex;align-items:center;justify-content:center}.artist-photo img{width:100%;height:100%;object-fit:cover;display:block}.artist-photo-ph{color:#fff;font-size:32px;font-weight:800;letter-spacing:.02em}.artist-id{flex:1 1;min-width:220px}.artist-name{font-size:22px}.artist-badges{align-items:center;margin-top:6px}.artist-badges,.artist-social{display:flex;flex-wrap:wrap;gap:6px}.artist-social{margin-top:8px}.artist-actions{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.artist-bio{font-size:14px;line-height:1.55;margin:4px 0 12px}.artist-sec{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:18px 0 8px;border-top:1px solid var(--border);padding-top:14px}.artist-day{margin:8px 0}.artist-day-h{font-size:13px;font-weight:700;color:var(--primary-2);margin:6px 0}.artist-foot{font-size:12px;margin-top:16px}@media (max-width:700px){.artist-actions{align-items:flex-start}}.aud-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px;margin:4px 0 6px}.aud-card{display:flex;flex-direction:column;gap:3px;border:1px solid var(--border);border-radius:12px;background:#fff;padding:12px 14px;box-shadow:var(--shadow)}.aud-ic{font-size:20px;line-height:1}.aud-val{font-size:22px;font-weight:700;color:var(--primary-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.aud-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.aud-cities{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 6px}.aud-city{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;color:var(--ink);background:var(--surface-3);border:1px solid var(--border);border-radius:999px;padding:3px 10px}.qr-img{width:160px;height:160px;display:block;border:1px solid var(--border);border-radius:10px;padding:8px;background:#fff;image-rendering:pixelated}.driver-badge{display:none}@media print{.driver-badge{display:flex!important;flex-direction:column;align-items:center;gap:8px;page-break-inside:avoid;border:1px solid #000;border-radius:12px;padding:16px;width:240px;margin:8px}.driver-badge .qr-img{-webkit-print-color-adjust:exact;print-color-adjust:exact;border:none;padding:0}}.auth-screen{min-height:100vh;align-items:center;justify-content:center;gap:18px;padding:24px;background:radial-gradient(1100px 560px at 50% -12%,#26344f,transparent),linear-gradient(180deg,var(--sidebar),var(--sidebar-2))}.auth-card,.auth-screen{display:flex;flex-direction:column}.auth-card{width:100%;max-width:380px;background:var(--surface);border-radius:16px;padding:28px 26px;box-shadow:var(--shadow-lg);gap:14px;animation:fade-rise .3s ease both}.auth-head{text-align:center;margin-bottom:2px}.auth-logo{font-size:26px;font-weight:800;letter-spacing:.02em;background:linear-gradient(90deg,var(--primary),var(--primary-2));-webkit-background-clip:text;background-clip:text;color:transparent}.auth-sub{margin:6px 0 0;color:var(--muted);font-size:13px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field>span{font-size:12px;color:var(--muted);font-weight:600}.auth-field input{width:100%;padding:11px 12px;font-size:14px}.auth-pw{position:relative;display:flex}.auth-pw input{flex:1 1;padding-right:44px}.auth-pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--muted);padding:6px 8px;font-size:15px}.auth-pw-toggle:hover{background:transparent;box-shadow:none;filter:none}.auth-submit{width:100%;padding:11px;font-size:15px;margin-top:2px}.auth-error{background:var(--danger-soft);color:var(--danger);border-radius:9px;padding:9px 12px;font-size:13px}.auth-hint-warn{color:var(--warn-ink);font-size:12px;margin-top:-4px}.auth-foot{color:hsla(0,0%,100%,.55);font-size:12px}.auth-demo{border-top:1px solid var(--border);padding-top:10px;margin-top:2px}.auth-demo-toggle{background:transparent;border:none;color:var(--muted);padding:2px 0;font-size:12px;font-weight:600}.auth-demo-toggle:hover{background:transparent;box-shadow:none;filter:none;color:var(--ink)}.auth-demo-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.auth-demo-list button{width:100%;display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);color:var(--ink);padding:6px 10px;border-radius:8px;font-size:12px;font-weight:500}.auth-demo-list button:hover{background:var(--surface-3);box-shadow:none;filter:none}.auth-demo-mail{color:var(--muted)}.auth-splash{display:flex;flex-direction:column;align-items:center;gap:16px}.auth-splash .auth-logo{font-size:30px}.auth-spin{width:26px;height:26px;border:3px solid hsla(0,0%,100%,.25);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.role-badge{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}.role-admin{background:var(--primary-bg);color:var(--primary-2)}.role-viaggi{background:var(--sc);color:var(--sc-ink)}.role-transfer{background:var(--arr);color:var(--arr-ink)}.role-utente{background:var(--surface-3);color:var(--ink-3)}.role-moder{background:var(--warn);color:var(--warn-ink)}.topbar-right{display:flex;align-items:center;gap:14px}.acct{position:relative}.acct-btn{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--border);color:var(--ink);padding:5px 10px 5px 6px;border-radius:999px}.acct-btn:hover{background:var(--surface-2);box-shadow:var(--shadow);filter:none}.acct-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex:none}.acct-meta{display:flex;flex-direction:column;align-items:flex-start;gap:2px;line-height:1.05}.acct-name{font-size:12.5px;font-weight:600;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-caret{color:var(--muted);font-size:10px}.acct-menu{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;min-width:224px;z-index:60;animation:fade-rise .15s ease both}.acct-menu-head{padding:8px 10px;border-bottom:1px solid var(--border);margin-bottom:4px}.acct-menu-head .acct-name{max-width:none}.acct-mail{font-size:11.5px;color:var(--muted)}.acct-menu button{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--ink);padding:8px 10px;border-radius:8px;font-size:13px}.acct-menu button:hover{background:var(--surface-3);box-shadow:none;filter:none}.acct-menu .acct-logout{color:var(--danger)}@media (max-width:700px){.acct-meta{display:none}}.usr-card{border:1px solid var(--border);border-radius:12px;background:#fff;transition:box-shadow .15s,transform .15s;animation:fade-rise .25s ease both}.usr-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.usr-card.inactive{opacity:.62}.usr-summary{gap:12px;padding:12px 14px}.usr-avatar,.usr-summary{display:flex;align-items:center}.usr-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#64748b,#334155);color:#fff;justify-content:center;font-weight:700;font-size:13px;flex:none}.usr-main{flex:1 1;min-width:0}.usr-name{font-size:14.5px;display:flex;align-items:center;flex-wrap:wrap;gap:3px}.usr-sub{font-size:12px;margin-top:2px}.usr-actions{display:flex;align-items:center;gap:6px}.usr-edit{border:1px solid var(--border);border-top:none;padding:14px;background:var(--surface-edit);border-radius:0 0 12px 12px}#sez-utenti .usr-edit:first-of-type{border-top:1px solid var(--border);border-radius:12px}@media (max-width:700px){.usr-summary{flex-wrap:wrap}.usr-actions{width:100%;justify-content:flex-end}}.acc-toolbar{justify-content:space-between;align-items:center;margin-bottom:var(--sp-1)}.acc-toolbar,.acc-toolbar-title{display:flex;gap:var(--sp-3);flex-wrap:wrap}.acc-toolbar-title{align-items:baseline}.acc-toolbar-title h2{margin:0}.acc-tools{display:flex;gap:var(--sp-2);flex-wrap:wrap}.acc-section{margin:var(--sp-3) 0 var(--sp-4)}.acc-h{font-size:var(--fs-md);margin:0 0 var(--sp-3);display:flex;align-items:center;gap:var(--sp-2)}.acc-hotels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:var(--sp-3);gap:var(--sp-3)}.hotel-card{display:flex;flex-direction:column;gap:var(--sp-2);border:1px solid var(--border);border-left:4px solid var(--sc-bd);border-radius:var(--r-lg);background:#fff;padding:var(--sp-4);box-shadow:var(--shadow);transition:box-shadow var(--tr),transform var(--tr)}.hotel-card.clickable{cursor:pointer}.hotel-card.clickable:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.hotel-card.clickable:hover .hotel-card-name{text-decoration:underline;text-underline-offset:2px}.hotel-card.clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.hotel-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-2)}.hotel-card-id{min-width:0}.hotel-card-name{font-size:var(--fs-lg);display:block}.hotel-card-badges{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;margin-top:6px}.hotel-stars{color:var(--stars);font-size:var(--fs-base);letter-spacing:1px}.acc-rooms-badge{font-size:var(--fs-xs);font-weight:var(--fw-semi);color:var(--primary-2);background:var(--primary-bg);border:1px solid var(--primary-bg);border-radius:var(--r-pill);padding:2px 9px;white-space:nowrap}.hotel-card-del{flex:none}.hotel-card-addr{font-size:var(--fs-sm);color:var(--muted)}.hotel-card-contacts{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin:-2px 0}.hotel-card-amen{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.hotel-card-amen .aud-city.hotel-amen-more{color:var(--muted)}.hotel-card-meta{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.acc-ai-badge{align-self:flex-start;font-size:var(--fs-xs);font-weight:var(--fw-semi);border-radius:var(--r-pill);padding:3px 10px}.acc-ai-badge.running{background:var(--sc);color:var(--sc-ink);animation:acc-pulse 1.4s ease-in-out infinite}.acc-ai-badge.error{background:var(--warn);color:var(--warn-ink)}@keyframes acc-pulse{0%,to{opacity:1}50%{opacity:.55}}.acc-addhotel{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-3)}.acc-addhotel input{flex:1 1 180px}.acc-group{margin-bottom:18px}.acc-hotel-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-2) var(--sp-3);margin:var(--sp-3) 0;background:linear-gradient(90deg,var(--sc),var(--surface));border:1px solid var(--border);border-left:4px solid var(--sc-bd);border-radius:var(--r-md)}.acc-hotel-head b{font-size:var(--fs-md)}.acc-hotel-head-ic{font-size:15px}.acc-empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);text-align:center;padding:var(--sp-8) var(--sp-4);border:1px dashed var(--border);border-radius:var(--r-lg);background:var(--surface-2);color:var(--muted)}.acc-empty-ic{font-size:30px;opacity:.7}.acc-empty p{margin:0;max-width:380px;font-size:var(--fs-base)}@media (max-width:700px){.acc-hotels-grid{grid-template-columns:1fr}}.anag-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4)}.anag-bar h2{margin:0;flex:0 0 auto;font-size:var(--fs-lg)}.anag-search{flex:1 1 220px;padding:9px var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);font:inherit;background:#fff}.anag-counts{align-items:center;margin-left:auto}.anag-counts,.anag-stats{display:flex;gap:var(--sp-2);flex-wrap:wrap}.anag-stats{align-items:stretch;margin-bottom:var(--sp-3)}.anag-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);min-width:64px}.anag-stat b{font-size:var(--fs-lg);font-weight:var(--fw-bold);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1;color:var(--ink)}.anag-stat span{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:3px;white-space:nowrap}.anag-stat.is-action{font:inherit;cursor:pointer;color:var(--ink);transition:border-color var(--tr),background var(--tr)}.anag-stat.is-action:hover:not(.on){border-color:var(--primary);box-shadow:none;filter:none}.anag-stat.is-action.on{background:var(--primary);border-color:var(--primary)}.anag-stat.is-action.on b,.anag-stat.is-action.on span{color:#fff}.anag-stat.is-err.on{background:var(--danger);border-color:var(--danger)}.anag-enrich{margin-left:var(--sp-2);align-self:stretch;padding:6px 16px;border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:var(--fw-semi);white-space:nowrap}.anag-enrich:disabled{opacity:.6;cursor:default}.anag-sortbar{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap;margin-bottom:var(--sp-4)}.anag-groups{display:flex;flex-direction:column;gap:var(--sp-3)}.anag-group{border:1px solid var(--border);border-radius:var(--r-lg);background:#fff;box-shadow:var(--shadow);overflow:hidden;transition:box-shadow var(--tr)}.anag-group:hover{box-shadow:var(--shadow-md)}.anag-group-h{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);cursor:pointer;transition:background var(--tr)}.anag-group-h:hover{background:var(--primary-soft)}.anag-group-h:hover .anag-group-name b{text-decoration:underline;text-underline-offset:2px}.anag-group-h:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.anag-avatar{width:36px;height:36px;border-radius:var(--r-md);flex:none;display:flex;align-items:center;justify-content:center;font-weight:var(--fw-bold);font-size:var(--fs-base);color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2))}.anag-group-id{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.anag-group-name{font-size:15px;display:flex;align-items:center;gap:5px;min-width:0}.anag-group-name b,.anag-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.anag-sub{font-size:12px;color:var(--muted)}.anag-ref{font-size:12px;color:var(--ink-3)}.anag-ref a{color:var(--primary);text-decoration:none}.anag-ref a:hover{text-decoration:underline}.anag-photo{width:40px;height:40px;border-radius:var(--r-md);object-fit:cover;flex:none;background:var(--surface-3)}.anag-incomplete{width:8px;height:8px;border-radius:50%;background:var(--warn-bd);flex:none;display:inline-block}.anag-meta .is-zero{opacity:.45}.acc-ai-badge.idle{background:var(--surface-3);color:var(--ink-3)}.anag-meta{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap;justify-content:flex-end}.anag-toggle{flex:none}.anag-members{margin:0 var(--sp-4) var(--sp-3) 48px;padding-left:var(--sp-4);border-left:2px solid var(--border)}.anag-members li{padding:7px 0}.anag-orphans{margin-top:var(--sp-1)}.anag-add{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-3)}.anag-add input{flex:1 1 200px}.anag-empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);text-align:center;color:var(--muted);padding:var(--sp-6);border:1px dashed var(--border);border-radius:var(--r-lg)}.anag-empty-ic{font-size:28px;opacity:.7}@media (max-width:700px){.anag-counts{margin-left:0}.anag-members{margin-left:24px}}@media print{.anag-members{display:block!important}.anag-group-h{cursor:auto}}.rides-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-3) var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-3)}.rides-head-text{flex:1 1 340px;min-width:0}.rides-head-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:flex-start}.rides-filters{margin-bottom:var(--sp-4)}.rides-filters,.rides-status{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.evt-switch .evt-switch-btn{max-width:240px}.evt-dot{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block}.evt-menu{min-width:260px;max-width:340px}.evt-menu-item{display:flex;align-items:center;gap:var(--sp-2)}.evt-mi-main{display:flex;flex-direction:column;min-width:0;flex:1 1}.evt-mi-name{font-weight:var(--fw-semi);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.evt-mi-meta{font-size:var(--fs-xs);color:var(--muted)}.evt-mi-check{color:var(--primary);font-weight:var(--fw-bold)}.evt-menu-cal{border-top:1px solid var(--border);margin-top:4px;color:var(--primary)}.cal-head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}.cal-title{font-size:var(--fs-lg);font-weight:var(--fw-semi);min-width:170px;text-align:center}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.cal-dow{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:var(--fw-semi);text-align:center;padding:2px 0}.cal-cell{min-height:84px;border:1px solid var(--border);border-radius:var(--r-md);padding:4px 5px;display:flex;flex-direction:column;gap:3px;background:#fff}.cal-cell.other-month{background:var(--surface-2);opacity:.6}.cal-cell.today{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.cal-daynum{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--ink);display:flex;align-items:center;justify-content:space-between}.cal-today-badge{font-size:9px;text-transform:uppercase;background:var(--primary);color:#fff;border-radius:var(--r-pill);padding:0 6px}.cal-evbar{font:inherit;font-size:var(--fs-xs);font-weight:var(--fw-semi);color:#fff;border:none;border-radius:5px;padding:2px 6px;cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%}.cal-evbar:hover{filter:brightness(1.08);box-shadow:none}.cal-more{font-size:var(--fs-xs);color:var(--muted)}.evt-list .evt-row{gap:var(--sp-3)}.evt-row.active{background:var(--primary-soft);border-radius:var(--r-md);padding:9px 8px}.evt-row-id{display:flex;align-items:flex-start;gap:var(--sp-2);min-width:0}@media (max-width:700px){.cal-cell{min-height:56px}.evt-switch .evt-switch-btn{max-width:140px}}.cue-dot{width:6px;height:6px;border-radius:2px;background:var(--primary);display:inline-block;flex:none;margin-right:7px}.brand{display:flex;align-items:center;flex-wrap:wrap}.brand b{font-weight:800}.brand .brand-2{font-weight:800;color:#94a3b8}.brand small{flex-basis:100%}.lisa-fab{position:fixed;right:20px;bottom:84px;z-index:80;width:50px;height:50px;padding:0;border:none;border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;cursor:pointer}.lisa-fab:hover{box-shadow:var(--shadow-lg);filter:none;transform:translateY(-1px)}.lisa-dock{position:fixed;right:20px;bottom:84px;z-index:80;width:min(320px,calc(100vw - 40px));background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);animation:fade-rise .2s ease both}.lisa-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.lisa-head .lisa-title{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--ink);flex:1 1;min-width:0}.lisa-head button{background:transparent;border:none;color:var(--muted);padding:2px 8px;font-size:18px;line-height:1}.lisa-head button:hover{background:var(--surface-3);box-shadow:none;filter:none}.lisa-tip{margin:0;padding:12px;font-size:var(--fs-base);line-height:var(--lh-relaxed);color:var(--ink-2)}.lisa-actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 12px 12px}.lisa-avatar{display:block}@keyframes lisaPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.18);opacity:.7}}.lisa-cue{transform-box:fill-box;transform-origin:center}.lisa-dock .lisa-cue,.lisa-fab .lisa-cue{animation:lisaPulse 1.6s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.lisa-cue{animation:none}}@media print{.lisa-dock,.lisa-fab{display:none!important}}.dash-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:2px solid var(--border);margin-bottom:var(--sp-4)}.dash-tab{font:inherit;font-size:var(--fs-md);font-weight:var(--fw-med);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:9px 14px;margin-bottom:-2px;border-radius:var(--r-md) var(--r-md) 0 0;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:color var(--tr),border-color var(--tr),background var(--tr)}.dash-tab:hover{background:var(--surface-2);color:var(--ink);box-shadow:none;filter:none}.dash-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:var(--fw-semi)}.dash-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;margin-left:6px;padding:0 5px;background:var(--danger);color:#fff;font-size:10px;font-weight:600;line-height:1;border-radius:var(--r-pill);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:640px){.dash-tab{padding:8px 11px;font-size:var(--fs-base)}}