:root{--bg-0: #eef1f7;--bg-1: #f7f8fc;--bg-2: #ffffff;--bg-3: #e4e9f4;--bg-card: #ffffff;--navy: #0f2252;--navy-mid: #1a3370;--navy-light: #2a4a96;--gold: #b8922a;--gold-light: #d4a93c;--gold-dim: rgba(184,146,42,.13);--red: #c0272d;--red-dim: rgba(192,39,45,.1);--border: #d0d8eb;--border-focus: var(--gold);--text-1: #0d1e3e;--text-2: #3d5080;--text-3: #8898bb;--accent: var(--gold);--accent-dim: var(--gold-dim);--accent-hover: #9e7c22;--green: #16a34a;--yellow: #d97706;--blue: #1a3370;--purple: #6d28d9;--gray: #6b7280;--r-sm: 4px;--r: 8px;--r-lg: 12px;--r-xl: 16px;--shadow: 0 1px 6px rgba(15,34,82,.1);--shadow-lg: 0 6px 28px rgba(15,34,82,.16);--sidebar-w: 232px;--header-h: 56px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-0);color:var(--text-1);font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--navy-light);text-decoration:none}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-w);background:var(--navy);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;box-shadow:2px 0 12px #0f22522e}.sidebar__logo{padding:20px 16px 16px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:6px}.sidebar__logo-tas{font-size:11px;font-weight:800;color:var(--gold-light);letter-spacing:.22em;text-transform:uppercase;margin-bottom:3px}.sidebar__logo-name{font-size:15px;font-weight:800;color:#fff;letter-spacing:.03em;text-transform:uppercase;line-height:1.2;margin-bottom:8px}.sidebar__logo-sub{font-size:10px;color:#ffffff59;font-weight:400;letter-spacing:.08em;text-transform:uppercase}.sidebar__section{padding:10px 12px 4px;font-size:10px;color:#ffffff59;text-transform:uppercase;letter-spacing:.12em}.sidebar__link{display:flex;align-items:center;gap:10px;padding:9px 16px;margin:2px 8px;border-radius:var(--r);color:#ffffffa6;cursor:pointer;border:none;background:none;width:calc(100% - 16px);text-align:left;font-size:13.5px;transition:background .12s,color .12s;font-family:inherit}.sidebar__link:hover{background:#ffffff1a;color:#fff}.sidebar__link--active{background:var(--gold-dim);color:var(--gold-light);border:1px solid rgba(212,169,60,.25)}.sidebar__link--active:hover{background:#d4a93c33}.sidebar__link .icon{font-size:15px;flex-shrink:0}.sidebar__bottom{margin-top:auto;padding:12px 10px;border-top:1px solid rgba(255,255,255,.1)}.sidebar__role{font-size:11px;color:#fff6;padding:0 8px 8px}.sidebar__role strong{color:var(--gold-light)}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{height:var(--header-h);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--bg-2);flex-shrink:0;box-shadow:0 1px 4px #0f225212}.topbar__title{font-size:16px;font-weight:700;color:var(--navy);letter-spacing:.01em}.topbar__actions{display:flex;align-items:center;gap:10px}.page{flex:1;overflow-y:auto;padding:24px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;flex-wrap:wrap}.page-header__left{display:flex;flex-direction:column;gap:2px}.page-header__title{font-size:22px;font-weight:700;color:var(--navy)}.page-header__sub{font-size:12px;color:var(--text-3)}.page-header__actions{display:flex;gap:8px;flex-wrap:wrap}.content-layout{display:flex;gap:16px;align-items:flex-start}.filter-panel{width:240px;flex-shrink:0;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px;box-shadow:var(--shadow);max-height:calc(100vh - 120px);overflow-y:auto;position:sticky;top:16px}.filter-panel__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.filter-panel__title{font-size:11px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.1em}.filter-panel__clear{font-size:11px;color:var(--gold);cursor:pointer;background:none;border:none;padding:0;font-family:inherit}.filter-panel__clear:hover{text-decoration:underline}.filter-section{border-top:1px solid var(--border)}.filter-section:last-child{border-bottom:1px solid var(--border)}.filter-section__toggle{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:none;padding:8px 0;font-size:11px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;font-family:inherit}.filter-section__toggle:hover{color:var(--gold)}.filter-section__chevron{font-size:10px;color:var(--text-3)}.filter-section__body{padding-bottom:6px}.filter-group{margin-bottom:10px}.filter-group__label{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px;display:block;font-weight:600}.input-sm{height:30px;font-size:12px;padding:0 8px}.select-sm{height:30px;font-size:12px;padding:0 6px}.filter-count{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--gold);color:#fff;border-radius:99px;font-size:10px;font-weight:700;margin-left:6px}.table-area{flex:1;min-width:0}.search-wrap{position:relative;margin-bottom:14px}.search-wrap .search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-3);font-size:14px;pointer-events:none}.search-input{width:100%;background:var(--bg-2);border:1px solid var(--border);color:var(--text-1);padding:8px 12px 8px 34px;border-radius:var(--r);font-size:13.5px;outline:none;transition:border-color .15s,box-shadow .15s;font-family:inherit}.search-input:focus{border-color:var(--navy-light);box-shadow:0 0 0 3px #2a4a961f}.search-input::placeholder{color:var(--text-3)}.table-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll table{min-width:900px}.table-meta{padding:10px 16px;font-size:11px;color:var(--text-3);border-bottom:1px solid var(--border);background:var(--bg-1);display:flex;align-items:center;gap:6px}.table-meta strong{color:var(--navy)}table{width:100%;border-collapse:collapse}thead{position:sticky;top:0;z-index:1}th{padding:11px 18px;text-align:left;font-size:11px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.07em;background:var(--bg-1);border-bottom:2px solid var(--border);white-space:nowrap;-webkit-user-select:none;user-select:none}th.sortable{cursor:pointer}th.sortable:hover{color:var(--navy-light);background:#edf0f8}th.sort-active{color:var(--gold)}.sort-icon{margin-left:4px;opacity:.4}th.sort-active .sort-icon{opacity:1}td{padding:12px 18px;border-bottom:1px solid var(--border);color:var(--text-1);font-size:13.5px;white-space:nowrap}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background .1s;cursor:pointer}tbody tr:hover td{background:#f0f4fc}.td-muted{color:var(--text-3);font-style:italic}.td-warning{color:var(--red);font-size:12px;font-weight:600}.td-actions{display:flex;gap:6px;align-items:center}.empty-state{text-align:center;padding:48px 24px;color:var(--text-3)}.empty-state__icon{font-size:32px;margin-bottom:10px;opacity:.4}.empty-state__text{font-size:14px;margin-bottom:4px;color:var(--text-2);font-weight:600}.empty-state__sub{font-size:12px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:24px}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--shadow);border-left:4px solid transparent}.stat-card--accent{border-left-color:var(--gold)}.stat-card__val{font-size:30px;font-weight:800;color:var(--navy);line-height:1;margin-bottom:5px}.stat-card--accent .stat-card__val{color:var(--gold)}.stat-card__label{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--r);font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:background .12s,border-color .12s,color .12s,box-shadow .12s;white-space:nowrap;font-family:inherit}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--navy);color:#fff;border-color:var(--navy)}.btn-primary:hover:not(:disabled){background:var(--navy-mid);border-color:var(--navy-mid);box-shadow:0 2px 8px #0f225240}.btn-secondary{background:#fff;color:var(--navy);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-1);border-color:var(--navy-light)}.btn-ghost{background:transparent;color:var(--text-2);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--bg-3);color:var(--navy)}.btn-danger{background:transparent;color:var(--red);border-color:var(--red)}.btn-danger:hover:not(:disabled){background:var(--red-dim)}.btn-sm{padding:4px 10px;font-size:12px}.btn-lg{padding:10px 20px;font-size:14px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:11px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.07em}.input,.select,.textarea{background:var(--bg-2);border:1px solid var(--border);color:var(--text-1);padding:8px 12px;border-radius:var(--r);font-size:13.5px;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s;width:100%}.input:focus,.select:focus,.textarea:focus{border-color:var(--navy-light);box-shadow:0 0 0 3px #2a4a961f}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.select option{background:#fff}.textarea{resize:vertical;min-height:80px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .col-span-2{grid-column:span 2}.form-error{font-size:11px;color:var(--red);margin-top:2px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a143c73;display:flex;align-items:center;justify-content:center;z-index:100;padding:24px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-xl);width:100%;max-width:640px;max-height:calc(100vh - 48px);display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.modal--wide{max-width:900px}.modal__header{padding:18px 22px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:var(--bg-1);border-radius:var(--r-xl) var(--r-xl) 0 0}.modal__title{font-size:16px;font-weight:700;color:var(--navy)}.modal__close{background:none;border:none;color:var(--text-3);cursor:pointer;font-size:20px;line-height:1;padding:2px}.modal__close:hover{color:var(--navy)}.modal__body{padding:22px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.modal__footer{padding:14px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;flex-shrink:0;background:var(--bg-1);border-radius:0 0 var(--r-xl) var(--r-xl)}.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:99px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border:1px solid}.badge-wanted{color:var(--red);border-color:var(--red);background:var(--red-dim)}.badge-arrested{color:#92400e;border-color:#d97706;background:#d977061a}.badge-convicted{color:#5b21b6;border-color:#7c3aed;background:#7c3aed1a}.badge-released{color:#15803d;border-color:#16a34a;background:#16a34a1a}.badge-deceased{color:var(--gray);border-color:var(--gray);background:#6b72801a}.badge-open{color:var(--red);border-color:var(--red);background:var(--red-dim)}.badge-under_investigation{color:#92400e;border-color:#d97706;background:#d977061a}.badge-solved{color:#15803d;border-color:#16a34a;background:#16a34a1a}.badge-cold_case{color:var(--navy-light);border-color:var(--navy-light);background:#2a4a961a}.badge-felony{color:#92400e;border-color:#d97706;background:#d977061a}.badge-capital{color:var(--red);border-color:var(--red);background:var(--red-dim)}.badge-misdemeanor{color:var(--navy-light);border-color:var(--navy-light);background:#2a4a961a}.badge-sysadmin{color:#7c2d12;border-color:#c2410c;background:#c2410c1a}.badge-admin{color:var(--gold);border-color:var(--gold);background:var(--gold-dim)}.badge-viewer,.badge-user{color:var(--navy-light);border-color:var(--navy-light);background:#2a4a961a}.spinner-wrap{display:flex;align-items:center;justify-content:center;padding:48px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--navy);border-radius:50%;animation:spin .7s linear infinite}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 60%,#1f4080 100%);padding:24px}.login-card{width:100%;max-width:400px;background:#fff;border-radius:var(--r-xl);padding:40px 36px;box-shadow:0 16px 48px #0a143c59}.login-card__header{text-align:center;margin-bottom:24px}.login-card__logo-img{width:220px;max-width:100%;margin:0 auto 20px;display:block}.login-card__title{font-size:22px;font-weight:800;color:#000;letter-spacing:.02em;margin-bottom:4px}.login-card__sub{font-size:11px;color:var(--text-3);text-align:center}.login-demo-btns{margin-bottom:16px}.login-demo-label{display:block;font-size:10px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;text-align:center}.login-demo-row{display:flex;gap:7px}.btn-demo{flex:1;justify-content:center;padding:9px 8px;font-size:12px;font-weight:700;border-radius:var(--r);border:1.5px solid;cursor:pointer;font-family:inherit;transition:all .12s}.btn-demo:disabled{opacity:.45;cursor:not-allowed}.btn-demo--sysadmin{background:var(--gold);color:#fff;border-color:var(--gold)}.btn-demo--sysadmin:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-demo--admin{background:var(--navy);color:#fff;border-color:var(--navy)}.btn-demo--admin:hover:not(:disabled){background:var(--navy-mid)}.btn-demo--viewer{background:#fff;color:var(--navy);border-color:var(--navy)}.btn-demo--viewer:hover:not(:disabled){background:var(--bg-0)}.login-divider{display:flex;align-items:center;gap:10px;margin:16px 0;color:var(--text-3);font-size:11px}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.login-card__form{display:flex;flex-direction:column;gap:14px}.login-card__error{font-size:12px;color:var(--red);background:var(--red-dim);border:1px solid var(--red);border-radius:var(--r);padding:8px 12px}.dashboard-logo{height:80px;width:auto;object-fit:contain}.bulk-format-hint{background:var(--bg-0);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px;font-family:Courier New,monospace;font-size:11px;color:var(--text-2);overflow-x:auto;white-space:pre;line-height:1.6}.bulk-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:16px}.bulk-tab{padding:8px 16px;font-size:13px;color:var(--text-3);cursor:pointer;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:inherit;font-weight:500}.bulk-tab:hover{color:var(--navy)}.bulk-tab--active{color:var(--navy);border-bottom-color:var(--gold);font-weight:700}.preview-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-3);margin-bottom:8px}.preview-header strong{color:var(--green)}.preview-error-row td{color:var(--red)!important;font-size:12px}.detail-section{margin-bottom:6px}.detail-section__title{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px;font-weight:700}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.detail-item{background:var(--bg-0);border-radius:var(--r);padding:10px 12px;border:1px solid var(--border)}.detail-item__key{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px;font-weight:700}.detail-item__val{font-size:13.5px;color:var(--navy);font-weight:500}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.dashboard-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}.dashboard-card__header{padding:14px 18px;border-bottom:1px solid var(--border);font-size:13px;font-weight:700;color:var(--navy);background:var(--bg-1);letter-spacing:.01em}.users-notice{position:fixed;top:16px;right:16px;z-index:200;background:var(--navy);color:#fff;padding:10px 18px;border-radius:var(--r-lg);font-size:13px;font-weight:500;box-shadow:var(--shadow-lg);animation:slideIn .2s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.user-status-btn{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border:1px solid;border-radius:99px;padding:2px 10px;cursor:pointer;background:none;font-family:inherit;transition:all .12s}.user-status-btn--active{color:#15803d;border-color:#16a34a;background:#16a34a14}.user-status-btn--active:hover{background:#16a34a2e}.user-status-btn--inactive{color:var(--gray);border-color:var(--gray);background:#6b728014}.user-status-btn--inactive:hover{background:#6b72802e}.users-role-cards{display:flex;gap:14px;margin-bottom:24px}.users-role-card{flex:1;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--shadow);border-left:4px solid var(--gold)}.users-role-card__count{font-size:30px;font-weight:800;color:var(--navy);line-height:1;margin-bottom:4px}.users-role-card__label{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.user-status{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.user-status--active{color:#15803d}.user-status--inactive{color:var(--gray)}.users-info-box{margin-top:24px;padding:16px 20px;background:#2a4a960f;border:1px solid rgba(42,74,150,.18);border-radius:var(--r-lg);font-size:13px;color:var(--text-2)}.users-info-box strong{display:block;color:var(--navy);font-weight:700;margin-bottom:10px}.users-info-box ul{list-style:none;display:flex;flex-direction:column;gap:8px}.users-info-box li{display:flex;align-items:center;gap:8px}.alert{padding:10px 14px;border-radius:var(--r);font-size:13px;border:1px solid}.alert-error{background:var(--red-dim);border-color:var(--red);color:var(--red)}.alert-info{background:#2a4a9614;border-color:var(--navy-light);color:var(--navy-light)}.search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-3);cursor:pointer;font-size:16px;line-height:1;padding:2px 4px}.search-clear:hover{color:var(--text-1)}.table-meta__filter{color:var(--gold);font-weight:600}.pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:1px solid var(--border);background:var(--bg-1);gap:12px;flex-wrap:wrap}.pagination__info{font-size:12px;color:var(--text-3)}.pagination__info strong{color:var(--text-2)}.pagination__controls{display:flex;align-items:center;gap:4px}.pagination__btn{padding:4px 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-2);color:var(--text-2);font-size:12px;cursor:pointer;font-family:inherit;transition:background .1s,border-color .1s,color .1s}.pagination__btn:hover:not(:disabled){border-color:var(--navy-light);color:var(--navy);background:var(--bg-3)}.pagination__btn:disabled{opacity:.35;cursor:not-allowed}.pagination__num{min-width:30px;text-align:center}.pagination__num--active{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:600}.pagination__num--active:hover{background:var(--navy-mid)!important;border-color:var(--navy-mid)!important;color:#fff!important}.pagination__ellipsis{padding:0 4px;color:var(--text-3);font-size:12px}.quick-filters{display:flex;flex-direction:column;gap:6px}.quick-filter-btn{background:none;border:1px solid transparent;border-radius:var(--r);cursor:pointer;padding:3px 6px;text-align:left;transition:background .1s,border-color .1s}.quick-filter-btn:hover{background:var(--bg-3);border-color:var(--border)}.quick-filter-btn.active{background:#2a4a9612;border-color:var(--navy-light)}.td-physical{font-size:12px;color:var(--text-2)}.td-location{font-size:12px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-text{font-size:13px;color:var(--text-2);line-height:1.7}.detail-empty{font-size:13px;color:var(--text-3);font-style:italic}.detail-section__count{display:inline-flex;align-items:center;justify-content:center;margin-left:8px;width:20px;height:20px;background:var(--navy);color:#fff;border-radius:99px;font-size:11px;font-weight:700}.detail-crimes{display:flex;flex-direction:column;gap:10px}.detail-crime-row{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r);padding:10px 14px}.detail-crime-row__main{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}.detail-crime-row__title{font-weight:600;font-size:13.5px;color:var(--navy)}.detail-crime-row__type{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}.detail-crime-row__meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px}.detail-crime-row__date,.detail-crime-row__loc{font-size:11px;color:var(--text-3)}.detail-crime-row__loc:before{content:"· "}.detail-crime-row__desc{font-size:12px;color:var(--text-2);margin-top:4px;line-height:1.5}.form-section{margin-bottom:20px}.form-section__title{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--text-3);padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:12px}.td-mono{font-family:monospace;font-size:12px;color:var(--text-2)}.criminal-search__wrap{position:relative}.criminal-search__dropdown{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:100;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-lg);list-style:none;max-height:240px;overflow-y:auto}.criminal-search__option{padding:8px 12px;cursor:pointer;font-size:13px;display:flex;align-items:center;gap:8px;transition:background .1s}.criminal-search__option:hover{background:var(--bg-3)}.criminal-search__scn{font-size:11px;color:var(--text-3);font-family:monospace}.criminal-search__status{margin-left:auto;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3)}.criminal-search__selected{display:flex;align-items:center;justify-content:space-between;background:#2a4a9612;border:1px solid var(--navy-light);border-radius:var(--r);padding:8px 12px;font-size:13px}.criminal-search__name{color:var(--navy);font-weight:500}.criminal-search__clear{background:none;border:none;color:var(--text-3);cursor:pointer;font-size:16px;line-height:1;padding:0 2px}.criminal-search__clear:hover{color:var(--text-1)}.criminal-search__empty{padding:10px 12px;font-size:13px;color:var(--text-3);font-style:italic}.detail-panel__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0000;pointer-events:none;transition:background .2s}.detail-panel__backdrop--open{background:#00000059;pointer-events:all}.detail-panel{position:fixed;top:0;right:0;bottom:0;z-index:201;width:480px;max-width:100vw;background:var(--bg-2);border-left:1px solid var(--border);display:flex;flex-direction:column;transform:translate(100%);transition:transform .22s cubic-bezier(.4,0,.2,1);box-shadow:-4px 0 24px #0000001f}.detail-panel--open{transform:translate(0)}.dp-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid var(--border);background:var(--navy);color:#fff;flex-shrink:0}.dp-header__main{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.dp-header__id{font-size:10px;letter-spacing:.12em;font-family:monospace;opacity:.6;text-transform:uppercase}.dp-header__name{font-size:18px;font-weight:700;margin:0;line-height:1.3}.dp-header__badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.dp-close{background:#ffffff1a;border:none;color:#fff;width:30px;height:30px;border-radius:var(--r-sm);font-size:18px;line-height:1;cursor:pointer;flex-shrink:0;margin-left:12px;margin-top:2px;display:flex;align-items:center;justify-content:center;transition:background .1s}.dp-close:hover{background:#fff3}.dp-body{flex:1;overflow-y:auto;padding:0 0 20px}.dp-section{padding:16px 20px;border-bottom:1px solid var(--border)}.dp-section__title{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);font-weight:700;margin-bottom:12px}.dp-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}.dp-field{display:flex;flex-direction:column;gap:2px}.dp-field--full{grid-column:1 / -1}.dp-field__label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);font-weight:600}.dp-field__value{font-size:13px;color:var(--text-1);font-weight:500;word-break:break-word}.dp-field__value--text{font-weight:400;color:var(--text-2);line-height:1.65}.dp-field__value--evidence{font-family:monospace;font-size:12px;white-space:pre-wrap;background:var(--bg-1);padding:10px;border-radius:var(--r-sm);border:1px solid var(--border)}.dp-field__empty{color:var(--text-3);font-weight:400}.dp-crime-list{display:flex;flex-direction:column;gap:8px}.dp-crime-card{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r);padding:10px 12px}.dp-crime-card__top{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.dp-crime-card__title{font-weight:600;font-size:13px;color:var(--navy)}.dp-crime-card__type{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}.dp-crime-card__badges{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:4px}.dp-crime-card__date,.dp-crime-card__loc{font-size:11px;color:var(--text-3)}.dp-crime-card__loc:before{content:"· "}.dp-crime-card__desc{font-size:12px;color:var(--text-2);line-height:1.5;margin-top:4px}.dp-loading{font-size:13px;color:var(--text-3);padding:4px 0}.dp-empty{font-size:13px;color:var(--text-3);font-style:italic}.dp-footer{display:flex;gap:8px;padding:14px 20px;border-top:1px solid var(--border);background:var(--bg-1);flex-shrink:0}
