:root{--bg: #f3f2ee;--surface: #ffffff;--ink: #1d1f22;--muted: #6b6f76;--line: #e2e0d9;--asphalt: #23262b;--asphalt-2: #2f333a;--accent: #f2a516;--accent-ink: #1d1f22;--red: #d93025;--water: #0f9bb5;--ok: #1e8e3e;--radius: 10px;--shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 4px 16px rgba(0, 0, 0, .04);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;background:var(--bg)}h1,h2{margin:0;letter-spacing:-.01em}h2{font-size:1.05rem;font-weight:600}p{margin:0}img{display:block;max-width:100%}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.mono,code{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.86em}.muted{color:var(--muted)}.small{font-size:.82rem}[hidden]{display:none!important}.btn{border:1px solid transparent;border-radius:8px;padding:.6rem 1rem;font-weight:600;font-size:.92rem;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;text-decoration:none;transition:background .15s,border-color .15s}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.primary:hover:not(:disabled){background:#e09810}.btn.ghost{background:transparent;border-color:var(--line);color:var(--ink)}.btn.ghost:hover:not(:disabled){background:#f6f5f1}.btn.sm{padding:.35rem .7rem;font-size:.82rem}.btn.block{width:100%}.btn.link{background:none;color:var(--muted);padding:.4rem;font-weight:500}.btn.link:hover{color:var(--ink);text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.brand{display:flex;align-items:center;gap:.55rem;font-weight:700;letter-spacing:-.01em}.brand-mark{width:22px;height:22px;border-radius:50%;border:3.5px solid var(--red);box-shadow:inset 0 0 0 3px var(--asphalt),inset 0 0 0 6px #555b63}.brand-lg{font-size:1.15rem}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-side{background:repeating-linear-gradient(90deg,rgba(242,165,22,.85) 0 44px,transparent 44px 88px) left calc(100% - 48px) / 100% 6px no-repeat,radial-gradient(circle at 20% 30%,#343941 0,transparent 55%),var(--asphalt);color:#f3f2ee;padding:3.5rem;display:flex;flex-direction:column;justify-content:center;gap:1.25rem}.login-side .brand-mark{box-shadow:inset 0 0 0 3px var(--asphalt),inset 0 0 0 6px #6a7079}.login-side h1{font-size:clamp(1.8rem,3.2vw,2.6rem);line-height:1.15;max-width:16ch;margin-top:1rem}.login-side p{color:#b9bcc2;max-width:44ch;line-height:1.55}.login-card{align-self:center;justify-self:center;width:min(400px,calc(100% - 2rem));padding:2rem;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.login-card h2{font-size:1.4rem}.login-card>.muted{margin:.35rem 0 1.4rem}.form{display:flex;flex-direction:column;gap:.7rem}.form label{font-size:.85rem;font-weight:600}.form input{width:100%;border:1px solid var(--line);border-radius:8px;padding:.75rem .85rem;font:inherit;font-size:1.05rem;background:#fbfbf9}.form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #f2a51640}.phone-input{display:flex}.phone-input span{padding:.75rem .8rem;border:1px solid var(--line);border-right:none;border-radius:8px 0 0 8px;background:#f1f0eb;color:var(--muted);font-weight:500}.phone-input input{border-radius:0 8px 8px 0;letter-spacing:.06em}.otp-input{letter-spacing:.6em;text-align:center;font-family:IBM Plex Mono,monospace}.hint{font-size:.82rem;color:var(--muted);background:#fdf5e3;border:1px dashed #ecd29a;padding:.5rem .7rem;border-radius:6px}.alert{padding:.6rem .8rem;border-radius:8px;font-size:.88rem;margin-top:.75rem}.form .alert{margin-top:0}.alert.error{background:#fdecea;color:#a1261c;border:1px solid #f6c9c4}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:1.5rem;padding:.7rem 1.5rem;background:var(--asphalt);color:#f3f2ee}.tabs{display:flex;gap:.25rem;margin-right:auto}.tabs button{background:none;border:none;color:#b9bcc2;padding:.5rem .9rem;border-radius:7px;font-weight:500}.tabs button:hover{color:#fff;background:var(--asphalt-2)}.tabs button.active{color:var(--asphalt);background:var(--accent);font-weight:600}.user{display:flex;align-items:center;gap:.75rem;color:#b9bcc2}.user .btn.ghost{color:#f3f2ee;border-color:#4a4f57}.user .btn.ghost:hover{background:var(--asphalt-2)}.content{max-width:1400px;margin:0 auto;padding:1.5rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.panel-head .muted{margin-top:.2rem;font-size:.88rem}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.empty{padding:2rem 1rem;text-align:center;color:var(--muted);font-size:.92rem;line-height:1.5}.video-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);gap:1.25rem;align-items:start}.video-frame{background:#111;border-radius:8px;overflow:hidden;display:flex;justify-content:center}.video-frame video{width:100%;max-height:70vh;display:block;background:#111}.video-frame .empty{color:#aaa}.timeline{position:relative;height:14px;margin-top:.75rem;background:#ebe9e3;border-radius:7px}.timeline-progress{position:absolute;inset:0 auto 0 0;background:#d9d6cc;border-radius:7px}.tick{position:absolute;top:-3px;width:10px;height:20px;margin-left:-5px;border:none;border-radius:3px;background:#b9b5aa;padding:0}.tick.seen{background:var(--red)}.tick:hover{transform:scaleY(1.2)}.progress{margin-top:1rem;display:flex;flex-direction:column;gap:.4rem}.progress-bar{height:8px;background:#ebe9e3;border-radius:4px;overflow:hidden}.progress-bar>div{height:100%;background:repeating-linear-gradient(-45deg,var(--accent) 0 10px,#e6970c 10px 20px);transition:width .4s}.list-col .panel{max-height:calc(100vh - 110px);overflow:auto;position:sticky;top:80px}.count{display:inline-block;min-width:1.6em;text-align:center;background:var(--red);color:#fff;border-radius:999px;font-size:.8rem;padding:.05rem .45rem;margin-left:.35rem;vertical-align:2px}.pothole-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.pothole{display:grid;grid-template-columns:112px 1fr;gap:.8rem;padding:.6rem;border:1px solid var(--line);border-radius:9px;animation:slide-in .35s ease-out;transition:border-color .2s,background .2s}.pothole.active{border-color:var(--red);background:#fff7f6}@keyframes slide-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.thumb{padding:0;border:none;border-radius:6px;overflow:hidden;background:#111;aspect-ratio:4 / 3}.thumb img{width:100%;height:100%;object-fit:cover}.pothole-body{display:flex;flex-direction:column;gap:.3rem;min-width:0}.row{display:flex;align-items:center;gap:.45rem}.conf{margin-left:auto;font-weight:700;font-size:.9rem}.tag{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--red);background:#fdecea;padding:.12rem .45rem;border-radius:4px}.tag.water{color:#0b6f82;background:#e2f5f8}.time-link{align-self:flex-start;background:none;border:none;padding:0;color:var(--ink);font-weight:500}.time-link:hover{color:var(--red)}.coords{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.approx{margin-left:.3rem;color:#b07a0b;font-weight:700}.map-link{font-size:.85rem;font-weight:600;color:#1a63c7;text-decoration:none}.map-link:hover{text-decoration:underline}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0f1012d1;display:grid;place-items:center;padding:1.5rem}.lightbox figure{margin:0;max-width:min(1100px,100%);background:var(--surface);border-radius:10px;overflow:hidden}.lightbox img{max-height:78vh;width:auto;margin:0 auto}.lightbox figcaption{display:flex;align-items:center;gap:1rem;padding:.7rem 1rem;font-size:.9rem;flex-wrap:wrap}.lightbox figcaption a{color:#1a63c7;font-weight:600;text-decoration:none}.lightbox figcaption .btn{margin-left:auto}.image-layout{max-width:1100px;margin:0 auto}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;min-height:280px;border:2px dashed #cfccc2;border-radius:10px;background:#faf9f6;cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:#fdf7ea}.drop-icon{font-size:2rem;line-height:1;color:var(--muted)}.compare{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.compare figure{margin:0;display:flex;flex-direction:column;gap:.4rem}.compare img,.placeholder{width:100%;border-radius:8px;background:#111;object-fit:contain;max-height:60vh}.placeholder{aspect-ratio:4 / 3;display:grid;place-items:center;color:#999;font-size:.9rem}.spinner{width:34px;height:34px;border-radius:50%;border:4px solid #444;border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.verdict{margin-top:1rem;padding:1rem;border-radius:9px;display:flex;flex-direction:column;gap:.7rem;align-items:flex-start}.verdict.found{background:#fff5f4;border:1px solid #f6c9c4}.verdict.clear{background:#eef8f1;border:1px solid #c3e6cd}.verdict-title{font-weight:700;font-size:1.05rem}.verdict.found .verdict-title{color:#a1261c}.verdict.clear .verdict-title{color:var(--ok)}.det-list{list-style:none;padding:0;margin:0;width:100%;display:flex;flex-direction:column;gap:.45rem}.det-list li{display:grid;grid-template-columns:130px 1fr 64px;align-items:center;gap:.7rem}.bar{height:8px;background:#f0dedb;border-radius:4px;overflow:hidden}.bar>div{height:100%;background:var(--red)}@media (max-width: 960px){.video-layout{grid-template-columns:1fr}.list-col .panel{max-height:none;position:static}.login-wrap{grid-template-columns:1fr}.login-side{padding:2rem 1.5rem}.login-side h1{font-size:1.6rem}}@media (max-width: 640px){.topbar{flex-wrap:wrap;gap:.6rem;padding:.6rem 1rem}.tabs{order:3;width:100%}.tabs button{flex:1}.user .mono{display:none}.user{margin-left:auto}.content{padding:1rem}.compare{grid-template-columns:1fr}.pothole{grid-template-columns:96px 1fr}.det-list li{grid-template-columns:1fr 64px}.det-list .bar{display:none}}
