:root{--navy:#263356;--navy-dark:#1b2338;--brass:#b8935a;--brass-pale:#f9f5ef;--page-bg:#f8f9fb;--card-bg:#fff;--soft-grey:#f4f4f7;--text:#222328;--ink:#1e2028;--secondary:#4a5164;--muted:#4a5164;--outline:#e5e7eb;--outline-strong:#cbcdd0;--success:#0f8e1e;--error:#c00000;--plate-bg:#ffd307;--plate-text:#1a1a1a}*{box-sizing:border-box}html,body{height:100%}body{background:var(--page-bg);color:var(--text);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font-family:Nunito Sans,Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.45;display:flex;overflow:hidden}.login-page{background:radial-gradient(circle at 50% 28%,#b8935a29,transparent 34%), var(--page-bg);place-items:center;min-height:100%;padding:24px;display:grid}.login-card{text-align:center;border:1px solid var(--outline);border-top:4px solid var(--brass);background:var(--card-bg);border-radius:12px;width:min(390px,100%);padding:30px 34px 34px;box-shadow:0 18px 48px #26335624}.login-van{border-radius:20px;width:92px;height:92px;margin:0 auto 16px;overflow:hidden;box-shadow:0 7px 18px #26335624}.login-van img{object-fit:cover;width:100%;height:100%;display:block}.login-kicker{color:var(--brass);letter-spacing:1.5px;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:800}.login-card h1{color:var(--navy);margin:0;font-size:25px;line-height:1.2}.login-intro{color:var(--muted);margin:9px 0 22px;font-size:13.5px}.login-form{text-align:left}.login-form label{color:var(--navy);margin:0 0 5px;font-size:12px;font-weight:800;display:block}.password-field{position:relative}.password-field input{border:1px solid var(--outline-strong);width:100%;color:var(--text);font:inherit;background:#fff;border-radius:7px;padding:10px 62px 10px 11px}.password-field input:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px #2633561f}.password-visibility{min-width:48px;color:var(--navy);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:5px 7px;font:800 11px/1 inherit;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.password-visibility:hover{background:var(--soft-grey)}.password-visibility:focus-visible{outline:2px solid var(--brass);outline-offset:0}.login-form button[type=submit]{background:var(--navy);color:#fff;cursor:pointer;width:100%;box-shadow:inset 0 3px 0 var(--brass);border:0;border-radius:7px;margin-top:14px;padding:10px 16px;font:700 13.5px/1.3 inherit}.login-form button[type=submit]:hover{background:var(--navy-dark)}.login-form button[type=submit]:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.login-error{color:var(--error);margin:8px 0 0;font-size:12px;font-weight:700}.topbar{background:var(--navy);color:#fff;flex:none;justify-content:space-between;align-items:center;gap:16px;padding:9px 24px;display:flex}.topbar .mark{letter-spacing:.3px;font-size:17px;font-weight:800}.topbar .mark span{color:#d8be93}.call-mode-control{position:relative}.call-mode-switch{background:#0a12246b;border:1px solid #65728e;border-radius:8px;grid-template-columns:repeat(3,minmax(86px,1fr));padding:2px;display:grid;overflow:hidden}.call-mode-switch button{color:#dce3ef;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;min-height:30px;padding:0 11px;font-family:inherit;font-size:11.5px;font-weight:700;transition:background .16s,color .16s,box-shadow .16s}.call-mode-switch button.selected{background:var(--brass);color:#fff;box-shadow:0 3px 9px #0003}.call-mode-switch button:focus-visible{outline-offset:-3px;outline:2px solid #fff}.call-mode-switch.is-changing button{cursor:wait}.call-mode-switch button:disabled{opacity:.72}.call-mode-switch button.selected:disabled{opacity:1}.call-mode-error{z-index:20;color:#fff;background:#8b1e1e;border-radius:5px;max-width:330px;padding:5px 8px;font-size:11px;font-weight:700;position:absolute;top:calc(100% + 5px);right:0;box-shadow:0 3px 10px #00000040}.call-mode-error:empty{display:none}.tabs{background:var(--navy-dark);flex:none;gap:2px;padding:0 24px;display:flex}.tab{letter-spacing:.5px;color:#98a3bf;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:9px 18px 8px;font-family:inherit;font-size:12.5px;font-weight:700;text-decoration:none;display:inline-block}.tab.on{color:#fff;border-bottom-color:var(--brass);background:#ffffff0d}.tab:not(.on):hover{color:#d2d9ea}.tab:focus-visible{outline:2px solid var(--brass);outline-offset:-3px}.bar{border-bottom:1px solid var(--outline);background:var(--card-bg);flex-wrap:wrap;flex:none;align-items:center;gap:14px;padding:10px 24px;display:flex}.bar h1{margin:0;font-size:16px;font-weight:800}.bar .hint{color:var(--muted);margin-left:auto;font-size:12.5px}.scroll{flex:auto;padding:14px 24px 40px;overflow-y:auto}.week{margin-bottom:22px}.week h2{letter-spacing:1.3px;text-transform:uppercase;color:var(--brass);margin:0 0 7px;font-size:11px;font-weight:800}.grid{grid-template-columns:76px repeat(5,minmax(0,1fr));gap:4px;display:grid}.dayhead{letter-spacing:.7px;text-transform:uppercase;color:var(--navy);text-align:center;padding:3px 6px 6px;font-size:12px;font-weight:700}.timecell{color:var(--ink);font-variant-numeric:tabular-nums;justify-content:flex-start;align-items:flex-start;padding:7.5px 8px 0 2px;font-size:12.5px;font-weight:600;line-height:1.2;display:flex}.slot{background:var(--card-bg);cursor:pointer;text-align:left;border:1.5px solid var(--navy);border-left:4px solid var(--navy);border-radius:6px;width:100%;min-height:74px;padding:6px 12px;font-family:inherit;transition:border-color .12s,background .12s;display:block}.slot:focus-visible{outline:2px solid var(--brass);outline-offset:1px}.slot.free{border:1.5px dashed var(--outline-strong);color:var(--ink);letter-spacing:.3px;background:0 0;justify-content:center;align-items:center;font-size:12.5px;font-weight:500;display:flex}.slot.free:hover{border-color:var(--navy);color:var(--navy);background:#fff}.slot.taken:hover{background:#fcfcfd}.slot.taken.dragging{opacity:.35}.slot.free.over{border-style:solid;border-color:var(--navy);background:#fff}.slot .nm{letter-spacing:-.2px;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:0 0 2px;font-size:15px;font-weight:600;line-height:1.2;overflow:hidden}.slot .vh{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12.5px;font-weight:400;line-height:1.3;overflow:hidden}.slot .rg{border:1px solid var(--ink);width:fit-content;color:var(--ink);letter-spacing:1.1px;text-transform:uppercase;font-variant-numeric:tabular-nums;background:#fff;border-radius:4px;margin:3px 0 0;padding:1px 7px;font-size:12.5px;font-weight:700;line-height:1.3;display:block}.slot.past{opacity:.5;cursor:default}.slot.past:hover{border-color:var(--outline-strong);color:var(--ink);background:0 0}.shade{opacity:0;pointer-events:none;z-index:40;background:#181d2c57;transition:opacity .16s;position:fixed;inset:0}.shade.on{opacity:1;pointer-events:auto}.panel{background:var(--card-bg);border-left:1px solid var(--outline);z-index:50;flex-direction:column;width:min(560px,100%);height:100%;transition:transform .2s;display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-8px 0 32px #26335629}.panel.on{transform:translate(0)}.phead{background:var(--navy);color:#fff;border-bottom:3px solid var(--brass);flex:none;align-items:center;gap:12px;padding:11px 20px;display:flex}.phead .t{font-size:14.5px;font-weight:800}.phead .s{color:#b9c2d8;font-variant-numeric:tabular-nums;font-size:12px}.x{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:5px;width:26px;height:26px;margin-left:auto;font-family:inherit;font-size:15px;line-height:1}.x:hover{background:#ffffff24}.x:focus-visible{outline:2px solid var(--brass);outline-offset:1px}.pbody{flex:auto;padding:0;overflow-y:auto}.sec{border-bottom:1px solid var(--outline);padding:13px 20px}.legend{letter-spacing:1.3px;text-transform:uppercase;color:var(--brass);margin:0 0 9px;font-size:10px;font-weight:800}.row{grid-template-columns:1fr 1fr;gap:10px 14px;display:grid}.row.one{grid-template-columns:1fr}.fld label{letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin-bottom:3px;font-size:10.5px;font-weight:700;display:block}.fld input,.fld textarea,.fld select{width:100%;color:var(--text);border:1px solid var(--outline-strong);background:var(--card-bg);border-radius:5px;padding:7px 9px;font-family:inherit;font-size:14px}.fld textarea{resize:vertical;min-height:66px;line-height:1.5}.fld input:focus,.fld textarea:focus,.fld select:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px #2633561f}.fld input.plate{background:var(--plate-bg);color:var(--plate-text);letter-spacing:2px;text-align:center;text-transform:uppercase;border-color:#00000059;font-size:19px;font-weight:800}.switchrow{align-items:center;gap:12px;display:flex}.switch{background:var(--outline-strong);cursor:pointer;border:none;border-radius:999px;flex:none;width:44px;height:24px;padding:0;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0000004d}.switch[aria-checked=true]{background:var(--success)}.switch[aria-checked=true]:after{transform:translate(20px)}.switch:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.switchtxt .l{font-size:14px;font-weight:700}.switchtxt .s{color:var(--muted);font-size:12px}.ladder{margin:0;padding:0;list-style:none}.ladder li{grid-template-columns:15px minmax(0,1fr);align-items:start;gap:9px;padding:2px 0;display:grid}.dot{border:2px solid var(--outline-strong);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:12px;height:12px;margin-top:4px;font-size:7px;font-weight:900;line-height:1;display:flex}.here .dot{background:var(--brass);border-color:var(--brass);box-shadow:0 0 0 3px #b8935a38}.here .dot:after{content:"✓"}.ladder .nm{font-size:12.5px;font-weight:700;line-height:1.3;display:block}.here .nm:after{content:"NOW";background:var(--brass);color:#2a2113;letter-spacing:.6px;vertical-align:2px;border-radius:3px;margin-left:6px;padding:1px 4px;font-size:8.5px;font-weight:900;display:inline-block}.todo .nm{color:var(--muted);font-weight:600}.branch{border-left:1px dashed var(--outline-strong);margin:2px 0 0 4px;padding-left:12px}.grouphead{letter-spacing:1.1px;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--outline);margin-top:7px;padding-top:9px;font-size:9.5px;font-weight:800}.laddercols{grid-template-columns:1fr 1fr;align-items:start;gap:0 18px;display:grid}.hscroll{border:1px solid var(--outline);background:var(--soft-grey);border-radius:5px;max-height:104px;padding:7px 11px;overflow-y:auto}.hlist{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.hlist li{color:var(--secondary);font-variant-numeric:tabular-nums;grid-template-columns:96px 58px minmax(0,1fr);align-items:baseline;gap:10px;font-size:12.5px;display:grid}.hlist .t{color:var(--muted);white-space:nowrap}.hlist .src{letter-spacing:.5px;text-transform:uppercase;border:1px solid var(--outline-strong);text-align:center;white-space:nowrap;color:var(--muted);border-radius:3px;padding:1px 4px;font-size:9px;font-weight:800}.hlist .src.aura{color:var(--navy);border-color:var(--navy)}.hlist .w{color:var(--text);font-weight:700}.empty{color:var(--muted);font-size:12.5px;font-style:italic}.pfoot{border-top:1px solid var(--outline);background:var(--soft-grey);flex:none;align-items:center;gap:10px;padding:12px 20px;display:flex}.btn{cursor:pointer;border:2px solid var(--navy);border-radius:7px;padding:8px 20px;font-family:inherit;font-size:13.5px;font-weight:700}.btn.primary{background:var(--navy);color:#fff;border-top:3px solid var(--brass)}.btn.primary:hover{background:#1b2338}.btn.ghost{color:var(--navy);background:0 0}.btn.ghost:hover{background:#26335612}.btn.danger{color:var(--error);background:0 0;border-color:#0000;margin-left:auto}.btn.danger:hover{background:#c0000014}.btn:disabled{opacity:.5;cursor:default}.btn:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.oops{color:var(--error);background:#fdecec;border-bottom:1px solid #f3c9c9;margin:0;padding:9px 20px;font-size:12.5px;font-weight:700}@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media (max-width:640px){.topbar{flex-direction:column;align-items:stretch}.call-mode-switch{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.call-mode-switch button{padding:0 6px}}
