:root{--bg:#f4f3ef;--surface:#fff;--ink:#1b1f24;--muted:#5d6670;--line:#d9d7cf;--asphalt:#23272d;--accent:#e8a317;--verified:#1b7f3b;--possible:#b26b00;--unknown:#5b6470;--danger:#b42318;--radius:6px;--mono:ui-monospace,"SFMono-Regular","JetBrains Mono",Menlo,monospace;--sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--sans)}a{color:inherit}h1{font-size:1.6rem;margin:0 0 .25rem;letter-spacing:-.01em}h2{font-size:1.15rem;margin:1.6rem 0 .6rem}h3{font-size:1rem;margin:1rem 0 .4rem}.mono,code{font-family:var(--mono);font-size:.82em;word-break:break-all}.muted{color:var(--muted)}.small{font-size:.85rem}.topbar{background:var(--asphalt);color:#fff;border-bottom:4px dashed var(--accent);padding-top:env(safe-area-inset-top);position:-webkit-sticky;position:sticky;top:0;z-index:40}.topbar-inner{max-width:1200px;margin:0 auto;padding:.7rem 16px;display:flex;gap:1.25rem;align-items:center;flex-wrap:wrap}.brand{font-weight:800;font-size:1.15rem;letter-spacing:-.01em;text-decoration:none;display:flex;align-items:baseline;white-space:nowrap}.brand-i,.brand-sub{color:var(--accent)}.brand-sub{font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;margin-left:.45rem}.nav-account{margin-left:auto;display:flex;gap:.8rem;align-items:center;font-size:.85rem}.nav-account a{color:#fff;font-weight:600;text-decoration:none;padding:.3rem 0!important;background:none!important}.nav{flex:1 1;align-items:center}.menu-btn{display:none;margin-left:auto;background:none;border:0;padding:10px 6px;cursor:pointer}.menu-btn span{display:block;width:22px;height:2px;background:#fff;margin:5px 0;border-radius:2px}.linkbtn.dark{color:var(--muted)}.offline-bar{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:var(--danger);color:#fff;text-align:center;padding:.5rem 16px;font-size:.88rem}.install-card{display:flex;gap:.8rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.install-card img{border-radius:11px}.nav{display:flex;gap:.2rem;flex-wrap:wrap}.nav a{text-decoration:none;padding:.3rem .6rem;border-radius:var(--radius);color:#d7dbe0;font-size:.92rem}.nav a.active,.nav a:hover{background:hsla(0,0%,100%,.1);color:#fff}.who{margin-left:auto;display:flex;gap:.4rem;align-items:center;font-size:.8rem;color:#b8bec6}.who a{color:#fff;text-decoration:none;font-weight:600}.linkbtn{background:none;border:0;color:#d7dbe0;cursor:pointer;font:inherit;text-decoration:underline;padding:0}.auth-card{max-width:420px;margin:3rem auto}.who input{width:190px;padding:.25rem .45rem;border-radius:4px;border:1px solid #4a525c;background:#2f353d;color:#fff}main{max-width:1200px;margin:0 auto;padding:1.5rem max(16px,env(safe-area-inset-right)) calc(4rem + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.notice{background:#fff8e6;border:1px solid #f0d58c;padding:.6rem .8rem;border-radius:var(--radius);font-size:.88rem;margin:.8rem 0}.notice.danger{background:#fdecec;border-color:#f2b8b5}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem}.grid{display:grid;grid-gap:1rem;gap:1rem}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.stat .n{font-size:1.9rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .l{color:var(--muted);font-size:.85rem}table{width:100%;border-collapse:collapse;background:var(--surface);font-size:.9rem}td,th{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#faf9f6}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}.kv{display:grid;grid-template-columns:170px 1fr;grid-gap:.35rem .8rem;gap:.35rem .8rem;font-size:.9rem}.kv dt{color:var(--muted)}.kv dd{margin:0}.btn{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--asphalt);background:var(--asphalt);color:#fff;padding:.45rem .85rem;border-radius:var(--radius);font:inherit;font-size:.9rem;cursor:pointer;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.btn.ok{background:var(--verified);border-color:var(--verified)}.btn.no{background:var(--danger);border-color:var(--danger)}.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}form.stack{display:grid;grid-gap:.8rem;gap:.8rem;max-width:640px}label{display:grid;grid-gap:.25rem;gap:.25rem;font-size:.88rem;font-weight:600}label .hint{font-weight:400;color:var(--muted);font-size:.8rem}input,select,textarea{font:inherit;padding:.45rem .55rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff}label.check{display:flex;gap:.5rem;align-items:flex-start;font-weight:400}form.stack,label{grid-template-columns:minmax(0,1fr);min-width:0}label>input:not([type=checkbox]):not([type=radio]),label>select,label>textarea{width:100%;min-width:0;max-width:100%}.row>label{min-width:0}.badge{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.12rem .45rem;border-radius:3px;color:#fff;background:var(--unknown);white-space:nowrap}.badge.confirmed,.badge.processed,.badge.verified{background:var(--verified)}.badge.pending,.badge.possible,.badge.processing,.badge.queued{background:var(--possible)}.badge.unknown{background:var(--unknown)}.badge.failed,.badge.rejected{background:var(--danger)}.badge.synthetic{background:#7a2ea0}.badge.outline{background:transparent;color:var(--ink);border:1px solid var(--line)}.match{border-left:6px solid var(--unknown)}.match.verified{border-left-color:var(--verified)}.match.possible{border-left-color:var(--possible)}.match ul{margin:.3rem 0;padding-left:1.2rem}.review-card{display:grid;grid-template-columns:minmax(280px,480px) 1fr;grid-gap:1rem;gap:1rem}.obs img,.review-card img{width:100%;border-radius:4px;border:1px solid var(--line);background:#000}.map{height:560px;border-radius:var(--radius);border:1px solid var(--line)}.legend{display:flex;gap:1rem;font-size:.85rem;margin:.5rem 0;flex-wrap:wrap}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.3rem;vertical-align:middle}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--line);margin:1rem 0;flex-wrap:wrap}.tabs button{background:none;border:0;padding:.5rem .8rem;font:inherit;cursor:pointer;border-bottom:3px solid transparent}.tabs button.active{border-bottom-color:var(--accent);font-weight:600}.error{color:var(--danger);font-size:.9rem}img{max-width:100%}.btn,button,input,select,textarea{touch-action:manipulation}@media (max-width:900px){.map{height:60vh;min-height:320px}.grid.cols-2{grid-template-columns:1fr}.review-card{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.review-card .kv{grid-template-columns:105px minmax(0,1fr)}}@media (max-width:760px){body,html{font-size:16px}h1{font-size:1.35rem}main{padding-top:1rem}.topbar-inner{gap:.5rem;padding-top:.55rem;padding-bottom:.55rem}.menu-btn{display:block}.nav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;padding:.3rem 0 .6rem}.nav.open{display:flex}.nav a{padding:.8rem .6rem;font-size:1rem;border-radius:0;border-top:1px solid hsla(0,0%,100%,.08)}.nav-account{margin:.4rem 0 0;padding:.8rem .6rem 0;border-top:1px solid hsla(0,0%,100%,.15);justify-content:space-between;font-size:1rem}.btn{min-height:46px;padding:.6rem 1rem;font-size:1rem;justify-content:center}input,select,textarea{min-height:46px;font-size:16px}input[type=checkbox]{min-height:auto;width:22px;height:22px}form.stack .btn{width:100%}.row>.btn{flex:1 1 auto}.kv{grid-template-columns:1fr;gap:.1rem}.kv dt{margin-top:.45rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.grid.cols-4{grid-template-columns:1fr 1fr;gap:.6rem}.stat .n{font-size:1.5rem}.card{padding:.85rem}.review-card{grid-template-columns:1fr}.review-actions{position:-webkit-sticky;position:sticky;bottom:calc(.6rem + env(safe-area-inset-bottom));z-index:5;background:var(--surface);padding:.5rem;margin:.6rem -.5rem 0;border-radius:10px;box-shadow:0 4px 18px rgba(0,0,0,.18)}.table-wrap{border:0;overflow:visible}.table-wrap table{background:none}.table-wrap table,.table-wrap tbody,.table-wrap td,.table-wrap tr{display:block;width:100%}.table-wrap thead{display:none}.table-wrap tr{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:.6rem;padding:.4rem .2rem}.table-wrap td{border:0;padding:.3rem .7rem}.table-wrap td:empty{display:none}.table-wrap td[data-label]:not([data-label=""]):before{content:attr(data-label);display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.tabs{overflow-x:auto;flex-wrap:nowrap}.tabs button{white-space:nowrap;padding:.7rem .9rem}.auth-card{margin:1.5rem auto}}.stack-sm{display:grid;grid-gap:.6rem;gap:.6rem}.rec-preview{position:relative;background:#000;border-radius:10px;overflow:hidden;aspect-ratio:16/9;margin:.8rem 0;border:3px solid transparent;max-height:70vh}.rec-preview.on{border-color:var(--danger)}.rec-preview video{width:100%;height:100%;object-fit:cover;display:block}.rec-start-cam{position:absolute;inset:0;margin:auto;width:max-content;height:max-content;background:var(--accent);border-color:var(--accent);color:var(--asphalt);font-weight:700}.rec-overlay-msg{position:absolute;inset:0;display:grid;place-items:center;color:#fff}.rec-badge{position:absolute;top:10px;font-size:.8rem;font-weight:700;padding:.25rem .55rem;border-radius:999px;background:rgba(0,0,0,.6);color:#fff;display:inline-flex;align-items:center;gap:.35rem}.rec-live{left:10px}.rec-gps{right:10px}.rec-gps.good{background:var(--verified)}.rec-gps.fair{background:var(--possible)}.rec-gps.none,.rec-gps.poor{background:var(--danger)}.rec-dot{width:10px;height:10px;border-radius:50%;background:#ff3b30;animation:rec-blink 1s infinite}@keyframes rec-blink{50%{opacity:.2}}.rec-controls{display:flex;justify-content:center;margin:.6rem 0 1rem}.rec-btn{display:inline-flex;align-items:center;gap:.6rem;min-height:64px;padding:0 2rem;border-radius:999px;border:0;background:var(--danger);color:#fff;font:inherit;font-size:1.15rem;font-weight:700;cursor:pointer;touch-action:manipulation;box-shadow:0 4px 14px rgba(180,35,24,.35)}.rec-btn span{width:20px;height:20px;border-radius:50%;background:#fff}.rec-btn.stop{background:var(--asphalt);box-shadow:none}.rec-btn.stop span{border-radius:4px;background:#ff3b30}.rec-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.rec-status{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin:.8rem 0;color:var(--muted)}.rec-status .ok{color:var(--verified);font-weight:600}.rec-status .bad{color:var(--danger);font-weight:600}.rec-item{display:grid;grid-gap:.5rem;gap:.5rem}.progress{height:8px;border-radius:4px;background:var(--line);overflow:hidden}.progress span{display:block;height:100%;background:var(--verified);transition:width .4s}.record-cta{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}@media (max-width:760px){.rec-preview{margin-left:-16px;margin-right:-16px;border-radius:0;border-left:0;border-right:0}.rec-btn{width:100%;justify-content:center}}@media (orientation:landscape) and (max-height:520px){.rec-stage{display:grid;grid-template-columns:minmax(0,1fr) 200px;grid-gap:.8rem;gap:.8rem;align-items:center}.rec-preview{margin:0;border-radius:10px;border:3px solid transparent;max-height:calc(100vh - 90px)}.rec-preview.on{border-color:var(--danger)}.rec-side .rec-btn{width:100%;justify-content:center}.rec-side .error,.rec-side .notice{font-size:.8rem}}