:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page-bg:#f3f6f6;--surface:#fff;--surface-muted:#f9fbfa;--surface-strong:#e7eeed;--text:#203c43;--text-muted:#637a80;--border:#dce5e5;--border-strong:#c8d5d6;--accent:#1b6d67;--accent-soft:#f1f7f5;--accent-soft-border:#d5e4df;--accent-text:#326b64;--badge-bg:#f0f5f4;--badge-text:#54716f;--approx-bg:#fdf3df;--approx-text:#8a6416;--pending-bg:#e9f6f1;--pending-border:#b9ddd4;--pending-text:#2b6156;--error-bg:#fff0ed;--error-text:#a03930;--error-border:#f0d0c9;--focus:#6abeb3;color:var(--text);background:var(--page-bg);font-synthesis:none;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.5}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-bg:#0c1a1e;--surface:#14262b;--surface-muted:#102125;--surface-strong:#22373b;--text:#e2eeeb;--text-muted:#9fb7b8;--border:#294248;--border-strong:#35545b;--accent:#2f8f86;--accent-soft:#17343a;--accent-soft-border:#2b4d53;--accent-text:#bfe4de;--badge-bg:#233b40;--badge-text:#b9d2d0;--approx-bg:#3a2f18;--approx-text:#f2ce85;--pending-bg:#14362f;--pending-border:#2c5c51;--pending-text:#b7e2d7;--error-bg:#3a1f1c;--error-text:#ffc4bb;--error-border:#5c2f2a;--focus:#7fd6c9}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;background:var(--accent);color:#fff;border:1px solid #0000;border-radius:8px;padding:10px 17px;font-weight:600}button:hover{filter:brightness(.94)}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #6abeb3}input,select{border:1px solid var(--border-strong);background:var(--surface);width:100%;color:var(--text);border-radius:7px;padding:10px 12px}h1,h2,p{margin-top:0}h1{letter-spacing:-1px;margin-bottom:12px;font-size:32px;line-height:1.2}h2{margin-bottom:18px;font-size:19px;font-weight:650}.muted{color:var(--text-muted)}.hint{color:var(--text-muted);margin:12px 0;font-size:13px}.eyebrow{letter-spacing:2px;color:#5c7d80;margin-bottom:13px;font-size:11px;font-weight:700}.field{flex-direction:column;gap:7px;margin-bottom:18px;font-size:13px;font-weight:600;display:flex}.form-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.login-shell{background:radial-gradient(at 10% 10%, #dceae6, transparent 55%), var(--page-bg);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:32px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:420px;padding:42px;box-shadow:0 24px 75px #163e4212}.login-card h1{margin-bottom:15px;font-size:38px}.login-card form{margin-top:30px}.login-card button{width:100%}.login-note{color:#71878a;margin:24px 0 0;font-size:12px}.layout{grid-template-columns:238px minmax(0,1fr);min-height:100vh;display:grid}aside{color:#e7f1ee;background:#102f35;flex-direction:column;height:100vh;padding:35px 22px;display:flex;position:sticky;top:0}.brand{color:inherit;letter-spacing:-.6px;flex-shrink:0;padding:0 12px;font-size:25px;font-weight:750;text-decoration:none}.brand span{letter-spacing:.5px;color:#a0b9b9;margin-top:5px;font-size:11px;font-weight:400;display:block}nav{flex-direction:column;gap:7px;min-height:0;margin-top:50px;display:flex;overflow-y:auto}nav button{text-align:left;color:#abc2c3;background:0 0;border-radius:7px;padding:12px 14px;font-weight:500}nav button.selected{color:#fff;background:#275359}nav button:hover{background:#20444a}.account{border-top:1px solid #ffffff1a;flex-direction:column;flex-shrink:0;margin-top:auto;padding:30px 12px 0;display:flex}.account span{color:#a1babc;margin:3px 0 14px;font-size:12px}.account button{color:#cee0dd;text-align:left;padding-left:0}.workspace{width:100%;max-width:1500px;padding:48px clamp(24px,5vw,80px)}.workspace header{margin-bottom:35px}.storage-banner{border:1px solid var(--border-strong);overflow-wrap:anywhere;border-left-width:5px;border-radius:12px;margin:0 0 28px;padding:20px 22px}.storage-banner h2{margin:0 0 8px;font-size:20px;line-height:1.3}.storage-banner p{margin:6px 0}.storage-banner ul{margin:14px 0;padding:0;list-style:none}.storage-banner li{flex-wrap:wrap;justify-content:space-between;gap:4px 18px;margin:8px 0;display:flex}.storage-banner li span{font-variant-numeric:tabular-nums}.storage-critical{color:#89261e;background:#fff0ed;border-color:#c94336}.storage-unknown{color:#725017;background:#fff8e8;border-color:#b48324}.storage-banner .storage-delivery{border-top:1px solid;padding-top:12px;font-size:14px}.storage-banner .storage-note{font-size:13px}:root[data-theme=dark] .storage-critical{color:#ffcdc7;background:#3a1b20;border-color:#ee8077}:root[data-theme=dark] .storage-unknown{color:#f2d294;background:#332b19;border-color:#c5a15a}@media (width<=600px){.storage-banner{padding:16px}.storage-banner li{flex-direction:column}.storage-banner h2{font-size:18px}}.section-heading{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.section-heading h2{margin:0}.count{color:#54716f;vertical-align:middle;background:#e0e9e8;border-radius:5px;margin-left:8px;padding:2px 7px;font-size:12px;display:inline-block}.empty,.panel{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-bottom:24px;padding:28px}.empty{text-align:center;background:var(--surface-muted);padding:48px 24px}.empty p{color:var(--text-muted);margin-bottom:0}.empty-icon{color:#6b9690;margin-bottom:16px;font-size:40px}.camera-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin-bottom:28px;display:grid}.camera-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px}.camera-card h2{margin:18px 0 4px}.camera-card code{color:#5d767a;font-size:12px}.camera-card p{margin-top:20px;font-size:13px}.badge{background:var(--pending-bg);color:var(--pending-text);border-radius:5px;padding:4px 8px;font-size:11px;font-weight:650}.badge.disabled{color:#6a777a;background:#edf0f0}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.secondary{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-soft-border)}.quiet{color:var(--text-muted);background:0 0;padding:8px 10px;font-size:13px}.error,.notice{border-radius:8px;margin-bottom:20px;padding:13px 17px;font-size:14px}.error{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border)}.notice{background:var(--pending-bg);color:var(--pending-text);border:1px solid var(--pending-border)}.record{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:20px;padding:18px 0;display:flex}.record:last-child{border-bottom:0}.record p{margin:5px 0 0;font-size:12px}.record .actions{justify-content:flex-end}.record .actions button{font-size:12px}.narrow{max-width:520px}dl{grid-template-columns:minmax(160px,1fr) 2fr;gap:15px;margin:25px 0 30px;display:grid}dt{color:#70858a}dd{margin:0;font-weight:600}.modal-backdrop{z-index:10;background:#0d2b3770;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);color:var(--text);border-radius:13px;width:440px;max-width:100%;max-height:90vh;padding:30px;overflow:auto;box-shadow:0 25px 80px #0003}.checkbox{align-items:center;gap:12px;padding:10px 0;display:flex}.checkbox input{width:auto}.modal form{margin-bottom:15px}@media (width<=850px){.layout{grid-template-columns:1fr}aside{gap:20px;height:auto;padding:20px;position:static}.brand span{display:none}nav{flex-flow:wrap;gap:4px;margin:0;overflow:visible}nav button{padding:8px 12px;font-size:13px}.account{border:0;align-items:flex-end;padding:0;font-size:13px;position:absolute;top:20px;right:20px}.account span{display:none}.account button{margin-top:0;padding:0;font-size:12px}.workspace{padding:28px 20px}.record{flex-direction:column;gap:12px}.record .actions{justify-content:flex-start}h1{font-size:28px}}@media (prefers-reduced-motion:no-preference){button{transition:background .15s,filter .15s}}.control-preview{overflow-wrap:anywhere;background:#f7fafb;border:1px solid #bbcbd4;border-radius:10px;margin:18px 0;padding:16px}.modal{max-height:90vh;overflow-y:auto}.record p,dd,li{overflow-wrap:anywhere}@media (width<=600px){.scanner-panel dl{grid-template-columns:minmax(0,1fr);gap:6px}.scanner-panel dd{margin-bottom:12px}}.gallery{flex-direction:column;gap:18px;display:flex}.gallery-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:12px;grid-template-columns:minmax(180px,240px) minmax(0,1fr);align-items:start;gap:18px;padding:20px;display:grid}.gallery-filters{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:12px;display:grid}.gallery-filters .field{margin-bottom:0}.gallery-filter-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gallery-poll-toggle{align-self:center;align-items:center;gap:8px;font-size:13px;display:flex}.gallery-poll-toggle input{width:auto}.gallery-pending{border:1px solid var(--pending-border);background:var(--pending-bg);color:var(--pending-text);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:14px;display:flex}.gallery-timezone,.gallery-meta{color:var(--text-muted);margin:0;font-size:13px}.gallery-meta{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;display:grid}.gallery-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;min-width:0;display:flex;overflow:hidden}.gallery-open{cursor:zoom-in;background:0 0;border:0;border-radius:0;width:100%;padding:0;display:block}.gallery-open:focus-visible{outline-offset:-3px;outline:3px solid #6abeb3}.gallery-thumb{aspect-ratio:4/3;background:var(--surface-strong);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.gallery-thumb img{object-fit:cover;width:100%;height:100%;display:block}.gallery-thumb-placeholder{color:var(--text-muted);text-align:center;padding:8px;font-size:12px}.gallery-card-body{flex-direction:column;gap:8px;padding:12px;font-size:12px;display:flex}.gallery-card-body time{font-size:13px;font-weight:650}.gallery-badges{color:var(--badge-text);flex-wrap:wrap;gap:6px;display:flex}.gallery-badges>span{background:var(--badge-bg);border-radius:5px;padding:2px 6px}.gallery-badges .badge.approximate{background:var(--approx-bg);color:var(--approx-text)}.gallery-card-body a{color:var(--accent);font-weight:600}.gallery-thumb-fallback{color:#fff;white-space:nowrap;background:#0d2b37d9;border-radius:6px;padding:4px 8px;font-size:11px;text-decoration:none;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.gallery-paging{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (width<=850px){.gallery-toolbar{grid-template-columns:1fr;padding:16px}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}}.viewer-backdrop{z-index:50;background:#061418e8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.viewer{color:#e7f1ee;background:#0d2126;border:1px solid #28464c;border-radius:14px;outline:none;flex-direction:column;width:min(1180px,100%);max-height:calc(100vh - 32px);display:flex;overflow:hidden}.viewer-header{border-bottom:1px solid #224047;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.viewer-header div{flex-direction:column;gap:2px;display:flex}.viewer-header span{color:#a1babc;font-size:12px}.viewer-close{color:#e7f1ee;padding:6px 10px;font-size:20px;line-height:1}.viewer-stage{touch-action:none;-webkit-user-select:none;user-select:none;background:repeating-conic-gradient(#0a1a1e 0% 25%,#10262b 0% 50%) 50%/28px 28px;flex:1;justify-content:center;align-items:center;min-height:240px;display:flex;overflow:hidden}.viewer-stage img{object-fit:contain;transform-origin:50%;will-change:transform;-webkit-user-drag:none;max-width:100%;max-height:calc(100vh - 250px);transition:transform 80ms linear}.viewer-stage.zoomed{cursor:grab}.viewer-fallback{text-align:center;color:#cbdcd9;padding:24px}.viewer-controls{border-top:1px solid #224047;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:12px 16px;display:flex}.viewer-controls .secondary{color:#dcebe8;background:#17343a;border-color:#2b4d53}.viewer-zoom{gap:4px;display:flex}.viewer-download{border:1px solid #2b4d53;border-radius:8px;padding:10px 17px;font-weight:600;text-decoration:none}.viewer-hint{color:#9fb7b8;text-align:center;margin:0;padding:0 16px 12px;font-size:12px}@media (width<=700px){.viewer-backdrop{padding:0}.viewer{border-radius:0;height:100vh;max-height:100vh}.viewer-controls{gap:6px;padding:10px}.viewer-controls .secondary,.viewer-download{padding:8px 10px;font-size:12px}.viewer-stage img{max-height:calc(100vh - 220px)}}@media (prefers-reduced-motion:reduce){.viewer-stage img{transition:none}}.telegram-panel{min-width:0}.telegram-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.telegram-panel input,.telegram-panel select{width:100%;max-width:100%}.telegram-panel label{margin:12px 0 6px;display:block}.telegram-actions{flex-wrap:wrap;gap:10px;margin:14px 0;display:flex}.telegram-row{border-top:1px solid var(--border);overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.telegram-warning{border-left:3px solid var(--accent);padding-left:14px}.telegram-panel .panel{overflow-wrap:anywhere;min-width:0}@media (width<=900px){.telegram-grid{grid-template-columns:1fr}.telegram-row{flex-direction:column;align-items:stretch}}.telegram-panel input[type=checkbox]{width:auto;margin-right:8px}.telegram-confirm{border:1px solid var(--border);border-radius:10px;margin:16px 0;padding:16px}.telegram-confirm label{align-items:center;gap:8px;display:flex}.telegram-panel form>button{margin-top:14px}.deletion-toolbar{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin:20px 0;padding:16px 18px;display:flex}.deletion-toolbar>div{margin-right:auto}.deletion-toolbar strong{font-size:16px}.deletion-toolbar p{color:var(--text-muted);margin:5px 0 0;font-size:13px}.deletion-toolbar>.error{color:var(--error-text);flex-basis:100%}button.danger{color:#fff;background:#a62e24;border:1px solid #a62e24}button.danger:hover:not(:disabled){background:#88251d;border-color:#88251d}.gallery-card[data-selected]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.gallery-select{cursor:pointer;align-items:center;gap:10px;min-height:44px;padding:12px 14px;font-size:13px;font-weight:600;display:flex}.gallery-select input{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0;margin:0;padding:0}.deletion-dialog{border:1px solid var(--border-strong);background:var(--surface);width:min(640px,100vw - 24px);max-height:calc(100dvh - 32px);color:var(--text);border-radius:16px;padding:0;overflow:auto;box-shadow:0 24px 80px #0005}.deletion-dialog::backdrop{background:#101d24a6}.deletion-dialog>header{padding:24px 24px 0}.deletion-dialog>header h2{letter-spacing:-.5px;margin:8px 0 16px;font-size:25px;line-height:1.25}.deletion-eyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700}.deletion-dialog>p,.deletion-dialog>.error{margin:0 24px 16px}.deletion-warning{border:1px solid var(--error-border);background:var(--error-bg);color:var(--error-text);border-radius:10px;padding:14px 16px;font-size:14px;line-height:1.55}.deletion-list{border:1px solid var(--border);border-radius:10px;max-height:34dvh;margin:0 24px 20px;padding:0;list-style:none;overflow-y:auto}.deletion-list li{border-bottom:1px solid var(--border);overflow-wrap:anywhere;padding:12px 14px}.deletion-list li:last-child{border-bottom:0}.deletion-list strong,.deletion-list span{display:block}.deletion-list strong{font-size:14px}.deletion-list span{color:var(--text-muted);margin-top:5px;font-size:12px}.deletion-actions{background:var(--surface);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex;position:sticky;bottom:0}.deletion-batch{overflow-wrap:anywhere;color:var(--text-muted);font-size:12px}.deletion-counts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 24px 20px;display:grid}.deletion-counts>div{border:1px solid var(--border);border-radius:8px;padding:10px}.deletion-counts dt{color:var(--text-muted);font-size:11px}.deletion-counts dd{margin:4px 0 0;font-size:22px;font-weight:700}@media (width<=600px){.deletion-toolbar{align-items:stretch}.deletion-toolbar>div{flex-basis:100%}.deletion-toolbar>button{flex:1}.deletion-dialog>header{padding:20px 16px 0}.deletion-dialog>header h2{font-size:23px}.deletion-dialog>p,.deletion-dialog>.error,.deletion-list,.deletion-counts{margin-left:16px;margin-right:16px}.deletion-actions{padding:14px 16px}.deletion-actions button{flex:100%}.deletion-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}.deletion-restore{border-top:1px solid var(--border);flex-wrap:wrap;flex-basis:100%;align-items:flex-end;gap:12px;padding-top:12px;display:flex}.deletion-restore label{color:var(--text-muted);flex-direction:column;gap:6px;font-size:12px;display:flex}.deletion-restore input{width:min(340px,100%);font-family:ui-monospace,monospace}@media (width<=600px){.deletion-restore label,.deletion-restore button{width:100%}}
