:root{
  --bg:#050711;--bg2:#08111e;--panel:rgba(11,22,40,.82);--panel2:rgba(18,31,54,.86);
  --line:rgba(81,230,255,.28);--line2:rgba(255,180,72,.28);--text:#e7f7ff;--muted:#8faabd;
  --cyan:#50e6ff;--mag:#ff4fd8;--amber:#ffbd49;--red:#ff4967;--green:#62ffb1;
  --shadow:0 20px 80px rgba(0,0,0,.45);--radius:18px;--font:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}
*{box-sizing:border-box} html{height:100%;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font)} body{margin:0;min-height:100vh;min-height:100svh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:radial-gradient(circle at 20% 0%,rgba(80,230,255,.14),transparent 34%),radial-gradient(circle at 95% 10%,rgba(255,79,216,.11),transparent 34%),linear-gradient(135deg,#050711,#07101b 45%,#03050c);}
a{color:var(--cyan);text-decoration:none} a:hover{text-decoration:underline}.noise{position:fixed;inset:0;pointer-events:none;opacity:.08;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(to bottom,#000,transparent 90%)}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;justify-content:space-between;padding:14px 22px;background:rgba(3,7,15,.82);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);box-shadow:0 6px 30px rgba(0,0,0,.26)}
.brand{display:flex;align-items:center;gap:12px;color:var(--text);min-width:245px}.brand:hover{text-decoration:none}.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(80,230,255,.18),rgba(255,79,216,.13));box-shadow:0 0 28px rgba(80,230,255,.24);font-weight:900;letter-spacing:.08em}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.mainnav{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;justify-content:flex-end;overflow-x:auto;min-width:0;scrollbar-width:thin}.mainnav a{padding:9px 11px;border:1px solid transparent;border-radius:12px;color:#d9f7ff;font-size:14px;white-space:nowrap;flex:0 0 auto}.mainnav a:hover{border-color:var(--line);background:rgba(80,230,255,.08);text-decoration:none}.mainnav a.nav-cashoffice{border-color:rgba(255,189,73,.32);background:rgba(255,189,73,.07);color:#ffe1a1}.nav-toggle{display:none;background:rgba(80,230,255,.08);border:1px solid var(--line);color:var(--text);border-radius:12px;padding:10px 12px}.page-shell{width:min(1180px,calc(100% - 28px));margin:0 auto;padding:26px 0 42px;min-height:0}.page-title{padding:24px 0 16px}.eyebrow{color:var(--amber);text-transform:uppercase;letter-spacing:.18em;font-size:12px;margin:0 0 8px}.page-title h1{font-size:clamp(30px,5vw,58px);line-height:1;margin:0;text-shadow:0 0 28px rgba(80,230,255,.24)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.card{grid-column:span 12;background:linear-gradient(180deg,var(--panel),rgba(7,13,25,.88));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;position:relative;overflow:hidden}.card:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(80,230,255,.08),transparent);transform:translateX(-100%);animation:scan 7s linear infinite}@keyframes scan{to{transform:translateX(100%)}}.card h2,.card h3{margin:0 0 12px}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-6{grid-column:span 6}.span-8{grid-column:span 8}.span-12{grid-column:span 12}
.table-wrap{overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:14px}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:12px 11px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left;vertical-align:top}th{color:var(--amber);font-size:12px;text-transform:uppercase;letter-spacing:.12em;background:rgba(255,189,73,.06)}tr:hover td{background:rgba(80,230,255,.04)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}label{color:#bdefff;font-size:13px}input,select,textarea{width:100%;border:1px solid rgba(80,230,255,.25);border-radius:12px;padding:11px 12px;background:rgba(3,8,16,.8);color:var(--text);outline:none}textarea{min-height:110px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(80,230,255,.12)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:10px 13px;background:rgba(80,230,255,.08);color:var(--text);font-weight:700;cursor:pointer}.btn:hover{text-decoration:none;filter:brightness(1.1)}.btn-primary{background:linear-gradient(135deg,rgba(80,230,255,.26),rgba(255,79,216,.16));border-color:rgba(80,230,255,.48)}.btn-danger{border-color:rgba(255,73,103,.45);background:rgba(255,73,103,.12)}.btn-ghost{background:transparent}.badge{display:inline-flex;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:4px 9px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;background:rgba(255,255,255,.06);color:#eafaff}.badge-wanted,.badge-detain,.badge-critical,.badge-stolen,.badge-high{border-color:rgba(255,73,103,.55);color:#ffd1d8;background:rgba(255,73,103,.14)}.badge-clear,.badge-active,.badge-registered,.badge-low{border-color:rgba(98,255,177,.45);color:#d6ffeb;background:rgba(98,255,177,.10)}.badge-observe,.badge-question,.badge-medium{border-color:rgba(255,189,73,.55);color:#fff0cd;background:rgba(255,189,73,.12)}.alert{border:1px solid rgba(255,73,103,.55);background:linear-gradient(135deg,rgba(255,73,103,.18),rgba(255,189,73,.08));border-radius:16px;padding:14px;margin:12px 0}.alert strong{color:#ffd1d8}.flash{border-radius:14px;padding:12px 14px;margin:10px 0}.flash-ok{background:rgba(98,255,177,.12);border:1px solid rgba(98,255,177,.35)}.flash-error{background:rgba(255,73,103,.12);border:1px solid rgba(255,73,103,.35)}.muted{color:var(--muted)}.hero{padding:28px;background:linear-gradient(135deg,rgba(80,230,255,.14),rgba(255,79,216,.10));border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.hero h2{font-size:clamp(28px,4vw,54px);line-height:1;margin:0 0 12px}.kpi{font-size:34px;font-weight:900;color:var(--cyan)}.person-photo,.photo-placeholder{width:94px;height:118px;border-radius:14px;border:1px solid rgba(80,230,255,.25);object-fit:cover;background:rgba(255,255,255,.05);display:grid;place-items:center;color:var(--muted);font-size:12px;text-align:center}.record-head{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 22px;color:var(--muted);border-top:1px solid rgba(80,230,255,.12);background:rgba(0,0,0,.25);width:100%;align-self:end}.cookie-box{position:fixed;right:18px;bottom:18px;max-width:390px;z-index:50;background:rgba(7,13,25,.96);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow)}
.print-only{display:none}.doc-options{display:flex;gap:10px;flex-wrap:wrap}.law-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--amber)}
@media(max-width:900px){.topbar{align-items:flex-start}.nav-toggle{display:block}.mainnav{display:none;width:100%;position:absolute;left:0;right:0;top:75px;padding:12px 16px;background:rgba(3,7,15,.96);border-bottom:1px solid var(--line);overflow-x:visible}.mainnav.is-open{display:grid;grid-template-columns:repeat(2,1fr)}.brand{min-width:auto}.grid{grid-template-columns:1fr}.span-3,.span-4,.span-6,.span-8,.span-12{grid-column:1/-1}.form-grid{grid-template-columns:1fr}.page-shell{width:min(100% - 18px,1180px);padding-top:16px}.card{padding:14px}.footer{font-size:13px}.cookie-box{left:10px;right:10px;bottom:10px;max-width:none}.mainnav a{border-color:rgba(80,230,255,.12)}}
@page{size:A4;margin:12mm}
@media print{html,body{background:#fff!important;color:#111!important}.topbar,.footer,.page-title,.cookie-box,.no-print,.actions{display:none!important}.page-shell{width:100%;padding:0;margin:0}.card{box-shadow:none!important;border:none!important;background:#fff!important;color:#111!important;padding:0;margin:0 0 8mm!important}.card:before{display:none!important}.print-only{display:block!important}.lawbook-intro{display:none!important}.lawbook-print-title{border-bottom:1px solid #111;margin-bottom:6mm}.lawbook-section{break-inside:auto;page-break-inside:auto}.law-grid{display:block!important}.law-card{break-inside:avoid;page-break-inside:avoid;border:1px solid #222!important;background:#fff!important;color:#111!important;margin:0 0 5mm!important;padding:4mm!important}.law-card *{color:#111!important}.badge{border-color:#111!important;color:#111!important;background:#fff!important}.law-penalty span{border-color:#777!important;background:#fff!important;color:#111!important}}

/* --- Navigation v2: grouped tactical navbar, Cashoffice visible, mobile friendly --- */
.topbar{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:14px 18px;
  padding:12px 18px;
}
.mainnav{
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
  overflow:visible;
}
.nav-group{
  display:flex;
  align-items:center;
  gap:4px;
  padding:4px;
  border:1px solid rgba(80,230,255,.12);
  border-radius:16px;
  background:linear-gradient(135deg,rgba(80,230,255,.045),rgba(255,79,216,.025));
  box-shadow:inset 0 0 18px rgba(80,230,255,.035);
}
.nav-group a{
  position:relative;
  padding:8px 10px;
  font-size:13px;
  border-radius:11px;
  color:#d9f7ff;
  opacity:.92;
}
.nav-group a:hover,
.nav-group a.is-active{
  border-color:rgba(80,230,255,.38);
  background:rgba(80,230,255,.12);
  box-shadow:0 0 18px rgba(80,230,255,.12);
  color:#fff;
  text-decoration:none;
  opacity:1;
}
.nav-group a.is-active::after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:3px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--cyan),var(--mag));
  box-shadow:0 0 12px rgba(80,230,255,.75);
}
.mainnav a.nav-cashoffice{
  border-color:rgba(255,189,73,.50);
  background:linear-gradient(135deg,rgba(255,189,73,.18),rgba(80,230,255,.055));
  color:#ffe6b0;
  font-weight:900;
}
.mainnav a.nav-cashoffice:hover,
.mainnav a.nav-cashoffice.is-active{
  background:linear-gradient(135deg,rgba(255,189,73,.30),rgba(255,79,216,.10));
  box-shadow:0 0 22px rgba(255,189,73,.18);
}
.mainnav a.nav-logout{
  color:#ffd1d8;
}
.mainnav a.nav-logout:hover{
  border-color:rgba(255,73,103,.40);
  background:rgba(255,73,103,.12);
}
@media(max-width:1280px){
  .topbar{grid-template-columns:1fr;align-items:flex-start;}
  .mainnav{justify-content:flex-start;width:100%;}
  .brand{min-width:0;}
}
@media(max-width:900px){
  .topbar{grid-template-columns:1fr auto;align-items:center;}
  .mainnav{
    display:none;
    width:100%;
    position:absolute;
    left:0;right:0;top:75px;
    padding:12px 16px;
    background:rgba(3,7,15,.97);
    border-bottom:1px solid var(--line);
    box-shadow:0 22px 50px rgba(0,0,0,.45);
    overflow:visible;
  }
  .mainnav.is-open{
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  .nav-group{
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
    padding:6px;
  }
  .nav-group a{
    text-align:center;
    border-color:rgba(80,230,255,.12);
    background:rgba(80,230,255,.035);
  }
}
@media(max-width:520px){
  .brand span:last-child strong{font-size:14px;}
  .brand small{font-size:10px;}
  .brand-mark{width:42px;height:42px;font-size:12px;}
  .nav-group{grid-template-columns:1fr;}
}

/* --- Lawbook cards --- */
.lawbook-section h2{color:#eafaff;}
.law-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.law-card{border:1px solid rgba(80,230,255,.18);border-radius:16px;background:linear-gradient(180deg,rgba(5,12,24,.72),rgba(10,20,35,.70));padding:14px;box-shadow:inset 0 0 24px rgba(80,230,255,.035);}
.law-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.law-card h3{margin:0 0 8px;font-size:18px;}
.law-card p{margin:0 0 12px;color:#bfd7e5;line-height:1.45;}
.law-penalty{display:flex;gap:10px;flex-wrap:wrap;color:#dff8ff;font-size:13px;border-top:1px solid rgba(255,255,255,.08);padding-top:10px;}
.law-penalty span{border:1px solid rgba(255,189,73,.20);border-radius:999px;padding:5px 9px;background:rgba(255,189,73,.06);}
@media(max-width:760px){.law-grid{grid-template-columns:1fr}.law-card h3{font-size:16px}.law-penalty{font-size:12px}}

/* --- Wanted / Lawbook violation selector --- */
.offense-select{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-height:520px;overflow:auto;border:1px solid rgba(80,230,255,.18);border-radius:16px;padding:12px;background:rgba(2,8,18,.38)}
.offense-group{border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px;background:linear-gradient(180deg,rgba(10,19,35,.72),rgba(6,13,24,.72))}
.offense-group h3{margin:0 0 10px;color:#eafaff;font-size:16px}.offense-option{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:9px;padding:9px;border:1px solid rgba(80,230,255,.10);border-radius:12px;background:rgba(80,230,255,.035);margin-bottom:8px;cursor:pointer}.offense-option:hover{border-color:rgba(80,230,255,.32);background:rgba(80,230,255,.075)}.offense-option input{width:auto;margin-top:2px}.offense-option small{display:block;margin-top:4px;color:var(--muted);line-height:1.35}.law-penalty span{white-space:normal;border-radius:12px;line-height:1.35}
@media(max-width:900px){.offense-select{grid-template-columns:1fr;max-height:unset}}

.field small{font-size:12px;line-height:1.35}.person-photo{background:rgba(255,255,255,.04)}input[type=file]{padding:9px;background:rgba(3,8,16,.72)}

/* --- Citation form layout fix ---
   Prevent generic dashboard span classes from creating implicit columns inside form grids. */
.form-grid > .span-12,
.form-grid > .card.span-12,
.form-grid > .field.full,
.form-grid > .citation-offense-field{
  grid-column:1 / -1 !important;
  width:100%;
  min-width:0;
}
.citation-offense-field{display:block;}
.offense-toolbar{
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto;
  gap:10px;
  align-items:center;
  margin:4px 0 10px;
}
.offense-toolbar input{min-width:0;}
.offense-count{
  border:1px solid rgba(80,230,255,.24);
  border-radius:12px;
  padding:10px 12px;
  background:rgba(80,230,255,.055);
  color:#dff8ff;
  white-space:nowrap;
}
.citation-offense-select{
  width:100%;
  min-width:0;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  align-items:start;
  max-height:620px;
  overflow:auto;
}
.citation-offense-group{min-width:0;}
.citation-offense-option{
  display:block;
  min-width:0;
  overflow:hidden;
}
.offense-check-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:start;
  cursor:pointer;
}
.offense-main{min-width:0;display:block;}
.offense-main strong{
  display:block;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.offense-meta{
  display:block;
  margin-top:5px;
  color:#9fb9ca;
  line-height:1.35;
}
.offense-details{
  margin:8px 0 0 30px;
  color:#a9c1d2;
}
.offense-details summary{
  cursor:pointer;
  color:#bdefff;
  font-size:12px;
  user-select:none;
}
.offense-details small{
  display:block;
  margin-top:6px;
  line-height:1.4;
  overflow-wrap:anywhere;
}
[data-offense-item][hidden],
[data-offense-group][hidden]{display:none!important;}
@media(max-width:760px){
  .offense-toolbar{grid-template-columns:1fr;}
  .citation-offense-select{grid-template-columns:1fr;max-height:none;}
  .offense-details{margin-left:0;}
}

/* --- Wanted severity/action table --- */
.violation-table.compact th,
.violation-table.compact td{vertical-align:top;}
.violation-table.compact td{line-height:1.35;}
.action-cell{max-width:320px;color:#d7edf7;white-space:pre-line;}
.sanction-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;}
.sanction-tag{display:inline-flex;align-items:center;border:1px solid rgba(255,189,73,.28);border-radius:999px;padding:4px 8px;background:rgba(255,189,73,.07);color:#ffe8b2;font-size:12px;line-height:1.15;white-space:nowrap;}
@media(max-width:850px){
  .violation-table.compact thead{display:none;}
  .violation-table.compact tr{display:block;border-bottom:1px solid rgba(255,255,255,.08);padding:10px 0;}
  .violation-table.compact td{display:block;padding:5px 8px;}
  .action-cell{max-width:none;}
  .sanction-tag{white-space:normal;}
}

/* CIA Intelligence module */
.cia-form .info-box{border:1px solid rgba(89,210,255,.35);background:rgba(8,38,58,.55);border-radius:14px;padding:14px;margin-bottom:18px;color:var(--text)}
.cia-form textarea{min-height:130px;resize:vertical;line-height:1.45}
.cia-form input.field-limit-warn,.cia-form textarea.field-limit-warn{border-color:rgba(255,190,74,.8);box-shadow:0 0 0 1px rgba(255,190,74,.22)}
.cia-form input.field-limit-danger,.cia-form textarea.field-limit-danger{border-color:rgba(255,75,110,.95);box-shadow:0 0 0 1px rgba(255,75,110,.28)}
[data-char-count-for].warn{color:#ffc45d;font-weight:900}
[data-char-count-for].danger{color:#ff6385;font-weight:900}
.cia-record .cia-head{align-items:flex-start}
.cia-record .person-photo,.cia-record .photo-placeholder{width:120px;height:160px;object-fit:cover;border-radius:16px}
.cia-classification-preview{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(255,255,255,.18);border-radius:999px;text-transform:uppercase;font-weight:900;letter-spacing:.12em}
.badge-top-secret,.badge-top_secret,.badge-TOP-SECRET{background:rgba(200,0,0,.22);border-color:#ff3355;color:#ffd9df}
.badge-secret,.badge-SECRET{background:rgba(255,122,0,.18);border-color:#ff9a3b;color:#ffdec2}
.badge-confidential,.badge-CONFIDENTIAL{background:rgba(255,60,90,.14);border-color:#ff5f79;color:#ffd6dd}
.badge-restricted,.badge-RESTRICTED{background:rgba(140,90,220,.18);border-color:#b88cff;color:#eadfff}
.badge-unclassified,.badge-UNCLASSIFIED{background:rgba(40,190,110,.16);border-color:#57d68c;color:#d8ffe5}
@media (max-width:760px){.cia-form .grid.two,.cia-record .grid.two{grid-template-columns:1fr}.cia-record .record-head{display:grid;grid-template-columns:100px 1fr}.cia-record .person-photo,.cia-record .photo-placeholder{width:100px;height:130px}}
