:root{--red:#bf0000;--red-dark:#950000;--ink:#3f3f3f;--ink-soft:#5d5d5d;--silver:#dadada;--silver-2:#bebebe;--paper:#f3f3f4;--line:#cacaca;--tint:#fbeaea;--tint-2:#f6dede;--amber:#fff7dc;--amber-bd:#e6c200;--ok:#0f8a73;--bad:#b42318}*{box-sizing:border-box}body{color:var(--ink);background:var(--paper);margin:0;font:14px/1.45 Open Sans,Segoe UI,system-ui,Arial,sans-serif}header{border-bottom:4px solid var(--red);background:#fff;padding:12px 20px}.head-flex{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.logo{width:auto;height:58px;display:block}.head-text{flex:280px}header h1{color:var(--ink);letter-spacing:.2px;margin:0;font-size:20px;font-weight:800}header .sub{color:var(--ink-soft);margin-top:2px;font-size:12.5px}table.pay{border-collapse:collapse;background:#fff;width:100%;box-shadow:0 1px 3px #0000001a}table.pay th,table.pay td{border:1px solid var(--line);text-align:right;white-space:nowrap;padding:4px 6px}table.pay th{background:var(--red);color:#fff;text-align:center;z-index:2;font-size:11.5px;position:sticky;top:0}td.l,th.l{text-align:left}table.pay tbody tr:nth-child(2n){background:#faf7f7}td input,td select{font:inherit;text-align:right;width:100%;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:4px;padding:3px 4px}td.edit input,td.edit select{background:var(--amber);border:1px solid var(--amber-bd)}td.edit input:focus,td.edit select:focus{outline:2px solid var(--red);background:#fffdf0}td.l input{text-align:left}td.calc{color:var(--ink);background:#f2f2f2}td.gross{background:var(--tint);color:var(--red-dark);font-weight:700}tfoot td{background:var(--tint-2);color:var(--red-dark);font-weight:700}details{border:1px solid var(--line);background:#fff;border-radius:8px;margin-top:14px;padding:6px 14px}summary{cursor:pointer;color:var(--red);padding:6px 0;font-weight:700}details p,details li{color:var(--ink-soft);font-size:13px}.hint{color:#9a9a9a;font-size:11px}.review-emp{border:1px solid var(--line);background:#fff;border-radius:8px;margin:14px 0;overflow:hidden}.emp-head{background:var(--tint);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:9px 12px;display:flex}.emp-head .ocrname{color:var(--red-dark);font-weight:800}.emp-head select{font:inherit;border:1px solid var(--silver-2);background:#fff;border-radius:4px;padding:4px 6px}.emp-head select.unassigned{outline:2px solid var(--bad)}.emp-head .sub{color:var(--ink-soft);margin-left:auto;font-size:12.5px}.emp-head .sub.warn{color:var(--bad);font-weight:700}.emp-head .needs-date-note{color:#8a6100;font-size:12px;font-weight:700}.mileage-row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:6px 12px;font-size:12.5px;display:flex}.mileage-row input{font:inherit;border:1px solid var(--silver-2);border-radius:4px;width:9em;padding:3px 6px}.mileage-row input.mileage-missing{background:#fffbef;border-color:#e0a800}.mileage-row .fleet-ok{color:var(--done);font-weight:600}.mileage-row .fleet-bad{color:#8a6100;font-weight:700}table.rt{border-collapse:collapse;width:100%}table.rt th,table.rt td{text-align:left;white-space:nowrap;border-bottom:1px solid #eee;padding:3px 8px;font-size:12.5px}table.rt th{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.3px;background:#fafafa;font-size:11px;font-weight:700}table.rt td.r,table.rt th.r{text-align:right}table.rt input{font:inherit;text-align:right;background:0 0;border:1px solid #0000;border-radius:3px;width:70px;padding:2px 4px}table.rt input:focus{border-color:var(--silver-2);background:#fffdf0}table.rt tr.lc{background:#fff3cd}select.date-pick{font:inherit;background:0 0;border:1px solid #0000;border-radius:3px;max-width:120px;padding:2px 4px;font-size:12px}select.date-pick:focus{border-color:var(--silver-2);background:#fffdf0}select.date-pick.needs-date{background:#fff3cd;border-color:#e0a800}.conf{border-radius:50%;width:9px;height:9px;display:inline-block}.conf.high{background:#2e9b5b}.conf.medium{background:#e0a800}.conf.low{background:var(--bad)}@media print{body{background:#fff}}:root{--current:#bf0000;--done:#0f8a73;--locked:#b6b6b6;--chip-red-bg:#fde8e6;--chip-red-bd:#f3b4ad;--chip-amber-bg:#fff7dc;--chip-amber-bd:#e6c200;--shell-max:1180px}.shell{max-width:var(--shell-max);grid-template-columns:248px 1fr;gap:0;min-height:calc(100vh - 86px);margin:0 auto;display:grid}.rail{border-right:1px solid var(--line);background:#fff;padding:16px 0}.stage{padding:18px 24px 40px}@media (width<=820px){.shell{grid-template-columns:1fr}.rail{border-right:0;border-bottom:1px solid var(--line)}}.user-chip{color:var(--ink-soft);align-items:center;gap:8px;font-size:12.5px;display:flex}.role-pill{text-transform:uppercase;letter-spacing:.4px;background:var(--tint);color:var(--red-dark);border:1px solid var(--tint-2);border-radius:20px;padding:2px 9px;font-size:11px;font-weight:800}.role-pill.admin{color:#5a3db8;background:#efeaff;border-color:#d6cbf5}.week-switch{align-items:center;gap:8px;margin-left:auto;font-size:12.5px;display:flex}.week-switch select{font:inherit;border:1px solid var(--silver-2);background:#fff;border-radius:5px;padding:4px 8px}.rail h3{text-transform:uppercase;letter-spacing:.5px;color:var(--ink-soft);margin:0 0 6px;padding:0 24px;font-size:11px}.step{cursor:pointer;border-left:3px solid #0000;align-items:flex-start;gap:12px;padding:11px 20px 11px 24px;display:flex;position:relative}.step:hover:not(.locked){background:#fafafa}.step.sel{background:var(--tint);border-left-color:var(--red)}.step.locked{cursor:not-allowed;opacity:.55}.step .dot{color:#999;background:#eee;border:2px solid #ddd;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:12px;font-weight:800;display:grid}.step.done .dot{background:var(--done);color:#fff;border-color:var(--done)}.step.current .dot{color:var(--red);border-color:var(--red);box-shadow:0 0 0 3px var(--tint);background:#fff}.step .t{color:var(--ink);font-size:13.5px;font-weight:700;line-height:1.25}.step .s{color:var(--ink-soft);margin-top:1px;font-size:11.5px}.step.locked .t{color:var(--locked)}.step .lockico{color:var(--locked);margin-left:auto;font-size:12px}.rail-connector{background:#e3e3e3;width:2px;position:absolute;top:37px;bottom:-11px;left:36px}.step.done .rail-connector{background:var(--done)}.stage-head{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:4px;display:flex}.stage-head h2{color:var(--ink);margin:0;font-size:21px;font-weight:800}.sbadge{letter-spacing:.2px;border-radius:20px;padding:5px 13px;font-size:12px;font-weight:800}.sbadge.wait{background:var(--chip-amber-bg);color:#8a6d00;border:1px solid var(--chip-amber-bd)}.sbadge.go{color:var(--done);background:#e6f6f1;border:1px solid #a8e0d3}.sbadge.done{color:var(--ink-soft);border:1px solid var(--silver-2);background:#eef0f3}.stage .lead{color:var(--ink-soft);max-width:760px;margin:6px 0 18px;font-size:14px}.stage .lead b{color:var(--ink)}.cta{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px;padding-top:16px;display:flex}button.big{font:inherit;border:1px solid var(--ok);background:var(--ok);color:#fff;cursor:pointer;border-radius:9px;padding:11px 22px;font-size:15px;font-weight:800}button.big:hover{background:#0c7a66}button.big:disabled{color:#fff;cursor:not-allowed;background:#cfcfcf;border-color:#cfcfcf}button.big.ghost{color:var(--red);border-color:var(--silver-2);background:#fff}button.big.ghost:hover{background:var(--tint)}.cta .why{color:var(--ink-soft);font-size:12.5px}.card{border:1px solid var(--line);background:#fff;border-radius:10px;margin:0 0 16px;padding:18px 20px}.card h3{margin:0 0 4px;font-size:15px}.flags{flex-direction:column;gap:8px;margin:6px 0;display:flex}.chip{border:1px solid;border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-size:13px;display:flex}.chip.red{background:var(--chip-red-bg);border-color:var(--chip-red-bd)}.chip.amber{background:var(--chip-amber-bg);border-color:var(--chip-amber-bd)}.chip.resolved{opacity:.5;text-decoration:line-through}.chip .kind{text-transform:uppercase;letter-spacing:.4px;background:#fff;border:1px solid #00000014;border-radius:5px;padding:2px 7px;font-size:10px;font-weight:800}.chip .ack{font:inherit;border:1px solid var(--silver-2);cursor:pointer;color:var(--ink);background:#fff;border-radius:6px;margin-left:auto;padding:4px 10px;font-size:12px;font-weight:700}.chip .ack:hover{background:#f3f3f3}.flag-counter{color:var(--ink-soft);margin:2px 0 0;font-size:13px}.toast{color:#fff;z-index:50;border-radius:9px;max-width:380px;padding:12px 16px;font-size:13.5px;font-weight:600;position:fixed;bottom:18px;right:18px;box-shadow:0 6px 20px #00000038}.toast.ok{background:var(--ok)}.toast.bad{background:var(--bad)}.toast.info{background:#34506b}.spin{border:2px solid #0000002e;border-top-color:var(--red);vertical-align:-2px;border-radius:50%;width:15px;height:15px;animation:.7s linear infinite sp;display:inline-block}@keyframes sp{to{transform:rotate(360deg)}}.center-load{min-height:60vh;color:var(--ink-soft);place-items:center;gap:10px;display:grid}.sync-modal{border:1px solid var(--line);border-top:4px solid var(--ok);background:#fff;border-radius:12px;width:100%;max-width:430px;padding:22px 24px;box-shadow:0 12px 40px #00000040}.sync-modal h3{color:var(--ink);align-items:center;margin:0 0 16px;font-size:16px;font-weight:800;display:flex}.syncbar{border:1px solid var(--silver-2);background:#eef0f3;border-radius:20px;height:12px;overflow:hidden}.syncbar-fill{background:var(--ok);border-radius:20px;width:0;height:100%;transition:width .4s}.syncbar-fill.indet{width:35%;animation:1.15s ease-in-out infinite syncindet}@keyframes syncindet{0%{margin-left:-35%}to{margin-left:100%}}.syncbar-row{color:var(--ink-soft);justify-content:space-between;align-items:center;gap:12px;margin-top:9px;font-size:12.5px;display:flex}.syncbar-msg{font-weight:600}.syncbar-pct{color:var(--ok);flex:none;font-weight:800}.total-row td{background:var(--tint-2);color:var(--red-dark);font-weight:800}.muted{color:var(--ink-soft)}.pillbtn{font:inherit;border:1px solid var(--silver-2);cursor:pointer;background:#fff;border-radius:6px;padding:4px 10px;font-size:12px}.pillbtn:hover{background:#f3f3f3}.pillbtn:disabled{opacity:.45;cursor:default}.pillbtn:disabled:hover{background:#fff}.pillbtn.danger{color:var(--bad);border-color:var(--chip-red-bd)}.approved-tag{color:var(--done);font-size:12px;font-weight:700}.locked-note{border:1px dashed var(--silver-2);color:var(--ink-soft);background:#f7f7f8;border-radius:8px;padding:12px 14px;font-size:13px}.locked-note.warn{color:var(--ink);background:#fff8e6;border:1px solid #e0a800;border-left-width:4px}.split-note{color:var(--ink-soft);margin-top:2px;font-size:11px;font-weight:400}.leaver-tag{text-transform:uppercase;letter-spacing:.3px;color:#8a5b00;vertical-align:1px;background:#fff3d6;border:1px solid #e0a800;border-radius:5px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:800;display:inline-block}.lockbar{border:1px solid var(--silver-2);border-left:4px solid var(--locked);color:var(--ink-soft);background:#f1f1f3;border-radius:8px;align-items:center;gap:10px;margin:14px 24px 0;padding:9px 14px;font-size:13px;display:flex}.lockbar b{color:var(--ink)}.cal-wrap{margin:6px 0 4px;overflow-x:auto}.cal{border-collapse:collapse;background:#fff;width:100%;box-shadow:0 1px 3px #00000014}.cal th,.cal td{border:1px solid var(--line);text-align:center;padding:6px 4px;font-size:12.5px}.cal th.l,.cal td.l{text-align:left;white-space:nowrap;min-width:140px;font-weight:600}.cal th{color:var(--ink-soft);background:#fafafa;font-weight:700}.cal th span{color:#aaa;font-size:10px;font-weight:600;display:block}.cal th.we,.cal td.we{background:#f2f2f2}.cal-cell{font-size:11px;font-weight:800}.cal-cell.holiday{background:var(--chip-amber-bg);color:#8a6d00}.cal-cell.sick{background:var(--chip-red-bg);color:var(--bad)}.cal th.bh,.cal th.bh span{color:#1d6fb8}.cal td.sat{color:#9aa3af;background:linear-gradient(135deg,#fff 0 50%,#e6e9ee 50% 100%)}.cal td.sat.holiday{color:#8a6d00;background:linear-gradient(135deg,var(--chip-amber-bg) 0 50%,#f1e0a0 50% 100%)}.cal td.sat.sick{color:var(--bad);background:linear-gradient(135deg,var(--chip-red-bg) 0 50%,#f0bfb8 50% 100%)}.cal td.bh{color:#5a6b80;background:repeating-linear-gradient(45deg,#e7ecf3,#e7ecf3 4px,#dae1ea 4px 8px);font-size:9px}.cal-cell.editable{cursor:pointer}.cal-cell.editable:hover{outline:2px solid var(--red);outline-offset:-2px}.cal-legend{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:18px;margin-top:8px;font-size:12.5px;display:flex}.cal-legend .sw{vertical-align:-1px;border-radius:3px;width:12px;height:12px;margin-right:5px;display:inline-block}.cal-legend .sw.holiday{background:var(--chip-amber-bg);border:1px solid var(--chip-amber-bd)}.cal-legend .sw.sick{background:var(--chip-red-bg);border:1px solid var(--chip-red-bd)}.cal-legend .sw.bh{background:repeating-linear-gradient(45deg,#e7ecf3,#e7ecf3 3px,#dae1ea 3px 6px);border:1px solid #cdd6e0}tr.team-head td{color:var(--ink);border-top:2px solid var(--silver-2);background:#eef0f3;font-weight:800}tr.team-member td:first-child{padding-left:22px}tr.team-member td:first-child:before{content:"↳";color:var(--silver-2);margin-right:6px}.admin-panel{max-width:var(--shell-max);margin:0 auto;padding:18px 24px 40px}.admin-panel h2{margin:0 0 4px;font-size:21px}.admin-panel section{margin-top:22px}.admin-panel section h3{margin:0 0 8px;font-size:15px}.admin-panel table.pay td.edit input,.admin-panel table.pay td.edit select{background:var(--amber);border:1px solid var(--amber-bd)}.link-row{flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0;display:flex}.link-row select{font:inherit;border:1px solid var(--silver-2);background:#fff;border-radius:5px;padding:5px 8px}.team-card{border:1px solid var(--line);border-left:3px solid var(--red);background:#fff;border-radius:8px;align-items:center;gap:10px;margin:6px 0;padding:8px 12px;font-size:13px;display:flex}.team-card .who{font-weight:700}.step-pager{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:7px 12px;display:flex}.step-pager .pillbtn:disabled{opacity:.4;cursor:default}.step-pager-label{color:var(--ink-soft);font-size:12.5px;font-weight:700}.admin-panel .lead{color:var(--ink-soft);max-width:760px;margin:6px 0 18px;font-size:14px}.admin-panel .lead b{color:var(--ink)}.pillbtn.due{background:var(--red);color:#fff;border-color:var(--red);font-weight:700}.pillbtn.due:hover{background:var(--red-dark)}.month-tabs{flex-wrap:wrap;gap:8px;margin:10px 0 18px;display:flex}.mtab{text-align:left;border:1px solid var(--line);cursor:pointer;font:inherit;color:var(--ink);background:#fff;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;line-height:1.2;display:flex}.mtab:hover:not(:disabled){background:#fafafa}.mtab:disabled{opacity:.5;cursor:not-allowed}.mtab.sel{border-color:var(--red);background:var(--tint)}.mtab-n{color:#999;background:#eee;border:2px solid #ddd;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:12px;font-weight:800;display:grid}.mtab.done .mtab-n{background:var(--done);color:#fff;border-color:var(--done)}.mtab.current .mtab-n{color:var(--red);border-color:var(--red);background:#fff}.role-pill.normal{color:var(--ink-soft);border-color:var(--silver-2);background:#eef0f3}.users-table td.actions-cell{text-align:left;white-space:nowrap}.users-table td.actions-cell .pillbtn{margin-right:6px}.pw-notice{background:var(--amber);border:1px solid var(--amber-bd);color:#5b4a00;border-radius:8px;margin:10px 0;padding:10px 13px;font-size:13px;line-height:1.5}.linkbtn{color:var(--red);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 2px;text-decoration:underline}.auth-wrap{background:var(--paper);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{border:1px solid var(--line);border-top:4px solid var(--red);text-align:left;background:#fff;border-radius:12px;width:100%;max-width:380px;padding:30px 28px 26px;box-shadow:0 8px 30px #0000001a}.auth-logo{width:auto;height:54px;margin:0 auto 14px;display:block}.auth-card h1{color:var(--ink);text-align:center;margin:0;font-size:21px;font-weight:800}.auth-sub{color:var(--ink-soft);text-align:center;margin:4px 0 18px;font-size:13.5px}.auth-field{margin-bottom:14px;display:block}.auth-field span{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.3px;margin-bottom:5px;font-size:12px;font-weight:700;display:block}.auth-field input{width:100%;font:inherit;border:1px solid var(--silver-2);color:var(--ink);background:#fff;border-radius:7px;padding:9px 11px}.auth-field input:focus{outline:2px solid var(--red);border-color:var(--red)}.auth-err{background:var(--chip-red-bg);border:1px solid var(--chip-red-bd);color:var(--bad);border-radius:7px;margin-bottom:14px;padding:9px 12px;font-size:13px}.auth-btn{width:100%;margin-top:4px}.auth-actions{gap:10px;margin-top:6px;display:flex}.auth-actions .auth-btn{flex:1}.modal-backdrop{z-index:50;background:#28282873;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{width:100%;max-width:380px}.modal .auth-card{box-shadow:0 12px 40px #00000040}.cal td.off{color:#b0b6bf;background:#eceef1}.cal-legend .sw.off{background:#eceef1;border:1px solid #d5d9df}.workdays{white-space:nowrap;align-items:center;gap:2px;display:inline-flex}.workdays .wd{font:inherit;border:1px solid var(--silver-2);cursor:pointer;border-radius:4px;width:20px;height:22px;padding:0;font-size:11px;font-weight:700}.workdays .wd.w1{color:var(--ink);background:#fff}.workdays .wd.w05{color:var(--ink);background:linear-gradient(135deg,#fff 0 50%,#e6e9ee 50% 100%)}.workdays .wd.w0{color:#b0b6bf;background:#eceef1;text-decoration:line-through}.workdays.is-default .wd{opacity:.55}.cal-month th,.cal-month td{min-width:24px;padding:5px 2px;font-size:11px}.cal-month th.l,.cal-month td.l{min-width:150px;padding:6px 8px;font-size:12.5px}.cal-month td.tot{min-width:54px;font-weight:700}
