:root{--bg:#f4f6f5;--surface:#fff;--border:#d9e0dc;--text:#17201c;--muted:#5d6b64;--primary:#0b5d4a;--primary-hover:#063d31;--primary-text:#fff;--primary-tint:#e6f5f0;--accent-text:#7a4a00;--accent-bg:#fff4e0;--error:#b3261e;--error-bg:#fdecea;--warning-bg:#fff4d6;--success:#0b5d4a;--success-bg:#e3f3eb;--font-brand:"Space Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.5rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 2px #17201c0f, 0 1px 3px #17201c14;--shadow-md:0 4px 10px #17201c14, 0 2px 4px #17201c0f;--bp-mobile-max:640px;font-family:var(--font-body);font-size:var(--text-base);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.5}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#101513;--surface:#1a211e;--border:#2e3733;--text:#eaf1ee;--muted:#9fb0a8;--primary:#4fbe95;--primary-hover:#6ecfab;--primary-text:#06251c;--primary-tint:#16241f;--accent-text:#e3a548;--accent-bg:#3a2d16;--error:#f2b8b5;--error-bg:#3a1f1d;--warning-bg:#3a331d;--success:#8fd4b4;--success-bg:#1c3329;--shadow-sm:0 1px 2px #0000004d, 0 1px 3px #00000059;--shadow-md:0 4px 10px #00000059, 0 2px 4px #0000004d}}:root[data-theme=dark]{--bg:#101513;--surface:#1a211e;--border:#2e3733;--text:#eaf1ee;--muted:#9fb0a8;--primary:#4fbe95;--primary-hover:#6ecfab;--primary-text:#06251c;--primary-tint:#16241f;--accent-text:#e3a548;--accent-bg:#3a2d16;--error:#f2b8b5;--error-bg:#3a1f1d;--warning-bg:#3a331d;--success:#8fd4b4;--success-bg:#1c3329;--shadow-sm:0 1px 2px #0000004d, 0 1px 3px #00000059;--shadow-md:0 4px 10px #00000059, 0 2px 4px #0000004d}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3{font-family:var(--font-brand);letter-spacing:-.01em;color:var(--text)}h1{font-size:var(--text-3xl);margin:0 0 var(--space-2)}h2{font-size:var(--text-xl);margin:var(--space-5) 0 var(--space-3)}h3{font-size:var(--text-lg);margin:var(--space-4) 0 var(--space-2)}button{font:inherit;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;min-height:44px;padding:.7rem 1.1rem;transition:filter .15s,transform 50ms}button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text);font-weight:600}button:hover:not(:disabled){filter:brightness(.96)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}button.primary:hover:not(:disabled){filter:none;background:var(--primary-hover);border-color:var(--primary-hover)}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.brand{font-family:var(--font-brand);flex-direction:column;display:flex}.brand span{font-size:var(--text-sm);color:var(--muted);font-family:var(--font-body)}.app-nav{gap:var(--space-1);flex-wrap:wrap;display:flex}.app-nav a{border-radius:var(--radius-sm);color:var(--muted);font-size:var(--text-sm);padding:.45rem .8rem;text-decoration:none}.app-nav a.active{background:var(--bg);color:var(--text);font-weight:600}.session{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--muted);display:flex}.theme-toggle{background:var(--bg);border:1px solid var(--border);border-radius:999px;width:50px;height:26px;min-height:0;padding:0;transition:border-color .15s;position:relative}.theme-toggle:hover{border-color:var(--primary)}.theme-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.theme-toggle-thumb{background:var(--surface);width:20px;height:20px;box-shadow:var(--shadow-sm);color:var(--primary);border-radius:999px;justify-content:center;align-items:center;transition:left .2s;display:flex;position:absolute;top:2px;left:2px}.theme-toggle[aria-checked=true] .theme-toggle-thumb{left:26px}.login-page .theme-toggle{top:var(--space-4);right:var(--space-4);z-index:10;position:fixed}.tab-bar{z-index:20;background:var(--surface);border-top:1px solid var(--border);box-shadow:var(--shadow-md);padding-bottom:env(safe-area-inset-bottom,0);position:fixed;bottom:0;left:0;right:0}.tab-bar-list{margin:0;padding:0;list-style:none;display:flex}.tab-bar-item{flex:1 1 0}.tab-bar-link{min-height:56px;padding:var(--space-1) var(--space-1);color:var(--muted);font-size:var(--text-xs);flex-direction:column;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.tab-bar-link.active{color:var(--primary);font-weight:600}.tab-bar-link svg{width:22px;height:22px}.app-main{width:100%;max-width:720px;padding:var(--space-4) var(--space-4) var(--space-5);margin:0 auto}@media (width<=640px){.app-main{padding-bottom:calc(56px + var(--space-5))}}.login-page{flex-direction:column;max-width:360px;margin:3rem auto 0;display:flex}.page-header{gap:var(--space-4);justify-content:space-between;align-items:flex-start;display:flex}.subtitle{margin:0 0 var(--space-4);color:var(--muted)}.camera,.capture-review{gap:var(--space-4);flex-direction:column;display:flex}.camera-viewport{aspect-ratio:4/3;border-radius:var(--radius-lg);background:#0d1110;place-items:center;display:grid;position:relative;overflow:hidden}.camera-viewport video{object-fit:cover;width:100%;height:100%;display:none;position:absolute;inset:0}.camera-viewport.is-on video{display:block}.camera-placeholder{color:#b8c4be;padding:var(--space-4);text-align:center;margin:0}.camera-guide{aspect-ratio:3;border-radius:var(--radius-sm);border:4px solid #ffd23f;width:70%;position:absolute;box-shadow:0 0 0 2000px #00000059,0 0 12px #0009}.camera-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.camera-actions button{flex:10rem}.capture-review img{border-radius:var(--radius-lg);object-fit:contain;background:#0d1110;width:100%;max-height:50vh}@media (width<=640px){.camera .camera-actions,.capture-review .camera-actions{bottom:calc(56px + var(--space-3));background:var(--bg);padding-top:var(--space-2);margin-bottom:0;position:sticky}.camera .camera-actions .primary,.capture-review .camera-actions .primary{font-size:var(--text-lg);flex-basis:100%;padding:1rem}}.message{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);margin:0;padding:.75rem 1rem}.message.error{background:var(--error-bg);color:var(--error);border-color:#0000}.message.warning{background:var(--warning-bg);border-color:#0000}.message.review{background:var(--accent-bg);color:var(--accent-text);border-color:#0000}.message strong{letter-spacing:.04em;color:var(--primary);margin-bottom:.15rem;display:inline-block}.ocr-result{gap:var(--space-1);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.ocr-result .label,.ocr-result .meta{color:var(--muted);font-size:var(--text-sm)}.ocr-result .message{margin-top:var(--space-2)}.ocr-result .plate{font-size:var(--text-2xl);color:var(--primary);background:var(--primary-tint);border-radius:var(--radius-sm);align-self:flex-start;margin:.15rem 0;padding:.15em .4em}.ocr-result details{margin-top:var(--space-2);color:var(--muted);overflow-wrap:anywhere}.verification{margin-top:var(--space-2);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);flex-direction:column;gap:.15rem;padding:.75rem 1rem;display:flex}.verification span{font-size:var(--text-sm)}.verification .source{color:var(--muted)}.verification .hint{font-size:var(--text-xs);color:var(--muted);font-style:italic}.verification.tone-ok{background:var(--success-bg);color:var(--success);border-color:#0000}.verification.tone-warning{background:var(--warning-bg);border-color:#0000}.verification.tone-danger{background:var(--error-bg);color:var(--error);border-color:#0000}.verification.tone-review{background:var(--accent-bg);color:var(--accent-text);border-color:#0000}.plate{font-family:var(--font-mono);letter-spacing:.08em}button.link{min-height:0;color:var(--primary);background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.manual-entry-link{text-align:center;color:var(--muted);font-size:var(--text-sm);margin:0}.form,.manual-entry{padding:var(--space-5);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);flex-direction:column;gap:.65rem;display:flex}.form label,.manual-entry label{font-weight:600}.form input:not([type=file]):not([type=checkbox]),.form select,.manual-entry input{font:inherit;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);color:var(--text);min-height:44px;padding:.75rem 1rem}.form input[type=file]{font:inherit;color:var(--muted);padding:.35rem 0}.manual-entry input{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.form input:focus,.form select:focus,.manual-entry input:focus{outline:2px solid var(--primary);outline-offset:1px}.password-field{display:flex;position:relative}.password-field input{flex:1;padding-right:5.5rem}.password-field .toggle-password{background:var(--surface);border:1px solid var(--border);color:var(--muted);cursor:pointer;font-family:var(--font-body);font-size:var(--text-xs);border-radius:999px;align-items:center;gap:4px;min-height:0;padding:.3rem .6rem .3rem .5rem;font-weight:600;line-height:1;display:inline-flex;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.password-field .toggle-password:hover{color:var(--primary);border-color:var(--primary)}.password-field .toggle-password:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.form .hint,.manual-entry .hint{color:var(--muted);font-size:var(--text-sm);margin:0}.form .camera-actions,.manual-entry .camera-actions{margin-top:var(--space-2)}.form label:has(input[type=checkbox]){align-items:center;gap:var(--space-2);font-weight:400;display:flex}.schedule-form{font-size:var(--text-base);gap:.85rem}.schedule-form .label{margin:var(--space-2) 0 -.15rem;font-weight:600;display:block}.form-section{margin:var(--space-2) 0 -.25rem;border-top:1px solid var(--border);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-top:1.1rem}.form-section:first-of-type{border-top:none;padding-top:0}.field-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.field-row-item{flex-direction:column;flex:10rem;gap:.35rem;display:flex}.field-row-item-narrow{flex:0 6rem}.cargo-item-row{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);flex-wrap:wrap;align-items:flex-end;gap:.6rem;padding:.85rem;display:flex}.cargo-item-row>label{flex-basis:100%}.cargo-item-row>input,.cargo-item-row>select{flex:10rem}.demo-samples{gap:var(--space-3);margin:0 0 var(--space-4);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.demo-sample{gap:var(--space-2);padding:var(--space-2);text-align:left;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);flex-direction:column;min-height:44px;display:flex}.demo-sample:hover:not(:disabled){border-color:var(--primary)}.demo-sample img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-sm);background:#0d1110;width:100%}.demo-sample span{font-size:var(--text-sm);color:var(--muted)}.table-scroll{border-radius:var(--radius-lg);overflow-x:auto}.checkins{border-collapse:collapse;background:var(--surface);border-radius:var(--radius-lg);width:100%;min-width:480px;overflow:hidden}.checkins th,.checkins td{text-align:left;border-bottom:1px solid var(--border);padding:.7rem .9rem}.checkins th{font-size:var(--text-sm);color:var(--muted);font-weight:600}.checkins tr:last-child td{border-bottom:none}@media (width<=640px){.table-scroll{overflow-x:visible}.checkins{min-width:0;display:block}.checkins thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.checkins tbody{gap:var(--space-3);flex-direction:column;display:flex}.checkins tr{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-sm);display:block}.checkins tr:last-child td{border-bottom:1px solid var(--border)}.checkins td{justify-content:space-between;align-items:baseline;gap:var(--space-3);border-bottom:1px dashed var(--border);text-align:right;overflow-wrap:anywhere;padding:.4rem 0;display:flex}.checkins td:last-child{border-bottom:none}.checkins td:before{content:attr(data-label);color:var(--muted);font-weight:600;font-size:var(--text-sm);text-align:left;margin-right:var(--space-3)}.checkins td:empty:before{content:none}}.checkins-trend{margin:0 0 var(--space-4);position:relative}.checkins-trend-svg{touch-action:none;width:100%;height:auto;display:block}.checkins-trend-grid{stroke:var(--border);stroke-width:1px}.checkins-trend-axis-label{fill:var(--muted);font-size:10px}.checkins-trend-area{fill:var(--primary-tint);stroke:none}.checkins-trend-line{fill:none;stroke:var(--primary);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.checkins-trend-point{fill:var(--primary);stroke:var(--surface);stroke-width:2px}.checkins-trend-crosshair{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3}.checkins-trend-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);pointer-events:none;white-space:nowrap;z-index:1;flex-direction:column;gap:2px;display:flex;position:absolute;transform:translate(-50%,-125%)}
