:root{--primary:#fcf8f8;--secondary:#fbefef;--highlight:#f9dfdf;--cta:#f66060;--bg:var(--primary);--surface:var(--secondary);--surface-2:var(--highlight);--text:#000;--muted:#450d5f;--border:var(--secondary);--brand:var(--cta);--brand-ink:#fff;--brand-soft:var(--highlight);--good:#041c2d;--good-soft:#95f289;--bad:#4a0e4d;--bad-soft:#ef7878;--warn:#f90505;--warn-soft:var(--highlight);--radius:8px;--sans:system-ui, "Segoe UI", Roboto, "Noto Sans", sans-serif;--mono:ui-monospace, "SF Mono", Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:15px/1.45 var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}:root[data-theme=dark]{--primary:#e11a45;--secondary:#e3afc9;--highlight:#efecd7;--cta:#2b2509;--bg:var(--primary);--surface:var(--secondary);--surface-2:var(--highlight);--text:#020202;--muted:#1f2921;--border:var(--secondary);--brand:var(--cta);--brand-ink:#fff;--brand-soft:var(--highlight);--good:#140e4cfe;--good-soft:#abe887cb;--bad:#511161;--bad-soft:#dc6b6b;--warn:var(--cta);--warn-soft:var(--highlight);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:var(--brand)}h1,h2,h3{margin:0;line-height:1.2}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:var(--mono);font-size:.9em}.pad{padding:16px}.page{flex-direction:column;height:100svh;display:flex}.topbar{background:var(--primary);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:16px;padding:8px 16px;display:flex}.brand{color:var(--brand);white-space:nowrap;font-weight:700;text-decoration:none}.theme-toggle{white-space:nowrap}.topbar-title{font-size:1.05rem;font-weight:600}.topbar-extra{flex:1;align-items:center;gap:8px;display:flex}.topbar-user{color:var(--muted);align-items:center;gap:8px;font-size:.85rem;display:flex}.topbar-user span{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.split{flex:1;grid-template-rows:minmax(0,3fr) minmax(0,1fr);min-height:0;display:grid}.split-top{padding:12px 16px;overflow:auto}.split-bottom{background:var(--surface);border-top:2px solid var(--border);padding:8px 16px;overflow:auto}@media (width<=700px){.split{grid-template-rows:minmax(0,3fr) minmax(0,2fr)}}.home{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:28px;padding:24px 16px;display:flex}.home-title{color:var(--brand);letter-spacing:-.02em;font-size:clamp(2rem,6vw,3.2rem)}.home-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;width:min(1000px,100%);display:grid}.home-grid.two{width:min(560px,100%)}.home-card{background:var(--surface);border:1px solid var(--border);min-height:120px;color:var(--text);border-radius:12px;flex-direction:column;gap:6px;padding:22px 18px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}a.home-card:hover{border-color:var(--brand);transform:translateY(-2px)}.home-card-title{color:var(--brand);font-size:1.25rem;font-weight:700}.home-card-text{color:var(--muted);font-size:.9rem}.home-card.disabled{opacity:.55}.btn{font:inherit;border-radius:var(--radius);cursor:pointer;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:7px 14px}.btn:hover:not(:disabled){border-color:var(--brand)}.btn:disabled{opacity:.6;cursor:default}.btn.primary{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);min-width:110px;font-weight:600}.btn.ghost{background:0 0}.btn.danger{color:var(--bad);border-color:var(--bad);background:0 0}.btn.small{padding:3px 9px;font-size:.82rem}input,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;min-width:0;padding:6px 8px}input:focus,select:focus{outline:2px solid var(--brand);outline-offset:-1px}input[aria-invalid=true]{border-color:var(--bad)}input:disabled,select:disabled{background:var(--surface-2);color:var(--muted)}.date-field{align-items:stretch;gap:4px;display:inline-flex;position:relative}.date-field input[type=text]{flex:1;min-width:0}.date-pick-btn{border:1px solid var(--border);background:var(--surface);width:30px;color:var(--muted);cursor:pointer;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.date-pick-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.date-pick-btn:disabled{opacity:.6;cursor:default}.date-pick-hidden{opacity:0;pointer-events:none;border:0;width:0;height:0;padding:0;position:absolute}.entry{flex-direction:column;gap:6px;display:flex}.entry-head{flex-wrap:wrap;align-items:center;gap:12px;min-height:26px;display:flex}.form-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-items:start;gap:8px 10px;display:grid}.field{flex-direction:column;gap:3px;display:flex}.field.wide{grid-column:span 2}.field-label{color:var(--muted);font-size:.78rem;font-weight:600}.field-error{color:var(--bad);font-size:.75rem}.field.check{cursor:pointer;flex-direction:row;align-self:end;align-items:center;gap:8px;height:34px;font-weight:600}.field.check input{width:18px;height:18px}.entry-actions{grid-column:span 2;align-self:end;gap:8px;display:flex}.entry-actions .btn{height:34px}@media (width<=480px){.field.wide,.entry-actions{grid-column:1/-1}}.field.history{border:1px solid var(--border);border-radius:var(--radius);grid-column:1/-1;min-width:0;margin:0;padding:6px 10px 8px}.field.history legend{padding:0 4px}.history-row{grid-template-columns:minmax(0,170px) minmax(0,200px) auto;align-items:center;gap:4px 8px;display:grid}.history-first{padding-left:2px}.history-error{grid-column:1/-1}.history-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:2px;display:flex}@media (width<=480px){.history-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}}.msg{border-radius:6px;align-items:center;gap:8px;margin:0;padding:4px 10px;font-size:.87rem;display:inline-flex}.msg.ok{background:var(--good-soft);color:var(--good)}.msg.error{background:var(--bad-soft);color:var(--bad)}.msg.info{background:var(--brand-soft);color:var(--brand)}.msg-x{color:inherit;cursor:pointer;background:0 0;border:0;font-size:1.1rem;line-height:1}.list-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.search{width:min(320px,100%)}.inline-check{color:var(--muted);align-items:center;gap:6px;font-size:.87rem;display:inline-flex}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.9rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:7px 10px}.table th{background:var(--surface-2);text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.78rem;position:sticky;top:0}.table tbody tr:last-child td{border-bottom:0}.table tfoot td{background:var(--surface-2);border-bottom:0;font-weight:700}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table td.note{white-space:normal;min-width:160px;max-width:320px;color:var(--muted)}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--brand-soft)}.table tr.selected td{background:var(--brand-soft);box-shadow:inset 0 0 0 9999px #0000}.table tr.selected td:first-child{box-shadow:inset 3px 0 0 var(--brand)}.table tr.archived td{opacity:.5;text-decoration:line-through}.table.compact th,.table.compact td{padding:5px 8px}.neg{color:var(--bad);font-weight:600}.empty{color:var(--muted);text-align:center;border:1px dashed var(--border);border-radius:var(--radius);padding:24px}.load-more{text-align:center;padding:12px}.tag{border-radius:999px;padding:1px 8px;font-size:.78rem;font-weight:600;display:inline-block}.tag.ok{background:var(--good-soft);color:var(--good)}.tag.due{background:var(--bad-soft);color:var(--bad)}.tag.warn{background:var(--warn-soft);color:var(--warn)}.tabs{background:var(--surface-2);border-radius:var(--radius);gap:2px;padding:3px;display:inline-flex}.tab{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 14px;font-weight:600}.tab.active{background:var(--surface);color:var(--brand);box-shadow:0 1px 2px #0000001f}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px}.panel>summary{cursor:pointer;padding:8px 12px}.panel-body{flex-direction:column;gap:8px;padding:0 12px 12px;display:flex}.report{flex-direction:column;flex:1;gap:12px;padding:14px 16px 32px;display:flex;overflow:auto}.report section{flex-direction:column;gap:12px;display:flex}.filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filters input{width:170px}.timeframe{flex-wrap:wrap;gap:6px;display:inline-flex}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:2px;padding:12px 14px;display:flex}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem;font-weight:600}.stat-value{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:700}.stat-hint{color:var(--muted);font-size:.8rem}.stat.good .stat-value{color:var(--good)}.stat.bad .stat-value{color:var(--bad)}.section-title{margin-top:8px;font-size:1rem}.statement-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:12px;display:grid}.statement{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.statement tr.indent td:first-child{color:var(--muted);padding-left:28px}.statement tr.strong td{font-weight:700}.statement tr.pos td{color:var(--good)}.statement tr.neg td{color:var(--bad)}.footnote{max-width:80ch}.login{place-items:center;min-height:100svh;padding:16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;width:min(380px,100%);padding:24px;display:flex}.login-card h1{color:var(--brand)}.or{text-align:center;color:var(--muted);font-size:.85rem}.uid{background:var(--surface-2);word-break:break-all;font-family:var(--mono);border-radius:6px;padding:8px;display:block}.table.sheet thead tr.group th{border-bottom:0;padding-bottom:0;position:static}.table.sheet thead tr.group th.grp{text-align:center;color:var(--brand);border-bottom:2px solid var(--brand)}.cal-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.cal-title{text-align:center;min-width:150px;font-size:1.05rem}.calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.cal-head{color:var(--muted);text-transform:uppercase;text-align:center;padding:2px 0;font-size:.75rem;font-weight:700}.cal-day{font:inherit;color:var(--text);text-align:left;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:4px;min-height:56px;padding:6px 8px;display:flex}.cal-day:hover{border-color:var(--brand)}.cal-day.today .cal-num{color:var(--brand);text-decoration:underline}.cal-day.future{background:var(--surface-2)}.cal-day.off{opacity:.45;cursor:default}.cal-day.selected{border-color:var(--brand);box-shadow:inset 0 0 0 2px var(--brand);background:var(--brand-soft)}.cal-num{font-weight:700}.cal-day.cal-mark-P{background:var(--good-soft);border-color:var(--good)}.cal-day.cal-mark-A{background:var(--warn-soft);border-color:var(--warn)}.cal-day.cal-mark-L{background:var(--bad-soft);border-color:var(--bad)}.cal-mark-label{font-size:.72rem;font-weight:700}.cal-mark-P .cal-mark-label{color:var(--good)}.cal-mark-A .cal-mark-label{color:var(--warn)}.cal-mark-L .cal-mark-label{color:var(--bad)}@media (width<=600px){.calendar{gap:3px}.cal-day{min-height:44px;padding:4px}}.driver-picker{flex-direction:column;gap:10px;display:flex}.driver-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;display:grid}.driver-row{font:inherit;text-align:left;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.driver-row:hover{border-color:var(--brand)}.driver-row.archived{opacity:.65}.driver-row-name{font-weight:600}.day-actions{flex-wrap:wrap;gap:8px;display:flex}.btn.quick{min-width:120px;font-weight:600}.btn.quick.present.active{background:var(--good-soft);border-color:var(--good);color:var(--good)}.btn.quick.absent.active{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.btn.quick.lop.active{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}.tag.outside{margin-left:6px;padding:0 6px;font-size:.7rem}.entry>.entry-actions{align-self:flex-start}
