@import"https://fonts.googleapis.com/css2?family=Cairo+Play:wght@200..1000&family=Inconsolata:wght@200..900&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Montserrat:ital,wght@0,100..900;1,100..900&family=Oswald:wght@200..700&family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&family=Roboto+Mono:ital,wght@0,100..700;1,100..700&family=Roboto:ital,wght@0,100..900;1,100..900&family=Share+Tech+Mono&display=swap";:root{--bg: #0b1221;--panel: #0f192f;--panel-strong: #0a1426;--muted: #8ba2c7;--text: #e9f1ff;--border: #1f2a44;--accent: #2dd4bf;--accent-strong: #0ea5e9;--danger: #f87171;--success: #34d399;--shadow: 0 18px 50px rgba(5, 9, 20, .35);--body-bg: radial-gradient(circle at 12% 20%, #0f223d, #0a1224 45%), radial-gradient(circle at 85% 10%, #13253f, #0a1224 40%), radial-gradient(circle at 50% 80%, #111f35, #0a1224 35%), #0a1224;--header-bg: linear-gradient(90deg, rgba(17, 45, 93, .5), rgba(30, 41, 59, .4));--page-bg: rgba(13, 22, 39, .85);--tab-active-bg: linear-gradient(135deg, rgba(45, 212, 191, .15), rgba(14, 165, 233, .18));--card-bg: linear-gradient(155deg, rgba(45, 212, 191, .08), rgba(14, 165, 233, .05)), rgba(255, 255, 255, .01);--auth-hero-bg: linear-gradient(180deg, rgba(45, 212, 191, .18), rgba(14, 165, 233, .14));--table-th-bg: rgba(255, 255, 255, .01);--url-chip-bg: rgba(15, 23, 42, .6);--status-chip-bg: rgba(5, 13, 28, .55);--export-btn-h: 46px}html[data-theme=light]{--bg: #f8fafc;--panel: #ffffff;--panel-strong: #f1f5f9;--muted: #64748b;--text: #0f172a;--border: #e2e8f0;--accent: #0d9488;--accent-strong: #0284c7;--shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--body-bg: #f8fafc;--header-bg: #ffffff;--page-bg: #ffffff;--tab-active-bg: rgba(13, 148, 136, .1);--card-bg: #ffffff;--auth-hero-bg: #f1f5f9;--table-th-bg: #f8fafc;--url-chip-bg: #f1f5f9;--status-chip-bg: #f1f5f9}html[data-theme=light] .status-indicator{background:#f1f5f9;border-color:#e2e8f0;color:#475569}html[data-theme=light] .status-indicator.allowed{background:#dcfce7;border-color:#bbf7d0;color:#166534}html[data-theme=light] .status-indicator.blocked{background:#fee2e2;border-color:#fecaca;color:#991b1b}html[data-theme=light] .status-indicator.neutral{background:#f1f5f9;border-color:#e2e8f0;color:#475569}html[data-theme=light] .direction-indicator{background:#f8fafc;border-color:#e2e8f0;color:#64748b}html[data-theme=light] .pagination{background:#f8fafc;border-top-color:#e2e8f0}html[data-theme=light] .url-chip,html[data-theme=light] .stream-url{background:#f1f5f9;border-color:#dbe2ea;color:#334155}html[data-theme=light] .table-wrapper{background:#fff;border-color:#e2e8f0;box-shadow:0 14px 30px -24px #0f172a4d}html[data-theme=light] .data-table th{color:#475569;background:#f8fafc;border-bottom-color:#e2e8f0}html[data-theme=light] .data-table td{color:#0f172a;border-bottom-color:#e2e8f0}html[data-theme=light] .data-table tbody tr{background:#fff}html[data-theme=light] .data-table tbody tr:nth-child(2n){background:#f8fafc}html[data-theme=light] .data-table.hoverable tbody tr:hover{background:#eef6ff}html[data-theme=light] .table-filter-row input:not(.table-search-input),html[data-theme=light] .table-filter-row select,html[data-theme=light] .page-size-select,html[data-theme=light] .table-toolbar-field select{background:#fff;border-color:#d6dee8;color:#0f172a}html[data-theme=light] .plate-text{background:#f8fafc;border:1px solid #dbe2ea;color:#0f172a}html[data-theme=light] .plate-letters-white{color:#0f172a}html[data-theme=light] .plate-digits{color:#0f172acc}html[data-theme=light] .list-card.glass{background:#fff;border-color:#e2e8f0;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}html[data-theme=light] .list-switch{background:#f8fafc;border-color:#e2e8f0}html[data-theme=light] .switch-pill{color:#64748b}html[data-theme=light] .switch-pill.active{background:#0d94881f;border-color:#0d94884d;color:#0f172a}html[data-theme=light] .switch-count{background:#0d94881f;color:#0f172a}html[data-theme=light] .list-telegram,html[data-theme=light] .list-form{background:#f8fafc;border-color:#e2e8f0}html[data-theme=light] .list-form input,html[data-theme=light] .list-edit-input,html[data-theme=light] .list-search-input{background:#fff;border-color:#d6dee8;color:#0f172a}html[data-theme=light] .list-search-input::placeholder{color:#94a3b8}html[data-theme=light] .list-search-input:focus{background:#fff;border-color:#38bdf8;box-shadow:0 0 0 3px #0284c726}html[data-theme=light] .list-table{background:#fff;border-color:#e2e8f0}html[data-theme=light] .list-row.is-editing{background:#eef6ff}html[data-theme=light] .list-stat,html[data-theme=light] .list-count{background:#fff;border-color:#e2e8f0}html[data-theme=light] .filter-input,html[data-theme=light] .filter-select{background:#fff;border-color:#cbd5e1;color:#0f172a;color-scheme:light}html[data-theme=light] .table-inline-filters th{background:#f1f5f9;border-bottom-color:#cbd5e1}html[data-theme=light] .filter-input:focus,html[data-theme=light] .filter-select:focus{background:#fff;border-color:#38bdf8;box-shadow:0 0 0 4px #0284c71f}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--body-bg);color:var(--text);font-family:Segoe UI,Helvetica Neue,Arial,sans-serif;line-height:1.4}a{color:inherit;text-decoration:none}#root{min-height:100vh}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;background:var(--header-bg);border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.brand{display:flex;align-items:center}.brand-title{font-weight:700;font-size:18px;letter-spacing:.02em}.brand-subtitle{display:none}.user-meta{display:flex;align-items:center;gap:20px;color:var(--text)}.user-info-group{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}.user-account-name{font-weight:700;font-size:14px;color:var(--text)}.user-email{font-size:12px;color:var(--muted)}.nav-tabs{display:flex;gap:12px;padding:14px 24px;background:var(--panel-strong);border-bottom:1px solid var(--border)}.tab{padding:10px 16px;border-radius:12px;border:1px solid var(--border);color:var(--muted);transition:all .2s ease}.tab.active{background:var(--tab-active-bg);color:var(--text);border-color:#2dd4bf59}.tab.disabled{opacity:.5;cursor:not-allowed}.page-container{padding:28px;flex:1}.page{background:var(--page-bg);border:1px solid var(--border);border-radius:16px;padding:24px;box-shadow:var(--shadow);max-width:1340px;margin:0 auto;width:100%}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:var(--muted);margin:0 0 4px}.page h2{margin:0}.page-loading{display:flex;align-items:center;gap:12px;color:var(--muted);padding:24px}.loader{width:16px;height:16px;border:2px solid rgba(45,212,191,.35);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px}.auth-card{width:min(960px,100%);display:grid;grid-template-columns:1.1fr 1fr;gap:0;background:var(--page-bg);border:1px solid var(--border);border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}.auth-hero{padding:32px;background:var(--auth-hero-bg);border-right:1px solid var(--border)}.auth-hero h1{margin:12px 0 8px;font-size:32px}.auth-hero p{margin:0;color:var(--muted)}.auth-form{padding:32px;display:flex;flex-direction:column;gap:14px}.form-field{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:14px}.form-field input,.form-field select{background:var(--panel-strong);border:1px solid var(--border);border-radius:12px;padding:12px 14px;color:var(--text);font-size:15px}.form-field input:focus,.form-field select:focus{outline:2px solid rgba(45,212,191,.5);border-color:#2dd4bf66}.checkbox-field{display:flex;align-items:center;gap:8px;color:var(--text)}.primary-button,.ghost-button{padding:10px 16px;border-radius:12px;border:1px solid transparent;cursor:pointer;font-weight:600;color:var(--text);background:transparent;transition:all .2s ease}.primary-button{background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:#04101f;box-shadow:0 10px 30px #0ea5e959}.primary-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.ghost-button{border-color:var(--border);color:var(--text);background:#ffffff05}.ghost-button.small,.primary-button.small{padding:8px 12px;font-size:13px}.ghost-button:hover{border-color:#2dd4bf73}.ghost-button.danger{border-color:#f8717159;color:#fca5a5}.table-wrapper{border:1px solid var(--border);border-radius:16px;overflow-x:auto;overflow-y:hidden}.camera-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,360px));gap:16px;justify-content:flex-start}.camera-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:18px;background:var(--card-bg);box-shadow:var(--shadow);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.camera-card:hover{border-color:#2dd4bf73;box-shadow:0 24px 60px #00000073}.card-media{position:relative;aspect-ratio:16 / 9;background:#030712;overflow:hidden}.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease,opacity .2s ease}.card-media:hover img{transform:scale(1.03)}.card-media:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.45))}.card-media-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:space-between;padding:12px;pointer-events:none;align-items:flex-start}.status-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.1);color:#f8fafc;background:var(--status-chip-bg);box-shadow:0 16px 40px #00000040;align-self:flex-end}.status-chip.ok{border-color:#34d39973;color:#bbf7d0}.status-chip.muted{color:#cbd5f5;border-color:#ffffff14}.media-hint{align-self:flex-start;padding:6px 10px;border-radius:10px;background:#00000073;color:#cbd5f5;font-size:12px;letter-spacing:.02em;margin-top:auto}.camera-card-body{padding:16px;display:flex;flex-direction:column;gap:12px}.card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.card-title{margin:0}.url-chip{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:13px;color:#c7d2fe;padding:10px 12px;background:var(--url-chip-bg);border:1px dashed var(--border);border-radius:12px;word-break:break-all}.card-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.camera-meta-inline{display:flex;flex-direction:column;gap:8px;align-items:flex-start;line-height:1.4}.camera-meta-item{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%;white-space:normal}.camera-meta-inline .detail-label{text-transform:none;letter-spacing:.02em;font-size:12px;font-weight:600;color:var(--muted);min-width:90px}.camera-meta-inline .detail-value{font-size:15px;font-weight:600;color:var(--text)}.camera-meta-item.primary .detail-value{font-size:16px;font-weight:700}.status-value{display:inline-flex;align-items:center;gap:8px}.card-actions{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap}.glass-pill{box-shadow:inset 0 1px #ffffff14;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:12px 14px;border-bottom:1px solid var(--border);text-align:left}.data-table th{font-weight:600;color:var(--muted);background:var(--table-th-bg)}.data-table tr:last-child td{border-bottom:none}.data-table.hoverable tr:hover{background:#2dd4bf0f}.data-table .rtsp-column,.data-table .api-column{max-width:200px;width:200px;white-space:normal;word-break:break-all;overflow-wrap:anywhere}.data-table .rtsp-column *{word-break:break-all;overflow-wrap:anywhere}@media (max-width: 1200px){.data-table .rtsp-column,.data-table .api-column{display:none}}.monitoring-table-wrapper{max-width:1400px;margin:0 auto;overflow-x:hidden}.data-table.monitoring-table{font-size:15px;border:1px solid var(--border);border-radius:12px;overflow:hidden}.data-table.monitoring-table.large th,.data-table.monitoring-table.large td{padding:10px 12px}.data-table.compact th,.data-table.compact td{padding:10px;font-size:13px}.table-filter-row{background:#ffffff05}.table-filter-row input:not(.table-search-input),.table-filter-row select{width:100%;background:var(--panel-strong);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 8px;font-size:12px}.table-filter-row .table-filter{display:grid;gap:6px}.export-menu button.ghost-button{height:var(--export-btn-h);padding:0 16px;font-size:14px;font-weight:600}.table-filter.filter-inline{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}.with-clear{padding-right:28px}.input-with-clear{position:relative}.input-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:14px;line-height:1;padding:2px}.table-inline-filters th{padding:12px 14px!important;background:var(--table-th-bg);border-bottom:2px solid var(--border);vertical-align:middle}.date-filter-group{display:flex;flex-direction:column;gap:6px;min-width:150px;max-width:160px}.filter-input,.filter-select{width:100%;padding:10px 14px;border-radius:10px;border:1px solid var(--border);background:#0f172af2;color:var(--text);font-size:15px;transition:all .2s ease;color-scheme:dark}.direction-filter .filter-select{max-width:140px}.filter-input:focus,.filter-select:focus{outline:none;border-color:#38bdf880;background:var(--panel-strong);box-shadow:0 0 0 3px #38bdf826}.filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%238ba2c7' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 4.5 6 7.5 9 4.5'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px}.th-center,.td-center{text-align:center!important}.filter-input-wrapper{position:relative;display:flex;align-items:center;width:100%}.filter-clear{position:absolute;right:6px;background:transparent;border:none;color:var(--muted);cursor:pointer;padding:4px;font-size:12px;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .2s}.filter-clear:hover{opacity:1;color:var(--text)}.filter-cell.empty-filter,.filter-cell.status-filter,.filter-cell.actions-filter{pointer-events:none}.table-loading-row td{border-bottom:none}.table-loader{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.table-loader .loader.small{width:18px;height:18px;border-width:3px}.monitoring-thumb{width:128px;height:auto;object-fit:cover;border-radius:10px;border:1px solid var(--border);display:block}.monitoring-thumb.plate-thumb{width:100%;max-width:96px;height:auto}.monitoring-thumb.vehicle-thumb{position:static;width:100%;height:auto;object-fit:cover;border:none}.autocorrect-db-images{display:flex;gap:8px;flex-wrap:wrap}.thumb-wrapper{display:inline-flex;position:relative;overflow:hidden;width:128px;height:auto;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--border);background:#020712}.vehicle-thumb-wrapper{cursor:zoom-in;padding:0;background:transparent;border:none}.vehicle-thumb-wrapper:focus-visible{outline:2px solid rgba(45,212,191,.7);outline-offset:2px}.vehicle-thumb-wrapper .monitoring-thumb{pointer-events:none}.crop-thumb{width:128px;height:auto;border-radius:10px;border:1px solid var(--border);background:#020712;display:block}.crop-thumb.plate-crop{width:100%;max-width:96px;height:auto}.crop-button{padding:0;background:transparent;border:none;cursor:zoom-in}.status-cell{display:flex;flex-direction:column;gap:4px;align-items:center}.status-indicator{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:20px;font-size:.9em;font-weight:500;background:#ffffff0f;border:1px solid rgba(255,255,255,.05);color:#cbd5e1;white-space:nowrap;width:fit-content}.status-indicator.allowed{background:#22c55e24;border-color:#22c55e59;color:#bbf7d0}.status-indicator.blocked{background:#f8717124;border-color:#f8717159;color:#fecaca}.status-indicator.neutral{background:#94a3b81f;border-color:#94a3b847;color:#cbd5e1}.status-comment{max-width:240px;white-space:normal;word-wrap:break-word;text-align:center;font-size:.85em;color:var(--muted);line-height:1.3}.lists-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}.lists-grid.modern{gap:20px}.lists-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lists-shell{display:flex;flex-direction:column;gap:20px}.list-control-header h3,.list-panel-header h3{margin:0}.list-panel-header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.list-panel-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.list-add-button{align-self:flex-start;display:inline-flex;width:auto;white-space:nowrap}.list-switch{display:flex;gap:8px;padding:6px;border-radius:999px;border:1px solid var(--border);background:#ffffff05}.switch-pill{flex:1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--muted);font-weight:600;cursor:pointer;transition:all .2s ease}.switch-pill.active{background:var(--tab-active-bg);color:var(--text);border-color:#2dd4bf59;box-shadow:0 10px 24px #0ea5e92e}.switch-pill:focus-visible{outline:2px solid rgba(45,212,191,.6);outline-offset:2px}.switch-count{font-size:12px;padding:2px 8px;border-radius:999px;background:#ffffff14;color:var(--text)}.list-form.compact{padding:12px;gap:10px}.list-form-actions.compact{align-items:center}.list-table-controls.compact{margin-top:4px}.list-telegram{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;border:1px solid var(--border);background:#ffffff05}.list-telegram-title{font-weight:600}.list-telegram-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.list-table-panel{min-height:100%}.lists-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.list-stat{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding:8px 12px;border-radius:12px;border:1px solid var(--border);background:#ffffff05;min-width:120px}.list-stat-value{font-size:20px;font-weight:700;color:var(--text)}.list-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:12px;box-shadow:0 14px 38px #00000040}.telegram-card{margin-bottom:20px}.telegram-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.list-card.glass{background:linear-gradient(135deg,#2dd4bf0f,#0ea5e914),var(--panel-strong);border:1px solid rgba(255,255,255,.06)}.list-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.list-card-header h3{margin:0}.list-card-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.list-count{display:flex;flex-direction:column;align-items:flex-end;padding:6px 10px;border-radius:12px;border:1px solid var(--border);background:#ffffff05;min-width:84px}.list-count-value{font-size:18px;font-weight:700;color:var(--text);line-height:1}.list-loading{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.list-loading .loader.small{width:14px;height:14px;border-width:2px}.list-form{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:12px;border:1px solid var(--border);background:#ffffff05}.list-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.list-form input{min-width:160px;flex:1;background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:10px 12px;font-size:14px}.list-form input:focus{outline:2px solid rgba(45,212,191,.5);border-color:#2dd4bf66}.list-form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.list-form-buttons{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.list-form-hint{color:var(--muted);font-size:12px}.list-table-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;width:100%}.list-table-meta{display:flex;align-items:center;gap:10px}.list-search{position:relative;width:min(340px,100%);flex:1}.list-search-input{width:100%;height:40px;border-radius:12px;padding:10px 36px 10px 40px;font-size:14px;color:var(--text);caret-color:var(--text);background:#02061759;border:1px solid rgba(148,163,184,.18);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.list-search-input::placeholder{color:#94a3b8bf}.list-search-input:focus{outline:none;background:#02061780;border-color:#38bdf88c;box-shadow:0 0 0 3px #38bdf826}.list-search .input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#94a3b8d9;pointer-events:none;display:inline-flex;align-items:center;justify-content:center}.list-search .input-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:14px;line-height:1;padding:4px;border-radius:8px}.list-search .input-clear:hover{background:#ffffff0f;color:#e2e8f0}.list-table{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#ffffff03}.list-row.is-editing{background:#2dd4bf14}.list-edit-input{width:100%;background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px}.list-edit-input:focus{outline:2px solid rgba(45,212,191,.4);border-color:#2dd4bf59}.list-edit-input.mono{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;letter-spacing:.05em}.list-plate{font-size:.85rem;letter-spacing:.04em}.list-comment{font-size:13px;color:var(--text)}.empty-title{color:var(--text);font-weight:600}.list-panel-header{border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.lists-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media (max-width: 1024px){.lists-grid{grid-template-columns:1fr}}@media (max-width: 900px){.lists-shell{gap:18px}.lists-summary,.lists-meta{width:100%;justify-content:flex-start}.list-panel-header{align-items:flex-start}.list-panel-actions,.list-card-meta{width:100%;justify-content:space-between}.list-form,.list-table-controls,.list-form-actions{align-items:stretch}.list-form button,.list-form-actions .primary-button{width:100%}}.data-table.subdued th,.data-table.subdued td{background:transparent}.data-table.compact{border-radius:12px;overflow:hidden}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:var(--shadow)}.stat-card-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.stat-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.stat-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:#ffffff05}.stat-list .pill.small-pill{padding:4px 8px;font-size:12px}.stat-row-right{display:flex;align-items:center;gap:10px}.stats-section{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}.section-header h4{margin:0}.section-header p{margin:4px 0 0}.stat-row{position:relative}.stat-meta{display:flex;flex-direction:column;gap:2px}.thumb-preview{width:70px;height:48px;overflow:hidden;border-radius:8px;border:1px solid var(--border);transition:transform .18s ease,box-shadow .18s ease}.thumb-preview img{width:100%;height:100%;object-fit:cover;transition:transform .18s ease}.image-meta-wrapper{display:inline-flex;align-items:center}.thumb-preview .image-meta-wrapper{width:100%;height:100%}.cache-tree-grid{display:flex;flex-direction:column;gap:12px;padding:12px}.cache-tree{border:1px solid var(--border);border-radius:14px;background:#ffffff05;padding:10px 12px}.cache-tree summary{cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:12px;list-style:none}.cache-tree summary::-webkit-details-marker{display:none}.cache-summary{display:flex;flex-direction:column;gap:2px}.cache-summary-title{font-weight:600}.cache-events{display:flex;flex-direction:column;gap:12px;padding:10px 2px 4px}.cache-event-card{border:1px solid var(--border);border-radius:12px;background:var(--panel);padding:10px}.cache-event-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}.cache-event-title{font-weight:600}.cache-files-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.cache-file-card{display:flex;flex-direction:column;gap:6px;font-size:12px}.cache-thumb{width:100%;height:90px;object-fit:cover;border-radius:8px;border:1px solid var(--border);background:#020712}.cache-thumb.placeholder{display:flex;align-items:center;justify-content:center;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.cache-file-name{word-break:break-all;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;color:var(--text)}.tooltip-thumb .image-meta-wrapper{width:100%;height:100%}.image-meta-tooltip{position:fixed;z-index:1200;background:var(--panel-strong);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:12px;color:var(--text);box-shadow:var(--shadow);pointer-events:none;white-space:nowrap}.image-meta-row{line-height:1.4}.stat-row .thumb-preview{margin-left:auto;position:relative}.bar-row{gap:8px}.bar{flex:1;height:10px;border-radius:999px;background:#ffffff0d;overflow:hidden;border:1px solid var(--border)}.bar-fill{height:100%;background:linear-gradient(135deg,var(--accent),var(--accent-strong));transition:width .3s ease}.activity-card{display:flex;flex-direction:column;gap:12px}.activity-time-chart{display:flex;align-items:flex-end;gap:8px;overflow-x:auto;padding-bottom:4px}.activity-time-bar{display:flex;flex-direction:column;gap:6px;align-items:center;background:transparent;border:none;padding:0;color:inherit;cursor:pointer;flex:1 1 0;min-width:16px}.activity-time-bar:disabled{cursor:default;opacity:.6}.activity-time-track{height:160px;width:100%;border-radius:12px;background:#ffffff0a;border:1px solid var(--border);padding:6px;display:flex;align-items:flex-end}.activity-time-stack{width:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:2px}.activity-segment{width:100%;border-radius:6px;min-height:2px}.activity-segment.in{background:linear-gradient(160deg,#22c55e,#15803d)}.activity-segment.out{background:linear-gradient(160deg,#f97316,#c2410c)}.activity-segment.stop{background:linear-gradient(160deg,#38bdf8,#0284c7)}.activity-time-label{font-size:10px;color:var(--muted);min-height:14px;text-align:center}.activity-time-label.multiline{display:flex;flex-direction:column;align-items:center;min-height:28px;line-height:1.1}.activity-time-label-sub{font-size:9px;color:var(--muted);text-transform:lowercase}.activity-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted)}.activity-legend-item{display:inline-flex;align-items:center;gap:6px}.activity-legend-dot{width:10px;height:10px;border-radius:50%}.activity-legend-dot.in{background:#22c55e}.activity-legend-dot.out{background:#f97316}.activity-legend-dot.stop{background:#38bdf8}.activity-summary{text-align:right}.activity-modal-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}.activity-summary-pill{border-radius:999px;padding:4px 10px;font-size:12px;border:1px solid var(--border);background:#ffffff0a}.activity-summary-pill.in{border-color:#22c55e66;color:#86efac}.activity-summary-pill.out{border-color:#f9731666;color:#fdba74}.activity-summary-pill.stop{border-color:#38bdf866;color:#7dd3fc}.activity-modal-body{display:flex;flex-direction:column;gap:12px;max-height:60vh;overflow:auto}.activity-detail-list{display:flex;flex-direction:column;gap:10px}.activity-detail-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#ffffff05;flex-wrap:wrap}.activity-detail-meta{display:flex;flex-direction:column;gap:2px;min-width:160px}.activity-detail-plate,.activity-detail-direction{min-width:120px}.activity-direction-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:12px;border:1px solid var(--border);background:#ffffff0a}.activity-direction-pill.in{border-color:#22c55e66;color:#86efac}.activity-direction-pill.out{border-color:#f9731666;color:#fdba74}.activity-direction-pill.stop{border-color:#38bdf866;color:#7dd3fc}.activity-direction-pill.unknown{color:var(--muted)}.activity-detail-thumbs{display:flex;align-items:center;gap:8px}.activity-thumb{width:64px;height:40px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#020712}.activity-thumb img{width:100%;height:100%;object-fit:cover}.activity-detail-note{text-align:right}.activity-time-bar:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px;border-radius:12px}@media (max-width: 720px){.activity-time-track{height:120px}.activity-time-chart{gap:6px}}.heatmap-card .heatmap-grid{display:flex;flex-direction:column;gap:6px}.heatmap-row{display:grid;grid-template-columns:32px 1fr;align-items:center;gap:6px}.heatmap-label{font-size:12px;color:var(--muted);text-align:right}.heatmap-cells{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:2px}.heatmap-cell{display:block;height:18px;background:linear-gradient(135deg,var(--accent),var(--accent-strong));border-radius:3px;position:relative;display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px}.heatmap-legend{margin-top:6px}.heatmap-hours{display:grid;grid-template-columns:32px repeat(24,minmax(0,1fr));align-items:center;gap:6px 2px;margin-left:32px}.heatmap-hours span{text-align:center;display:flex;align-items:center;justify-content:center}.full-width-input{width:100%}.heatmap-count{pointer-events:none;line-height:1}.heatmap-tooltip{position:fixed;background:var(--panel-strong);border:1px solid var(--border);border-radius:10px;padding:10px;box-shadow:0 10px 30px #00000080;z-index:100;min-width:220px;pointer-events:none}.list-tooltip{max-width:260px}.tooltip-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:8px}.tooltip-list li{display:flex;justify-content:space-between;align-items:center;gap:10px}.tooltip-thumb{width:64px;height:40px;border:1px solid var(--border);border-radius:6px;overflow:hidden}.tooltip-thumb img{width:100%;height:100%;object-fit:cover}.stat-total{font-size:36px;font-weight:700;margin:10px 0 4px}.monitoring-header{align-items:flex-start;gap:16px}.monitoring-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.monitoring-actions.center{justify-content:center}.monitoring-actions .form-field.inline{display:inline-flex;align-items:center;gap:8px}.resource-card{display:flex;flex-direction:column;gap:6px}.resource-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.resource-row{display:flex;align-items:center;gap:10px}.resource-label{width:60px;font-size:12px;color:var(--muted);font-weight:600}.resource-bar{position:relative;flex:1;height:8px;background:var(--panel-strong);border-radius:999px;overflow:hidden}.resource-fill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--accent);transition:width .3s ease}.resource-value{min-width:78px;font-size:12px;text-align:right;display:flex;flex-direction:column;gap:2px}.resource-badges{display:flex;flex-wrap:wrap;gap:6px}.resource-badge{padding:4px 8px;border-radius:999px;border:1px solid var(--border);background:#ffffff0a;font-size:11px;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace}.resource-meta{font-size:11px;color:var(--muted)}.row-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.row-actions.centered{justify-content:center;width:100%}.pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:12px;letter-spacing:.02em}.pill.success{background:#34d39926;color:#86efac}.pill.muted{background:#ffffff0d;color:var(--muted)}.pill.accent{background:#0ea5e926;color:#7dd3fc}.pill.danger-pill{background:#f871712e;color:#fecdd3}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:var(--muted)}.status-dot.ok{background:#34d399}.status-dot.error{background:#f87171}.status-dot.unknown{background:var(--muted)}.muted-text{color:var(--muted)}.muted-text.small{font-size:12px}.info-box{padding:12px 14px;background:#ffffff08;border:1px solid var(--border);border-radius:12px;color:var(--muted);margin:12px 0}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;padding:16px;margin-bottom:16px;background:#ffffff05;border:1px solid var(--border);border-radius:14px}.filters-actions{display:flex;align-items:flex-end;gap:8px;justify-content:flex-end}.pagination{display:flex;align-items:center;justify-content:space-between;padding:14px;background:#ffffff05;border-top:1px solid var(--border)}.pagination-size{display:inline-flex;align-items:center;gap:8px}.page-size-select{background:var(--panel-strong);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:6px 10px}.pagination-nav{display:inline-flex;align-items:center;gap:10px}.empty-state{display:flex;align-items:center;gap:12px;padding:18px;border:1px dashed var(--border);border-radius:14px;color:var(--muted)}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#040a16a6;display:flex;align-items:center;justify-content:center;padding:20px;z-index:20}.modal{background:var(--panel-strong);border:1px solid var(--border);border-radius:16px;padding:20px;width:min(640px,100%);box-shadow:var(--shadow)}.modal.wide{width:min(960px,100%)}.modal.image-modal{width:min(980px,95vw)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.image-modal-body{display:flex;align-items:center;justify-content:center;max-height:70vh}.image-modal-body img{max-width:100%;max-height:70vh;width:auto;height:auto;border-radius:12px;border:1px solid var(--border);background:#000}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.stack{display:flex;flex-direction:column;gap:12px}.error-box,.success-box{padding:12px 14px;border-radius:12px;font-size:14px;margin:8px 0}.error-box{background:#f871711f;color:#fecdd3;border:1px solid rgba(248,113,113,.25)}.success-box{background:#34d3991f;color:#bbf7d0;border:1px solid rgba(52,211,153,.25)}.stream-modal{width:min(1180px,100%);background:linear-gradient(145deg,#2dd4bf0f,#0ea5e914),var(--panel-strong);border:1px solid var(--border);border-radius:18px;padding:22px;box-shadow:0 28px 68px #0000008c}.stream-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.stream-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0}.stream-title{margin:0}.stream-header-actions{display:flex;align-items:center;gap:10px}.stream-layout{display:flex;flex-direction:column;gap:16px}.stream-frame{position:relative;border:1px solid var(--border);border-radius:16px;overflow:hidden;aspect-ratio:16 / 9;min-height:360px;background:radial-gradient(circle at 20% 20%,rgba(45,212,191,.08),transparent 40%),#030712;box-shadow:inset 0 0 24px #00000073}.stream-frame img{width:100%;height:100%;object-fit:contain;display:block;background:#000}.live-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:#ef444429;color:#fecdd3;border:1px solid rgba(248,113,113,.35);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 16px 40px #ef44441f}.live-chip.floating{position:absolute;top:14px;left:14px}.live-dot{width:10px;height:10px;background-color:#ef4444;border-radius:50%;box-shadow:0 0 #ef4444a6;animation:livePulse 1.8s ease-out infinite}@keyframes livePulse{0%{box-shadow:0 0 #ef4444b3}60%{box-shadow:0 0 0 10px #ef444400}to{box-shadow:0 0 #ef444400}}.stream-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.meta-card{padding:14px;border:1px solid var(--border);border-radius:14px;background:#ffffff08;box-shadow:inset 0 1px #ffffff05}.meta-card.full{grid-column:1 / -1}.stream-url{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:13px;word-break:break-all;color:#c7d2fe;padding:10px 12px;border-radius:10px;background:#0f172a99;border:1px dashed var(--border)}.status-pill{display:inline-flex;align-items:center;gap:8px}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.detail-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.detail-value{font-weight:600}.clickable{cursor:pointer}.toast{position:fixed;bottom:20px;right:20px;padding:10px 14px;background:#0ea5e926;border:1px solid rgba(14,165,233,.4);border-radius:12px;color:#bfe5ff;box-shadow:var(--shadow)}.auth-card{grid-template-columns:1.2fr 1fr}@media (max-width: 900px){.auth-card{grid-template-columns:1fr}.auth-hero{border-right:none;border-bottom:1px solid var(--border)}.stream-modal-header{flex-direction:column;align-items:flex-start}.stream-header-actions{width:100%;justify-content:space-between}.stream-layout{gap:12px}.stream-frame{min-height:240px}}@media (max-width: 720px){.nav-tabs{flex-wrap:wrap}.page-container,.page{padding:16px}.filters{grid-template-columns:1fr}.page-header{align-items:flex-start}.list-switch{flex-direction:column;border-radius:14px}}.admin-login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#f8fafc,#eef2ff);color:#0f172a}.admin-login .auth-card{max-width:840px;width:min(840px,100%);background:#fff;border:1px solid #e2e8f0;box-shadow:0 20px 60px #0f172a1f}.admin-login .auth-hero{background:linear-gradient(135deg,#1e293b,#0f172a);color:#e2e8f0;padding:32px}.admin-login .auth-hero h2{color:#fff}.admin-login .auth-form{padding:28px;background:#fff}.admin-login .form-field input{background:#f8fafc;border-color:#e2e8f0;color:#0f172a}.admin-login .primary-button{background:#0f172a;border-color:#0f172a;color:#fff}.admin-login .primary-button:hover{background:#111827;border-color:#111827}.admin-login .error-box{background:#fef2f2;border-color:#fecdd3;color:#b91c1c}.header-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.tab-content{width:100%}.fade-in{animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.full-heatmap{padding:24px!important}.heatmap-container{padding-bottom:12px}.heatmap-card.full-heatmap .heatmap-grid{width:100%}.hour-label{font-size:9px;white-space:nowrap;display:flex;justify-content:center;align-items:center;margin-top:4px}.heatmap-hours{display:grid;grid-template-columns:32px 1fr;align-items:center;gap:6px;height:20px;border-top:1px solid rgba(255,255,255,.05);padding-top:8px}.heatmap-hours-list{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));align-items:center;gap:2px;width:100%}.heatmap-desc{margin-top:-12px;margin-bottom:24px}.heatmap-legend{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.stream-modal.wide{max-width:1100px;background:var(--card-bg);border:1px solid var(--border);box-shadow:0 24px 64px -12px #000000b3;overflow:hidden;display:flex;flex-direction:column}.stream-modal-header{padding:18px 24px;background:linear-gradient(to right,rgba(15,23,42,.4),transparent);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.stream-title{font-size:20px;font-weight:700;margin:0}.stream-layout{display:flex;flex-direction:column;gap:0}.stream-viewport{position:relative;width:100%;background:#000;aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center;overflow:hidden}.stream-viewport img{width:100%;height:100%;object-fit:contain}.stream-controls-overlay{position:absolute;bottom:0;left:0;right:0;padding:20px;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);display:flex;justify-content:flex-end;gap:12px;opacity:0;transition:opacity .3s ease;z-index:20}.stream-viewport:hover .stream-controls-overlay{opacity:1}.control-btn{width:44px;height:44px;border-radius:12px;background:#1e293bb3;border:1px solid rgba(255,255,255,.1);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.control-btn:hover{background:var(--primary);transform:scale(1.05);box-shadow:0 0 15px #0ea5e966}.stream-indicators{position:absolute;top:20px;left:20px;display:flex;gap:12px;z-index:10}.indicator-pill{padding:6px 12px;border-radius:6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;display:flex;align-items:center;gap:6px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1)}.indicator-pill.live{background:#ef4444cc;color:#fff;animation:pulse-red 2s infinite}.indicator-pill.stats{background:#0f172a99;color:#94a3b8}@keyframes pulse-red{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.stream-info-grid{padding:24px;background:#0f172a33;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.info-card{padding:16px;background:#ffffff05;border:1px solid var(--border);border-radius:12px}.info-label{font-size:11px;color:var(--muted);text-transform:uppercase;margin-bottom:4px}.info-value{font-weight:700;font-size:15px}.flash-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;opacity:0;pointer-events:none;z-index:100}.flash-active{animation:flashEffect .4s ease-out}@keyframes flashEffect{0%{opacity:.8}to{opacity:0}}.plate-text{font-family:Share Tech Mono,monospace;font-weight:600;letter-spacing:.05em;font-size:1rem;background:#ffffff08;padding:4px 8px;border-radius:4px;display:inline-flex;align-items:center}.plate-letters-white{color:#fff}.plate-digits{color:#e9f1ffcc}.direction-indicator{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:20px;font-size:.9em;font-weight:500;background:#ffffff0f;color:#94a3b8;border:1px solid rgba(255,255,255,.05)}.direction-indicator svg{opacity:.7}.monitoring-table-container{max-width:1400px;margin:0 auto}.monitoring-table thead tr.table-filter-row th{background:#0f172acc;padding:16px 8px;border-bottom:2px solid var(--border)}.monitoring-table thead tr:not(.table-filter-row) th{font-size:.9rem;font-weight:500;color:#fff;padding:16px 12px;text-transform:none;letter-spacing:.05em;background:#0f172a99;border-bottom:1px solid var(--border)}.monitoring-table td{vertical-align:middle}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s}.sortable-header:hover{background:#ffffff0d!important}.table-toolbar{display:flex;align-items:center;gap:14px;width:100%}.table-toolbar-left{display:flex;flex-direction:column;align-items:flex-start;min-width:220px}.table-title{font-size:1.15rem;font-weight:600;color:#fff}.table-toolbar-center{flex:1;display:flex;justify-content:center}.table-toolbar-center .centered-search{max-width:230px}.table-toolbar-right{display:flex;justify-content:flex-end;min-width:220px}.table-toolbar-field{display:flex;flex-direction:column;gap:6px}.table-toolbar-field select{width:auto;min-width:170px}.table-toolbar .muted-text.small{font-weight:300}.centered-search-container{display:flex;justify-content:center;width:100%;padding:8px 0}.centered-search{width:100%;max-width:400px}@media (max-width: 900px){.table-toolbar{flex-direction:column;align-items:stretch}.table-toolbar-left,.table-toolbar-right{min-width:0}.table-toolbar-center{justify-content:stretch}.table-toolbar-center .centered-search{max-width:none}}.plate-column{max-width:160px;white-space:normal;word-wrap:break-word}.plate-column-header{width:160px}.plate-stack-cell{padding-top:10px;padding-bottom:10px}.plate-stack{display:grid;grid-template-rows:auto auto;gap:6px;justify-items:center}.plate-stack-image{display:flex;justify-content:center;width:100%}.plate-stack-text{width:96px;max-width:100%;display:flex;justify-content:center;text-align:center}.plate-column .plate-text,.plate-column .plate-letters-white,.plate-column .plate-digits{font-family:Share Tech Mono,monospace}.date-time{display:flex;flex-direction:column;gap:4px;line-height:1.15}.date-time-time{font-weight:600}.date-time-date{color:var(--muted);font-size:.85em}.vehicle-cell{display:flex;flex-direction:column;gap:4px;justify-content:flex-start;line-height:1.15}.vehicle-primary{font-weight:600;line-height:1.15}.vehicle-secondary{color:var(--muted);font-size:.85em;line-height:1.15}.table-search-input{height:40px;border-radius:12px;padding:10px 36px 10px 40px;font-size:14px;color:var(--text);caret-color:var(--text);background:#02061759;border:1px solid rgba(148,163,184,.18);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.table-search-input::placeholder{color:#94a3b8bf}.table-search-input:focus{outline:none;background:#02061780;border-color:#38bdf88c;box-shadow:0 0 0 3px #38bdf826}.table-toolbar .input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#94a3b8d9;pointer-events:none;display:inline-flex;align-items:center;justify-content:center}.table-toolbar .input-clear{right:10px;width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.table-toolbar .input-clear:hover{background:#ffffff0f;color:#e2e8f0}.monitoring-table-wrapper .filter-inline{display:flex;gap:4px}.monitoring-table-wrapper .filter-inline input[type=date]{width:100%;min-width:125px}.monitoring-table-wrapper .filter-inline input[type=time]{width:100%;min-width:100px}.monitoring-table .full-width-input{width:100%}.image-modal{max-width:90vw;max-height:90vh;margin:auto;display:flex;flex-direction:column;animation:modalEnter .25s ease-out}@keyframes modalEnter{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.image-modal-body{padding:0;overflow:hidden;display:flex;justify-content:center;align-items:center;background:#000;position:relative}.image-modal-body img{max-width:100%;max-height:calc(90vh - 60px);object-fit:contain}.modal-backdrop.fullscreen{padding:0;background:#000}.image-modal.fullscreen{max-width:100vw;max-height:100vh;width:100vw;height:100vh;border-radius:0;border:none;padding:0;animation:none}.image-modal.fullscreen .image-modal-body{max-height:none}.image-modal.fullscreen .image-modal-body img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.image-modal.fullscreen .modal-header{position:relative;z-index:10;background:#0f172ae6;border-bottom:1px solid var(--border)}.image-modal.fullscreen .image-modal-body{flex-grow:1;background:#000}.image-modal-actions{display:flex;gap:8px}.fullscreen-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;transition:all .2s}.fullscreen-toggle:hover{background:#ffffff1a}.pagination{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#0f172a66;border-top:1px solid var(--border);gap:20px}.pagination-left,.pagination-right{flex:1}.pagination-right{display:flex;justify-content:flex-end}.pagination-center{flex:2;display:flex;justify-content:center}.pagination-nav-modern{display:flex;align-items:center;gap:8px}.pagination-pages{display:flex;align-items:center;gap:6px}.pagination-btn{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 8px;border-radius:12px;border:1px solid var(--border);background:#ffffff08;color:var(--muted);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.pagination-btn:hover:not(:disabled){background:#ffffff14;color:var(--text);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #0003}.pagination-btn.active{background:var(--accent);color:#064e3b;border-color:var(--accent);font-weight:700;box-shadow:0 0 20px #2dd4bf4d}.pagination-btn.active:hover{transform:none}.pagination-btn:disabled{opacity:.3;cursor:not-allowed;filter:grayscale(1)}.arrow-btn{color:var(--accent);background:#2dd4bf0d}.page-size-select.small{padding:8px 12px;font-size:13px;border-radius:10px;height:40px}html[data-theme=light] .pagination{background:#f1f5f9;border-top-color:#cbd5e1}html[data-theme=light] .pagination-btn{background:#fff;border-color:#cbd5e1;color:#475569}html[data-theme=light] .pagination-btn:hover:not(:disabled){background:#fff;border-color:#38bdf8;color:#0369a1;box-shadow:0 4px 12px #38bdf826}html[data-theme=light] .pagination-btn.active{background:#38bdf8;color:#fff;border-color:#38bdf8;box-shadow:0 4px 15px #38bdf84d}.plate-text{font-weight:500!important}.monitoring-table th.th-center{text-align:center}.data-table.monitoring-table{overflow:visible}.history-actions-header{width:72px}.table-toolbar-actions{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;justify-content:flex-end}.export-menu{position:relative;display:inline-flex;align-items:center;gap:8px}.export-progress{white-space:nowrap}.export-menu-popover{min-width:240px;width:max-content}.history-actions-cell{text-align:center}.history-menu{position:relative;display:inline-flex;align-items:center;justify-content:center}.history-menu-toggle{width:34px;height:34px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.history-menu-toggle:hover{background:#ffffff0f;border-color:var(--border)}.history-menu-toggle:focus-visible{outline:2px solid rgba(45,212,191,.5);outline-offset:2px}.history-menu-popover{position:absolute;right:0;top:calc(100% + 6px);min-width:220px;width:max-content;background:var(--panel-strong);border:1px solid var(--border);border-radius:12px;padding:6px;box-shadow:var(--shadow);z-index:6}.history-menu-item{width:100%;padding:10px 16px;border-radius:10px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer;font-size:14px;white-space:nowrap;display:flex;align-items:center}.history-menu-item:hover{background:#ffffff0f}.history-menu-item:disabled{opacity:.5;cursor:not-allowed}.list-modal-plate{display:flex;align-items:center;gap:10px}.form-field textarea{background:var(--panel-strong);border:1px solid var(--border);border-radius:12px;padding:12px 14px;color:var(--text);font-size:15px;resize:vertical;min-height:90px}.form-field textarea:focus{outline:2px solid rgba(45,212,191,.5);border-color:#2dd4bf66}.history-modal{display:flex;flex-direction:column;max-height:calc(100vh - 80px);overflow:hidden}.history-modal-body{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:16px;flex:1;min-height:0;overflow:hidden}.history-card{border:1px solid var(--border);border-radius:14px;padding:16px;background:var(--panel);display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto}.history-main{display:flex;flex-direction:column;gap:12px;min-height:0}.history-insights{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.history-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.history-card-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.history-card-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.history-image-card{margin:0;display:flex;flex-direction:column;gap:6px}.history-image-card figcaption{text-align:center;font-size:12px;color:var(--muted)}.history-card-images img{width:100%;height:auto;object-fit:contain;display:block;border-radius:12px;border:1px solid var(--border);background:#0f172a}.history-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.history-stat{border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:#ffffff08;display:flex;flex-direction:column;gap:6px}.history-stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.history-stat-value{font-size:16px;font-weight:700}.history-stat-hint{font-size:12px;color:var(--muted)}.history-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.history-breakdown-row{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px;padding:8px 10px;border:1px dashed var(--border);border-radius:10px;background:#0f172a66}.history-breakdown-label{font-size:12px;color:var(--muted)}.history-breakdown-value{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text);justify-content:flex-start}.history-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-start}.history-chip{padding:4px 8px;border-radius:999px;border:1px solid var(--border);font-size:12px;color:var(--text);background:#ffffff0a}.history-chip.in{border-color:#34d39980;color:#bbf7d0}.history-chip.out{border-color:#f8717180;color:#fecdd3}.history-chip.other{border-color:#94a3b873;color:#cbd5f5}.history-meta-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.history-events{display:flex;flex-direction:column;gap:12px;min-height:0;flex:1}.history-events-header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.history-thumb{width:72px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--border);background:#0f172a}.history-pagination{justify-content:space-between;gap:12px}.history-events-table{flex:1;min-height:0;overflow:auto}@media (max-width: 900px){.history-modal{max-height:calc(100vh - 40px)}.history-modal-body{grid-template-columns:1fr;overflow:auto}.history-stats,.history-insights,.history-breakdown{grid-template-columns:1fr}.history-card{overflow:visible}}
