@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#111827;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f0f4f8;font-family:Inter,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0;transition:background-color .2s,border-color .2s,transform .2s,box-shadow .2s}body{background:linear-gradient(135deg,#e8f0fe 0%,#f0f4f8 50%,#eff6ff 100%);min-width:320px;min-height:100vh;margin:0;display:flex;overflow-x:hidden}#root{width:100%}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:#e5e7eb}::-webkit-scrollbar-thumb{background:#93c5fd;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#2563eb}.app-container{flex-direction:column;width:100%;max-width:100vw;min-height:100vh;display:flex;overflow-x:hidden}.navbar{-webkit-backdrop-filter:blur(20px);z-index:100;background:#ffffffd9;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:.9rem 2.5rem;display:flex;position:sticky;top:0;box-shadow:0 1px 10px #00000012}.nav-mobile-toggle{color:#1f2937;cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:none}.nav-mobile-toggle:hover{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.logo-container{align-items:center;gap:.75rem;display:flex}.logo-icon-wrap{background:linear-gradient(135deg,#dbeafe,#eff6ff);border:1.5px solid #93c5fd;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:flex;box-shadow:0 2px 8px #2563eb26}.logo-icon{color:#2563eb;width:1.35rem;height:1.35rem}.logo-text{letter-spacing:.5px;background:linear-gradient(135deg,#1e3a8a 0%,#2563eb 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.35rem;font-weight:800}.logo-sub{text-transform:uppercase;color:#3b82f6;letter-spacing:2.5px;opacity:.75;margin-top:-2px;font-size:.6rem;font-weight:600}.navbar-status{color:#6b7280;align-items:center;gap:.5rem;font-size:.75rem;font-weight:500;display:flex}.status-dot{background:#10b981;border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite pulse-dot;box-shadow:0 0 5px #10b98180}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.82)}}.status-text{color:#6b7280;letter-spacing:.5px}.nav-links{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;gap:.3rem;padding:.25rem;display:flex}.nav-button{color:#6b7280;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:9px;align-items:center;gap:.45rem;padding:.5rem 1rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:color .18s,background .18s,box-shadow .18s;display:flex}.nav-button:hover{color:#1d4ed8;background:#dbeafe}.nav-button.active{color:#fff;background:linear-gradient(135deg,#2563eb 0%,#3b82f6 100%);font-weight:700;box-shadow:0 3px 12px #2563eb59}.dashboard-content{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:2.5rem}@media (width<=768px){.navbar{gap:.75rem;padding:.8rem 1rem}.logo-sub,.navbar-status{display:none}.nav-mobile-toggle{display:inline-flex}.nav-links{-webkit-backdrop-filter:blur(18px);z-index:200;background:#fffffff2;border-radius:14px;flex-direction:column;gap:.25rem;padding:.35rem;display:none;position:absolute;top:calc(100% + .5rem);left:1rem;right:1rem;box-shadow:0 10px 30px #0000001f}.nav-links.open{display:flex}.nav-button{justify-content:flex-start;padding:.7rem .9rem}.dashboard-content{padding:1.25rem 1rem}.page-title{font-size:1.35rem}.page-desc{font-size:.9rem}.glass-card{border-radius:14px;padding:1.25rem}.timeline-item{gap:.75rem;padding:.85rem}.timeline-time-badge{font-size:.78rem}.criminal-meta{flex-direction:column;align-items:flex-start;gap:.15rem}}.page-header{margin-bottom:2rem}.page-title-row{flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:.4rem;display:flex}.page-title-icon{color:#2563eb;flex-shrink:0}.page-title{color:#111827;font-size:1.75rem;font-weight:700}.record-count-badge{color:#1d4ed8;text-transform:uppercase;letter-spacing:.5px;background:#dbeafe;border:1px solid #93c5fd;border-radius:20px;margin-left:.5rem;padding:2px 10px;font-size:.7rem;font-weight:700}.page-desc{color:#6b7280;padding-left:.1rem;font-size:.95rem}.glass-card{-webkit-backdrop-filter:blur(12px);background:#ffffffeb;border:1px solid #e2e8f0;border-radius:16px;padding:2rem;box-shadow:0 4px 20px #00000012}.criminal-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.5rem;display:grid}@media (width<=480px){.criminal-grid{grid-template-columns:1fr;gap:1rem}}.criminal-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;flex-direction:column;gap:1rem;padding:1.25rem;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative;box-shadow:0 2px 8px #0000000d}.criminal-card:hover{border-color:#93c5fd;transform:translateY(-4px);box-shadow:0 8px 24px #2563eb1f}.criminal-img-wrapper{aspect-ratio:1;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.criminal-img{object-fit:cover;width:100%;height:100%}.no-img-placeholder{color:#9ca3af;flex-direction:column;align-items:center;gap:.5rem;display:flex}.criminal-info{flex-direction:column;gap:.35rem;display:flex}.criminal-name{color:#111827;text-transform:capitalize;font-size:1.1rem;font-weight:700}.criminal-meta{color:#6b7280;justify-content:space-between;font-size:.83rem;display:flex}.criminal-badge{color:#b91c1c;text-transform:uppercase;letter-spacing:.3px;background:#fee2e2;border:1px solid #fecaca;border-radius:6px;align-self:flex-start;padding:.2rem .55rem;font-size:.72rem;font-weight:700}.crimes-box{color:#374151;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;max-height:60px;padding:.5rem .65rem;font-size:.83rem;overflow-y:auto}.form-grid{grid-template-columns:1fr;gap:1.25rem;width:100%;min-width:0;display:grid}@media (width>=900px){.form-grid{grid-template-columns:1fr 1fr;gap:1.5rem}}.form-group-full{grid-column:1/-1}.form-group{flex-direction:column;gap:.45rem;width:100%;min-width:0;display:flex}.form-label{color:#374151;white-space:normal;word-wrap:break-word;overflow-wrap:anywhere;font-size:.875rem;font-weight:600;line-height:1.4;display:block}.form-input,select.form-input{color:#111827;box-sizing:border-box;background:#f9fafb;border:1.5px solid #e5e7eb;border-radius:8px;outline:none;width:100%;min-width:0;max-width:100%;padding:.7rem .9rem;font-family:inherit;font-size:16px;transition:border-color .18s,box-shadow .18s}.form-input:focus{background:#fff;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.submit-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2563eb 0%,#3b82f6 100%);border:none;border-radius:10px;grid-column:1/-1;justify-content:center;align-items:center;gap:.5rem;width:100%;margin-top:.5rem;padding:.9rem 1.25rem;font-family:inherit;font-size:1rem;font-weight:700;transition:box-shadow .18s,transform .15s;display:flex;box-shadow:0 4px 16px #2563eb59}@media (width<=480px){.form-grid{gap:1rem}.form-group-full{grid-column:auto}.glass-card{padding:1rem;overflow:hidden}.dashboard-content{padding:1rem .75rem}.dropzone{padding:1.5rem 1rem}.dropzone-subtext{white-space:normal;line-height:1.35}.modal-card{max-height:90vh;padding:.9rem}.navbar{flex-wrap:wrap}}.form-actions{flex-direction:column;gap:.75rem;width:100%;display:flex}.form-actions .submit-btn{grid-column:auto;width:100%;margin-top:0}.form-cancel-btn{width:100%}@media (width>=480px){.form-actions{flex-direction:row;align-items:stretch}.form-cancel-btn{width:auto;min-width:7rem}.form-actions .submit-btn{flex:1}}.submit-btn:hover{transform:translateY(-1px);box-shadow:0 6px 22px #2563eb80}.submit-btn:disabled{color:#9ca3af;box-shadow:none;cursor:not-allowed;background:#e5e7eb;transform:none}.dropzone{text-align:center;cursor:pointer;background:#f0f9ff;border:2px dashed #bfdbfe;border-radius:12px;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 1.5rem;transition:border-color .18s,background .18s;display:flex}.dropzone:hover{background:#dbeafe;border-color:#2563eb}.dropzone svg{color:#3b82f6;width:2.75rem;height:2.75rem}.dropzone-text{color:#1d4ed8;font-size:.95rem;font-weight:600}.dropzone-subtext{color:#6b7280;font-size:.8rem}.file-preview-grid{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.file-preview-item{border:2px solid #bfdbfe;border-radius:8px;width:4.5rem;height:4.5rem;position:relative;overflow:hidden}.file-preview-img{object-fit:cover;width:100%;height:100%}.model-toggle-container{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;align-self:flex-start;gap:.4rem;margin-bottom:1.5rem;padding:.25rem;display:flex}.model-toggle-btn{color:#6b7280;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:.4rem;padding:.48rem 1rem;font-family:inherit;font-size:.82rem;font-weight:600;transition:color .15s,background .15s;display:flex}.model-toggle-btn:hover{color:#1d4ed8;background:#dbeafe}.model-toggle-btn.active{color:#fff;background:#2563eb;box-shadow:0 2px 8px #2563eb4d}.scanner-layout{grid-template-columns:1.2fr 1fr;gap:2rem;display:grid}@media (width<=992px){.scanner-layout{grid-template-columns:1fr}}.scanner-left,.scanner-right{flex-direction:column;gap:1.5rem;display:flex}.live-control-panel{flex-direction:column;gap:1rem;display:flex}.live-video-shell{aspect-ratio:16/9;background:#0f172a;border:1px solid #e2e8f0;border-radius:12px;width:100%;position:relative;overflow:hidden}.live-video{object-fit:cover;width:100%;height:100%;display:block}.live-video-placeholder{color:#cbd5e1;background:linear-gradient(135deg,#111827 0%,#1f2937 100%);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;font-weight:700;display:flex;position:absolute;inset:0}.live-video-placeholder svg{color:#60a5fa}.inline-error{color:#b91c1c;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;align-items:flex-start;gap:.5rem;padding:.75rem .85rem;font-size:.86rem;font-weight:600;display:flex}.inline-error svg{flex-shrink:0;margin-top:1px}.live-actions{grid-template-columns:1fr auto;align-items:stretch;gap:.75rem;display:grid}.live-stop-btn{justify-content:center;align-items:center;gap:.4rem;min-width:6rem;display:inline-flex}.live-stop-btn:disabled{opacity:.62;cursor:not-allowed}.live-title-row{margin-bottom:1rem}.live-status-pill{color:#64748b;text-transform:uppercase;letter-spacing:.4px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;justify-content:center;align-items:center;min-width:4.25rem;padding:.25rem .65rem;font-size:.75rem;font-weight:800;display:inline-flex}.live-status-pill.active{color:#166534;background:#dcfce7;border-color:#86efac}.live-result-wrapper{min-height:280px}.clean-frame-note{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;align-items:center;gap:.5rem;margin-top:.85rem;padding:.7rem .85rem;font-size:.86rem;font-weight:700;display:flex}.clean-frame-note.warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.live-empty-log{padding:2rem 1rem}@media (width<=480px){.live-actions{grid-template-columns:1fr}.live-stop-btn{width:100%}}.result-image-wrapper{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;justify-content:center;align-items:center;min-height:350px;display:flex;position:relative;overflow:hidden}@media (width<=480px){.result-image-wrapper{min-height:260px}}.result-image{object-fit:contain;max-width:100%;max-height:500px}.scanning-overlay{background:#f0f9ffcc;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex;position:absolute;inset:0}.scan-laser{background:linear-gradient(90deg,#0000,#2563eb,#0000);width:100%;height:3px;animation:2s ease-in-out infinite scan;position:absolute;box-shadow:0 0 12px #2563eb}@keyframes scan{0%{top:0%}50%{top:100%}to{top:0%}}.spinner{border:3px solid #bfdbfe;border-top-color:#2563eb;border-radius:50%;width:2.5rem;height:2.5rem;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.timeline-list{flex-direction:column;gap:1rem;margin-top:1rem;display:flex}.timeline-item{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:1.25rem;padding:1rem;transition:box-shadow .18s;display:flex}@media (width<=480px){.timeline-item{flex-direction:column;align-items:flex-start}.timeline-face-crop{width:4rem;height:4rem}.timeline-time-badge{align-self:flex-start}}.timeline-item:hover{box-shadow:0 4px 16px #00000012}.timeline-time-badge{color:#1d4ed8;white-space:nowrap;background:#dbeafe;border:1px solid #93c5fd;border-radius:6px;padding:.3rem .7rem;font-family:monospace;font-size:.82rem;font-weight:700}.timeline-face-crop{background:#fef2f2;border:2px solid #fca5a5;border-radius:8px;flex-shrink:0;width:3.5rem;height:3.5rem;overflow:hidden}.timeline-face-img{object-fit:cover;width:100%;height:100%}.timeline-detail{flex:1}.timeline-crim-name{color:#111827;text-transform:capitalize;font-size:1rem;font-weight:700}.timeline-crim-detail{color:#6b7280;margin-top:.1rem;font-size:.8rem}.alert{border-radius:10px;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:.9rem 1.1rem;font-size:.93rem;font-weight:500;display:flex}.alert-success{color:#166534;background:#dcfce7;border:1px solid #86efac}.alert-error{color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5}.empty-state{color:#9ca3af;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:4rem 2rem;display:flex}.empty-state svg{color:#d1d5db;width:3rem;height:3rem}.card-title-row{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.card-title{color:#111827;align-items:center;gap:.5rem;font-size:1.15rem;font-weight:700;display:flex}.card-title svg{color:#2563eb}.btn-secondary{color:#374151;cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:.45rem 1rem;font-family:inherit;font-size:.84rem;font-weight:600;transition:background .15s,color .15s}.btn-secondary:hover{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.btn-danger{color:#b91c1c;cursor:pointer;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;padding:.45rem 1rem;font-family:inherit;font-size:.84rem;font-weight:700}.btn-danger:hover{background:#fecaca;border-color:#fca5a5}.btn-danger:disabled{opacity:.65;cursor:not-allowed}.card-actions{gap:.5rem;margin-top:.75rem;display:flex}@media (width<=480px){.card-actions{flex-direction:column}.btn-secondary,.btn-danger{width:100%}}.modal-backdrop{z-index:500;background:#0f172a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{background:#fffffff5;border:1px solid #e2e8f0;border-radius:16px;width:100%;max-width:760px;max-height:85vh;padding:1.25rem;overflow:auto;box-shadow:0 18px 45px #0000002e}@media (width<=480px){.modal-card{border-radius:14px;padding:1rem}}.modal-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.modal-title{color:#111827;font-size:1.1rem;font-weight:800}.modal-close{cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:inline-flex}.modal-close:hover{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}
