:root{color-scheme:light dark;font-family:Avenir Next,Segoe UI,sans-serif;--ink: #111;--paper: #f2f2f7;--card: #fff;--muted: #5c5c5c;--yellow: #f5c400;--yellow-soft: #ffe58a;--streak: #ffe8cc;--line: #e4e4ea;--ink-on-light: #111}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:#000;color:var(--ink)}button,input,select{font:inherit;font-size:16px}button{min-height:44px;border:0;border-radius:10px;padding:0 14px;background:var(--yellow);color:var(--ink-on-light);-webkit-text-fill-color:var(--ink-on-light);font-weight:700}button:disabled{opacity:.45}button.secondary{background:transparent;color:var(--yellow);-webkit-text-fill-color:var(--yellow);border:1px solid var(--yellow)}.app{height:100dvh;display:flex;flex-direction:column;max-width:520px;margin:0 auto;background:#000}.top{padding:calc(10px + env(safe-area-inset-top)) 16px 8px;color:#fff;-webkit-text-fill-color:#fff}.top h1,.results-bar h1{margin:0;font-size:1.05rem}.scanner{flex:1;min-height:0;display:flex;flex-direction:column}.stage{position:relative;flex:1;min-height:180px;overflow:hidden;background:#111}video{width:100%;height:100%;object-fit:cover;background:#111}.aim{position:absolute;border:3px solid var(--yellow);border-radius:10px;pointer-events:none;box-shadow:0 0 0 1px #00000073}.aim[hidden]{display:none}.live{position:absolute;left:16px;right:16px;bottom:16px;margin:0;color:var(--yellow);-webkit-text-fill-color:var(--yellow);font-family:ui-monospace,SFMono-Regular,monospace;font-size:1.6rem;font-weight:700;text-shadow:0 1px 2px #000}.sheet{display:flex;flex-direction:column;gap:10px;padding:14px 14px calc(14px + env(safe-area-inset-bottom));background:#000000e0;color:#fff;-webkit-text-fill-color:#fff}.hint,.meta{margin:0;color:var(--muted)}.sheet .hint{color:#ffffffc7;-webkit-text-fill-color:rgb(255 255 255 / 78%);font-size:.9rem}.entry{display:flex;gap:8px}select,input{min-height:44px;border-radius:8px;border:0;padding:0 10px;background:#fff;color:var(--ink-on-light);-webkit-text-fill-color:var(--ink-on-light);caret-color:var(--ink-on-light);color-scheme:light}.sheet select,.sheet input,.sheet button:not(.secondary){color:var(--ink-on-light);-webkit-text-fill-color:var(--ink-on-light)}input::placeholder{color:#6b6b6b;-webkit-text-fill-color:#6b6b6b;opacity:1}input::-webkit-input-placeholder{color:#6b6b6b;-webkit-text-fill-color:#6b6b6b;opacity:1}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,select:-webkit-autofill{-webkit-text-fill-color:var(--ink-on-light);caret-color:var(--ink-on-light);box-shadow:inset 0 0 0 100px #fff}option{background:#fff;color:var(--ink-on-light);-webkit-text-fill-color:var(--ink-on-light)}select{width:76px}select.confirm{outline:3px solid var(--yellow)}input{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,monospace;text-transform:uppercase}.status{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;text-align:center;background:var(--paper);color:var(--ink);-webkit-text-fill-color:var(--ink)}.results{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);-webkit-text-fill-color:var(--ink)}.results-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:#fff;color:var(--ink-on-light);-webkit-text-fill-color:var(--ink-on-light);border-bottom:1px solid var(--line)}.results-body{overflow:auto;padding:16px 16px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}.plate{margin:0;font-family:ui-monospace,SFMono-Regular,monospace;font-size:2.4rem;font-weight:800}.fines,.streak,.year-costs{padding:14px;border-radius:12px;background:var(--card)}.total{margin:0;font-size:2.2rem;font-weight:800}.money-row{display:flex;gap:12px;margin-top:8px}.money-row p{margin:0;display:flex;flex-direction:column}.money-row span,.violations span{color:var(--muted);font-size:.85rem}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips span{background:var(--yellow-soft);color:var(--ink-on-light);-webkit-text-fill-color:var(--ink-on-light);border-radius:999px;padding:6px 10px;font-weight:700;font-size:.9rem}.boroughs,.violations{list-style:none;margin:8px 0 0;padding:0}.boroughs{display:flex;flex-direction:column;gap:6px;margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--card)}.boroughs li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;font-size:.95rem}.boroughs strong{font-variant-numeric:tabular-nums}.violations li{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-top:1px solid var(--line)}.violations li span{display:flex;gap:8px;flex-wrap:wrap}.streak{background:var(--streak);color:var(--ink-on-light);-webkit-text-fill-color:var(--ink-on-light);display:flex;flex-direction:column;gap:8px}.streak p,.streak h2{margin:0}.streak-lead{font-size:1.05rem;font-weight:800}.streak *,.chips span *{color:var(--ink-on-light);-webkit-text-fill-color:var(--ink-on-light)}.year-chart{display:grid;grid-template-columns:2.6rem minmax(0,1fr);grid-template-rows:132px auto;column-gap:8px;row-gap:4px;margin-top:12px}.y-axis{grid-column:1;grid-row:1;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;font-size:.68rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted);-webkit-text-fill-color:var(--muted)}.year-bars,.year-labels{list-style:none;margin:0;padding:0;display:flex;gap:3px;min-width:0}.year-bars{grid-column:2;grid-row:1;align-items:stretch;border-bottom:1px solid var(--line)}.year-bars li{flex:1;min-width:0;display:flex;justify-content:center}.bar-track{width:100%;max-width:16px;height:100%;display:flex;flex-direction:column;justify-content:flex-end}.bar{display:block;width:100%;border-radius:3px 3px 0 0;background:var(--yellow)}.year-labels{grid-column:2;grid-row:2}.year-labels li{flex:1;min-width:0;text-align:center}.year-label{font-size:.68rem;font-variant-numeric:tabular-nums;font-weight:700}h2{margin:0;font-size:1.05rem}a{color:#8a5a00;font-weight:700}.new-count{margin:0;font-weight:800}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media(prefers-color-scheme:dark){.status,.results{background:#1c1c1e;color:#f2f2f7;-webkit-text-fill-color:#f2f2f7}.results-bar,.fines,.boroughs,.year-costs{background:#2c2c2e}.results-bar{color:#f2f2f7;-webkit-text-fill-color:#f2f2f7}.meta,.money-row span,.violations span{color:#b0b0b5;-webkit-text-fill-color:#b0b0b5}.results-bar,.violations li,.year-bars{border-color:#3a3a3c}.y-axis{color:#b0b0b5;-webkit-text-fill-color:#b0b0b5}.chips span,.chips span *,.streak,.streak *,button:not(.secondary),select,input,option{color:var(--ink-on-light);-webkit-text-fill-color:var(--ink-on-light)}.results-bar button,.status button:not(.secondary){color:var(--ink-on-light);-webkit-text-fill-color:var(--ink-on-light)}button.secondary{color:var(--yellow);-webkit-text-fill-color:var(--yellow);background:transparent}a{color:#ffd45a;-webkit-text-fill-color:#ffd45a}}
