:root{--ground:#f2f4f1;--card:#fff;--ink:#1b2a2e;--muted:#5c6b70;--line:#d7dedc;--blue:#2f5da8;--blue-soft:#dfe7f5;--yellow:#f2c14e;--amber:#b3541e;--amber-soft:#f8e9dc;--red:#a8322d;--red-soft:#f6dfde;--radius:14px;--nav-h:64px;color:var(--ink);background:var(--ground);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,Segoe UI,Roboto,sans-serif;font-size:18px;line-height:1.4}*{box-sizing:border-box}body{background:var(--ground);min-height:100dvh;margin:0}#app{max-width:520px;padding:20px 20px calc(var(--nav-h) + env(safe-area-inset-bottom) + 24px);margin:0 auto}h1,h2,h3,p{margin:0}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:600}.screen-title{margin-bottom:18px;font-size:1.6rem;font-weight:700}.hero{margin:24px 0 8px}.hero-number{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:5.5rem;font-weight:700;line-height:1}.hero-number.warn{color:var(--amber)}.hero-number.danger{color:var(--red)}.hero-label{margin-top:4px;font-size:1.25rem;font-weight:500}.hero-detail{color:var(--muted);margin-top:6px}.window{grid-template-columns:repeat(30,1fr);gap:4px;margin:22px 0 6px;display:grid}.window span{aspect-ratio:1;background:var(--line);border-radius:50%}.window span.in{background:var(--blue)}.window span.today{background:var(--yellow);box-shadow:0 0 0 2px var(--ink) inset}.window span.in.today{background:var(--yellow)}.window-caption{color:var(--muted);justify-content:space-between;font-size:.8rem;display:flex}.legend{color:var(--muted);gap:14px;margin-top:10px;font-size:.85rem;display:flex}.legend i{vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-top:18px;padding:18px}.card.warn{border-color:var(--amber);background:var(--amber-soft)}.card.danger{border-color:var(--red);background:var(--red-soft)}.card h2{margin-bottom:8px;font-size:1.05rem;font-weight:600}.card .big{margin-top:4px;font-size:1.6rem;font-weight:700}.card p+p{margin-top:6px}.status-line{justify-content:space-between;gap:12px;display:flex}.status-line b{font-variant-numeric:tabular-nums}button{font:inherit;color:inherit;border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:12px;min-height:48px;padding:10px 18px}button.primary{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}button.danger-text{color:var(--red);background:0 0;border-color:#0000}button.full{width:100%}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}.row-actions{gap:10px;margin-top:14px;display:flex}.row-actions button{flex:1}label.field{margin-top:14px;display:block}label.field span{color:var(--muted);margin-bottom:4px;font-size:.9rem;display:block}input[type=date],input[type=number]{font:inherit;border:1px solid var(--line);background:var(--card);width:100%;min-height:48px;color:var(--ink);appearance:none;border-radius:10px;padding:8px 12px}input:disabled{opacity:.5}label.check{align-items:center;gap:12px;min-height:44px;margin-top:14px;display:flex}label.check input{width:24px;height:24px;accent-color:var(--blue)}.error{color:var(--red);margin-top:10px;font-weight:500}.result{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.result:empty{display:none}label.field+button{margin-top:16px}.result.bad{color:var(--red)}.trip-list{margin:18px 0 0;padding:0;list-style:none}.trip{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;width:100%;margin-bottom:10px;padding:14px 16px;display:flex}.trip.violation{border-color:var(--red);background:var(--red-soft)}.trip .dates{font-weight:500;display:block}.trip .meta{color:var(--muted);margin-top:2px;font-size:.85rem;display:block}.trip .meta .tag{color:var(--blue);font-weight:600}.trip.violation .meta .tag{color:var(--red)}.trip .count{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}.empty{color:var(--muted);margin-top:18px}.nav{height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:1px solid var(--line);display:flex;position:fixed;bottom:0;left:0;right:0}.nav button{color:var(--muted);min-height:var(--nav-h);background:0 0;border:0;border-radius:0;flex:1;font-weight:600}.nav button[aria-current=page]{color:var(--blue);box-shadow:inset 0 3px 0 var(--blue)}.toast{left:50%;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 16px);background:var(--ink);color:#fff;z-index:10;border-radius:12px;max-width:calc(100% - 40px);padding:12px 18px;position:fixed;transform:translate(-50%)}.banner{background:var(--blue-soft);border:1px solid var(--blue);border-radius:var(--radius);align-items:flex-start;gap:12px;margin-bottom:18px;padding:14px;font-size:.95rem;display:flex}.banner p{flex:1}.banner button{min-height:36px;padding:4px 10px}@media (prefers-reduced-motion:no-preference){.toast{animation:.18s ease-out rise}@keyframes rise{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}}
