/* STARS · Copyright (c) 2026 Foregon Oy. Proprietary: licensed, not sold. See LICENSE.txt and legal/LICENSE-AGREEMENT.md. Licensed copy for Foregon Oy (Test) (stars.foregon.space), copy abfa80de. */
/* One typeface everywhere: Inter (SIL Open Font License, public/assets/fonts). Headings use weight, numbers use even-width digits. */
@font-face{font-family:"Inter";src:url(/assets/fonts/InterVariable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

/* LSSD Portal: shared by the staff panel and the LSSD Website.
   Sheriff's green,star gold and uniform khaki. The panel is dark by default; the LSSD Website is light by default. */
:root{--font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--bg:#0a120e;--bg2:#0d1712;--panel:#111c16;--panel2:#0e1813;--raise:#182820;--ink:#ecebe3;--mute:#9ba99d;--gold:#d6b25e;--gold2:#f0d48e;--line:#22362b;--ok:#4ec28a;--warn:#e8a64a;--bad:#ef6a62;--blue:#6aa3ff;--brand:#1d4a33;--brand2:#143726;--brand-ink:#f3ecd6;--on-brand:#f0d48e;--khaki:#c8b48a;--shadow:0 8px 30px rgba(0,0,0,.4);--r:12px;color-scheme:dark}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f5f2e9;--bg2:#ebe5d4;--panel:#fff;--panel2:#faf7ef;--raise:#fff;--ink:#1a2a20;--mute:#5b6a5e;--gold:#8f6a14;--gold2:#6f520f;--line:#ddd6c2;--ok:#1d8a57;--warn:#a8630a;--bad:#c0392b;--blue:#2c62c4;--shadow:0 6px 24px rgba(26,42,32,.12);color-scheme:light}}
:root[data-theme=light]{--bg:#f5f2e9;--bg2:#ebe5d4;--panel:#fff;--panel2:#faf7ef;--raise:#fff;--ink:#1a2a20;--mute:#5b6a5e;--gold:#8f6a14;--gold2:#6f520f;--line:#ddd6c2;--ok:#1d8a57;--warn:#a8630a;--bad:#c0392b;--blue:#2c62c4;--shadow:0 6px 24px rgba(26,42,32,.12);color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 var(--font)}
h1,h2,h3,h4{font-family:var(--font);line-height:1.2;margin:0 0 .5em;font-weight:700}h1{font-size:28px}h2{font-size:21px}h3{font-size:16.5px}h4{font-size:15px}
a{color:var(--gold)}a:hover{color:var(--gold2)}button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
hr{border:0;border-top:1px solid var(--line);margin:14px 0}
code,.mono{font-family:var(--font);font-size:.93em}
mark{background:var(--gold);color:#14213a;border-radius:3px;padding:0 2px}
.muted{color:var(--mute)}.small{font-size:13px}.pre{white-space:pre-wrap;word-break:break-word}.nowrap{white-space:nowrap}.grow{flex:1}
.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}.blue{color:var(--blue)}.gold{color:var(--gold)}
.pill{font-size:11.5px;padding:1px 9px;border-radius:12px;border:1px solid currentColor;white-space:nowrap;display:inline-block;line-height:1.6;vertical-align:middle;font-weight:500}
.pill.ok{color:var(--ok)}.pill.warn{color:var(--warn)}.pill.bad{color:var(--bad)}.pill.blue{color:var(--blue)}.pill.muted{color:var(--mute)}.pill.gold{color:var(--gold)}
.btn{background:var(--gold);color:#101828;border:1px solid transparent;border-radius:9px;padding:8px 16px;cursor:pointer;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:6px;line-height:1.3;white-space:nowrap}
.btn:hover{filter:brightness(1.08);color:#101828}
.btn.sec{background:transparent;border-color:var(--line);color:var(--ink);font-weight:500}.btn.sec:hover{background:var(--raise)}.btn.sec.on{border-color:var(--gold);color:var(--gold)}
.btn.danger{background:var(--bad);color:#fff}.btn.sm{padding:4px 11px;font-size:13px;border-radius:8px}
.btn:disabled{opacity:.5;cursor:default}

.iconbtn{background:none;border:0;color:var(--mute);cursor:pointer;padding:6px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;line-height:1}.iconbtn:hover{background:var(--raise);color:var(--ink)}.iconbtn.sm{padding:2px}
.linkbtn{background:none;border:0;color:var(--gold);cursor:pointer;padding:0;text-decoration:underline}
.ico{flex-shrink:0;vertical-align:-3px}
input,select,textarea{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:8px 10px;width:100%;min-height:38px}
input[type=checkbox]{width:auto;min-height:0;accent-color:var(--gold)}input[type=color]{padding:2px;height:38px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:-1px}
.fld{display:block;margin-bottom:12px}.fld>span{display:block;font-size:13px;color:var(--mute);margin-bottom:4px;font-weight:500}.help{display:block;color:var(--mute);font-size:12px;margin-top:3px}
.chk{display:flex;gap:8px;align-items:center;margin-bottom:12px;cursor:pointer}.chk input{width:auto}
form.cols{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}form.cols>.fld:has(textarea),form.cols>.err,form.cols>.acts,form.cols>.chk{grid-column:1/-1}
.form-heading{margin:18px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line);color:var(--gold)}
.multi{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:9px;padding:8px 10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:2px 12px}.multi .chk{margin:3px 0;font-size:14px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin-bottom:16px}
.card.flush{padding:0;overflow:hidden}.card.flush>h3.pad,.pad{padding:14px 18px 4px;margin:0}
.card.inset{background:var(--panel2)}.card.calm{border-color:var(--ok);display:flex;gap:8px;align-items:center;color:var(--ok)}.card.warnbox{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 8%,var(--panel))}
.card>h3:first-child{margin-top:0}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.card-head h3{margin:0}
.count{display:inline-block;background:var(--raise);color:var(--mute);font:600 11px/1.7 var(--font);border-radius:10px;padding:0 7px;margin-left:6px;vertical-align:2px;font-family:var(--font)}
.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}.grid.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}.grid.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr))}.grid>.card,.grid>div>.card:last-child{margin-bottom:0}.grid{display:grid;gap:16px;margin-bottom:16px}
.with-aside{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start;margin-bottom:16px}.with-aside>aside{position:sticky;top:76px}
.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th{text-align:left;color:var(--mute);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td,.tbl tr.click:focus td{background:var(--panel2)}.tbl td.empty{text-align:center;padding:26px}
.scroll{overflow-x:auto}
.bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.bar .grow{min-width:180px}.bar input,.bar select{width:auto}.bar input.grow{flex:1}
.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px;flex-wrap:wrap}.page-head h1{margin:0 0 4px}.page-head p{margin:0;max-width:720px}.page-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.back{display:inline-block;margin-bottom:10px;font-size:14px;text-decoration:none}
.empty-state{text-align:center;padding:40px 16px;border:1px dashed var(--line);border-radius:var(--r);margin-bottom:16px}
.kv{display:grid;gap:7px 14px;margin:0}.kv dt{color:var(--mute);font-size:14px}.kv dd{margin:0}
.tabs{display:flex;margin-bottom:16px;border-bottom:1px solid var(--line)}.tabs button{background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;color:var(--mute);font-weight:500;margin-bottom:-1px}.tabs button:hover{color:var(--ink)}.tabs button.on{border-color:var(--gold);color:var(--ink)}
.overlay{position:fixed;inset:0;background:rgba(3,8,16,.65);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 16px;z-index:50;overflow:auto}
.dlg{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px 22px;width:min(560px,100%);box-shadow:var(--shadow);margin-bottom:6vh}.dlg.wide{width:min(780px,100%)}.dlg.xl{width:min(1100px,100%)}
.dlg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.dlg-head h2{margin:0}
.acts{display:flex;gap:8px;justify-content:flex-end;margin-top:10px;flex-wrap:wrap}
.err{color:var(--bad);font-size:14px;margin:6px 0}.err:empty{display:none}
.msg{border-left:3px solid var(--gold);padding:4px 12px;margin:8px 0}
.check{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line)}.check:last-child{border:0}.check .done{opacity:.55;text-decoration:line-through}
.row-link{display:block;padding:8px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}.row-link:last-child{border:0}a.row-link:hover b{color:var(--gold)}
.chips{display:flex;flex-wrap:wrap;gap:5px}.chip{font-size:12px;background:var(--raise);border:1px solid var(--line);border-radius:12px;padding:1px 9px;text-decoration:none;color:var(--ink)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gold)}.dotc{display:inline-block;width:10px;height:10px;border-radius:50%;margin-top:6px;flex-shrink:0}
.avatar{border-radius:50%;background:linear-gradient(135deg,var(--brand),#2a6145);color:var(--on-brand);display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;object-fit:cover;border:1px solid var(--line)}
.insig{height:22px;width:auto;vertical-align:middle}.insig.xs{height:15px}.insig.sm{height:18px}.insig.lg{height:46px}.rankcell{display:inline-flex;gap:7px;align-items:center;white-space:nowrap}
.progress{position:relative;height:8px;background:var(--raise);border-radius:5px;overflow:hidden;min-width:90px}.progress i{position:absolute;inset:0 auto 0 0;background:var(--gold);border-radius:5px}.progress.big{height:10px;margin-bottom:16px}.progress.warn i{background:var(--warn)}.progress.bad i{background:var(--bad)}
.progress span{position:absolute;right:4px;top:-4px;font-size:10px;display:none}
.badge{background:var(--bad);color:#fff;border-radius:10px;padding:0 6px;font-size:11px;font-weight:700;line-height:17px;min-width:17px;text-align:center;display:inline-block}
details>summary{cursor:pointer;font-weight:600}details[open]>summary{margin-bottom:10px}
/* ---- shell ---- */
.shell{display:flex;min-height:100vh}
.side{background:var(--panel2);border-right:1px solid var(--line);position:sticky;top:0;height:100vh;overflow:auto;flex-shrink:0;scrollbar-width:thin}
.brand{display:flex;gap:10px;align-items:center;padding:4px 8px 14px;text-decoration:none;color:var(--ink)}.brand img{width:42px}.brand b{font-family:var(--font);letter-spacing:.08em;font-size:17px}.brand small{display:block;color:var(--mute);font-size:11px;line-height:1.2}
.nav-title{font-size:10.5px;text-transform:uppercase;color:var(--mute);font-weight:700;opacity:.8}
.side a.nav{display:flex;align-items:center;border-radius:9px;color:var(--ink);text-decoration:none;font-size:14px}.side a.nav span:nth-of-type(1){flex:1}.side a.nav .ico{color:var(--mute)}
.side a.nav:hover{background:var(--panel)}.side a.nav.on{background:var(--panel);color:var(--gold);box-shadow:inset 3px 0 0 var(--gold)}.side a.nav.on .ico{color:var(--gold)}
.content{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;gap:10px;align-items:center;padding:10px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);z-index:20}
.search{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:0 10px;flex:1;max-width:460px;color:var(--mute)}.search input{border:0;background:none;padding:7px 0;min-height:34px}.search input:focus{outline:0}.search:focus-within{border-color:var(--gold)}
.topbar .sp{flex:0 0 auto}.menu{display:none!important}
.bell{position:relative}.bell .badge{position:absolute;top:0;right:0}
.mebtn{display:flex;align-items:center;gap:8px;background:none;border:1px solid transparent;border-radius:24px;padding:3px 10px 3px 3px;cursor:pointer}.mebtn:hover{background:var(--panel);border-color:var(--line)}.me-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nb .badge{margin-left:auto}
.content>main{padding:24px 28px 60px;max-width:1280px;width:100%;transition:opacity .15s}main.loading{opacity:.6}main:focus{outline:0}
.scrim{display:none}
.menu-pop{position:fixed;z-index:60;background:var(--raise);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);min-width:230px;padding:6px;max-height:80vh;overflow:auto}.menu-pop.wide{width:min(380px,calc(100vw - 16px))}
.menu-head{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}
.menu-item{display:flex;gap:10px;align-items:center;width:100%;padding:8px 10px;border-radius:8px;background:none;border:0;color:var(--ink);text-decoration:none;cursor:pointer;font-size:14px;text-align:left}.menu-item:hover{background:var(--panel)}
.menu-foot{text-align:center;padding:8px;border-top:1px solid var(--line);margin-top:4px;font-size:14px}
.pad{padding:12px}
/* login */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(ellipse at top,#1d4a33 0,var(--bg) 60%)}
.login-card{width:min(400px,100%);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px 26px;text-align:center;box-shadow:var(--shadow)}.login-card img{width:104px;filter:drop-shadow(0 8px 24px rgba(212,173,90,.3))}.login-card form{text-align:left}.login-card .acts{justify-content:stretch}.login-card .acts .btn{flex:1;justify-content:center}
/* dashboard */
.hello{display:flex;gap:16px;align-items:center;margin-bottom:22px}.hello h1{margin:0}.hello p{margin:2px 0 0}
.sec-title{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--mute);font-family:var(--font);margin:0 0 10px}
.tiles{display:grid;gap:12px;margin-bottom:22px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink);display:grid;grid-template-rows:auto auto;align-items:center}
.tile .ico{grid-row:1/3;color:var(--mute)}.tile b{font:700 26px/1 var(--font)}.tile span{color:var(--mute);line-height:1.3}.tile:hover{transform:translateY(-2px);color:var(--ink)}
.tile.hot b,.tile.hot .ico{color:var(--gold)}.tile.zero{opacity:.55}
.quick{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.quick-btn{display:flex;gap:8px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink);font-size:14px}.quick-btn:hover{border-color:var(--gold);color:var(--gold)}
.notice{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line)}.notice:last-child{border:0}.notice-ic{width:30px;height:30px;border-radius:50%;background:var(--raise);display:flex;align-items:center;justify-content:center;color:var(--gold);flex-shrink:0}
.notice.award .notice-ic{background:color-mix(in srgb,var(--gold) 20%,var(--raise))}.notice.departure .notice-ic{color:var(--mute)}.notice a{color:var(--ink);text-decoration:none}.notice a:hover{color:var(--gold)}
.stats-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:6px}.stats-strip div{background:var(--panel);padding:14px 16px}.stats-strip b{display:block;font:700 24px var(--font);color:var(--gold)}.stats-strip span{color:var(--mute);font-size:13px}
/* dossier */
.dossier{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.dossier h1{margin:0 0 4px}.dossier .muted{margin:4px 0 8px}
.badgecard{text-align:center;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--gold) 12%,var(--panel2)),var(--panel2))}.badgecard img{width:96px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.4))}
.plate{margin:6px auto 4px;background:linear-gradient(#e9cf8b,#b38a35);color:#2a1d05;font:700 15px/1 var(--font);letter-spacing:.12em;padding:5px 12px;border-radius:6px;display:inline-block;box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 2px 4px rgba(0,0,0,.4)}
.ribbon{display:inline-block;width:46px;height:14px;border-radius:2px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.35),0 1px 2px rgba(0,0,0,.3);position:relative;vertical-align:middle;flex-shrink:0}
.rack{display:grid;grid-template-columns:repeat(3,46px);gap:2px;margin:6px 0;direction:rtl}.rack a{display:block;line-height:0}
/* structure */
.org{padding:18px}.org-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:12px}.org-head h2{margin:0}.org-head p{margin:2px 0 0}
.code{font:700 13px var(--font);background:var(--brand);color:var(--on-brand);border:1px solid var(--gold);border-radius:8px;padding:6px 8px;min-width:52px;text-align:center}
.units{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;margin-top:10px}.unit{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--panel2)}
.unit-head{display:flex;gap:8px;align-items:center;margin-bottom:8px}.unit-head img{width:32px;height:32px;object-fit:cover;border-radius:6px}
.posts{display:grid;gap:6px}.post{border-left:2px solid var(--line);padding:2px 0 2px 10px}.post-name{font-size:13px;font-weight:600;display:flex;justify-content:space-between;align-items:center;color:var(--mute)}
.holder{display:inline-flex;gap:5px;align-items:center;font-size:13.5px;margin:2px 10px 2px 0;text-decoration:none;color:var(--ink)}.holder:hover{color:var(--gold)}.vacant{font-size:12.5px;color:var(--mute);font-style:italic}
/* vacancies */
.vac{text-decoration:none;color:var(--ink);display:block;transition:border-color .12s}.vac:hover{border-color:var(--gold);color:var(--ink)}
.reqs li{padding:2px 0;font-size:14px}.reqs li.ok .ico{color:var(--ok)}.reqs li.bad .ico{color:var(--bad)}
.letter{border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px;background:var(--panel2)}
/* recruitment */
.kanban{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:12px;overflow-x:auto;margin-bottom:16px;padding-bottom:4px}
.lane{background:var(--panel2);border:1px solid var(--line);border-radius:var(--r);padding:10px;min-height:160px}.lane-head{font-weight:600;font-size:14px;margin-bottom:8px;display:flex;justify-content:space-between}
.kcard{display:block;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:9px 10px;margin-bottom:8px;cursor:pointer}.kcard:hover{border-color:var(--gold)}
/* records */
.doc{position:relative}.doc-head{display:flex;gap:14px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.doc-head img{width:54px}.doc-head h2{margin:2px 0}
.form-card{max-width:860px}.builder-wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px}.brow{border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px;background:var(--panel2)}.brow .bar{margin-bottom:6px}.brow>input{margin-top:4px}
.preview{position:sticky;top:0}
.charges{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--panel2)}.charge-res{display:grid;gap:2px;margin:4px 0}.charge-opt{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer}.charge-opt:hover{border-color:var(--gold)}
.charge-row{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.charge-row .cnt{width:64px}.charge-tot{padding-top:8px;font-weight:600;font-size:14px}
.calc h3{display:flex;gap:6px;align-items:center}
/* policies */
.reader{max-width:780px;font-size:15.5px;line-height:1.7}.reader h2,.reader h3,.reader h4{margin:22px 0 8px;color:var(--gold)}.reader p{margin:0 0 10px}.snippet{margin-top:3px}
.crit .tick{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--mute);flex-shrink:0}.crit.done .tick{background:var(--ok);border-color:var(--ok);color:#fff}
.announce.must{border-left:3px solid var(--warn)}.zoom{display:inline-flex;gap:6px;align-items:center}.zoom span{min-width:40px;text-align:center}.string{stroke:#c62828;stroke-width:2.2;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5))}
.pin-photo{width:100%;max-height:360px;object-fit:contain;border-radius:8px;margin-bottom:10px;background:#000}
.timeline{list-style:none;padding:0 0 0 22px;margin:0 0 16px;border-left:2px solid var(--line)}.timeline li{position:relative;margin-bottom:14px}.timeline li::before{content:"";position:absolute;left:-29px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--c);border:2px solid var(--bg)}
.timeline time{display:block;font-size:13px;color:var(--mute);margin-bottom:4px}.timeline .card{margin:0}.tl-img{max-width:240px;border-radius:6px;margin:6px 0;display:block}
.mark{position:absolute;transform:translate(-50%,-100%) scale(calc(1 / var(--z)));transform-origin:50% 100%;background:none;border:0;padding:0;cursor:pointer;pointer-events:auto;display:flex;flex-direction:column;align-items:center}
.mark i{width:16px;height:16px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--c);border:2px solid #fff;box-shadow:0 2px 4px rgba(0,0,0,.6)}.mark.big i{width:24px;height:24px}
.mark span{order:-1;background:rgba(5,12,22,.85);color:#fff;font-size:11.5px;padding:1px 6px;border-radius:4px;margin-bottom:3px;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.legend{margin-bottom:10px}.legend i{display:inline-block;margin-right:5px;vertical-align:-1px}.legend i.zone{border-radius:2px;background:rgba(229,100,94,.35);border:1px solid #e5645e}
/* intel */
.crew{text-decoration:none;color:var(--ink);border-top:4px solid var(--c)}.crew:hover{border-color:var(--c);color:var(--ink);transform:translateY(-1px)}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.gallery figure{margin:0;background:var(--panel2);border:1px solid var(--line);border-radius:10px;overflow:hidden}.gallery img,.gallery .noimg{width:100%;height:150px;object-fit:cover;display:flex;align-items:center;justify-content:center;color:var(--mute);background:#000}.gallery figcaption{padding:8px 10px}
.imgfield{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.imgfield img{max-height:110px;border-radius:8px;border:1px solid var(--line)}.imgfield.busy{opacity:.5;pointer-events:none}
/* lab,stamps,certificate */
.exhibit-img{max-width:320px;border-radius:8px;border:1px solid var(--line);margin:12px 0;display:block}.outcome{display:inline-flex;flex-direction:column;border:2px solid var(--gold);border-radius:10px;padding:6px 14px;margin-bottom:10px}.outcome b{font:700 20px var(--font)}
.stamp{position:absolute;right:30px;bottom:30px;border:4px double var(--ok);color:var(--ok);font:800 30px/1 var(--font);letter-spacing:.2em;padding:6px 16px;transform:rotate(-12deg);opacity:.75;border-radius:6px}.stamp.bad{border-color:var(--bad);color:var(--bad)}
.certificate{position:relative;max-width:820px;margin:0 auto 20px;background:#fbf7ec;color:#1d2433;border:12px double #b8913c;border-radius:6px;padding:40px 48px;text-align:center;font-family:var(--font);box-shadow:var(--shadow)}
.cert-logo{width:110px}.cert-dept{text-transform:uppercase;letter-spacing:.2em;font-size:14px;margin:8px 0 22px;color:#1d4a33}.cert-kicker{font-style:italic;color:#5c5340;margin:6px 0}.cert-name{font-size:32px;font-weight:700;color:#1d4a33}.cert-serial{font-size:13px;color:#5c5340;letter-spacing:.1em}
.cert-award{font-size:26px;color:#8a6a1e;margin:4px 0 12px;font-weight:700}.cert-ribbon .ribbon{width:110px;height:32px}.cert-citation{font-size:17px;line-height:1.6;margin:20px auto 8px;max-width:600px}.cert-criteria{color:#6b6250;font-style:italic}
.cert-foot{display:grid;grid-template-columns:minmax(max-content,1.4fr) 1fr 1fr;gap:20px;margin-top:36px}.cert-foot .sig{border-bottom:1px solid #8a7a5a;padding-bottom:4px;min-height:26px;font-size:16px}.cert-foot small{color:#6b6250;white-space:nowrap}.certificate.revoked{opacity:.6}
/* responsive */
@media(max-width:1000px){.with-aside{grid-template-columns:1fr}.with-aside>aside{position:static}.builder-wrap{grid-template-columns:1fr}.kanban{grid-template-columns:repeat(5,minmax(200px,1fr))}}
@media(max-width:820px){
  .side{position:fixed;left:-270px;z-index:40;transition:left .2s;box-shadow:var(--shadow)}body.nav-open .side{left:0}body.nav-open .scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:30}
  .menu{display:inline-flex!important}.content>main{padding:16px 16px 50px}.topbar{padding:8px 12px;gap:6px}.me-name,.mebtn .insig{display:none}.search{max-width:none}
  .kv{grid-template-columns:1fr;gap:2px}.kv dt{margin-top:8px}form.cols{grid-template-columns:1fr}h1{font-size:23px}
  .tbl thead{display:none}.tbl tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}.tbl td{display:flex;gap:10px;border:0;padding:3px 14px}.tbl td::before{content:attr(data-label);color:var(--mute);font-size:12px;min-width:92px;flex-shrink:0}.tbl td[data-label=""]::before{display:none}.tbl td.empty::before{display:none}
  .dossier .badgecard{order:-1}.cert-foot{grid-template-columns:1fr}.certificate{padding:24px 18px}.page-head{flex-direction:column}
}
@media print{.side,.topbar,.bar,.noprint,.tabs,.back,.page-acts,.toast{display:none!important}.card{border:0;box-shadow:none}body{background:#fff;color:#000}main{padding:0;max-width:none}.certificate{box-shadow:none;margin:0 auto}.stamp{opacity:1}a{color:#000;text-decoration:none}:root{--ink:#000;--mute:#444;--line:#bbb;--panel:#fff;--panel2:#fff;--gold:#7a5a12}}
/* manual of policy and procedures */
.mpp{margin-bottom:20px}.mpp-head{display:flex;gap:14px;align-items:center;margin-bottom:12px}.mpp-head img{width:50px}.mpp-head h2{margin:0}.mpp-head p{margin:2px 0 0}
.vols{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:12px}
.vol{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--r);padding:14px;text-decoration:none;color:var(--ink);transition:border-color .12s,transform .12s}.vol:hover{border-color:var(--gold);transform:translateY(-1px);color:var(--ink)}.vol.unsigned{border-left-color:var(--warn)}
.vol-n{flex-shrink:0;width:40px;height:40px;border-radius:8px;background:var(--brand);color:var(--on-brand);font:800 20px var(--font);display:flex;align-items:center;justify-content:center}.vol .snippet{margin-top:6px}
.mpp-title{display:flex;gap:12px;align-items:center;border-bottom:2px solid var(--brand);padding-bottom:12px;margin-bottom:8px}.mpp-title img{width:46px}.mpp-title h2{margin:2px 0 0}
.reader h2.chapter{font-size:20px;border-bottom:1px solid var(--line);padding-bottom:6px;margin-top:28px;color:var(--ink);text-transform:uppercase;letter-spacing:.03em}
.reader h3.sec{scroll-margin-top:80px;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;color:var(--ink);font-size:16.5px;margin-top:24px}.reader h3.sec .iconbtn{opacity:0;align-self:center}.reader h3.sec:hover .iconbtn,.reader h3.sec .iconbtn:focus{opacity:1}
.secno{font:700 13px var(--font);color:var(--on-brand);background:var(--brand);border-radius:6px;padding:2px 7px;flex-shrink:0}
.reader h3.sec.flash{animation:flash 2.2s ease-out}@keyframes flash{0%{background:color-mix(in srgb,var(--gold) 35%,transparent)}100%{background:transparent}}
.reader h4{color:var(--gold);margin:16px 0 6px;font-family:var(--font);font-size:14.5px;text-transform:uppercase;letter-spacing:.04em}
.reader ul{margin:4px 0 12px;padding-left:22px}.reader li{margin:3px 0}.reader li::marker{color:var(--gold)}
.reader .callout{border-left:3px solid var(--gold);background:var(--panel2);padding:8px 12px;border-radius:0 8px 8px 0}
.ooc{display:inline-block;font-size:.85em;color:var(--mute);border:1px dashed var(--line);border-radius:6px;padding:0 6px;margin:0 2px}.ooc::before{content:"OOC ";font-weight:700;font-size:.8em;letter-spacing:.06em}
.toc{max-height:calc(100vh - 100px);overflow:auto;font-size:13.5px;padding:14px}.toc h3{margin-top:0}.toc a{display:block;padding:4px 6px;border-radius:6px;color:var(--ink);text-decoration:none}.toc a:hover{background:var(--panel2);color:var(--gold)}
.toc-ch{font-weight:700;margin-top:8px;text-transform:uppercase;font-size:12px;letter-spacing:.04em}.toc-sec{padding-left:12px!important}.toc-sec .mono{color:var(--gold);font-size:12px}
.with-aside.manual{grid-template-columns:minmax(0,1fr) 300px}
.faded{opacity:.55}
.op-group{margin-bottom:8px}.op-title{font:800 13px var(--font);text-transform:uppercase;letter-spacing:.12em;color:var(--mute);margin:22px 0 10px;display:flex;align-items:center;gap:10px}.op-title::after{content:"";flex:1;height:1px;background:var(--line)}
@media print{.toc{display:none}.with-aside.manual{display:block}.secno{background:none;color:#000;border:1px solid #000}}
/* ================= LSSD Website ================= */
/* Official-site layout: utility bar,mission strip,header with menus,features,quick links,newsroom,stats band,footer. */
body.pub{background:var(--bg)}
.util{background:var(--brand2);color:var(--khaki);font-size:13px}.util .in,.mission .in,.pub-head .in,.foot .in{max-width:1180px;margin:0 auto;padding:0 20px}
.util .in{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:36px;flex-wrap:wrap}.util b{color:#fff}.util a,.util button{color:var(--khaki);text-decoration:none;background:none;border:0;cursor:pointer;font-size:13px;padding:0}.util a:hover,.util button:hover{color:#fff}.util .sep{opacity:.4;margin:0 8px}
.util .in>div:last-child{display:flex;align-items:center;flex-wrap:wrap}
.theme-switch{display:inline-flex;margin-left:12px;border:1px solid rgba(200,180,138,.35);border-radius:999px;padding:2px;gap:2px}
.util .theme-switch button{display:inline-flex;align-items:center;justify-content:center;width:26px;height:22px;border-radius:999px;color:var(--khaki);transition:background .15s,color .15s}
.util .theme-switch button:hover{color:#fff;background:rgba(255,255,255,.08)}.util .theme-switch button[aria-pressed=true]{background:var(--gold);color:var(--brand2)}
.util .theme-switch button:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.mission{background:color-mix(in srgb,var(--gold) 14%,var(--bg2));border-bottom:1px solid var(--line);font:italic 14px var(--font);color:var(--ink);text-align:center;padding:7px 0}
.pub-head{background:var(--panel);border-bottom:3px solid var(--brand);position:sticky;top:0;z-index:30;box-shadow:0 2px 10px rgba(0,0,0,.08)}.pub-head .in{display:flex;align-items:center;gap:16px;min-height:84px}
.pub-brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink)}.pub-brand img{width:62px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}.pub-brand small{display:block;color:var(--mute);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.pub-brand b{font:700 19px/1.15 var(--font);color:var(--brand)}
:root:not([data-theme=light]) .pub-brand b{color:var(--gold2)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .pub-brand b{color:var(--brand)}}
.pub-head nav{display:flex;align-items:center;margin-left:auto}
.dd{position:relative}.dd>button,.pub-head nav>a{background:none;border:0;cursor:pointer;padding:10px 12px;font:600 13px var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);text-decoration:none;border-radius:6px;display:flex;gap:5px;align-items:center}
.dd>button::after{content:"";border:4px solid transparent;border-top-color:currentColor;margin-top:4px}.dd>button:hover,.pub-head nav>a:hover,.dd.on>button,.pub-head nav>a.on{color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,transparent)}
:root:not([data-theme=light]) .dd>button:hover,:root:not([data-theme=light]) .dd.on>button,:root:not([data-theme=light]) .pub-head nav>a.on{color:var(--gold)}
.pub-head .join{background:#b23a2a;color:#fff!important;text-transform:uppercase;text-decoration:none;white-space:nowrap}.pub-head .join:hover{filter:brightness(1.1)}
.pub-menu{display:none!important;margin-left:auto}
/* feature row: story carousel and the Sheriff's message */
.wrap{max-width:1180px;margin:0 auto;padding:30px 20px 60px}
.carousel{position:relative;border-radius:var(--r);overflow:hidden;min-height:380px;background:var(--brand);box-shadow:var(--shadow)}
.slide{position:absolute;inset:0;opacity:0;transition:opacity .6s;display:block;color:#fff;text-decoration:none}.slide.on{opacity:1;z-index:1}
.slide .bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.slide .art{position:absolute;inset:0;background:radial-gradient(circle at 75% 40%,rgba(214,178,94,.35),transparent 45%),repeating-linear-gradient(135deg,rgba(255,255,255,.03) 0 12px,transparent 12px 24px),linear-gradient(135deg,#1d4a33,#0d2318)}.slide .art img{position:absolute;right:8%;top:50%;width:200px;transform:translateY(-55%);opacity:.9;filter:drop-shadow(0 10px 30px rgba(0,0,0,.5))}
.slide .cap{position:absolute;left:0;right:0;bottom:0;padding:60px 22px 46px;background:linear-gradient(transparent,rgba(5,15,10,.9))}.slide .cap small{color:var(--on-brand);text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:700}.slide .cap h2{color:#fff;font-size:clamp(20px,2.6vw,28px);margin:4px 0}.slide .cap p{margin:0;color:#dfe6df;max-width:620px}
.dots{position:absolute;left:22px;bottom:16px;z-index:2;display:flex;gap:6px}.dots button{width:10px;height:10px;border-radius:50%;border:1px solid #fff;background:transparent;padding:0;cursor:pointer}.dots button.on{background:var(--gold)}
.sheriff{background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:var(--r);display:flex;flex-direction:column}.sheriff .who{display:flex;gap:12px;align-items:center}.sheriff h3{margin:0;color:var(--brand)}:root:not([data-theme=light]) .sheriff h3{color:var(--gold2)}
.sheriff blockquote{margin:0;border-left:3px solid var(--gold);padding-left:12px}.sheriff .sig{font:italic 20px var(--font);color:var(--gold)}
/* quick links */
.quicklinks{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--line);gap:1px;margin-bottom:34px}
.quicklinks a{background:var(--panel);display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 10px;text-align:center;text-decoration:none;color:var(--ink);font-weight:600;font-size:14px}.quicklinks a:hover{background:var(--panel2);color:var(--brand)}
.two{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px;margin-bottom:34px}
.emergency{background:var(--brand);color:var(--brand-ink);border-radius:var(--r);padding:20px;margin-bottom:16px}.emergency small{display:block;color:var(--khaki);font-size:13px}.emergency b{display:block;font:800 40px/1.1 var(--font);color:#fff;margin-bottom:10px}.emergency b.sm{font-size:24px}.emergency a{color:var(--on-brand)}
.inactive-tag{display:inline-block;margin-left:8px;font:700 11px var(--font);letter-spacing:.06em;text-transform:uppercase;color:#fff;background:#8b3a2a;border-radius:4px;padding:2px 7px;vertical-align:middle}

/* inner pages */
.page-banner{background:linear-gradient(135deg,var(--brand),#102b1e);color:#fff;border-bottom:3px solid var(--gold)}.page-banner .in{max-width:1180px;margin:0 auto;padding:0 20px}.page-banner h1{color:#fff;margin:0}.page-banner p{margin:6px 0 0;color:var(--khaki)}.crumb{font-size:12.5px;color:var(--khaki);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}.crumb a{text-decoration:none}
.sect{margin-bottom:40px}.sect>h2{font-size:24px;margin-bottom:6px}.sect>.lead,.lead{color:var(--mute);margin:0 0 18px;max-width:720px}
.pgrid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}

.ph{height:170px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--brand),#173d2a)}.ph img{width:70px;height:auto;opacity:.6}.article .body{font-size:16.5px;line-height:1.75}

.cmd{display:flex;gap:14px;align-items:center;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--r);padding:14px}.cmd .avatar{width:64px;height:64px;font-size:22px}.cmd b{display:block;font-family:var(--font);font-size:17px}.cmd .r{display:flex;gap:6px;align-items:center;color:var(--gold);font-size:14px;font-weight:600}

.poster{background:#f4ecd8;color:#1e1a12;border:none;border-radius:6px;text-align:center;padding:22px;box-shadow:var(--shadow);font-family:var(--font);position:relative}
.poster .w{font:900 46px/1 var(--font);letter-spacing:.14em;color:#8b1a1a}.poster .sub{letter-spacing:.18em;text-transform:uppercase;margin:4px 0 12px}.poster img,.poster .nophoto{object-fit:cover;border:3px solid #1e1a12;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;background:#d8ccb0;color:#6b5f45}
.poster h3{margin:0 0 8px;text-transform:uppercase;color:#1e1a12}.poster .danger{background:#8b1a1a;color:#fff;font:700 12px var(--font);letter-spacing:.08em;padding:4px 8px;display:inline-block;margin:6px 0;text-transform:uppercase}.poster .reward{font-size:17px;font-weight:700;color:#5b4310;margin-top:10px}.poster .num{position:absolute;top:10px;right:12px;font:11px var(--font);color:#6b5f45}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;counter-reset:s;margin:0 0 24px;padding:0;list-style:none}.steps li{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px;counter-increment:s;font-size:14px}.steps li::before{content:counter(s);display:flex;width:28px;height:28px;border-radius:50%;background:var(--brand);color:var(--on-brand);font-weight:700;align-items:center;justify-content:center;margin-bottom:8px}.steps b{display:block}
.thanks{text-align:center;border-color:var(--ok)}.ref{font:700 22px var(--font);color:var(--gold);letter-spacing:.08em;background:var(--panel2);border:1px dashed var(--gold);border-radius:8px;padding:8px 14px;margin:6px 0}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:14px}.seg button{background:none;border:0;padding:8px 16px;cursor:pointer}.seg button.on{background:var(--brand);color:#fff;font-weight:600}
body.pub .btn{background:var(--brand);color:#fff}body.pub .btn:hover{color:#fff}body.pub .btn.gold{background:var(--gold);color:var(--brand2)}body.pub .btn.sec{background:transparent;color:var(--ink)}
.foot{background:var(--brand2);color:var(--khaki);font-size:14px;padding:36px 0 0;border-top:4px solid var(--gold)}.foot .cols{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:24px}.foot h4{color:#fff;font:700 13px var(--font);letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px}
.foot a{display:block;color:var(--khaki);text-decoration:none}.foot a:hover{color:#fff}.foot .fbrand{display:flex;gap:12px;align-items:flex-start}.foot .fbrand img{width:64px}.foot .fbrand b{display:block;color:#fff;font:700 17px var(--font)}
.foot .legal{border-top:1px solid rgba(200,180,138,.2);margin-top:26px;padding:14px 0;opacity:.85}
@media(max-width:980px){.two{grid-template-columns:1fr}.carousel{min-height:300px}.foot .cols{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.pub-menu{display:inline-flex!important}.pub-head nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--panel);border-bottom:3px solid var(--brand);flex-direction:column;align-items:stretch;padding:8px 16px 14px;max-height:75vh;overflow:auto}
  .pub-head.open nav{display:flex}.dd>button::after{display:none}.pub-head .join{margin:8px 0 0;text-align:center}.pub-head .in{min-height:70px}.pub-brand img{width:50px}.pub-brand b{font-size:16px}.slide .art img{width:120px;right:5%;top:30%;opacity:.35}}
@media(max-width:560px){.foot .cols{grid-template-columns:1fr}.util .hide-sm{display:none}}

/* ================= LSSD Website: dark theme ================= */
/* Night-duty look: layered deep greens,gold accents for anything that must stand out,ivory text. */
:root[data-theme=dark] body.pub{--bg:#0b130f;--bg2:#0e1813;--panel:#13211a;--panel2:#0f1b15;--raise:#1a2c22;--ink:#ede8da;--mute:#a7b3a8;--gold:#dcbb6a;--gold2:#f2d898;--line:#26402f;
  background:radial-gradient(1200px 520px at 50% -140px,rgba(220,187,106,.09),transparent 70%),var(--bg)}
:root[data-theme=dark] .util{background:#060d09;border-bottom:1px solid rgba(220,187,106,.18)}
:root[data-theme=dark] .mission{background:#0d1712;color:var(--gold2);border-bottom:1px solid var(--line)}
:root[data-theme=dark] .pub-head{background:linear-gradient(#14231b,#101c16);border-bottom:2px solid var(--gold);box-shadow:0 6px 24px rgba(0,0,0,.45)}

:root[data-theme=dark] .quicklinks{background:var(--line);border-color:var(--line)}
:root[data-theme=dark] .quicklinks a{background:#122019}:root[data-theme=dark] .quicklinks a:hover{background:#182a20;color:var(--gold2)}
:root[data-theme=dark] body.pub .btn{background:var(--gold);color:#0b130f}
:root[data-theme=dark] body.pub .btn.sec{background:transparent;color:var(--ink);border-color:var(--line)}
:root[data-theme=dark] .seg button.on{background:var(--gold);color:#0b130f}
:root[data-theme=dark] .carousel{border:1px solid rgba(220,187,106,.25)}
:root[data-theme=dark] .emergency{background:linear-gradient(135deg,#1d4a33,#123123);border:1px solid rgba(220,187,106,.35)}
:root[data-theme=dark] .page-banner{background:radial-gradient(700px 240px at 85% 0,rgba(220,187,106,.12),transparent 70%),linear-gradient(135deg,#1a4430,#0c2116)}
:root[data-theme=dark] .foot{background:#060d09}
:root[data-theme=dark] body.pub :is(input,textarea,select){background:#0c1611;border-color:var(--line)}

/* ================= LSSD Website: pages,mega menus,profiles ================= */
.pub-head .dd{position:static}
.pub-head nav>.dd>button,.pub-head nav>a.top{border-radius:0;border-bottom:3px solid transparent;margin-bottom:-3px}

.pub-head nav>.dd.on>button,.pub-head nav>.dd.open>button,.pub-head nav>a.top.on{color:var(--brand);border-bottom-color:var(--gold);background:none}
:root[data-theme=dark] .pub-head nav>.dd.on>button,:root[data-theme=dark] .pub-head nav>.dd.open>button,:root[data-theme=dark] .pub-head nav>a.top.on{color:var(--gold)}
.mega{display:none;position:absolute;left:0;right:0;top:100%;background:var(--panel)}
.pub-head .dd.open .mega{display:block}
@media(hover:hover) and (min-width:901px){.pub-head .dd:hover .mega{display:block}}
.mega-in{margin:0 auto;display:grid}
.mega-feat{display:flex;flex-direction:column;padding-right:30px}
.mega-feat a{display:flex;gap:16px;align-items:center;text-decoration:none;color:var(--ink);font-size:17px}.mega-feat a:hover b{color:var(--gold)}
.mf-ic{border-radius:50%;border:2px solid var(--gold);color:var(--gold);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s}
.mega-feat a:hover .mf-ic{background:var(--gold);color:var(--brand2)}
.mega-links{align-self:start}
/* inner pages */
.page-banner{padding:34px 0 30px}.page-banner h1{font-size:clamp(26px,4vw,38px)}.banner-rule{display:block;width:44px;height:3px;background:var(--gold);margin-top:12px;border-radius:2px}
.crumb a{color:var(--on-brand)}.page-intro{font-size:17.5px;line-height:1.65;color:var(--mute);max-width:820px;margin:4px 0 30px}
.rich{font-size:16px;line-height:1.75;max-width:860px}.rich h2{margin:28px 0 8px;font-size:24px}.rich h3{margin:22px 0 6px}.rich h4{margin:18px 0 4px;color:var(--gold);font-family:var(--font);text-transform:uppercase;letter-spacing:.05em;font-size:14px}
.rich p{margin:0 0 12px}.rich ul{margin:4px 0 14px;padding-left:22px}.rich li{margin:4px 0}.rich li::marker{color:var(--gold)}.rich figure{margin:18px 0}.rich figure img{max-width:100%;border-radius:10px;border:1px solid var(--line)}.rich figcaption{font-size:13px;color:var(--mute);margin-top:6px}
.cards-sect{margin-bottom:46px}.cards-sect .sec-title{font-size:24px;margin:0}.sec-sub{color:var(--mute);margin:4px 0 0;font-size:14.5px}.cards-sect>.rule{display:block;width:36px;height:3px;background:var(--gold);margin:10px 0 22px;border-radius:2px}
.profiles{display:flex;flex-direction:column;gap:22px}
.profile{display:grid;grid-template-columns:200px minmax(0,1fr);gap:26px;background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:22px}
.profile-photo{width:200px;height:250px;object-fit:cover;object-position:top;border-radius:2px;background:linear-gradient(160deg,#21402f,#0f2219)}
.profile-photo.ph{display:flex;align-items:center;justify-content:center;color:var(--on-brand);font:700 46px var(--font)}
.kicker{color:#b23a2a;font:700 12px var(--font);letter-spacing:.14em;text-transform:uppercase}:root[data-theme=dark] .kicker{color:#e58b6f}
.profile h3,.memorial h3,.gcard h3{font:700 25px/1.2 var(--font);margin:4px 0 2px}.ptitle{color:var(--mute);font-size:15px}
.profile .rule{display:block;width:38px;height:2px;background:var(--gold);margin:12px 0 14px}.profile .rich{font-size:15px;line-height:1.7}
.memorials{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:18px}
.memorial{background:var(--panel);border:1px solid var(--line);border-top:4px solid #1d1d1d;border-radius:6px;overflow:hidden;text-align:center}
.memorial img,.memorial .ph{width:100%;height:260px;object-fit:cover;object-position:top;filter:grayscale(1);display:flex;align-items:center;justify-content:center;background:#1c2420;color:var(--gold)}
.memorial .mb{padding:16px}.memorial h3{font-size:21px}.eow{margin:6px 0;font-size:14px;color:var(--mute)}.eow b{color:var(--ink)}
.gcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.gcard img,.gcard .ph{width:100%;height:190px;object-fit:cover;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1d4a33,#0f2219);color:var(--on-brand)}
.gcard .gb{padding:16px}.gcard h3{font-size:20px}.gcard .rich{font-size:14.5px}

@media(max-width:900px){.pub-head nav>.dd>button,.pub-head nav>a.top{height:auto;padding:10px 6px;border-bottom:0;margin:0}.mega{position:static;box-shadow:none;border:0;background:transparent}
  .mega-in{grid-template-columns:1fr;padding:4px 0 10px 10px;gap:10px}.mega-feat{border:0;padding:0;gap:8px}.mf-ic{width:34px;height:34px}.mega-links{columns:1}.mega-links a{padding:6px 0}
  .profile{grid-template-columns:1fr}.profile-photo{width:100%;max-width:260px;height:300px}}
/* panel: website page editor */
.tools{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.preview{max-height:60vh;overflow:auto;background:var(--bg)}
.site-entry{align-items:center}.site-entry .thumb{width:46px;height:56px;object-fit:cover;object-position:top;border-radius:4px;flex-shrink:0;border:1px solid var(--line)}
.site-entry .thumb.ph{display:flex;align-items:center;justify-content:center;background:var(--brand);color:var(--on-brand);font-weight:700}
.pub-head nav>.dd>button,.pub-head nav>a{white-space:nowrap}
@media(min-width:901px) and (max-width:1240px){.pub-head nav>.dd>button,.pub-head nav>a.top{padding:0 8px;font-size:12.5px}.pub-brand b{font-size:16.5px}.pub-brand img{width:52px}.pub-head .join{padding:9px 12px}}

/* ================= header v2: one-line menu,refined mega menus,icon links ================= */
.pub-head nav{gap:0;flex-wrap:nowrap}
.pub-head nav>.dd>button,.pub-head nav>a.top{position:relative;white-space:nowrap;font:700 12.5px var(--font);letter-spacing:.09em;text-transform:uppercase;color:var(--ink);padding:0 14px;height:84px;border:0;margin:0;background:none;display:flex;align-items:center;gap:6px}
.pub-head nav>.dd>button svg{opacity:.6;transition:transform .2s,opacity .2s}
.pub-head nav>.dd>button::after,.pub-head nav>a.top::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--gold);transform:scaleX(0);transition:transform .2s ease}
.pub-head nav>.dd:hover>button::after,.pub-head nav>.dd.open>button::after,.pub-head nav>.dd.on>button::after,.pub-head nav>a.top:hover::after,.pub-head nav>a.top.on::after{transform:scaleX(1)}
.pub-head nav>.dd:hover>button,.pub-head nav>.dd.open>button,.pub-head nav>.dd.on>button,.pub-head nav>a.top:hover,.pub-head nav>a.top.on{color:var(--brand);border:0}
.pub-head nav>.dd:hover>button svg,.pub-head nav>.dd.open>button svg{opacity:1}.pub-head .dd.open>button svg{transform:rotate(180deg)}
:root[data-theme=dark] .pub-head nav>.dd:hover>button,:root[data-theme=dark] .pub-head nav>.dd.open>button,:root[data-theme=dark] .pub-head nav>.dd.on>button,:root[data-theme=dark] .pub-head nav>a.top:hover,:root[data-theme=dark] .pub-head nav>a.top.on{color:var(--gold2)}
.pub-head .join{margin-left:14px;font:700 12.5px var(--font);letter-spacing:.09em;padding:11px 18px;border-radius:4px;box-shadow:0 2px 0 rgba(0,0,0,.15)}
.pub-brand{flex-shrink:0}.pub-brand b{white-space:nowrap}
/* mega menu */
.mega{z-index:40;border-top:1px solid var(--line);box-shadow:0 24px 50px rgba(10,20,15,.22);animation:megaIn .16s ease-out}
@keyframes megaIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.mega::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--brand),var(--gold) 50%,var(--brand))}
.mega-in{gap:0;padding:0;max-width:1180px}
.mega-feat{border-right:1px solid var(--line)}
.mega-feat a.mf{color:var(--ink);text-decoration:none;transition:background .15s}
.mega-feat a.mf:hover{background:var(--panel)}.mega-feat a.mf>svg{color:var(--gold);opacity:0;transform:translateX(-4px);transition:opacity .15s,transform .15s}.mega-feat a.mf:hover>svg{opacity:1;transform:none}
.mf-ic{width:46px;height:46px;border-width:2px}

.mega-links a{break-inside:avoid;text-decoration:none;transition:background .15s}
.mega-links a b{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:600}.mega-links a b svg{color:var(--gold);opacity:0;transform:translateX(-4px);transition:opacity .15s,transform .15s}
.mega-links a:hover b{color:var(--brand)}.mega-links a:hover b svg{opacity:1;transform:none}:root[data-theme=dark] .mega-links a:hover b{color:var(--gold2)}
.mega-links a small{display:block;color:var(--mute);font-size:12.5px;line-height:1.35;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* top-right links */
.util .ulinks{display:flex;align-items:center;gap:4px}
.util .ulinks>a{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;transition:background .15s,color .15s}.util .ulinks>a:hover{background:rgba(255,255,255,.08);color:#fff}
.util .ulinks>a svg{color:var(--gold);flex-shrink:0}
@media(max-width:700px){.util .ulinks>a span{display:none}.util .ulinks>a{padding:6px 8px}}
/* the full menu needs about 1100px; below that the menu button takes over */
@media(max-width:1100px){
  .pub-menu{display:inline-flex!important}
  .pub-head nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--panel);border-bottom:3px solid var(--gold);flex-direction:column;align-items:stretch;padding:8px 16px 14px;max-height:78vh;overflow:auto;box-shadow:0 18px 40px rgba(0,0,0,.2)}
  .pub-head.open nav{display:flex}
  .pub-head nav>.dd>button,.pub-head nav>a.top{height:auto;padding:13px 4px;justify-content:space-between;width:100%;border-bottom:1px solid var(--line)}
  .pub-head nav>.dd>button::after,.pub-head nav>a.top::after{display:none}
  .mega{position:static;box-shadow:none;border:0;animation:none}.mega::before{display:none}
  .mega-in,.mega-in.no-links{grid-template-columns:1fr}.mega-feat{background:none;border:0;padding:6px 0}.mega-blurb{display:none}
  .mega-links{columns:1;padding:0 0 8px}.mega-links a small{white-space:normal}
  .pub-head .join{margin:12px 0 4px;text-align:center;justify-content:center}
}
.mega-links{min-width:0}.mega-links a{min-width:0}
.mega-in.no-links{grid-template-columns:1fr}
.mega-in.no-links .mega-feat{display:grid;grid-template-columns:minmax(220px,300px) repeat(auto-fit,minmax(240px,1fr));gap:10px 24px;align-items:start;border-right:0;padding:28px 30px 30px}
.mega-in.no-links .mega-feat a.mf{margin:0}
@media(max-width:1100px){.mega-in.no-links .mega-feat{display:flex;padding:6px 0}}
@media(min-width:1101px) and (max-width:1280px){
  .pub-head .in{gap:10px}.pub-head nav>.dd>button,.pub-head nav>a.top{padding:0 9px;letter-spacing:.07em}
  .pub-head nav>.dd>button::after,.pub-head nav>a.top::after{left:9px;right:9px}
  .pub-brand img{width:50px}.pub-brand b{font-size:16px}.pub-brand small{font-size:10px}.pub-head .join{margin-left:8px;padding:10px 13px}
}
@keyframes jpulse{50%{box-shadow:0 0 0 9px color-mix(in srgb,var(--ok) 4%,transparent)}}
.phases{--n:5;list-style:none;margin:0 0 36px;padding:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:14px;position:relative;counter-reset:none}
.phases::before{content:"";position:absolute;left:calc(50% / var(--n));right:calc(50% / var(--n));top:22px;height:2px;background:linear-gradient(90deg,var(--gold),var(--brand));opacity:.7}
.phases li{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;min-width:0}
.phases b{font-size:15.5px}.phases small{color:var(--mute);font-size:13.5px;line-height:1.45}
.facts{display:grid;gap:8px;margin-top:10px}.fact{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:8px;font-size:14px}.fact small{color:var(--mute);font-size:13.5px}
@media(max-width:700px){.phases{grid-template-columns:1fr;gap:0}.phases::before{left:21px;right:auto;top:22px;bottom:22px;width:2px;height:auto;background:linear-gradient(180deg,var(--gold),var(--brand))}
  .phases li{display:grid;grid-template-columns:44px 1fr;column-gap:14px;text-align:left;align-items:start;padding-bottom:18px}.phases b{padding-top:10px}}
@media(max-width:480px){.pub-brand{flex-shrink:1;min-width:0;gap:9px}.pub-brand b{white-space:normal;font-size:15px}.pub-brand img{width:42px}.pub-brand small{font-size:9.5px;letter-spacing:.1em}}

/* ---------- About page ---------- */
.ab-band{padding:56px 0}.ab-band.alt{background:var(--bg2)}.ab-in{max-width:1180px;margin:0 auto;padding:0 20px}
.ab-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:26px}.ab-head h2{font:700 26px/1.2 var(--font);margin:0}
.ab-head p{color:var(--mute);margin:6px 0 0;font-size:14.5px}.ab-rule{display:block;width:40px;height:3px;background:var(--gold);border-radius:2px;margin-top:12px}
.ab-more{font-weight:700;font-size:14px;text-decoration:none;display:inline-flex;gap:6px;align-items:center;white-space:nowrap;color:var(--brand)}:root[data-theme=dark] .ab-more{color:var(--gold2)}
.ab-split{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:48px;align-items:start}
.ab-quote{margin:0;color:#fff;border-radius:var(--r)}
.ab-quote p{font:600 19px/1.55 var(--font);margin:0;color:#fff}.ab-quote small{display:block;color:var(--khaki);font-size:13.5px;line-height:1.5}
.ab-text{font-size:16px;line-height:1.75}.ab-text .rich p{margin:0 0 14px}.ab-band .ab-split .ab-text{padding-top:6px}
.ab-msg{display:grid;grid-template-columns:280px minmax(0,1fr);gap:44px;align-items:start}
.ab-person{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.ab-person img,.ab-person .ph{width:100%;aspect-ratio:4/3.4;object-fit:cover;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),#102b1e);color:rgba(255,255,255,.4);font:700 46px var(--font)}
.ab-person figcaption{padding:14px 16px;text-align:center;border-top:3px solid var(--gold)}.ab-person figcaption b{display:block}.ab-person figcaption small{color:var(--mute);font-size:13px}
.ab-sign{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.ab-sign b{display:block;font:700 17px var(--font)}.ab-sign small{color:var(--mute);font-size:13.5px}
.staff-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.staff-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .15s,box-shadow .15s}.staff-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.staff-card img,.staff-card .ph{width:100%;aspect-ratio:4/3;object-fit:cover;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),#102b1e);color:rgba(255,255,255,.4);font:700 34px var(--font);border-bottom:3px solid var(--gold)}
.sc-b{padding:12px 14px 14px}.sc-b b{display:block;font-size:15px}.sc-b span{display:block;color:var(--mute);font-size:13px;margin-top:3px;line-height:1.4}
@media(max-width:1000px){.staff-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.ab-band{padding:38px 0}.ab-split,.ab-msg{grid-template-columns:1fr;gap:26px}.ab-person{max-width:320px}.staff-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ab-head{flex-wrap:wrap}}

/* ---------- menu overview (hub) ---------- */
.hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.hub-card{display:flex;flex-direction:column;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:26px 26px 22px;text-decoration:none;color:var(--ink);transition:transform .15s,box-shadow .15s,border-color .15s}
.hub-card:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:var(--shadow)}
.hub-ic{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 10%,var(--panel2));color:var(--brand)}:root[data-theme=dark] .hub-ic{color:var(--gold2);background:color-mix(in srgb,var(--gold) 12%,var(--panel2))}
.hub-card h3{margin:6px 0 0;font:700 19px/1.3 var(--font)}.hub-card p{margin:0;color:var(--mute);line-height:1.6;flex:1;font-size:15px}
.hub-card .more{font-weight:700;display:inline-flex;gap:6px;align-items:center;color:var(--brand);margin-top:8px}:root[data-theme=dark] .hub-card .more{color:var(--gold2)}.hub-card .more svg{transition:transform .15s}
@media(max-width:900px){.hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.hub-grid{grid-template-columns:1fr}}

/* ---------- newsroom ---------- */
.news-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;margin:0 0 18px;scrollbar-width:none}.news-tabs::-webkit-scrollbar{display:none}
.news-tabs a{padding:12px 16px;color:var(--mute);text-decoration:none;font-weight:600;font-size:14.5px;border-bottom:3px solid transparent;white-space:nowrap}
.news-tabs a:hover{color:var(--ink)}.news-tabs a.on{color:var(--ink);border-bottom-color:var(--gold)}
.news-count{color:var(--mute);font-size:14.5px;margin:0 0 16px}

/* ---------- crime statistics ---------- */
.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:22px}
.stat-tile{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--line);border-radius:var(--r);padding:16px 18px}
.stat-tile small{display:block;color:var(--mute);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.stat-tile b{display:block;font:700 34px/1.15 var(--font);margin:6px 0 4px}.stat-tile span{font-size:13px;color:var(--mute)}
.stat-tile.s0{border-top-color:var(--brand)}.stat-tile.s1{border-top-color:var(--gold)}.stat-tile.s2{border-top-color:var(--khaki)}
.stat-chart{width:100%;height:auto;display:block;margin:12px 0 6px}.stat-chart text{font:11px var(--font);fill:var(--mute)}.stat-chart line.grid{stroke:var(--line)}
.stat-chart .s0,.legend .s0 i{fill:var(--brand);background:var(--brand)}.stat-chart .s1,.legend .s1 i{fill:var(--gold);background:var(--gold)}.stat-chart .s2,.legend .s2 i{fill:var(--khaki);background:var(--khaki)}
:root[data-theme=dark] .stat-chart .s0,:root[data-theme=dark] .legend .s0 i{fill:#5fae80;background:#5fae80}:root[data-theme=dark] .stat-tile.s0{border-top-color:#5fae80}
.stat-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;align-items:center}.stat-head h2,.stat-two h2{margin:0;font-size:19px}.stat-two h2{margin-bottom:12px}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--mute)}.legend span{display:inline-flex;gap:6px;align-items:center}.legend i{width:11px;height:11px;border-radius:3px}
.stat-card details summary{cursor:pointer;color:var(--gold);font-size:14px;font-weight:600}.tblwrap{overflow-x:auto;margin-top:10px}
.stat-two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.barlist .bl{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,2fr) 34px;gap:10px;align-items:center;font-size:14px;padding:5px 0}.bl span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bl i{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--gold),var(--gold2));width:var(--w);min-width:4px}.bl b{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:760px){.stat-two{grid-template-columns:1fr}}

/* ---------- crime map ---------- */
.cm{display:grid;gap:28px;align-items:start}
.cm-map{position:relative;border-radius:var(--r)}.cm-map img{display:block;width:100%;height:auto}
.cm-side h2{margin:0 0 12px;font-size:20px}.cm-list{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}
.cm-list a{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);text-decoration:none;color:var(--ink)}.cm-list a:hover{border-color:var(--gold)}
.cm-n{flex:none;width:24px;height:24px;border-radius:50%;background:#c0392b;color:#fff;display:grid;place-items:center;font:700 12px var(--font)}.cm-list b{display:block;font-size:14.5px}.cm-list small{color:var(--mute);font-size:12.5px}
@media(max-width:900px){.cm{grid-template-columns:1fr}}

/* ---------- events ---------- */
.events{display:grid;gap:14px}.event{display:flex;gap:18px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px}
.ev-date{flex:none;width:64px;height:70px;border-radius:10px;background:linear-gradient(135deg,var(--brand),#102b1e);color:#fff;display:grid;place-content:center;text-align:center;border-bottom:3px solid var(--gold)}
.ev-date b{font:700 26px/1 var(--font)}.ev-date small{text-transform:uppercase;font-size:11.5px;letter-spacing:.1em;color:var(--khaki);margin-top:3px}
.ev-k{color:var(--gold);font:700 11px var(--font);letter-spacing:.12em;text-transform:uppercase}.ev-b h3{margin:2px 0 4px}.ev-b .rich{margin-top:8px;font-size:15px}
.pub-head nav>.dd>button::after{border:0;margin:0}
.foot a.fi{display:flex;gap:9px;align-items:center}.foot a.fi svg{color:var(--gold);flex:none}.foot a{padding:5px 0}

/* ---------- Community Portal ---------- */
.cp-head .in{min-height:84px}.cp-nav{display:flex;align-items:center;gap:2px;flex-wrap:wrap;justify-content:flex-end}
.cp-nav a.top,.cp-out{display:inline-flex;align-items:center;gap:7px;padding:10px 12px;border-radius:8px;font:700 12.5px var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);text-decoration:none;background:none;border:0;cursor:pointer}
.cp-nav a.top:hover,.cp-out:hover{background:var(--panel2)}.cp-nav a.top.on{color:var(--brand);box-shadow:inset 0 -3px 0 var(--gold)}:root[data-theme=dark] .cp-nav a.top.on{color:var(--gold2)}
.cp-nav svg{color:var(--gold)}
.cp-welcome{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,420px);gap:40px;align-items:start}.cp-welcome h2{font:700 26px/1.25 var(--font);margin:0 0 10px}
.cp-ic{flex:none;width:40px;height:40px;border-radius:50%;border:2px solid var(--gold);color:var(--gold);display:grid;place-items:center}
.cp-auth{padding:22px 24px}.cp-tabs{display:flex;border-bottom:1px solid var(--line);margin:-4px 0 16px}.cp-tabs button{flex:1;background:none;border:0;border-bottom:3px solid transparent;padding:10px;font-weight:700;color:var(--mute);cursor:pointer}
.cp-tabs button.on{color:var(--ink);border-bottom-color:var(--gold)}
.cp-form .acts{margin-top:14px}.cp-form .fld{margin-bottom:12px}
.cp-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:34px}
.cp-action{display:flex;flex-direction:column;gap:6px;padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s,box-shadow .15s}
.cp-action:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:var(--shadow)}.cp-action b{font:700 17px var(--font);margin-top:6px}.cp-action span:last-child{color:var(--mute);font-size:14px}
.cp-sechead{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.cp-sechead h2{margin:0;font-size:20px}
.cp-list{display:grid;gap:10px}.cp-row{display:flex;gap:16px;align-items:center;padding:14px 18px;background:var(--panel);border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink)}
.cp-row:hover{border-color:var(--gold)}.cp-row.unread{border-left:4px solid var(--gold)}.cp-row-main{min-width:0}.cp-row-main b{display:block;font-size:16px;margin:2px 0}.cp-row-main small{color:var(--mute)}
.cp-row-k{color:var(--gold);font:700 11.5px var(--font);letter-spacing:.1em;text-transform:uppercase}.cp-row-side{display:flex;align-items:center;gap:10px;flex:none}.cp-row-side>svg{color:var(--mute)}
.cp-new{background:var(--gold);color:#14211a;font:700 11px var(--font);padding:3px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.05em}
.cp-pill{display:inline-block;padding:3px 10px;border-radius:999px;font:700 12px var(--font);border:1px solid currentColor;white-space:nowrap}
.cp-pill.ok{color:var(--ok)}.cp-pill.bad{color:var(--bad)}.cp-pill.muted{color:var(--mute)}.cp-pill.blue{color:var(--blue,#3b7dd8)}.cp-pill.gold{color:var(--gold)}
.cp-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:16px;text-decoration:none;font-weight:600}
.cp-steps{list-style:none;margin:8px 0 0;padding:0;display:flex;gap:0;counter-reset:none}.cp-steps li{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;text-align:center;color:var(--mute)}
.cp-steps li::before{content:"";position:absolute;top:15px;left:-50%;right:50%;height:2px;background:var(--line)}.cp-steps li:first-child::before{display:none}.cp-steps li.done::before,.cp-steps li.cur::before{background:var(--gold)}
.cp-steps .dot{position:relative;z-index:1;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--panel);border:2px solid var(--line);font:700 13px var(--font)}
.cp-steps li.done .dot{background:var(--gold);border-color:var(--gold);color:#14211a}.cp-steps li.cur .dot{border-color:var(--gold);color:var(--gold);box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 20%,transparent)}.cp-steps li.cur small{color:var(--ink);font-weight:700}
.cp-steps small{font-size:12px}
.cp-response{border-left:4px solid var(--gold)}.cp-response .pre{margin-top:8px}
.cp-msg{border-radius:12px}
.cp-msg.me{justify-self:end;background:color-mix(in srgb,var(--gold) 10%,var(--panel))}.cp-msg.staff{justify-self:start;border-left:4px solid var(--brand)}
.cp-msg-h{font-weight:600}
.cp-closed{text-align:center;padding:34px 24px}
.cp-toast{bottom:20px;left:50%;z-index:99}
@media(max-width:900px){.cp-welcome{grid-template-columns:1fr}.cp-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.cp-head .in{flex-wrap:wrap;padding:10px 20px}.cp-nav{justify-content:flex-start}}
@media(max-width:560px){.cp-actions{grid-template-columns:1fr}.cp-nav a.top span,.cp-out span{display:none}.cp-steps small{font-size:10.5px}.cp-row{flex-direction:column;align-items:flex-start}}

/* staff inbox: conversation with a citizen */
.thread{display:grid;gap:8px;margin-bottom:10px}.thread .msg{padding:10px 12px;border-radius:10px;background:var(--panel2);border:1px solid var(--line)}.thread .msg.staff{border-left:3px solid var(--gold)}
.tracks{display:grid;grid-template-columns:1fr 1fr;gap:18px}.track{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px}
.track b{display:block;font:700 18px var(--font)}.track p{margin:6px 0 10px;color:var(--mute);font-size:14.5px;line-height:1.6}.track a{font-weight:700;text-decoration:none;font-size:14px}
.why{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.why-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.why-ic{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:var(--on-brand);margin-bottom:12px}.why-card b{display:block;font-size:16px}.why-card p{margin:6px 0 0;color:var(--mute);font-size:14px;line-height:1.6}
.join-req{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:40px;align-items:start}
.reqs{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:10px}.reqs li{display:flex;gap:10px;align-items:flex-start;line-height:1.5}.reqs li svg{color:var(--gold);flex:none;margin-top:2px}
.ready{background:linear-gradient(135deg,var(--brand),#102b1e);color:#e9efe9;border-radius:var(--r);padding:26px 26px 22px;box-shadow:var(--shadow);border-top:4px solid var(--gold)}
.ready h3{color:#fff;margin:0 0 10px;font:700 21px var(--font)}.ready p{color:#d3ddd5;line-height:1.6;font-size:14.5px}
.ready .ready-btn{display:inline-flex;gap:8px;align-items:center;margin:6px 0 14px;color:#14211a}.ready .facts .fact{border-top-color:rgba(255,255,255,.14)}.ready .fact small{color:#b9c6bc}.ready .fact b{color:#fff}
.ab-band.dark{background:linear-gradient(135deg,#123323,#0b1f15);color:#e9efe9}.ab-band.dark h2{color:#fff}.ab-band.dark .ab-head p{color:var(--khaki)}
.proc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));gap:16px}
.proc li{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--r);padding:18px}
.proc-n{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:#14211a;font:800 14px var(--font);margin-bottom:12px}
.proc small{display:block;font:700 11px var(--font);letter-spacing:.12em;text-transform:uppercase}.proc b{display:block;color:#fff;font-size:16px;margin:4px 0}.proc p{margin:0;color:#c9d3cb;font-size:13.5px;line-height:1.55}
.academy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:40px;align-items:start}
.modules{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:10px}.modules li{display:flex;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.mod-n{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:var(--on-brand);font:700 13px var(--font)}.modules b{display:block}.modules p{margin:3px 0 0;color:var(--mute);font-size:14px;line-height:1.55}
.start{text-align:center;max-width:560px;margin:0 auto}.start h2{font:700 26px var(--font);margin:0 0 8px}.start p{color:var(--mute);margin:0 0 18px}.start .btn{display:inline-flex;gap:8px;align-items:center}
@media(max-width:1000px){.why{grid-template-columns:repeat(2,minmax(0,1fr))}.proc{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.tracks,.join-req,.academy{grid-template-columns:1fr}.proc{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.why,.proc{grid-template-columns:1fr}}

/* ---------- notices,questions,boxes,roles and columns (Recruitment FAQ, Civilian Careers) ---------- */
.callouts{display:grid;gap:14px}.callout{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:6px;background:var(--panel2);border:1px solid var(--line);border-left:4px solid var(--gold)}
.callout>svg{flex:none;color:var(--gold);margin-top:1px}.callout b{display:block;margin-bottom:4px}.callout .rich{font-size:14.5px;color:var(--mute)}.callout .rich p:last-child{margin-bottom:0}
.callout.warn{border-left-color:var(--bad)}.callout.warn>svg{color:var(--bad)}
.faq{display:grid;gap:10px}.faq details{background:var(--panel);border:1px solid var(--line);border-radius:8px}.faq summary{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}.faq summary>svg{margin-left:auto;color:var(--mute);transition:transform .15s;flex:none}.faq details[open] summary>svg{transform:rotate(180deg)}
.faq-n{color:var(--mute);font-size:12.5px;min-width:16px}.faq-tag{background:var(--brand);color:var(--on-brand);font:700 10.5px var(--font);letter-spacing:.08em;padding:2px 7px;border-radius:4px}
.faq-a{padding:0 18px 14px 44px;color:var(--ink)}.faq-a .rich{font-size:15px}
.boxes{display:grid;gap:12px}.box{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px 18px}.box b{display:block;margin-bottom:4px}.box .rich{color:var(--mute);font-size:14.5px}.box .rich p:last-child{margin:0}
.roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.role{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:20px;display:flex;flex-direction:column}
.role h3{margin:0;font-size:17px}.role-k{color:var(--gold);font:700 11px var(--font);letter-spacing:.1em;text-transform:uppercase;margin:4px 0 10px}.role .rich{color:var(--mute);font-size:14px;flex:1}.role-f{font-weight:700;font-size:13.5px;margin-top:10px}
.tcols{display:grid;grid-template-columns:1fr 1fr;gap:40px}.tcols h3{margin:0;font:700 21px var(--font)}.tcols .ab-rule{margin-bottom:14px}.tcols .rich{color:var(--mute)}
@media(max-width:900px){.roles{grid-template-columns:1fr 1fr}}@media(max-width:640px){.roles,.tcols{grid-template-columns:1fr}}
.proc small{color:#e2c77e}.proc-n{background:#d6b25e}.ready a{color:#f0d48e}.ready .ready-btn,.ready .ready-btn:hover{background:#d6b25e;color:#14211a;border-color:#d6b25e}.ab-band.dark .ab-rule{background:#d6b25e}
.topbar .webbtn{display:inline-flex;align-items:center;gap:6px;margin-right:6px;text-decoration:none;white-space:nowrap}@media(max-width:760px){.topbar .webbtn span{display:none}}
.text-sect .sec-title{text-transform:none!important;letter-spacing:0!important;color:var(--ink)!important;font:700 24px/1.25 var(--font)!important}.callout b{color:var(--ink)}

/* In Character (IC) and Out of Character (OOC) parts: application form,application view and Join page requirements */
.form-part{margin:24px 0 12px;padding:12px 14px;border-radius:10px;border-left:4px solid var(--brand);background:var(--panel2)}.cp-form>.form-part:first-child,.dlg .form-part:first-of-type{margin-top:6px}
.form-part h3,.req-group h3{margin:0;display:flex;gap:10px;align-items:center;font-size:18px}.form-part p{margin:6px 0 0;color:var(--mute);font-size:14px}.form-part .kv{margin-top:10px}
.form-part.is-ooc{border-left-color:var(--gold);background:color-mix(in srgb,var(--gold) 7%,var(--panel2))}
.part-tag{font:800 11px var(--font);letter-spacing:.1em;padding:3px 8px;border-radius:4px;background:var(--brand);color:var(--on-brand)}
.form-part.is-ooc .part-tag,.req-group.is-ooc .part-tag{background:var(--gold);color:#14211a}
:root[data-theme=dark] .form-part:not(.is-ooc){border-left-color:#5fae80}:root[data-theme=dark] .form-part:not(.is-ooc) .part-tag,:root[data-theme=dark] .req-group.is-ic .part-tag{background:#2f6b4b;color:#fff}
.req-group h3{font-size:17px;margin:4px 0 10px}.req-group+.req-group{margin-top:20px;padding-top:18px;border-top:1px dashed var(--line)}
.form-heading.sub{font-size:15px;color:var(--ink);border-bottom:0;margin:14px 0 6px}

/* ---------- interactive touches (LSSD Website) ---------- */
body.pub #main>*{animation:pagein .35s ease both}@keyframes pagein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.rv{opacity:0;transform:translateY(18px);transition:opacity .55s ease var(--d,0ms),transform .55s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){body.pub #main>*{animation:none}.rv{opacity:1;transform:none;transition:none}}
body.pub.scrolled .pub-head{box-shadow:0 8px 26px rgba(0,0,0,.14)}:root[data-theme=dark] body.pub.scrolled .pub-head{box-shadow:0 8px 28px rgba(0,0,0,.55)}
.readbar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--gold),var(--gold2));z-index:60;transition:width .1s linear}
.carousel:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.cnav{position:absolute;top:50%;z-index:3;width:42px;height:42px;margin-top:-21px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(10,20,14,.45);color:#fff;display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .2s,background .2s;backdrop-filter:blur(4px)}
.cnav.prev{left:14px}.cnav.next{right:14px}.cnav.prev svg{transform:rotate(90deg)}.cnav.next svg{transform:rotate(-90deg)}.carousel:hover .cnav,.cnav:focus-visible{opacity:1}.cnav:hover{background:var(--gold);color:#14211a;border-color:var(--gold)}
@media(hover:none){.cnav{opacity:.85}}
.cbar{position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--gold);z-index:3}.cbar.run{animation:cbar 7s linear forwards}@keyframes cbar{to{width:100%}}
@media(prefers-reduced-motion:reduce){.cbar{display:none}}
.ref{display:inline-flex!important;align-items:center;gap:12px}.ref .copy{font:600 12px var(--font);letter-spacing:.02em;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:6px;padding:4px 10px;cursor:pointer}.ref .copy:hover{border-color:var(--gold);color:var(--gold)}
.list-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 16px}.list-tools .news-count{margin:0}
.search-box{display:flex;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:0 6px 0 14px;min-width:min(320px,100%);color:var(--mute);transition:border-color .15s,box-shadow .15s}
.search-box:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 20%,transparent)}.search-box input{border:0;background:transparent;min-height:40px;outline:none!important}
.list-tools .btn{margin-left:auto}
.quicklinks a{transition:transform .2s,box-shadow .2s,background .2s}.quicklinks a:hover{transform:translateY(-3px)}
.hub-card:hover .more svg{transform:translateX(3px)}
.why-card,.track,.box,.role,.modules li{transition:transform .2s,box-shadow .2s,border-color .2s}.why-card:hover,.track:hover,.role:hover,.modules li:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--gold) 50%,var(--line))}
.faq details{transition:border-color .2s,box-shadow .2s}.faq details[open]{border-color:color-mix(in srgb,var(--gold) 55%,var(--line));box-shadow:var(--shadow)}.faq details[open] .faq-a{animation:pagein .25s ease}
@media(max-width:560px){.list-tools{flex-direction:column;align-items:stretch}.list-tools .btn{margin-left:0}}

/* ---------- Community Portal v2: interactive ---------- */
body.cp.scrolled .pub-head{box-shadow:0 8px 26px rgba(0,0,0,.16)}
#main.loading{opacity:.55;transition:opacity .2s}
.cp-hero{background:radial-gradient(900px 300px at 85% -10%,rgba(214,178,94,.25),transparent 70%),linear-gradient(135deg,#1d4a33,#0d2318);color:#fff;border-bottom:3px solid var(--gold);overflow:hidden}
.cp-hero .in{max-width:1180px;margin:0 auto;padding:46px 20px 50px;display:flex;align-items:center;gap:30px;justify-content:space-between}
.cp-hero-t small{color:var(--khaki);text-transform:uppercase;letter-spacing:.14em;font-size:12px}.cp-hero h1{color:#fff;font:700 clamp(32px,5vw,48px)/1.1 var(--font);margin:8px 0 12px}.cp-hero p{color:#dfe7e1;max-width:560px;font-size:17px;line-height:1.6;margin:0}
.cp-hero-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.cp-hero-pills span{display:inline-flex;gap:6px;align-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);padding:6px 12px;border-radius:999px;font-size:13px}.cp-hero-pills svg{color:#f0d48e}
@keyframes cpfloat{50%{transform:translateY(-8px) rotate(2deg)}}
.cp-how{list-style:none;padding:0;margin:16px 0 22px;display:grid;gap:14px;counter-reset:how}.cp-how li{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:12px;animation:pagein .5s ease both;animation-delay:calc(var(--i,0) * 120ms)}
.cp-how b{display:block}.cp-how span:last-child{color:var(--mute);font-size:14px}
.cp-note{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:10px;background:var(--panel2);border:1px solid var(--line);border-left:4px solid var(--gold);margin:0 0 18px;font-size:14.5px}.cp-note>svg{flex:none;color:var(--gold);margin-top:1px}
.cp-pane{animation:pagein .3s ease}.cp-switch{text-align:center;margin:14px 0 0}
.cp-pw{position:relative}.cp-pw input{padding-right:44px}.cp-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--mute);cursor:pointer;padding:6px;border-radius:6px}.cp-eye:hover{color:var(--gold)}
.cp-caps{display:block;color:var(--warn);font-size:12.5px;margin-top:4px}
.cp-meter{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:8px}.cp-meter i{height:5px;border-radius:3px;background:var(--line);transition:background .25s}
.cp-meter[data-s="1"] i:nth-child(-n+1){background:var(--bad)}.cp-meter[data-s="2"] i:nth-child(-n+2){background:var(--warn)}.cp-meter[data-s="3"] i:nth-child(-n+3){background:#7fb069}.cp-meter[data-s="4"] i{background:var(--ok)}
.cp-check{display:block;font-size:12.5px;margin-top:4px;min-height:1em}.cp-check.ok{color:var(--ok)}.cp-check.bad{color:var(--bad)}
.cp-count{display:block;text-align:right;font-size:12px;color:var(--mute);margin-top:3px}.cp-count.near{color:var(--warn);font-weight:700}
.cp-form textarea{resize:vertical;min-height:84px;transition:height .1s}
.cp-draft{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--mute);background:var(--panel2);border:1px dashed var(--line);border-radius:8px;padding:8px 12px;margin-bottom:14px}.cp-draft svg{color:var(--gold)}.cp-draft .linkbtn{margin-left:auto}
.cp-form .btn{display:inline-flex;align-items:center;gap:8px}.btn.busy{opacity:.7;pointer-events:none}.btn.busy svg{animation:cpspin 1s linear infinite}@keyframes cpspin{to{transform:rotate(360deg)}}
.cp-toasts{position:fixed;right:18px;bottom:18px;z-index:99;display:grid;gap:8px;max-width:min(360px,calc(100vw - 36px))}
.cp-toast{position:static;transform:none;display:flex;align-items:center;gap:10px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-left:4px solid var(--ok);padding:12px 14px;border-radius:10px;box-shadow:var(--shadow);text-decoration:none;font-size:14.5px;animation:cptoast .3s ease both;transition:opacity .35s,transform .35s}
.cp-toast.info{border-left-color:var(--gold)}.cp-toast.bad{border-left-color:var(--bad)}.cp-toast svg{flex:none;color:var(--ok)}.cp-toast.info svg{color:var(--gold)}.cp-toast.bad svg{color:var(--bad)}.cp-toast.out{opacity:0;transform:translateX(20px)}
@keyframes cptoast{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.cp-nav a.top{position:relative}.cp-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--bad);color:#fff;font:700 11px/18px var(--font);text-align:center;animation:cppop .4s ease}@keyframes cppop{50%{transform:scale(1.3)}}
.cp-me{display:inline-flex;align-items:center;gap:8px;padding:5px 10px 5px 5px;border-radius:999px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:600;font-size:13.5px;margin-left:6px}.cp-me:hover,.cp-me.on{border-color:var(--gold)}
.cp-av{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:var(--on-brand);font:700 12.5px var(--font);letter-spacing:.03em}.cp-av.big{width:64px;height:64px;font-size:22px}.cp-av.dept{background:var(--panel2);border:1px solid var(--line)}.cp-av.dept img{width:24px}
.cp-out{padding:9px!important;border-radius:50%!important}
.page-banner .cp-stats{margin-top:22px}
.cp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.cp-stat{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;text-align:left;padding:14px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);color:#fff;cursor:pointer;transition:background .2s,transform .2s}
.cp-stat:hover{background:rgba(255,255,255,.14);transform:translateY(-2px)}.cp-stat-ic{grid-row:span 2;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:rgba(214,178,94,.22);color:#f0d48e}.cp-stat b{font:700 26px/1 var(--font)}.cp-stat small{color:#cfd9d1;font-size:12.5px}
.cp-stat.updates .cp-stat-ic{background:rgba(239,106,98,.25);color:#ffb3ad}
.cp-actions .cp-action{position:relative}.cp-go{position:absolute;right:16px;top:18px;color:var(--gold);opacity:0;transform:translateX(-6px);transition:opacity .2s,transform .2s}.cp-action:hover .cp-go{opacity:1;transform:none}
.cp-actions.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.cp-tools{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}
.cp-chips{display:flex;gap:6px;flex-wrap:wrap}.cp-chips button{border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:7px 14px;border-radius:999px;font-weight:600;font-size:13.5px;cursor:pointer;transition:all .15s}
.cp-chips button:hover{border-color:var(--gold)}.cp-chips button.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}:root[data-theme=dark] .cp-chips button.on{background:var(--gold);border-color:var(--gold);color:#14211a}
.cp-row:hover{transform:translateX(3px);box-shadow:var(--shadow)}.cp-row{transition:border-color .15s,transform .15s,box-shadow .15s;animation:pagein .35s ease both;justify-content:flex-start}.cp-row-main{flex:1}
.cp-row-ic{flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--panel2);color:var(--gold)}.cp-row.unread .cp-row-ic{background:var(--gold);color:#14211a}
.cp-itemtop{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.cp-itemtop .cp-back{margin:0}
.cp-copy{display:inline-flex;align-items:center;gap:8px;border:1px dashed var(--gold);background:var(--panel);color:var(--gold);border-radius:8px;padding:6px 12px;cursor:pointer;font-weight:700}.cp-copy:hover{background:var(--gold);color:#14211a}
.cp-sent summary{cursor:pointer;font-weight:700;list-style:none;display:flex;align-items:center;gap:8px}.cp-sent summary::-webkit-details-marker{display:none}.cp-sent summary svg{transition:transform .2s;transform:rotate(-90deg)}.cp-sent[open] summary svg{transform:none}.cp-sent .pre{margin-top:10px}
.cp-response .cp-row-k{display:flex;align-items:center;gap:6px}
.cp-thread{display:flex;flex-direction:column;gap:12px;margin:8px 0 16px}.cp-thread-empty{text-align:center;color:var(--mute);padding:20px 10px}.cp-thread-empty svg{color:var(--gold)}
.cp-day{display:flex;align-items:center;gap:10px;color:var(--mute);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.cp-day::before,.cp-day::after{content:"";flex:1;height:1px;background:var(--line)}
.cp-msg{display:flex;gap:10px;align-items:flex-end;max-width:none;background:none;border:0;padding:0;animation:cptoast .3s ease both}.cp-msg.me{flex-direction:row-reverse}
.cp-bubble{max-width:min(78%,560px);padding:10px 14px;border-radius:16px;background:var(--panel2);border:1px solid var(--line)}.cp-msg.staff .cp-bubble{border-bottom-left-radius:4px;border-left:3px solid var(--brand)}
.cp-msg.me .cp-bubble{border-bottom-right-radius:4px;background:color-mix(in srgb,var(--gold) 14%,var(--panel));border-color:color-mix(in srgb,var(--gold) 35%,var(--line))}
.cp-msg-h{display:flex;justify-content:space-between;gap:14px;font-size:12px;color:var(--mute);margin-bottom:4px}.cp-msg-h b{color:var(--ink)}
.cp-composer{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:10px 12px;transition:border-color .15s,box-shadow .15s}.cp-composer:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 18%,transparent)}
.cp-composer textarea{border:0;background:transparent;padding:4px 2px;min-height:44px;resize:none;outline:none!important}.cp-composer-b{display:flex;align-items:center;gap:10px;justify-content:flex-end}.cp-composer-b .muted{margin-right:auto;font-size:12px}.cp-composer .btn{display:inline-flex;gap:7px;align-items:center}
.cp-composer .btn:disabled{opacity:.5}.cp-composer .cp-count{margin:0}
.cp-type{margin:4px 0 14px}.cp-type>span{display:block;margin-bottom:6px}
.cp-from{display:flex;align-items:center;gap:12px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line)}.cp-from small{display:block}
.cp-progress{position:sticky;top:96px;z-index:5;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:0 0 16px;box-shadow:var(--shadow)}
.cp-progress-t{display:flex;justify-content:space-between;gap:10px;font-size:14px;margin-bottom:8px}.cp-progress-t span{color:var(--mute)}.cp-progress.done .cp-progress-t span{color:var(--ok);font-weight:700}
.cp-progress-b{height:8px;border-radius:5px;background:var(--panel2);overflow:hidden}.cp-progress-b i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--gold2));border-radius:5px;transition:width .35s ease}.cp-progress.done .cp-progress-b i{background:var(--ok)}
.cp-profile{display:flex;align-items:center;gap:18px}.cp-profile h2{margin:0}.cp-profile small{display:block;margin-top:2px}.cp-profile-n{text-align:center;padding-left:18px;border-left:1px solid var(--line)}.cp-profile-n b{display:block;font:700 28px var(--font);color:var(--gold)}.cp-profile-n small{color:var(--mute)}
.cp-closed svg{color:var(--gold)}
@media(max-width:900px){.cp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cp-hero-star{width:110px}.cp-actions.three{grid-template-columns:1fr}}
@media(max-width:560px){.cp-hero .in{flex-direction:column-reverse;align-items:flex-start;padding:30px 20px}.cp-hero-star{width:80px}.cp-me-n{display:none}.cp-me{padding:3px;margin-left:2px}.cp-tools{flex-direction:column;align-items:stretch}.cp-bubble{max-width:85%}.cp-itemtop{flex-wrap:wrap}.cp-progress{top:72px}.cp-stat b{font-size:22px}}
@media(prefers-reduced-motion:reduce){.cp-hero-star,.cp-how li,.cp-row,.cp-msg,.cp-toast,.cp-pane{animation:none}}
@media(max-width:1100px){.cp-head nav.cp-nav{display:flex!important;position:static;flex-direction:row;align-items:center;padding:0;border:0;box-shadow:none;background:none;max-height:none;overflow:visible;margin-left:auto}.cp-nav a.top>span:not(.cp-badge){display:none}.cp-nav a.top{padding:10px}.cp-head .in{flex-wrap:nowrap!important}}
@media(max-width:1100px){.cp-me-n{display:none}.cp-me{padding:3px;margin-left:4px}}@media(max-width:620px){.cp-head .pub-brand small{display:none}.cp-head .pub-brand b{font-size:14px}.cp-nav a.top{padding:8px}}
.cp-thread .cp-msg.me,.cp-thread .cp-msg.staff{background:none;border:0;max-width:none;padding:0;justify-self:auto}
.cp-from b+small{display:inline!important}

/* ---------- statuses: one capital letter at the start,nothing more ---------- */
.pill{text-transform:none}
form.cols>.form-heading{grid-column:1/-1;margin-bottom:2px}

/* ---------- Fleet ---------- */
.fl-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--mute);flex:none}.fl-dot.ok{background:var(--ok)}.fl-dot.blue{background:var(--blue)}.fl-dot.warn{background:var(--warn)}.fl-dot.bad{background:var(--bad)}.fl-dot.muted{background:var(--mute)}
.fl-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}.fl-ov{margin:0}
.fl-ov-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.fl-ov-h h3{margin:0}
.fl-big{display:flex;align-items:baseline;gap:10px;margin:2px 0 12px}.fl-big b{font:700 34px/1 var(--font);color:var(--ink)}.fl-big span{color:var(--mute);font-size:13.5px}.fl-big.bad b{color:var(--bad)}.fl-big.warn b{color:var(--warn)}.fl-big.ok b{color:var(--ok)}

.fl-sv{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px;text-align:center;cursor:pointer;color:var(--ink);transition:border-color .15s,transform .15s}
.fl-sv:hover{transform:translateY(-1px)}.fl-sv b{display:block;font:700 24px/1.1 var(--font)}.fl-sv small{color:var(--mute)}.fl-sv.bad b{color:var(--bad)}.fl-sv.warn b{color:var(--warn)}.fl-sv.ok b{color:var(--ok)}.fl-sv.bad:hover{border-color:var(--bad)}.fl-sv.warn:hover{border-color:var(--warn)}.fl-sv.ok:hover{border-color:var(--ok)}
.fl-urgent{display:grid;gap:4px}.fl-urgent a{align-items:center;padding:6px 8px;border-radius:8px;text-decoration:none;color:var(--ink)}.fl-urgent a:hover{background:var(--raise)}
.fl-bureaus{display:grid;gap:6px}.fl-bureaus button{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 28px;align-items:center;gap:10px;background:none;border:0;color:var(--ink);font-size:13.5px;text-align:left;cursor:pointer;padding:3px 4px;border-radius:6px}
.fl-bureaus button:hover{background:var(--raise)}.fl-bureaus .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fl-bureaus i{height:8px;border-radius:4px;background:linear-gradient(90deg,var(--gold),var(--gold2))}.fl-bureaus b{text-align:right}
.fl-toolbar{padding:12px 14px}.fl-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.fl-tools select{width:auto}
.fl-search{flex:1 1 280px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:0 10px;background:var(--bg);color:var(--mute)}.fl-search:focus-within{border-color:var(--gold)}.fl-search input{border:0;background:none;outline:none!important;padding:0;min-height:38px}
.fl-tools .seg button{display:inline-flex;align-items:center;gap:6px}
.fl-tools2{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:10px}.fl-tools2 .muted{margin-left:auto}
.fl-chips{display:flex;gap:6px;flex-wrap:wrap}.fl-fchip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer}
.fl-fchip .n{color:var(--mute);font-size:12px}.fl-fchip:hover{border-color:var(--gold)}.fl-fchip.on{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 16%,var(--panel))}.fl-fchip.on .n{color:var(--ink)}
.fl-group{margin-top:18px}.fl-group-h{display:flex;align-items:baseline;gap:10px;margin:0 2px 10px}.fl-group-h h3{margin:0;font-size:15px}
.fl-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.fl-card{position:relative;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--mute);border-radius:12px;padding:14px 14px 12px;cursor:pointer;display:flex;flex-direction:column;gap:7px;transition:transform .15s,box-shadow .15s,border-color .15s}
.fl-card:hover,.fl-card:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow);outline:none}.fl-card.is-ok{border-left-color:var(--ok)}.fl-card.is-blue{border-left-color:var(--blue)}.fl-card.is-warn{border-left-color:var(--warn)}.fl-card.is-bad{border-left-color:var(--bad)}.fl-card.is-muted{opacity:.75}
.fl-card-top{display:flex;align-items:center;gap:8px}
.fl-plate{display:inline-block;font:800 13px var(--font);letter-spacing:.08em;padding:3px 8px;border-radius:5px;background:#f4f1e6;color:#13261c;border:1.5px solid #13261c;box-shadow:inset 0 0 0 1px #f4f1e6}
.fl-plate.sm{font-size:11.5px;padding:1px 6px}.fl-plate.big{font-size:22px;padding:8px 14px;border-width:2px}

.fl-model{font-size:15.5px}.fl-who{display:flex;gap:6px;align-items:flex-start;font-size:13.5px}.fl-who svg{flex:none;margin-top:2px;color:var(--mute)}
.fl-svc{margin-top:auto}.fl-svc-t{display:flex;justify-content:space-between;gap:8px;margin-bottom:5px}.fl-svc-t small:first-child{color:var(--mute)}
small.ok{color:var(--ok)}small.warn{color:var(--warn);font-weight:600}small.bad{color:var(--bad);font-weight:700}small.muted{color:var(--mute)}
.fl-gauge{height:7px;border-radius:4px;background:var(--raise);overflow:hidden}.fl-gauge i{display:block;height:100%;background:var(--ok);border-radius:4px;transition:width .4s}.fl-gauge.warn i{background:var(--warn)}.fl-gauge.bad i{background:var(--bad)}.fl-gauge.muted i{background:var(--mute)}
.fl-card-b{justify-content:space-between;padding-top:8px;border-top:1px solid var(--line)}
.fl-chip{display:inline-flex;align-items:center;gap:5px;cursor:pointer;background:none;font:inherit;font-size:12px}.fl-chip:hover{filter:brightness(1.15)}
.fl-svc-cell{min-width:150px}.fl-svc-cell small{display:block;margin-top:4px}
.fl-sopt{display:flex!important;align-items:center;gap:10px;text-align:left}.fl-sopt small{display:block;font-size:12px}.fl-sopt.on{background:var(--raise)}.fl-sopt>svg{margin-left:auto;color:var(--ok)}
.fl-hero{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-left:5px solid var(--mute)}.fl-hero.is-ok{border-left-color:var(--ok)}.fl-hero.is-blue{border-left-color:var(--blue)}.fl-hero.is-warn{border-left-color:var(--warn)}.fl-hero.is-bad{border-left-color:var(--bad)}
.fl-hero-main{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.fl-hero h1{margin:0 0 4px;font-size:24px}.fl-hero-acts{display:flex;gap:8px;align-items:center}
.fl-states{display:flex;gap:8px;flex-wrap:wrap}.fl-state{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);font-weight:600;cursor:pointer;transition:all .15s}
.fl-state:hover:not(:disabled){border-color:var(--gold)}.fl-state:disabled{cursor:default;opacity:.55}
.fl-state.on.ok{background:color-mix(in srgb,var(--ok) 16%,var(--panel));border-color:var(--ok)}.fl-state.on.blue{background:color-mix(in srgb,var(--blue) 16%,var(--panel));border-color:var(--blue)}.fl-state.on.warn{background:color-mix(in srgb,var(--warn) 16%,var(--panel));border-color:var(--warn)}.fl-state.on.bad{background:color-mix(in srgb,var(--bad) 16%,var(--panel));border-color:var(--bad)}.fl-state.on.muted{background:var(--raise)}
.fl-state.on{opacity:1;color:var(--ink);box-shadow:none}
.fl-svccard .fl-gauge{height:12px;border-radius:7px}.fl-svc-scale{display:flex;justify-content:space-between;margin-top:6px;color:var(--mute)}
.fl-notes{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.fl-timeline{list-style:none;margin:0;padding:0;position:relative}.fl-timeline::before{content:"";position:absolute;left:15px;top:6px;bottom:6px;width:2px;background:var(--line)}
.fl-timeline li{display:flex;gap:12px;align-items:flex-start;padding:7px 0;position:relative}.fl-tl-ic{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--panel2);border:1px solid var(--line);color:var(--mute);position:relative;z-index:1}
.fl-timeline .k-service .fl-tl-ic{color:var(--ok);border-color:var(--ok)}.fl-timeline .k-status .fl-tl-ic{color:var(--gold);border-color:var(--gold)}.fl-timeline .k-created .fl-tl-ic{color:var(--blue);border-color:var(--blue)}
@media(max-width:1100px){.fl-overview{grid-template-columns:1fr 1fr}.fl-overview>:last-child{grid-column:1/-1}}
@media(max-width:700px){.fl-overview{grid-template-columns:1fr}.fl-tools select{flex:1 1 45%}.fl-tools2 .muted{margin-left:0}.fl-plate.big{font-size:18px}}

/* ---------- access control ---------- */
.access-note{display:flex;margin:0 0 14px;border-radius:10px;border:1px solid var(--line);border-left:4px solid var(--mute);background:var(--panel);font-size:13.5px}.access-note svg{flex:none;margin-top:1px;color:var(--mute)}
.access-note.personnel{border-left-color:var(--gold)}.access-note.personnel svg{color:var(--gold)}.access-note.supervisor{border-left-color:var(--blue)}.access-note.supervisor svg{color:var(--blue)}.access-note span{color:var(--mute)}
.ac-tier{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:12px}.ac-tier b{display:block;margin-bottom:4px}.ac-tier p{margin:0 0 8px;font-size:13px;color:var(--mute);line-height:1.5}
.ac-chips{display:flex;flex-wrap:wrap;gap:4px}.ac-chip{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--raise);border:1px solid var(--line);white-space:nowrap}

/* ---------- organization chart ---------- */
.oc-card{padding:12px}.oc-tools{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:10px}.oc-zl{min-width:44px;text-align:center;font-size:13px;color:var(--mute)}
.oc-wrap{overflow:auto;max-height:76vh;border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:20px 12px}
.oc-wrap.dragging{user-select:none}.oc-stage{display:inline-block;min-width:100%}
.oc-tree,.oc-tree ul{display:flex;justify-content:center;margin:0;padding:22px 0 0;position:relative;list-style:none}.oc-tree{padding-top:0}
.oc-tree li{position:relative;padding:22px 6px 0;display:flex;flex-direction:column;align-items:center}
.oc-tree li::before,.oc-tree li::after{content:"";position:absolute;top:0;right:50%;width:50%;height:22px;border-top:2px solid var(--line)}
.oc-tree li::after{right:auto;left:50%;border-left:2px solid var(--line)}
.oc-tree li:only-child::before,.oc-tree li:only-child::after{display:none}.oc-tree li:only-child{padding-top:0}
.oc-tree li:first-child::before,.oc-tree li:last-child::after{border:0 none}
.oc-tree li:last-child::before{border-right:2px solid var(--line);border-radius:0 8px 0 0}.oc-tree li:first-child::after{border-radius:8px 0 0 0}
.oc-tree ul::before{content:"";position:absolute;top:0;left:50%;height:22px;border-left:2px solid var(--line)}.oc-tree>li>ul:first-child::before{display:none}
.oc-box{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:190px;text-align:left;box-shadow:0 2px 8px rgba(0,0,0,.08);display:flex;flex-direction:column;gap:6px}
.oc-box.top{border-top:4px solid var(--gold);min-width:220px}.oc-box.top2{border-top:4px solid var(--gold)}.oc-k{color:var(--gold);font:700 10.5px var(--font);letter-spacing:.12em;text-transform:uppercase}
.oc-box.op{border-color:transparent}
.oc-box.div{cursor:pointer;border-top:4px solid var(--gold);transition:box-shadow .15s,transform .15s}.oc-box.div:hover,.oc-box.div:focus-visible{box-shadow:var(--shadow);transform:translateY(-1px);outline:none}.oc-box.div.closed{opacity:.92}
.oc-top{display:flex;justify-content:space-between;align-items:center}.oc-code{font:800 11px var(--font);letter-spacing:.06em;background:var(--raise);border-radius:4px;padding:2px 6px}.oc-count{display:inline-flex;align-items:center;gap:3px;font-size:12px;color:var(--mute)}
.oc-name{font-size:14px;line-height:1.3}.oc-fold{font-size:12px;color:var(--gold);font-weight:600}
.oc-add{position:absolute;right:-9px;bottom:-9px;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--gold);display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .15s}.oc-box.div:hover .oc-add,.oc-add:focus-visible{opacity:1}
.oc-person{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);min-width:0}.oc-person .avatar,.oc-av{flex:none;width:26px;height:26px;border-radius:50%;font-size:11px;display:grid;place-items:center;background:var(--raise)}
.oc-person b{display:block;font-size:12.5px}.oc-person small{display:block;font-size:11px;color:var(--mute)}.oc-person.vacant b{color:var(--mute);font-weight:500}.oc-person:hover b{color:var(--gold)}
.oc-units{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding-left:12px;border-left:2px solid var(--line);align-self:stretch;margin-left:18px}.oc-units.solo{margin-left:0}
.oc-unit{text-align:left;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:6px 9px;cursor:pointer;color:var(--ink);font:inherit;position:relative}
.oc-unit::before{content:"";position:absolute;left:-14px;top:50%;width:12px;border-top:2px solid var(--line)}.oc-unit:hover{border-color:var(--gold)}.oc-unit.inactive{opacity:.65}
.oc-unit-n{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:12.5px;font-weight:600}.oc-unit small{display:block;font-size:11px;color:var(--mute);margin-top:2px}
.oc-tag{font:700 9.5px var(--font);letter-spacing:.06em;text-transform:uppercase;padding:1px 5px;border-radius:4px;background:color-mix(in srgb,var(--blue) 18%,transparent);color:var(--blue)}.oc-tag.bad{background:color-mix(in srgb,var(--bad) 18%,transparent);color:var(--bad)}
.oc-posts{display:grid;gap:8px}.oc-post{border:1px solid var(--line);border-radius:8px;padding:8px 10px}.oc-post-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.oc-holders{display:flex;flex-wrap:wrap;gap:10px}
@media print{.side,.topbar,.oc-tools,.tabs,.bar,.head .acts{display:none!important}.oc-wrap{max-height:none;overflow:visible;border:0;background:none}.oc-card{border:0;box-shadow:none}}

/* ---------- MapView: the interactive county map (STARS and the LSSD Website) ---------- */
.mv{position:relative;overflow:hidden;border-radius:12px;background:#0f1b24;border:1px solid var(--line);touch-action:none;user-select:none;outline:none;cursor:grab}
.mv:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 50%,transparent)}.mv.dragging{cursor:grabbing}.mv.picking,.mv.measuring{cursor:crosshair}
.mv-world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}.mv-img{display:block;width:100%;height:100%;pointer-events:none;image-rendering:auto}
.mv-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.mv-marks{position:absolute;inset:0;pointer-events:none}.mv-marks>*{pointer-events:auto}
.mv-mark{position:absolute;transform:translate(-50%,-100%);background:none;border:0;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;z-index:2}
.mv-pin{width:26px;height:26px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--c);border:2px solid #fff;box-shadow:0 3px 8px rgba(0,0,0,.45);display:grid;place-items:center;color:#fff;transition:transform .15s}
.mv-pin svg{transform:rotate(45deg)}.mv-mark.big .mv-pin{width:32px;height:32px}.mv-mark:hover .mv-pin,.mv-mark:focus-visible .mv-pin{transform:rotate(-45deg) scale(1.15)}
.mv-mark.dot{transform:translate(-50%,-50%)}.mv-mark.dot .mv-pin{width:14px;height:14px;border-radius:50%;transform:none}.mv-mark.dot:hover .mv-pin{transform:scale(1.3)}
.mv-label{order:-1;margin-bottom:3px;background:rgba(10,18,14,.82);color:#fff;font:600 10.5px var(--font);padding:1px 6px;border-radius:4px;width:max-content;max-width:160px;white-space:normal;text-align:center;line-height:1.3}
.mv.mv-dense .mv-label{display:none}.mv.mv-dense .mv-mark:hover .mv-label{display:block}
.mv-vertex{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#fff;border:2px solid #d6b25e;pointer-events:none}
.mv-ui{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:8px;z-index:4}.mv-group{display:flex;flex-direction:column;background:rgba(14,24,19,.86);border:1px solid rgba(255,255,255,.14);border-radius:10px;overflow:hidden;backdrop-filter:blur(6px)}
.mv-btn{width:38px;height:38px;display:grid;place-items:center;background:none;border:0;color:#e9efe9;cursor:pointer}.mv-btn+.mv-btn{border-top:1px solid rgba(255,255,255,.1)}.mv-btn:hover{background:rgba(214,178,94,.25);color:#f0d48e}.mv-btn.on{background:#d6b25e;color:#14211a}
.mv-layers{position:absolute;left:10px;top:10px;z-index:4;display:flex;gap:2px;background:rgba(14,24,19,.86);border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:3px;backdrop-filter:blur(6px)}
.mv-layers button{background:none;border:0;color:#cfd9d1;font:600 12.5px var(--font);padding:6px 11px;border-radius:7px;cursor:pointer}.mv-layers button.on{background:#d6b25e;color:#14211a}
.mv-status{position:absolute;left:10px;bottom:10px;right:60px;z-index:3;display:flex;gap:8px;flex-wrap:wrap;align-items:center;pointer-events:none}
.mv-status>span{background:rgba(14,24,19,.84);color:#e9efe9;font:600 12px var(--font);padding:4px 9px;border-radius:6px;backdrop-filter:blur(6px)}.mv-status>span:empty{display:none}
.mv-scale{position:relative;padding-top:10px!important}.mv-scale::before{content:"";position:absolute;left:9px;top:5px;width:var(--w);height:5px;border:2px solid #f0d48e;border-top:0}
.mv-measure{color:#f0d48e!important}
.mv-loading{position:absolute;inset:0;display:grid;place-items:center;color:#cfd9d1;font-size:14px;background:#0f1b24;z-index:5}.mv-loading[hidden]{display:none}
.mv-pop{position:absolute;transform:translate(-50%,calc(-100% - 44px));z-index:6;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 34px rgba(0,0,0,.4);padding:12px 14px;min-width:200px;max-width:280px;animation:mvpop .18s ease}
.mv-pop::after{content:"";position:absolute;left:50%;bottom:-7px;width:12px;height:12px;background:var(--panel);border-right:1px solid var(--line);border-bottom:1px solid var(--line);transform:translateX(-50%) rotate(45deg)}
.mv-pop-x{position:absolute;right:6px;top:6px;background:none;border:0;color:var(--mute);cursor:pointer;padding:3px}@keyframes mvpop{from{opacity:0;margin-top:6px}}
.mv:fullscreen{border-radius:0;height:100vh!important}
.mapx-card{display:grid;gap:4px;padding-right:14px}.mapx-card>b{font-size:14.5px}.mapx-card small{color:var(--mute)}.mapx-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.mapx-img{width:100%;border-radius:8px;margin-top:4px}
/* the full map in STARS */
.mapx{display:grid;gap:14px;align-items:start}
.mapx-side{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;position:sticky;top:76px;max-height:calc(100vh - 100px);overflow:auto}
.mapx-head p{margin:4px 0 12px}
.mapx-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:0 10px;background:var(--bg);color:var(--mute)}.mapx-search input{border:0;background:none;outline:none!important;padding:0;min-height:38px}
.mapx-results{display:grid;gap:2px;margin-top:6px}.mapx-hit{display:flex;align-items:center;gap:8px;text-align:left;background:none;border:0;color:var(--ink);padding:7px 8px;border-radius:8px;cursor:pointer;font:inherit;font-size:13.5px}.mapx-hit:hover{background:var(--raise)}
.mapx-dot{width:10px;height:10px;border-radius:50%;flex:none}.mapx-sec{border-top:1px solid var(--line)}.mapx-sec h4{margin:0 0 8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.mapx-layers{display:grid;gap:2px}.mapx-layer{display:flex;align-items:center;gap:9px;border-radius:8px;cursor:pointer}.mapx-layer:hover{background:var(--raise)}.mapx-layer input{width:auto;min-height:0;accent-color:var(--gold)}
.mapx-goto{display:grid;grid-template-columns:1fr 1fr auto;gap:6px}.mapx-main{position:relative}
.mapx-hint{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:7;display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--gold);border-radius:999px;padding:6px 8px 6px 14px;box-shadow:var(--shadow);font-size:13.5px}.mapx-hint[hidden]{display:none}
@media(max-width:900px){.mapx{grid-template-columns:1fr}.mapx-side{position:static;max-height:none}}
.cm-map{max-width:none;border:0;background:none;overflow:visible}.cm{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
@media(max-width:900px){.cm{grid-template-columns:1fr}}

/* ---------- Administration ---------- */
.adm{display:grid;gap:18px;align-items:start}
.adm-nav{position:sticky;top:76px;display:grid;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px}
.adm-nav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:var(--ink);text-decoration:none;font-weight:500;font-size:14.5px}.adm-nav a:hover{background:var(--raise)}
.adm-nav a.on{background:color-mix(in srgb,var(--gold) 16%,var(--panel));color:var(--ink);font-weight:700;box-shadow:inset 3px 0 0 var(--gold)}.adm-nav svg{color:var(--gold)}
.adm-title{margin:2px 0 14px;font-size:22px}.adm-card{margin-bottom:14px}.adm-card>h3{margin:0 0 4px}.adm-card>.small.muted{margin:0 0 12px}
.adm-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:14px}
.adm-tile{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.adm-tile:hover{border-color:var(--gold);transform:translateY(-1px)}.adm-tile b{font:700 26px/1.1 var(--font)}.adm-tile span:last-child{grid-column:1/-1;color:var(--mute);font-size:13px;margin-top:2px}.adm-tile:not(:has(.adm-tile-ic)) b{grid-column:1/-1}
.adm-tile-ic{grid-row:span 1;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--raise);color:var(--gold)}.adm-tile.warn{border-color:color-mix(in srgb,var(--warn) 60%,var(--line))}.adm-tile.warn b{color:var(--warn)}
.adm-preview{border:1px solid var(--line);border-radius:10px;overflow:hidden}.adm-pv-util{background:#14231b;color:#c8b48a;font-size:12.5px;padding:7px 12px}.adm-pv-util b{color:#fff}
.adm-pv-motd{background:#e9e1cb;color:#3a3220;font:italic 13px var(--font);text-align:center;padding:6px}.adm-pv-head{display:flex;align-items:center;gap:10px;padding:12px;background:#fff;color:#1d4a33}.adm-pv-head img{width:40px}.adm-pv-head small{display:block;color:#6b7a6e;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.adm-pv-head b{font:700 16px var(--font)}.adm-day{padding:8px 14px;font:700 11.5px var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);background:var(--panel2);border-bottom:1px solid var(--line)}
@media(max-width:900px){.adm{grid-template-columns:1fr}.adm-nav{position:static;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}
/* ---------- Personnel Administration and Recruitment ---------- */
.pa-list{display:grid;gap:4px}.pa-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}.pa-row:last-child{border:0}
.pa-bars{display:grid;gap:7px}.pa-bar{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,2fr) 34px;gap:10px;align-items:center;font-size:13.5px}.pa-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pa-bar i{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--gold),var(--gold2))}.pa-bar b{text-align:right}
.rec-state{display:flex;align-items:center;gap:14px;border-left:4px solid var(--bad)}.rec-state.is-open{border-left-color:var(--ok)}.rec-state .pulse{width:12px;height:12px;border-radius:50%;background:var(--bad);flex:none}.rec-state.is-open .pulse{background:var(--ok);box-shadow:0 0 0 5px color-mix(in srgb,var(--ok) 20%,transparent)}
.mv .mv-mark{width:auto;height:auto;min-width:0;min-height:0;line-height:1;margin:0;box-shadow:none}.mv .mv-pin{flex:none;box-sizing:border-box}.mv .mv-btn{min-height:0;padding:0}

/* ---------- personnel file ---------- */
.pr-kicker{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:2px}
.pr-head h1{margin:0 0 4px}
.pr-onleave{display:inline-flex;align-items:center;gap:6px;color:var(--warn);font-size:13.5px;font-weight:600;margin:2px 0 6px}

.pr-tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);text-align:left;cursor:pointer;display:flex;color:var(--ink)}
.pr-tile:hover{border-color:var(--gold)}.pr-tile b{font-size:20px;line-height:1.2}.pr-tile span{font-size:12.5px;color:var(--mute)}
.pr-tile.warn{border-color:color-mix(in srgb,var(--warn) 60%,var(--line))}.pr-tile.warn b{color:var(--warn)}
.pr-body{min-height:120px}
.pr-ready{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;border-bottom:1px solid var(--line);padding:9px 2px;text-align:left;cursor:pointer;color:var(--ink);font-size:14px}
.pr-ready:last-child{border-bottom:0}.pr-ready:hover{color:var(--gold)}
.pr-ready i{width:9px;height:9px;border-radius:50%;background:var(--mute);flex:none}
.pr-ready.bad i{background:var(--bad)}.pr-ready.warn i{background:var(--warn)}.pr-ready.blue i{background:var(--blue)}.pr-ready.ok i{background:var(--ok)}
.pr-time{list-style:none;margin:0;padding:0 0 0 18px}
.pr-time li{position:relative}.pr-time li:last-child{padding-bottom:0}
.pr-time li::before{content:"";position:absolute;left:-25px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--panel);border:2px solid var(--mute)}
.pr-time li.gold::before{border-color:var(--gold)}.pr-time li.blue::before{border-color:var(--blue)}.pr-time li.ok::before{border-color:var(--ok)}
.pr-time time{display:block;font-size:12px;color:var(--mute)}
.pr-cert{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.pr-cert:last-child{border-bottom:0}
.pr-cert.faded{opacity:.6}
.pr-past{margin-top:10px}.pr-past summary{cursor:pointer;color:var(--mute);font-size:13.5px}
.pr-logform{display:grid;gap:8px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px;margin:8px 0 14px}
.pr-logform select{width:auto}
.pr-log{display:grid;gap:10px}
.pr-entry{border:1px solid var(--line);border-left:3px solid var(--mute);border-radius:8px;padding:9px 12px;background:var(--panel2)}
.pr-entry.commendation{border-left-color:var(--ok)}.pr-entry.counselling{border-left-color:var(--warn)}.pr-entry.goal{border-left-color:var(--blue)}
.pr-entry-head{display:flex;gap:8px;align-items:center;margin-bottom:4px;flex-wrap:wrap}
.warn-text{color:var(--warn)}
@media(max-width:640px){.pr-tiles{grid-template-columns:repeat(2,1fr)}.pr-cert{flex-wrap:wrap}}

.menu-foot{display:flex;justify-content:space-between;align-items:center;gap:8px}.menu-foot:has(> :only-child){justify-content:center}

/* ---------- page search (top bar) ---------- */
.topbar .search{position:relative}
.ps-pop{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px rgba(0,0,0,.35);padding:6px;max-height:70vh;overflow:auto}
.ps-head{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);padding:6px 10px 4px}
.ps-sep{border-top:1px solid var(--line);margin:4px 0}
.ps-item{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;border-radius:8px;padding:8px 10px;text-align:left;cursor:pointer;color:var(--ink);font-size:14px}
.ps-item span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-item small{color:var(--mute);font-size:11.5px}
.ps-item.on,.ps-item:hover{background:var(--raise)}.ps-item.on .ico{color:var(--gold)}

.mv-tiles{position:absolute;inset:0;pointer-events:none}.mv-tile{position:absolute;display:block;max-width:none;opacity:0;transition:opacity .2s;pointer-events:none}.mv-tile.in{opacity:1}

/* ---------- Administration > Stations ---------- */

.danger-text{color:var(--bad)!important}

.ban-box{margin:10px 0}

/* ---------- Rosters ---------- */
.ro-div{padding:0;overflow:hidden}.ro-div>summary{display:flex;align-items:center;padding:14px 18px;cursor:pointer;list-style:none;border-bottom:1px solid var(--line)}
.ro-div>summary::-webkit-details-marker{display:none}.ro-div:not([open])>summary{border-bottom:0}
.ro-div-name{font-weight:700;font-size:16px}

@media print{.ro-div{break-inside:avoid}}

/* ---------- STARS Creator ---------- */
.arch-list{display:grid;gap:8px}.arch-person{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;color:var(--ink);text-decoration:none}.arch-person>div{flex:1}.arch-person:hover{border-color:var(--gold)}

/* ---------- vacancies: where you stand ---------- */
.ws{border:1px solid var(--line);border-left:4px solid var(--mute);border-radius:10px;padding:10px 12px;background:var(--panel2);display:grid;gap:8px;margin:8px 0}
.ws.ok{border-left-color:var(--ok)}.ws.warn{border-left-color:var(--warn)}.ws.bad{border-left-color:var(--bad)}
.ws-head{display:flex;flex-direction:column;gap:2px}.ws.ok .ws-head b{color:var(--ok)}.ws.warn .ws-head b{color:var(--warn)}.ws.bad .ws-head b{color:var(--bad)}
.ws-row{display:flex;gap:10px;align-items:flex-start}.ws-ic{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--raise);margin-top:1px}
.ws-row.ok .ws-ic{color:var(--ok)}.ws-row.no .ws-ic{color:var(--warn)}.ws-label{font-size:14px}
.ws-bar{height:5px;border-radius:4px;background:var(--line);overflow:hidden;margin:5px 0 2px;max-width:320px}.ws-bar i{display:block;height:100%;background:var(--warn)}.ws-row.ok .ws-bar i{background:var(--ok)}
.ws.compact{padding:8px 10px;gap:6px}.ws.compact .ws-label{font-size:13px}

/* ---------- training record ---------- */
.tr-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px;align-items:end}
.tr-stat{display:flex;flex-direction:column;gap:2px}.tr-stat b{font-size:20px}.tr-stat span{font-size:12.5px;color:var(--mute)}.tr-stat.bad b{color:var(--bad)}
.tr-track{grid-column:1/-1;position:relative}.tr-track .progress{margin:0}
.tr-mark{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--gold);transform:translateX(-1px);border-radius:2px}
.tr-finish{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--ok);border-radius:9px;background:color-mix(in srgb,var(--ok) 8%,transparent)}
.crit2{padding:12px 0;border-bottom:1px solid var(--line)}.crit2:last-child{border-bottom:0}
.crit2-row{display:flex;gap:12px;align-items:center}
.crit2 .tick{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--raise);font-size:13px;font-weight:700;color:var(--mute)}
.crit2.done .tick{background:color-mix(in srgb,var(--ok) 22%,transparent);color:var(--ok)}.crit2.improve .tick{background:color-mix(in srgb,var(--warn) 22%,transparent);color:var(--warn)}
.crit2-notes{margin:8px 0 0 40px;display:grid;gap:6px}
.crit2-note{border-left:3px solid var(--line);padding:4px 10px;background:var(--panel2);border-radius:0 8px 8px 0;font-size:13.5px}.crit2-note.improve{border-left-color:var(--warn)}
@media(max-width:700px){.tr-summary{grid-template-columns:1fr 1fr}.crit2-row{flex-wrap:wrap}.crit2-notes{margin-left:0}}

/* ---------- page and tab transitions ---------- */
@keyframes page-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes tab-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.page-in{animation:page-in .24s cubic-bezier(.2,.7,.2,1) backwards}
.tab-in{animation:tab-in .2s ease-out backwards}
#main{position:relative}
#main.loading::before{content:"";position:fixed;left:0;top:0;height:2px;width:100%;z-index:90;background:linear-gradient(90deg,transparent,var(--gold),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:load-bar 1s ease-in-out infinite}
@keyframes load-bar{from{background-position:-40% 0}to{background-position:140% 0}}
#main.loading>*{transition:opacity .15s;opacity:.55}
.tabs button{transition:color .15s,border-color .2s}
.side a.nav{transition:background .15s,color .15s}
@media(prefers-reduced-motion:reduce){.page-in,.tab-in{animation:none}#main.loading::before{animation:none}}

/* ---------- account menu ---------- */
.me-head{display:flex;gap:12px;align-items:flex-start}.me-head .arch-badge{margin-top:4px}
.menu-sep{border-top:1px solid var(--line);margin:6px 0}
.menu-theme{display:flex;align-items:center;gap:10px;padding:7px 14px;font-size:14px}.menu-theme>span{flex:1}
.seg.mini{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg.mini button{background:none;border:0;padding:3px 10px;font-size:12.5px;cursor:pointer;color:var(--mute)}.seg.mini button.on{font-weight:600}

/* Inter's even-width digits and slashed zero for serials,plates and reference numbers. */
body{font-feature-settings:"cv11","ss01"}
.mono,code,kbd,.plate,.tbl td{font-variant-numeric:tabular-nums}
.mono,code,kbd,.plate{font-feature-settings:"zero","tnum"}
h1,h2,h3{letter-spacing:-.01em}

.menu-head.me-head{justify-content:flex-start;text-align:left}.me-head>div{min-width:0}.seg.mini button.on{background:var(--gold);color:var(--panel)}

/* records database */
.rec-group>summary{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer}.rec-group:not([open])>summary{border:0}.rec-dates{display:inline-flex;align-items:center;gap:6px}.rec-dates input{width:auto}

/* ---------- forensic lab report ---------- */
.lab-track{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;position:relative}
.lab-track li{display:flex;gap:10px;align-items:center;color:var(--mute)}.lab-track li b{display:block;font-size:14px}.lab-track li small{font-size:12px}
.lab-dot{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--line);font-size:12px;font-weight:700}
.lab-track li.done{color:var(--ink)}.lab-track li.done .lab-dot{background:var(--ok);border-color:var(--ok);color:#fff}
.lab-track li.cur{color:var(--ink)}.lab-track li.cur .lab-dot{border-color:var(--gold);color:var(--gold)}
.labdoc{position:relative;overflow:hidden}
.lab-outcome{display:flex;gap:18px;align-items:center;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:10px;padding:12px 16px;margin:12px 0;background:var(--panel2)}
.lab-outcome small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}.lab-outcome b{font-size:22px}.lab-outcome p{margin:0}
.lab-outcome.ok{border-left-color:var(--ok)}.lab-outcome.ok b{color:var(--ok)}.lab-outcome.warn{border-left-color:var(--warn)}.lab-outcome.warn b{color:var(--warn)}.lab-outcome.muted{border-left-color:var(--mute)}
.lab-sign{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:22px 0 8px}.lab-sign .sig{border-bottom:1px solid var(--ink);padding-bottom:4px;font-weight:600}.lab-sign small{color:var(--mute);font-size:12px}
@media(max-width:640px){.lab-track{grid-template-columns:1fr}.lab-sign{grid-template-columns:1fr}}

/* ---------- forms: widths and conditional questions ---------- */
form.fgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:14px}
form.fgrid>*{grid-column:1/-1}form.fgrid>.w-half{grid-column:span 3}form.fgrid>.w-third{grid-column:span 2}
form [hidden]{display:none!important}
.cond-in{animation:tab-in .2s ease-out both}
.brow-opts{gap:12px;margin:6px 0 0;flex-wrap:wrap}.brow-opts select,.brow-opts input{width:auto;min-height:30px;padding:4px 8px;font-size:13px}
@media(max-width:640px){form.fgrid>.w-half,form.fgrid>.w-third{grid-column:1/-1}}

/* ---------- penal code ---------- */


.pc-ver{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 2px;border:0;background:none;color:var(--ink);font:inherit;font-size:13.5px;cursor:pointer;text-align:left}.pc-ver svg{color:var(--gold);flex:none}.pc-ver b{font-weight:600}.pc-ver:hover{color:var(--gold)}
.pc-diff{display:grid;gap:4px;margin:6px 0}.pc-d{font-size:13.5px}.pc-d.add b{color:var(--ok)}.pc-d.del b{color:var(--bad)}.pc-d.chg b{color:var(--warn)}

/* ---------- casefile (Detective Division) ---------- */
.cf-head{position:relative;overflow:hidden;background:linear-gradient(160deg,color-mix(in srgb,var(--gold) 9%,var(--panel)),var(--panel) 55%)}
.cf-kicker{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700}
.cf-head h1{margin:6px 0 0;font-size:26px;line-height:1.2}
.cf-head .btn .count{margin-left:6px}
.cf-id{margin-top:16px;border-top:1px solid var(--line);padding-top:14px;text-align:center}
.cf-id-k{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700}
.cf-id-n{font-size:26px;font-weight:800;letter-spacing:.14em;margin:4px 0 8px}
.cf-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:14px;text-align:center}
.cf-facts small{display:block;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}.cf-facts b{font-size:14px}
.caret{font-size:11px;opacity:.7}
.cf-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.cf-person{margin:0}
.cf-narr{min-height:420px;font-size:15px;line-height:1.6}.cb-live{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 25%,transparent)}
.cb-view{position:absolute;inset:0;overflow:hidden;cursor:grab;outline:none;background-color:#0b1510}
.cb-view.panning{cursor:grabbing}.cb-view.connecting .cb-card{cursor:crosshair}
.cb-canvas{position:absolute;left:0;top:0;width:3200px;height:2000px;transform-origin:0 0}.cb-canvas.cb-anim{transition:transform .3s ease}
.cb-lines{position:absolute;inset:0;pointer-events:none;overflow:visible}.cb-string{fill:none;stroke-width:2.4;opacity:.85;filter:drop-shadow(0 1px 1px rgba(0,0,0,.6))}
.cb-label{position:absolute;transform:translate(-50%,-50%);z-index:4;border:1px solid rgba(214,178,94,.5);background:#14231b;color:#ecebe3;font-size:11px;padding:2px 8px;border-radius:999px;cursor:pointer;white-space:nowrap;max-width:170px;overflow:hidden;text-overflow:ellipsis}
.cb-card{position:absolute;width:200px;z-index:3;background:#16261d;color:#ecebe3;border:1px solid #2b4335;border-top:3px solid var(--c);border-radius:8px;padding:8px 10px 10px;box-shadow:0 8px 20px rgba(0,0,0,.45);cursor:grab;user-select:none;touch-action:none;transition:box-shadow .15s,opacity .2s,outline-color .2s;outline:2px solid transparent}
.cb-card:hover{box-shadow:0 10px 26px rgba(0,0,0,.6);z-index:5}.cb-card.dragging{cursor:grabbing;z-index:6;box-shadow:0 18px 40px rgba(0,0,0,.7)}
.cb-card.sel,.cb-card.focus{outline-color:var(--gold)}.cb-card.dim{opacity:.18}
.cb-card b{display:block;font-size:13.5px;line-height:1.3}.cb-card p{margin:5px 0 0;font-size:11.5px;line-height:1.4;color:#b8c2b9;white-space:pre-line}
.cb-card img{display:block;width:100%;height:96px;object-fit:cover;border-radius:5px;margin-bottom:6px}
.cb-card.sticky{background:#f2d16b;color:#2a2108;border:0;border-radius:2px;transform:rotate(-1.5deg);box-shadow:0 10px 18px rgba(0,0,0,.5)}.cb-card.sticky p{color:#3c3010}
.cb-corner{position:absolute;bottom:10px;z-index:8;display:flex;align-items:flex-end;gap:8px}
.cb-mini{display:block;background:rgba(17,28,22,.92);border:1px solid #2b4335;border-radius:8px;cursor:pointer}
.cb-hint{position:absolute;left:50%;top:10px;transform:translateX(-50%);z-index:8;background:rgba(17,28,22,.92);color:#ecebe3;border-radius:999px;padding:4px 12px}.cb-hint:empty{display:none}
.cb-empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:10px;color:#cfd8cf;z-index:2;pointer-events:none}.cb-empty .btn{pointer-events:auto;justify-self:center}
.cb-present-hint{display:none}
.cb-dayh{margin:18px 0 8px;color:var(--gold);font-size:14px;letter-spacing:.06em}
:root[data-theme=light] .cb-view{background-color:#0f1d16}
@media(max-width:700px){.cb-mini{display:none}}

/* ---------- personnel file header (as on the LSPD personnel file) ---------- */
.pr-head2{display:flex;gap:22px;align-items:flex-start}
.pr-photo{flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;width:150px}
.pr-photo img,.pr-photo .avatar{width:150px!important;height:170px!important;border-radius:12px;object-fit:cover;font-size:42px}
.pr-photo-acts{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}.pr-photo-acts small{font-size:10.5px;color:var(--mute);line-height:1.3}.pr-photo-acts .linkbtn{font-size:13px;text-decoration:none}
.pr-head2 h1{margin:2px 0 6px;font-size:26px}
.pr-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pr-rank{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:6px;border:1px solid color-mix(in srgb,var(--bad) 55%,var(--line));color:var(--bad);font-size:12px;font-weight:700}
.pr-facts{display:grid;gap:12px 18px;margin:16px 0 4px}
.pr-facts dt{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--mute);font-weight:700}.pr-facts dd{margin:3px 0 0;font-size:14.5px}.pr-facts dd small{display:block;color:var(--mute);font-size:12px}
.pr-tile b{font-variant-numeric:tabular-nums}
@media(max-width:760px){.pr-head2{flex-direction:column;align-items:stretch}.pr-photo{width:auto;flex-direction:row;align-items:flex-start}.pr-photo img,.pr-photo .avatar{width:96px!important;height:110px!important}.pr-photo-acts{align-items:flex-start;text-align:left}.pr-head2 .badgecard{display:none}}

/* ---------- awards and commendations ---------- */
.aw-list{display:grid;gap:6px}

.aw-top{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.aw-top:last-child{border-bottom:0}
.aw-rank-n{width:22px;text-align:center;font-weight:800;color:var(--gold)}
.rack.sm{display:flex;flex-wrap:wrap;gap:2px;max-width:120px;justify-content:flex-end}.rack.sm .ribbon{transform:scale(.8);transform-origin:right center}

.aw-prec{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-start}.aw-prec>div{display:flex;flex-direction:column;align-items:center;gap:4px;width:110px;text-align:center}.aw-prec small{font-size:11px;color:var(--mute);line-height:1.25}

/* ---------- announcements as articles ---------- */
.art-must{display:flex;gap:10px;align-items:center}
.art-feature{display:block;position:relative;border:1px solid var(--line);border-radius:16px;padding:28px 30px;margin-bottom:16px;color:#ecebe3;text-decoration:none;background:linear-gradient(135deg,#123022,#0b1a13 60%);background-size:cover;background-position:center;overflow:hidden}
.art-feature:hover{border-color:var(--gold)}.art-feature h2{margin:10px 0 6px;font-size:28px;line-height:1.15;max-width:720px}.art-feature p{max-width:640px;color:#cfd8cf;margin:0 0 12px}.art-feature .art-meta{color:#b8c2b9}
.art-kick{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:800;display:flex;align-items:center;gap:5px}
.art-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.art-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel);color:var(--ink);text-decoration:none;transition:transform .15s,border-color .15s,box-shadow .15s}
.art-card:hover{transform:translateY(-2px);border-color:var(--gold);box-shadow:0 10px 24px rgba(0,0,0,.25)}
.art-cover{height:120px;background-size:cover;background-position:center}.art-cover.none{display:grid;place-items:center;color:rgba(255,255,255,.7);background:linear-gradient(135deg,#1d4a33,#0f261b)}
.art-cover.cat-operations,.art-cover.cat-events{background:linear-gradient(135deg,#1f3b5c,#10202f)}.art-cover.cat-personnel{background:linear-gradient(135deg,#5c4a1f,#2b220c)}.art-cover.cat-policy{background:linear-gradient(135deg,#5c3a1f,#2b1a0c)}.art-cover.cat-safety{background:linear-gradient(135deg,#5c1f1f,#2b0c0c)}
.art-in{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}.art-in h3{margin:2px 0 0;font-size:17px;line-height:1.3}.art-in p{margin:0;color:var(--mute);font-size:13.5px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.art-card.unread h3::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gold);margin-right:7px;vertical-align:middle}
.art-tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.art-new{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--gold);text-transform:uppercase}
.art-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--mute);margin-top:auto}
.art-reads{position:relative;height:5px;border-radius:4px;background:var(--line);overflow:hidden;margin-top:4px}.art-reads i{position:absolute;left:0;top:0;bottom:0;background:var(--ok)}.art-in .art-reads{display:block}.art-in .art-reads span{display:block;margin-top:8px}
.art-in .small.art-reads{height:auto;background:none;overflow:visible}.art-in .small.art-reads i{height:5px;border-radius:4px;background:var(--ok);display:block;position:static}
.art-page{max-width:860px;margin:0 auto}
.art-full{padding:0;overflow:hidden}
.art-full h1{font-size:32px;line-height:1.15;margin:12px 0 8px}
.art-byline{display:flex;gap:12px;align-items:center;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.article-body{padding:14px 34px 10px;font-size:16px;line-height:1.7}.article-body h3{font-size:20px;margin:22px 0 6px}.article-body h4{font-size:16.5px;margin:18px 0 4px}.article-body ul,.article-body ol{padding-left:22px}.article-body li{margin:4px 0}
.art-callout{border-left:4px solid var(--gold);background:color-mix(in srgb,var(--gold) 9%,transparent);padding:10px 14px;border-radius:0 10px 10px 0;margin:12px 0}
.art-ackbar{display:flex;gap:12px;align-items:center;margin:10px 34px 18px;padding:12px 16px;border:1px solid var(--warn);border-radius:12px;background:color-mix(in srgb,var(--warn) 9%,transparent)}.art-ackbar.done{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 8%,transparent);color:var(--ok)}
.art-receipts{display:flex;gap:10px;align-items:center;padding:12px 34px 20px}.art-receipts .art-reads{width:160px;margin:0}
.art-thread{margin-top:14px}.art-c{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.art-reply{display:grid;gap:8px;margin-top:12px}.art-reply .btn{justify-self:end}
.art-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 30px}.art-nav a{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--ink);text-decoration:none}.art-nav a:hover{border-color:var(--gold)}.art-nav a.next{text-align:right}.art-nav small{color:var(--mute)}
@media(max-width:640px){.article-body{padding-left:18px;padding-right:18px}.art-ackbar{margin:10px 18px}.art-full h1{font-size:25px}.art-feature{padding:20px}}

.art-feature-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.art-feature-top .art-kick{margin:0}

/* ---------- fit everywhere: nothing may push a page wider than the screen ---------- */
.grow{min-width:0}
.fl-tools select,.bar select{max-width:100%;min-width:0;text-overflow:ellipsis}
.adm>div,.adm-body{min-width:0}
.check .grow,.row-link,.kv dd,.card-head h3{overflow-wrap:anywhere}
@media(max-width:900px){.adm{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){
  .fl-tools>select,.fl-tools>.fl-search,.fl-tools>.btn{flex:1 1 100%}
  .fl-tools2 .muted{margin-left:0}
  .adm-nav{display:flex;overflow-x:auto;gap:4px;scrollbar-width:thin}.adm-nav a{flex:none;white-space:nowrap}
  .page-head{flex-direction:column;align-items:stretch}.page-acts{flex-wrap:wrap}
  .card-head{flex-wrap:wrap;gap:6px}
}

@media(max-width:640px){.fl-tools2>select,.fl-tools2>.rec-dates{flex:1 1 100%}.fl-tools2>.grow{display:none}.rec-dates input{flex:1}}

/* ---------- Internal Affairs ---------- */
.ia-confidential{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--bad);border:1px solid color-mix(in srgb,var(--bad) 45%,transparent);border-radius:6px;padding:3px 9px;margin-bottom:10px}
.ia-head{border-top:3px solid var(--bad)}.ia-head h1{margin:4px 0 8px;font-size:28px;letter-spacing:.06em}
.ia-head-row{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}
.ia-due{min-width:190px;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--panel2)}.ia-due b{display:block;font-size:18px}.ia-due small{color:var(--mute)}
.ia-due.ok b{color:var(--ok)}.ia-due.warn b{color:var(--warn)}.ia-due.bad b{color:var(--bad)}
.ia-due-bar{height:5px;border-radius:4px;background:var(--line);overflow:hidden;margin:6px 0 4px}.ia-due-bar i{display:block;height:100%;background:currentColor}.ia-due.ok .ia-due-bar i{background:var(--ok)}.ia-due.warn .ia-due-bar i{background:var(--warn)}.ia-due.bad .ia-due-bar i{background:var(--bad)}

.ia-alleg,.ia-subject,.ia-iv{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}.ia-alleg:last-child,.ia-subject:last-child,.ia-iv:last-child{border-bottom:0}
@media print{.ia-confidential{color:#000;border-color:#000}}
@media(max-width:640px){.ia-track{grid-template-columns:1fr 1fr}.ia-alleg,.ia-iv{flex-wrap:wrap}.ia-due{width:100%}}

/* casefile: charges,review */
.cf-charges{border:1px solid var(--line);border-radius:10px;padding:6px 12px;margin-bottom:8px}.cf-charges-h{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:4px 0;border-bottom:1px dashed var(--line)}
.cf-review{display:flex;gap:10px;align-items:center}.cf-review.calm2{border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}.cf-review.calm2 .ico{color:var(--ok)}
.card-head.pad{padding:14px 16px 6px}.small.pad,p.pad{padding:0 16px 14px}

/* ---------- calendar ---------- */
.cal-bar .bar{flex-wrap:wrap}.cal-title{margin:0 6px;font-size:20px;min-width:170px;text-align:center}
.cal-legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.cal-key{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:none;color:var(--mute);border-radius:999px;padding:3px 10px;font-size:12.5px;cursor:pointer}.cal-key.on{color:var(--ink);border-color:var(--gold)}.cal-key i{width:9px;height:9px;border-radius:50%}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden}
.cal-dow{padding:8px 10px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);border-bottom:1px solid var(--line);font-weight:700}
.cal-day{min-height:108px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;display:flex;flex-direction:column;gap:3px;min-width:0}.cal-day:nth-child(7n){border-right:0}
.cal-day.other{background:color-mix(in srgb,var(--bg) 55%,transparent)}.cal-day.other .cal-n{opacity:.45}
.cal-n{font-size:12.5px;font-weight:700;color:var(--mute);width:24px;height:24px;display:grid;place-items:center;border-radius:50%}.cal-day.today .cal-n{background:var(--gold);color:#1b1406}
.cal-ev{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--c);background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--ink);border-radius:5px;padding:2px 6px;font-size:11.5px;cursor:pointer}
.cal-ev b{margin-right:4px;font-weight:700}.cal-more{border:0;background:none;color:var(--gold);font-size:11.5px;cursor:pointer;text-align:left;padding:0 4px}
.cal-list{display:grid;gap:4px}.cal-list .cal-ev{font-size:13px;padding:6px 8px;white-space:normal}
.cal-agenda{display:grid;gap:12px}.cal-dayh{font-size:15px;margin:0 0 6px}.cal-dayh.today{color:var(--gold)}
.cal-row{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;border-bottom:1px solid var(--line);padding:9px 2px;text-align:left;color:var(--ink);cursor:pointer}.cal-row:last-child{border-bottom:0}.cal-row:hover{color:var(--gold)}
.cal-row i{width:9px;height:9px;border-radius:50%;flex:none}.cal-t{width:64px;flex:none;font-size:13px;color:var(--mute);font-variant-numeric:tabular-nums}
.pq{margin-bottom:12px}
@media(max-width:700px){.cal-day{min-height:64px;padding:3px}.cal-ev{font-size:10px;padding:1px 3px}.cal-ev b{display:none}.cal-title{min-width:0;font-size:17px}}

.ia-alleg{display:block}.ia-alleg-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.ia-alleg-text{margin:4px 0}.ia-alleg-acts{display:flex;gap:12px;align-items:center;margin-top:6px}
.mono.small.gold,span[title='Manual of Policy and Procedures']{white-space:nowrap}

.cb-corner{left:auto;right:10px;flex-direction:row-reverse}.cb-mini{width:160px;height:100px;opacity:.85}.cb-mini:hover{opacity:1}

.rec-dates[hidden]{display:none!important}.rec-dates input{min-width:0}
[hidden]{display:none!important}

.dash-idle{display:block;margin:8px 0 14px;text-decoration:none}

/* ---------- data classification ---------- */
.cls-pill{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:800;letter-spacing:.1em;padding:2px 7px;border-radius:5px;border:1px solid currentColor;vertical-align:middle;white-space:nowrap}
.cls-pill.cls-public{color:var(--ok)}.cls-pill.cls-internal{color:var(--blue)}.cls-pill.cls-restricted{color:var(--warn)}.cls-pill.cls-confidential{color:var(--bad)}
.cls-banner{display:grid;margin:0 0 12px;font-size:12.5px}
.cls-banner .cls-what{color:var(--ink);font-weight:700}.cls-banner .cls-rule{color:var(--mute)}
.cls-banner.cls-internal{color:var(--blue)}.cls-banner.cls-restricted{color:var(--warn)}.cls-banner.cls-confidential{color:var(--bad)}
.cf-numrow{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
#dlp-mark{display:none}
@media print{
  body[data-cls=restricted] #dlp-mark,body[data-cls=confidential] #dlp-mark{display:block}
  .dlp-top,.dlp-bottom{position:fixed;left:0;right:0;text-align:center;font:800 11pt var(--font);letter-spacing:.2em;color:#b00;z-index:99}.dlp-top{top:0}.dlp-bottom{bottom:0}
  body[data-cls=restricted] .dlp-top,body[data-cls=restricted] .dlp-bottom{color:#a65d00}
  .dlp-diag{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:space-around;align-items:center;transform:rotate(-28deg);opacity:.09;pointer-events:none;z-index:98;font:700 18pt var(--font);color:#000;white-space:nowrap}
  .cls-banner{color:#000!important;border-color:#000!important}
}

.dp-levels{display:grid;gap:10px}.dp-level{display:flex;gap:10px;align-items:baseline}.dp-level .cls-pill{flex:none;min-width:118px;justify-content:center}
.dp-rules{margin:0;padding-left:18px;display:grid;gap:6px;font-size:14px}

/* ---------- vacancies ---------- */
.vac2{display:flex;flex-direction:column;color:var(--ink);text-decoration:none;transition:border-color .15s,transform .15s}.vac2:hover{border-color:var(--gold);transform:translateY(-1px)}
.vac2-top{display:flex;gap:10px;align-items:flex-start}.vac2 h3{margin:2px 0 0;font-size:17px}
.vac2-meta{display:flex;flex-wrap:wrap;align-items:center;font-size:12.5px;color:var(--mute)}.vac2-meta span{display:inline-flex;align-items:center;gap:4px}
.vac-head h1{margin:4px 0 8px;font-size:26px}
.vac-track{margin:6px 0 12px;grid-template-columns:repeat(4,1fr)}.lab-track li.bad .lab-dot{background:var(--bad);border-color:var(--bad)}
.vac-board .lane{min-width:200px}.vac-k{display:flex;gap:6px;align-items:center;margin-top:4px}.lane-empty{text-align:center;padding:10px}
@media(max-width:640px){.vac-track{grid-template-columns:1fr 1fr}}

.lab-stamp2{flex:none;margin-left:auto;display:flex;flex-direction:column;align-items:center;line-height:1.15;padding:6px 14px;border:3px double var(--ok);border-radius:6px;color:var(--ok);transform:rotate(-6deg);opacity:.9;text-transform:uppercase}
.lab-stamp2 b{font-size:22px;letter-spacing:.2em}.lab-stamp2 small{font-size:10px;letter-spacing:.12em;font-weight:700}
.lab-outcome.warn .lab-stamp2{color:var(--warn);border-color:var(--warn)}.lab-outcome.muted .lab-stamp2{color:var(--mute);border-color:var(--mute)}
.lab-outcome{flex-wrap:wrap}.lab-outcome p{flex:1;min-width:200px}
@media(max-width:640px){.lab-stamp2{margin:6px 0 0}}

.lab-track li.done,.lab-track li.done *{text-decoration:none!important;opacity:1}

.aud-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--gold) 55%,var(--line));color:var(--gold);background:none;vertical-align:middle;white-space:nowrap}button.aud-chip{cursor:pointer}
.aud-note{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px;color:var(--gold);margin:0 0 10px}

.fac-group{margin:0 0 20px}

.doc-head .grow{min-width:0}.doc-head h2{overflow-wrap:anywhere}

/* fleet: defects,sign-outs,bulk changes */.fl-overview>:last-child{grid-column:auto!important}
.fl-urgent a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px}.fl-urgent a>small{grid-column:2}.fl-urgent a .grow{min-width:0}
.fl-defect{display:inline-flex;align-items:center;gap:3px;margin-left:auto;padding:2px 7px;border-radius:999px;font-size:12px;font-weight:700;background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}
.fl-defect.bad{background:color-mix(in srgb,var(--bad) 18%,transparent);color:var(--bad)}
.fl-card-b{display:flex;align-items:center;gap:6px}.fl-card-b .grow{flex:1}
.fl-defrow{display:flex;gap:8px;padding:6px 0;border-top:1px solid var(--line)}.fl-defrow .grow{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fl-repl,.fl-out{display:flex;align-items:center;gap:6px;width:100%;margin:8px 0 0;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:inherit;font:inherit;font-size:13px;text-align:left;cursor:pointer}
.fl-repl{color:var(--warn)}.fl-repl:hover,.fl-out:hover{border-color:var(--gold,#c9a227)}
.fl-mine{margin-bottom:14px;border-left:4px solid var(--gold,#c9a227)}
.fl-mine-list{display:grid;gap:8px}.fl-mine-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.fl-mine-row .grow{flex:1;min-width:160px}
.fl-bulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding:8px 10px;border-radius:8px;background:var(--bg2,rgba(0,0,0,.04))}.fl-bulk select{width:auto}
.fl-defs,.fl-trips{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.fl-def{padding:10px 12px;border:1px solid var(--line);border-left-width:4px;border-radius:8px;display:grid;gap:6px}
.fl-def.bad{border-left-color:var(--bad,#b42318)}.fl-def.warn{border-left-color:var(--warn,#c98a00)}.fl-def.closed{opacity:.75}
.fl-def-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.fl-def-h .grow{flex:1}
.fl-def-img img{max-width:220px;max-height:140px;border-radius:6px;display:block;object-fit:cover}
.fl-trips li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.fl-trips li>div{flex:1 1 100%}
.fleet .callout{margin-bottom:12px;padding:12px 14px}.fleet .callout b{display:inline;margin:0}.fleet .callout.bad{border-left-color:var(--bad)}.fleet .callout.bad>svg{color:var(--bad)}.fleet .callout.soon{border-left-color:var(--warn,#c98a00)}.fleet .callout.soon>svg{color:var(--warn,#c98a00)}

/* access control */
.ac-intro{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.ac-intro .grow{flex:1 1 320px}.ac-intro p{margin:6px 0 0}
.ac-stats{display:flex;gap:10px}.ac-stats>div{display:grid;place-items:center;min-width:86px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.ac-stats b{font-size:22px}.ac-stats small{color:var(--mute);font-size:12px}
.ac-check-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.ac-check-h h3{margin:0;flex:1}.ac-check-h select{width:auto;min-width:240px;max-width:100%}
.ac-result.busy{opacity:.5}.ac-who{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:12px}.ac-who .grow{flex:1;min-width:180px}.ac-flags{display:flex;gap:6px;flex-wrap:wrap}
.ac-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px}.ac-cols h4{margin:14px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--mute)}.ac-cols h4:first-child{margin-top:0}
.ac-cat{margin-bottom:8px}.ac-cat>small{display:block;margin:6px 0 2px;font-weight:600}
.ac-plist{list-style:none;margin:0;padding:0;display:grid;gap:2px}.ac-plist li{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:6px;font-size:13.5px;flex-wrap:wrap}.ac-plist .grow{flex:1;min-width:140px}
.ac-plist li.yes>svg{color:var(--ok)}.ac-plist li.no{color:var(--mute)}.ac-plist li.no>svg{color:var(--mute);opacity:.6}.ac-plist li.part>small{color:var(--warn)}.ac-plist li:hover{background:var(--panel2)}
.ac-search{margin:14px 0 10px}.ac-search .fl-search{max-width:420px}
.ac-group{padding:0;overflow:hidden}.ac-group>h3{margin:0;padding:14px 16px 8px}.ac-group>p{margin:0;padding:0 16px 8px}
.ac-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;border-top:1px solid var(--line);cursor:pointer}.ac-row:hover{background:var(--panel2)}
.ac-main b{display:block}.ac-acts{display:flex;gap:6px}
.ac-count{place-items:center;border:1px solid var(--line);background:none;font:inherit;cursor:pointer}.ac-count small{color:var(--mute);font-size:11px}
.ac-holders{list-style:none;margin:0;padding:0;display:grid;gap:8px}.ac-holders li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line)}.ac-holders .grow{flex:1;min-width:160px}.ac-why{display:flex;gap:4px;flex-wrap:wrap}
@media(max-width:700px){.ac-row{grid-template-columns:1fr auto}.ac-acts{grid-column:1/-1}.ac-check-h select{min-width:0;width:100%}}
.fl-kind{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:7px;background:var(--panel2);border:1px solid var(--line);color:var(--gold)}.fl-kindcell{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.fl-kindcell svg{color:var(--gold)}
.fl-hero-acts{flex-wrap:wrap}

/* STARS Creator: a gold text tag with a slow glint across the letters */
.arch-badge{display:inline-block;vertical-align:middle;position:relative;top:-1px;margin:0 2px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;cursor:help;
  border:1px solid color-mix(in srgb,#d6b25e 55%,transparent);background:linear-gradient(110deg,#b8892f 0%,#f3dc97 22%,#d6b25e 40%,#b8892f 60%,#f3dc97 80%,#d6b25e 100%) 0 0/250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:arch-glint 9s linear infinite}
.arch-badge.sm{font-size:10px;padding:0 6px}
@keyframes arch-glint{0%{background-position:0 0}100%{background-position:-250% 0}}
@media(prefers-reduced-motion:reduce){.arch-badge{animation:none}}

/* STARS Settings: grouped section menu,section descriptions,settings at a glance */
.adm-nav-g{display:block;padding:12px 12px 4px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.adm-title-wrap{margin-bottom:14px}.adm-title-wrap .adm-title{margin-bottom:2px}.adm-title-wrap p{margin:0}
.adm-glance{display:grid;gap:2px}.adm-glance a{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 6px;border-radius:8px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.adm-glance a:last-child{border-bottom:0}.adm-glance a:hover{background:var(--panel2)}.adm-glance b{font-weight:600;font-size:13.5px;overflow-wrap:anywhere}.adm-glance svg{color:var(--mute);transform:rotate(-90deg)}
@media(max-width:900px){.adm-nav-g{display:none}}@media(max-width:700px){.adm-glance a{grid-template-columns:1fr auto}.adm-glance a>span{grid-column:1/-1}}
/* lab report: clear room between the details (Examiner, Method) and the Findings */
.lab-findings-h{margin-top:30px!important;padding-top:20px;border-top:1px solid var(--line)}

/* audit log: event search */
.ev-toolbar .fl-tools+.fl-tools{margin-top:8px}.ev-q{flex:1 1 420px}.ev-custom{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.ev-custom input{width:auto}
.ev-toolbar .fl-chips{margin-top:10px;align-items:center}
.ev-top{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px;margin:14px 0}@media(max-width:900px){.ev-top{grid-template-columns:1fr}}
.ev-sum b{font-size:20px}
.ev-chart{display:flex;align-items:flex-end;gap:3px;height:120px;margin-top:10px;padding-top:6px;border-bottom:1px solid var(--line)}
.ev-bar{flex:1;height:100%;display:flex;align-items:flex-end;padding:0;border:0;background:none;cursor:pointer;min-width:4px}
.ev-bar i{display:flex;flex-direction:column;justify-content:flex-end;width:100%;background:color-mix(in srgb,var(--gold) 70%,transparent);border-radius:3px 3px 0 0;overflow:hidden}.ev-bar:hover i{background:var(--gold)}
.ev-bar em{display:block;background:var(--bad)}
.ev-facets{display:grid;gap:14px}.ev-facet h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--mute)}
.ev-facet button{display:flex;width:100%;gap:8px;padding:5px 6px;border:0;border-radius:6px;background:none;color:var(--ink);font:inherit;font-size:13px;text-align:left;cursor:pointer}.ev-facet button:hover{background:var(--panel2)}.ev-facet .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-row{display:grid;grid-template-columns:12px 92px minmax(0,1fr) minmax(0,160px) minmax(0,150px);gap:12px;align-items:center;width:100%;padding:9px 14px;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.ev-row:hover,.ev-row[aria-expanded=true]{background:var(--panel2)}
.ev-dot{width:9px;height:9px;border-radius:50%;background:var(--mute)}.ev-dot.bad{background:var(--bad);box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 25%,transparent)}.ev-dot.warn{background:var(--warn)}
.ev-time{display:grid}.ev-time b{font-size:13px;font-variant-numeric:tabular-nums}.ev-time small{color:var(--mute);font-size:11px}
.ev-what{display:grid;min-width:0}.ev-what small{color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev-who{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-code{font-size:11.5px;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-detail{padding:4px 16px 14px 40px;background:var(--panel2)}
.ev-help code,.ev-detail code{background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:12.5px}.ev-help li{margin:6px 0}
@media(max-width:700px){.ev-row{grid-template-columns:12px 70px minmax(0,1fr)}.ev-who,.ev-code{display:none}.ev-detail{padding-left:16px}}
@media(max-width:700px){.ev-toolbar .fl-tools>select{flex:1 1 calc(50% - 4px)!important;min-width:0}.ev-toolbar .fl-tools>.ev-q{flex:1 1 100%!important}}

.ev-chg{margin-left:8px;font-size:11px;font-weight:600;color:var(--gold);white-space:nowrap}
.chg-list{display:grid;gap:10px;margin:8px 0 12px}.chg{border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden}
.chg-h{display:block;padding:7px 10px;font-size:13px;border-bottom:1px solid var(--line)}.chg-h.insert{color:var(--ok)}.chg-h.delete{color:var(--bad)}.chg-h.update{color:var(--gold)}
.chg-t{width:100%;border-collapse:collapse;font-size:12.5px}.chg-t th{text-align:left;font-weight:600;color:var(--mute);padding:5px 10px;background:var(--panel2)}.chg-t td{padding:5px 10px;border-top:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere;white-space:pre-wrap;max-width:420px}
.chg-t td.from{color:color-mix(in srgb,var(--bad) 75%,var(--ink));text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--bad) 50%,transparent)}.chg-t td.to{color:color-mix(in srgb,var(--ok) 75%,var(--ink))}
.chg-t td:first-child{width:28%;color:var(--mute)}
.ev-detail .kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0 0 10px;font-size:13px}.ev-detail .kv dt{margin:0;color:var(--mute)}.ev-detail .kv dd{margin:0;overflow-wrap:anywhere}
.ban-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.ban-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:14px;margin:10px 0}.ban-side{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel2)}.ban-side h4{margin:0 0 6px}.ban-ev{display:grid;gap:4px;overflow-wrap:anywhere}

/* Privacy Notice (Out of Character) */
.pv-ooc{border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:10px;padding:14px 16px;margin:0 0 22px;background:var(--panel2,var(--panel))}.pv-ooc p{margin:6px 0 0}
.pv-sec{margin:0 0 22px}.pv-sec h2{font-size:20px;margin:0 0 8px}.pv-sec ul{padding-left:20px}.pv-sec li{margin:4px 0}
.pv-table{overflow-x:auto}.pv-table table{width:100%;border-collapse:collapse;font-size:14.5px}.pv-table th{text-align:left;padding:8px 10px;border-bottom:2px solid var(--line)}.pv-table td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
@media(max-width:700px){.pv-table table,.pv-table tbody,.pv-table tr,.pv-table td{display:block}.pv-table thead{display:none}.pv-table tr{padding:8px 0;border-bottom:1px solid var(--line)}.pv-table td{border:0;padding:2px 0}.pv-table td:first-child{font-weight:600}}

/* personnel file: header actions,ribbon rack,tiles that never leave one on its own */
.pr-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.pr-tiles{flex-wrap:wrap}
.pr-about{border-left:4px solid var(--gold)}.pr-about p{margin:0}
.pr-role{display:inline-block;max-width:100%;font-weight:600;background:color-mix(in srgb,var(--gold) 14%,transparent);color:var(--ink);border:1px solid color-mix(in srgb,var(--gold) 35%,transparent)}
.kv dd{word-break:break-word;min-width:0;overflow-wrap:anywhere}
.cls-rule b{font-weight:700;letter-spacing:normal;text-transform:none;font-size:inherit}

/* awards on the personnel file: the rack as worn,then each award */
.aw-card{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);text-decoration:none;transition:border-color .15s,transform .15s}.aw-card:hover{border-color:var(--gold);transform:translateY(-1px)}
.pr-rt{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:baseline}

/* STARS Newsroom (Sheriff's Information Bureau) */
.nr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}
.nr-card{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.nr-card.featured{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.nr-thumb{position:relative;height:150px;background:var(--panel2) center/cover no-repeat;display:grid;place-items:center;color:var(--mute)}
.nr-cat{position:absolute;left:10px;top:10px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:#1f3a2c;color:#f0d48e}
.nr-preview .nr-cat{position:static;display:inline-block;margin:10px 0 4px}
.nr-cat.c-alert{background:#7a1f1a;color:#fff}.nr-cat.c-arrests{background:#5b2a14;color:#ffd9b0}.nr-cat.c-community{background:#1f4a3a;color:#c8f1dd}.nr-cat.c-traffic{background:#6a4b0f;color:#ffe6a3}.nr-cat.c-recruitment{background:#20345c;color:#cfe0ff}.nr-cat.c-events{background:#47235c;color:#ecd2ff}.nr-cat.c-awards{background:#6a5113;color:#fff2c4}.nr-cat.c-operations{background:#2b3440;color:#dde6f0}
.nr-feat{position:absolute;right:10px;top:10px;display:inline-flex;gap:4px;align-items:center;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;background:var(--gold);color:#1b1404}
.nr-body{display:flex;flex-direction:column;gap:6px;padding:12px 14px;flex:1}.nr-body h3{margin:0;font-size:16px}.nr-body p{margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nr-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.nr-foot{display:flex;gap:6px;align-items:center;margin-top:auto;padding-top:8px;border-top:1px solid var(--line)}.nr-foot .grow{flex:1}
.nr-editor{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px;align-items:start}@media(max-width:900px){.nr-editor{grid-template-columns:1fr}}
.nr-preview{position:sticky;top:0;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel2)}.nr-pv img{width:100%;border-radius:8px;max-height:220px;object-fit:cover;display:block}.nr-cap{display:block;color:var(--mute);margin-top:4px}
.nr-pv h2{margin:4px 0 6px;font-size:20px}.nr-dek{font-size:15px;color:var(--ink);opacity:.85;margin:0 0 6px}.nr-pv-body{white-space:pre-wrap;font-size:13.5px;margin-top:10px;color:var(--mute);max-height:220px;overflow:hidden}

/* LSSD Website news (Sheriff's Information Bureau) */
.nw-cat{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:#1f3a2c;color:#f0d48e;line-height:1.4}
.nw-cat.c-alert{background:#8e1f19;color:#fff}.nw-cat.c-arrests{background:#5b2a14;color:#ffd9b0}.nw-cat.c-community{background:#1f4a3a;color:#c8f1dd}.nw-cat.c-traffic{background:#6a4b0f;color:#ffe6a3}.nw-cat.c-recruitment{background:#20345c;color:#cfe0ff}.nw-cat.c-events{background:#47235c;color:#ecd2ff}.nw-cat.c-awards{background:#6a5113;color:#fff2c4}.nw-cat.c-operations{background:#2b3440;color:#dde6f0}

.nw-cta{font-weight:700;color:#f0d48e}

.nw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:18px}
.nw-card{display:flex;flex-direction:column;border-radius:14px;overflow:hidden;background:var(--card,var(--panel,#fff));border:1px solid var(--line,rgba(0,0,0,.1));color:inherit;text-decoration:none;transition:transform .2s,box-shadow .2s}
.nw-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.nw-img{position:relative;aspect-ratio:16/9;background:#123323 center/cover no-repeat;display:grid;place-items:center}.nw-img.none img{width:64px;opacity:.85}.nw-img .nw-cat{position:absolute;left:12px;top:12px}
.nw-b{display:flex;flex-direction:column;gap:6px;padding:14px 16px 16px;flex:1}.nw-b h3{margin:0;font-size:18px;line-height:1.3}.nw-b p{margin:0;opacity:.8;font-size:14.5px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.nw-meta{opacity:.7}.nw-more{margin-top:auto;padding-top:6px;font-weight:700;color:var(--gold,#a77d1e);font-size:14px}
.nw-media{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:24px;padding:14px 16px;border-radius:12px;border:1px solid var(--line,rgba(0,0,0,.1))}
.nw-article .nw-art-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;opacity:.85;margin-bottom:10px}.nw-art-meta span+span::before{content:'·';margin-right:10px;opacity:.6}
.nw-dek{font-size:20px;line-height:1.5;margin:0 0 16px;font-weight:500}
.nw-by{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line,rgba(0,0,0,.1));border-bottom:1px solid var(--line,rgba(0,0,0,.1));margin-bottom:18px}.nw-by img{width:34px}.nw-by div{display:grid}.nw-by small{opacity:.7}.nw-by .grow{flex:1}
.nw-share{border:1px solid var(--line,rgba(0,0,0,.15));background:none;color:inherit;border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer}.nw-share:hover{border-color:var(--gold,#a77d1e)}
.nw-fig{margin:0 0 18px}.nw-fig img{width:100%;border-radius:12px;display:block}.nw-fig figcaption{font-size:13px;opacity:.7;margin-top:6px}
.nw-tags{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0}.nw-tags span{padding:3px 10px;border-radius:999px;font-size:12.5px;background:rgba(127,127,127,.14)}
.nw-pn{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.nw-pn a{display:grid;gap:2px;padding:12px 14px;border-radius:10px;border:1px solid var(--line,rgba(0,0,0,.12));color:inherit;text-decoration:none}.nw-pn a.r{text-align:right}.nw-pn a:hover{border-color:var(--gold,#a77d1e)}.nw-pn small{opacity:.7}
.nw-related{margin-top:10px;margin-bottom:40px}.nw-related h2{margin-bottom:14px}
@media(max-width:700px){.nw-pn{grid-template-columns:1fr}.nw-pn a.r{text-align:left}.nw-dek{font-size:18px}}
@media print{.nw-share,.nw-pn,.nw-related{display:none!important}}

/* Ranks & Insignia: tiers,and what each rank does */
.rk-tier{margin:0 0 30px}

/* personnel file: which view you have,and who sees what */
.access-note .grow{flex:1;min-width:0}.access-matrix{margin-top:8px}.access-matrix summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--gold)}
.am-wrap{overflow-x:auto;margin-top:8px}.am-wrap table{border-collapse:collapse;font-size:12.5px;min-width:620px;width:100%}.am-wrap th,.am-wrap td{padding:5px 8px;border-bottom:1px solid var(--line);text-align:center}.am-wrap td:first-child,.am-wrap th:first-child{text-align:left}
.am-wrap .me{background:color-mix(in srgb,var(--gold) 14%,transparent);font-weight:700}.am-wrap td.y{color:var(--ok)}.am-wrap td.n{color:var(--mute)}.am-wrap td.p{color:var(--warn)}.am-wrap th small{font-weight:400;color:var(--mute)}
.access-note.self{border-left-color:var(--ok)}.access-note.ia{border-left-color:var(--bad)}

/* classification banner: level badge,item,scale,who may see it,handling rules */
.cls-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cls-row2{display:flex;gap:12px;flex-wrap:wrap}
.cls-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:6px;font-weight:800;font-size:11.5px;letter-spacing:.14em;color:#fff;background:currentColor}.cls-badge svg,.cls-badge{color:inherit}
.cls-banner.cls-internal .cls-badge{background:var(--blue);color:#fff}.cls-banner.cls-restricted .cls-badge{background:var(--warn);color:#1b1404}.cls-banner.cls-confidential .cls-badge{background:var(--bad);color:#fff}
.cls-scale{display:inline-flex;gap:3px;margin-left:auto}.cls-step{width:18px;height:6px;border-radius:3px;background:color-mix(in srgb,var(--mute) 30%,transparent)}.cls-step.on{background:currentColor;opacity:.55}.cls-step.cur{opacity:1}
.cls-who b{color:var(--ink);font-weight:700;letter-spacing:normal;text-transform:none;font-size:12.5px}
.cls-more summary{cursor:pointer;font-weight:600}.cls-more[open] summary{margin-bottom:6px}
.cls-dd{display:grid;color:var(--ink)}.cls-dd b{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}.cls-dd ul{margin:2px 0 0;padding-left:18px}.cls-dd li{margin:2px 0}

@media(max-width:640px){.cls-scale{margin-left:0}.cls-row2 .cls-more{margin-left:0}}
@media print{.cls-more,.cls-scale{display:none}}

/* signature blocks: who issued,approved or signed a document */
.sig-row{display:flex;gap:28px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px dashed var(--line,rgba(0,0,0,.2))}
.sig-block{display:grid;gap:1px;margin-top:16px;max-width:360px}.sig-row .sig-block{margin-top:0}
.sig-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mute,#6b6b6b)}
.sig-label{margin-bottom:10px}
.sig-hand{padding:2px 4px 6px;border-bottom:1px solid var(--line,rgba(0,0,0,.25));margin-bottom:6px}
.sig-name{font-size:15px;line-height:1.3}.sig-rank{font-size:13px;font-weight:600;color:var(--ink,#1a2a20);opacity:.85}.sig-title{font-size:13px;color:var(--mute,#5b6a5e)}.sig-at{font-size:11.5px;color:var(--mute,#6b6b6b)}.track.sworn{border-left:4px solid var(--gold,#a77d1e)}.track.civ{border-left:4px solid var(--line,#999)}

/* reporting on the LSSD Website: anonymity,other ways to reach us */
.note-box{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:12px;border:1px solid var(--line,rgba(0,0,0,.12));border-left:4px solid var(--gold,#a77d1e);background:rgba(127,127,127,.07);margin:0 0 16px}.note-box svg{flex:none;color:var(--gold,#a77d1e);margin-top:2px}.note-box p{margin:4px 0 0}.note-box.ia{border-left-color:#8e1f19}.note-box.ia svg{color:#8e1f19}
.sect-h{margin:28px 0 12px;font-size:22px}
.ia-intake{border-left:4px solid var(--bad)}.ia-cmp{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line)}.ia-cmp .grow{flex:1 1 320px;min-width:0}.ia-cmp-body{max-height:120px;overflow:auto;margin-top:4px}

/* Community Portal: around the county,feedback */
.cp-around-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px}.cp-around .card h3{margin:0 0 10px;font-size:17px}
.cp-area{display:inline-flex;align-items:center;gap:6px}.cp-area select{width:auto;padding:4px 8px;font-size:13px}
.cp-alert{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--line,rgba(0,0,0,.1));color:inherit;text-decoration:none}.cp-alert svg{color:#c0392b;flex:none;margin-top:2px}.cp-alert div{display:grid}.cp-alert small{opacity:.7}
.cp-news{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line,rgba(0,0,0,.1));color:inherit;text-decoration:none}.cp-news img{width:64px;height:42px;object-fit:cover;border-radius:6px;flex:none}.cp-news-ph{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;background:rgba(127,127,127,.12);flex:none;color:var(--gold,#a77d1e)}.cp-news div{display:grid}.cp-news small{opacity:.7}
.cp-recruit{display:flex;gap:10px;align-items:center;margin-top:12px;padding:10px 12px;border-radius:10px;background:rgba(127,127,127,.08)}.cp-recruit.open{background:color-mix(in srgb,#1d8a57 14%,transparent)}.cp-recruit div{display:grid;flex:1}.cp-recruit small{opacity:.75}
.cp-fb{display:grid;gap:8px}.cp-stars{display:flex;gap:4px;font-size:26px;line-height:1}.cp-stars span,.cp-stars button{color:rgba(127,127,127,.4);background:none;border:0;padding:0;font-size:inherit;cursor:pointer}.cp-stars .on{color:#d6a72c}.cp-fb.done{border-left:4px solid #d6a72c}
.nw-tags{align-items:center}.nw-tags small{opacity:.6;margin-right:4px}.nw-tags a{padding:3px 10px;border-radius:999px;font-size:12.5px;background:rgba(127,127,127,.14);color:inherit;text-decoration:none}.nw-tags a:hover{background:var(--gold,#a77d1e);color:#fff}
.nw-ctags{display:flex;gap:6px;flex-wrap:wrap}
.nw-tagbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;margin:0 0 16px;border-radius:12px;border:1px solid var(--line,rgba(0,0,0,.12));border-left:4px solid var(--gold,#a77d1e)}
.nw-ctags span{font-size:12px;padding:1px 8px;border-radius:999px;background:rgba(127,127,127,.12);opacity:.8}

/* Civilian Careers */
.civ-why{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px;margin-bottom:10px}.civ-why .why-card svg{color:var(--gold,#a77d1e)}
.civ-roles{display:grid;gap:14px}.civ-role{border:1px solid var(--line,rgba(0,0,0,.12));border-radius:14px;padding:18px 20px;background:var(--card,var(--panel,#fff));display:grid;gap:10px}.civ-role.open{border-left:4px solid #1d8a57}.civ-roles.closed .civ-role{opacity:.8}
.civ-role-h{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}.civ-role h3{margin:0;font-size:20px}.civ-role-h small{opacity:.7}.civ-role p{margin:0}.civ-role .btn{justify-self:start}
.civ-state{padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;background:rgba(127,127,127,.15)}.civ-state.open{background:#1d8a57;color:#fff}
.civ-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}.civ-cols ul{margin:4px 0 0;padding-left:18px}.civ-cols li{margin:3px 0}
.civ-steps{list-style:none;padding:0;margin:0}.civ-steps li{gap:10px;align-items:flex-start}
.civ-n{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--gold,#a77d1e);color:#fff;font-weight:800}
.cp-note-2 b{display:block;margin-bottom:2px}.cp-note-2 span{color:var(--mute);font-size:14px}.cp-note-2 span a{color:var(--gold)}
.cp-actions.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}.cp-track-k{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}.cp-track-s{font-size:12.5px;font-weight:700;color:var(--mute)}.cp-track-s.open{color:#1d8a57}
/* dashboard announcements: every row lines up the same */
.dash-anns{display:grid}.dash-ann{display:grid;gap:4px;padding:10px 4px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none;border-radius:6px}.dash-ann:first-child{border-top:0}.dash-ann:hover{background:var(--panel2)}
.dash-ann-tags{display:flex;gap:6px;flex-wrap:wrap}.dash-ann-s{color:var(--mute);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* news article boxes: the title on its own line{display:block;margin-bottom:2px}
.civ-faq .faq-a{padding:0 16px 14px}.civ-faq .faq-a p{margin:0;opacity:.9}.civ-faq summary{font-weight:600}

/* Press Room */
.cp-embargo summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none}.cp-embargo summary::-webkit-details-marker{display:none}.cp-emb-t{display:grid;flex:1}.cp-emb-t small{color:#c0392b;font-weight:700}.cp-embargo[open] summary{margin-bottom:10px}.cp-embargo{border-left:4px solid #c0392b;margin-bottom:10px}
.cp-facts{display:grid;grid-template-columns:1fr auto;gap:6px 12px;margin:0}.cp-facts dt{opacity:.75}.cp-facts dd{margin:0;font-weight:800;text-align:right}
.civ-faq summary{padding:12px 16px}.civ-faq details[open] summary{padding-bottom:4px}.civ-faq .faq-a{padding:0 16px 12px!important}.civ-faq .faq-a p{margin:0!important}
.bar>.fl-search{flex:1 1 280px;min-width:0;background:var(--panel)}.bar>.fl-search input{width:100%}
/* search fields: the input never draws its own box inside the rounded field */
.search-box input,.search-box input:focus,.search-box input:hover,.fl-search input,.fl-search input:focus,.search input,.search input:focus{background:transparent!important;border:0!important;box-shadow:none!important;outline:none!important}
.search-box{align-items:center}.search-box input{flex:1;min-width:0;padding:0 8px 0 0}
.cp-actions.five{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))!important}
/* the composer is the frame; its text box draws no box of its own */
.cp-composer textarea,.cp-composer textarea:focus{background:transparent!important;border:0!important;box-shadow:none!important;outline:none!important;padding:6px 4px}
.cp-composer:focus-within{border-color:var(--gold)}
.cp-sechead{flex-wrap:wrap;gap:4px 12px}.cp-sechead h2{white-space:nowrap}

/* narrow pages keep their reading width but line up with the page header */
.wrap.narrow{max-width:1180px}.wrap.narrow>*{max-width:820px}
/* Community Portal notes: a bold title,then the text; the OOC warning stands out */
.cp-warn{border-left-color:var(--bad,#c0392b)!important}.cp-warn>svg{color:var(--bad,#c0392b)!important}.cp-warn b{display:block;margin-bottom:3px}.cp-warn span b{display:inline;margin:0}.cp-warn span{font-size:14.5px}
.cp-role div{display:grid;gap:2px}.cp-role small{color:var(--mute)}.cp-role p{margin:4px 0 0;font-size:14.5px}

/* County map: a drawer on phones,the map fills the screen */
.mapx-close,.mapx-open{display:none}.mapx-head{position:relative}
@media(max-width:900px){
  .mapx{display:block;position:relative}.mapx-side{position:fixed;inset:0 auto 0 0;width:min(340px,88vw);max-height:none;height:100dvh;z-index:60;border-radius:0 14px 14px 0;transform:translateX(-105%);transition:transform .22s ease;box-shadow:var(--shadow)}
  .mapx.drawer .mapx-side{transform:none}.mapx.drawer::after{content:'';position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:55}
  .mapx-close{display:inline-grid;position:absolute;right:0;top:0}.mapx-open{display:inline-flex;position:absolute;left:10px;top:10px;z-index:8;box-shadow:var(--shadow)}
  .mapx-main .mapview,.mapx-main>div:last-child{height:calc(100dvh - 150px)!important}
}

/* Special Enforcement Bureau */
.risk-meter{margin:8px 0}.risk-bar{position:relative;height:8px;border-radius:99px;background:var(--line);overflow:visible}.risk-bar i{display:block;height:100%;border-radius:99px;background:var(--ok);transition:width .25s}
.risk-bar b{position:absolute;top:-3px;width:2px;height:14px;background:var(--mute);opacity:.55}.risk-bar .m25{left:25%}.risk-bar .m50{left:50%}
.risk-meter.recommended .risk-bar i{background:var(--warn)}.risk-meter.required .risk-bar i{background:var(--bad)}.risk-txt{font-size:13px;margin-top:6px;color:var(--mute)}.risk-txt strong{color:var(--ink)}
.risk-meter.required .risk-txt{color:var(--bad)}.risk-meter.recommended .risk-txt{color:var(--warn)}.risk-live{margin:-4px 0 12px}
.seb-list{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}.seb-card{display:block;color:inherit;text-decoration:none;margin:0;transition:border-color .15s,transform .15s}.seb-card:hover{border-color:var(--gold);transform:translateY(-1px)}
.seb-card h3{margin:8px 0 4px;font-size:16px}.seb-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.seb-me{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:14px}.seb-me .seg{margin:0}
.seb-risk{list-style:none;padding:0;margin:10px 0 0}.seb-risk li{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--line);font-size:14px}.seb-risk b{color:var(--bad)}
.seb-details{margin-top:12px}.seb-counts{display:flex;gap:14px;flex-wrap:wrap;margin:6px 0 10px}.seb-answer{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.seb-answer .seg{margin:0}
.seb-decide{border-color:var(--gold)}.row-between{display:flex;justify-content:space-between;align-items:center;gap:10px}.gold-pill{background:color-mix(in srgb,var(--gold) 18%,transparent);color:var(--gold);margin-left:6px}
.seb-pick,.seb-map{border-radius:10px;overflow:hidden}
@media (max-width:640px){.seb-answer .seg,.seb-me .seg{display:flex;width:100%}.seb-answer .seg button,.seb-me .seg button{flex:1;padding:8px 6px}}

.dlg .reader.art-body{padding:0;margin:0 0 6px}

.fl-urgent{min-width:0;max-width:100%}.fl-defrow .grow{flex:1 1 0}.fl-defrow .btn{flex:none}

/* STARS sign-in: title,full name,then the Department and its slogan between two rules */
.login-card h1{margin:12px 0 6px;font-size:30px;letter-spacing:.08em}.login-sub{color:var(--mute);font-size:14px;line-height:1.45;margin:0 auto;max-width:290px;text-wrap:balance}

.login-card form{margin-top:18px}.login-card form+.small,.login-card>.small{margin:18px 0 0}

/* Personnel file: labels take only the width they need; roles are tidy tags that wrap cleanly,with Change underneath */
.pr .kv{grid-template-columns:max-content minmax(0,1fr);column-gap:20px}
.pr-role{border-radius:8px;padding:4px 10px;line-height:1.35;font-size:12.5px;overflow-wrap:normal;word-break:normal;hyphens:none}

@media (max-width:640px){.pr .kv{grid-template-columns:1fr}}

/* Readable text everywhere: plates keep their dark ink on the light plate,and labels and list text wrap instead of being cut off with "…" */
a.fl-plate,.fl-urgent a.fl-plate,.fl-plate{color:#13261c}
.fl-urgent a.fl-plate{display:inline-block;padding:1px 6px;border-radius:5px;gap:0;flex:none;text-decoration:none}.fl-urgent a.fl-plate:hover{background:#fff}
.fl-defrow{min-width:0;align-items:flex-start}.fl-defrow .grow,.fl-bureaus .grow,.ev-facet .grow,.ev-what small,.ev-who,.ev-code,.ps-item span,.pa-bar span,.bl span,.oc-person b,.mega-links a small{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.35}
.fl-defrow .fl-plate,.fl-defrow .btn{margin-top:1px}
.cal-ev{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3;overflow-wrap:anywhere}
.me-name{max-width:240px}

/* Special Enforcement Bureau,round two: search,progress steps,live markers,log,roster summary,printed briefing */
.seb-tools{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;justify-content:space-between;margin-bottom:14px}.seb-tools .seg{margin:0}
.seb-search{display:flex;align-items:center;gap:8px;flex:1 1 260px;max-width:440px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:var(--panel);color:var(--mute)}
.seb-search:focus-within{border-color:var(--gold)}.seb-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);padding:9px 0;font:inherit;box-shadow:none}
.seb-steps{list-style:none;display:flex;margin:10px 0 2px;padding:0;gap:0}.seb-steps li{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;font-size:11.5px;color:var(--mute);min-width:0}
.seb-steps li::before{content:'';position:absolute;top:5px;left:-50%;right:50%;height:2px;background:var(--line)}.seb-steps li:first-child::before{display:none}
.seb-steps .dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--line);background:var(--panel);position:relative;z-index:1;margin-bottom:4px}
.seb-steps li.done{color:var(--ink)}.seb-steps li.done .dot{background:var(--ok);border-color:var(--ok)}.seb-steps li.done::before,.seb-steps li.next::before{background:var(--ok)}
.seb-steps li.next .dot{border-color:var(--gold)}.seb-steps li.next{color:var(--gold)}.seb-steps li.stop .dot{background:var(--bad);border-color:var(--bad)}.seb-steps li.stop{color:var(--bad)}.seb-steps li.stop::before{background:var(--bad)}
.seb-steps b{font-weight:600}.seb-steps small{display:block;color:var(--mute);font-size:11px;margin-top:2px}.seb-steps.full li{font-size:13px}.seb-steps.full .dot{width:14px;height:14px}.seb-steps.full li::before{top:6px}
.seb-progress{padding:14px 10px}.seb-stack{display:grid;gap:16px}
.seb-live{display:inline-flex;align-items:center;gap:6px;color:var(--bad);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:11.5px}
.seb-live i{width:8px;height:8px;border-radius:50%;background:var(--bad);box-shadow:0 0 0 0 color-mix(in srgb,var(--bad) 60%,transparent);animation:sebPulse 1.6s infinite}
@keyframes sebPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--bad) 55%,transparent)}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
@media (prefers-reduced-motion:reduce){.seb-live i{animation:none}}
.seb-card.live{border-color:color-mix(in srgb,var(--bad) 55%,var(--line))}.seb-foot{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px}.seb-foot span{display:inline-flex;align-items:center;gap:4px}
.seb-livebar{display:grid;gap:8px;margin:0 0 14px}.seb-livebar a{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--bad) 50%,var(--line));background:color-mix(in srgb,var(--bad) 9%,var(--panel));color:var(--ink);text-decoration:none}
.seb-livebar a:hover{border-color:var(--bad)}.seb-livebar .grow{flex:1 1 200px;min-width:0}
.seb-avail{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px;margin-bottom:16px}.seb-avail .card{margin:0}.seb-big{font-size:30px;font-weight:700;color:var(--gold);margin:4px 0}
.seb-logform{display:grid;gap:10px}.seb-logform textarea{width:100%;resize:vertical}.seb-logform .btn{justify-self:end}
.seb-log{list-style:none;margin:0;padding:0 0 0 6px;border-left:2px solid var(--line)}.seb-log li{display:flex;gap:12px;padding:10px 0 10px 14px;position:relative}
.seb-log .dot{position:absolute;left:-8px;top:15px;width:12px;height:12px;border-radius:50%;background:var(--mute);border:2px solid var(--bg)}
.seb-log .tone-ok .dot{background:var(--ok)}.seb-log .tone-bad .dot{background:var(--bad)}.seb-log .tone-blue .dot{background:var(--blue)}.seb-log .tone-gold .dot{background:var(--gold)}.seb-log .tone-ink .dot{background:var(--ink)}
.seb-log .seb-kind{color:var(--ink);margin-right:4px}.seb-log .pre{margin-top:2px;overflow-wrap:anywhere}
.seb-stack .card,.seb-avail .card{margin-bottom:0}
@media (max-width:640px){.seb-steps li{font-size:10.5px}.seb-steps.full li{font-size:11.5px}.seb-steps small{display:none}.seb-search{max-width:none}}
/* The printed briefing: only it is printed,in black on white */
.seb-brief{display:none}
@media print{body.seb-printing #app,body.seb-printing .overlay,body.seb-printing .toast{display:none!important}body.seb-printing{background:#fff!important}
  body.seb-printing .seb-brief{display:block!important;color:#000;font:11pt/1.45 var(--font);padding:14mm 4mm 16mm}
  .seb-brief .sb-head{display:flex;gap:14px;align-items:center;border-bottom:2px solid #000;padding-bottom:8px;margin-bottom:10px}.seb-brief .sb-head img{width:58px}
  .seb-brief .sb-dept{font-size:9pt;text-transform:uppercase;letter-spacing:.05em}.seb-brief h1{font-size:18pt;margin:2px 0;color:#000}.seb-brief h2{font-size:12pt;margin:14px 0 6px;border-bottom:1px solid #000;color:#000}
  .seb-brief table{width:100%;border-collapse:collapse}.seb-brief th,.seb-brief td{border:1px solid #888;padding:4px 7px;text-align:left;vertical-align:top}.seb-brief .sb-kv th{width:30%;background:#eee}.seb-brief .sb-team th{background:#eee}
  .seb-brief .pre{white-space:pre-wrap}.seb-brief .sb-foot{margin-top:16px;font-size:8.5pt;border-top:1px solid #000;padding-top:6px}}

a.who{text-decoration:none;color:var(--ink)}a.who:hover b{text-decoration:underline}


.mapx-fold>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between}.mapx-fold>summary::-webkit-details-marker{display:none}.mapx-fold>summary h4{margin:0}.mapx-fold>summary::after{content:'▾';color:var(--mute);transition:transform .2s}.mapx-fold[open]>summary::after{transform:rotate(180deg)}.mapx-fold[open]>summary{margin-bottom:6px}
.mapx-places{max-height:300px;overflow-y:auto}.mapx-sub{margin:12px 0 2px;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}.mapx-hit .grow{min-width:0;overflow-wrap:anywhere}

/* Department Staff: names and ranks on one line; less important columns step aside when the table gets narrow */
.staff-list td:nth-child(2) b,.staff-list .rankcell{white-space:nowrap}.staff-list .rankcell{display:inline-flex;align-items:center;gap:8px}
@media (min-width:821px) and (max-width:1280px){.staff-list th:nth-child(6),.staff-list td:nth-child(6){display:none}}
@media (min-width:821px) and (max-width:1060px){.staff-list th:nth-child(4),.staff-list td:nth-child(4){display:none}}

/* Map,round three: full screen (real, or filling the window),right-click menu,pulse,notes,labels shown in full on hover */
.mv-ping{position:absolute;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:3px solid #f0d48e;pointer-events:none;z-index:5;animation:mvPing 1.8s ease-out forwards}
@keyframes mvPing{0%{transform:scale(.4);opacity:1}70%{transform:scale(3.2);opacity:.35}100%{transform:scale(4);opacity:0}}
@media (prefers-reduced-motion:reduce){.mv-ping{animation:none;opacity:.8}}
.mv-note{position:absolute;left:50%;bottom:44px;transform:translateX(-50%);z-index:8;background:rgba(14,24,19,.94);color:#f0eee6;border:1px solid rgba(214,178,94,.5);border-radius:10px;padding:7px 12px;font:600 13px var(--font);max-width:90%;text-align:center;animation:mvpop .18s ease}
.mv-pop.ctx{transform:translate(-50%,calc(-100% - 16px));padding:6px;min-width:220px}
.mv-ctx{display:grid;gap:2px}.mv-ctx-head{font:700 12.5px var(--font);color:var(--gold);padding:6px 8px 4px;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.mv-ctx-btn{display:flex;align-items:center;gap:9px;background:none;border:0;color:var(--ink);font:500 13.5px var(--font);padding:8px 10px;border-radius:8px;cursor:pointer;text-align:left}.mv-ctx-btn:hover,.mv-ctx-btn:focus-visible{background:var(--raise);color:var(--gold)}
.mv .mv-mark:hover .mv-label,.mv .mv-mark:focus-visible .mv-label{max-width:none;overflow:visible;z-index:3}.mv .mv-mark:hover{z-index:4}
.mv.mv-max{position:fixed!important;inset:0;z-index:900;height:100dvh!important;border-radius:0;border:0}
html.mv-maxed,html.mv-maxed body{overflow:hidden}
.mapx:fullscreen,.mapx.mv-max{background:var(--bg);padding:12px;box-sizing:border-box;width:100%;height:100%;overflow:hidden;align-items:stretch;grid-template-rows:100%}
.mapx.mv-max{position:fixed;inset:0;z-index:900;height:100dvh}
.mapx:fullscreen .mapx-side,.mapx.mv-max .mapx-side{position:relative;top:0;max-height:100%;height:100%}
.mapx:fullscreen .mapx-main,.mapx.mv-max .mapx-main{height:100%;min-height:0}
.mapx:fullscreen .mv,.mapx.mv-max .mv,.mapx:fullscreen .mapx-main>div:last-child,.mapx.mv-max .mapx-main>div:last-child{height:100%!important}
.mapx:fullscreen::backdrop{background:var(--bg)}
.mapx-acts2{display:flex;flex-wrap:wrap;gap:6px}.mapx-tips{margin:10px 0 0;padding-left:16px;display:grid;gap:4px;line-height:1.4}
html.mv-maxed .overlay{z-index:1000}html.mv-maxed .toasts,html.mv-maxed .menu-pop{z-index:1001}
/* Sidebar: wide enough that every entry and group name sits on one line; tidy spacing */
.side{width:272px;padding:14px 10px 28px}
.side a.nav{padding:7px 10px;gap:11px;line-height:1.3;min-height:36px;margin:1px 0}.side a.nav>span:first-of-type{white-space:nowrap}
.nav-title{letter-spacing:.08em;padding:12px 10px 5px;white-space:nowrap}.nav-group{margin-bottom:6px}
@media(max-width:1100px){.side{width:256px}.side a.nav{font-size:13.5px;gap:9px}}
@media(max-width:820px){.side{left:-300px;width:min(290px,86vw)}body.nav-open .side{left:0}}

/* Street and area names drawn on the map: street names appear once zoomed in,area names always */
.mv .mv-mark.text{transform:translate(-50%,-50%);background:none;border:0;padding:0 2px;color:var(--c);font:700 10.5px var(--font);text-transform:uppercase;letter-spacing:.09em;white-space:nowrap;cursor:pointer;text-shadow:0 0 2px #000,0 0 4px #000,0 0 8px rgba(0,0,0,.7);z-index:1}
.mv .mv-mark.text.area{font-size:11.5px;letter-spacing:.14em;font-weight:800;opacity:.9}.mv .mv-mark.text:hover{color:#f0d48e}
.mv.mv-far .mv-mark.text{display:none}.mv.mv-mid .mv-mark.text:not(.area){display:none}

.mapx-near{display:grid;gap:1px;margin-top:4px;min-width:230px}.mapx-near .mapx-hit{padding:6px 6px}.mapx-near small{white-space:nowrap;font-variant-numeric:tabular-nums}

/* Lab report: the chain of custody stands apart from the signature,with room between entries (read by courts and the JSA) */
.lab-coc-h{margin:30px 0 14px;padding-top:22px;border-top:1px solid var(--line)}.lab-coc>li{padding-bottom:18px}.lab-coc>li:last-child{padding-bottom:4px}.lab-coc time{display:block;margin-bottom:2px}

/* SEB: ready-to-go checklist,one-tap events,map legend */
.seb-ready.all{border-color:color-mix(in srgb,var(--ok) 60%,var(--line))}.seb-readybar{margin:10px 0 6px}.seb-readybar i{background:var(--gold)}.seb-ready.all .seb-readybar i{background:var(--ok)}
.seb-checks{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:2px 18px}
.seb-checks li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 10px;padding:6px 0;border-bottom:1px solid var(--line)}.seb-checks li.done span{color:var(--ink)}.seb-checks li:not(.done) span{color:var(--mute)}
.seb-quick .row-between{flex-wrap:wrap}.seb-events{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.seb-pickseg{margin:0}.seb-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px}.seb-legend span{display:inline-flex;align-items:center;gap:6px}.seb-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}
.seb-log .tone-bad .pre{color:var(--bad);font-weight:600}

.plog-changes{margin:4px 0 0;padding-left:16px;color:var(--mute);display:grid;gap:1px}.plog-changes li{overflow-wrap:anywhere}

.seb-rolechips{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.seb-rolechips .gold-pill{margin-left:0}
.seb-rolegroups{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));margin-top:10px}.seb-rolegroups b{display:block;margin-bottom:6px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em;font-size:11.5px}

/* Gang Intelligence: crew cards with their color,emblems,graded intelligence,member files,rivalries */
.crew-emblem{display:inline-grid;place-items:center;flex:none;border-radius:12px;background:color-mix(in srgb,var(--c) 22%,var(--panel));border:2px solid var(--c);color:#fff;font-weight:800;letter-spacing:.04em;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.intel-stats{margin-bottom:12px}.intel-busy{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px}
.crew-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--c) 55%,var(--line));background:color-mix(in srgb,var(--c) 12%,var(--panel));color:var(--ink);text-decoration:none;font-size:13px;font-weight:600}
.crew-chip i{width:8px;height:8px;border-radius:50%;background:var(--c)}.crew-chip small{color:var(--mute);font-weight:700}.crew-chip:hover{border-color:var(--c)}
.crew2{display:flex;flex-direction:column;gap:10px;margin:0;color:inherit;text-decoration:none;border-top:4px solid var(--c);transition:transform .15s,border-color .15s,box-shadow .15s}.crew2:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.28)}
.crew2.risk-extreme{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bad) 40%,transparent)}.crew2.quiet{opacity:.72}
.crew2-top{display:flex;align-items:center;gap:12px}.crew2-top h3{margin:0;font-size:17px}.crew2-stats{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--mute)}.crew2-stats b{color:var(--ink)}
.crew2-rels{display:flex;flex-wrap:wrap;gap:6px}.rel-mini{font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--c) 50%,var(--line));color:var(--ink)}.crew2-last{margin-top:auto}
.rel-war,.rel-rival{--tone:var(--bad)}.rel-ally,.rel-business{--tone:var(--ok)}.rel-truce{--tone:var(--warn)}
.rel-chip{display:inline-flex;align-items:center;gap:2px;padding:4px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--tone,var(--line)) 50%,var(--line));background:color-mix(in srgb,var(--tone,var(--panel)) 10%,var(--panel));color:var(--ink);text-decoration:none;font-size:13px}.rel-chip b{color:var(--tone)}
.rel-ico{color:var(--tone);font-weight:800}.rel-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line)}.rel-row:first-of-type{border-top:0}.rel-note{flex-basis:100%}
.rel-line{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;border-top:1px solid var(--line)}.rel-line:first-child{border-top:0}
.grade{display:inline-grid;place-items:center;min-width:34px;height:26px;padding:0 6px;border-radius:7px;font:800 13px var(--font);letter-spacing:.04em;flex:none}
.grade.good{background:color-mix(in srgb,var(--ok) 20%,transparent);color:var(--ok);border:1px solid color-mix(in srgb,var(--ok) 50%,transparent)}.grade.fair{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 50%,transparent)}
.grade.weak{background:color-mix(in srgb,var(--mute) 14%,transparent);color:var(--mute);border:1px solid var(--line)}
.intel-row{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-top:1px solid var(--line);color:inherit;text-decoration:none}.intel-row:first-child{border-top:0}.intel-row:hover{background:var(--raise)}
.crew-dot{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle}
.intel-report{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-top:1px solid var(--line)}.intel-report:first-child{border-top:0}.intel-body{margin-top:6px}
.intel-key{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.intel-mini{display:flex;gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--line);font-size:13.5px}.intel-mini:first-of-type{border-top:0}
.crew-hero{display:flex;flex-wrap:wrap;gap:16px;align-items:center;padding:18px;margin:6px 0 14px;border-radius:16px;border:1px solid color-mix(in srgb,var(--c) 45%,var(--line));background:linear-gradient(120deg,color-mix(in srgb,var(--c) 16%,var(--panel)),var(--panel) 60%)}
.crew-hero h1{margin:2px 0}.crew-hero-k{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:700}.crew-hero-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.crew-hero .page-acts{margin-left:auto}
.mcard{margin:0;display:flex;flex-direction:column;gap:8px}.mcard.quiet{opacity:.65}.mcard-top{display:flex;gap:12px;align-items:center}
.mcard-photo{width:56px;height:56px;border-radius:12px;object-fit:cover;flex:none;border:1px solid var(--line)}.mcard-photo.none{display:grid;place-items:center;background:var(--raise);font-weight:700;color:var(--mute)}
.mcard-danger{color:var(--bad);font-weight:600;display:flex;align-items:center;gap:4px}.mcard-acts{display:flex;gap:12px;margin-top:auto}
@media (max-width:640px){.crew-hero .page-acts{margin-left:0;width:100%}}

/* Area names: part of the map,faint,never in the way (no clicks),shown once zoomed in */
.mv-areas{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}

.mv.mv-far .mv-areas{display:none}
.mv-area{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font:700 10.5px var(--font);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.8);text-shadow:0 0 2px rgba(0,0,0,.9),0 0 5px rgba(0,0,0,.6)}

/* Operations */
.op-card{display:block;color:inherit;text-decoration:none;margin:0;border-left:4px solid var(--line);transition:transform .15s,border-color .15s}.op-card:hover{transform:translateY(-1px);border-color:var(--gold)}.op-card h3{margin:8px 0 4px}
.op-card.st-active{border-left-color:var(--warn)}.op-card.st-briefed{border-left-color:var(--blue)}.op-card.st-planned{border-left-color:var(--mute)}.op-card.st-complete{border-left-color:var(--ok)}
.op-doc h3{margin:18px 0 6px;color:var(--gold)}.op-doc h3:first-of-type{margin-top:4px}

.acts-inline{display:inline-flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}

/* Community Portal: the press pass */
.cp-pass{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:16px 18px;margin:0 0 16px;border-radius:14px;border:1px solid color-mix(in srgb,var(--gold) 55%,var(--line));background:linear-gradient(120deg,color-mix(in srgb,var(--gold) 14%,var(--panel)),var(--panel) 65%)}
.cp-pass img{width:52px;height:auto}.cp-pass-k{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:700}.cp-pass-n{display:block;font-size:19px;margin:2px 0}
.cp-pass small{color:var(--mute)}.cp-pass-r{display:grid;grid-template-columns:auto auto;gap:2px 10px;align-items:baseline;font-variant-numeric:tabular-nums}.cp-pass-r b{font-size:14px}

/* Figures never touch what comes after them */
.stats-strip{margin-bottom:16px}.stats-strip+.seb-tools,.stats-strip+.seg,.stats-strip+.tabs{margin-top:0}

.cp-around-grid{align-items:start}.cp-sib-h{margin:16px 0 6px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}.cp-sib .cp-news{text-decoration:none;color:inherit}.cp-sib-btn{margin-top:12px}

.keybox{white-space:pre-wrap;word-break:break-all;padding:12px;border-radius:10px;background:var(--bg);border:1px solid var(--line);font-size:13px}.api-doc{margin-top:14px}.api-doc summary{cursor:pointer;font-weight:600}.api-doc code{font-size:12.5px;white-space:nowrap}

/* Case board: toolbar,side panel (figures, card types, string colors),stage with cards,strings and menus */
.cbx-page{display:flex;flex-direction:column;gap:10px}
.cbx-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
.cbx-title{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 240px}.cbx-title h1{margin:0;font-size:19px;line-height:1.2;overflow-wrap:anywhere}.cbx-title .cf-kicker{margin:0}
.cbx-back{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:9px;border:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:17px}.cbx-back:hover{border-color:var(--gold);color:var(--gold)}
.cbx-views{margin:0}.cbx-views button{display:inline-flex;align-items:center;gap:4px}
.cbx-saved{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ok)}.cbx-saved small{color:var(--mute);font-weight:400}
.cbx-tools{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-left:auto}
.cbx-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:9px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);font:600 13px var(--font);cursor:pointer}
.cbx-btn:hover{border-color:var(--gold)}.cbx-btn.on{background:color-mix(in srgb,var(--gold) 20%,var(--panel2));border-color:var(--gold);color:var(--gold)}.cbx-btn.primary{background:var(--gold);border-color:var(--gold);color:#14211a}
.cbx-zoom{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:9px;padding:2px 4px;background:var(--panel2)}.cbx-zoom .iconbtn{width:30px;height:30px;font-size:17px}.cbx-pct{min-width:44px;text-align:center;font:600 12.5px var(--font);font-variant-numeric:tabular-nums}
.cbx-wrap{display:grid;grid-template-columns:260px minmax(0,1fr);gap:0;height:calc(100dvh - 230px);min-height:480px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#0b1510;position:relative}
.cbx-wrap.collapsed{grid-template-columns:0 minmax(0,1fr)}.cbx-wrap.collapsed .cbx-side{visibility:hidden}
.cbx-side{background:var(--panel);border-right:1px solid var(--line);overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:14px;min-width:0}
.cbx-side-h{display:flex;align-items:center;justify-content:space-between}.cbx-side-h b{font-size:14px}
.cbx-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:0 10px;background:var(--bg);color:var(--mute)}.cbx-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);padding:8px 0;font:inherit}
.cbx-sec h4{margin:0 0 8px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.cbx-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px}.cbx-stats div{border:1px solid var(--line);border-radius:9px;padding:8px;text-align:center;background:var(--bg)}.cbx-stats b{display:block;font-size:20px;color:var(--gold)}.cbx-stats small{color:var(--mute);font-size:11.5px}
.cbx-types{display:grid;gap:1px}.cbx-type-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:0;border-radius:8px;background:none;color:var(--ink);font:500 13.5px var(--font);cursor:pointer;text-align:left}
.cbx-type-row:hover{background:var(--raise)}.cbx-type-row i{width:9px;height:9px;border-radius:3px;background:var(--c);flex:none}.cbx-type-row .ico{color:var(--c)}.cbx-type-row b{font-variant-numeric:tabular-nums;color:var(--mute)}
.cbx-type-row.none{opacity:.55}.cbx-type-row.off{opacity:.4;text-decoration:line-through}.cbx-type-row.off i{background:transparent;border:1px solid var(--c)}
.cbx-swatches{display:flex;flex-wrap:wrap;gap:8px}.cbx-swatches button{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;box-shadow:0 0 0 1px var(--line)}.cbx-swatches button.on{border-color:var(--ink)}
.cbx-keys{line-height:1.6}
.cbx-stage{position:relative;min-width:0;min-height:0}.cbx-stage .cb-view{position:absolute;inset:0}
.cbx-open{display:none;position:absolute;left:8px;top:8px;z-index:9;width:30px;height:30px;border-radius:8px;border:1px solid #2b4335;background:rgba(17,28,22,.92);color:#cfd8cf;cursor:pointer}.cbx-wrap.collapsed .cbx-open{display:block}
.cbx-card{width:220px;padding:0;overflow:hidden;border-top:0;border-left:4px solid var(--c)}
.cbx-card-h{display:flex;flex-direction:column;gap:3px;padding:8px 10px 7px;border-bottom:1px solid #2b4335;background:#1a2c22}.cbx-card-h b{font-size:13.5px;line-height:1.3;overflow-wrap:anywhere}
.cbx-type{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--c)}
.cbx-card>img{margin:8px 10px 0;width:calc(100% - 20px)}.cbx-card>p{margin:6px 10px 0;font-size:11.5px;line-height:1.4;color:#b8c2b9;white-space:pre-wrap}
.cbx-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;margin:7px 10px 0;font-size:11px}.cbx-facts dt{color:#8d9a92}.cbx-facts dd{margin:0;color:#ecebe3;font-weight:600;overflow-wrap:anywhere}
.cbx-card-f{display:flex;justify-content:space-between;gap:8px;margin-top:8px;padding:6px 10px;border-top:1px solid #2b4335;font-size:10.5px;color:#8d9a92}.cbx-card-f span{display:inline-flex;align-items:center;gap:3px}
.cbx-card.sticky{border-left:0;padding:10px 12px}.cbx-card.sticky b{color:#2a2108}.cbx-card.sticky p{color:#3b3010;margin:6px 0 0}
.cbx-menu{position:absolute;z-index:20;min-width:220px;padding:6px;border-radius:12px;border:1px solid var(--line);background:var(--panel);box-shadow:0 14px 34px rgba(0,0,0,.45);display:grid;gap:1px}
.cbx-menu button{display:flex;align-items:center;gap:10px;padding:8px 10px;border:0;border-radius:8px;background:none;color:var(--ink);font:500 13.5px var(--font);cursor:pointer;text-align:left}.cbx-menu button:hover,.cbx-menu button:focus-visible{background:var(--raise);color:var(--gold)}
.cbx-menu-sep{height:1px;background:var(--line);margin:4px 2px}
.cbx-stage.presenting{position:fixed;inset:0;z-index:900;background:#0b1510}.cbx-stage.presenting .cb-corner,.cbx-stage.presenting .cbx-open{display:none}.cbx-stage.presenting .cb-present-hint{display:block;position:absolute;right:16px;bottom:14px;z-index:9;color:#cfd8cf;background:rgba(17,28,22,.9);padding:6px 10px;border-radius:8px}
@media (max-width:900px){.cbx-wrap{grid-template-columns:minmax(0,1fr);height:calc(100dvh - 260px)}.cbx-side{position:absolute;inset:0 auto 0 0;width:min(290px,86%);z-index:12;box-shadow:var(--shadow)}.cbx-wrap.collapsed .cbx-side{display:none}
  .cbx-btn span{display:none}.cbx-btn{padding:8px 9px}.cbx-tools{margin-left:0;width:100%}.cbx-views{width:100%;display:flex}.cbx-views button{flex:1;justify-content:center}}

/* Casefiles: board of cases,cards,workload */
.cf-viewseg{margin:0}.cf-viewseg button{display:inline-flex;align-items:center;gap:4px}
.cf-columns{display:grid;grid-template-columns:repeat(var(--cf-cols,4),minmax(0,1fr));gap:12px;align-items:start}.cf-columns.many{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
@media (max-width:1100px){.cf-columns:not(.many){grid-template-columns:repeat(min(2,var(--cf-cols,4)),minmax(0,1fr))}}
.cf-col{background:var(--panel2);border:1px solid var(--line);border-radius:var(--r);padding:10px;display:flex;flex-direction:column;gap:10px;min-width:0}.cf-col-h{display:flex;align-items:center;justify-content:space-between}
.cf-card{display:flex;flex-direction:column;gap:6px;margin:0;color:inherit;text-decoration:none;border-left:4px solid var(--line);transition:transform .15s,border-color .15s}.cf-card:hover{transform:translateY(-1px);border-color:var(--gold)}
.cf-card.prio-urgent{border-left-color:var(--bad)}.cf-card.prio-priority{border-left-color:var(--warn)}
.cf-card-top{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.cf-card-t{font-weight:700;line-height:1.3;overflow-wrap:anywhere}.cf-card-lead{display:flex;align-items:center;gap:6px}
.cf-card-flags{display:flex;flex-wrap:wrap;gap:5px}.cf-flag{font-size:11.5px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--mute)}.cf-flag.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 50%,var(--line))}.cf-flag.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 50%,var(--line))}.cf-flag.blue{color:var(--blue)}
.cf-card-f{display:flex;gap:12px;flex-wrap:wrap}.cf-card-f span{display:inline-flex;align-items:center;gap:3px}
.cf-load{height:8px;border-radius:99px;background:var(--line);min-width:90px}.cf-load i{display:block;height:100%;border-radius:99px;background:var(--gold)}
.cf-leadnote{display:flex;gap:10px;align-items:center;margin-top:8px}
@media (max-width:700px){.cf-columns,.cf-columns:not(.many){grid-template-columns:1fr}}

.cf-flow{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:12px 16px}.cf-flow .seb-steps{flex:1 1 360px;margin:0}.cf-flow-acts{display:flex;flex-wrap:wrap;gap:6px}
.cf-todo{display:grid;gap:4px}.cf-todo-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--ink);text-align:left;cursor:pointer;font:inherit}
.cf-todo-row:hover{border-color:var(--gold)}.cf-todo-row i{width:9px;height:9px;border-radius:50%;flex:none;background:var(--mute)}.cf-todo-row.tone-bad i{background:var(--bad)}.cf-todo-row.tone-warn i{background:var(--warn)}.cf-todo-row.tone-blue i{background:var(--blue)}
.cf-todo-row b{display:block;font-size:13.5px}.cf-todo-row small{color:var(--mute)}

.demo-banner{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:6px 18px;background:color-mix(in srgb,var(--gold) 14%,var(--panel));border-bottom:1px solid color-mix(in srgb,var(--gold) 40%,var(--line));font-size:13px;color:var(--ink)}
.demo-banner b{color:var(--gold)}.demo-banner a{margin-left:auto;color:var(--gold);font-weight:600}
.demo-adm{display:grid;gap:14px}.demo-tbls{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.demo-tbls>div{display:flex;flex-direction:column;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}.demo-tbls b{font-size:18px}
@media (max-width:600px){.demo-banner{padding:5px 14px;font-size:12px}}

/* the member picker */
.pp{position:relative;display:grid;gap:6px}.pp-box{display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.pp-box:focus-within{border-color:var(--gold)}
.pp-box .pp-input{flex:1;min-width:0;border:0!important;background:transparent!important;padding:10px 0!important;box-shadow:none!important;outline:0}.pp-face{display:inline-flex;color:var(--mute)}.pp-box>svg{color:var(--mute);flex:none}
.pp-clear{border:0;background:none;color:var(--mute);cursor:pointer;padding:4px;display:inline-flex}.pp-clear:hover{color:var(--ink)}
.pp-list{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 10px 26px rgba(0,0,0,.35)}
.pp-item{display:flex;align-items:center;gap:10px;padding:7px 10px;cursor:pointer}.pp-item.on,.pp-item:hover{background:color-mix(in srgb,var(--gold) 14%,transparent)}.pp-item .avatar{flex:none}
.pp-txt{display:flex;flex-direction:column;min-width:0;flex:1}.pp-txt b{font-size:14px;font-weight:600}.pp-txt small{color:var(--mute);font-size:12px;overflow-wrap:anywhere}
.pp-none,.pp-foot{padding:8px 12px;color:var(--mute);font-size:12px}.pp-foot{border-top:1px solid var(--line);position:sticky;bottom:0;background:var(--panel)}
.pp-chips{display:flex;flex-wrap:wrap;gap:6px}.pp-chips:empty{display:none}.pp-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 4px;border:1px solid var(--line);border-radius:999px;background:var(--panel2);font-size:13px}
.pp-x{border:0;background:none;color:var(--mute);cursor:pointer;display:inline-flex;padding:2px 4px}.pp-x:hover{color:var(--bad)}
.ac-pick{min-width:min(320px,100%)}
/* Internal Affairs */
.ia-flow ol{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;counter-reset:s}
.ia-flow li button{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--mute);cursor:pointer;font:inherit;text-align:left;position:relative}
.ia-flow li button b{font-size:22px;color:var(--ink)}.ia-flow li button.on{border-color:color-mix(in srgb,var(--gold) 55%,var(--line))}.ia-flow li button:hover{border-color:var(--gold)}.ia-flow li button span{font-size:13px}
.ia-next{border-color:color-mix(in srgb,var(--gold) 45%,var(--line))}.ia-next h3{margin:2px 0 4px}.ia-ready{list-style:none;padding:0;margin:8px 0;display:grid;gap:4px}.ia-ready li{display:flex;align-items:flex-start;gap:8px;font-size:13.5px}.ia-ready li.ok svg{color:var(--ok)}.ia-ready li.warn svg{color:var(--warn)}.ia-ready li svg{flex:none;margin-top:3px}
.ia-glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.ia-glance button{display:flex;flex-direction:column;align-items:flex-start;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--mute);font:inherit;cursor:pointer}.ia-glance b{font-size:20px;color:var(--ink)}.ia-glance button:hover{border-color:var(--gold)}
.ia-subject{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}.ia-subject:first-of-type{border-top:0}
.ia-tasks{display:grid;gap:6px}.ia-task{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:9px}.ia-task input{margin-top:4px}.ia-task.done b{text-decoration:line-through;color:var(--mute)}
.ia-dispo{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.ia-dispo-help{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:8px 0}.ia-dispo-help dt{font-weight:600;color:var(--ink)}.ia-dispo-help dd{margin:0}
@media (max-width:600px){.ia-dispo-help{grid-template-columns:1fr}.ia-dispo-help dd{margin-bottom:6px}}
.ia-months{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;align-items:end;height:170px;margin-top:8px}.ia-month{display:flex;flex-direction:column;align-items:center;gap:4px;height:100%}.ia-month-bars{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:4px}
.ia-month-bars i{width:30%;max-width:22px;min-height:2px;border-radius:4px 4px 0 0}.ia-month-bars i.op,.ia-key.op{background:var(--gold)}.ia-month-bars i.cl,.ia-key.cl{background:var(--ok)}.ia-key{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:middle}
.pa-bar.bad i{background:var(--bad)}.pa-bar.warn i{background:var(--warn)}
.pp{grid-template-columns:minmax(0,1fr)}.pp-chip{align-self:start}
/* Tabs always sit on one line: they scroll sideways when there is not room,never wrap to a second row. */
.tabs{flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden;gap:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.tabs::-webkit-scrollbar{display:none}.tabs button{white-space:nowrap;flex:none;padding:8px 12px}

/* The Internal Affairs steps: one row,as many columns as steps. */
.ia-track{grid-template-columns:repeat(6,minmax(0,1fr))!important}.ia-track li b{font-size:13px}
@media (max-width:900px){.ia-track{display:flex!important;overflow-x:auto;gap:14px;scrollbar-width:none}.ia-track li{flex:none}}
.fl-quick{display:flex;flex-wrap:wrap;gap:6px}
.fl-overview,.fl-overview.four{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))!important}
.fl-ov-h{flex-wrap:wrap;row-gap:2px}.fl-ov-h h3{white-space:nowrap}
.fg-list{display:grid;gap:6px;margin-bottom:8px}
.fl-overview.four{grid-template-columns:repeat(4,minmax(0,1fr))!important}@media (max-width:1500px){.fl-overview.four{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media (max-width:700px){.fl-overview.four{grid-template-columns:1fr!important}}

/* notifications */
.nt-pop{width:min(420px,calc(100vw - 24px))!important;padding:0!important;overflow:hidden}
.nt-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}.nt-head b{font-size:15px}.nt-head .linkbtn{margin-left:auto;white-space:nowrap}
.nt-seg button{padding:3px 10px;font-size:12.5px}
.nt-list{max-height:min(460px,65vh);overflow:auto;padding:4px 6px}
.nt-group+.nt-group{margin-top:4px}.nt-gh{padding:8px 8px 4px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.nt{display:flex;align-items:flex-start;gap:10px;padding:9px 8px;border-radius:10px;color:var(--ink);text-decoration:none}.nt:hover,.nt:focus-visible{background:var(--panel2)}
.nt-ic{flex:none;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--mute) 16%,transparent);color:var(--mute)}
.nt-ic.tone-gold{background:color-mix(in srgb,var(--gold) 18%,transparent);color:var(--gold)}.nt-ic.tone-bad{background:color-mix(in srgb,var(--bad) 18%,transparent);color:var(--bad)}
.nt-ic.tone-blue{background:color-mix(in srgb,var(--blue) 18%,transparent);color:var(--blue)}.nt-ic.tone-ok{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.nt-ic.tone-warn{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}
.nt-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.nt-text{font-size:13.5px;line-height:1.35;overflow-wrap:anywhere}.nt.unread .nt-text{font-weight:600}.nt-body small{color:var(--mute);font-size:12px}
.nt-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--gold);margin-top:6px}
.nt-empty{display:flex;align-items:center;gap:8px;justify-content:center;padding:26px 10px;color:var(--mute)}.nt-empty svg{color:var(--ok)}
.nt-pop{display:flex!important;flex-direction:column;max-height:min(560px,calc(100vh - 80px))!important}.nt-pop .nt-list{flex:1;min-height:0;max-height:none}.nt-pop .menu-foot{flex:none}
.pp-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--gold)}
.fg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:14px}.fg-card h3{margin:0}.fg-vs{display:flex;flex-wrap:wrap;gap:6px}
.fg-v{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid var(--line);border-radius:8px;color:var(--ink);text-decoration:none}.fg-v:hover{border-color:var(--gold)}

.acts-label{margin:14px 0 6px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}.acts.left{justify-content:flex-start;flex-wrap:wrap;gap:6px}

/* signing in and choosing a character */

.ch-list{display:grid;gap:8px;margin:12px 0;text-align:left}
.ch-card{display:flex;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);color:var(--ink);font:inherit;cursor:pointer;text-align:left}
.ch-card:hover:not(:disabled){border-color:var(--gold)}.ch-card.on{border-color:var(--gold);box-shadow:inset 3px 0 0 var(--gold)}.ch-card:disabled{opacity:.55;cursor:not-allowed}.ch-card.ghost{cursor:default}
.ch-txt{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.ch-txt b{font-size:15px}.ch-txt span{color:var(--mute);font-size:13px}.ch-now{color:var(--gold);font-weight:600}
.ch-h{margin-top:14px;text-align:left;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}.ch-reqs{list-style:none;padding:0;margin:8px 0;text-align:left;display:grid;gap:6px}.ch-acts{justify-content:center}
.acc-badge{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid var(--line);color:var(--mute);background:transparent;vertical-align:middle;white-space:nowrap}
.acc-badge.administrator{border-color:color-mix(in srgb,var(--gold) 45%,var(--line));color:color-mix(in srgb,var(--gold) 80%,var(--ink))}.acc-badge.contributor{border-color:color-mix(in srgb,var(--blue) 45%,var(--line));color:color-mix(in srgb,var(--blue) 85%,var(--ink))}.acc-badge.sm{font-size:10px;padding:0 6px}
.dc-code{font-size:22px;letter-spacing:.12em;color:var(--gold)}.dc-line{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;min-height:10px}
.dr-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.9fr) minmax(0,1.2fr) auto;gap:8px;align-items:center}
@media (max-width:900px){.dr-row{grid-template-columns:1fr 1fr}.dr-row button{justify-self:end}}
.ch-card>svg:last-child{transform:rotate(-90deg);color:var(--mute);flex:none}
.chk.has-help{flex-wrap:wrap;align-items:flex-start;row-gap:2px}.chk.has-help input{margin-top:3px}.chk-label{flex:1;min-width:0}.chk.has-help>.help{flex:1 0 100%;padding-left:26px;margin:0}
.tbl td.nw{white-space:nowrap}.tbl td.nw .who{white-space:nowrap}.who{display:inline-flex;align-items:center;gap:6px}
.page-msg{display:grid;gap:6px;justify-items:start}.page-msg>svg{color:var(--mute)}
/* Personnel Orders */
.porder{max-width:820px;margin:0 auto}.po-eff{display:flex;flex-direction:column;align-items:flex-end}.po-eff small{color:var(--mute)}.po-title{font-size:20px;font-weight:700;margin:6px 0 4px;letter-spacing:.01em}
.po-lede{font-size:15px;line-height:1.55}.po-conds{padding-left:20px;display:grid;gap:8px}.po-conds li div{color:var(--mute);font-size:13.5px}.po-dist{border-top:1px solid var(--line);padding-top:10px;margin-top:14px}
.porder.revoked{opacity:.75}.porder .stamp{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%) rotate(-12deg)}
.maint-banner{background:color-mix(in srgb,var(--warn) 16%,var(--panel));border-bottom-color:color-mix(in srgb,var(--warn) 45%,var(--line))}.maint-banner b{color:var(--warn)}
.pp-group{top:0;z-index:1;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);background:var(--panel);border-bottom:1px solid var(--line)}
.po-list{margin-bottom:14px}.po-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;color:var(--ink);text-decoration:none;margin-top:6px}.po-row:hover{border-color:var(--gold)}.po-row svg:first-child{color:var(--gold)}.po-row small{display:block;color:var(--mute)}.po-row>svg:last-child{transform:rotate(-90deg);color:var(--mute)}.po-row.revoked{opacity:.6}
.mv-street{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font:600 10px var(--font);letter-spacing:.04em;color:rgba(255,255,255,.88);text-shadow:0 0 2px rgba(0,0,0,.95),0 0 5px rgba(0,0,0,.7)}
.mv-far .mv-street,.mv-mid .mv-street{display:none}
/* character choice: name and rank · unit on one line each; the card grows instead of wrapping */.ch-txt b,.ch-txt span{white-space:nowrap}.ch-now{white-space:nowrap;flex:none}.ch-card{width:100%;gap:14px}
@media (max-width:520px){.ch-txt span{white-space:normal}}

/* Personnel file: summary tiles (icon, value, label, a short line underneath) and the access banner */
.pr-tiles{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:10px;margin-bottom:16px}
.pr-tiles>.pr-tile{flex:none}
.pr-tile{flex-direction:row;align-items:flex-start;gap:11px;padding:13px 14px;min-height:0;font:inherit;transition:border-color .15s,background .15s}
.pr-tile:hover{background:color-mix(in srgb,var(--gold) 5%,var(--panel))}
.pr-tile-ic{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:color-mix(in srgb,var(--gold) 13%,transparent);color:var(--gold)}
.pr-tile-body{display:flex;flex-direction:column;gap:1px;min-width:0}
.pr-tile .pr-tile-body b{font-size:19px;line-height:1.2;white-space:nowrap;letter-spacing:-.01em}
.pr-tile .pr-tile-l{font-size:12.5px;color:var(--mute)}
.pr-tile small{font-size:11.5px;color:var(--mute);opacity:.85;margin-top:3px;white-space:nowrap}
.pr-tile.zero .pr-tile-body b{color:var(--mute)}.pr-tile.zero .pr-tile-ic{background:color-mix(in srgb,var(--mute) 12%,transparent);color:var(--mute)}
.pr-tile.warn .pr-tile-ic{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}.pr-tile.warn small{color:var(--warn);opacity:1}
@media(max-width:640px){.pr-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.pr-tile{padding:11px 12px;gap:9px}.pr-tile-ic{width:28px;height:28px}}
.access-note{align-items:flex-start;gap:12px;padding:12px 16px}
.access-note .an-ic{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:color-mix(in srgb,var(--mute) 12%,transparent)}
.access-note .an-ic svg{margin:0}
.access-note.personnel .an-ic{background:color-mix(in srgb,var(--gold) 13%,transparent)}.access-note.supervisor .an-ic{background:color-mix(in srgb,var(--blue) 13%,transparent)}
.access-note.self .an-ic{background:color-mix(in srgb,var(--ok) 13%,transparent)}.access-note.self svg{color:var(--ok)}.access-note.ia .an-ic{background:color-mix(in srgb,var(--bad) 13%,transparent)}.access-note.ia svg{color:var(--bad)}
.access-note .an-title{display:block;font-size:14px;color:var(--ink)}
.access-note .an-text{margin:2px 0 0;color:var(--mute);font-size:13px;line-height:1.5}
.access-note .access-matrix{margin-top:6px}.access-note .access-matrix summary{font-size:12.5px}

.street-edit{display:grid;gap:6px;max-height:60vh;overflow:auto}.street-row{display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}
.street-row .grow{min-width:0}.street-row b{white-space:nowrap}.street-row small{white-space:nowrap}
@media(max-width:640px){.street-row{flex-wrap:wrap}.street-row .grow{flex-basis:100%}}

/* Starting a report: forms grouped by category */
.fp{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;align-items:start}
.fp-group{background:var(--panel2,var(--panel));border:1px solid var(--line);border-radius:12px;padding:12px}
.fp-head{display:flex;align-items:center;gap:8px;margin:0 2px 10px}.fp-head h3{margin:0;font-size:15px;flex:1}
.fp-list{display:grid;gap:6px}
.fp-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:9px 11px;border:1px solid var(--line);border-left:3px solid color-mix(in srgb,var(--gold) 55%,var(--line));border-radius:9px;background:var(--panel);color:var(--ink);font:600 13.5px var(--font);cursor:pointer;transition:border-color .15s,background .15s}
.fp-item:hover,.fp-item:focus-visible{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 6%,var(--panel))}.fp-item svg{flex:none;color:var(--gold)}

/* Vacancy cards: one surface,the requirements as a light checklist at the foot (no box inside the box) */
.vac2{gap:10px;padding:18px 20px}.vac2-top .pill{flex:none;white-space:nowrap}
.vac2-meta{gap:6px 16px}.vac2-meta span{white-space:nowrap}
.vac2-req{margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}
.vac2-req ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.vac2-req li{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;color:var(--ink)}
.vac2-req li>svg{flex:none;margin-top:2px}
.vac2-req li.ok>svg{color:var(--ok)}.vac2-req li.wait>svg{color:var(--warn)}.vac2-req li.no>svg{color:var(--bad)}
.vac2-req li.ok{color:var(--mute)}
.vac2-req small{color:var(--mute);font-size:12px}
.vac2-req p{margin:0;display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--mute)}.vac2-req p svg{color:var(--ok)}
.vac2-bar{display:block;height:4px;margin-top:6px;border-radius:4px;background:color-mix(in srgb,var(--warn) 18%,transparent);overflow:hidden;max-width:260px}
.vac2-bar i{display:block;height:100%;background:var(--warn);border-radius:4px}

/* Account menu: who you are,then a short list */
.me-menu{min-width:240px;padding:6px}
.me-menu .me-head{display:flex;gap:11px;align-items:center;padding:8px 8px 10px}
.me-menu .me-head b{display:block;font-size:14.5px;line-height:1.25;white-space:nowrap}.me-menu .me-head small{display:block;color:var(--mute);font-size:12.5px;white-space:nowrap}
.me-menu .menu-sep{height:1px;background:var(--line);margin:4px 6px}
.me-menu .menu-item{padding:8px 10px;font-size:14px;gap:11px}.me-menu .menu-item svg{color:var(--mute)}.me-menu .menu-item:hover svg{color:var(--ink)}
.me-menu .menu-theme{padding:6px 10px}
/* Account settings */

/* Character chooser */
.ch-pick{padding:30px 28px 22px!important}
.ch-pick img{width:84px}
.ch-pick .ch-title{font-size:24px;letter-spacing:-.01em;margin:14px 0 4px}
.ch-sub{margin:0;color:var(--ink);font-size:14.5px}.ch-sub b{font-weight:700}
.ch-note{margin:2px 0 18px;color:var(--mute);font-size:13px}
.ch-pick .ch-list{margin:0 0 6px}
.ch-pick .ch-card{background:color-mix(in srgb,var(--ink) 3%,transparent);border-color:transparent}
.ch-pick .ch-card:hover:not(:disabled){border-color:color-mix(in srgb,var(--gold) 50%,var(--line))}
.ch-pick .ch-card.on{border-color:color-mix(in srgb,var(--gold) 60%,var(--line));box-shadow:none;background:color-mix(in srgb,var(--gold) 6%,transparent)}
.ch-now{display:inline-flex;align-items:center;gap:4px;font-size:12.5px}
.ch-new{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;margin:2px 0 14px;padding:10px;border:1px dashed var(--line);border-radius:12px;background:none;color:var(--mute);font:600 13.5px var(--font);cursor:pointer}
.ch-new:hover,.ch-new:focus-visible{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 55%,var(--line))}
.ch-back{display:flex;justify-content:center;width:100%}
.ch-foot{margin:14px 0 0;color:var(--mute)}

/* ---------- Polish: calmer surfaces,no box inside a box ---------- */
/* Dashboard tiles: quiet border; what is waiting shows in gold through the number and the icon chip */
.tile{grid-template-columns:auto 1fr;column-gap:12px;padding:14px 16px;transition:transform .15s,border-color .15s,background .15s}
.tile-ic{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:color-mix(in srgb,var(--mute) 12%,transparent);color:var(--mute)}.tile .tile-ic .ico{color:inherit}
.tile.hot{border-color:var(--line)}.tile.hot .tile-ic{background:color-mix(in srgb,var(--gold) 14%,transparent);color:var(--gold)}
.tile:hover{border-color:color-mix(in srgb,var(--gold) 55%,var(--line));background:color-mix(in srgb,var(--gold) 4%,var(--panel))}
.tile b{font-size:24px}.tile span{font-size:12.5px}
/* Lists inside a card: rows divided by a line,a soft highlight on hover,no border around each row */
.card .po-row,.card .ia-task,.card .arch-person{border:0;border-radius:8px;margin:0;padding:10px 8px;transition:background .12s}
.card .po-row+.po-row,.card .ia-task+.ia-task,.card .arch-person+.arch-person{border-top:1px solid var(--line);border-radius:0}
.card .po-row:hover,.card .arch-person:hover{background:color-mix(in srgb,var(--ink) 4%,transparent);border-color:var(--line)}
.card .arch-list{gap:0}.card .ia-tasks{gap:0}
/* Award cards inside a card: tinted tiles instead of bordered boxes */
.card .aw-card{border-color:transparent;background:color-mix(in srgb,var(--ink) 3.5%,transparent)}
.card .aw-card:hover{border-color:color-mix(in srgb,var(--gold) 50%,var(--line));background:color-mix(in srgb,var(--gold) 5%,transparent)}
/* Panels inside a card: a light tint,no border */
.card .ws,.card .ia-due,.card .pr-logform,.card .cf-charges{border:0;background:color-mix(in srgb,var(--ink) 3.5%,transparent);border-radius:12px}
.card .ws{box-shadow:inset 3px 0 0 var(--mute)}.card .ws.ok{background:color-mix(in srgb,var(--ok) 7%,transparent);box-shadow:inset 3px 0 0 var(--ok)}
.card .ws.warn{background:color-mix(in srgb,var(--warn) 7%,transparent);box-shadow:inset 3px 0 0 var(--warn)}.card .ws.bad{background:color-mix(in srgb,var(--bad) 7%,transparent);box-shadow:inset 3px 0 0 var(--bad)}
.card .cf-charges{padding:8px 14px}
.pr-head .badgecard{border-color:transparent}
/* A card listed inside another card (personnel requests) reads as a section,not a second box */
.card .card.pq{border:0;border-top:1px solid var(--line);border-radius:0;background:none;box-shadow:none;padding:14px 0 4px;margin:0}
.card .card.pq:first-of-type{border-top:0;padding-top:4px}

/* Recommendations on a transfer or a letter of interest */
.rec-block{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.rec-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:6px}.rec-head>span:first-child{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:13.5px;white-space:nowrap}
.rec-head>span:first-child svg{color:var(--gold)}
.rec-list{display:grid}
.rec-row{display:flex;gap:11px;align-items:flex-start;padding:10px 2px}.rec-row+.rec-row{border-top:1px solid var(--line)}
.rec-row .avatar{flex:none}.rec-main{flex:1;min-width:0}
.rec-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.rec-top b{font-size:14px;white-space:nowrap}.rec-top .pill{white-space:nowrap}
.rec-sub{color:var(--mute);font-size:12.5px;margin-top:1px}
.rec-note{margin:6px 0 0;padding:8px 12px;border-radius:10px;background:color-mix(in srgb,var(--ink) 4%,transparent);font-size:13.5px;line-height:1.5;white-space:pre-wrap}
.rec-row.waiting b{color:var(--mute)}
.rec-empty{margin:4px 0 0;color:var(--mute);font-size:13px}
@media(max-width:560px){.rec-head .btn{width:100%;justify-content:center}}

/* One choice from a short list: label on the left,a tag (e.g. the OOC equivalent) aligned on the right */

/* Penal Code: the detail a charge carries */


/* In Character / Out of Character markers */
.prof-intro{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--mute);margin-bottom:4px}

.ic-tag{flex:none;font:700 10.5px var(--font);letter-spacing:.06em;padding:2px 7px;border-radius:6px;background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}

/* Department Structure > Positions: one card per unit */
.pos-groups{display:grid;gap:12px}
.pos-group-head{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);font-size:14px}
.pos-group table td:first-child{width:34%}.pos-group table td:nth-child(2){width:34%}
.scroll.stack .tbl td{width:auto!important}
.pos-grants summary{cursor:pointer;font-size:12.5px;color:var(--mute);white-space:nowrap}.pos-grants[open] summary{margin-bottom:6px}

/* ---------- Messages ---------- */
.msg-shell{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:14px;align-items:stretch;height:calc(100dvh - 220px);min-height:460px}
.msg-side,.msg-main{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);min-height:0;display:flex;flex-direction:column;overflow:hidden}
.msg-side-head{display:grid;gap:8px;padding:12px;border-bottom:1px solid var(--line)}.msg-side-head .fl-search{margin:0}.msg-tabs{width:100%}.msg-tabs button{flex:1;white-space:nowrap}
.msg-list{overflow:auto;flex:1}
.msg-item{display:flex;gap:10px;align-items:center;padding:11px 12px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);transition:background .12s}
.msg-item:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}.msg-item.on{background:color-mix(in srgb,var(--gold) 9%,transparent);box-shadow:inset 3px 0 0 var(--gold)}
.msg-item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.msg-item-top{display:flex;gap:8px;align-items:baseline}.msg-item-top b{flex:1;min-width:0;font-weight:600;font-size:14px;overflow-wrap:anywhere}.msg-item-top time{flex:none;font-size:11.5px;color:var(--mute);white-space:nowrap}
.msg-item.unread .msg-item-top b{font-weight:800}
.msg-item-sub{display:flex;gap:5px;align-items:center;font-size:12.5px;color:var(--mute)}.msg-item-sub>span:last-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.msg-bc{flex:none;color:var(--gold)}.msg-unread{flex:none;position:static}
.msg-faces{flex:none;display:inline-flex}.msg-faces .avatar{border:2px solid var(--panel);box-sizing:content-box}.msg-faces .avatar+.avatar{margin-left:-10px}
.msg-none{padding:24px 16px;color:var(--mute);text-align:center;font-size:13.5px}
.msg-empty{flex:1;display:grid;place-content:center;justify-items:center;gap:10px;color:var(--mute);text-align:center;padding:30px}.msg-empty svg{color:var(--gold);opacity:.8}
.msg-thread{display:flex;flex-direction:column;min-height:0;flex:1}
.msg-head{display:flex;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}.msg-head h2{margin:0;font-size:16.5px;line-height:1.3;overflow-wrap:anywhere}
.msg-head-main{min-width:0}.msg-back{display:none}.msg-back svg{transform:rotate(90deg)}
.msg-who{display:flex;gap:8px;align-items:center;margin-top:4px;padding:0;border:0;background:none;color:var(--mute);font:inherit;font-size:12.5px;cursor:pointer;text-align:left}.msg-who:hover span{color:var(--ink);text-decoration:underline}
.msg-acts{display:flex;gap:6px;flex:none}
.msg-stream{flex:1;overflow:auto;padding:16px 16px 8px;display:flex;flex-direction:column;gap:4px}
.msg-day{display:flex;justify-content:center;margin:10px 0 6px}.msg-day span{font-size:11.5px;color:var(--mute);background:color-mix(in srgb,var(--ink) 5%,transparent);padding:3px 10px;border-radius:999px}
.msg-event{align-self:center;font-size:12px;color:var(--mute);margin:6px 0;text-align:center}
.msg-row{display:flex;gap:8px;align-items:flex-end;max-width:min(78%,640px);margin-top:8px}.msg-row.cont{margin-top:0}.msg-row.mine{align-self:flex-end;flex-direction:row-reverse}
.msg-av-gap{width:32px;flex:none}.msg-row .avatar{flex:none}
.msg-bub{background:color-mix(in srgb,var(--ink) 6%,var(--panel));border-radius:14px 14px 14px 4px;padding:8px 12px 6px;min-width:0}
.msg-row.mine .msg-bub{background:color-mix(in srgb,var(--gold) 16%,var(--panel));border-radius:14px 14px 4px 14px}
.msg-row.cont .msg-bub{border-radius:14px}
.msg-from{font-size:12px;font-weight:700;color:var(--gold);margin-bottom:2px}
.msg-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.5}
.msg-bub time{display:block;text-align:right;font-size:10.5px;color:var(--mute);margin-top:2px}
.msg-seen{align-self:flex-end;font-size:11px;color:var(--mute);margin:2px 4px 0}
.msg-compose{display:flex;gap:8px;align-items:flex-end;padding:10px 12px;border-top:1px solid var(--line)}.msg-compose textarea{flex:1;resize:none;min-height:40px;max-height:220px}
.msg-compose.ro{align-items:center}
.msg-members{display:grid}.msg-member{display:flex;gap:10px;align-items:center;padding:9px 2px}.msg-member+.msg-member{border-top:1px solid var(--line)}.msg-member b{display:block;font-size:14px}.msg-member small{color:var(--mute);font-size:12.5px}.msg-member.left{opacity:.55}
.msg-group{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:8px}
@media(max-width:900px){.msg-shell{grid-template-columns:1fr;height:calc(100dvh - 180px)}.msg-shell.has-thread .msg-side{display:none}.msg-shell:not(.has-thread) .msg-main{display:none}.msg-back{display:inline-grid}.hide-sm{display:none}.msg-row{max-width:88%}.msg-group{grid-template-columns:1fr}}

.dlg.narrow{width:min(440px,100%)}
a.msg-member{color:var(--ink);text-decoration:none;border-radius:10px;padding:9px 8px;margin:0 -6px}a.msg-member:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}

/* Forensic Lab */
.lab-board{grid-template-columns:repeat(5,minmax(200px,1fr))}
.lab-k{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);text-decoration:none;transition:border-color .12s}.lab-k:hover{border-color:var(--gold)}
.lab-k.overdue{box-shadow:inset 3px 0 0 var(--bad)}
.lab-k-top{display:flex;align-items:center;gap:6px;justify-content:space-between}.lab-k-an{font-weight:700;font-size:13px}.lab-k-ex{font-size:12.5px;color:var(--mute);overflow-wrap:anywhere}
.lab-k-foot{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11.5px;color:var(--mute)}
.lab-mine{display:grid;gap:8px}.lab-row{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}.lab-row>svg:last-child{transform:rotate(-90deg);color:var(--mute)}
.lab-pills{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.lab-coc li .muted{font-weight:400}
@media(max-width:1100px){.lab-board{grid-template-columns:repeat(5,minmax(210px,1fr));overflow-x:auto}}

/* County Map: three columns on wide screens (panel, map, places); legend on the map */
.mapx{grid-template-columns:270px minmax(0,1fr)}
@media(min-width:1280px){.mapx{grid-template-columns:270px minmax(0,1fr) 260px}.mapx-places-btn{display:none!important}}
.mapx-head p{display:none}.mapx-head h1{font-size:20px;margin:0 0 10px}
.mapx-sec{margin-top:14px;padding-top:12px}.mapx-sec-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.mapx-sec-h h4{margin:0}
.mapx-sub-sec{margin-top:12px}
.mapx-layers{grid-template-columns:1fr}.mapx-layer{padding:5px 6px;font-size:13.5px}
.mapx-right{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;min-height:0;overflow:hidden}
.mapx-rhead{display:flex;align-items:center;justify-content:space-between}.mapx-rhead b{font-size:15px}.mapx-rclose{display:none}
.mapx-rlist{overflow:auto;flex:1;margin:0 -4px;padding:0 4px}
.mapx-rgroup+.mapx-rgroup{margin-top:10px}.mapx-rgroup h5{display:flex;align-items:center;gap:6px;margin:4px 2px 4px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.mapx-rrow{display:flex;align-items:center;gap:9px;width:100%;padding:7px 6px;border:0;border-radius:8px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.mapx-rrow:hover,.mapx-rrow:focus-visible{background:color-mix(in srgb,var(--ink) 6%,transparent)}
.mapx-rrow b{display:block;font-size:13.5px;font-weight:600;overflow-wrap:anywhere}.mapx-rrow small{display:block;color:var(--mute);font-size:11.5px}
.mapx-rnone{padding:8px 4px}
.mapx-lg-ic{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--c);color:#0b120e;box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 30%,transparent)}
.mapx-places-btn{position:absolute;top:10px;left:10px;z-index:6}
@media(max-width:1279px){.mapx-right{position:absolute;right:10px;top:54px;bottom:10px;width:min(280px,calc(100% - 20px));z-index:7;display:none;box-shadow:var(--shadow);height:auto!important}.mapx.places-open .mapx-right{display:flex}.mapx-rclose{display:inline-grid}.mapx{position:relative}}
@media(max-width:900px){.mapx-places-btn{top:auto;bottom:10px;left:auto;right:10px}}

/* ---------- Penal Code ---------- */

/* Data classification banners: one design for every level (Public, Internal, Restricted, Confidential) */
.cls-banner{gap:6px;padding:12px 16px 12px 18px;border-radius:12px;border:1px solid color-mix(in srgb,currentColor 55%,var(--line));border-left-width:5px;background:color-mix(in srgb,currentColor 5%,var(--panel))}
.cls-banner.cls-public{color:var(--ok)}.cls-banner.cls-public .cls-badge{background:var(--ok);color:#06140c}
.cls-banner .cls-badge{font-size:12px;padding:4px 11px;border-radius:7px}
.cls-banner .cls-what{font-size:14px}
.cls-banner .cls-who b{font-size:13.5px}
.cls-banner .cls-rule{font-size:13px}
.cls-row2{align-items:center}
.cls-row2 .cls-more{margin-left:auto}
.cls-row2 .cls-more[open]{flex:1 1 100%;margin-left:0}
.cls-more summary{color:var(--ink);opacity:.85;font-size:13px}
.cls-more[open] .cls-dd{padding-top:6px;border-top:1px solid color-mix(in srgb,currentColor 25%,var(--line))}
.cls-dd{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:6px 28px;font-size:13px}

/* Personnel Administration,Leave and status: one tidy row per leave,dates on one line,actions on the right */
/* the leave queue: one grid for the whole card, so who, when, the note and the actions line up from row to row */
.lvq{margin-bottom:16px;container-type:inline-size;display:grid;grid-template-columns:minmax(170px,1fr) max-content minmax(0,1.5fr) max-content}.lvq>*{grid-column:1/-1}.lvq-head{display:flex;align-items:center;gap:8px;padding:14px 16px 10px}.lvq-head h3{margin:0}
.lvq-row{display:grid;grid-template-columns:subgrid;align-items:center;gap:6px 18px;padding:11px 16px;border-top:1px solid var(--line)}
.lvq-pair .lvq{grid-template-columns:minmax(0,1fr) max-content max-content}
.lvq-who,.lvq-when,.lvq-note>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.lvq-who a{font-weight:600}.lvq-when b{white-space:nowrap;font-weight:600}
.lvq-row small{color:var(--mute);font-size:12.5px;white-space:nowrap}.lvq-who small{white-space:normal}.lvq-note{font-size:13.5px;min-width:0}.lvq-note span{overflow-wrap:anywhere}
.lvq-act{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}
.lvq-empty{margin:0;padding:12px 16px 16px;color:var(--mute);border-top:1px solid var(--line)}
.lvq-pair{margin-bottom:16px}.lvq-pair .lvq{margin-bottom:0}
/* a narrow card (a phone): who, when, the note, then the actions on their own line */
@container (max-width:470px){.lvq .lvq-row{grid-template-columns:minmax(0,1fr);row-gap:6px}.lvq .lvq-row>*{grid-column:1;grid-row:auto}.lvq-act{justify-content:flex-start;flex-wrap:wrap;white-space:normal;margin-top:2px}.lvq-row small{white-space:normal}}

/* Position picker group headings: wrap onto as many lines as they need and never sit on top of one another */
.pp-group{position:static;line-height:1.35;padding:8px 10px 6px;overflow-wrap:anywhere}

/* Choice lists: no square around the radio when it is picked; keyboard focus shows on the row instead */
input[type=radio]:focus:not(:focus-visible),input[type=checkbox]:focus:not(:focus-visible){outline:none}
input[type=radio]:focus-visible{border-radius:50%;outline-offset:2px}

/* Community Portal Accounts: the privacy request strip at the foot of an account */
.cpa-privacy{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.cpa-privacy>div{flex:1 1 240px;display:flex;flex-direction:column;gap:2px}.cpa-privacy small{color:var(--mute)}

/* Website footer,legal row: the copyright and disclaimer on the left,the Privacy Notice as its own link on the right */.foot .legal-txt{flex-direction:column;gap:3px;min-width:0}
.foot .legal-links{display:flex;flex:none}.foot .legal-links a{display:inline-block;padding:0;white-space:nowrap;text-decoration-color:rgba(200,180,138,.45);text-underline-offset:3px}
.foot .legal-links a:hover{text-decoration-color:currentColor}
@media(max-width:640px){.foot .legal{flex-direction:column;align-items:flex-start}}

/* ---------- Public pages use the full width: a main column,and a side column with what helps next ---------- */
body.pub .page-intro{max-width:none}
.pg-split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}.pg-split.solo{grid-template-columns:minmax(0,1fr)}
.pg-main{min-width:0}.pg-main>*:last-child{margin-bottom:0}
.pg-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:96px}
.pg-side>.note-box{margin:0;background:var(--panel)}
.pg-box{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}
.pg-box>h3{margin:0 0 10px;font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--gold)}
.pg-box p{margin:0 0 8px;font-size:14.5px;line-height:1.55}.pg-box p:last-child{margin-bottom:0}.pg-box .rich p{font-size:14.5px}
.pg-box .btn{margin-top:6px}
@media(max-width:980px){.pg-split{grid-template-columns:minmax(0,1fr)}.pg-side{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}}
@media print{.pg-side{display:none!important}.pg-split{display:block}}
/* side column pieces */
.pg-call{display:flex;flex-direction:column;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--ink) 4%,transparent)}.pg-call+.pg-call{margin-top:8px}
.pg-call small{color:var(--mute);font-size:12.5px}.pg-call b{font-size:24px;font-weight:800;letter-spacing:.02em;line-height:1.2}
.pg-call.sos{background:color-mix(in srgb,var(--bad) 12%,transparent)}.pg-call.sos b{color:var(--bad)}
.pg-ic{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,transparent)}
.pg-wt{flex:1;min-width:0;display:flex;flex-direction:column}.pg-wt b{font-size:14.5px;font-weight:600}.pg-wt small{color:var(--mute);font-size:12.5px}
.pg-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.pg-steps li{display:flex;gap:12px;align-items:flex-start}.pg-steps li>div{display:flex;flex-direction:column;gap:1px}.pg-steps b{font-size:14.5px}.pg-steps span:not(.pg-n){color:var(--mute);font-size:13.5px;line-height:1.45}
.pg-n{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;color:var(--gold);border:1.5px solid color-mix(in srgb,var(--gold) 60%,transparent)}
.pg-links,.pg-toc{display:flex;flex-direction:column;margin:0 -8px}
.pg-links a,.pg-toc a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:14.5px}
.pg-links a:hover,.pg-toc a:hover{background:color-mix(in srgb,var(--gold) 9%,transparent);color:var(--gold)}.pg-links svg{flex:none;color:var(--mute)}
.pg-toc a{border-left:2px solid var(--line);border-radius:0 8px 8px 0;margin-left:8px;padding-left:12px}.pg-toc a:hover{border-left-color:var(--gold)}
/* forms on public pages: a heading inside the card,short fields side by side */
.pub-form{display:grid;grid-template-columns:1fr 1fr;column-gap:16px;padding:22px 24px}.pub-form>*{grid-column:1/-1}.pub-form>.fld.half{grid-column:auto}
.pub-form>.btn{justify-self:start;min-width:160px;margin-top:4px}
.pf-head{margin-bottom:14px}.pf-head h2{margin:0 0 4px;font-size:22px}.pf-head p{margin:0;color:var(--mute);font-size:14.5px;line-height:1.55}
@media(max-width:600px){.pub-form{grid-template-columns:1fr;padding:18px}.pub-form>.fld.half{grid-column:1/-1}.pub-form>.btn{justify-self:stretch}}
.pg-trackrow{display:flex;gap:12px;align-items:flex-end}.pg-trackrow .fld{flex:1;margin:0}.pg-trackrow .btn{flex:none;min-width:120px}
@media(max-width:480px){.pg-trackrow{flex-direction:column;align-items:stretch}}
.pg-result:empty{display:none}.pg-result{margin-top:16px}
/* Contact: every channel at a glance */

/* reading pages: the text keeps a comfortable line length inside the wide column */
.pg-doc h2{scroll-margin-top:110px}.pg-doc .rich{font-size:16.5px;line-height:1.75}
.nw-article .pg-main{max-width:none}
.pg-waysrow{margin-top:34px}.pg-waysrow>h2{font-size:20px;margin:0 0 14px}
.pg-wgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}
.pg-wgrid a{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r);border:1px solid var(--line);background:var(--panel);color:var(--ink);text-decoration:none;transition:border-color .15s,transform .15s}
.pg-wgrid a:hover{border-color:var(--gold);transform:translateY(-2px)}

.pub-form>.btn{justify-content:center;text-align:center}

/* STARS sign-in with GTA World: a gold button in its own panel,a line under it */
.login-gtaw{margin:18px 0 6px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--ink) 3%,transparent)}
.login-gtaw-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border-radius:999px;font-weight:700;font-size:15.5px;text-decoration:none;color:#1b1406;background:linear-gradient(180deg,var(--gold2),var(--gold));box-shadow:0 6px 18px color-mix(in srgb,var(--gold) 28%,transparent);transition:transform .15s,box-shadow .15s}
.login-gtaw-btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px color-mix(in srgb,var(--gold) 36%,transparent);color:#1b1406}
.login-gtaw p{margin:12px 0 0;color:var(--mute);font-size:13.5px;line-height:1.5;text-align:center}
/* Community Portal sign-in: one centered column,as on GTA World's own portals */
.cp-si{min-height:calc(100vh - 140px);display:grid;place-items:center;padding:48px 20px}
.cp-si-in{width:min(560px,100%);display:flex;flex-direction:column;align-items:center;text-align:center}
.cp-si-logo{width:132px;height:132px;object-fit:contain;filter:drop-shadow(0 8px 26px color-mix(in srgb,var(--gold) 30%,transparent));margin-bottom:22px}
.cp-si h1{margin:0 0 10px;font-size:clamp(30px,5vw,40px);font-weight:800;letter-spacing:-.01em}
.cp-si-lede{margin:0 0 28px;color:var(--mute);font-size:17px;line-height:1.6;max-width:520px}
.cp-si-btn{display:inline-flex;align-items:center;justify-content:center;min-width:260px;padding:16px 34px;border-radius:10px;background:var(--brand);color:#fff;font-weight:700;font-size:17px;text-decoration:none;transition:transform .15s,filter .15s}
.cp-si-btn:hover{transform:translateY(-1px);filter:brightness(1.12);color:#fff}
:root:not([data-theme=light]) .cp-si-btn{background:linear-gradient(180deg,var(--gold2),var(--gold));color:#1b1406}:root:not([data-theme=light]) .cp-si-btn:hover{color:#1b1406}
.cp-si-back{margin-top:30px;color:var(--mute);font-size:15px;text-decoration:underline;text-underline-offset:4px;text-decoration-color:color-mix(in srgb,var(--mute) 50%,transparent)}.cp-si-back:hover{color:var(--ink)}
.cp-si-chars{display:flex;flex-direction:column;gap:10px;width:min(420px,100%)}
.cp-si-chars button{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;cursor:pointer;text-align:left;transition:border-color .15s,transform .15s}
.cp-si-chars button:hover{border-color:var(--gold);transform:translateY(-1px)}.cp-si-chars b{flex:1;font-size:15.5px}.cp-si-chars svg{color:var(--mute)}
.login-gtaw-btn{white-space:nowrap;padding:13px 14px}.login-gtaw{padding:16px}@media(max-width:420px){.login-gtaw{padding:12px;margin-left:-6px;margin-right:-6px}.login-gtaw-btn{font-size:15px;gap:8px}}

/* ---------- Recruitment pages: the hero,the jump bar,the apply box ---------- */
.jh{position:relative;overflow:hidden;color:#fff;border-bottom:3px solid var(--gold);background:radial-gradient(900px 420px at 88% 10%,rgba(220,187,106,.18),transparent 65%),linear-gradient(135deg,var(--brand),#0c2116)}
.jh-in{max-width:1180px;margin:0 auto;padding:42px 20px 40px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:center}
.jh .crumb{font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold2);margin-bottom:10px}.jh .crumb a{color:var(--gold2);text-decoration:none}
.jh h1{margin:0 0 12px;font-size:clamp(32px,5vw,50px);line-height:1.08;font-weight:800;letter-spacing:-.015em}
.jh-lede{margin:0 0 20px;font-size:18px;line-height:1.6;color:rgba(255,255,255,.82);max-width:640px}
@keyframes jhpulse{70%{box-shadow:0 0 0 10px rgba(78,194,138,0)}100%{box-shadow:0 0 0 0 rgba(78,194,138,0)}}
.jh-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.jh-ctas .btn{padding:12px 22px;font-size:15.5px;white-space:nowrap}
body.pub .jh .btn.gold{background:linear-gradient(180deg,var(--gold2),var(--gold));color:#1b1406}body.pub .jh .btn.gold:hover{color:#1b1406;filter:brightness(1.05)}
body.pub .btn.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35)}body.pub .btn.ghost:hover{border-color:var(--gold2);color:var(--gold2)}
.jh-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;margin:0;border-radius:12px;overflow:hidden;background:rgba(255,255,255,.12);max-width:720px}
.jh-facts>div{background:rgba(9,22,15,.55);padding:10px 14px}.jh-facts dt{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.62)}.jh-facts dd{margin:2px 0 0;font-weight:700;font-size:15px}
.jh-art{display:flex;flex-direction:column;align-items:center;gap:20px}.jh-art img{width:220px;height:220px;object-fit:contain;filter:drop-shadow(0 14px 40px rgba(0,0,0,.45)) drop-shadow(0 0 30px rgba(220,187,106,.25))}
.jh-stats{display:flex;gap:18px;justify-content:center}.jh-stats div{display:flex;flex-direction:column;align-items:center}.jh-stats b{font-size:26px;color:var(--gold2);line-height:1.1}.jh-stats span{font-size:12px;color:rgba(255,255,255,.7);white-space:nowrap}
@media(max-width:900px){.jh-in{grid-template-columns:1fr;gap:24px;padding:32px 20px}.jh-art{flex-direction:row;justify-content:flex-start}.jh-art img{display:none}.jh-stats{justify-content:flex-start;gap:26px}}
@media(max-width:520px){.jh-lede{font-size:16px}.jh-ctas .btn{flex:1 1 100%;justify-content:center}}

.jbar-in{max-width:1180px;margin:0 auto;display:flex;overflow-x:auto}.jbar-in::-webkit-scrollbar{display:none}
.jbar button{flex:none;background:none;border:0;cursor:pointer;white-space:nowrap}
[data-jump]{scroll-margin-top:130px}
.join-faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:34px;align-items:start}.join-faq .faq details{background:var(--panel)}
@media(max-width:860px){.join-faq{grid-template-columns:1fr;gap:16px}}
.apply-box>.btn{display:flex;justify-content:center;margin:0 0 10px}
/* ---------- Command Staff: the introduction and section headings ---------- */
.lead-intro{max-width:none;margin-bottom:8px;padding:20px 22px;border-left:4px solid var(--gold);background:var(--panel);border-radius:0 var(--r) var(--r) 0}.lead-intro .rich h2{margin-top:0;font-size:20px}.lead-intro .rich p:last-child{margin-bottom:0}
.lead-sect{margin-top:34px}.lead-head{margin-bottom:16px}.lead-head .sec-sub{margin:4px 0 0}
.jh-in>*{min-width:0}@media(max-width:900px){.jh-in{grid-template-columns:minmax(0,1fr)}}
:root body.pub .jh .btn.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35)}:root body.pub .jh .btn.ghost:hover{border-color:var(--gold2);color:var(--gold2)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) body.pub .jh .btn.ghost{background:transparent;color:#fff}}
@media(max-width:800px){.tracks,.join-req,.academy{grid-template-columns:minmax(0,1fr)}}.join-req>*,.academy>*,.tracks>*{min-width:0}
/* Dashboard greeting: the rank insignia never squeezes the name; on narrow screens it sits above it */
.hello{flex-wrap:wrap;row-gap:10px}.hello>div{min-width:0;flex:1 1 240px}.hello .insig.lg{flex:none;height:auto;max-height:46px;max-width:min(260px,70vw);object-fit:contain}
.hello h1{overflow-wrap:anywhere}@media(max-width:520px){.hello .insig.lg{max-height:34px}}
.cal-agenda{grid-template-columns:minmax(0,1fr)}.cal-agenda>*{min-width:0}.cal-row>span,.cal-row>b{min-width:0;overflow-wrap:anywhere}

/* ---------- Join the Team overview: the two careers side by side{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}
.careers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:stretch}
.career{display:flex;flex-direction:column;gap:16px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px;border-top:4px solid var(--gold);scroll-margin-top:120px}
.career.civ{border-top-color:#6aa3ff}
.career-lede{margin:0;font-size:16px;line-height:1.65;color:var(--mute)}
.career-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:1px;margin:0;border-radius:12px;overflow:hidden;background:var(--line);border:1px solid var(--line)}
.career-facts>div{background:var(--panel);padding:9px 12px}.career-facts dt{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--mute)}.career-facts dd{margin:2px 0 0;font-weight:700;font-size:14.5px}
.career-part h3{margin:0 0 8px;font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--mute)}
.career-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.career-list li{display:flex;gap:9px;align-items:flex-start;font-size:14.5px;line-height:1.5}.career-list svg{flex:none;color:var(--ok);margin-top:2px}
.career-roles{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.career-roles a{display:flex;flex-direction:column;padding:10px 12px;border-radius:10px;border:1px solid var(--line);color:var(--ink);text-decoration:none}.career-roles a:hover{border-color:#6aa3ff}.career-roles small{color:var(--mute)}
.career-more{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:14px;font-weight:600}
.career-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:6px}.career-acts .btn{white-space:nowrap}
@media(max-width:900px){.careers{grid-template-columns:minmax(0,1fr)}.career{padding:20px}}
.join-faqall{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.6fr);gap:34px;align-items:start}.jf-side{position:sticky;top:110px}.jf-main>.sect:first-child{margin-top:0}.jf-main .faq details{background:var(--panel)}
@media(max-width:900px){.join-faqall{grid-template-columns:minmax(0,1fr);gap:12px}.jf-side{position:static}}
.start-acts{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
:root[data-theme=light] .career.civ{border-top-color:#2c62c4}

/* Join the Team,plainer: no icon tiles or coloured bars; a status line,a facts table and ordinary lists */
.career{border-top:1px solid var(--line);border-radius:8px;padding:28px 30px}
.career>header{padding-bottom:14px;border-bottom:1px solid var(--line)}.career>header small{display:block;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:4px}.career>header h2{margin:0;font-size:30px}
.rstatus{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 0;margin:0;font-size:15px;line-height:1.5}.rstatus>i{flex:none;width:8px;height:8px;border-radius:50%;background:var(--mute);margin-right:9px;transform:translateY(-1px)}
.rstatus.on>i{background:var(--ok)}.rstatus>span{color:var(--mute)}.rstatus>span::before{content:'·';margin:0 7px}
.jh .rstatus{color:#fff}.jh .rstatus>span{color:rgba(255,255,255,.72)}.jh .rstatus.on>i{background:#4ec28a}
.career-facts{display:block;background:none;border:0;border-top:1px solid var(--line);border-radius:0}
.career-facts>div{display:grid;grid-template-columns:minmax(150px,40%) minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--line);background:none}
.career-facts dt{font-size:14px;letter-spacing:0;text-transform:none;color:var(--mute);white-space:nowrap}.career-facts dd{margin:0;font-size:14.5px}
.career-part h3{font-size:15px;letter-spacing:0;text-transform:none;color:var(--ink);margin-bottom:6px}
.career-list{padding-left:20px}.career-list li{display:list-item;font-size:15px}.career-list li::marker{color:var(--gold)}
.career-roles{gap:0;border-top:1px solid var(--line)}.career-roles li{display:flex;flex-direction:column;border-bottom:1px solid var(--line)}.career-roles li>a{font-weight:600;color:var(--ink);text-decoration:none}.career-roles li>a:hover{color:var(--gold);text-decoration:underline}.career-roles li>span{font-size:13.5px;color:var(--mute)}
.career-more{font-weight:600;text-decoration:underline;text-underline-offset:3px}
@media(max-width:520px){.career{padding:20px}.career>header h2{font-size:25px}}
.nw-ref{margin:22px 0 0;font-style:italic;color:var(--mute);font-size:14.5px}.nw-ref span{font-style:normal;font-weight:600;letter-spacing:.02em}
/* Community Portal sign-in card with GTA World: one clear button */
.cp-auth-h{margin:0 0 6px;font-size:22px}.cp-gtaw{display:flex;justify-content:center;width:100%;margin:16px 0 4px;padding:13px 18px;font-size:16px;font-weight:700}
.cp-legacy{margin-top:14px}.cp-legacy>summary{cursor:pointer;color:var(--mute);font-size:13.5px}.cp-legacy[open]>summary{margin-bottom:12px}
/* Community Portal hero: the star sits still,a little in from the right edge */@media(max-width:560px){.cp-hero-star{margin-right:0}}
.cp-hero .in{position:relative}.cp-hero-star{animation:none;width:220px;flex:none;margin-right:clamp(0px,6vw,90px);filter:drop-shadow(0 16px 34px rgba(0,0,0,.5)) drop-shadow(0 0 42px rgba(214,178,94,.28))}
@media(max-width:900px){.cp-hero-star{width:150px;margin-right:0}}@media(max-width:560px){.cp-hero-star{width:96px}}

/* News categories: one label style for every category,readable on any picture; only a small colour mark tells them apart */
.nw-cat,.nr-cat{display:inline-flex;align-items:center;gap:7px;padding:4px 10px 4px 9px;border-radius:6px;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.3;
  background:color-mix(in srgb,var(--ink) 7%,var(--panel));color:var(--ink);border:1px solid var(--line)}
.nw-cat::before,.nr-cat::before{content:'';flex:none;width:8px;height:8px;border-radius:2px;background:var(--gold)}
.nw-img .nw-cat{background:rgba(8,16,12,.84);color:#fff;border-color:rgba(255,255,255,.16);backdrop-filter:blur(4px)}
.nw-cat.c-alert,.nr-cat.c-alert,.nw-cat.c-arrests,.nr-cat.c-arrests,.nw-cat.c-community,.nr-cat.c-community,.nw-cat.c-traffic,.nr-cat.c-traffic,.nw-cat.c-recruitment,.nr-cat.c-recruitment,.nw-cat.c-events,.nr-cat.c-events,.nw-cat.c-awards,.nr-cat.c-awards,.nw-cat.c-operations,.nr-cat.c-operations{background:color-mix(in srgb,var(--ink) 7%,var(--panel));color:var(--ink)}
.nw-img .nw-cat[class*=c-]{background:rgba(8,16,12,.84);color:#fff}
.c-alert::before{background:var(--bad)!important}.c-arrests::before{background:#e07b39!important}.c-community::before{background:var(--ok)!important}.c-traffic::before{background:var(--warn)!important}
.c-recruitment::before{background:var(--blue)!important}.c-events::before{background:#3fb7a5!important}.c-awards::before{background:var(--gold2)!important}.c-operations::before{background:#9fb0c0!important}.c-press::before{background:var(--gold)!important}

/* ---------- Feedback: a button in the corner of every page,and the "Send feedback" dialog ---------- */
.fb-btn{position:fixed;right:20px;bottom:20px;z-index:60;display:inline-flex;align-items:center;gap:8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));background:var(--panel);color:var(--gold);font:600 14px var(--font);cursor:pointer}
.fb-btn:hover{background:var(--gold);color:#14211a;border-color:var(--gold)}.fb-btn[hidden]{display:none}
.fb-ov{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:16px;background:rgba(4,10,7,.6);backdrop-filter:blur(2px)}.fb-ov[hidden]{display:none}
.fb-dlg{max-height:calc(100vh - 32px);overflow:auto;background:var(--panel);color:var(--ink);border:1px solid var(--line);box-shadow:0 20px 60px rgba(0,0,0,.45);font-family:var(--font)}
.fb-sub{color:var(--mute)}
.fb-dlg textarea{width:100%;box-sizing:border-box;padding:11px 12px;color:var(--ink);font:15px/1.5 var(--font)}

.fb-row{display:flex;align-items:center;flex-wrap:wrap;margin:12px 0 0}
.fb-cap{display:inline-flex;align-items:center;background:none;font:600 14px var(--font);cursor:pointer}
.fb-link{background:none;border:0;padding:0;color:var(--mute);font:13.5px var(--font);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.fb-link:hover{color:var(--ink)}
.fb-shot{align-items:center;gap:12px}.fb-shot[hidden]{display:none}.fb-shot img{width:120px;height:72px;object-fit:cover;object-position:top;border-radius:8px;border:1px solid var(--line)}
.fb-err{margin:10px 0 0;color:var(--bad);font-size:14px}.fb-err:empty{display:none}
.fb-acts{display:flex;justify-content:flex-end}
.fb-cancel{background:none;border:0;font:600 15px var(--font);cursor:pointer}
.fb-send{border:0;font:700 15px var(--font);cursor:pointer}.fb-send:disabled{opacity:.6;cursor:wait}
@media(max-width:600px){.fb-btn{right:12px;bottom:12px;padding:11px}.fb-btn span{display:none}}
@media print{.fb-btn,.fb-ov{display:none!important}}
/* STARS: the Feedback inbox */

.fbi{display:grid;grid-template-columns:200px minmax(0,1fr);gap:16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.fbi.done{opacity:.8}

.fbi-full{display:block;max-width:100%;border-radius:8px}
@media(max-width:640px){.fbi{grid-template-columns:1fr}}
/* Join the Team panels: even spacing between the parts; open roles as plain rows */
.career{gap:22px}.career-lede{margin-bottom:-4px}.career-part h3{margin:0 0 10px}.career-list{list-style:disc;gap:6px}
.career-roles li{padding:11px 0;gap:2px}.career-roles li>a{display:inline;padding:0;border:0;border-radius:0;background:none;font-size:15.5px}
.career-acts{padding-top:10px}
.check+.btn,.check+.acts,.check+.bar{margin-top:12px}

/* Footer: one line,as on the LSPD site */
.foot .legal{display:flex;align-items:center;justify-content:space-between;gap:10px 24px;flex-wrap:wrap;font-size:13px}
.foot .legal-txt{display:block;opacity:.85}.foot .legal-links{gap:22px}.foot .legal-links a{text-decoration:none;opacity:.85}.foot .legal-links a:hover{opacity:1;text-decoration:underline;text-underline-offset:3px}
@media(max-width:640px){.foot .legal{flex-direction:column;align-items:flex-start}}
/* Feedback screenshot: a large preview with Retake and Remove under it */
.fb-shot{display:block;margin-top:12px}.fb-shot-img{overflow:auto;border:1px solid var(--line);background:var(--bg2)}
.fb-shot-img img{display:block;width:100%;height:auto;border-radius:6px}.fb-shot-acts{display:flex}.fb-shot-acts .fb-link{font-weight:600;color:var(--ink);text-decoration:none}.fb-shot-acts .fb-link:hover{color:var(--gold)}
/* Menus,compact as on the LSPD site: featured pages with an icon on the left,the rest as plain links in two columns */
.mega-in{grid-template-columns:300px 1fr}
.mega-feat{background:none;padding:26px 26px 26px 20px;gap:4px;justify-content:flex-start}
.mega-feat a.mf{display:flex;grid-template-columns:none;gap:14px;align-items:center;padding:8px 10px;margin:0 -10px;border-radius:10px;font-size:15px}
.mega-feat a.mf b{font-weight:600}.mega-feat .mf-ic{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;flex:none;border:1.5px solid color-mix(in srgb,var(--gold) 70%,transparent);color:var(--gold);background:none}
.mega-feat a.mf:hover .mf-ic{background:var(--gold);color:#14211a}
.mega-links{columns:2;column-gap:40px;padding:26px 30px 26px 34px}
.mega-links a{display:block;padding:7px 0;margin:0;border-radius:0;color:var(--mute);font-size:15px;font-weight:500;background:none}
.mega-links a:hover{background:none;color:var(--gold)}
@media(max-width:900px){.mega-feat{padding:6px 0}.mega-links{columns:1;padding:4px 0 8px}}

/* ---------- Home page,laid out like the LSPD's: motto,the stories beside the Sheriff,quick links,newsroom{padding-top:26px;padding-bottom:20px}
.foot .legal{padding-bottom:62px}body.cp .foot .legal{padding-bottom:62px}

/* The front page and the menus as they were (restored) */
.util .in,.mission .in,.pub-head .in,.foot .in,.statsband .in{max-width:1180px;margin:0 auto;padding:0 20px}
.feature{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:18px;margin-bottom:28px}
.quicklinks .qi{width:52px;height:52px;border-radius:50%;background:var(--brand);color:var(--on-brand);display:flex;align-items:center;justify-content:center}
.quicklinks a:hover .qi{background:var(--gold);color:var(--brand2)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;border-bottom:2px solid var(--brand);margin-bottom:14px;padding-bottom:6px}
.sec-head h2{margin:0;font-size:22px;text-transform:uppercase;letter-spacing:.06em;font-family:var(--font);font-weight:800}
.sec-head a{font-size:14px}
.newsrow{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.newsrow img,.newsrow .thumb{width:120px;height:80px;object-fit:cover;border-radius:8px;flex-shrink:0;background:linear-gradient(135deg,var(--brand),#173d2a);display:flex;align-items:center;justify-content:center}
.newsrow .thumb img{width:34px;height:auto;opacity:.7}
.newsrow h3{margin:0 0 4px;font-size:17px}
.newsrow:hover h3{color:var(--gold)}
.newsrow p{margin:0;color:var(--mute);font-size:14px}
.newsrow time{font-size:12px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}
.mini-wanted{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.mini-wanted img,.mini-wanted .nophoto{width:48px;height:48px;border-radius:6px;object-fit:cover;background:#d8ccb0;color:#6b5f45;display:flex;align-items:center;justify-content:center;font-weight:700}
.promo{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px;margin-bottom:34px}
.promo a{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:220px;border-radius:var(--r);overflow:hidden;color:#fff;text-decoration:none;padding:22px;background:linear-gradient(135deg,#1d4a33,#0d2318)}
.promo a img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;transition:opacity .2s,transform .3s}
.promo a:hover img{opacity:.5;transform:scale(1.03)}
.promo a img.badge-art{inset:auto 22px auto auto;top:50%;width:130px;height:auto;object-fit:contain;transform:translateY(-60%);opacity:.45}
.promo a:hover img.badge-art{transform:translateY(-60%) scale(1.04);opacity:.6}
.promo h3{position:relative;color:#fff;font-size:24px;margin:0 0 6px}
.promo p{position:relative;margin:0 0 10px;color:#e3e9e2}
.promo span{position:relative;color:var(--on-brand);font-weight:700}
.mission-band{display:flex;gap:20px;align-items:center;background:var(--panel);border:1px solid var(--line);border-left:5px solid var(--gold);border-radius:var(--r);padding:22px 24px;margin-bottom:34px}
.mission-band img{width:70px;flex-shrink:0}
.mission-band small{color:var(--gold);text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:12px}
.mission-band p{font:italic 18px/1.55 var(--font);margin:4px 0 8px}
.mission-band b{color:var(--brand);font-size:14px}
:root:not([data-theme=light]) .mission-band b{color:var(--gold2)}
@media(max-width:600px){.mission-band{flex-direction:column;text-align:center}}
.statsband{background:var(--brand);color:var(--brand-ink);padding:26px 0}
.statsband .in{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;text-align:center}
.statsband b{display:block;font:800 34px var(--font);color:var(--on-brand)}
.statsband span{font-size:12.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--khaki)}
@media(max-width:980px){.feature,.two{grid-template-columns:minmax(0,1fr)}}

:root[data-theme=dark] .quicklinks .qi{background:transparent;border:2px solid var(--gold);color:var(--gold)}
:root[data-theme=dark] .quicklinks a:hover .qi{background:var(--gold);color:#0b130f}
:root[data-theme=dark] .sec-head{border-bottom-color:var(--gold)}
:root[data-theme=dark] .statsband{background:linear-gradient(180deg,#143726,#0f2a1d);border-top:1px solid rgba(220,187,106,.25);border-bottom:1px solid rgba(220,187,106,.25)}
.mega-kicker{font:800 12px var(--font);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.mega-blurb{margin:4px 0 14px;color:var(--mute);font-size:14px;line-height:1.5}
.mf-t b{display:block;font-weight:700}
.mf-t small{display:block;color:var(--mute);font-size:12.5px;line-height:1.35;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mega-intro{margin-bottom:4px}
/* ---------- menu landing link ---------- */
.mega-all{display:inline-flex!important;gap:6px;align-items:center;font:700 13px var(--font)!important;letter-spacing:.02em;text-decoration:none;color:var(--brand)!important;margin:2px 0 10px}
.mega-all:hover{text-decoration:underline}
:root[data-theme=dark] .mega-all{color:var(--gold2)!important}
.mega-links a small,.mega-feat .mf-t small{white-space:normal;overflow:visible;text-overflow:clip}

.fb-bar{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:1100;display:flex;align-items:center;gap:12px;padding:10px 12px 10px 18px;border-radius:999px;background:var(--panel);border:1px solid var(--line);box-shadow:0 12px 32px rgba(0,0,0,.4);font:14px var(--font);color:var(--ink);white-space:nowrap}
.fb-bar[hidden]{display:none}.fb-bar .fb-send{padding:8px 16px;font-size:14px}.fb-bar .fb-cancel{font-size:14px;padding:8px 6px}
@media(max-width:520px){.fb-bar>span{display:none}}
/* Feedback dialog,quieter: smaller type,light controls,one accent for the Send button only */
.fb-dlg{border-radius:12px}
.fb-dlg h2{font-weight:700}
.fb-dlg textarea{background:color-mix(in srgb,var(--ink) 3%,var(--panel))}
.fb-row{gap:12px}.fb-cap{gap:6px}.fb-cap svg{width:15px;height:15px}
.fb-link{font-size:13px}
.fb-acts{gap:6px}.fb-cancel{font-weight:600;color:var(--mute);padding:7px 10px}.fb-cancel:hover{color:var(--ink)}
.fb-send{color:#1b1406}
.fb-shot-img{max-height:200px;padding:6px;border-radius:8px}.fb-shot-acts{gap:18px;margin-top:8px}.fb-shot-acts .fb-link{font-size:13px}
.fb-btn{padding:8px 14px;font-size:13.5px;box-shadow:0 6px 18px rgba(0,0,0,.25)}

/* Complaint About a Member: the process on the page,the complaint itself in the Community Portal */
.pg-signin{padding:22px 24px}.pg-signin h2{margin:0 0 6px;font-size:22px}.pg-signin p{margin:0 0 16px;color:var(--mute);line-height:1.6}
.pg-signin-acts{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}.pg-signin-more{font-weight:600;font-size:14.5px}

/* Feedback dialog, as in the DRDB: title, one line, the text box, an outlined screenshot button, Cancel and Send */
.fb-dlg{width:min(400px,100%);padding:18px 20px 16px}.fb-dlg h2{font-size:16px;margin:0 0 2px}.fb-sub{font-size:13px;line-height:1.45;margin:0 0 12px}
.fb-dlg textarea{font-size:14px;border:1px solid color-mix(in srgb,var(--gold) 55%,var(--line));border-radius:8px}
.fb-dlg textarea:focus{outline:2px solid color-mix(in srgb,var(--gold) 45%,transparent);outline-offset:0}
.fb-row{margin-top:12px}.fb-cap{padding:7px 14px;border:1px solid color-mix(in srgb,var(--gold) 40%,var(--line));border-radius:999px;color:var(--gold);font-size:13px;font-weight:700}
.fb-cap:hover{border-color:var(--gold);color:var(--gold)}.fb-link[hidden]{display:none}
.fb-acts{margin-top:14px;align-items:center}.fb-cancel{font-size:13.5px}.fb-send{padding:7px 18px;font-size:13.5px;border-radius:999px;background:linear-gradient(180deg,var(--gold2),var(--gold))}
.fb-dlg textarea{resize:vertical;min-height:88px;border-color:color-mix(in srgb,var(--gold) 75%,transparent)}

/* ---------- Contact Us ---------- */
.cu-strip{background:#b3261e;color:#fff}.cu-strip-in{max-width:1180px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px}
.cu-sos{display:inline-flex;align-items:center;gap:8px;font-weight:700;border-right:1px solid rgba(255,255,255,.35)}.cu-sos b{font-weight:800;letter-spacing:.02em}
.cu-strip-t a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.cu-sec{padding:44px 0 6px}.cu-head{margin-bottom:22px}.cu-head h2{margin:0;font-size:26px}.cu-head p{margin:4px 0 0;color:var(--mute)}.cu-rule{display:block;width:40px;height:3px;background:var(--gold);border-radius:2px;margin-top:12px}
.cu-keys{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.cu-key{display:flex;flex-direction:column;gap:4px;padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);text-decoration:none}
.cu-key small{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}.cu-key b{font-size:22px;font-weight:800;line-height:1.25}.cu-key p{margin:6px 0 0;color:var(--mute);font-size:14.5px;line-height:1.55}
.cu-key:first-child b{color:var(--bad)}a.cu-key:hover{border-color:color-mix(in srgb,var(--gold) 55%,var(--line))}a.cu-key:hover b{color:var(--gold)}
.cu-stations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.cu-st{padding:18px 20px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.cu-st h3{margin:0 0 10px}
.cu-st ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.cu-st li{display:flex;gap:10px;align-items:flex-start;color:var(--mute)}.cu-st li svg{flex:none;margin-top:2px}.cu-st p{margin:0}
.cu-table{border:1px solid var(--line);border-radius:10px;overflow:auto;background:var(--panel)}.cu-table table{width:100%;border-collapse:collapse;min-width:520px}
.cu-table th{text-align:left;padding:12px 18px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;background:color-mix(in srgb,var(--brand) 70%,var(--panel));color:#fff}
.cu-table td{padding:13px 18px;border-top:1px solid var(--line);font-size:14.5px;color:var(--mute)}.cu-table td b{color:var(--ink);font-weight:600}.cu-table td a{color:var(--ink)}
.cu .cu-sec:last-child{padding-bottom:20px}
@media(max-width:980px){.cu-keys{grid-template-columns:repeat(2,minmax(0,1fr))}.cu-stations{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.cu-keys,.cu-stations{grid-template-columns:1fr}.cu-sos{border-right:0;padding-right:0}}

/* STARS > Website Pages: the preview window */
.site-pv-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.site-pv-bar .btn.on{border-color:var(--gold);color:var(--gold)}
.site-pv{--pvw:100%;display:flex;justify-content:center;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:10px;height:min(72vh,820px)}
.site-pv-frame{width:var(--pvw);max-width:100%;height:100%;border:0;border-radius:6px;background:#fff}
/* the website in preview mode: a small flag, no feedback button */
.pv-flag{position:fixed;left:12px;bottom:12px;z-index:2000;padding:6px 12px;border-radius:999px;background:var(--gold);color:#1b1406;font:700 12px var(--font);letter-spacing:.06em;text-transform:uppercase;box-shadow:0 6px 18px rgba(0,0,0,.3)}
body.pv-mode .fb-btn{display:none}
.cu-intro{margin:34px 0 -14px}
.site-pv-bar>span{flex:1 1 100%}@media(min-width:760px){.site-pv-bar>span{flex:1 1 auto}}
/* hero status line: the same breathing room above the buttons as the text above it */
.jh .rstatus{margin:0 0 24px}.jh-lede{margin-bottom:18px}
.apply-box .rstatus{margin:0 0 12px}.career .rstatus{margin:0}
@media(max-width:560px){.rstatus>span{display:block;flex-basis:100%;padding-left:17px}.rstatus>span::before{content:none}}

/* The bar of a recruitment page: under the header while you scroll, the part you are reading marked in gold */
.jbar{position:sticky;top:var(--hh,0px);z-index:25;background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);box-shadow:0 6px 18px rgba(0,0,0,.12)}
.jbar-in{scrollbar-width:none;gap:4px;justify-content:center;padding:0 16px}
.jbar button{position:relative;padding:15px 16px;border-bottom:0;font:600 14.5px var(--font);letter-spacing:.01em;color:var(--mute)}
.jbar button::after{content:'';position:absolute;left:16px;right:16px;bottom:0;height:2px;border-radius:2px;background:var(--gold);transform:scaleX(0);transition:transform .2s}
.jbar button:hover{color:var(--ink);border-bottom-color:transparent}.jbar button.on{color:var(--ink)}.jbar button.on::after{transform:scaleX(1)}
@media(max-width:700px){.jbar-in{justify-content:flex-start}.jbar button{padding:13px 12px;font-size:14px}.jbar button::after{left:12px;right:12px}}
.cp-actions.six{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:900px){.cp-actions.six{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.cp-actions.six{grid-template-columns:1fr}}

/* Community Programs: plain cards with a small icon, and a call to action under them */
.programs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.program{padding:22px 22px 20px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}
.program-ic{width:36px;height:36px;border-radius:6px;display:grid;place-items:center;margin-bottom:16px;color:var(--gold);background:color-mix(in srgb,var(--ink) 6%,transparent)}
.program h3{margin:0 0 8px;font-size:17px}.program .rich p{margin:0;font-size:14.5px;line-height:1.6;color:var(--mute)}
.prog-cta{background:var(--brand2,#0c2116);border-top:1px solid var(--line);color:#fff;text-align:center}
.prog-cta-in{max-width:760px;margin:0 auto;padding:54px 20px 58px}.prog-cta .rich h2{margin:0 0 12px;font-size:28px;color:#fff}.prog-cta .rich p{color:rgba(255,255,255,.78);font-size:16.5px;line-height:1.65}
.prog-cta-acts{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:22px}
@media(max-width:900px){.programs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.programs{grid-template-columns:1fr}}
:root body.pub .prog-cta .btn.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4)}:root body.pub .prog-cta .btn.ghost:hover{border-color:var(--gold2);color:var(--gold2)}

/* ---------- Clean pass: a calmer, official look for the website and the Community Portal ----------
   Same layouts; no gradients, glows, scroll-in animations or hover lifts; tighter corners; flat panels; one accent. */
body.pub{--r:6px}
/* things appear where they are; nothing floats, slides in or lifts on hover */
body.pub .rv,body.pub .rv.in{opacity:1!important;transform:none!important;transition:none!important}
body.pub main *,body.pub main *::before,body.pub main *::after,body.pub .cp-hero *{animation:none!important}
body.pub main a:hover,body.pub main button:hover,body.pub main article:hover,body.pub main .card:hover{transform:none!important}
/* flat banners and heroes in the Department's green, with the gold rule underneath */
body.pub .page-banner,:root[data-theme=dark] body.pub .page-banner,body.pub .jh,body.pub .cp-hero,body.pub .prog-cta{background:var(--brand2)!important}
:root[data-theme=light] body.pub .page-banner,:root[data-theme=light] body.pub .jh,:root[data-theme=light] body.pub .cp-hero{background:var(--brand)!important}
body.pub .jh-art img,body.pub .cp-hero-star{filter:drop-shadow(0 6px 14px rgba(0,0,0,.35))!important}
/* flat panels: no shadows inside the page */
body.pub main *{box-shadow:none!important}

body.pub main .why-card .why-ic,body.pub main .qi{border-radius:6px!important}
/* buttons: square-ish, flat colors */
body.pub .btn,body.pub .cp-gtaw,body.pub .cp-si-btn{border-radius:4px!important}
body.pub .btn.gold,body.pub .jh .btn.gold,body.pub .cp-si-btn{background:var(--gold)!important;background-image:none!important;filter:none!important}
/* calmer headings */
body.pub .page-banner h1,body.pub .jh h1,body.pub .cp-hero h1{font-weight:700;letter-spacing:-.005em}
/* Header between the phone menu and a wide screen: seven menus and the brand must fit on one line */
@media(min-width:901px){.pub-head .in{gap:12px}.pub-head nav .dd>button,.pub-head nav>a{padding:10px 7px;letter-spacing:.03em;font-size:12.5px}.pub-head .join{padding-left:12px;padding-right:12px}
  .pub-brand small{font-size:10.5px;letter-spacing:.14em}.pub-brand b{font-size:15px;line-height:1.2}}
@media(min-width:901px) and (max-width:1160px){.pub-brand b{max-width:150px;white-space:normal}.pub-head nav .dd>button,.pub-head nav>a{padding:10px 5px;letter-spacing:.02em;font-size:12px}.pub-head nav .dd>button::after{margin-left:2px}}

/* Previews are whole sentences, so nothing is clamped with an ellipsis */
.art-in p,.nr-body p,.nw-b p,.dash-ann-s,.msg-item-sub>span:last-child,.pc-main small,.mf-t small{display:block!important;-webkit-line-clamp:unset!important;overflow:visible!important;white-space:normal!important;text-overflow:clip!important}

/* Request a Record: the introduction and one box to make a request, then how a request ends on a shaded band */
.rq-top{max-width:880px;padding-top:44px;padding-bottom:48px}.rq-intro{margin:0 0 28px;font-size:18px;line-height:1.7;color:var(--mute)}
.rq-make{display:flex;align-items:center;gap:18px;padding:24px 26px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}
.rq-ic{flex:none;color:var(--gold);align-self:flex-start;margin-top:3px}.rq-make h2{margin:0 0 6px;font-size:19px}.rq-make .rich p{margin:0;color:var(--mute);font-size:14.5px;line-height:1.6}.rq-make .btn{flex:none;white-space:nowrap}
.rq-band{background:color-mix(in srgb,var(--ink) 3%,var(--bg));border-top:1px solid var(--line);padding:20px 0 44px}
.rq-band .programs{grid-template-columns:repeat(3,minmax(0,1fr))}.rq-band .callouts{margin-top:22px}
@media(max-width:700px){.rq-make{flex-direction:column;align-items:flex-start}.rq-band .programs{grid-template-columns:1fr}}

/* Table sections on website pages */
.pg-table{margin-top:4px}.pg-table td{vertical-align:middle}.pg-table td .rich p{margin:0;color:var(--mute)}.pg-table th.last,.pg-table td.last{text-align:right;white-space:nowrap;color:var(--ink);font-weight:600}
.pg-table td:first-child{white-space:nowrap}@media(max-width:600px){.pg-table td:first-child{white-space:normal}}

/* Inside the LSSD: topics in one readable column, each with a rule on its left and its links underneath */
.topics-page{max-width:760px}.topics-page .sec-title:empty,.topics-page .sect>h2:empty{display:none}
.topics{display:flex;flex-direction:column;gap:30px;margin-top:8px}
.topic{padding-left:18px;border-left:2px solid color-mix(in srgb,var(--ink) 18%,transparent)}.topic h3{margin:0 0 6px;font-size:18px}
.topic .rich p{margin:0;color:var(--mute);font-size:15px;line-height:1.65}.topic-links{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:12px}.topic-links a{font-size:14px;font-weight:600;text-decoration:none}.topic-links a:hover{text-decoration:underline;text-underline-offset:3px}
.topics-page .rule{display:none}
.wrap:has(.topics-page)>.page-intro{max-width:760px}

/* Fluid text at every width: headings break into balanced lines, paragraphs never leave a lone word on their last line,
   and the larger headings scale smoothly with the screen instead of jumping at breakpoints */
h1,h2,h3,h4,.sec-title,.page-banner h1,.jh h1,.cp-hero h1,.mf-t b{text-wrap:balance}
p,li,small,dd,td,blockquote,.mf-t small,.mega-blurb,.mega-links a small,.page-intro,.jh-lede,.rich p{text-wrap:pretty}
body.pub .page-banner h1{font-size:clamp(26px,1.6rem + 1.4vw,40px)}
body.pub main h2.sec-title,body.pub main .ab-head h2,body.pub .cu-head h2{font-size:clamp(20px,1.1rem + .9vw,28px)}
body.pub .page-intro,body.pub .rq-intro{font-size:clamp(16px,.95rem + .3vw,18.5px)}
body.pub .jh h1{font-size:clamp(30px,1.4rem + 2.4vw,50px)}
/* the menu's left column: a little wider, so the short lines under its pages read in one or two even lines */
@media(min-width:901px){.mega-in{grid-template-columns:minmax(300px,350px) 1fr}.mega-feat .mf-t small{font-size:13px}}
/* Contact Us: a slimmer emergency strip */
.cu-strip-in{padding:9px 20px}.cu-sos{font-size:14px;padding-right:18px}.cu-sos b{font-size:20px}.cu-strip-t{font-size:14.5px}
/* The header on wide screens: the page is a little wider (header, banners, content and footer together), so the seven menus
   keep their normal spacing instead of being squeezed */
@media(min-width:1340px){
  .wrap,.page-banner .in,.util .in,.mission .in,.pub-head .in,.foot .in,.statsband .in,.jh-in,.cp-hero .in,.cu-strip-in,.jbar-in,.mega-in{max-width:1240px}
  .pub-head .in{gap:22px}.pub-head nav .dd>button,.pub-head nav>a{padding:10px 9px;letter-spacing:.05em;font-size:13px}.pub-head .join{padding-left:16px;padding-right:16px}
  .pub-brand b{font-size:16px}}

/* A featured menu item's name stays on one line */
.mega-feat .mf-t b{white-space:nowrap}

/* Find Your Local Station: one card per place, as on the LSPD's facilities page */
.fac-page{padding-top:40px;padding-bottom:56px}.fac-page>section+section{margin-top:52px}
.facs{display:flex;flex-direction:column;gap:28px}
.fac{border:1px solid var(--line);border-radius:var(--r,6px);background:var(--panel);overflow:hidden}
.fac-h{position:relative;padding:26px 34px 24px;background:color-mix(in srgb,var(--ink) 4%,var(--panel));border-bottom:1px solid var(--line)}
.fac-h::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold)}
.fac-h h3{margin:0;font-size:clamp(20px,1.05rem + .6vw,25px);line-height:1.25;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.fac-aka{margin-top:6px;color:var(--gold);font-size:12.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.fac-meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:14px;color:var(--mute);font-size:14.5px}.fac-meta span{display:inline-flex;align-items:center;gap:7px}.fac-meta svg{flex:none;opacity:.8}
.fac-meta a{font-weight:600;text-decoration:none;white-space:nowrap}.fac-meta a:hover{text-decoration:underline;text-underline-offset:3px}
.fac-b{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;padding:30px 34px 32px}.fac-b.one{grid-template-columns:minmax(0,760px)}
.fac-about .rich p,.fac-serves{margin:0 0 14px;color:var(--mute);font-size:15px;line-height:1.7}.fac-about>:last-child,.fac-about .rich p:last-child{margin-bottom:0}.fac-serves b{color:var(--ink)}
.fac-housed h4{margin:0 0 16px;font-size:13.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.fac-housed ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.fac-housed li{padding-left:16px;border-left:2px solid color-mix(in srgb,var(--ink) 16%,transparent)}.fac-housed li b{display:block;font-size:15px}.fac-housed li span{display:block;margin-top:3px;color:var(--mute);font-size:14.5px;line-height:1.6}
.fac.inactive .fac-h::before{background:color-mix(in srgb,var(--ink) 30%,transparent)}
@media(max-width:800px){.fac-h{padding:22px 22px 20px}.fac-b{grid-template-columns:1fr;gap:26px;padding:24px 22px 26px}}

/* About: the mission quote as on the LSPD's page, a flat panel with a short rule under the words */
.ab-quote{background:var(--brand);border-left:0;box-shadow:none;padding:30px 28px 28px}
.ab-quote p::after{content:"";display:block;width:40px;height:3px;margin-top:20px;background:var(--gold);border-radius:2px}
.ab-quote small{border-top:0;padding-top:0;margin-top:14px}
.staff-card .sc-b b{display:block;line-height:1.35}

/* Recruitment FAQ bands: a plain band after another plain band gets a hairline between them */
.ab-band.ruled{border-top:1px solid var(--line)}
.join-faqall .jf-main{margin-top:4px}
.join-faqall{display:block}.jf-main{max-width:900px}

/* Tiles: the text column may shrink, so a long word wraps inside the box instead of running out of it */
.tiles{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.tile,.adm-tile,.cp-stat{grid-template-columns:auto minmax(0,1fr)}
.tile span,.adm-tile span,.cp-stat span,.pr-tile .pr-tile-l{min-width:0;overflow-wrap:break-word;hyphens:auto}
.pr-tile .pr-tile-l{white-space:normal}

/* Button rows: the main action first, Cancel to its right */
.acts>.cancel{order:9}

/* County map in full screen on narrow screens: the side panel stays a drawer, so the map gets the whole screen */
@media(max-width:900px){
  .mapx:fullscreen,.mapx.mv-max{display:block}
  .mapx:fullscreen .mapx-side,.mapx.mv-max .mapx-side{position:fixed;inset:0 auto 0 0;height:100dvh;max-height:none}
  .mapx:fullscreen .mapx-main,.mapx.mv-max .mapx-main{height:100%}
}

/* County map: the Places list over the map is see-through until the pointer is on it (or you are typing in it) */
@media(max-width:1279px) and (hover:hover){
  .mapx-right{background:color-mix(in srgb,var(--panel) 55%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:.78;transition:opacity .2s,background .2s}
  .mapx-right:hover,.mapx-right:focus-within{background:var(--panel);opacity:1}
}

/* The welcome screen after a GTA World or Discord sign-in (public/assets/splash.js) */
.spl{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;overflow:hidden;color:#e9efe9;background:radial-gradient(70% 60% at 88% 8%,rgba(31,84,56,.45),transparent 70%),radial-gradient(60% 50% at 10% 100%,rgba(214,178,94,.06),transparent 70%),linear-gradient(165deg,#101b15,#08110c 55%,#050b08)}
.spl.out{opacity:0;pointer-events:none}
.spl-in{display:flex;flex-direction:column;align-items:center;padding:24px 16px;text-align:center}
.spl-seal{position:relative;width:min(264px,60vw);aspect-ratio:1;display:grid;place-items:center;margin-bottom:46px}
.spl-ring{position:absolute;border-radius:50%;border:1px solid rgba(214,178,94,.16)}.spl-ring.r1{inset:0}.spl-ring.r2{inset:13.5%}
.spl-arc{position:absolute;border-radius:50%;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px))}
.spl-arc.a1{inset:0;background:conic-gradient(from 0deg,transparent 0 62%,rgba(214,178,94,.55) 85%,#e8c46a 100%);animation:spl-spin 2.6s linear infinite}
.spl-arc.a2{inset:13.5%;background:conic-gradient(from 180deg,transparent 0 55%,rgba(214,178,94,.4) 80%,#d6b25e 100%);animation:spl-spin 3.8s linear infinite reverse}
.spl-orbit{position:absolute;inset:0;animation:spl-spin 2.6s linear infinite}
.spl-orbit::after{content:"";position:absolute;top:-4px;left:50%;width:9px;height:9px;margin-left:-4.5px;border-radius:50%;background:#fff1c4;box-shadow:0 0 12px 3px rgba(232,196,106,.65)}
.spl-star{position:relative;width:44%;filter:drop-shadow(0 0 22px rgba(214,178,94,.35))}
.spl-name{margin:0 0 36px;font:600 clamp(12px,.6rem + .5vw,15px)/1.5 var(--font);letter-spacing:.3em;text-transform:uppercase;color:#c9d4c4;text-wrap:balance}
.spl-bar{width:min(440px,78vw);height:3px;border-radius:2px;background:rgba(255,255,255,.08);overflow:hidden;margin-bottom:34px}
.spl-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#a9842c,#d6b25e 70%,#fff1c4)}
.spl-steps{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;font:700 clamp(11px,.55rem + .45vw,14px) var(--font);letter-spacing:.24em;text-transform:uppercase;color:rgba(214,178,94,.32)}
.spl-step{white-space:nowrap;transition:color .3s}.spl-step.on{color:rgba(214,178,94,.8)}.spl-step.now{color:#f0d48e}.spl-sep{letter-spacing:.15em;opacity:.7}
@keyframes spl-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.spl-arc,.spl-orbit{animation:none}.spl-bar i{transition:none}}
@media(max-width:520px){.spl-sep{display:none}.spl-steps{gap:8px 14px;letter-spacing:.18em}}

/* The Feedback button: a small x to hide it (shown on hover or focus, always on touch screens); never on sign-in pages */
.fb-fab{position:fixed;right:20px;bottom:20px;z-index:60}.fb-fab[hidden]{display:none}
.fb-fab .fb-btn{position:static}
.fb-x{position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;padding:0;font:600 14px/1 var(--font);cursor:pointer;
  color:var(--mute);background:var(--panel);border:1px solid var(--line);opacity:0;transition:opacity .15s}
.fb-fab:hover .fb-x,.fb-x:focus-visible{opacity:1}.fb-x:hover{color:var(--ink);border-color:var(--gold)}
@media(hover:none){.fb-x{opacity:1}}
@media(max-width:600px){.fb-fab{right:12px;bottom:12px}}
.fb-again{display:block;margin-top:10px}.fb-again[hidden]{display:none}
body:has(.login,.cp-auth,.cp-si,.spl) .fb-fab{display:none}
body.pv-mode .fb-fab{display:none}
@media print{.fb-fab{display:none!important}}

/* A STARS table too wide for its box: rows as blocks, each value under its column name (no sideways scrolling) */
.scroll.stack{overflow-x:visible}
.scroll.stack .tbl thead{display:none}.scroll.stack .tbl tr{display:block;border-bottom:1px solid var(--line);padding:10px 0}.scroll.stack .tbl tr:last-child{border-bottom:0}
.scroll.stack .tbl td{display:flex;gap:12px;border:0;padding:3px 16px;white-space:normal}.scroll.stack .tbl td::before{content:attr(data-label);color:var(--mute);font-size:12px;min-width:96px;flex-shrink:0;padding-top:2px}
.scroll.stack .tbl td[data-label=""]::before,.scroll.stack .tbl td.empty::before{display:none}

/* Boards (Forensic Lab and others): the columns share the width, and wrap onto a new row when there is not room, instead of scrolling sideways */
.kanban,.lab-board{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))!important;overflow-x:visible!important}
/* Lab cards in narrower lanes: the request number stays on one line; the priority moves under it if needed */
.lab-k-top{flex-wrap:wrap}.lab-k-top .mono{white-space:nowrap}
.kanban.lab-board{grid-template-columns:repeat(auto-fit,minmax(min(100%,175px),1fr))!important}

/* Website table sections on phones: each row is a block, each value under its column heading, so nothing scrolls sideways */
@media(max-width:640px){
  .pg-table table,.pg-table tbody,.pg-table tr,.pg-table td{display:block;width:auto}
  .pg-table thead{display:none}.pg-table tr{padding:12px 0;border-bottom:1px solid var(--line)}.pg-table tr:last-child{border-bottom:0}
  .pg-table td{padding:2px 0!important;border:0!important;text-align:left!important;white-space:normal!important}
  .pg-table td[data-label]:not([data-label=""])::before{content:attr(data-label);display:block;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);margin-top:6px}
  .pg-table td:first-child::before{display:none!important}
}
.legal-links{flex-wrap:wrap;row-gap:6px}.legal-txt{min-width:0}
@media(max-width:640px){.pg-table table{min-width:0!important}.pg-table td:empty{display:none}.pg-table td a{overflow-wrap:anywhere}}

/* Civilian Careers "How it works": a plain numbered timeline, no boxes. Across the page on wide screens, down it on narrow ones. */
.civ-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 24px;margin-top:6px}
.civ-steps li{position:relative;display:block;padding:0;border:0;border-radius:0;background:none}
.civ-steps li::before{content:"";position:absolute;top:15px;left:42px;right:-14px;height:1px;background:var(--line)}
.civ-steps li:last-child::before{display:none}
.civ-steps .civ-n{position:relative;z-index:1;display:grid;place-items:center;width:31px;height:31px;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold);background:var(--bg);font:700 14px/1 var(--font)}
.civ-steps b{display:block;margin:14px 0 4px;font-size:16px}
.civ-steps p{margin:0;font-size:14px;line-height:1.6;color:var(--mute);opacity:1}
@media(max-width:900px){
  .civ-steps{grid-template-columns:1fr;gap:0}
  .civ-steps li{display:grid;grid-template-columns:31px minmax(0,1fr);column-gap:16px;padding-bottom:20px}
  .civ-steps li:last-child{padding-bottom:0}
  .civ-steps li::before{top:36px;bottom:4px;left:15px;right:auto;width:1px;height:auto}
  .civ-steps b{margin:4px 0 2px}
}

/* Rosters, like the GTA World LSPD roster: each division a card, each unit a table with one row per post; vacant posts in gold */
.ro-div>summary{gap:10px}.ro-div>summary .ico,.ro-unit-head .ico{transition:transform .15s;color:var(--mute)}.ro-div:not([open])>summary>.ico,.ro-unit:not([open])>summary>.ico{transform:rotate(-90deg)}
.ro-kind{display:inline-block;padding:2px 7px;border-radius:4px;font:700 10px/1.4 var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--gold);background:color-mix(in srgb,var(--gold) 13%,transparent)}
.ro-fill{display:inline-flex;align-items:center;gap:4px;font-size:13px}
.ro-unit{padding:0;margin:12px 14px;border:1px solid var(--line);border-radius:10px;overflow:hidden;border-left:3px solid color-mix(in srgb,var(--gold) 70%,var(--line))}
.ro-unit+.ro-unit{border-top:1px solid var(--line)}
.ro-unit-head{display:flex;align-items:center;gap:9px;padding:11px 14px;cursor:pointer;list-style:none;color:var(--ink);background:color-mix(in srgb,var(--ink) 3%,var(--panel))}
.ro-unit-head::-webkit-details-marker{display:none}.ro-unit[open]>.ro-unit-head{border-bottom:1px solid var(--line)}.ro-unit-head b{font-size:14.5px}
.ro-unit.top .ro-unit-head{color:var(--ink)}
.ro-tbl th{font-size:10.5px;letter-spacing:.09em}.ro-tbl td{font-size:13.5px}.ro-tbl th:first-child,.ro-tbl td.ro-n{width:34px;color:var(--mute);font-variant-numeric:tabular-nums}
.ro-tbl .ro-rank{color:var(--mute)}.ro-tbl tr:not(.ro-open) .ro-rank{color:var(--gold);font-weight:600}
.ro-name{display:inline-flex;color:var(--ink);text-decoration:none}.ro-name:hover b{text-decoration:underline;text-underline-offset:3px}
.ro-cs{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}
.ro-pos span{margin-right:6px}.ro-set{opacity:0;vertical-align:middle}.ro-tbl tr:hover .ro-set,.ro-set:focus-visible{opacity:1}
.ro-vac{color:var(--gold);font-style:italic;font-weight:600}
.ro-tbl tr.ro-open td{background:repeating-linear-gradient(135deg,transparent 0 7px,color-mix(in srgb,var(--ink) 3%,transparent) 7px 14px)}
.ro-tbl tr.ro-open td:not(.ro-n):not(:nth-child(2)):not(:nth-child(5)){color:var(--mute)}
@media(hover:none){.ro-set{opacity:1}}
@media print{.ro-unit{break-inside:avoid}.ro-set{display:none}}
.ro-name{align-items:center;gap:8px;white-space:nowrap}.ro-who .pill{margin-left:6px}.ro-tbl td{padding:8px 10px}

/* History, like the LSPD's: Overview beside its text, a timeline on a dark band, key events as cards */
.hi-over{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:40px;align-items:start}.hi-over .ab-text{max-width:780px}
.hi-tl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.hi-tl li{display:grid;gap:20px;padding:16px 20px;border-radius:var(--r,6px);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}
.hi-tl li>b{color:#e2c77e;font-size:17px;font-variant-numeric:tabular-nums}.hi-tl .rich p{margin:0;color:#e9efe9;font-size:14.5px;line-height:1.6}
.hi-evs{display:flex;flex-direction:column;gap:28px}
.hi-ev{border:1px solid var(--line);border-radius:var(--r,6px);background:var(--panel);overflow:hidden}
.hi-ev>header{padding:22px 26px 20px;background:color-mix(in srgb,var(--ink) 4%,var(--panel));border-bottom:1px solid var(--line)}
.hi-ev>header small{display:block;color:var(--gold);font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.hi-ev>header h3{margin:6px 0 4px;font-size:clamp(19px,1rem + .5vw,23px)}.hi-ev>header p{margin:0;color:var(--mute);font-size:14.5px}
.hi-ev-b{padding:22px 26px 24px}.hi-ev-b h2,.hi-ev-b h3{margin:20px 0 8px;font-size:13.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.hi-ev-b h2:first-child,.hi-ev-b h3:first-child{margin-top:0}
.hi-ev-b p{margin:0 0 10px;color:var(--mute);font-size:14.5px;line-height:1.65}
@media(max-width:800px){.hi-over{grid-template-columns:1fr;gap:6px}.hi-tl li{grid-template-columns:1fr;gap:4px}.hi-ev>header,.hi-ev-b{padding-left:18px;padding-right:18px}}
.hi-tl li{align-items:baseline;grid-template-columns:120px minmax(0,1fr)}@media(max-width:800px){.hi-tl li{grid-template-columns:1fr}}

/* Command Staff, like the LSPD's: one wide card per person, photo left, rank, name, post, a short rule and the biography */
.ldrs{display:flex;flex-direction:column;gap:24px;margin-top:8px}
.ldr{display:grid;grid-template-columns:220px minmax(0,1fr);gap:30px;align-items:start;padding:22px;border:1px solid var(--line);border-radius:var(--r,6px);background:var(--panel)}
.ldr-photo{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px;display:block}
.ldr-photo.ph{display:grid;place-items:center;background:linear-gradient(160deg,var(--brand),#0f281b);color:rgba(255,255,255,.45);font:700 44px var(--font)}
.ldr-rank{display:block;color:var(--gold);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.ldr-txt h3{margin:6px 0 4px;font-size:clamp(20px,1.05rem + .55vw,25px);line-height:1.25}
.ldr-post{display:block;color:var(--mute);font-size:14.5px}
.ldr-rule{display:block;width:36px;height:3px;border-radius:2px;background:var(--gold);margin:14px 0 16px}
.ldr-bio p{margin:0 0 12px;color:var(--mute);font-size:15px;line-height:1.7}.ldr-bio p:last-child{margin-bottom:0}
@media(max-width:700px){.ldr{grid-template-columns:1fr;gap:18px;padding:18px}.ldr-photo{max-width:240px}}
.ldr .ldr-photo{height:auto!important;aspect-ratio:4/5}

/* Rosters: units that are part of another unit sit inside it, indented (a bureau, its details, their units) */
.ro-sub{padding:2px 0 4px 14px;border-top:1px solid var(--line)}.ro-sub>.ro-unit{margin:12px 12px 12px 0}

/* Reading pages in bands (Constitutional Policing), like the LSPD's: one centered column, shaded and plain bands in turn */
.bd-band{padding:52px 0}.bd-band.alt{background:var(--bg2)}.bd-in{max-width:760px;margin:0 auto;padding:0 20px}
.bd-open .rich p{font-size:17px;line-height:1.75;color:var(--mute);margin:0 0 16px}.bd-open .rich p:last-child{margin-bottom:0}
.bd-prose{display:flex;flex-direction:column;gap:22px}.bd-prose h3{margin:0 0 6px;font-size:17px}.bd-prose .rich p,.bd-prose .rich li{color:var(--mute);font-size:15px;line-height:1.7}.bd-prose .rich p{margin:0 0 8px}.bd-prose .rich ul{margin:4px 0 0;padding-left:20px}
.bd-quote{margin-top:26px;padding:18px 22px;background:var(--panel);border-left:3px solid var(--gold);border-radius:0 var(--r,6px) var(--r,6px) 0}.bd-quote .rich p{margin:0;font-size:15px;line-height:1.65}
.bd-cards{display:flex;flex-direction:column;gap:14px}
.bd-cards article{padding:20px 22px;border:1px solid var(--line);border-radius:var(--r,6px);background:var(--panel)}
.bd-cards h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:16px}.bd-cards h3 svg{color:var(--gold);flex:none}
.bd-cards .rich p{margin:0;color:var(--mute);font-size:14.5px;line-height:1.65}
.bd-more{display:inline-block;margin-top:10px;font-size:13.5px;font-weight:700;text-decoration:none}.bd-more:hover{text-decoration:underline;text-underline-offset:3px}
@media(max-width:700px){.bd-band{padding:38px 0}}

/* The website's organization chart, like the Department's poster: dark, gold-framed boxes */
.oc2{background:radial-gradient(80% 60% at 50% 0%,rgba(31,84,56,.45),transparent 70%),linear-gradient(170deg,#0f1b15,#08110c);color:#e9efe9;border-radius:var(--r,6px);padding:30px 24px 34px;overflow:hidden}
.oc2-box{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:3px;padding:12px 16px;border:1px solid rgba(214,178,94,.45);border-radius:4px;background:rgba(10,20,15,.82)}
.oc2-box b{font-size:15px;letter-spacing:.04em;color:#fff}.oc2-box small{font-size:12px;color:#c9d4c4;line-height:1.4}
.oc2-box.gold{border:1.5px solid #d6b25e;box-shadow:0 0 18px rgba(214,178,94,.18)}.oc2-box.big b{letter-spacing:.08em;text-transform:uppercase;color:#f0d48e}
.oc2-top{display:grid;gap:26px}
.oc2-mid{display:flex;flex-direction:column;align-items:center}.oc2-mid .oc2-box{width:100%}
.oc2-stars{color:#d6b25e;letter-spacing:.3em;font-size:16px;margin-bottom:6px}
.oc2-left .oc2-box.gold{position:relative}.oc2-left .oc2-box.gold b{text-transform:uppercase;font-size:14px}
.oc2-direct+.oc2-direct{margin-top:18px}
.oc2-cells{display:grid;gap:8px;position:relative}
.oc2-cell{padding:9px 10px;border:1px solid rgba(214,178,94,.4);border-radius:4px;background:rgba(10,20,15,.82);text-align:center}.oc2-cell b{display:block;font-size:12.5px;color:#fff;line-height:1.3}.oc2-cell small{display:block;margin-top:3px;font-size:11px;color:#c9d4c4;line-height:1.35}
.oc2-right{display:flex;flex-direction:column}.oc2-right .oc2-box b{text-transform:uppercase}
.oc2-list{padding:12px 16px;border-radius:4px;background:rgba(10,20,15,.82)}.oc2-list>b{display:block;text-align:center;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#fff;margin-bottom:8px}
.oc2-list ul{list-style:none;margin:0;padding:0}.oc2-list li{padding:6px 0 6px 12px;border-top:1px solid rgba(255,255,255,.08);font-size:13px;color:#dfe6dc;position:relative}.oc2-list li::before{content:"";position:absolute;left:0;top:50%;width:6px;height:1px;background:#d6b25e}
.oc2-ops{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.oc2-op{display:flex;flex-direction:column;gap:12px}.oc2-box.op{border:1.5px solid #d6b25e}.oc2-box.op b{text-transform:uppercase;font-size:13.5px}
.oc2-div .oc2-box{align-items:flex-start;text-align:left}
.oc2-units,.oc2-units ul{list-style:none;margin:0;padding:0}.oc2-units{margin-top:6px;padding-left:12px;border-left:1px solid var(--oc-line)}
.oc2-units li{font-size:12.5px;color:#dfe6dc;padding:3px 0}.oc2-units ul{padding-left:12px;border-left:1px dashed rgba(214,178,94,.35);margin:2px 0 2px 2px}
.oc2 .inactive-tag{margin-left:6px}
@media(max-width:980px){.oc2-top{grid-template-columns:1fr}.oc2-mid{order:-1}.oc2-mid .oc2-box{max-width:none}}
/* STARS org chart: units that are part of another unit sit under it */
.oc-ugroup{display:flex;flex-direction:column;gap:6px}.oc-usub{display:flex;flex-direction:column;gap:6px;margin-left:14px;padding-left:10px;border-left:1px dashed var(--line)}
@media(max-width:1180px){.oc2-cells{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:980px){.oc2-top{grid-template-columns:1fr}}

/* Ranks & Insignia, like the LSPD's: the tiers as cards, a note, then the ladder as a table with the pay */
.rk-classes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.rk-classes article{padding:18px 20px;border:1px solid var(--line);border-radius:var(--r,6px);background:var(--panel)}.rk-classes h3{margin:0 0 6px;font-size:16px}.rk-classes p{margin:0;color:var(--mute);font-size:14.5px;line-height:1.6}
.rk-note{max-width:640px}.rk-note p{margin:0;color:var(--mute);font-size:14.5px;line-height:1.6}
.rk-oocbox{margin-bottom:16px}.rk-oocbox p{margin:4px 0 0}
.rk-table td{vertical-align:middle}.rk-ins{width:150px}.rk-ins img{height:34px;max-width:140px;object-fit:contain;display:block}
.rk-table td b{display:block;color:var(--ink)}.rk-table td small{display:block;color:var(--mute);font-size:12.5px;margin-top:2px}
.rk-table td.last{font-variant-numeric:tabular-nums;white-space:nowrap}.rk-table td.rk-ooc{color:var(--gold)}
@media(max-width:760px){.rk-classes{grid-template-columns:1fr}}

/* Ranks & Insignia: the service stripes as chips, the longevity table and the pension note */
.bd-col{max-width:880px}.bd-lead{margin:0 0 16px;color:var(--mute);font-size:15px;line-height:1.65;max-width:620px}
.bd-chips{display:flex;flex-wrap:wrap;gap:10px}.bd-chips span{padding:8px 14px;border:1px solid var(--line);border-radius:4px;background:var(--panel);font-size:13.5px;font-weight:600;white-space:nowrap}
.rk-foot{margin:12px 0 0;max-width:640px}
.bd-col .pg-table th:last-child,.bd-col .pg-table td:last-child{text-align:right;white-space:nowrap}.bd-col .pg-table{max-width:560px}

/* Longevity and Pension side by side, as on the LSPD page */
.bd-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}.bd-split .pg-table{max-width:none}
.bd-quote.card-note{margin-top:0;padding:20px 22px}.bd-quote.card-note h3{margin:0 0 8px;font-size:15.5px}.bd-quote.card-note .rich p{color:var(--mute)}
.rk-ins .small{white-space:nowrap}
@media(max-width:800px){.bd-split{grid-template-columns:1fr}}
/* A section shown inside a band has no heading of its own: no empty title and no second rule */
.ab-band .sect>h2.sec-title:empty,.ab-band .sect>h2.sec-title:empty~.rule{display:none}
.ab-band .sect>h2.sec-title:empty+.rule{display:none}
.bd-split .pg-table th:last-child,.bd-split .pg-table td:last-child{text-align:right;white-space:nowrap}
.bd-split .sect,.bd-col .sect{margin-top:0}

/* Divisions & Units, like the LSPD's: a group per operation, cards with a colored left edge; and a page for each unit */
.du-sect{margin-top:34px}.du-sect:first-of-type{margin-top:10px}
.du-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.du-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.du-card{display:flex;flex-direction:column;gap:8px;padding:18px 20px;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:var(--r,6px);background:var(--panel);color:var(--ink);text-decoration:none;transition:border-color .15s}
.du-card:hover{border-color:var(--gold)}.du-card.inactive{border-left-color:var(--mute)}
.du-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.du-top img{width:40px;height:40px;object-fit:contain;flex:none}
.du-card h3{margin:0;font-size:15.5px;line-height:1.3}.du-card small{display:block;margin-top:3px;color:var(--gold);font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.du-card p{margin:0;color:var(--mute);font-size:14px;line-height:1.6}.du-more{margin-top:auto;padding-top:4px;font-size:13.5px;font-weight:700;color:var(--ink)}.du-card:hover .du-more{text-decoration:underline;text-underline-offset:3px}
.du-page{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:40px;padding-top:36px;padding-bottom:50px}
.du-kicker{color:var(--gold);font-size:12.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;display:flex;gap:8px;align-items:center}
.du-lead{font-size:17px;line-height:1.7;margin:10px 0 8px;max-width:720px}.du-parent{color:var(--mute);margin:0 0 26px}
.du-h{font-size:20px;margin:10px 0 14px}
.du-side{display:flex;flex-direction:column;gap:14px;align-items:flex-start}.du-emblem{width:120px;height:120px;object-fit:contain}
.du-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r,6px);background:var(--panel);font-size:14px;width:100%;box-sizing:border-box}.du-facts dt{color:var(--mute)}.du-facts dd{margin:0;overflow-wrap:anywhere}
.du-back{font-size:14px;font-weight:600;text-decoration:none}.du-back:hover{text-decoration:underline}
@media(max-width:980px){.du-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.du-page{grid-template-columns:1fr}}
@media(max-width:620px){.du-grid,.du-grid.two{grid-template-columns:1fr}}

/* STARS org chart: the line under the Undersheriff is centred */.oc-box.top2 .oc-k{margin-top:8px}

/* Mission, Vision, Values, like the LSPD's: the core values on a dark band, the mission beside its heading, then the code and the creed */
.mv-hero{background:linear-gradient(135deg,#123323,#0b1f15);color:#fff;text-align:center;padding:46px 0 44px}
.mv-hero small{display:block;color:#d6b25e;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.mv-hero p{margin:12px auto 0;max-width:760px;font-size:clamp(20px,1.1rem + .9vw,28px);font-weight:700;line-height:1.35;text-wrap:balance}
.mv-rule{display:block;width:44px;height:3px;border-radius:2px;background:#d6b25e;margin:18px auto 0}
.mv-lead{font-size:17px;line-height:1.75;color:var(--mute);margin:0}
.bd-col .rich p{color:var(--mute);font-size:15.5px;line-height:1.75;margin:0 0 14px}
.mv-quote{margin:0;padding:22px 26px;border-left:3px solid var(--gold);background:var(--panel);border-radius:0 var(--r,6px) var(--r,6px) 0;max-width:720px}
.mv-quote blockquote{margin:0}.mv-quote blockquote p{margin:0;font-size:17px;line-height:1.65;font-style:italic}.mv-quote figcaption{margin-top:12px;color:var(--mute);font-size:14px;font-weight:600}

.spl{transition:opacity .65s ease}.spl-bar i{transition:width .7s ease}

/* Ranks on phones, like the DRDB's: the insignia, the rank, "insignia · tier", then Annual and Hourly side by side */
.rk-tier-m{display:none}
@media(max-width:640px){
  .rk-table tr{display:grid!important;grid-template-columns:1fr 1fr;gap:6px 18px;padding:18px 16px!important}
  .rk-table td{padding:0!important}
  .rk-table td.rk-ins,.rk-table td.rk-name{grid-column:1/-1}.rk-table td.rk-tier{display:none!important}
  .rk-table td.rk-ins::before,.rk-table td.rk-name::before{display:none!important}
  .rk-table td.rk-ins img{height:38px}.rk-table td.rk-ins .small{font-size:12.5px}
  .rk-table td.rk-name b{font-size:19px;margin-top:4px}.rk-table td.rk-name small{font-size:14px;margin-top:3px}.rk-tier-m{display:inline}
  .rk-table td.last{font-size:17px;margin-top:8px}.rk-table td.last::before{font-weight:500!important;font-size:12px!important;letter-spacing:.06em;margin:0 0 2px!important}
  .rk-table td.rk-ooc{color:var(--mute)!important}
}
.mv-col>*:not(.ab-head){max-width:820px}.mv-col .rich p{color:var(--mute);font-size:15.5px;line-height:1.75;margin:0 0 14px}
/* Choose a character: the cards never grow past the box; a long rank and unit line wraps under the name instead */
.ch-list{grid-template-columns:minmax(0,1fr)}.ch-list>*{min-width:0;max-width:100%;box-sizing:border-box}

/* The memorial, like the LSPD's: the Roll of Honor by decade, two cards a row */
.eow-dec{margin:8px 0 14px;padding-bottom:8px;border-bottom:1.5px solid var(--ink);font-size:14px;letter-spacing:.06em;text-transform:uppercase}
.eow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:26px}
.eow{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;padding:18px;border:1px solid var(--line);border-radius:var(--r,6px);background:var(--panel)}
.eow img,.eow-ph{width:64px;height:64px;object-fit:cover;border-radius:4px}.eow-ph{display:grid;place-items:center;background:linear-gradient(160deg,var(--brand),#0f281b);color:rgba(255,255,255,.75);font-weight:700;font-size:18px}
.eow small{display:block;color:var(--gold);font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.eow h3{margin:4px 0 2px;font-size:16px}.eow-sub{margin:0;color:var(--mute);font-size:13.5px}.eow-txt .rich p,.eow-txt p{margin:8px 0 0;font-size:14px;color:var(--mute);line-height:1.6}
@media(max-width:720px){.eow-grid{grid-template-columns:1fr}}
/* Choose a character: wide enough that the rank and unit stay on one line; they wrap only on narrow phones */
.ch-pick{max-width:560px!important}
@media(max-width:560px){.ch-txt span{white-space:normal!important}}

.ch-txt{overflow:visible}.ch-txt span{white-space:normal!important;text-wrap:pretty}
.login-card.ch-pick{width:min(470px,100%)}.ch-pick .ch-card{padding:12px 12px;gap:12px}

/* The newsroom, like the LSPD's: plain tabs, then cards with a category and date strip, the picture, the headline and Read More */
.nwc-tabs{margin:6px 0 10px;border-bottom:1px solid var(--line);gap:0}.nwc-tabs a{padding:10px 16px;font-size:14px;font-weight:600;color:var(--mute);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.nwc-tabs a.on{color:var(--ink);border-bottom-color:var(--gold)}.nwc-tabs a:hover{color:var(--ink)}
.nwc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.nwc{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r,6px);background:var(--panel);color:var(--ink);text-decoration:none;overflow:hidden;transition:border-color .15s}
.nwc:hover{border-color:var(--gold)}.nwc.feat{border-top:3px solid var(--gold)}
.nwc-strip{display:flex;justify-content:space-between;gap:10px;padding:9px 14px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--ink) 3%,var(--panel));font-size:11.5px}
.nwc-strip span:first-child{font-weight:700;letter-spacing:.07em;text-transform:uppercase}.nwc-strip span:last-child{color:var(--mute);white-space:nowrap}
.nwc-img{aspect-ratio:16/9;background-size:cover;background-position:center;border-bottom:1px solid var(--line)}
.nwc-b{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px;flex:1}.nwc-b h3{margin:0;font-size:15.5px;line-height:1.35}.nwc-b p{margin:0;color:var(--mute);font-size:13.5px;line-height:1.6}
.nwc-more{margin-top:auto;padding-top:6px;font-size:13.5px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
@media(max-width:980px){.nwc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.nwc-grid{grid-template-columns:1fr}}

/* STARS org chart: vacant spots that can be filled; danger items in the right-click menu */
.oc-person.vacant.fillable{cursor:pointer;border:1px dashed color-mix(in srgb,var(--gold) 55%,var(--line));border-radius:8px;padding:3px 6px}.oc-person.vacant.fillable:hover{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 8%,transparent)}
.oc-person.vacant.fillable .oc-av{color:var(--gold)}.menu-pop .menu-item.danger{color:var(--bad)}

/* Media Contact, like the LSPD's */
.mc-page{padding-top:34px;padding-bottom:50px}
.mc-note{padding:18px 22px;border-left:3px solid var(--gold);background:var(--panel);border-radius:0 var(--r,6px) var(--r,6px) 0}.mc-note .rich p{margin:0;font-weight:600;font-size:15.5px}
.mc-intro{margin-top:24px}.mc-intro .rich p{color:var(--mute);font-size:15.5px;line-height:1.75}
.mc-sect{margin-top:38px}.mc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:12px}
.mc-card{display:flex;gap:16px;align-items:flex-start;padding:20px;border:1px solid var(--line);border-radius:var(--r,6px);background:var(--panel)}
.mc-card img,.mc-ph{width:56px;height:56px;border-radius:4px;object-fit:cover;flex:none}.mc-ph{display:grid;place-items:center;background:linear-gradient(160deg,var(--brand),#0f281b);color:rgba(255,255,255,.75);font-weight:700}
.mc-card h3{margin:0;font-size:15.5px}.mc-rule{display:block;width:26px;height:2px;background:var(--gold);margin:8px 0}.mc-who{margin:0;font-weight:600;font-size:14px}.mc-what{margin:4px 0 0;color:var(--mute);font-size:14px;line-height:1.55}
.mc-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:start}.mc-part+.mc-part{margin-top:26px}.mc-part .rich li,.mc-part .rich p{color:var(--mute);font-size:14.5px;line-height:1.7}
.mc-part .pg-table td:last-child{text-align:left}.mc-form{margin-top:44px}
@media(max-width:820px){.mc-grid,.mc-two{grid-template-columns:1fr}}
.mc-part .sect>h2.sec-title:empty,.mc-part .sect>h2.sec-title:empty~.rule{display:none}.mc-part .sect{margin-top:0}
/* Contact Us > Our Stations, like the LSPD's: a shaded band; white cards with the address, front desk and hours, then the area served */
.cu-sec.cu-band{position:relative;padding:34px 0 38px;box-shadow:0 0 0 100vmax var(--bg2);clip-path:inset(0 -100vmax);background:var(--bg2)}
.cu-band .cu-st{background:var(--panel);border-color:var(--line);border-radius:var(--r,6px);padding:20px 22px}
.cu-st h3{font-size:16.5px}.cu-st li{font-size:14.5px}.cu-st li svg{color:var(--mute)}
.cu-serves{margin:12px 0 0;color:var(--mute);font-size:13.5px;line-height:1.55}
.pr-facts dd small.pr-unit{white-space:nowrap}.pr-facts{grid-template-columns:repeat(auto-fit,minmax(180px,auto))}
.mc-note .rich p{max-width:none}.mc-intro .rich p{max-width:none}.mc-intro{max-width:880px}
.mc-note .rich{max-width:none}.mc-part .rich{max-width:none}

/* Most Wanted: posters sized to the screen, as many as there are (two to four a row on a computer, one on a phone) */
.wanted-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:20px;align-items:stretch}
.wanted-grid .poster{padding:18px 18px 20px;max-width:340px;width:100%;margin:0 auto;box-sizing:border-box}
.poster .w{font-size:clamp(30px,1.4rem + 1.4vw,42px)}.poster .sub{font-size:11px}
.poster img,.poster .nophoto{width:100%;max-width:220px;height:auto;aspect-ratio:1;font-size:54px}
.poster h3{font-size:clamp(18px,1rem + .5vw,22px);overflow-wrap:anywhere}.poster p{font-size:14px;line-height:1.5;margin:6px 0}.poster .pre{white-space:pre-line}
@media(max-width:560px){.wanted-grid .poster{max-width:none}}
/* STARS: a casefile's wanted people */
.wp-list{display:flex;flex-direction:column;gap:8px;margin:10px 0}.wp-row{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px}
.wp-row img,.wp-ph{width:40px;height:40px;border-radius:8px;object-fit:cover;flex:none}.wp-ph{display:grid;place-items:center;background:var(--panel2);font-weight:700;color:var(--mute)}
.wp-row{gap:10px;padding:8px 10px;flex-wrap:wrap}.wp-row .grow{flex:1 1 0;min-width:140px}.wp-acts{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}.wp-acts .pill{white-space:nowrap}
/* Home: the Sheriff's message, the name once (no signature under the quote), the link at the foot of the card */
.sheriff{gap:16px;padding:22px 24px}.sheriff .who{padding-bottom:14px;border-bottom:1px solid var(--line)}.sheriff .avatar{width:56px;height:56px;font-size:20px;flex:none}
.sheriff .sh-eyebrow{display:block;font:700 11.5px var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:3px;white-space:nowrap}.sheriff h3{font-size:21px;line-height:1.2}
.sheriff blockquote{flex:1;position:relative;border:0;padding:18px 0 0;font:400 16px/1.65 var(--font);color:var(--ink)}
.sheriff blockquote::before{content:"\201C";position:absolute;top:-14px;left:-4px;font:700 54px/1 Georgia,serif;color:var(--gold);opacity:.55}
.sheriff .sh-more{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-weight:600;color:var(--brand);text-decoration:none;padding-top:12px;border-top:1px solid var(--line);width:100%}.sheriff .sh-more:hover{color:var(--gold)}
:root:not([data-theme=light]) .sheriff .sh-more{color:var(--gold2)}

/* Home page banners: a photo behind the story, darkened toward the caption so the text stays readable */
.slide .bgimg{object-position:center 40%}.slide .bgimg~.cap{background:linear-gradient(transparent,rgba(5,15,10,.55) 35%,rgba(5,15,10,.92))}
.slide:has(.bgimg)::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,15,10,.45),transparent 60%);pointer-events:none}.slide .cap{z-index:1}

/* Page banners and recruitment heroes with a picture behind them, darkened on the text side */
:root body.pub .page-banner.has-photo,:root body.pub .jh.has-photo{background:linear-gradient(90deg,rgba(8,24,16,.94) 0%,rgba(8,24,16,.78) 45%,rgba(8,24,16,.35) 100%),var(--pb-img) center 35%/cover no-repeat!important}
.page-banner.has-photo{padding:64px 0 52px}.jh.has-photo .jh-art>img{display:none}
@media(max-width:700px){:root body.pub .page-banner.has-photo,:root body.pub .jh.has-photo{background:linear-gradient(rgba(8,24,16,.72),rgba(8,24,16,.9)),var(--pb-img) center/cover no-repeat!important}.page-banner.has-photo{padding:44px 0 36px}}
/* STARS: the photo library */
.photo-lib{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.pl-item{display:flex;flex-direction:column;gap:6px;padding:6px;border:1px solid var(--line);border-radius:10px;background:none;cursor:pointer;text-align:left;color:var(--ink)}
.pl-item img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:6px}.pl-item span{font-size:13px}.pl-item:hover,.pl-item.on{border-color:var(--gold)}.imgfield img{max-width:260px;aspect-ratio:16/9;object-fit:cover}
/* Org chart: on a phone the unit cells stack, so their notes keep a full line */
.oc2-cells{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))!important}@media(max-width:560px){.oc2-cells{grid-template-columns:minmax(0,1fr)!important}}
/* Ranks on a tablet: a narrower insignia column, so each rank's insignia note stays on one line */
@media(min-width:641px) and (max-width:1000px){.rk-ins{width:96px}.rk-ins img{height:30px;max-width:90px}.rk-table td.rk-name small{white-space:nowrap}}
/* Stat tiles on a phone: the number beside its label in a compact row, so four tiles do not fill the screen */
/* figures on a phone: two even columns; the icon and number on top, the label in full underneath */
@media(max-width:560px){.adm-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.adm-tile{padding:12px;row-gap:6px}.adm-tile b{font-size:22px}.adm-tile span:last-child{margin:0;font-size:13px;line-height:1.3;hyphens:none;overflow-wrap:normal;word-break:normal}.adm-tile-ic{width:28px;height:28px}}
/* Admin side menu: wide enough that every item stays on one line */
.adm{grid-template-columns:248px minmax(0,1fr)}.adm-nav a{white-space:nowrap}
@media(max-width:900px){.adm{grid-template-columns:minmax(0,1fr)}.adm-nav{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}}
/* Facts lists (label beside value): the label column fits its longest label */
.kv{grid-template-columns:minmax(150px,max-content) minmax(0,1fr)}
@media(max-width:640px){.kv{grid-template-columns:minmax(0,1fr)}}
/* Fleet service counts on a phone: one compact row each, number beside its label */
@media(max-width:560px){.fl-sv{display:flex;align-items:center;gap:12px;text-align:left;padding:8px 12px}.fl-sv b{display:inline;font-size:20px;min-width:2.2ch}}
/* STARS org chart: short lines (kickers, "SGT Name · 2 members") stay on one row; boxes grow a little to fit them */
.oc-box{max-width:260px}.oc-unit{max-width:260px}.oc-k,.oc-unit small,.oc-person small{white-space:nowrap}
/* Fleet service counts: as many per row as fit at 170px, at any width */

/* Calendar month chips: the time on its own small line, then the title (which may wrap; it is never cut off) */
.cal-day .cal-ev b{display:block;margin:0 0 1px;font-size:10.5px;color:var(--c);filter:brightness(1.25)}.cal-day .cal-ev{overflow-wrap:break-word;hyphens:auto;padding:3px 6px}

/* STARS: removal by a STARS Administrator */
.rm-tools{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:10px;margin-bottom:12px}@media(max-width:560px){.rm-tools{grid-template-columns:minmax(0,1fr)}}
.rm-results{display:flex;flex-direction:column}.rm-row{display:flex;align-items:center;gap:10px;padding:9px 2px;border-top:1px solid var(--line)}.rm-row:first-child{border-top:0}
.rm-sum{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}.rm-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-left:3px solid var(--bad);background:color-mix(in srgb,var(--bad) 8%,transparent);border-radius:6px}
.rm-item small{color:var(--mute);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.rm-with ul{margin:4px 0 0;padding-left:18px}.rm-with li{font-size:14px}

/* Feedback dialog: what kind of feedback */
.fb-kinds{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}.fb-kind{border:1px solid var(--line);background:none;color:var(--mute);border-radius:999px;padding:5px 12px;font:600 13px var(--font);cursor:pointer;white-space:nowrap}
.fb-kind:hover{color:var(--ink);border-color:var(--gold)}.fb-kind[aria-pressed=true]{background:color-mix(in srgb,var(--gold) 18%,transparent);border-color:var(--gold);color:var(--ink)}
/* STARS Feedback inbox */
.fbx-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:10px;margin-bottom:14px}
.fbx-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}.fbx-tools input[type=search]{flex:1 1 220px;min-width:0}.fbx-tools select{flex:0 1 190px}
.fbx-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;margin-bottom:10px;border:1px solid var(--gold);border-radius:10px;background:color-mix(in srgb,var(--gold) 8%,transparent)}
.fbx-item{display:grid;grid-template-columns:auto 132px minmax(0,1fr);gap:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);margin-bottom:10px}
.fbx-item.closed{opacity:.8}.fbx-item.urgent{border-color:color-mix(in srgb,var(--bad) 60%,var(--line))}.fbx-item.high{border-color:color-mix(in srgb,var(--warn) 55%,var(--line))}
.fbx-pick{padding-top:4px}.fbx-shot{width:132px;aspect-ratio:16/10;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:var(--panel2);padding:0;cursor:zoom-in}.fbx-shot img{width:100%;height:100%;object-fit:cover;display:block}
.fbx-shot.none{display:grid;place-items:center;color:var(--mute);font-size:12px;cursor:default}
.fbx-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:13px;color:var(--mute)}.fbx-meta b{color:var(--ink)}
.fbx-msg{margin:8px 0;white-space:pre-line;overflow-wrap:anywhere}.fbx-page{font-size:13px;overflow-wrap:anywhere}
.fbx-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.fbx-thread{margin-top:10px;border-top:1px solid var(--line);padding-top:8px;display:flex;flex-direction:column;gap:6px}
.fbx-c{font-size:13.5px;padding:6px 10px;border-radius:8px;background:var(--panel2)}.fbx-c.reply{border-left:3px solid var(--gold)}.fbx-c small{display:block;color:var(--mute);font-size:12px;margin-bottom:2px}
@media(max-width:640px){.fbx-item{grid-template-columns:auto minmax(0,1fr)}.fbx-shot{grid-column:2;width:100%}.fbx-body{grid-column:1/-1}}
/* STARS org chart: the operations level (Patrol, Countywide, Administrative) as cards like the rest of the chart, marked by a
   green band instead of a solid green block; a vacant Assistant Sheriff reads like every other vacant post. */
.oc-box.op{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-top:4px solid #3f8a5f;min-width:210px}
.oc-box.op>b{font:700 14px var(--font);color:var(--ink);letter-spacing:.01em}
.oc-box.op .oc-person b{color:var(--ink)}.oc-box.op .oc-person small{color:var(--mute)}
.oc-person.vacant b,.oc-person.vacant small,.oc-box .vacant{font-style:normal}
.oc-person.vacant .oc-av{background:transparent;border:1px dashed var(--line);color:var(--mute)}
/* Names on the chart are never cut off with "…"; a long one wraps instead. */
.oc-person b{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
/* The Undersheriff's box reads like the others: its line above the name, left-aligned. */
.oc-box.top2{text-align:left}.oc-box.top2 .oc-k{display:block;text-align:left;margin:0 0 4px}.oc-box.top2 .oc-person{justify-content:flex-start}
/* Rosters: Command Staff, Supervisory Staff and Field Staff headings inside a unit's table */
.ro-tbl tr.ro-tier th{background:color-mix(in srgb,var(--gold) 10%,var(--panel2));color:var(--ink);font:700 12px var(--font);letter-spacing:.1em;text-transform:uppercase;text-align:left;padding:7px 12px;border-top:1px solid var(--line)}
@media(max-width:700px){.ro-tbl tr.ro-tier{display:block}.ro-tbl tr.ro-tier th{display:block}}
/* Dragging the org chart moves it; it never selects the text on the cards. */
.oc-wrap,.oc-wrap *{-webkit-user-select:none;user-select:none}.oc-wrap{cursor:grab}.oc-wrap.dragging{cursor:grabbing}

/* STARS org chart in full screen: the card covers the whole screen and the chart takes all the room under its tools. */
.oc-card:fullscreen,.oc-card.oc-max{display:flex;flex-direction:column;background:var(--bg);padding:16px;border-radius:0;margin:0}
.oc-card.oc-max{position:fixed;inset:0;z-index:300}
.oc-card:fullscreen .oc-wrap,.oc-card.oc-max .oc-wrap{flex:1;height:auto!important;max-height:none!important}
/* Rosters: a long post name ("Assistant Sheriff, Administrative Operations") wraps, so the table keeps its columns. */
.ro-tbl td.ro-pos{white-space:normal;min-width:14ch;overflow-wrap:break-word}
/* Rosters: the filled count in plain words, in the page's quiet style. */
.ro-fill{font:500 13px var(--font);color:var(--mute);white-space:nowrap}.ro-fill b{font-weight:600;color:var(--ink)}.ro-vacant{color:var(--warn)}

/* Personnel Administration: file reviews */
.fr-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}.fr-tools input[type=search]{flex:1 1 220px;min-width:0}
.fr-row{display:flex;align-items:center;gap:12px;padding:10px 4px;border-top:1px solid var(--line)}.fr-row:first-child{border-top:0}
.fr-due{white-space:nowrap;color:var(--mute)}.fr-row.soon .fr-due{color:var(--warn)}.fr-row.overdue .fr-due{color:var(--bad);font-weight:600}
@media(max-width:560px){.fr-row{flex-wrap:wrap}.fr-due{margin-left:42px}}
/* Personnel file: the service timeline in the file's quiet style. Titles in the normal text colour; a small marker on the
   line carries the kind of event (gold: rank, green: award, blue: posting or certificate, grey: everything else). */
.pr-time{padding-left:16px;border-left:1px solid var(--line)}
.pr-time li{padding:0 0 16px 6px}
.pr-time li::before,.pr-time li.gold::before,.pr-time li.blue::before,.pr-time li.ok::before,.pr-time li.warn::before,.pr-time li.muted::before{left:-21px;top:6px;width:8px;height:8px;border:0;background:var(--mute)}
.pr-time li.gold::before{background:color-mix(in srgb,var(--gold) 80%,var(--panel))}.pr-time li.ok::before{background:color-mix(in srgb,var(--ok) 80%,var(--panel))}
.pr-time li.blue::before{background:color-mix(in srgb,var(--blue) 70%,var(--panel))}.pr-time li.warn::before{background:color-mix(in srgb,var(--warn) 80%,var(--panel))}
.pr-time li b,.pr-time li.gold b,.pr-time li.blue b,.pr-time li.ok b,.pr-time li.muted b{display:block;color:var(--ink);font-weight:600;font-size:14.5px;margin:1px 0}
.pr-time li b a{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}.pr-time li b a:hover{text-decoration-color:var(--gold)}
.pr-time li>div{font-size:13px;color:var(--mute)}

/* Rosters: the "⋯" menu on each row and unit; post names on one line where there is room. */
.ro-tbl td.ro-act{width:40px;text-align:right;padding-right:8px}.ro-more{font-size:18px;line-height:1;color:var(--mute);opacity:.7}.ro-more:hover,.ro-more:focus-visible{opacity:1;color:var(--ink)}
.ro-unit-head .ro-more{margin-left:6px}

/* Rosters: each operation led by its Assistant Sheriff, then its divisions. */

/* Rosters: an operation is a collapsible section like a division, headed by its Assistant Sheriff. */
.ro-op{padding-left:14px;border-left:3px solid #3f8a5f;margin:20px 0 0;padding:0;border:0}
.ro-op-sum{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 4px;cursor:pointer;list-style:none;border-bottom:1px solid var(--line)}.ro-op-sum::-webkit-details-marker{display:none}
.ro-op-sum>svg{transition:transform .15s;color:var(--mute)}.ro-op:not([open])>.ro-op-sum>svg{transform:rotate(-90deg)}
.ro-op-name{font:700 19px var(--font);color:var(--ink)}.ro-op-lead{font-size:14px;color:var(--mute)}.ro-op-lead a{color:var(--ink);font-weight:600;text-decoration:none}.ro-op-lead a:hover{color:var(--gold)}
.ro-op-lead .ro-vac{color:var(--warn);font-style:normal}.ro-op-body{padding-top:12px}

/* Awards and Commendations: nomination review, vouching and the board */
.aw-review{display:flex;flex-direction:column;gap:10px}.aw-review-head{display:flex;align-items:center;gap:12px}.aw-review .kv{margin:0}
.aw-citation{font-size:14.5px;line-height:1.55;padding:10px 12px;border-left:3px solid var(--gold);background:color-mix(in srgb,var(--gold) 5%,transparent);border-radius:0 8px 8px 0}
.aw-vouches{display:flex;flex-direction:column;gap:6px}.aw-vouch{font-size:14px;padding:8px 10px;border-radius:8px;background:var(--panel2)}.aw-vouch small,.aw-c small{display:block;color:var(--mute);font-size:12px;margin-bottom:2px}
.aw-vouch.mine{border-left:3px solid var(--ok)}.aw-tally{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--ink)}
.aw-votes summary{cursor:pointer;font-size:13.5px;color:var(--mute)}.aw-votes div{margin-top:4px}
.aw-talk{display:flex;flex-direction:column;gap:6px}.aw-c{font-size:14px;padding:8px 10px;border-radius:8px;background:var(--panel2)}.aw-c.question{border-left:3px solid var(--warn)}.aw-c.answer{border-left:3px solid var(--ok)}
.aw-talk textarea{width:100%}.aw-acts{margin-top:2px}
.aw-board-people{display:flex;flex-wrap:wrap;gap:8px}.aw-person{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border:1px solid var(--line);border-radius:999px;font-size:13.5px}.aw-person small{color:var(--gold);font-weight:600}

/* Training: rows for records and programs, a quiet progress line */
.tr-row{display:flex;align-items:center;gap:14px;padding:10px 2px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}.card .tr-row:first-of-type{border-top:0}
a.tr-row:hover b{color:var(--gold)}
.tr-progress{display:flex;align-items:center;gap:8px;min-width:150px}.tr-bar{flex:1;height:4px;border-radius:2px;background:var(--line);overflow:hidden}.tr-bar i{display:block;height:100%;background:color-mix(in srgb,var(--gold) 75%,var(--panel))}
.tr-progress small{color:var(--mute);white-space:nowrap}
@media(max-width:640px){.tr-row{flex-wrap:wrap}.tr-progress{min-width:0;flex:1 1 100%}}
/* Public Inbox: the sender's name, a small press mark for verified press, and their portal username on a quieter line */
.pi-from{display:flex;flex-direction:column;gap:1px;line-height:1.3}.pi-name{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.pi-press{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:color-mix(in srgb,var(--blue) 22%,transparent);color:var(--blue);flex:none}
.pi-account{font-size:12.5px;color:var(--mute)}

/* Rosters: the Office of the Sheriff's command posts, drawn straight into its Headquarters card */
.ro-unit-bare{margin-top:6px}

/* Case board: the LSSD badge, faint, behind the board (it stays put while the cards move) */
.cb-mark{position:absolute;left:50%;top:50%;width:1100px;height:1100px;transform:translate(-50%,-50%);pointer-events:none;background:url(/assets/logo.png) center/contain no-repeat;opacity:.12;filter:grayscale(.3)}
.cb-view::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,.38) 100%)}
.cb-view>.cb-canvas{z-index:1}
/* hovering a card lights up what it is connected to */
.cb-view.tracing .cb-card:not(.lit){opacity:.35}.cb-view.tracing .cb-string{opacity:.15}.cb-view.tracing .cb-string.lit{opacity:1;stroke-width:3.4}
.cb-view.tracing .cb-card.lit{outline-color:color-mix(in srgb,var(--c) 70%,transparent)}
.cb-canvas.cb-anim-cards .cb-card{transition:left .35s ease,top .35s ease,box-shadow .15s,opacity .2s}
.cb-empty .acts{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}

/* Access control, read only (STARS Administrators) */
.ac-row.ro{cursor:default}.ac-row.ro:hover{background:none}

/* Facilities: the list beside the map; each row says what is still missing for the LSSD Website */
.fac-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:16px;align-items:start}
.fac-map{position:sticky;top:76px;padding:10px}.fac-map p{margin:8px 4px 0}
.fac-search{margin-bottom:12px}
.fac-group{padding-bottom:6px}.fac-group .card-head{flex-wrap:wrap}
.fac-row{display:flex;align-items:flex-start;gap:12px;padding:12px 4px;border-top:1px solid var(--line);cursor:pointer;border-radius:8px}
.fac-group .fac-row:first-of-type{border-top:0}.fac-row:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}.fac-row.faded{opacity:.7}
.fac-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:color-mix(in srgb,var(--gold) 14%,transparent);color:var(--gold);flex:none}
.fac-name{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.fac-name b{font-size:15px}
.fac-flags{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.fac-flags:empty{display:none}
.fac-gap{font-size:12.5px;color:var(--warn)}
.fac-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.fac-about{margin:12px 0}
.fac-housed-list h4{margin:12px 0 6px}.fac-housed-list ul{margin:0;padding-left:18px}.fac-housed-list li{margin:3px 0}
button.adm-tile{font:inherit;text-align:left;cursor:pointer}button.adm-tile.on{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
@media(max-width:1000px){.fac-layout{grid-template-columns:1fr}.fac-map{position:static;order:-1}}

/* Access control, tidier: one-line rows, the member count inline, the personnel-file tiers as a list */
.ac-row{padding:12px 16px;gap:16px}.ac-main b{margin-bottom:2px;font-size:14.5px}.ac-main .small{line-height:1.45}
.ac-all{color:var(--ok)}.ac-more{border-bottom:1px dotted var(--mute);cursor:help}
.ac-count{display:inline-flex;align-items:baseline;gap:4px;min-width:0;padding:4px 10px;border-radius:999px;font-size:13px;color:var(--mute);white-space:nowrap}.ac-count b{font-size:14px;color:var(--ink)}.ac-count:hover{border-color:var(--gold)}
.ac-tier-row{display:grid;grid-template-columns:180px minmax(0,1fr);column-gap:16px;row-gap:2px;align-items:baseline;padding:10px 16px;border-top:1px solid var(--line);font-size:14px}.ac-tier-row>span{grid-column:2}.ac-tier-row>span:empty{display:none}
@media(max-width:700px){.ac-tier-row{grid-template-columns:1fr}.ac-tier-row>span{grid-column:1}}
/* Facility Management's map: smaller pins, names on hover (the list beside it names them) */
.fac-map .mv-label{display:none}.fac-map .mv-mark:hover .mv-label,.fac-map .mv-mark:focus-visible .mv-label{display:block}
/* Navigation and controls are not text to copy: the sidebar, the top bar, tabs, buttons, chips and menus cannot be selected
   (the content of a page still can). */
.side,.topbar,.tabs,.seg,.btn,.iconbtn,.menu-pop,.menu-item,.fl-fchip,.adm-tile,.oc-box,.oc-unit,.pill,.count,.cls-badge,.page-acts{-webkit-user-select:none;user-select:none}
.side img,.topbar img{-webkit-user-drag:none}

/* Public organization chart: the connecting lines (drawn by connectOrgChart) sit under the boxes */
.oc2{--oc-line:rgba(214,178,94,.55);position:relative}.oc2>*:not(.oc2-lines){position:relative;z-index:1}
.oc2-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}.oc2-lines path{fill:none;stroke:var(--oc-line);stroke-width:2}
.oc2-ops{border-top:0!important;padding-top:0!important;margin-top:46px!important}
.oc2-cells{border-top:0!important}

/* Public organization chart, cleaner: the Sheriff alone at the top, centered; equal side columns keep the Undersheriff
   straight under the Sheriff; gold borders for the Sheriff and Undersheriff only, quieter boxes for the rest. */
.oc2-head{display:flex;flex-direction:column;align-items:center;margin-bottom:44px}.oc2-head .oc2-box{width:min(300px,100%)}
.oc2-top{grid-template-columns:minmax(0,1fr) minmax(220px,300px) minmax(0,1fr)!important;align-items:start}
.oc2-mid .oc2-box{max-width:none}.oc2-box{box-shadow:none!important}
.oc2-box.cmd{border:1px solid rgba(214,178,94,.7)}.oc2-box.cmd b{text-transform:uppercase;font-size:14px;letter-spacing:.05em}
.oc2-box.big{padding:16px}.oc2-box.big b{font-size:24px}
.oc2-cells{margin-top:22px!important;padding-top:0!important}
.oc2-right{gap:22px!important}
@media(max-width:980px){.oc2-top{grid-template-columns:1fr!important}.oc2-head{margin-bottom:20px}.oc2-mid{order:-1}}
.oc2-list{border:1px solid rgba(214,178,94,.7)!important}

/* Organization chart: related pages under it; on a phone, room on the left for the spine, and the Undersheriff right above the operations */
.oc2-related{display:flex;flex-wrap:wrap;gap:10px 22px;margin:18px 0 8px}.oc2-related a{font-weight:600;color:var(--gold,#d6b25e);text-decoration:none}.oc2-related a:hover{text-decoration:underline}
@media(max-width:980px){.oc2>.oc2-head,.oc2>.oc2-top,.oc2>.oc2-ops{margin-left:22px}.oc2-head{align-items:stretch}.oc2-head .oc2-stars{text-align:center}.oc2-head .oc2-box{width:auto}.oc2-mid{order:3!important}.oc2-ops{margin-top:22px!important}}
/* Rosters on a phone: a header's filled/vacant count goes to its own line under the name, so nothing runs past the card */
@media(max-width:640px){.ro-div>summary,.ro-unit-head,.ro-op-sum{flex-wrap:wrap;row-gap:2px}.ro-div>summary .ro-fill,.ro-unit-head .ro-fill{order:9;flex-basis:100%;white-space:normal;padding-left:25px}.ro-div>summary .grow,.ro-unit-head .grow{flex:1 1 0;min-width:0}}

/* Vacancies: "Where you stand" is one surface inside its card (no box inside the box) */
.card>.ws{border:0;background:none;padding:0;box-shadow:none}.card>.ws .ws-head{margin-bottom:6px}

/* STARS Settings > Overview: the latest backups */
.bk-list{list-style:none;margin:10px 0 0;padding:0}.bk-list li{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:13.5px}

/* Vacancies: the panel's scores on an applicant */
.vac-panel{list-style:none;margin:0 0 12px;padding:0}.vac-panel li{padding:8px 0;border-top:1px solid var(--line)}.vac-panel li:first-child{border-top:0}

/* Facility Management: who commands it, and its figures */
.fac-cmd{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 12px}.fac-cmd a{display:flex;flex-direction:column;text-decoration:none;color:var(--ink)}.fac-cmd small{color:var(--mute)}
.fac-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:0 0 12px}.fac-figs>div{padding:10px 12px;border-radius:8px;background:var(--panel2)}.fac-figs b{display:block;font-size:18px}.fac-figs small{color:var(--mute)}
.fac-note{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.view-only-note{display:flex;align-items:center;gap:6px;margin:0 0 12px;font-size:13px;color:var(--mute)}

/* The Deputy Sheriff page ends on a photo: the call to apply over a darkened picture */
.start-photo{position:relative;padding:84px 16px;background:#0b1510 var(--start-img) center 35%/cover no-repeat;color:#fff;isolation:isolate}
.start-photo::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,14,10,.55),rgba(6,14,10,.82))}
.start-photo .start h2{color:#fff;font-size:clamp(24px,3.2vw,34px)}.start-photo .start p{color:#dfe6dc;max-width:520px;margin:0 auto 22px}

/* Fleet Management overview: a calm report (rows with a small dot and the count, one thin readiness line) */
.fl-ready{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:4px 0 8px;font-size:15px}.fl-ready b{font-size:20px;margin-right:2px}
.fl-ready-line{height:4px;border-radius:2px;background:var(--line);overflow:hidden;margin-bottom:12px}.fl-ready-line i{display:block;height:100%;background:color-mix(in srgb,var(--ok) 70%,var(--panel))}
.fl-sum{display:flex;flex-direction:column;margin:0 0 10px}
.fl-sum-row{display:flex;align-items:center;gap:10px;padding:8px 2px;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);font:inherit;font-size:14px;text-align:left;cursor:pointer}
.fl-sum-row:first-child{border-top:0}.fl-sum-row:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}.fl-sum-row b{font-variant-numeric:tabular-nums}
.fl-sum-row .fl-dot.bad{background:var(--bad)}.fl-sum-row .fl-dot.warn{background:var(--warn)}.fl-sum-row .fl-dot.ok{background:var(--ok)}
.fl-urgent h4{margin:12px 0 4px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.fl-plate-txt{font:600 13px var(--font);letter-spacing:.04em;font-variant-numeric:tabular-nums;color:var(--ink);min-width:86px}

/* Fleet Management: quieter bars for the vehicles by division; the minor-defect dot */
.fl-bureaus i{height:4px!important;border-radius:2px!important;background:color-mix(in srgb,var(--gold) 55%,var(--panel))!important}
.fl-sum-row .fl-dot.none{background:var(--mute)}
a.fl-plate-txt{text-decoration:none}a.fl-plate-txt:hover{color:var(--gold)}
/* Drag to reorder: a grip on hover, and the item being moved dimmed */
.sortable-item{cursor:grab}.sortable-item.dragging{opacity:.45}.sortable-item:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
tr.sortable-item>td:first-child{position:relative}tr.sortable-item:hover>td:first-child::before,div.sortable-item:hover::before{content:"⋮⋮";position:absolute;left:2px;top:50%;transform:translateY(-50%);color:var(--mute);font-size:11px;letter-spacing:-2px}
div.sortable-item{position:relative}

/* Signatures: the name as written by hand, in the handwriting face the device has (Windows, macOS, then any script face),
   in the text colour: white on the dark theme, black on paper and in print. The only place a second face is used. */
:root{--sig-font:"Segoe Script","Lucida Handwriting","Snell Roundhand","Bradley Hand","Apple Chancery","Brush Script MT","Ink Free",cursive}
.sig-hand,.sig-ink{font-family:var(--sig-font);font-style:normal;font-weight:400;letter-spacing:0;line-height:1.25;color:var(--ink,#1a2a20)}
.sig-hand{font-size:24px;overflow-wrap:anywhere}
.cert-foot .sig.sig-ink,.lab-sign .sig.sig-ink{font-size:19px;font-weight:400;padding-bottom:2px}

/* Fleet vehicle cards, calm: an even border (no coloured stripe, no lift), the model as the title, the callsign and
   registration as quiet text, the status as a dot and a word, and a thin service line coloured only when due */
.fl-card{border-left-width:1px;border-left-color:var(--line);border-radius:10px;gap:6px;transition:border-color .15s}
.fl-card:hover,.fl-card:focus-visible{transform:none;box-shadow:none;border-color:color-mix(in srgb,var(--gold) 45%,var(--line))}
.fl-card.is-ok,.fl-card.is-blue,.fl-card.is-warn,.fl-card.is-bad{border-left-color:var(--line)}
.fl-card:hover.is-ok,.fl-card:hover.is-blue,.fl-card:hover.is-warn,.fl-card:hover.is-bad{border-left-color:color-mix(in srgb,var(--gold) 45%,var(--line))}
.fl-card .fl-kind{width:auto;height:auto;background:none;border:0;color:var(--mute)}
.fl-card .fl-model{font-size:15px;font-weight:600;line-height:1.3}
.fl-ids{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12.5px;color:var(--mute);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.fl-ids span+span::before{content:"·";margin-right:10px;color:var(--mute)}.fl-ids .fl-plate-txt{min-width:0;font-size:12.5px;color:var(--mute)}
.fl-card .fl-who{font-size:13px;color:var(--ink)}
.fl-card .fl-svc-t small{font-size:12px}.fl-card .fl-svc-t small.ok{color:var(--mute)}
.fl-card .fl-gauge{height:3px;border-radius:2px}.fl-card .fl-gauge i{border-radius:2px;background:color-mix(in srgb,var(--ink) 30%,transparent)}
.fl-card .fl-gauge.warn i{background:var(--warn)}.fl-card .fl-gauge.bad i{background:var(--bad)}
.fl-card .fl-card-b{padding-top:8px}
.fl-card .fl-chip,.fl-card .fl-card-b>.pill{border:0;background:none;padding:2px 0;color:var(--ink);font-size:13px;gap:7px}
.fl-card .fl-chip::before,.fl-card .fl-card-b>.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--mute);flex:none}
.fl-card .fl-chip.ok::before,.fl-card .fl-card-b>.pill.ok::before{background:var(--ok)}.fl-card .fl-chip.blue::before,.fl-card .fl-card-b>.pill.blue::before{background:var(--blue)}
.fl-card .fl-chip.warn::before,.fl-card .fl-card-b>.pill.warn::before{background:var(--warn)}.fl-card .fl-chip.bad::before,.fl-card .fl-card-b>.pill.bad::before{background:var(--bad)}
.fl-card .fl-chip svg{color:var(--mute)}.fl-card .fl-chip:hover{filter:none;color:var(--gold)}
.fl-card .iconbtn{color:var(--mute)}

/* Transfers: the releasing and the receiving command, each with its decision and comment */
.tr-sides{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.tr-side{padding:10px 0;border-top:1px solid var(--line)}.tr-side:first-of-type{border-top:0}
.tr-side-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tr-side-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);min-width:76px}
.tr-side-note{margin:6px 0 0;font-size:14px;white-space:pre-wrap}.tr-side-acts{margin:8px 0 0}

/* A filed report: each section's answers in one aligned list; long questions wrap in the label column */
.rep-kv{grid-template-columns:minmax(120px,200px) minmax(0,1fr);gap:8px 24px;margin:0 0 6px;font-size:14.5px}
.rep-kv dt{font-size:13.5px;line-height:1.45;padding-top:1px}.rep-kv dd{line-height:1.5;overflow-wrap:anywhere}
.rep-kv dd .pre{white-space:pre-wrap}
@media (max-width:640px){.rep-kv{grid-template-columns:1fr;gap:2px}.rep-kv dt{margin-top:10px}}
.rep-doc>.kv{grid-template-columns:minmax(120px,200px) minmax(0,1fr);gap:8px 24px;font-size:14.5px}.rep-doc>.kv dt{font-size:13.5px}
@media (max-width:640px){.rep-doc>.kv{grid-template-columns:1fr;gap:2px}}
/* Department Structure, list view: one aligned row per post (the post on the left, who holds it on the right) */
.posts{gap:0}.post{display:grid;grid-template-columns:minmax(150px,240px) minmax(0,1fr);gap:2px 16px;align-items:baseline;padding:7px 0;border-left:0;border-top:1px solid var(--line)}
.post:first-child{border-top:0}.post-name{font-weight:500;font-size:13.5px}.post-who{display:flex;flex-wrap:wrap;gap:2px 0}.post .vacant{font-style:normal;font-size:13px}
@media (max-width:640px){.post{grid-template-columns:1fr}}
.posts{container-type:inline-size}
@container (max-width:440px){.post{grid-template-columns:minmax(0,1fr);gap:1px}}
/* The Assistant Sheriff heading an operation, under the operation's title */
.op-lead{margin:-4px 0 12px;max-width:560px}.op-lead .post{border-top:0;padding:2px 0}

/* Department Structure list: posts edited in place */
.post-name{display:flex;align-items:center;gap:4px;justify-content:flex-start}.post-name .iconbtn{opacity:.55}.post:hover .post-name .iconbtn,.post-name .iconbtn:focus-visible{opacity:1}
.post-add{display:inline-flex;align-items:center;gap:4px;margin-top:6px}
.unit-head .unit-edit,.org-head .unit-edit{margin-left:auto;opacity:.55}.unit:hover .unit-edit,.org-head:hover .unit-edit,.unit-edit:focus-visible{opacity:1}
/* History timeline: one thin line with a dot per year (no box per entry), the year beside it */
.hi-tl{gap:0;max-width:900px}
.hi-tl li{position:relative;grid-template-columns:90px minmax(0,1fr);gap:28px;padding:0 0 22px;border:0;border-radius:0;background:none}
.hi-tl li::before{content:"";position:absolute;left:104px;top:8px;width:9px;height:9px;border-radius:50%;background:#e2c77e}
.hi-tl li::after{content:"";position:absolute;left:108px;top:22px;bottom:2px;width:1px;background:rgba(226,199,126,.35)}
.hi-tl li:last-child{padding-bottom:0}.hi-tl li:last-child::after{display:none}
.hi-tl li>b{text-align:right;font-size:16px}.hi-tl li>div{padding-left:6px}
@media(max-width:800px){.hi-tl li{grid-template-columns:1fr;gap:2px;padding-left:22px}.hi-tl li::before{left:0}.hi-tl li::after{left:4px}.hi-tl li>b{text-align:left}.hi-tl li>div{padding-left:0}}
/* Page check: the site under test renders in a frame kept off screen (full size, so pages lay out as they really do) */
.page-check-frame{position:fixed;left:-20000px;top:0;width:1280px;height:900px;border:0}
.pc-site{margin-top:14px}.pc-slow{margin-top:10px}.pc-slow summary{cursor:pointer;color:var(--mute);font-size:13px}
.pc-progress{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:9999;padding:10px 16px;border-radius:8px;background:var(--panel);border:1px solid var(--gold);color:var(--ink);font-size:13.5px;box-shadow:var(--shadow)}
/* Requests: one row per request (icon, what it is, when it was sent, who it waits on, its status) */
.mr-list{padding:0}
.mr-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;align-items:start;padding:13px 18px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}
.mr-row:first-child{border-top:0}a.mr-row:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}
.mr-ic{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--panel2);color:var(--gold)}
.mr-top{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}.mr-what{color:var(--ink)}
.mr-sub{font-size:13px;color:var(--mute);margin-top:2px}.mr-note{margin:6px 0 0;font-size:13.5px;color:var(--mute);white-space:pre-wrap}
@media (max-width:560px){.mr-row{grid-template-columns:28px minmax(0,1fr)}.mr-row>.pill{grid-column:2;justify-self:start}}
/* "Wanted" beside the classification, in the same small tag style */
.wanted-tag{color:var(--bad)}.cf-card-top,.cf-numrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}

/* The maintenance screen */
.maint-card{text-align:center}
.maint-card h1{margin:4px 0 8px}.maint-msg{font-size:15.5px;line-height:1.55;margin:0 auto 4px;max-width:380px;white-space:pre-wrap}
.maint-admin{display:flex;flex-direction:column;gap:2px;margin:18px 0 10px;padding-top:16px;border-top:1px solid var(--line)}.maint-card form{text-align:left}

/* STARS announcement, in the website's story style: a green header band, a reading column and a side column */
.ann-art{padding:0;overflow:hidden}
.ann-hero{position:relative;padding:30px 34px 22px;color:#f1f4ef;background:linear-gradient(135deg,#1a4430,#0c2116);border-bottom:3px solid var(--gold)}
.ann-hero.has-img{background:linear-gradient(180deg,rgba(6,14,10,.55),rgba(6,14,10,.88)),var(--ann-img) center/cover no-repeat;padding-top:90px}
.ann-kicker{display:flex;flex-wrap:wrap;gap:4px 0;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#e2c77e}
.ann-kicker span+span::before{content:"·";margin:0 8px;color:rgba(226,199,126,.6)}
.ann-art .ann-hero h1{font-size:clamp(25px,3vw,34px);line-height:1.15;margin:10px 0 8px;color:#fff}
.ann-dek{font-size:17px;line-height:1.5;color:#d6dfd8;margin:0 0 6px;max-width:760px}.ann-flags{margin-top:10px}.ann-flags:empty{display:none}
.ann-cols{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:28px;padding:6px 34px 20px}
.ann-main .art-byline{margin-top:12px}.ann-main .article-body{padding:14px 0 6px;max-width:760px}.ann-main .art-ackbar{margin:12px 0 4px}
.ann-side{display:flex;flex-direction:column;gap:14px;padding-top:18px}
.ann-box{border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--panel2)}.ann-box h4{margin:0 0 8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.ann-side .art-receipts{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:14px 16px}.ann-side .art-receipts .art-reads{width:100%}
.ann-more{display:flex;flex-direction:column;gap:2px;padding:9px 0;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}.ann-more:first-of-type{border-top:0;padding-top:0}
.ann-more small{color:var(--mute);font-size:12px}.ann-more b{font-weight:600;line-height:1.35}.ann-more:hover b{color:var(--gold)}
@media (max-width:1000px){.ann-cols{grid-template-columns:1fr}.ann-side{padding-top:0}}
@media (max-width:640px){.ann-hero,.ann-cols{padding-left:18px;padding-right:18px}}
.ann-side .art-receipts .linkbtn{align-self:flex-start}
/* Department Statistics: headline figures, the strength chart and the tables */
.st-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px}
.st-fig{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);text-decoration:none}
.st-fig b{font-size:22px;font-variant-numeric:tabular-nums}.st-fig span{font-size:12.5px;color:var(--mute)}a.st-fig:hover{border-color:color-mix(in srgb,var(--gold) 45%,var(--line))}.st-fig.warn b{color:var(--warn)}
.st-cols{margin-bottom:14px;align-items:start}
.st-chart{width:100%;height:auto;display:block}.st-bar{fill:color-mix(in srgb,var(--gold) 55%,var(--panel))}.st-val{fill:var(--ink);font-size:12px;font-weight:600}.st-lbl{fill:var(--mute);font-size:11px}

.cp-or{display:flex;align-items:center;gap:10px;margin:14px 0 6px;color:var(--mute);font-size:12.5px}.cp-or::before,.cp-or::after{content:"";flex:1;height:1px;background:var(--line)}
/* Choose a character: the waiting requests stand apart from the button that starts a new one */
.login-card .ch-reqs{margin:8px 0 22px}.ch-reqs li{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
/* Where You Stand inside a card: the tinted box keeps its inner padding, so nothing touches the coloured edge */
.card>.ws.ok,.card>.ws.warn,.card>.ws.bad,.card>.ws.muted{padding:14px 16px 14px 20px;border-radius:10px}

/* The manual's Contents stays in view while the manual scrolls; the section being read is marked */
.with-aside.manual>.toc{position:sticky;top:76px;max-height:calc(100vh - 96px);overflow:auto}
.toc a.on{background:color-mix(in srgb,var(--gold) 14%,transparent);color:var(--ink)}.toc a.on .mono{color:var(--gold)}
@media(max-width:1000px){.with-aside.manual>.toc{position:static;max-height:none}}
/* Personnel Administration > Requests: the figures that filter, the tools and the count */
.rq-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.rq-fig{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.rq-fig b{font-size:20px;font-variant-numeric:tabular-nums}.rq-fig span{font-size:12.5px;color:var(--mute)}.rq-fig.warn b{color:var(--warn)}
.rq-fig:hover{border-color:color-mix(in srgb,var(--gold) 45%,var(--line))}.rq-fig.on{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.rq-tools{flex-wrap:wrap}.rq-count{margin:4px 2px 8px}
.avatar.is-badge,.sheriff .is-badge{object-fit:contain;background:none;border:0;border-radius:0;box-shadow:none}
/* Figures two to a row on phones (Department Statistics, Requests) */
.st-figs{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr))}.rq-figs{grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr))}
@media (max-width:560px){.st-figs,.rq-figs{grid-template-columns:1fr 1fr}.st-fig,.rq-fig{padding:10px 12px}.st-fig b,.rq-fig b{font-size:18px}}
.fl-empty{text-align:center;padding:34px 20px}.fl-empty h3{margin:0 0 6px}.fl-empty p{max-width:520px;margin:0 auto}

/* Community Portal: the one-time "Who are you in the city?" step, as one centred column */
.cp-name .cp-si-lede{max-width:420px;margin-bottom:22px}
.cp-name form{width:min(360px,100%);margin:0 auto;text-align:left;display:flex;flex-direction:column;gap:12px}
.cp-name form label,.cp-name form input{width:100%}
.cp-name form .btn{width:100%;justify-content:center;margin:0}
.cp-name form>div:last-child{display:flex;width:100%}
.cp-name .cp-si-back{margin-top:18px}
/* Community Portal header on phones: the badge and "LSSD Community Portal" (the full name wrapped onto four lines) */
@media (max-width:600px){.cp-head .pub-brand b{display:none}.cp-head .pub-brand small{font-size:12.5px;font-weight:700;letter-spacing:.06em;color:var(--gold2)}.cp-head .pub-brand img{width:40px}.cp-head .pub-brand{gap:8px}}

/* Set Up STARS: the first sign-in on a fresh install */
.setup-card{width:min(520px,100%)}.setup-kicker{display:block;margin:4px 0 2px;font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.setup-note{display:flex;gap:10px;align-items:flex-start;text-align:left;margin:14px 0 18px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--gold) 35%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--gold) 7%,transparent);font-size:14px;line-height:1.5;color:var(--ink)}
.setup-note svg{flex:none;margin-top:2px;color:var(--gold)}.setup-card form{text-align:left}

/* Sign in with Discord: Discord's own look (blurple, white logo and text, 8px corners), in STARS and the portal */
.dc-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:46px;padding:10px 18px;border:0;border-radius:8px;background:#5865f2;color:#fff;font:600 15.5px var(--font);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background .15s,transform .15s;box-shadow:0 1px 0 rgba(0,0,0,.25)}
.dc-btn:hover,.dc-btn:focus-visible{background:#4752c4;color:#fff}.dc-btn:active{transform:translateY(1px)}.dc-btn .dc-mark{flex:none}
/* The STARS sign-in card: no rules between the parts, the Department as one line, a short footnote */
.signin-card .login-sub{margin:4px 0 0}.signin-dept{margin:14px 0 0;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}
.signin-actions{margin:26px 0 0;display:flex;flex-direction:column;gap:10px}
.signin-note{margin:14px 0 0;font-size:13px;line-height:1.55;color:var(--mute)}.signin-note b{color:var(--ink);font-weight:600}
.signin-back{display:inline-block;margin-top:22px;font-size:13px;color:var(--mute);text-decoration:none}.signin-back:hover{color:var(--gold)}
/* STARS sign-in, refined: a centred column with room to breathe; the Department as a quiet label between two hairlines */
.signin-card{width:min(420px,100%);padding:38px 34px 26px;border-radius:16px}
.signin-card img{width:92px}.signin-card h1{margin:16px 0 4px;font-size:32px;letter-spacing:.12em}
.signin-card .login-sub{margin:0 auto;max-width:260px;font-size:13.5px}
.signin-dept{display:flex;align-items:center;gap:12px;margin:22px 0 0;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);text-wrap:balance}
.signin-dept::before,.signin-dept::after{content:"";flex:1;height:1px;background:var(--line)}
.signin-actions{margin:20px 0 0}.signin-card .idle-note{margin:22px 0 0}
.signin-note{margin:16px auto 0;max-width:300px;font-size:12.5px}
.signin-back{margin-top:20px;font-size:12.5px}
/* Community Portal sign-in (Discord): the same calm, centred card */
.cp-auth.cp-signin-card{padding:32px 30px 26px}
.cp-signin{text-align:center;max-width:360px;margin:0 auto}
.cp-signin-badge{width:64px;filter:drop-shadow(0 6px 18px rgba(212,173,90,.28))}
.cp-signin .cp-auth-h{margin:14px 0 6px;font-size:21px;line-height:1.3;text-wrap:balance}
.cp-signin-sub{margin:0 0 20px;font-size:14px;color:var(--mute);line-height:1.5}
.cp-signin-note{margin:16px 0 0;font-size:12.5px;line-height:1.55;color:var(--mute)}.cp-signin-note b{color:var(--ink);font-weight:600}
@media (max-width:900px){.cp-auth.cp-signin-card{max-width:480px;width:100%;margin:0 auto}}
.signin-dept{display:block;margin:20px 0 0;font-size:11px;letter-spacing:.12em}.signin-dept::after{content:none}
.signin-dept::before{display:block;width:36px;height:2px;margin:0 auto 14px;background:var(--gold);opacity:.75;flex:none}
/* Community Portal welcome: the steps as one list in one card, and the sign-in card as tall as the column beside it */
.cp-welcome{align-items:stretch}
.cp-welcome h2{font-size:22px;margin:0 0 12px}
.cp-how{margin:0 0 16px;gap:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.cp-how li{padding:14px 18px;border:0;border-top:1px solid var(--line);border-radius:0;background:none;align-items:center}
.cp-how li:first-child{border-top:0}
.cp-how .cp-ic{width:34px;height:34px;border-width:1.5px}.cp-how .cp-ic svg{width:17px;height:17px}
.cp-how b{font-size:15px}.cp-how span:last-child{font-size:13.5px}
.cp-welcome .cp-note-2{margin:0 0 12px;padding:12px 16px}
.cp-welcome>div>p.small{margin:0}
.cp-auth.cp-signin-card{display:flex;flex-direction:column;justify-content:center;margin:0}
@media (max-width:900px){.cp-auth.cp-signin-card{margin:0 auto}}
/* Numbered set-up steps (e.g. the STARS Discord bot) */
.steps-list{margin:10px 0 12px;padding-left:20px;display:grid;gap:6px;line-height:1.5}.steps-list li::marker{color:var(--gold);font-weight:700}
/* ---------- Department ID card (panel/id-card.js): the real card size, 85.6 x 54 mm; fixed colours so screen and print match ---------- */
/* ---------- The Department ID card (panel/id-card.js): a live card that turns over and tilts ---------- */
.idv-view{display:grid;justify-items:center;gap:12px;padding:8px 0 4px}.idv-hint{margin:0}
.idv-stage{--rx:0deg;--ry:0deg;--mx:50%;--my:50%;width:min(460px,100%);perspective:1100px;container-type:inline-size}
.idv-card{position:relative;width:100%;aspect-ratio:85.6/54;transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(var(--ry));transition:transform .18s ease-out;cursor:pointer;outline:none}
.idv-card.flipped{transform:rotateX(var(--rx)) rotateY(calc(180deg + var(--ry)))}.idv-card{transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.idv-stage:hover .idv-card{transition:transform .18s ease-out}.idv-card:focus-visible{box-shadow:0 0 0 3px var(--gold);border-radius:4.5cqw}
.idv-face{position:absolute;inset:0;border-radius:4.5cqw;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;color:#f3ecd6;
  box-shadow:0 18px 40px rgba(0,0,0,.45),inset 0 0 0 1px rgba(214,178,94,.35);font-size:3.2cqw;display:flex;flex-direction:column}
.idv-front{background:radial-gradient(120% 90% at 0% 0%,#24563d 0%,#163a29 45%,#0d2419 100%)}
.idv-front.civ{background:radial-gradient(120% 90% at 0% 0%,#2f4a5c 0%,#1e3443 45%,#132430 100%)}
.idv-pattern{position:absolute;inset:0;opacity:.18;background:repeating-radial-gradient(circle at 78% 120%,transparent 0 6px,rgba(214,178,94,.55) 6px 7px),repeating-linear-gradient(115deg,transparent 0 10px,rgba(255,255,255,.05) 10px 11px);pointer-events:none}
.idv-top{position:relative;display:flex;align-items:center;gap:2.4cqw;padding:3.4cqw 4.4cqw 0}.idv-top img{width:8.5cqw;height:8.5cqw;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}
.idv-top b{display:block;font-size:3.1cqw;letter-spacing:.02em;line-height:1.15}.idv-top small{display:block;font-size:2.4cqw;color:#d6b25e;font-style:italic}
.idv-main{position:relative;flex:1;display:flex;gap:4cqw;align-items:center;padding:2.6cqw 4.4cqw;min-height:0}
.idv-photo{width:22cqw;aspect-ratio:3/4;object-fit:cover;border-radius:2cqw;border:.6cqw solid #d6b25e;box-shadow:0 4px 12px rgba(0,0,0,.35);flex:none;background:#0d2419}
.idv-initials{display:grid;place-items:center;font-size:8cqw;font-weight:800;color:#d6b25e}
.idv-who{display:grid;gap:1.1cqw;min-width:0}.idv-name{font-size:5.4cqw;font-weight:800;line-height:1.05;overflow-wrap:anywhere;color:#fff}
.idv-rank{display:flex;align-items:center;gap:1.6cqw;font-size:3.3cqw;font-weight:600;color:#f0d48e}.idv-insig{height:4.6cqw;width:auto}
.idv-unit{font-size:2.9cqw;color:#c9d3cb}
.idv-facts{display:flex;gap:4cqw;margin:1cqw 0 0}.idv-facts dt{font-size:2.1cqw;text-transform:uppercase;letter-spacing:.12em;color:#9fb3a5}.idv-facts dd{margin:0;font-size:3.4cqw;font-weight:700;letter-spacing:.04em}
.idv-band{position:relative;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(90deg,#b8923f,#e7c97b 50%,#b8923f);color:#14281d;padding:1.5cqw 4.4cqw;font-weight:800;letter-spacing:.3em;text-transform:uppercase;font-size:2.5cqw}
.idv-front.civ .idv-band{background:linear-gradient(90deg,#9fb0bb,#dfe7ec 50%,#9fb0bb)}
.idv-seal{width:7cqw;height:7cqw;border-radius:50%;display:grid;place-items:center;margin:-3cqw 0;background:conic-gradient(from 0deg,#ffd27a,#9ef0d0,#a7b8ff,#ffb3e1,#ffd27a);box-shadow:0 0 0 .5cqw rgba(20,40,29,.6)}
.idv-seal img{width:5cqw;height:5cqw;object-fit:contain}
/* the holographic light: a soft glare that follows the pointer */
.idv-foil{position:absolute;inset:0;pointer-events:none;mix-blend-mode:soft-light;opacity:.55;background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.55),transparent 42%),linear-gradient(115deg,transparent 30%,rgba(158,240,208,.25) 45%,rgba(167,184,255,.25) 55%,transparent 70%);background-size:100% 100%,220% 220%;background-position:0 0,var(--mx) var(--my)}
.idv-back{transform:rotateY(180deg);background:linear-gradient(160deg,#f7f3e6,#ece4cc);color:#18281f}
.idv-stripe{height:10cqw;margin-top:4.5cqw;background:linear-gradient(180deg,#151a17,#2a312c 60%,#151a17)}
.idv-back-main{display:flex;align-items:flex-start;gap:4cqw;padding:3cqw 4.4cqw 0}
.idv-empno{display:grid}.idv-empno small{font-size:2.2cqw;text-transform:uppercase;letter-spacing:.14em;color:#5b6d62}.idv-empno b{font-size:6cqw;letter-spacing:.08em;font-variant-numeric:tabular-nums}
.idv-facts-back{display:grid;grid-template-columns:auto auto;gap:.4cqw 2.6cqw;margin:0;flex:1}.idv-facts-back>div{display:contents}.idv-facts-back dt{color:#5b6d62}.idv-facts-back dd{font-size:2.8cqw}
.idv-ribbons{display:grid;gap:.8cqw}.idv-ribbons .ribbon{display:block;width:11cqw;height:3.2cqw}
.idv-back-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:4cqw;padding:2.2cqw 4.4cqw 0}
.idv-code .prop-barcode{width:30cqw;height:8cqw;display:block}.idv-sign{display:grid;justify-items:end;text-align:right;min-width:0}
.idv-sig{font-family:var(--sig-font);font-size:5.4cqw;line-height:1;color:#1d2433;border-bottom:.3cqw solid #9c8d63;padding:0 1cqw .6cqw}.idv-sign small{font-size:1.9cqw;color:#5b6d62;margin-top:.6cqw}
.idv-terms{margin:auto 0 0;padding:1.6cqw 4.4cqw 2.6cqw;font-size:1.85cqw;line-height:1.4;color:#4c5c52}
.idv-stamp{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-16deg);padding:1.2cqw 4cqw;border:.7cqw solid;border-radius:1.6cqw;font-size:5.6cqw;font-weight:900;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;background:rgba(0,0,0,.18)}
.idv-stamp.warn{color:#f3b44f;border-color:#f3b44f}.idv-stamp.bad{color:#ff6b62;border-color:#ff6b62}.idv-stamp.void{color:#c9ced1;border-color:#c9ced1}
.idv-back .idv-stamp{background:rgba(255,255,255,.4)}.idv-back .idv-stamp.warn{color:#a8630a;border-color:#a8630a}.idv-back .idv-stamp.bad{color:#c0392b;border-color:#c0392b}.idv-back .idv-stamp.void{color:#6b7279;border-color:#6b7279}
@media (prefers-reduced-motion:reduce){.idv-card,.idv-stage:hover .idv-card{transition:none}}
/* Seniority List */
.sn-who{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.sn-who:hover b{color:var(--gold)}
.sn-place{font-variant-numeric:tabular-nums;color:var(--gold)}
/* Bulk actions on Personnel Administration > Members */
.bulk-bar{position:sticky;top:64px;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));border-radius:var(--r);background:color-mix(in srgb,var(--gold) 10%,var(--panel));box-shadow:var(--shadow)}
.bulk-bar[hidden]{display:none}.bulk-all{margin:0 0 6px}.bulk-pick{width:18px;height:18px;accent-color:var(--gold);cursor:pointer}
/* Request waiting times and the reminder setting */
.waited{font-size:13px;white-space:nowrap;color:var(--mute)}.waited.late{color:var(--warn);font-weight:600}
.rq-remind{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;color:var(--mute)}.rq-remind svg{color:var(--gold)}.rq-remind select{width:auto}
/* Needs You Today (dashboard) */
.today{margin-bottom:18px}.today-head{padding:14px 16px 8px}.today-head h3{margin:0}
.today-list{display:flex;flex-direction:column}.today-row{display:flex;align-items:center;gap:12px;padding:11px 16px;border-top:1px solid var(--line);color:inherit;text-decoration:none}
.today-row:hover,.today-row:focus-visible{background:var(--raise)}.today-ic{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:color-mix(in srgb,var(--gold) 14%,transparent);color:var(--gold)}
.today-main{flex:1;min-width:0;display:flex;flex-direction:column}.today-main b{font-weight:600;overflow-wrap:anywhere}.today-main small{color:var(--mute);font-size:12.5px}
.today-more{padding:8px 16px 12px;margin:0;border-top:1px solid var(--line)}
/* Verify a Deputy (LSSD Website) */
.vd{max-width:760px}.vd-form{margin:18px 0 10px}.vd-label{display:block;font-weight:600;margin-bottom:6px}
.vd-row{display:flex;gap:10px;flex-wrap:wrap}.vd-row input{flex:1 1 220px;min-width:0;font-size:17px;letter-spacing:.04em}
.vd-res{display:flex;gap:12px;align-items:flex-start;margin:12px 0;padding:14px 16px;border-radius:12px;border:1px solid var(--line)}
.vd-res small{display:block;color:var(--mute);font-size:13px}.vd-res b{display:block;font-size:20px;margin-top:2px}.vd-res p{margin:0}
.vd-res.ok{border-color:color-mix(in srgb,var(--ok) 55%,var(--line));background:color-mix(in srgb,var(--ok) 9%,transparent)}.vd-res.ok svg{color:var(--ok)}
.vd-res.no{border-color:color-mix(in srgb,var(--warn) 55%,var(--line));background:color-mix(in srgb,var(--warn) 8%,transparent)}.vd-res.no svg{color:var(--warn)}
.vd-res.info svg{color:var(--gold)}.vd-note{color:var(--mute);font-size:14.5px;margin:18px 0}
/* Saved filters on list pages */
.sf{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.sf select{width:auto;max-width:220px}
/* Accessibility pass (2026-10-19): text on coloured fills reaches 4.5:1 in both themes */
.cls-banner.cls-internal .cls-badge{background:color-mix(in srgb,var(--blue) 62%,#000);color:#fff}
.cls-banner.cls-confidential .cls-badge,.btn.danger{background:color-mix(in srgb,var(--bad) 72%,#000);color:#fff}
.btn.danger:hover,.btn.danger:focus-visible{background:color-mix(in srgb,var(--bad) 62%,#000)}
.civ-state.open{background:#17744a}
/* Read by screen readers, not shown */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* A draft kept on this computer, brought back */
.draft-note{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:9px 12px;border-radius:10px;border:1px dashed color-mix(in srgb,var(--gold) 55%,var(--line));background:color-mix(in srgb,var(--gold) 8%,transparent);font-size:13.5px}
.draft-note svg{color:var(--gold)}.draft-note .linkbtn{margin-left:auto}
/* Bug and visual hunt (2026-10-19) */
.cbx-type{color:color-mix(in srgb,var(--c) 80%,var(--ink))}
.page-msg .page-msg-title{font-size:22px;line-height:1.25;margin:2px 0 0}
/* A signature on paper (certificates, posters) is written in dark ink; on screen elsewhere it follows the text colour */
.certificate .sig-ink,.poster .sig-ink{color:#1d2433}
@media print{.sig-ink{color:#000}}
/* Documents (reports, lab requests, certificates) carry the page's main heading, sized as before */
.doc-head .doc-title{font-size:21px;font-weight:700;line-height:1.2;letter-spacing:-.01em;margin:2px 0;overflow-wrap:anywhere}
h1.cert-name{margin:0;line-height:1.2;letter-spacing:normal}
/* Page Check opens the website and the portal at the size of the screen it runs on (a phone checks the phone layout) */
.page-check-frame{width:100vw;height:100vh}
.nophoto,.mini-wanted .nophoto{color:#4f4532}
.cp-track-s.open{color:var(--ok)}
@media print{.sn-who .avatar{display:none}}
/* Performance evaluations */
.eval-card .card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.eval-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.eval-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:inherit;font:inherit;cursor:pointer}
.eval-item:hover,.eval-item:focus-visible{border-color:color-mix(in srgb,var(--gold) 50%,var(--line))}
.eval-num{font-weight:700;color:var(--gold);font-variant-numeric:tabular-nums}.eval-main{flex:1;min-width:160px;display:flex;flex-direction:column}.eval-main small{color:var(--mute)}
.eval-overall{display:flex;flex-direction:column;margin:6px 0 12px}.eval-overall small{color:var(--mute);text-transform:uppercase;letter-spacing:.08em;font-size:11.5px}.eval-overall b{font-size:20px}
.eval-rows{display:grid;gap:6px;margin-bottom:12px}.eval-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.eval-text h4{margin:12px 0 4px}.eval-text p{margin:0}.eval-sigs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:16px}
/* Separation checklist */
.sep-card .card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sep-list{list-style:none;margin:8px 0 12px;padding:0;display:grid;gap:6px}
.sep-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.sep-item>svg{flex:none;margin-top:2px;color:var(--warn)}
.sep-item.done>svg{color:var(--ok)}.sep-item.done b{font-weight:500;color:var(--mute)}.sep-main{flex:1;min-width:0}.sep-open{color:var(--mute);margin-top:2px;overflow-wrap:anywhere}
/* My Unit */
button.st-fig{font:inherit;color:inherit;text-align:left;cursor:pointer}.mu-fig.on{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.mu-list{display:flex;flex-direction:column}.mu-list .row-link{padding:8px 0;border-bottom:1px solid var(--line)}.mu-list .row-link:last-child{border-bottom:0}
/* ---------- Account Settings (panel/account-settings.js) ---------- */
.set-page{max-width:820px}.set-card{padding:20px 22px}.set-title{margin:0 0 4px;font-size:19px}.set-sub{margin:22px 0 4px;font-size:15.5px}
.set-intro{margin:0 0 14px;color:var(--mute);font-size:14px;line-height:1.55}
.set-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:12px}
.set-row{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--panel2)}.set-row+.set-row{border-top:1px solid var(--line)}
.set-ic{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--gold) 13%,transparent);color:var(--gold)}
.set-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.set-main b{font-weight:600}.set-main small{color:var(--mute);font-size:13px;line-height:1.45}
.set-row .seg{flex:none}.set-card .prof-intro{margin-bottom:14px}
/* an on/off switch */
.switch{position:relative;flex:none;display:inline-block;width:44px;height:26px;cursor:pointer}.switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.switch-track{position:absolute;inset:0;border-radius:99px;background:var(--line);transition:background .15s}
.switch-track::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform .15s}
.switch input:checked+.switch-track{background:var(--gold)}.switch input:checked+.switch-track::after{transform:translateX(18px)}
.switch input:focus-visible+.switch-track{outline:2px solid var(--gold);outline-offset:2px}.switch.locked{cursor:default;opacity:.6}.switch.locked input{cursor:default}
@media (max-width:520px){.set-card{padding:16px}.set-row{padding:12px;gap:10px;flex-wrap:wrap}.set-row .seg{margin-left:46px}}
/* What's New */
.wn-page{max-width:820px}.wn-lead{margin:0 0 10px;color:var(--mute)}.wn-items{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.wn-items li{display:flex;gap:10px;align-items:flex-start;line-height:1.5}.wn-items svg{flex:none;margin-top:3px;color:var(--gold)}
.wn-page .card-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.wn-page .card-head .acts-inline{margin-left:auto}
/* Property and Evidence Room */
.prop-acts{margin-top:14px;flex-wrap:wrap}.prop-chain{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line);display:grid;gap:14px}
.prop-chain li{position:relative;padding-left:6px}.prop-chain li::before{content:"";position:absolute;left:-21px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--gold)}
.court-card .card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.court-rows{margin-top:10px}
/* Tabs never scroll sideways: what does not fit goes into "More" */
.tabs{overflow:hidden!important;-webkit-mask-image:none!important;mask-image:none!important}
.tabs .tabs-more{flex:none;display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:8px 12px;background:none;border:0;border-bottom:2px solid transparent;color:var(--mute);font:inherit;font-weight:500;cursor:pointer;white-space:nowrap}
.tabs .tabs-more:hover,.tabs .tabs-more:focus-visible{color:var(--ink)}.tabs .tabs-more[hidden]{display:none}
/* Audit Log toolbar: search and view on one line, the filters in an even grid, quick searches below */
.ev-toolbar{display:grid;gap:12px}.ev-search-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ev-search-row .ev-q{flex:1 1 320px;min-width:0}
.ev-filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}.ev-filters select{width:100%;min-width:0}
.ev-toolbar .fl-chips{margin:0}.ev-custom{margin-top:0}
.ev-row{user-select:none}.ev-detail{user-select:text}
/* Selected text in the Department's colours, not the browser's blue */
::selection{background:color-mix(in srgb,var(--gold) 38%,transparent);color:inherit}
.ev-top{align-items:start}
/* The In Character note: a calm callout, the IC tag centred on the text beside it */
.prof-intro{align-items:center;padding:10px 14px;border:1px solid color-mix(in srgb,var(--ok) 28%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--ok) 6%,transparent);line-height:1.5;font-size:13.5px}
.ic-tag{display:inline-flex;align-items:center;line-height:1.5;padding:1px 8px}
/* Account Settings spacing: room under each title and around the IC note */
.set-card{padding:24px 26px}.set-title{margin-bottom:8px}.set-title+.prof-intro{margin-top:14px}.set-card .prof-intro{margin-bottom:20px}
@media (max-width:520px){.set-card{padding:18px}}
/* Printed sheets (property tags, custody records): only the sheet prints */
.print-sheet{display:none}
@media print{body.sheet-printing #app,body.sheet-printing .overlay,body.sheet-printing .toast{display:none!important}body.sheet-printing{background:#fff!important}
  body.sheet-printing .print-sheet{display:block!important;color:#000;font:10.5pt/1.45 var(--font)}
  .prop-tag-sheet{padding:10mm}.prop-tag{width:95mm;border:.4mm solid #000;border-radius:2mm;padding:4mm;display:grid;gap:2mm;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .prop-tag-h{display:flex;justify-content:space-between;gap:4mm;font-size:8pt;border-bottom:.3mm solid #000;padding-bottom:1.5mm}.prop-tag-h span{text-transform:uppercase;font-weight:700}
  .prop-tag-no{font-size:20pt;font-weight:800;letter-spacing:.06em;text-align:center}.prop-barcode{display:block;width:100%;height:14mm}
  .prop-tag-d{font-weight:700;font-size:10pt}.prop-tag-f{font-size:8pt}
  .prop-record-sheet{padding:14mm 6mm}.prop-record .sb-head{display:flex;gap:14px;align-items:center;border-bottom:2px solid #000;padding-bottom:8px;margin-bottom:10px}.prop-record .sb-head img{width:58px}
  .prop-record .sb-dept{font-size:9pt;text-transform:uppercase;letter-spacing:.05em}.prop-record h1{font-size:18pt;margin:2px 0;color:#000}.prop-record h2{font-size:12pt;margin:14px 0 6px;border-bottom:1px solid #000;color:#000}
  .prop-record table{width:100%;border-collapse:collapse}.prop-record th,.prop-record td{border:1px solid #888;padding:4px 7px;text-align:left;vertical-align:top}.prop-record .sb-kv th{width:28%;background:#eee}.prop-record .sb-team th{background:#eee}
  .prop-record .sb-foot{margin-top:16px;font-size:8.5pt;border-top:1px solid #000;padding-top:6px}}
/* First week in STARS (dashboard) */
.fw-card{margin-bottom:18px}.fw-card .card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.fw-card h3{margin:0}
.fw-bar{height:6px;border-radius:99px;background:var(--line);overflow:hidden;margin:10px 0 12px}.fw-bar span{display:block;height:100%;background:var(--gold);border-radius:inherit}
.fw-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.fw-steps a{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;color:inherit;text-decoration:none;height:100%;box-sizing:border-box}
.fw-steps a:hover{border-color:color-mix(in srgb,var(--gold) 50%,var(--line))}
.fw-tick{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold)}.fw-tick svg{transform:rotate(-90deg)}
.fw-steps li.done .fw-tick{background:var(--ok);border-color:var(--ok);color:#0b1a12}.fw-steps li.done .fw-tick svg{transform:none}
.fw-main{display:flex;flex-direction:column;gap:2px;min-width:0}.fw-main small{color:var(--mute);font-size:12.5px}.fw-steps li.done b{color:var(--mute);font-weight:500;text-decoration:line-through}
.tpl-bar{align-items:center;gap:10px;flex-wrap:wrap}.tpl-bar select{width:auto;max-width:280px}
/* Year in Review (LSSD Website) */
.yr-top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.yr-top select{width:auto}
.yr-figs{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:18px 0 28px}
.yr-fig{display:flex;flex-direction:column;gap:4px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.yr-fig b{font-size:34px;line-height:1;font-weight:800;color:var(--gold);font-variant-numeric:tabular-nums}.yr-fig span{font-weight:600}.yr-fig small{color:var(--mute)}
.yr-chart h2{margin:0 0 12px}.yr-bars{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;align-items:end;height:200px;padding:10px 0;border-bottom:1px solid var(--line)}
.yr-bar{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;min-width:0}
.yr-bar i{display:block;width:100%;max-width:40px;min-height:2px;border-radius:6px 6px 0 0;background:var(--gold)}.yr-bar small{color:var(--mute);font-size:12px}.yr-n{font-size:12px;font-weight:700}
.yr-note{margin:22px 0 8px;font-size:17px}
@media (max-width:520px){.yr-bars{gap:3px}.yr-n{font-size:10px}.yr-bar small{font-size:10px}}
/* System Health (STARS Settings > Overview) */
.health-card{margin-bottom:16px}.health-card .card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.health-list{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}
.health-list li{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.health-list li.health-warn{border-color:color-mix(in srgb,var(--warn) 45%,var(--line))}.health-list li.health-bad{border-color:color-mix(in srgb,var(--bad) 55%,var(--line))}
.health-ic{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:color-mix(in srgb,currentColor 14%,transparent)}
.health-ic.ok{color:var(--ok)}.health-ic.warn{color:var(--warn)}.health-ic.bad{color:var(--bad)}.health-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
/* Keyboard shortcuts list */
.kb-list{display:grid;gap:6px;min-width:min(420px,100%)}.kb-list h4{margin:12px 0 2px}.kb-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:4px 0;border-bottom:1px solid var(--line)}
.kb-keys{display:inline-flex;gap:4px;align-items:center;color:var(--mute);font-size:12px}
kbd{display:inline-block;min-width:22px;padding:2px 7px;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;background:var(--panel2);color:var(--ink);font:600 12px var(--font);text-align:center}
/* My Unit: figures in one row where they fit, the three short lists side by side, the member list full width */
.mu-unit{width:auto;max-width:280px}.page-acts:has(.mu-unit){flex-wrap:wrap;gap:8px}
.st-figs:has(.mu-fig){grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.mu-side{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:14px}.mu-side>.card{margin:0}
/* ---------- Light theme contrast (checked with Page Check, 2026-10-19): every text reaches 4.5:1 ---------- */
:root[data-theme=light]{--ok:#17744a;--mute:#4e5c51;--warn:#8a5207}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--ok:#17744a;--mute:#4e5c51;--warn:#8a5207}}
/* gold buttons and tags carry white text on the darker light-theme gold */
:root[data-theme=light] .btn:not(.sec):not(.danger):not(.ghost),:root[data-theme=light] .nr-feat{color:#fff}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .btn:not(.sec):not(.danger):not(.ghost),:root:not([data-theme=dark]) .nr-feat{color:#fff}}
/* marking badge: white on a deep amber */
:root[data-theme=light] .cls-banner.cls-restricted .cls-badge{background:#8a5207;color:#fff}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .cls-banner.cls-restricted .cls-badge{background:#8a5207;color:#fff}}
/* initials and gang emblems always on a dark fill */
.avatar{background-color:var(--brand)}
:root[data-theme=light] .crew-emblem{background:color-mix(in srgb,var(--c) 70%,#000)}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .crew-emblem{background:color-mix(in srgb,var(--c) 70%,#000)}}
/* calendar: event times in the event's colour, darkened in the light theme; past days readable */
:root[data-theme=light] .cal-ev b{filter:brightness(.6)}.cal-n{opacity:.7}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .cal-ev b{filter:brightness(.6)}}
:root[data-theme=light] .cbx-type{color:color-mix(in srgb,var(--c) 60%,#000)}
/* light theme: a slightly deeper gold so gold links and labels read clearly on the cream background */
:root[data-theme=light]{--gold:#86630f}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--gold:#86630f}}
:root[data-theme=light] .cal-ev b{filter:none;color:color-mix(in srgb,var(--c) 55%,#000)}.cal-n{opacity:1;color:var(--mute)}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .cal-ev b{filter:none;color:color-mix(in srgb,var(--c) 55%,#000)}}
/* org chart initials: on the brand fill, like every other avatar */
.oc-person .avatar{background:var(--brand);color:var(--on-brand)}
:root[data-theme=light] .cbx-type{color:color-mix(in srgb,var(--c) 45%,#000)}
/* case board cards stay dark in both themes: their type labels are always a light tint of the kind's colour */
.cbx-type,:root[data-theme=light] .cbx-type{color:color-mix(in srgb,var(--c) 75%,#fff)}
.cal-n{color:var(--ink);opacity:.8}
/* ---------- Announcement cards, calmer (2026-10-19) ---------- */
/* no picture: no empty cover, a thin line in the category's colour instead */
.art-card2{--cat:var(--gold)}.art-card2.cat-safety{--cat:#e5645e}.art-card2.cat-personnel{--cat:var(--gold)}.art-card2.cat-training{--cat:var(--ok)}.art-card2.cat-policy{--cat:#d98c4a}.art-card2.cat-operations,.art-card2.cat-events{--cat:var(--blue)}
.art-card2.no-cover{border-top:3px solid var(--cat)}
.art-card2 .art-in{padding:18px 20px 16px;gap:8px}
.art-card2 h3{margin:2px 0 0;font-size:19px;line-height:1.25}.art-card2.unread h3::before{content:none}
.art-card2 .art-in>p{margin:0;color:var(--mute);line-height:1.5}
.art-tags{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* the byline: the author, then when and how long */
.art-byline{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:8px}.art-by{display:flex;flex-direction:column;min-width:0;line-height:1.35}
.art-by b{font-size:13.5px;font-weight:600;color:var(--ink)}.art-by span{font-size:12.5px;color:var(--mute)}
.art-feature .art-by b{color:#e8ece6}.art-feature .art-by span{color:#b8c2b9}
/* read receipts (announcement managers): a slim bar and a count */
.art-readbar{display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.art-readtrack{flex:1;height:4px;border-radius:99px;background:var(--line);overflow:hidden}.art-readtrack i{display:block;height:100%;background:var(--ok);border-radius:inherit;min-width:2px}
.art-readbar small{color:var(--mute);font-size:12px;white-space:nowrap}
/* ---------- Calendar (panel/calendar.js) ---------- */
.cal-day{cursor:pointer;transition:background .12s}.cal-day:hover{background:color-mix(in srgb,var(--gold) 5%,transparent)}
.cal-day.drop,.cal-wday.drop{background:color-mix(in srgb,var(--gold) 14%,transparent);outline:2px dashed var(--gold);outline-offset:-3px}
.cal-ev{display:flex;gap:5px;align-items:baseline;border-radius:6px;transition:transform .1s,background .12s}.cal-ev:hover{background:color-mix(in srgb,var(--c) 26%,transparent)}
.cal-ev.movable{cursor:grab}.cal-ev.movable:active{cursor:grabbing}.cal-ev>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
/* the week: seven columns of the day's events, in time order */
.cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.cal-wday{display:flex;flex-direction:column;min-height:280px;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}
.cal-wday header{display:flex;align-items:baseline;gap:6px;padding:10px 10px 8px;border-bottom:1px solid var(--line)}.cal-wday header small{text-transform:uppercase;letter-spacing:.08em;color:var(--mute);font-size:11px}
.cal-wday header b{font-size:20px}.cal-wday.today header{background:color-mix(in srgb,var(--gold) 12%,transparent)}.cal-wday.today header b{color:var(--gold)}
.cal-add{margin-left:auto;opacity:.5}.cal-wday:hover .cal-add{opacity:1}
.cal-wlist{display:flex;flex-direction:column;gap:6px;padding:8px}.cal-wlist .cal-ev{flex-direction:column;gap:1px;padding:6px 8px;font-size:12.5px;white-space:normal}.cal-wlist .cal-ev>span{white-space:normal}
.cal-free{color:var(--mute);font-size:12px;padding:4px 2px}
@media (max-width:900px){.cal-week{grid-template-columns:1fr}.cal-wday{min-height:0}}
/* the event card */
.ce{display:grid;gap:14px}.ce-top{display:flex;gap:16px;align-items:center}
.ce-date{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:70px;height:78px;border-radius:14px;background:color-mix(in srgb,var(--c) 18%,var(--panel2));border:1px solid color-mix(in srgb,var(--c) 55%,var(--line));box-shadow:inset 0 4px 0 var(--c)}
.ce-date small{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c)}.ce-date b{font-size:28px;line-height:1.05}.ce-date span{font-size:11.5px;color:var(--mute)}
.ce-head{display:flex;flex-direction:column;gap:6px;min-width:0}.ce-tags{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ce-kind{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c)}.ce-kind::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--c)}
.ce-when{font-size:16px;font-weight:600}
.ce-rows{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.ce-row{display:flex;align-items:center;gap:10px;font-size:14px}.ce-row>svg{flex:none;color:var(--mute)}
.ce-desc{margin:0;line-height:1.6}.ce .acts{margin-top:2px}
.btn.danger-text{color:var(--bad)}.btn.danger-text:hover{border-color:var(--bad)}
/* Org chart: a chart narrower than the view sits in the middle; full screen is the chart over the whole window */
.oc-stage{display:block;width:max-content;min-width:0;margin:0 auto}
.oc-card.oc-max{position:fixed;inset:0;z-index:400;display:flex;flex-direction:column;margin:0;border-radius:0;padding:16px;background:var(--bg)}
.oc-card.oc-max .oc-wrap{flex:1;max-height:none!important;height:auto!important}
body.oc-maxed{overflow:hidden}body.oc-maxed #fb-launch{display:none}
/* Calendar: invitations, replies, repeating events */
.ce-rsvp{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--gold) 7%,transparent)}
.ce-rsvp .seg{margin-left:auto}
.ce-guests{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.ce-guests:hover{border-color:color-mix(in srgb,var(--gold) 50%,var(--line))}.ce-guests>svg{color:var(--mute)}.ce-guests span{flex:1}.ce-guests small{color:var(--gold);font-weight:600}
.ce-glist{display:grid;gap:4px;min-width:min(420px,100%)}.ce-grow{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}
.cal-ask{flex:none;width:7px;height:7px;border-radius:50%;background:var(--gold);align-self:center;margin-left:auto}.cal-rep{font-style:normal;opacity:.7;font-size:11px;flex:none}
@media print{.unit-report-sheet{padding:12mm 6mm}.unit-report .ur-figs{display:grid;grid-template-columns:repeat(5,1fr);gap:4mm;margin:4mm 0}
  .unit-report .ur-figs div{border:1px solid #888;padding:3mm;display:flex;flex-direction:column}.unit-report .ur-figs b{font-size:16pt}.unit-report .ur-figs span{font-size:8.5pt}
  .unit-report .ur-none{color:#444;font-style:italic;margin:2mm 0}.unit-report h2{break-after:avoid}.unit-report table{break-inside:auto}.unit-report tr{break-inside:avoid}}

/* ---------- Signing out when away ---------- */
/* The note after an inactivity sign-out: centred and without a box, like the rest of the sign-in card */
.idle-note{display:grid;justify-items:center;gap:8px;text-align:center;margin:0 0 14px}
.idle-ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--gold) 45%,transparent);color:var(--gold)}.idle-ic .ico{vertical-align:0}
.idle-text{display:grid;gap:4px;text-wrap:balance}.idle-text b{font-size:15px;color:var(--ink)}.idle-text small{font-size:13.5px;line-height:1.55;color:var(--mute);max-width:36ch;margin:0 auto}.idle-fld{max-width:360px}
/* ---------- The dashboard, arranged ---------- */
.hello .dash-arrange-btn{align-self:flex-start;margin-left:auto}.dash-arrange-acts{display:flex;gap:8px;align-self:flex-start;margin-left:auto;flex-wrap:wrap}
.dash-arrange-note{margin-bottom:16px}.dash-arrange-note p{margin:0 0 10px}
.dash-fixed-row{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.dash-fixed{display:inline-flex;gap:6px;align-items:center;font-size:13.5px;cursor:pointer}.dash-fixed input{width:auto;min-height:0}
.dash-col.arranging{display:flex;flex-direction:column;gap:10px;min-height:120px;padding:8px;border:1px dashed transparent;border-radius:14px;transition:border-color .15s,background .15s}
.dash-col.arranging.drop{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 6%,transparent)}
.dash-frame{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:10px 12px;cursor:grab;box-shadow:var(--shadow)}.dash-frame.dragging{opacity:.45}.dash-frame.off{opacity:.65}
.dash-frame>.card{margin:8px 0 0;pointer-events:none}.dash-frame-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.dash-frame-bar b{font-size:13.5px}
.dash-frame-bar .iconbtn[aria-label="Move up"] .ico{transform:rotate(180deg)}.dash-grip{color:var(--mute);display:inline-flex}
.dash-drop-end{text-align:center;padding:6px;opacity:.7}
/* ---------- While you were away ---------- */
.away{margin-bottom:18px}.away-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:10px}.away h3{margin:0 0 2px}
.away-acts{display:flex;gap:8px;flex-wrap:wrap}
.away-list{display:grid;gap:2px}.away-row{display:flex;align-items:center;gap:6px;border-radius:10px;transition:background .12s}.away-row:hover{background:var(--raise)}
.away-open{flex:1;min-width:0;display:flex;gap:12px;align-items:flex-start;padding:10px 8px;color:var(--ink);text-decoration:none}
.away-main{display:grid;gap:3px;min-width:0}.away-top{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.away-top b{font-size:14px}
.away-top time{font-size:12px;color:var(--mute)}.away-n{font-size:11.5px;font-weight:600;color:var(--gold);padding:0 7px;border-radius:99px;background:color-mix(in srgb,var(--gold) 14%,transparent)}
.away-text{font-size:13px;color:var(--mute);line-height:1.45;overflow-wrap:anywhere}.away-row:hover .away-text{color:var(--ink)}
.away-read{margin-right:4px;opacity:.7}.away-row:hover .away-read{opacity:1}.away-read:hover{color:var(--ok)}
/* ---------- Report checks and the review queue ---------- */
.hint-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:8px}.hint-list li{display:flex;gap:8px;align-items:flex-start;padding:9px 12px;border-radius:10px;background:color-mix(in srgb,var(--warn) 10%,transparent);border:1px solid color-mix(in srgb,var(--warn) 35%,var(--line))}
.hint-list li .ico{color:var(--warn);margin-top:2px}.hint-list.compact{margin:10px 0 0}.hint-list.compact li{padding:6px 10px;font-size:13px}
.rq-list{display:grid;gap:14px}.rq-item{transition:opacity .2s,transform .2s}.rq-item.rq-gone{opacity:0;transform:translateX(12px)}
.rq-top{display:flex;gap:12px;align-items:flex-start}.rq-title{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin-bottom:2px}.rq-title a{font-weight:700}
.rq-wait{text-align:right;display:grid;gap:2px;justify-items:end}.rq-excerpt{margin:12px 0 0;padding:10px 12px;border-left:3px solid var(--gold);background:var(--panel2);border-radius:0 10px 10px 0}
.rq-excerpt small{color:var(--mute);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.rq-excerpt p{margin:4px 0 0}.rq-clean{margin:10px 0 0;display:flex;gap:6px;align-items:center}.rq-acts{margin-top:12px}
@media (max-width:560px){.rq-top{flex-wrap:wrap}.rq-wait{text-align:left;justify-items:start;width:100%}}
/* ---------- Member directory ---------- */
.dir-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:12px}
.dir-card{display:grid;gap:10px;align-content:start;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--ink);text-decoration:none;transition:border-color .15s,transform .15s}
.dir-card:hover{border-color:color-mix(in srgb,var(--gold) 55%,var(--line));transform:translateY(-1px);color:var(--ink)}
.dir-top{display:flex;gap:12px;align-items:center}.dir-id{display:grid;gap:3px;min-width:0;justify-items:start}.dir-id b{overflow-wrap:anywhere}
.dir-facts{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:0;font-size:13px}.dir-facts dt{color:var(--mute)}.dir-facts dd{margin:0;overflow-wrap:anywhere}.dir-none{grid-column:1/-1}
/* ---------- Promotion eligibility ---------- */
.el-card{margin-bottom:14px}.el-card .card-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:flex-start}.el-card h3{margin:0}
.el-note{margin:8px 0 0;color:var(--mute)}.el-list{display:grid;gap:2px;margin:10px 0 6px}
.el-row{display:flex;gap:10px;align-items:flex-start;padding:8px 6px;border-top:1px solid var(--line)}.el-row:first-child{border-top:0}.el-row.yes b{color:var(--ok)}
.el-missing{margin:4px 0 0;padding-left:18px;color:var(--mute)}
/* ---------- Casefile notes: replies; the timeline ---------- */
.cf-thread{border-bottom:1px solid var(--line);padding-bottom:6px}.cf-thread:last-child{border-bottom:0}.cf-thread>.check{border-bottom:0}
.cf-replies{margin:0 0 4px 28px;border-left:2px solid var(--line);padding-left:12px;display:grid;gap:8px}.cf-reply{display:flex;gap:8px;align-items:flex-start}
.cf-reply-btn{margin:2px 0 6px 28px;display:inline-flex;gap:4px;align-items:center;text-decoration:none}.cf-tl-body{margin-top:4px;color:var(--ink);opacity:.9}
/* ---------- Comments: replies and thumbs-up ---------- */
.art-react-row{display:flex;margin:16px 0 0}
.react-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--line);border-radius:99px;padding:3px 11px;cursor:pointer;color:var(--mute);font-size:13px;min-height:30px}
.react-btn:hover{border-color:color-mix(in srgb,var(--gold) 50%,var(--line));color:var(--ink)}.react-btn.on{border-color:var(--gold);color:var(--gold);background:color-mix(in srgb,var(--gold) 10%,transparent)}.react-n:empty{display:none}
.art-c-thread{border-bottom:1px solid var(--line)}.art-c-thread:last-of-type{border-bottom:0}.art-c-thread .art-c{border-bottom:0}
.art-c.reply{margin-left:40px;padding-top:4px}.art-c-acts{display:flex;gap:12px;align-items:center;margin-top:6px}.art-reply.inline{margin-top:8px}.art-reply.inline .bar{justify-content:flex-end;margin:0}
@media (max-width:560px){.art-c.reply{margin-left:18px}}
/* ---------- Wanted posters ---------- */
.poster-wrap{display:grid;gap:8px;align-content:start}.poster-print{justify-self:center}
@media print{body.sheet-printing #site{display:none!important}
  .wanted-sheet{padding:10mm}.wanted-print{border:1.2mm solid #000;padding:10mm 12mm;text-align:center;color:#000;font-family:var(--font);min-height:250mm;display:flex;flex-direction:column;align-items:center;gap:4mm;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .wp-dept{display:flex;align-items:center;gap:4mm;font-size:12pt;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.wp-dept img{width:16mm}
  .wp-word{font-size:64pt;font-weight:900;letter-spacing:.12em;color:#8b1a1a;line-height:1}
  .wp-photo{width:95mm;height:95mm;object-fit:cover;border:1mm solid #000}.wp-photo.none{display:flex;align-items:center;justify-content:center;background:#ddd;font-size:14pt;color:#555}
  .wp-name{font-size:26pt;font-weight:800;text-transform:uppercase}.wp-for{font-size:14pt}.wp-danger{background:#8b1a1a;color:#fff;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:2mm 5mm;font-size:12pt}
  .wp-desc{font-size:12pt;max-width:160mm;white-space:pre-line;margin:0}.wp-reward{font-size:16pt;font-weight:800}
  .wp-foot{margin-top:auto;width:100%;display:flex;justify-content:space-between;gap:6mm;border-top:.4mm solid #000;padding-top:3mm;font-size:10pt}
  .tl-sheet{padding:12mm 6mm}.tl-mark{text-align:center;font-weight:800;letter-spacing:.2em;font-size:9pt;border:.3mm solid #000;padding:1mm;margin:0 0 4mm}.tl-print .tl-mark:last-child{margin:4mm 0 0}
  .tl-print td,.tl-print th{font-size:9pt}}
.cf-tl a{color:var(--ink);text-decoration:none}.cf-tl a:hover{color:var(--gold);text-decoration:underline}
.poster .num{position:static;display:block;margin-top:14px;padding-top:8px;border-top:1px solid #d8ccb0;letter-spacing:.04em}

/* ---------- Traffic citations ---------- */
/* ---------- Team availability ---------- */
/* team availability: a day grid behind every row (weekends tinted, a line each Monday, the days asked for marked), the
   number away each day along the top, and the leave as bars over it */
.av-summary{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:10px;margin-bottom:12px;font-size:14px;line-height:1.5}
.av-summary.ok{background:color-mix(in srgb,var(--ok) 10%,transparent);border:1px solid color-mix(in srgb,var(--ok) 35%,transparent)}.av-summary.ok>svg{color:var(--ok);flex:none;margin-top:2px}
.av-summary.warn{background:color-mix(in srgb,var(--warn) 10%,transparent);border:1px solid color-mix(in srgb,var(--warn) 40%,transparent)}.av-summary.warn>svg{color:var(--warn);flex:none;margin-top:2px}
.av-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.av-key{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}.av-key .av-bar{display:inline-block;width:18px;height:10px;margin-left:8px;padding:0}
.av-key-req{display:inline-block;width:18px;height:10px;margin-left:8px;border-radius:2px;background:color-mix(in srgb,var(--gold) 22%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 55%,transparent)}
.av-scroll{overflow-x:auto;padding-bottom:4px}.av-grid{min-width:760px;display:grid;gap:2px}
.av-row{display:grid;grid-template-rows:32px;align-items:center;border-radius:6px}.av-row>*{grid-row:1}
.av-row:not(.av-head):not(.av-count):hover{background:var(--raise)}.av-row.hl{background:color-mix(in srgb,var(--gold) 9%,transparent)}
.av-name{grid-column:1;display:grid;padding:2px 8px;color:var(--ink);text-decoration:none;font-size:13px;min-width:0;z-index:1}.av-name b{font-weight:600;overflow-wrap:anywhere}.av-name small{font-size:11.5px}
.av-cell{align-self:stretch;border-left:1px solid transparent}.av-cell.mon{border-left-color:var(--line)}.av-cell.wkend{background:color-mix(in srgb,var(--line) 30%,transparent)}
.av-cell.req{background:color-mix(in srgb,var(--gold) 16%,transparent)}.av-head .av-cell.req{box-shadow:inset 0 2px 0 var(--gold)}
.av-head{grid-template-rows:26px}.av-date{align-self:center;padding-left:4px;font-size:11px;color:var(--mute);white-space:nowrap;z-index:1;pointer-events:none}
.av-count{border-bottom:1px solid var(--line);border-radius:0}.av-n{justify-self:center;z-index:1;font-size:11.5px;color:var(--mute)}.av-n.busy{color:var(--warn)}
.av-bar{height:22px;align-self:center;border-radius:6px;display:flex;align-items:center;padding:0 6px;font-size:11px;overflow:hidden;min-width:0;z-index:1}
.av-bar span{white-space:nowrap}.av-bar.approved{background:color-mix(in srgb,var(--blue) 40%,transparent);border:1px solid var(--blue)}.av-bar.pending{border:1px dashed var(--warn);background:color-mix(in srgb,var(--warn) 12%,transparent)}.av-bar.now{background:color-mix(in srgb,var(--mute) 28%,transparent);color:var(--mute)}
/* ---------- Training course dates ---------- */
.tc-list{display:grid;gap:12px}.tc-card{display:flex;gap:16px;align-items:flex-start;margin:0}.tc-card.focus{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.tc-date{display:grid;justify-items:center;min-width:58px;padding:8px 6px;border-radius:12px;background:color-mix(in srgb,var(--gold) 12%,transparent);border:1px solid color-mix(in srgb,var(--gold) 40%,var(--line))}
.tc-date small{text-transform:uppercase;font-size:11px;color:var(--gold);font-weight:700;letter-spacing:.06em}.tc-date b{font-size:22px;line-height:1.1}.tc-date span{font-size:12px;color:var(--mute)}
.tc-main{flex:1;min-width:0;display:grid;gap:4px}.tc-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tc-title b{font-size:15.5px}.tc-desc{margin:2px 0}
.tc-seats{display:flex;gap:10px;align-items:center;margin-top:4px}.tc-bar{width:140px;height:7px;border-radius:99px;background:var(--line);overflow:hidden}.tc-bar i{display:block;height:100%;background:var(--gold)}
.tc-acts{display:flex;flex-direction:column;gap:6px;align-items:stretch}.tc-person{display:flex;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.tc-person .chk{margin:0}
@media (max-width:620px){.tc-card{flex-wrap:wrap}.tc-acts{flex-direction:row;flex-wrap:wrap;width:100%}}
/* ---------- Casefile photos ---------- */
.cf-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:8px}
.cf-thumb{display:grid;gap:6px;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--panel2);overflow:hidden;cursor:pointer;text-align:left;color:var(--ink)}
.cf-thumb:hover{border-color:color-mix(in srgb,var(--gold) 55%,var(--line))}.cf-thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.cf-thumb span{font-size:12.5px;padding:0 8px 8px;overflow-wrap:anywhere}
.cf-photo-view{display:grid;gap:10px}.cf-photo-view img{max-width:100%;max-height:70vh;object-fit:contain;border-radius:10px;justify-self:center}
.cf-tl-img{display:block;max-width:220px;max-height:160px;border-radius:8px;margin-top:6px;object-fit:cover}
@media print{.tl-print-img{display:block;max-width:45mm;max-height:34mm;margin-top:1.5mm;object-fit:cover}}
.sess-acts{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}

/* ---------- Choosing one option (lib.js "choice"): pills for short options, tiles for options with a line of text ---------- */
.choice-set{display:flex;flex-wrap:wrap;gap:8px}
.choice-set.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.choice-opt{position:relative;display:flex;align-items:center;gap:9px;cursor:pointer;border:1px solid var(--line);background:var(--panel2);color:var(--ink);transition:border-color .12s,background .12s,box-shadow .12s}
.choice-set.pills .choice-opt{border-radius:999px;padding:8px 16px;min-height:40px}
.choice-set.cards .choice-opt{border-radius:12px;padding:12px 14px;align-items:flex-start}
.choice-opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.choice-opt:hover{border-color:color-mix(in srgb,var(--gold) 40%,var(--line))}
.choice-opt:has(input:checked){border-color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,var(--panel2));box-shadow:0 0 0 1px var(--gold) inset}
.choice-opt:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:2px}
.choice-opt.off{opacity:.55;cursor:not-allowed}
.choice-txt{display:grid;gap:2px;min-width:0;flex:1}.choice-txt b{font-size:14px;font-weight:600}.choice-txt small{color:var(--mute);font-size:12.5px;line-height:1.4}
.choice-set.pills .choice-txt{flex:none}.choice-set.pills .choice-txt b{font-weight:500}.choice-opt:has(input:checked) .choice-txt b{font-weight:700}
.choice-tag{color:var(--gold)!important;font-weight:600}
.si-opts{margin:10px 0}
@media (max-width:520px){.choice-set.cards{grid-template-columns:1fr}.choice-set.pills .choice-opt{flex:1 1 auto;justify-content:center}}
/* ---------- The ID card around STARS: small on the dashboard, an ID button in the directory ---------- */
.dir-card{position:relative;cursor:pointer}.dir-name{color:var(--ink);text-decoration:none;font-weight:700;overflow-wrap:anywhere}.dir-card:hover .dir-name{color:var(--gold)}
.dir-id-btn{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--panel2);color:var(--mute);display:grid;place-items:center;cursor:pointer}
.dir-id-btn:hover{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 50%,var(--line))}
/* ---------- My career path ---------- */
.career-card .card-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}.career-card h3{margin:0}
.career-path{padding:12px 0 4px;border-top:1px solid var(--line);margin-top:10px}.career-path:first-of-type{border-top:0}
.career-to{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.career-to b{font-size:15px}
.career-reqs{list-style:none;margin:8px 0 4px;padding:0;display:grid;gap:5px}.career-reqs li{display:flex;gap:8px;align-items:center;font-size:13.5px;color:var(--mute)}.career-reqs li.ok{color:var(--ink)}.career-reqs li.ok .ico{color:var(--ok)}
.career-open{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--line);flex:none}
.pr-leaving{text-align:center;margin:18px 0 4px}
/* ---------- Memos ---------- */
.memo-tabs{margin:4px 0 16px}
.memo-row{display:flex;gap:14px;align-items:center;padding:12px 16px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}.memo-row:first-child{border-top:0}.memo-row:hover{background:var(--raise)}
.memo-row.unread .memo-main b::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gold);margin-right:8px;vertical-align:1px}
.memo-num{color:var(--gold);font-weight:600;font-size:13px;min-width:110px}.memo-main{flex:1;display:grid;gap:2px;min-width:0}.memo-main small{color:var(--mute)}
.memo-doc{max-width:820px;margin:0 auto 14px;padding:28px 32px}
.memo-head{display:flex;gap:14px;align-items:center;border-bottom:2px solid var(--gold);padding-bottom:12px;margin-bottom:14px}.memo-head img{width:54px}.memo-head h1{margin:2px 0 0;letter-spacing:.18em;text-transform:uppercase;font-size:22px}
.memo-dept{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.memo-meta{display:grid;gap:4px;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--line)}.memo-meta>div{display:grid;grid-template-columns:90px 1fr;gap:10px}.memo-meta dt{color:var(--mute);text-transform:uppercase;font-size:12px;letter-spacing:.08em;padding-top:2px}.memo-meta dd{margin:0;font-weight:600}
.memo-body{margin-bottom:18px}.memo-who{display:grid;gap:4px}.memo-person{display:flex;gap:10px;align-items:center;padding:4px 0}
@media (max-width:560px){.memo-doc{padding:20px 18px}.memo-row{flex-wrap:wrap}.memo-num{min-width:0}}
/* ---------- Meeting notes ---------- */
.mt-list{margin:0;padding-left:20px;display:grid;gap:4px}.mt-done b{text-decoration:line-through;color:var(--mute)}
.mt-people{display:flex;flex-wrap:wrap;gap:8px}.mt-person{display:inline-flex;gap:6px;align-items:center;padding:3px 10px 3px 3px;border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-size:13px}
/* ---------- The monthly Department report ---------- */
.mr-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:14px}.mr-figs.two{grid-template-columns:1fr;margin:8px 0}
.mr-fig{display:grid;gap:2px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.mr-fig b{font-size:24px}.mr-fig span{font-size:12.5px;color:var(--mute)}
.mr-fig.ok b{color:var(--ok)}.mr-fig.warn b{color:var(--warn)}
.mr-names{list-style:none;margin:0;padding:0;display:grid;gap:4px}.mr-names li{font-size:13.5px;padding:4px 0;border-top:1px solid var(--line)}.mr-names li:first-child{border-top:0}
/* ---------- Exit interviews ---------- */
.ex-item{margin-bottom:10px}.ex-item summary{display:flex;gap:10px;align-items:center;cursor:pointer;list-style:none}.ex-item summary::-webkit-details-marker{display:none}.ex-body{margin-top:12px}
.dir-top{padding-right:34px}
/* the ID card: the unit's emblem, the photo's faint security copy, the post line */
.idv-emblem{width:8.5cqw;height:8.5cqw;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}
.idv-ghost{position:absolute;right:5cqw;bottom:11cqw;width:12cqw;aspect-ratio:3/4;object-fit:cover;opacity:.16;filter:grayscale(1) contrast(1.2);border-radius:1.2cqw;pointer-events:none;mix-blend-mode:screen}
.idv-post{font-size:2.6cqw;color:#c9d3cb;opacity:.85}
.idv-front.civ .idv-rank{color:#dfe7ec}.idv-front.civ .idv-photo{border-color:#c9d3da}.idv-front.civ .idv-top small{color:#c9d3da}
.idv-front.civ .idv-initials{background:#132430;color:#dfe7ec}
/* the personnel file's eight tiles: two even rows of four (two columns of four on a phone) */
.pr-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:640px){.pr-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* the LSSD Website's Wall of Honor */
.woh{display:flex;flex-direction:column;gap:18px}
.woh-head{display:flex;gap:18px;align-items:flex-start}.woh-head h2{margin:2px 0 4px}.woh-head p{margin:0;color:var(--mute);line-height:1.55}
.woh-rib{padding-top:6px}.woh-rib .ribbon{width:96px;height:28px}
.woh-cat{color:var(--gold);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:11.5px}
.woh-people{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:10px}
.woh-person{padding:12px 14px;border-left:3px solid var(--gold);border-radius:0 10px 10px 0;background:color-mix(in srgb,var(--gold) 6%,transparent)}
.woh-who{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.woh-who small{color:var(--mute)}
.woh-person p{margin:6px 0 0;line-height:1.55;font-size:14.5px}
.woh-award>.btn{margin-top:12px}
@media(max-width:640px){.woh-head{flex-direction:column;gap:10px}}/* awards: ribbons with a woven, lit finish */
.ribbon{overflow:hidden}
.ribbon::before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.06) 42%,rgba(0,0,0,.05) 58%,rgba(0,0,0,.22)),repeating-linear-gradient(90deg,rgba(0,0,0,.07) 0 1px,transparent 1px 2px)}
/* the ribbons across the foot of a personnel file's header */
.pr-head2{flex-wrap:wrap}
.ribbon-strip{flex-basis:100%;display:flex;align-items:center;gap:16px;margin-top:2px;padding-top:14px;border-top:1px solid var(--line)}
.rs-label{display:flex;align-items:baseline;gap:7px;flex-shrink:0}.rs-label small{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}.rs-label b{font-size:15px;color:var(--gold)}
.rs-ribbons{display:flex;flex-wrap:wrap;gap:10px 9px;flex:1;min-width:0;padding-top:4px}
.rs-rib{position:relative;display:block;line-height:0;border:0;padding:0;margin:0;background:none;cursor:pointer;border-radius:2px;transition:transform .15s,box-shadow .15s}
.rs-rib:hover,.rs-rib:focus-visible{transform:translateY(-2px);box-shadow:0 0 0 2px color-mix(in srgb,var(--gold) 75%,transparent),0 4px 10px rgba(0,0,0,.35);outline:0}
.rs-rib .ribbon{width:58px;height:18px;border-radius:2px}
.rs-n{position:absolute;top:-6px;right:-6px;z-index:2;min-width:16px;height:16px;padding:0 4px;border-radius:999px;display:flex;align-items:center;justify-content:center;font:normal 800 10px/1 Inter,sans-serif;color:#2a1f05;background:linear-gradient(180deg,#f3d27a,#c99a35);box-shadow:0 0 0 2px var(--panel),0 1px 2px rgba(0,0,0,.4)}
.rs-all{display:inline-flex;align-items:center;gap:3px;border:0;background:none;padding:4px 2px;font:inherit;font-size:13px;font-weight:600;color:var(--mute);cursor:pointer;flex-shrink:0}.rs-all:hover{color:var(--gold)}
@media(max-width:640px){.ribbon-strip{flex-wrap:wrap;gap:10px 14px}.rs-ribbons{order:3;flex-basis:100%}.rs-all{margin-left:auto}}
/* the Awards tab: the facts across the top, then each award as a row */
.aw-record{padding:0;overflow:hidden}
.aw-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--gold) 4%,transparent)}
.aw-facts>div{padding:16px 18px;min-width:0}.aw-facts>div+div{border-left:1px solid var(--line)}
.aw-facts dt{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-bottom:4px}
.aw-facts dd{margin:0}.aw-facts dd b{display:block;font-size:15px;line-height:1.35}.aw-facts dd small{display:block;color:var(--mute);font-size:12.5px;margin-top:2px}
.aw-facts>div:first-child dd b{font-size:26px;line-height:1.1;color:var(--gold)}
.aw-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:20px 18px;border-top:1px solid var(--line);transition:background .6s}
.aw-facts+.aw-row{border-top:0}
.aw-row.flash{background:color-mix(in srgb,var(--gold) 10%,transparent);transition:background .15s}
.aw-row-rib{display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:4px}.aw-row-rib .ribbon{width:96px;height:29px;border-radius:2px}
.aw-row-n{font-size:12px;font-weight:700;color:var(--gold)}
.aw-row-body h3{margin:0 0 2px;font-size:17px}
.aw-row-meta{font-size:12.5px;color:var(--gold);font-weight:600}
.aw-row-crit{margin:8px 0 0;color:var(--mute);font-size:14px;line-height:1.55}
.aw-times{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}
.aw-times li{padding-left:14px;border-left:2px solid color-mix(in srgb,var(--gold) 60%,transparent)}
.aw-when{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:14px}
.aw-when a{display:inline-flex;align-items:center;gap:5px;color:var(--mute);text-decoration:none;font-size:12.5px}.aw-when a:hover{color:var(--gold)}
.aw-times li p{margin:4px 0 3px;font-size:14.5px;line-height:1.55}.aw-times li small{display:block;color:var(--mute);font-size:12.5px}
@media(max-width:760px){.aw-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.aw-facts>div:nth-child(3){border-left:0}.aw-facts>div:nth-child(n+3){border-top:1px solid var(--line)}
  .aw-row{grid-template-columns:1fr;gap:10px}.aw-row-rib{flex-direction:row;align-items:center;gap:10px}.aw-row-rib .ribbon{width:72px;height:22px}}
/* an award certificate in a window over a personnel file */
.cert-modal .certificate{margin:0 0 14px;box-shadow:none}
.aw-when button{display:inline-flex;align-items:center;gap:5px;border:0;background:none;padding:0;cursor:pointer;color:var(--mute);font-size:12.5px}.aw-when button:hover{color:var(--gold)}
/* award devices (public/assets/ribbon-devices.js) on a ribbon, and a commendation given as a paper */
.ribbon svg.dev{position:absolute;inset:auto;left:50%;top:50%;height:86%;width:auto;transform:translate(-50%,-50%);z-index:1;filter:drop-shadow(0 0 1px rgba(0,0,0,.65))}
.ribbon.paper{background:linear-gradient(180deg,#fbf6e8,#efe5cc);box-shadow:inset 0 0 0 1px rgba(120,95,40,.45),0 1px 2px rgba(0,0,0,.3)}
.ribbon.paper::before{background:repeating-linear-gradient(180deg,transparent 0 3px,rgba(120,95,40,.16) 3px 4px);inset:22% 30% 22% 10%}
.paper-seal{position:absolute;right:10%;top:50%;transform:translateY(-50%);height:62%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 40% 35%,#e9c56a,#a47a22);box-shadow:0 0 0 1px rgba(90,60,10,.5);z-index:1}
/* commendations on paper on a personnel file */
.rs-papers{display:inline-flex;align-items:center;gap:7px;border:0;background:none;padding:0 2px;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;color:var(--mute)}.rs-papers:hover{color:var(--gold)}
.rs-papers .ribbon.paper{width:15px;height:19px}.rs-papers .paper-seal{top:auto;bottom:10%;right:8%;transform:none;height:auto;width:40%}
.aw-part{margin:0;padding:12px 18px;border-top:1px solid var(--line);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);background:color-mix(in srgb,var(--ink) 2.5%,transparent)}
.aw-facts+.aw-part{border-top:0}.aw-part+.aw-row{border-top:0}
.aw-row-rib .ribbon.paper{width:52px;height:66px;border-radius:2px}.aw-row-rib .ribbon.paper::before{inset:16% 18% 34% 18%}.aw-row-rib .paper-seal{top:auto;bottom:9%;right:12%;transform:none;height:auto;width:30%}
/* a commendation given on paper: a letter on the Department's letterhead */
.certificate.letter{text-align:left;border:1px solid #d9cba6;padding:36px 44px 40px;max-width:760px}
.letter-head{display:flex;align-items:center;gap:14px;padding-bottom:14px;border-bottom:2px solid #b8913c}.letter-head img{width:54px}
.letter-head b{display:block;font-size:17px;color:#1d2433}.letter-head small{color:#6b6250;font-size:13px}
.letter-meta{display:flex;justify-content:space-between;gap:12px;margin:16px 0 22px;color:#6b6250;font-size:13.5px}
.letter-title{font-size:24px;margin:0 0 14px;color:#8a6a1e}
.letter-to{margin:0 0 14px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.letter-to span{color:#6b6250;font-size:13.5px}
.letter-body p{font-size:15.5px;line-height:1.7;margin:0 0 12px}
.letter-criteria{font-style:italic;color:#6b6250;font-size:13.5px;margin:6px 0 0}
.letter-sign{margin-top:34px;width:max-content;max-width:100%}.letter-sign small{white-space:nowrap}.letter-sign .sig{border-bottom:1px solid #8b7c58;padding-bottom:2px}.letter-sign small{color:#6b6250}
@media(max-width:640px){.certificate.letter{padding:22px 18px}}
/* the award builder (panel/award-builder.js): the preview beside the choices */
.ab{display:grid;grid-template-columns:260px minmax(0,1fr);gap:22px;align-items:start}
.ab-side{position:sticky;top:0}
.ab-preview{display:flex;flex-direction:column;align-items:center;gap:16px;padding:26px 16px 18px;border-radius:12px;background:radial-gradient(ellipse at 50% 30%,#21402f,#0e1c15 80%);box-shadow:inset 0 2px 12px rgba(0,0,0,.5)}
.ab-ribbons{display:flex;flex-direction:column;align-items:center;gap:18px}
.ab-big .ribbon{width:180px;height:54px;border-radius:3px}
.ab-worn{display:flex;flex-direction:column;align-items:center;gap:6px}.ab-worn .ribbon{width:54px;height:17px}.ab-worn small{color:rgba(236,232,220,.6);font-size:11.5px}
.ab-caption{text-align:center}.ab-caption b{display:block;color:#f3efe2;font-size:15px}.ab-caption small{color:rgba(236,232,220,.62);font-size:12px}
.ab-letter{position:relative;width:150px;height:194px;padding:16px 14px;border-radius:3px;background:linear-gradient(180deg,#fbf6e8,#efe5cc);box-shadow:0 6px 18px rgba(0,0,0,.45);display:flex;flex-direction:column;align-items:center;gap:7px;color:#1d2433}
.ab-letter img{width:30px}.ab-letter b{font-size:11.5px;text-align:center;color:#8a6a1e;line-height:1.25}
.ab-letter i{display:block;width:100%;height:4px;border-radius:2px;background:rgba(120,95,40,.22)}.ab-letter i.short{width:60%;align-self:flex-start}
.ab-letter .ribbon.paper{position:absolute;right:12px;bottom:12px;width:30px;height:30px;background:none;box-shadow:none}.ab-letter .ribbon.paper::before{display:none}.ab-letter .paper-seal{height:100%;right:0}
.ab-main{display:flex;flex-direction:column;gap:14px;min-width:0}
.ab-forms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ab-form{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);cursor:pointer;font:inherit}
.ab-form .ribbon{width:42px;height:13px;margin-bottom:6px}.ab-form .ribbon.paper{width:22px;height:28px}.ab-form b{font-size:14px}.ab-form small{color:var(--mute);font-size:12.5px;line-height:1.35}
.ab-form:hover{border-color:color-mix(in srgb,var(--gold) 45%,var(--line))}.ab-form.on{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 7%,transparent);box-shadow:inset 0 0 0 1px var(--gold)}
.ab-row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}.ab-row2 .field{margin:0}
.ab-active{margin:0 0 10px}
.ab-part{display:flex;flex-direction:column;gap:10px;padding-top:4px}.ab-part[hidden]{display:none}
.ab-part-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:4px}.ab-part-head h4{margin:0;font-size:14px}.ab-part-head small{color:var(--mute);font-size:12.5px}
.ab-stripes{display:flex;flex-direction:column;gap:6px}
.ab-stripe{display:flex;align-items:center;gap:10px;padding:6px 8px;border:1px solid var(--line);border-radius:8px}
.ab-stripe input[type=color]{width:38px;height:28px;padding:0;border:1px solid var(--line);border-radius:6px;background:none;cursor:pointer}
.ab-width{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--mute)}.ab-width input{width:120px}.ab-width b{min-width:16px;color:var(--ink);font-size:13px}
.ab-stripe .iconbtn svg{transform:rotate(90deg)}.ab-stripe .iconbtn.flip svg{transform:rotate(-90deg)}.ab-stripe .iconbtn:last-child svg{transform:none}
.ab-stripe-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ab-from{max-width:230px}
.ab-devices{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}
.ab-device{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 8px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);cursor:pointer;font:inherit;text-align:center}
.ab-device .ribbon{width:64px;height:20px;margin-bottom:2px}.ab-device b{font-size:12.5px}.ab-device small{font-size:11.5px;color:var(--mute);line-height:1.3}
.ab-device:hover{border-color:color-mix(in srgb,var(--gold) 45%,var(--line))}.ab-device.on{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 7%,transparent);box-shadow:inset 0 0 0 1px var(--gold)}
@media(max-width:760px){.ab{grid-template-columns:1fr}.ab-side{position:static}.ab-forms,.ab-row2{grid-template-columns:1fr}.ab-width input{width:90px}}
/* the award catalog: grouped by kind and category, each award as it looks */
.ac-kind{margin:22px 0 4px;font-size:18px}
.ac-group{margin-top:12px}.ac-group-title{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}.ac-group-title span{color:var(--gold)}
.ac-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:12px}
.ac-card{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;margin:0}
.ac-card.faded{opacity:.6}
.ac-look{display:flex;justify-content:center;padding-top:4px}.ac-look .ribbon{width:88px;height:27px}.ac-look .ribbon.paper{width:46px;height:58px}.ac-card.paper .paper-seal{top:auto;bottom:9%;right:12%;transform:none;height:auto;width:30%}
.ac-body h3{margin:0 0 2px;font-size:16px}.ac-meta{font-size:12.5px;color:var(--gold);font-weight:600}.ac-body p{margin:8px 0 0;font-size:14px;color:var(--mute);line-height:1.5}
.ac-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.ac-tags:empty{display:none}
.ac-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
/* the Notifications page: new ones first, then day by day, each day its own card */
.ntp-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.ntp-tools .fl-chips{flex:1;min-width:0}
.ntp{display:flex;flex-direction:column;gap:12px}
.ntp-day{padding:6px 6px 8px;margin:0}.ntp-day.fresh{box-shadow:inset 3px 0 0 var(--gold)}
.ntp-head{display:flex;align-items:center;gap:8px;padding:8px 10px 6px}.ntp-head h3{margin:0;font-size:14px}
.ntp-row{display:flex;align-items:center;gap:4px;border-radius:10px}.ntp-row .nt{flex:1;min-width:0}.ntp-row+.ntp-row{border-top:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.ntp-read{flex:none;margin-right:4px;color:var(--mute)}.ntp-read:hover{color:var(--ok)}
.ntp-empty{display:flex;align-items:center;justify-content:center;gap:10px;padding:34px 16px;color:var(--mute)}.ntp-empty svg{color:var(--ok)}
/* search results: a card per kind, each result a whole-row link with the match marked */
.sr-jump{margin-bottom:14px}
.sr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:14px;align-items:start}
.sr-card{padding:6px 6px 8px;margin:0;scroll-margin-top:80px}
.sr-head{display:flex;align-items:center;gap:8px;padding:8px 10px 6px}.sr-head h3{margin:0;font-size:15px}.sr-ic{color:var(--gold);display:inline-flex}
.sr-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;color:var(--ink);text-decoration:none}.sr-row:hover,.sr-row:focus-visible{background:var(--panel2)}
.sr-row+.sr-row{border-top:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.sr-main{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.sr-main b{font-weight:600;overflow-wrap:anywhere}.sr-main small{color:var(--mute);font-size:12.5px;overflow-wrap:anywhere}
.sr-row>.ico:last-child{color:var(--mute);transform:rotate(-90deg);flex:none}
.sr-row mark{background:color-mix(in srgb,var(--gold) 30%,transparent);color:inherit;border-radius:3px;padding:0 1px}
@media(max-width:640px){.ntp-tools{flex-direction:column;align-items:stretch;gap:10px;max-width:100%;min-width:0}.ntp-tools .fl-chips{width:100%;max-width:calc(100vw - 32px)}.ntp-tools .seg{order:-1;align-self:flex-start}.ntp-tools .fl-chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.ntp-tools .fl-fchip{flex:none;white-space:nowrap}}
@media(max-width:420px){.cert-foot small,.letter-sign small{white-space:normal}}
/* saved replies (panel/saved-replies.js) */
.svr-bar{display:flex;align-items:center;gap:12px;margin:10px 0 6px}
.svr-none{padding:6px 12px;max-width:300px;margin:0}
.svr-manage{display:flex;flex-direction:column;gap:10px}
.svr-row{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.svr-row p{margin:4px 0 0}
.menu-note{margin:0;padding:6px 12px;max-width:280px}
/* a unit's page (panel/unit-page.js) */
.up-head{display:flex;gap:18px;align-items:flex-start}.up-head h1{margin:2px 0 4px}
.up-emblem{width:72px;height:72px;object-fit:contain;flex:none}.up-mark{display:inline-flex;align-items:center;justify-content:center;border-radius:14px;background:color-mix(in srgb,var(--gold) 12%,transparent);color:var(--gold)}
.up-kicker{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.up-desc{margin:8px 0 0;color:var(--mute);line-height:1.55;max-width:760px}
.up-below{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:12px}.up-below small{color:var(--mute);margin-right:4px}
.up-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}
.up-tile{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.up-tile b{font-size:24px;line-height:1.1}.up-tile span{font-size:12.5px;color:var(--mute)}
.up-tile.warn b{color:var(--warn)}.up-tile.gold b{color:var(--gold)}
.up-card{margin:0}
.up-posts{display:flex;flex-direction:column}.up-post{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}.up-post:first-child{border-top:0}.up-post .vacant{color:var(--mute);font-style:italic}
.up-members{display:flex;flex-direction:column}.up-member{display:flex;align-items:center;gap:10px;padding:7px 4px;border-radius:8px;color:var(--ink);text-decoration:none}.up-member:hover{background:var(--panel2)}
.up-member b,.up-row b{display:block;font-weight:600;font-size:14px}.up-member small,.up-row small{color:var(--mute);font-size:12.5px}
.up-row{display:block;padding:8px 4px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}.up-row:first-of-type{border-top:0}.up-row:hover b{color:var(--gold)}
.up-award{display:flex;align-items:center;gap:12px}.up-award .ribbon{width:46px;height:14px;flex:none}.up-award .ribbon.paper{width:15px;height:19px}
.unit-link{color:inherit;text-decoration:none}.unit-link:hover b{color:var(--gold);text-decoration:underline}
@media(max-width:760px){.up-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.up-head{flex-direction:column}}
/* the phone's bottom bar (panel/app.js shell): Dashboard, Messages, Calendar, Search and the menu */
.tabbar{display:none}
@media(max-width:820px){
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom))}
  .tabbar .tab{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border:0;background:none;color:var(--mute);font:inherit;font-size:11px;font-weight:600;text-decoration:none;border-radius:10px;cursor:pointer}
  .tabbar .tab.on{color:var(--gold)}.tabbar .tab:active{background:var(--panel2)}
  .tb-badge .badge{position:absolute;top:2px;left:calc(50% + 6px);min-width:16px;height:16px;font-size:10px;padding:0 4px}
  main#main{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .topbar .iconbtn.menu{display:none!important}
}
/* the promotion board summary (panel/board-summary.js), on screen and printed */
.bs{display:flex;flex-direction:column;gap:14px}
.bs-head{display:flex;gap:14px;align-items:flex-start;padding-bottom:12px;border-bottom:2px solid var(--gold)}.bs-head img{width:48px}.bs-head small{color:var(--mute);font-size:12px}.bs-head h2{margin:2px 0}.bs-head p{margin:0;color:var(--mute);font-size:13.5px}
.bs-date{text-align:right;display:flex;flex-direction:column}.bs-date small{color:var(--mute);font-size:11.5px}
.bs-facts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.bs-facts>div{display:flex;flex-direction:column;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.bs-facts small{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}.bs-facts b{font-size:17px;margin:2px 0}.bs-facts span{font-size:12px;color:var(--mute)}
.bs-sec h3{margin:0 0 6px;font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--gold)}.bs-sec ul{margin:0;padding-left:18px}.bs-sec li{margin:3px 0;font-size:14px}
.bs-req{list-style:none;padding:0!important}.bs-req li.ok{color:var(--ok)}.bs-req li.no{color:var(--warn)}.bs-note{font-size:13px;color:var(--mute);margin:6px 0 0}
.bs-none{margin:0;color:var(--mute);font-size:13.5px}
.bs-tbl{width:100%;border-collapse:collapse;font-size:13.5px}.bs-tbl td{padding:5px 8px 5px 0;border-bottom:1px solid var(--line);vertical-align:top}
.bs-two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.bs-foot{font-size:11.5px;color:var(--mute);border-top:1px solid var(--line);padding-top:8px}
@media(max-width:760px){.bs-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.bs-two{grid-template-columns:1fr}.bs-head{flex-wrap:wrap}}
@media print{.print-sheet.bs-print{color:#1d2433;padding:10mm}.bs-print .bs-head{border-bottom-color:#b8913c}.bs-print .bs-sec h3{color:#8a6a1e}.bs-print .bs-facts>div,.bs-print .bs-tbl td,.bs-print .bs-foot{border-color:#ccc}
  .bs-print .bs-head small,.bs-print .bs-head p,.bs-print .bs-facts small,.bs-print .bs-facts span,.bs-print .bs-none,.bs-print .bs-foot,.bs-print .bs-note{color:#555}.bs-print .bs-req li.ok{color:#1e6b3a}.bs-print .bs-req li.no{color:#8a4b00}}
/* a faction ban in force, at the top of a personnel file */
.ban-banner{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;margin-bottom:14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--bad) 55%,transparent);background:color-mix(in srgb,var(--bad) 10%,var(--panel))}
.ban-banner>svg{color:var(--bad);flex:none;margin-top:1px}.ban-banner b{display:block;color:var(--bad);margin-bottom:2px}.ban-banner p{margin:2px 0 0;font-size:14.5px}.ban-banner p small{display:block;color:var(--mute);font-size:12.5px;margin-top:1px}
.ban-row{padding:8px 0;border-top:1px solid var(--line)}.ban-row:first-of-type{border-top:0}.ban-row b{display:block;font-weight:600}.ban-row small{color:var(--mute)}.ban-row.past{opacity:.7}
@media(max-width:640px){.ban-banner{flex-wrap:wrap}}
/* horizontal bars (barChart in panel/lib.js) */
.hbars{display:grid;gap:8px;margin-top:6px}
.hbar{display:grid;grid-template-columns:minmax(110px,38%) 1fr auto;gap:10px;align-items:center;font-size:13.5px}
.hbar i{display:block;height:10px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--gold) 85%,transparent) var(--w),color-mix(in srgb,var(--line) 70%,transparent) var(--w))}
.hbar b{min-width:24px;text-align:right}
/* exit interviews */
.ex-intro{margin:0 0 14px}.ex-figs{grid-template-columns:repeat(4,minmax(0,1fr))}
.ex-empty{display:flex;gap:12px;align-items:flex-start;padding:22px}.ex-empty>svg{color:var(--ok);flex:none;margin-top:2px}.ex-empty p{margin:4px 0 0}
.ex-item summary small{display:block;color:var(--mute);font-size:12.5px}.ex-item summary>.ico:last-child{color:var(--mute);transition:transform .15s}.ex-item[open] summary>.ico:last-child{transform:rotate(180deg)}
.ex-split{display:flex;flex-direction:column;gap:10px;margin-top:8px}.ex-split-bar{display:flex;height:14px;border-radius:999px;overflow:hidden;gap:2px}
.ex-split-key{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px}.ex-split-key span{display:inline-flex;align-items:center;gap:6px}.ex-split-key i{width:10px;height:10px;border-radius:3px;display:inline-block}
.ex-yes{background:var(--ok)}.ex-maybe{background:var(--warn)}.ex-no{background:var(--bad)}
@media(max-width:760px){.ex-figs{grid-template-columns:repeat(2,minmax(0,1fr))}.hbar{grid-template-columns:minmax(90px,40%) 1fr auto}}
/* a nomination: the award nominated for beside the lesser awards members would support instead */
.aw-weigh{display:flex;flex-direction:column;gap:6px}.aw-weigh-h{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.aw-weigh-row{display:flex;gap:10px;flex-wrap:wrap}
.aw-weigh-t{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:150px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;text-align:center}
.aw-weigh-t .ribbon{width:72px;height:22px;margin-bottom:2px}.aw-weigh-t .ribbon.paper{width:22px;height:28px}.aw-weigh-t b{font-size:13.5px}.aw-weigh-t small{font-size:12px;color:var(--mute)}
.aw-weigh-t.best{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
/* messages on a phone: an open conversation fills the screen, its actions in one menu */
.msg-more{display:none}
@media(max-width:820px){
  .msg-page.has-thread>.page-head{display:none}
  .msg-shell{height:calc(100dvh - 300px - env(safe-area-inset-bottom));min-height:360px;gap:0}
  .msg-page.has-thread .msg-shell{height:calc(100dvh - 196px - env(safe-area-inset-bottom))}
  .msg-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:6px 8px;padding:10px 10px 10px 6px}
  .msg-head h2{font-size:16px}
  .msg-acts>.btn{display:none}.msg-more{display:inline-grid}
  .msg-stream{padding:12px 10px 6px}
  .msg-row{max-width:88%}
  .msg-compose{padding:8px;gap:6px}.msg-compose.ro{flex-wrap:wrap}.msg-compose.ro .btn{flex:1}
  .msg-item{padding:12px 10px}
}
/* the classification banner on a phone: one compact line (the level, what it is, and the handling rules to open) */
@media(max-width:820px){
  .cls-banner{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 12px;border-left-width:4px;margin-bottom:10px}
  .cls-banner .cls-row,.cls-banner .cls-row2{display:contents}
  .cls-banner .cls-scale,.cls-banner .cls-who,.cls-banner .cls-rule{display:none}
  .cls-banner .cls-badge{font-size:11px;padding:3px 8px}.cls-banner .cls-what{font-size:13px}
  .cls-banner .cls-more{margin-left:auto}.cls-banner .cls-more[open]{flex-basis:100%;margin-left:0}
}
/* the calendar on a phone: a dot for each event in the month grid, the filters in one scrolling row */
@media(max-width:700px){
  .cal-day{min-height:58px;flex-direction:row;flex-wrap:wrap;align-content:flex-start;gap:3px}
  .cal-day .cal-n{flex-basis:100%;width:22px;height:22px;font-size:12px}
  .cal-day .cal-ev{font-size:0;width:7px;height:7px;min-width:7px;padding:0;border:0;border-radius:50%;background:var(--c);display:inline-block;pointer-events:none}
  .cal-day .cal-ev *,.cal-day .cal-ev b{display:none!important}
  .cal-day .cal-more{display:none}
  .cal-legend{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.cal-key{flex:none;white-space:nowrap}
}
.up-many summary{cursor:pointer;color:var(--gold);font-weight:600;list-style:none}.up-many summary::-webkit-details-marker{display:none}.up-many summary::after{content:' ▾';color:var(--mute)}.up-many[open] summary::after{content:' ▴'}.up-many>div{margin-top:6px;line-height:1.7}
.up-post{align-items:flex-start}.up-post>b{flex:none;max-width:45%}.up-post>span,.up-post>details{text-align:right}
.up-all{margin-top:8px}
/* opened from the home screen: room for the phone's own status bar and notch */
@media (display-mode: standalone){.topbar{padding-top:max(8px,env(safe-area-inset-top))}.side{padding-top:env(safe-area-inset-top)}}
.mfa-who{display:flex;flex-direction:column;gap:6px;margin:6px 0 10px}.mfa-who p{margin:0}
@media(max-width:640px){.up-post{flex-direction:column;gap:2px}.up-post>b{max-width:none}.up-post>span,.up-post>details{text-align:left}}
.svr-icon{flex:none;align-self:flex-end;margin-bottom:4px}
@media(max-width:640px){.cnav{top:auto;bottom:12px;margin-top:0;width:34px;height:34px;opacity:.9}.cnav.prev{left:auto;right:54px}.cnav.next{right:12px}}
/* a personnel file's header on a phone: the photo beside the name, rank and status; the facts in two columns underneath */
@media(max-width:640px){
  .pr-head2{display:grid!important;grid-template-columns:76px minmax(0,1fr);column-gap:14px;row-gap:4px;align-items:start}
  .pr-head2>.grow{display:contents}
  .pr-head2>*,.pr-head2>.grow>*{grid-column:1/-1}
  .pr-head2>.pr-photo{grid-column:1;grid-row:1/span 4;width:76px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
  .pr-head2 .pr-photo img,.pr-head2 .pr-photo .avatar{width:76px!important;height:88px!important;font-size:28px!important}
  .pr-head2 .pr-photo-acts{align-items:flex-start;text-align:left}.pr-head2 .pr-photo-acts small{display:none}.pr-head2 .pr-photo-acts .linkbtn{font-size:12px}
  .pr-head2>.grow>.pr-kicker,.pr-head2>.grow>h1,.pr-head2>.grow>.pr-chips,.pr-head2>.grow>.pr-reviewed,.pr-head2>.grow>.small.muted{grid-column:2}
  .pr-head2 h1{font-size:22px;margin:0 0 4px;overflow-wrap:anywhere}
  .pr-head2 .pr-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;margin-top:12px}
  .pr-head2 .pr-acts{margin-top:12px}
}
/* a filter bar on a phone (compactFilters in panel/app.js): the search, then the rest behind "Filters" */
@media(max-width:640px){
  .fl-compact:not(.fl-open) .fl-fold{display:none!important}
  .fl-more{align-self:flex-start}.fl-more-n:not(:empty){margin-left:6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--gold);color:#14211a;font-size:11px;font-weight:800;display:inline-grid;place-items:center}
  .fl-compact .fl-tools,.fl-compact .fl-tools2{gap:8px}
}
@media(max-width:640px){.fl-more{width:auto!important;flex:none}.fl-compact:not(.fl-open) .fl-tools2{gap:0}}
@media(max-width:640px){.fl-more{justify-self:start;align-self:flex-start}}
/* the case board on a phone: a list of its cards by group */
.cbm-note{margin:10px 0 14px}.cbm-group{margin-bottom:16px}.cbm-group h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--mute)}
.cbm-card{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;margin-bottom:8px;padding:12px 14px;border:1px solid var(--line);border-left:4px solid var(--c);border-radius:10px;background:var(--panel);color:var(--ink);font:inherit;cursor:pointer}
.cbm-kind{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--c)}.cbm-card b{font-size:15px}.cbm-card p{margin:2px 0 0;font-size:13.5px;color:var(--mute);line-height:1.45}.cbm-card small{color:var(--mute);font-size:12px;margin-top:2px}
@media(max-width:640px){.cbx-views{width:100%}.cbx-views button{flex:1;white-space:nowrap;font-size:13px;padding:8px 6px}.cbx-views button svg{display:none}}
/* touch screens: text fields at 16px, so a phone does not zoom in when one is tapped */
@media (pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),select,textarea{font-size:16px!important}}
/* windows on a phone: a sheet from the bottom of the screen, scrolling inside, its title and close button staying in view */
@media(max-width:640px){
  .overlay{align-items:flex-end;padding:8vh 0 0}
  .dlg,.dlg.wide,.dlg.xl{width:100%;margin:0;border-radius:18px 18px 0 0;max-height:92dvh;overflow:auto;padding:0 16px calc(18px + env(safe-area-inset-bottom));border-bottom:0;animation:sheet-up .22s ease-out}
  .dlg>.dlg-head{position:sticky;top:0;z-index:2;background:var(--panel);margin:0 -16px 10px;padding:14px 16px 10px;border-bottom:1px solid var(--line)}
  .dlg>.dlg-head::before{content:'';position:absolute;left:50%;top:5px;width:38px;height:4px;margin-left:-19px;border-radius:2px;background:color-mix(in srgb,var(--mute) 45%,transparent)}
}
@keyframes sheet-up{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.dlg{animation:none!important}}
@media(max-width:760px){.up-tiles>:last-child:nth-child(odd),.adm-tiles>:last-child:nth-child(odd){grid-column:1/-1}}
/* touch screens have no hover: controls that appear on hover are always shown there */
@media(hover:none){.reader h3.sec .iconbtn,.oc-add,.fb-x,.ro-set,.post-name .iconbtn,.unit-edit,.cal-add,.away-read,.cp-go,.mega-links a b svg{opacity:1!important;transform:none!important}}
/* touch screens: controls a finger can hit (about 40px), without changing how small things look where that matters */
@media(pointer:coarse){
  .btn.sm{min-height:38px;padding-top:7px;padding-bottom:7px}
  .iconbtn{min-width:40px;min-height:40px}.iconbtn.sm{min-width:36px;min-height:36px}
  .fl-fchip,.cal-key,.seg button,.chip{min-height:36px}
  .back{display:inline-flex;align-items:center;min-height:40px}
  input[type=checkbox],input[type=radio]{width:20px;height:20px}
  .linkbtn,button.mono{position:relative}.linkbtn::after,.rs-rib::after,.rs-papers::after,button.mono::after{content:'';position:absolute;inset:-10px -4px}
  .rs-rib,.rs-papers{position:relative}
  .tabs button,.tabs a{min-height:42px}
}
/* menus on a phone (panel/app.js menu): a sheet from the bottom over a dimmed page, with rows a finger can hit */
@media(max-width:640px){
  .menu-pop.sheet{left:0!important;right:0!important;top:auto!important;bottom:0!important;width:auto!important;min-width:0!important;max-width:none!important;max-height:78dvh!important;border-radius:18px 18px 0 0;border-bottom:0;padding:16px 10px calc(12px + env(safe-area-inset-bottom));box-shadow:0 0 0 100vmax rgba(3,8,6,.55);animation:sheet-up .2s ease-out}
  .menu-pop.sheet::before{content:'';position:absolute;left:50%;top:6px;width:38px;height:4px;margin-left:-19px;border-radius:2px;background:color-mix(in srgb,var(--mute) 45%,transparent)}
  .menu-pop.sheet .menu-item{min-height:46px;font-size:15px;padding:10px 12px}
  .menu-pop.sheet.nt-pop{display:flex!important;flex-direction:column;max-height:85dvh!important}
}
/* notices sit above the phone bar */
/* the home-screen app: a Back button in the top bar, and pull down to reload */
.app-back svg{transform:rotate(90deg)}.app-back[hidden]{display:none}
.ptr{position:fixed;top:calc(env(safe-area-inset-top) + 8px);left:50%;margin-left:-18px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--raise);border:1px solid var(--line);color:var(--mute);z-index:45;transform:translateY(-60px);transition:transform .15s;pointer-events:none}
.ptr.ready{color:var(--gold);border-color:var(--gold)}.ptr.spin{transform:translateY(20px)!important;animation:ptr-spin .7s linear infinite}
@keyframes ptr-spin{to{transform:translateY(20px) rotate(360deg)}}
/* offline (panel/app.js connectionWatch) */
.offline-note{position:fixed;left:50%;transform:translateX(-50%);top:calc(64px + env(safe-area-inset-top));z-index:44;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 24px);padding:8px 14px;border-radius:999px;background:var(--raise);border:1px solid var(--warn);color:var(--ink);font-size:13px;box-shadow:var(--shadow)}
.offline-note svg{color:var(--warn);flex:none}.offline-note[hidden]{display:none}
/* the sidebar on a phone: room to scroll past the phone bar; the page behind stays still; the Menu tab shows it is open */
@media(max-width:820px){.side{padding-bottom:calc(96px + env(safe-area-inset-bottom));overscroll-behavior:contain}body.nav-open{overflow:hidden}body.nav-open .tabbar .tab:last-child{color:var(--gold)}}
/* a form in a sheet on a phone: its buttons stay at the bottom of the sheet, in reach, however long the form */
@media(max-width:640px){.dlg form>.acts:last-child,.dlg .fgrid>.acts:last-child{position:sticky;bottom:calc(-18px - env(safe-area-inset-bottom));z-index:2;background:var(--panel);margin:12px -16px 0;padding:10px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.dlg form>.acts:last-child .btn,.dlg .fgrid>.acts:last-child .btn{flex:1}}
.cf-acts{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}@media(max-width:640px){.cf-acts{justify-content:flex-start;margin-top:8px}}
/* text size on this device (Account Settings > Appearance) */
html.text-zoomed body{zoom:var(--text-zoom,1)}
.up-acts{margin-top:12px}
/* "Skip to the page": hidden until it has the keyboard's focus */
.skip-link{position:fixed;left:12px;top:-60px;z-index:2000;padding:10px 16px;border-radius:10px;background:var(--gold);color:#14211a;font-weight:700;text-decoration:none;transition:top .15s}.skip-link:focus{top:12px}
.ntp-row{transition:transform .15s}.ntp-row.swiping{background:color-mix(in srgb,var(--ok) 14%,transparent)}
/* Messages: where unread starts, and back to the newest */
.msg-new{display:flex;align-items:center;gap:10px;margin:12px 0 8px;color:var(--gold,#c9a227);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.msg-new::before,.msg-new::after{content:"";flex:1;height:1px;background:currentColor;opacity:.55}
.msg-thread{position:relative}.msg-latest{position:absolute;right:16px;bottom:84px;z-index:3;display:inline-flex;align-items:center;gap:4px;padding:7px 12px 7px 9px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);font:600 12.5px/1 inherit;font-family:inherit;box-shadow:0 4px 14px rgba(0,0,0,.25);cursor:pointer}.msg-latest[hidden]{display:none}
/* while typing on a phone the keyboard needs the room: the tab bar steps aside (it is back when the field is left) */
@media(max-width:820px){body:has(:is(input:not([type=checkbox],[type=radio],[type=range],[type=button],[type=submit],[type=file]),textarea,select,[contenteditable=true]):focus) .tabbar{display:none}}
.pr-facts dd a.pr-unit{display:block;font-size:12px;color:var(--mute);text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-underline-offset:2px;white-space:nowrap}.pr-facts dd a.pr-unit:hover{color:var(--gold)}
.ps-hint{margin:0;padding:4px 14px 12px;color:var(--mute);font-size:13px;line-height:1.45}
/* ---------- Choices in forms: a segmented bar, or cards and a list with a radio mark (panel/lib.js, type 'choice') ---------- */
.choice-set.pills{display:inline-flex;flex-wrap:nowrap;gap:0;max-width:100%;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel2)}
.choice-set.pills .choice-opt{border:0;border-left:1px solid var(--line);border-radius:0;background:transparent;padding:8px 18px;min-height:38px;justify-content:center;box-shadow:none}
.choice-set.pills .choice-opt:first-child{border-left:0}
.choice-set.pills .choice-opt:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}
.choice-set.pills .choice-opt:has(input:checked){background:color-mix(in srgb,var(--gold) 15%,var(--panel2));box-shadow:inset 0 -2px 0 var(--gold)}
.choice-set.pills .choice-opt.tone-ok:has(input:checked){background:color-mix(in srgb,var(--ok) 13%,var(--panel2));box-shadow:inset 0 -2px 0 var(--ok)}
.choice-set.pills .choice-opt.tone-warn:has(input:checked){background:color-mix(in srgb,var(--warn) 13%,var(--panel2));box-shadow:inset 0 -2px 0 var(--warn)}
.choice-set.pills .choice-opt.tone-bad:has(input:checked){background:color-mix(in srgb,var(--bad) 13%,var(--panel2));box-shadow:inset 0 -2px 0 var(--bad)}
.choice-set.pills .choice-opt.tone-muted:has(input:checked){background:color-mix(in srgb,var(--mute) 14%,var(--panel2));box-shadow:inset 0 -2px 0 var(--mute)}
.choice-set.pills .choice-txt b{font-size:14px;font-weight:500;white-space:nowrap}.choice-set.pills .choice-opt:has(input:checked) .choice-txt b{font-weight:600}
.choice-set.pills .choice-opt:has(input:focus-visible){outline-offset:-3px}
.choice-set.list{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px}
.choice-set.cards{gap:8px}
.choice-set.cards .choice-opt,.choice-set.list .choice-opt{border-radius:8px;padding:11px 14px;gap:11px;align-items:flex-start;box-shadow:none}
.choice-set.list .choice-opt{padding:9px 12px;align-items:center}
.choice-set.cards .choice-opt:has(input:checked),.choice-set.list .choice-opt:has(input:checked){border-color:var(--gold);background:color-mix(in srgb,var(--gold) 8%,var(--panel2));box-shadow:none}
.choice-radio{flex:none;position:relative;width:16px;height:16px;margin-top:2px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--mute) 80%,transparent)}
.choice-set.list .choice-radio{margin-top:0}
.choice-opt:has(input:checked) .choice-radio{border-color:var(--gold)}.choice-opt:has(input:checked) .choice-radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--gold)}
@media (max-width:520px){
  .choice-set.pills{display:flex;width:100%}.choice-set.pills .choice-opt{flex:1 1 0;padding:9px 8px}
  .choice-set.pills.many{flex-direction:column}.choice-set.pills.many .choice-opt{border-left:0;border-top:1px solid var(--line);justify-content:flex-start;padding:11px 14px}.choice-set.pills.many .choice-opt:first-child{border-top:0}
  .choice-set.list{grid-template-columns:1fr}
}
/* a form's part heading with its tags and a line under it */
.form-heading h3{margin:0;font-size:inherit;color:inherit;display:flex;align-items:center;flex-wrap:wrap;gap:8px}
div.form-heading{font-size:17px;font-weight:700}
.fh-tag{font:600 11px/1 var(--font);letter-spacing:.04em;padding:4px 8px;border-radius:6px;border:1px solid var(--line);color:var(--mute);background:var(--panel2)}
.form-heading.with-note p{margin:4px 0 0;font-size:13.5px;font-weight:400;color:var(--mute);line-height:1.45}
.fld-name .fh-tag.opt{margin-left:7px;padding:2px 6px;font-size:10.5px;vertical-align:1px;font-weight:600}
/* ---------- Penal Code (panel/records-messages-training.js): titles beside the charges, each charge opens in place ---------- */
.pc-page{padding-bottom:84px}
.pc-page .page-head p .pc-ver{display:inline;padding:0;margin-left:2px;font-size:inherit;color:var(--mute);text-align:left}.pc-page .page-head p .pc-ver>*{display:inline}.pc-page .page-head p .pc-ver svg{vertical-align:-2px;margin-right:5px}.pc-page .page-head p .pc-ver b{color:var(--ink)}.pc-page .page-head p .pc-ver:hover b{color:var(--gold)}
.pc-tools .fl-tools{gap:8px}.pc-navsel{display:none;max-width:100%}
.pc-tools .fl-tools2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pc-seg{margin:0}.pc-seg button{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;font-size:13.5px;color:var(--ink)}
.pc-segn{font-size:11.5px;font-weight:600;color:var(--mute);font-variant-numeric:tabular-nums}.pc-seg button.on .pc-segn{color:inherit;opacity:.75}
.pc-count{white-space:nowrap}
.pc-layout{display:grid;grid-template-columns:232px minmax(0,1fr);gap:20px;align-items:start}
/* the titles */
.pc-nav{position:sticky;top:76px;display:grid;gap:1px;max-height:calc(100vh - 96px);overflow:auto;padding:4px 0}
.pc-nav-h{padding:0 12px 6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.pc-nav button{display:flex;align-items:flex-start;gap:10px;width:100%;padding:8px 12px;border:0;border-left:2px solid transparent;border-radius:0 8px 8px 0;background:none;color:var(--ink);font:inherit;font-size:13.5px;line-height:1.35;text-align:left;cursor:pointer}
.pc-nav button:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}
.pc-nav button.on{border-left-color:var(--gold);background:color-mix(in srgb,var(--gold) 9%,transparent);font-weight:600}
.pc-nav button.none{color:var(--mute);opacity:.6}
.pc-tn{flex:none;min-width:16px;font:600 12px/1.45 var(--mono,ui-monospace,monospace);color:var(--mute);text-align:right}.pc-nav button.on .pc-tn{color:var(--gold)}
.pc-n{flex:none;margin-left:auto;font-size:12px;color:var(--mute);font-variant-numeric:tabular-nums}
/* a title and its charges */
.pc-group+.pc-group{margin-top:26px}
.pc-gh{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 2px 10px}
.pc-gh small{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.pc-gh h2{margin:2px 0 0;font-size:17px;line-height:1.3}
.pc-card{overflow:hidden}
.pc-row+.pc-row{border-top:1px solid var(--line)}
.pc-row>summary{display:grid;grid-template-columns:56px minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:13px 14px 13px 18px;cursor:pointer;list-style:none}
.pc-row>summary::-webkit-details-marker{display:none}
.pc-row>summary:hover{background:color-mix(in srgb,var(--ink) 2.5%,transparent)}
.pc-row>summary:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.pc-row[open]>summary{background:color-mix(in srgb,var(--gold) 5%,transparent)}
.pc-code{font-size:12.5px;font-weight:600;color:var(--mute);white-space:nowrap;font-variant-numeric:tabular-nums}.pc-row[open] .pc-code{color:var(--gold)}
.pc-main{min-width:0;display:flex;flex-direction:column;gap:3px}.pc-main b{font-size:14.5px;font-weight:600;overflow-wrap:anywhere}
.pc-main small{color:var(--mute);font-size:13px;line-height:1.45}
.pc-row[open] .pc-main small{display:none!important}
.pc-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}.pc-meta small{color:var(--mute);font-size:12.5px;white-space:nowrap}
.pc-class{font-size:12px;font-weight:600;white-space:nowrap}.pc-class.bad{color:var(--bad)}.pc-class.warn{color:var(--warn)}.pc-class.muted{color:var(--mute)}
.pc-add{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:transparent;color:var(--mute);font:600 12.5px var(--font);cursor:pointer;white-space:nowrap}
.pc-add:hover{border-color:var(--gold);color:var(--ink)}
.pc-add.in{border-color:color-mix(in srgb,var(--gold) 55%,var(--line));color:var(--gold);background:color-mix(in srgb,var(--gold) 8%,transparent)}
@media (hover:hover) and (min-width:901px){.pc-add:not(.in){opacity:0}.pc-row>summary:hover .pc-add,.pc-row>summary:focus-within .pc-add,.pc-row[open] .pc-add{opacity:1}}
mark{background:color-mix(in srgb,var(--gold) 32%,transparent);color:inherit;border-radius:3px;padding:0 1px}
/* an open charge: its definition beside its penalties */
.pc-body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr);gap:16px 24px;padding:6px 18px 18px 90px}
.pc-lbl{display:block;margin-bottom:6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.pc-def .pre{line-height:1.65;font-size:14px;max-width:68ch}
.pc-facts{display:grid;gap:10px}
.pc-figs{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.pc-fig{padding:10px 12px;background:var(--panel2);min-width:0}.pc-fig:nth-child(odd){border-right:1px solid var(--line)}.pc-fig:nth-child(n+3){border-top:1px solid var(--line)}
.pc-fig small{display:block;font-size:11.5px;color:var(--mute)}.pc-fig b{display:block;margin-top:2px;font-size:14.5px;font-weight:600;overflow-wrap:anywhere}.pc-fig span{display:block;margin-top:2px;font-size:12px;color:var(--mute);line-height:1.4}
.pc-facts .kv{margin:0;font-size:13px}
.pc-note{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.5;color:var(--mute)}.pc-note b{color:var(--ink);white-space:nowrap}
.pc-ooc{flex:none;font:700 10.5px var(--font);letter-spacing:.06em;padding:2px 7px;border-radius:6px;background:color-mix(in srgb,var(--blue) 18%,transparent);color:var(--blue)}
.pc-acts{grid-column:1/-1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line)}
.pc-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:36px 20px;text-align:center;color:var(--mute)}.pc-empty p{margin:0;color:var(--ink)}
/* the calculator */
.pc-calc{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);width:min(600px,calc(100% - 24px));z-index:40}
.pc-calc-in{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.pc-calc-in>summary{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;list-style:none}.pc-calc-in>summary::-webkit-details-marker{display:none}
.pc-calc-in>summary>svg:first-child{color:var(--gold);flex:none}
.pc-calc-sum{flex:1;min-width:0;color:var(--mute);font-size:13px;line-height:1.4}
.pc-calc-open{display:inline-flex;margin-left:auto;color:var(--mute);transition:transform .15s}.pc-calc-in[open] .pc-calc-open{transform:rotate(180deg)}
.pc-calc-body{padding:4px 14px 14px;border-top:1px solid var(--line);max-height:55vh;overflow:auto}
.pc-calc-list{list-style:none;margin:0;padding:0}.pc-calc-list li{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.pc-calc-list .pc-code{min-width:44px}
.pc-qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:7px;overflow:hidden}.pc-qty b{min-width:26px;text-align:center;font-size:13px}
.pc-qty button{width:28px;height:28px;border:0;background:var(--panel2);color:var(--ink);font:600 15px var(--font);cursor:pointer}.pc-qty button:hover{background:color-mix(in srgb,var(--gold) 14%,var(--panel2))}
.pc-calc-tot{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:12px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.pc-calc-tot div{padding:9px 11px;background:var(--panel2)}.pc-calc-tot div+div{border-left:1px solid var(--line)}.pc-calc-tot small{display:block;color:var(--mute);font-size:11.5px}.pc-calc-tot b{font-size:14px}
@media (max-width:900px){
  .pc-layout{grid-template-columns:1fr}.pc-nav{display:none}.pc-navsel{display:block}
  .pc-body{grid-template-columns:1fr;padding:4px 16px 16px}
}
@media (max-width:640px){
  .pc-row>summary{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:12px 14px}
  .pc-row>summary .pc-code{grid-column:1;grid-row:1}.pc-main{grid-column:1/-1;grid-row:2}.pc-meta{grid-column:1/-1;grid-row:3;flex-direction:row;align-items:baseline;gap:10px}
  .pc-add{grid-column:2;grid-row:1;justify-self:end}
  .pc-seg{display:flex;width:100%}.pc-seg button{flex:1;justify-content:center;padding:8px 4px;font-size:12.5px;gap:4px}.pc-segn{display:none}
  .pc-calc{bottom:calc(72px + env(safe-area-inset-bottom))}.pc-calc-sum{display:none}
  .pc-calc-tot{grid-template-columns:1fr 1fr}.pc-calc-tot div:nth-child(3){border-left:0}.pc-calc-tot div:nth-child(n+3){border-top:1px solid var(--line)}
}
/* Report Forms (panel/records-messages-training.js): forms by where they are listed, with who they belong to */
.fm-rule{margin:-6px 0 18px}.fm-group+.fm-group{margin-top:22px}.fm-gh{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 2px 10px}.fm-gh h2{margin:0;font-size:17px}
.fm-acts{display:inline-flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.fb-place{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}@media(max-width:640px){.fb-place{grid-template-columns:1fr}}
/* the Sheriff's message on a narrow phone: the line above the name wraps instead of widening the page */
.sheriff .who>div{min-width:0}.sheriff .sh-eyebrow{white-space:normal;overflow-wrap:anywhere}
@media(max-width:420px){.sheriff{padding:18px 16px}.sheriff .sh-eyebrow{letter-spacing:.08em}}
@media(max-width:420px){.ready .ready-btn{display:flex;width:100%;justify-content:center;white-space:normal;text-align:center}}
/* the sidebar: groups fold away from their title; the member's own arrangement (panel/sidebar-arrange.js) */
.side .nav-title{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;border:0;background:none;font-family:inherit;cursor:pointer;text-align:left}
.side .nav-title svg{flex:none;opacity:0;transition:transform .15s,opacity .15s}.side .nav-title:hover svg,.side .nav-title:focus-visible svg,.side .nav-group.folded .nav-title svg{opacity:.8}
.side .nav-group.folded .nav-title svg{transform:rotate(-90deg)}.side .nav-group.folded a.nav:not(.on){display:none}
.side .nav-title:hover{color:var(--ink)}
.nav-arrange{display:flex;align-items:center;gap:10px;width:100%;margin:10px 0 4px;padding:9px 10px;border:0;border-top:1px solid var(--line);background:none;color:var(--mute);font:inherit;font-size:13px;cursor:pointer;text-align:left}.nav-arrange:hover{color:var(--ink)}
.sb-edit{display:grid;gap:12px;margin:12px 0}
.sb-group{border:1px solid var(--line);border-radius:10px;background:var(--panel2);overflow:hidden}
.sb-gh{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--ink) 3%,transparent)}
.sb-gh b{flex:1}.sb-gh small{flex:2}
.sb-name{flex:1;min-width:0;padding:6px 8px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--ink);font:700 12px var(--font);letter-spacing:.06em;text-transform:uppercase}.sb-name:hover,.sb-name:focus{border-color:var(--line);background:var(--panel)}
.sb-items{list-style:none;margin:0;padding:4px 0}
.sb-item{display:flex;align-items:center;gap:10px;padding:6px 10px;font-size:14px}.sb-item+.sb-item{border-top:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.sb-item>svg{color:var(--mute);flex:none}.sb-grip{color:var(--mute);font-size:11px;letter-spacing:-2px;cursor:grab;user-select:none}
.sb-to{max-width:170px;padding:4px 6px;font-size:12.5px}
.sb-none{padding:10px 12px;color:var(--mute);font-size:13px}
.sb-add{justify-self:start}
@media(max-width:640px){.sb-item{flex-wrap:wrap}.sb-item .grow{min-width:60%}.sb-to{max-width:none;flex:1}.sb-grip{display:none}}
.sb-edit .iconbtn:disabled{opacity:.28;cursor:default}
@media(max-width:640px){.sb-item .grow{flex:1 1 0;min-width:0}.sb-item .sb-to{order:5;flex:1 1 100%;min-width:0;margin-left:26px}}
/* ---------- Training (panel/training.js): overview, catalog and the Training Staff view ---------- */
.tg-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel);margin-bottom:16px}
.tg-kpis.six{grid-template-columns:repeat(6,minmax(0,1fr))}
.tg-kpi{display:flex;flex-direction:column;gap:2px;padding:14px 16px;color:var(--ink);text-decoration:none;min-width:0}.tg-kpi+.tg-kpi{border-left:1px solid var(--line)}
.tg-kpi b{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.tg-kpi span{font-size:12.5px;color:var(--mute)}
.tg-kpi.warn b{color:var(--warn)}.tg-kpi.bad b{color:var(--bad)}.tg-kpi.gold b{color:var(--gold)}
.tg-cols{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start}
.tg-col{display:grid;gap:16px;min-width:0}
.tg-box{margin:0}.tg-box>h3{margin:0 0 12px;font-size:15px}.tg-box .linkbtn{display:inline-block;margin-top:10px}
.tg-list{list-style:none;margin:0;padding:0}
.tg-li{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.tg-list .tg-li:first-child{border-top:0;padding-top:2px}
.tg-li>svg{color:var(--ok);flex:none}.tg-li a.grow{color:var(--ink);text-decoration:none}.tg-li a.grow:hover{color:var(--gold)}
.tg-date{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:44px;height:46px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);line-height:1.05}
.tg-date small{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gold)}.tg-date b{font-size:17px}
.tg-conts{display:grid;gap:10px}
.tg-cont{display:grid;gap:8px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--ink);text-decoration:none;transition:border-color .12s}
.tg-cont:hover{border-color:color-mix(in srgb,var(--gold) 55%,var(--line))}.tg-cont>b{font-size:15.5px}
.tg-cont-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.tg-cont-top small{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.tg-cont-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px}
.tg-cont .tr-progress{min-width:0}
.tg-empty{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.tg-empty p{margin:0;color:var(--mute)}
.card.tg-empty{align-items:center;padding:32px 20px;text-align:center}
.tg-done>summary{display:flex;align-items:center;gap:8px;cursor:pointer}
/* the catalog */
.tg-seg{margin:0;flex-wrap:wrap}.tg-seg button{font-size:13.5px;padding:7px 13px}
.tg-mine{margin:0;font-size:13.5px;white-space:nowrap}
.tg-cat{display:grid;gap:26px}
.tg-sec>h2{display:flex;align-items:center;gap:8px;margin:0 2px 12px;font-size:17px}
.tg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;align-items:stretch}
.tg-card{display:flex;flex-direction:column;gap:8px;margin:0;padding:18px}
.tg-kind{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.tg-card h3{margin:0;font-size:16.5px;line-height:1.3}
.tg-desc{margin:2px 0 0;font-size:13.5px;line-height:1.55;color:var(--ink)}
.tg-facts{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--mute)}.tg-facts span{display:inline-flex;align-items:center;gap:5px}
.tg-dates{display:grid;gap:8px;margin-top:4px;padding-top:10px;border-top:1px solid var(--line)}
.tg-lbl{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.tg-dt{display:flex;align-items:center;gap:10px}.tg-dt .tg-date{width:38px;height:40px}.tg-dt .tg-date b{font-size:15px}
.tg-card-foot{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}
.tg-st{min-width:160px;flex:1}.tg-lock{display:inline-flex;align-items:center;gap:4px}
/* the Training Staff view */
.tg-staff>p.small{margin:0 0 14px}
.tg-req{align-items:flex-start}.tg-note{margin:6px 0 0;padding:8px 10px;border-left:2px solid var(--line);color:var(--ink);white-space:pre-wrap}
.tg-req-acts{display:inline-flex;gap:6px;flex:none}
.tg-fill{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:96px}.tg-fill .tr-bar{width:96px;flex:none}.tg-fill small{color:var(--mute);font-size:12px;white-space:nowrap}
.tg-progs{margin-top:16px}.tg-progs-h{display:flex;align-items:center;gap:10px;padding:14px 16px 6px}
@media(max-width:1100px){.tg-kpis.six{grid-template-columns:repeat(3,minmax(0,1fr))}.tg-kpis.six .tg-kpi:nth-child(4){border-left:0}.tg-kpis.six .tg-kpi:nth-child(n+4){border-top:1px solid var(--line)}}
@media(max-width:900px){.tg-cols{grid-template-columns:1fr}}
@media(max-width:640px){
  .tg-kpis,.tg-kpis.six{grid-template-columns:1fr 1fr}.tg-kpi:nth-child(odd){border-left:0}.tg-kpi:nth-child(n+3){border-top:1px solid var(--line)}.tg-kpis.six .tg-kpi:nth-child(4){border-left:1px solid var(--line)}
  .tg-kpi{padding:12px 14px}.tg-kpi b{font-size:20px}
  .tg-grid{grid-template-columns:1fr}.tg-req{flex-wrap:wrap}.tg-req-acts{width:100%}.tg-req-acts .btn{flex:1}
}
/* a training record (panel/training.js): the criteria list and its printed copy */
.card.flush.trr-list{padding:4px 16px}.trr-desc{max-width:80ch}
.crit2-acts{display:inline-flex;gap:6px;flex:none}
@media(max-width:700px){.crit2-acts{width:calc(100% - 40px);margin-left:40px}.crit2-acts .btn{flex:1}}
@media print{.print-sheet.trp-print{color:#111;padding:12mm}
  .trp-head{border-bottom:2px solid #b8913c;padding-bottom:8px;margin-bottom:12px}.trp-head small{color:#8a6a1e;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:8.5pt}.trp-head h1{margin:4px 0 2px;font-size:18pt}.trp-head p{margin:0;color:#444}
  .trp-facts{border-collapse:collapse;margin-bottom:14px}.trp-facts th{text-align:left;padding:3px 14px 3px 0;color:#555;font-weight:600}.trp-facts td{padding:3px 0}
  .trp-crit{padding-left:18px}.trp-crit li{margin-bottom:9px;break-inside:avoid}.trp-crit li>div{color:#333}.trp-note{margin-top:3px;padding-left:8px;border-left:2px solid #ccc;color:#444}
  .trp-foot{margin-top:18px;color:#777;font-size:8.5pt}}
/* the dashboard's My Training card */
.dash-tr{display:flex;align-items:center;gap:14px;padding:9px 0;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}.card-head+.dash-tr{border-top:0}.dash-tr .grow{display:flex;flex-direction:column;gap:2px;min-width:0}.dash-tr:hover b{color:var(--gold)}.dash-tr .tr-progress{min-width:120px}.dash-course{margin-top:6px}
@media(max-width:640px){.dash-tr{flex-wrap:wrap}.dash-tr .tr-progress{flex:1 1 100%}}
/* the license (panel/stars-settings.js and the notice across STARS) */
.lic{display:grid;gap:14px}.lic-key{width:100%;font-size:12.5px;word-break:break-all}
.lic-banner{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.lic-banner.warn{border-color:var(--warn)}.lic-banner.bad{border-color:var(--bad)}.lic-banner a{font-weight:600}
/* search on a phone: the list of pages and recent items spans the screen under the top bar, each result's kind below its title */
@media(max-width:640px){
  .search .ps-pop{position:fixed;left:10px;right:10px;top:calc(env(safe-area-inset-top) + 62px);max-height:calc(100dvh - 160px)}
  .ps-item{flex-wrap:wrap;row-gap:1px;padding:10px 12px}.ps-item span{flex:1 1 0;min-width:0}.ps-item small{flex-basis:100%;padding-left:26px;font-size:12px}
}
/* the calendar on a phone: filters wrap, the chosen day is marked, and its events are listed under the month */
.cal-sel{margin-top:12px}.cal-sel-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.cal-sel-h h3{margin:0;font-size:15px}
@media(max-width:700px){
  .cal-legend{flex-wrap:wrap;overflow:visible!important;scrollbar-width:none}.cal-legend::-webkit-scrollbar{display:none}
  .cal-day{cursor:pointer}.cal-day.sel{background:color-mix(in srgb,var(--gold) 16%,transparent);box-shadow:inset 0 0 0 2px var(--gold)}
  .cal-bar .bar{flex-wrap:wrap;row-gap:10px}
}

/* notices (panel/lib.js toast): stacked at the bottom right (above the tab bar on a phone), with an icon, a title, a close button and the time left */
.toasts{position:fixed;right:20px;bottom:20px;z-index:70;display:flex;flex-direction:column;align-items:flex-end;gap:8px;width:min(380px,calc(100vw - 32px));pointer-events:none}
.toast{--tc:var(--ok);position:relative;display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 12px 14px 14px;border:1px solid var(--line);border-left:3px solid var(--tc);border-radius:10px;background:var(--panel);color:var(--ink);box-shadow:0 12px 32px rgba(0,0,0,.35);overflow:hidden;pointer-events:auto;animation:toast-in .22s ease-out}
.toast.bad{--tc:var(--bad)}.toast.info{--tc:var(--blue)}.toast.warn{--tc:var(--warn)}
.toast.out{opacity:0;transform:translateY(6px);transition:opacity .18s,transform .18s}
.toast-ic{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:color-mix(in srgb,var(--tc) 16%,transparent);color:var(--tc)}
.toast-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding-top:1px}.toast-body b{font-size:13.5px;font-weight:650}.toast-body span{font-size:13.5px;line-height:1.45;color:var(--mute);overflow-wrap:anywhere}
.toast-act{flex:none;align-self:center;padding:6px 10px;border:1px solid var(--line);border-radius:7px;background:transparent;color:var(--ink);font:600 12.5px var(--font);cursor:pointer}.toast-act:hover{border-color:var(--tc)}
.toast-x{flex:none;display:grid;place-items:center;width:26px;height:26px;margin:-2px -2px 0 0;border:0;border-radius:6px;background:transparent;color:var(--mute);cursor:pointer}.toast-x:hover{background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink)}
.toast-time{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--tc);opacity:.55;transform-origin:left;transform:scaleX(1)}
@keyframes toast-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.toast{animation:none}.toast.out{transition:none}}
@media(max-width:820px){.toasts{left:12px;right:12px;width:auto;align-items:stretch;bottom:calc(80px + env(safe-area-inset-bottom))}}
@media print{.toasts{display:none!important}}
/* a calendar row (the chosen day and the agenda): the time and kind on a small line, then the title and the place, full width */
.cal-row{align-items:flex-start;padding:11px 2px}.cal-row>i{margin-top:6px}
.cal-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cal-row-meta{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 10px}
.cal-row-meta .cal-t{width:auto}.cal-k{font-size:12px;color:var(--mute)}
.cal-row-t{font-size:14.5px;line-height:1.35;overflow-wrap:normal;word-break:normal}.cal-row-p{font-size:13px;color:var(--mute);line-height:1.4}
.cal-row:hover .cal-row-t{color:var(--gold)}.cal-row:hover{color:var(--ink)}
.cal-filter-btn{display:none}
@media(max-width:700px){.cal-filter-btn{display:inline-flex;align-items:center;gap:6px}.cal-legend:not(.open){display:none}}
.lic-agree{margin:12px 0 4px;align-items:flex-start}.lic-agree .linkbtn{display:inline;padding:0;font:inherit}.lic-terms .reader{max-height:65vh;overflow:auto;padding-right:6px}.lic-terms h3{margin-top:18px}
.lic-preview{margin:8px 0 0;font-size:13.5px}.lic-ok,.lic-bad{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:8px;border:1px solid var(--line)}.lic-ok{border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}.lic-ok svg{color:var(--ok);flex:none;margin-top:2px}.lic-bad{border-color:color-mix(in srgb,var(--bad) 45%,var(--line))}.lic-bad svg{color:var(--bad);flex:none;margin-top:2px}
/* while a page loads: a calm outline of a page (panel/app.js) */
.page-skel{display:grid;gap:14px;max-width:900px}.page-skel i{display:block;border-radius:10px;background:linear-gradient(90deg,var(--panel) 0%,color-mix(in srgb,var(--ink) 6%,var(--panel)) 50%,var(--panel) 100%);background-size:200% 100%;animation:sk 1.4s ease-in-out infinite}
.sk-title{height:30px;width:40%}.sk-line{height:14px;width:70%}.sk-card{height:120px}
@keyframes sk{from{background-position:100% 0}to{background-position:-100% 0}}
.to-top{position:fixed;right:14px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:35;display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--ink);box-shadow:0 6px 18px rgba(0,0,0,.3);cursor:pointer}.to-top svg{transform:rotate(180deg)}.to-top[hidden]{display:none}
@media(min-width:821px){.to-top{display:none!important}}
.adm-navsel{display:none}
@media(max-width:640px){.adm-nav{display:none!important}.adm-navsel{display:block;width:100%;margin-bottom:6px;font-size:15px;padding:10px 12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.pr-tr{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}.pr-tr:first-of-type{border-top:0}.pr-tr .grow{display:flex;flex-direction:column;gap:2px;min-width:0}.pr-tr:hover b{color:var(--gold)}.pr-tr>svg{color:var(--ok);flex:none}.pr-tr .tr-progress{min-width:120px}
.tg-crit summary{cursor:pointer;font-size:13px;color:var(--mute)}.tg-crit ol{margin:6px 0 0;padding-left:20px;font-size:13px;line-height:1.5}.tg-next{margin-top:4px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.tg-next .linkbtn{font-weight:600}
@media print{.print-sheet.pcp-print{color:#111;padding:12mm}.pcp small{color:#8a6a1e;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:8.5pt}.pcp h1{margin:4px 0 10px;font-size:16pt}.pcp table{width:100%;border-collapse:collapse;margin-bottom:10px}.pcp th,.pcp td{text-align:left;padding:4px 8px 4px 0;border-bottom:1px solid #ddd}.pcp-foot{color:#777;font-size:8.5pt}}
.hello-date{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:2px}
.pw-wrap{position:relative;display:block}.pw-wrap input{width:100%;padding-right:44px}.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:6px;background:transparent;color:var(--mute);cursor:pointer}.pw-eye:hover,.pw-eye.on{color:var(--ink)}
.msg-readall{justify-self:end;margin:2px 4px 0}
.tg-staff-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}.tg-staff-top p{margin:0}
.ro-note{position:sticky;top:0;z-index:80;padding:10px 16px;background:color-mix(in srgb,var(--warn,#e8a64a) 18%,#0e1813);border-bottom:1px solid var(--warn,#e8a64a);color:#f3ecd6;font-size:14px;text-align:center}
.pc-recent{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-4px 0 14px}.pc-recent:empty{display:none}.pc-recent small{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-right:4px}
.pc-recent-c{max-width:260px;padding:5px 10px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink);font:500 12.5px var(--font);cursor:pointer;text-align:left;white-space:normal}.pc-recent-c b{color:var(--gold);font-weight:600}.pc-recent-c:hover{border-color:var(--gold)}
.signin-forgot{margin:10px 0 0;text-align:center}
.card.flush .tbl thead th,.tblwrap .tbl thead th{position:sticky;top:0;z-index:1;background:var(--panel)}
.tg-empty-acts{display:flex;flex-wrap:wrap;gap:8px}
.sr-none{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.sr-none p{margin:0}
.copy-val{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}.copy-val svg{opacity:0;color:var(--mute);transition:opacity .12s}.copy-val:hover svg,.copy-val:focus-visible svg{opacity:1}@media(hover:none){.copy-val svg{opacity:.6}}
.th-sort{cursor:pointer;user-select:none;white-space:nowrap}.th-sort:hover{color:var(--ink)}.th-sort::after{content:"";display:inline-block;width:0;height:0;margin-left:6px;vertical-align:2px;border:4px solid transparent;opacity:0}
.th-sort[aria-sort=ascending]::after{border-bottom-color:currentColor;border-top-width:0;opacity:.8}.th-sort[aria-sort=descending]::after{border-top-color:currentColor;border-bottom-width:0;opacity:.8}.th-sort:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.btn[aria-busy=true]{position:relative;color:transparent!important;pointer-events:none}.btn[aria-busy=true]::after{content:"";position:absolute;inset:0;margin:auto;width:14px;height:14px;border:2px solid #fff;border-right-color:transparent;border-radius:50%;animation:cpspin .8s linear infinite}
.btn.sec[aria-busy=true]::after{border-color:var(--ink);border-right-color:transparent}
.upg-list small{overflow-wrap:anywhere}
.trr-days{display:flex;align-items:center;gap:6px;margin:4px 0 10px}.tr-cert .cert-criteria{margin-top:0}
@media print{body.sheet-printing .trc-print .certificate{border-width:12px;margin:0 auto;box-shadow:none}}
.caps-note{display:flex;align-items:center;gap:5px;margin-top:5px;color:var(--warn);font-size:12px}
.tc-tools{margin:6px 0 4px}.tcs h1{font-size:22px;margin:4px 0}.tcs-tbl{width:100%;border-collapse:collapse;margin-top:14px}.tcs-tbl th,.tcs-tbl td{border:1px solid #999;padding:10px 8px;text-align:left;font-size:13px}.tcs-tbl td:nth-child(4){width:30%}.tcs-foot{margin-top:24px;font-size:12px}
.th-sort:not([aria-sort]):hover::after{opacity:.35;border-bottom-color:currentColor;border-top-width:0}
.tg-cert-link{margin:0 10px;white-space:nowrap}
.tc-tools{margin-bottom:14px}
.blue-text{color:var(--blue)}
.crit2.ready .tick{background:color-mix(in srgb,var(--blue) 22%,transparent);color:var(--blue)}.crit2.ready .grow>.small{color:var(--blue)}.crit2-note.ready{border-left-color:var(--blue)}.trr-many{margin:0 0 10px}
.topbar .newbtn{display:inline-flex;align-items:center;gap:6px;margin-right:6px;white-space:nowrap}@media(max-width:760px){.topbar .newbtn span{display:none}.topbar .newbtn{padding:6px 8px}}
.lv-info{margin:-4px 0 6px;color:var(--mute)}.lv-info.warn{color:var(--warn)}
.dirp h1{font-size:22px;margin:4px 0}.dirp-tbl{width:100%;border-collapse:collapse;margin-top:12px}.dirp-tbl th,.dirp-tbl td{border-bottom:1px solid #bbb;padding:6px 8px;text-align:left;font-size:12px}
.calp h1{font-size:22px;margin:4px 0 12px}.calp-day{break-inside:avoid;margin:0 0 12px}.calp-day h3{font-size:14px;margin:0 0 4px;border-bottom:1px solid #bbb;padding-bottom:3px}.calp-ev{font-size:12.5px;padding:2px 0}.calp-t{display:inline-block;min-width:64px;color:#555}
.evalp h1{font-size:22px;margin:4px 0 10px}
.crewp h1{font-size:24px;margin:4px 0}.crewp h2{font-size:15px;margin:16px 0 6px}.crewp-tbl{width:100%;border-collapse:collapse}.crewp-tbl th,.crewp-tbl td{border-bottom:1px solid #bbb;padding:5px 6px;text-align:left;font-size:12px;vertical-align:top}.crewp-foot{margin-top:18px;font-size:11px}
/* ---------- SEB Command Center ---------- */
.seb-ready{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:16px 18px;border-radius:14px;border:1px solid var(--line);background:var(--panel);border-left:6px solid var(--mute);margin-bottom:16px}
.seb-ready.ok{border-left-color:var(--ok);background:color-mix(in srgb,var(--ok) 7%,var(--panel))}.seb-ready.warn{border-left-color:var(--warn);background:color-mix(in srgb,var(--warn) 7%,var(--panel))}.seb-ready.bad{border-left-color:var(--bad);background:color-mix(in srgb,var(--bad) 7%,var(--panel))}
.seb-ready-state small{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:var(--mute)}.seb-ready-state b{font-size:26px;line-height:1.15}
.seb-ready.ok .seb-ready-state b{color:var(--ok)}.seb-ready.warn .seb-ready-state b{color:var(--warn)}.seb-ready.bad .seb-ready-state b{color:var(--bad)}
.seb-ready-txt p{margin:0 0 4px;font-weight:600}.seb-ready-txt ul{margin:0;padding-left:18px;color:var(--mute);font-size:13px}
.seb-ready-nums{display:flex;gap:18px}.seb-rnum{text-align:center;min-width:72px}.seb-rnum b{display:block;font-size:24px;line-height:1.1}.seb-rnum span{font-size:11.5px;color:var(--mute)}
.seb-cc-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;align-items:start}.seb-cc-side{display:flex;flex-direction:column;gap:16px}.seb-cc-side>.card{margin:0}
.seb-el{margin-top:12px}.seb-el-h{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute)}.seb-el-h b{font-weight:700}
.seb-op{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;margin-bottom:6px;text-decoration:none;color:var(--ink);background:var(--panel2,var(--panel))}
.seb-op:hover{border-color:var(--gold)}.seb-op.oncall{box-shadow:inset 3px 0 0 var(--gold)}.seb-op.av-off{opacity:.65}
.seb-op-main{flex:1;min-width:0}.seb-op-main b{display:block;overflow-wrap:anywhere}.seb-op-q{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.seb-op-st{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.sq-tag{font-size:11px;padding:1px 7px;border-radius:999px;border:1px solid var(--line);color:var(--mute)}.sq-tag.acad{border-color:var(--gold);color:var(--gold)}.sq-tag.warn{border-color:var(--warn);color:var(--warn)}
.seb-spec{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0;font-size:13.5px}.seb-spec dt{color:var(--mute)}.seb-spec dd{margin:0}
.seb-oprow{display:block;padding:10px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}.seb-oprow:first-of-type{border-top:0}.seb-oprow.live b{color:var(--blue)}
.seb-oprow-h{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:3px}.seb-oprow .seb-steps{margin-top:6px}
.seb-weeks{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.seb-week{border:1px solid var(--line);border-radius:10px;padding:10px}.seb-week.now{border-color:var(--gold)}.seb-week.past{opacity:.6}
.seb-week-h{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:13.5px}.seb-week-m{display:flex;flex-wrap:wrap;gap:6px}
.seb-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px 2px 2px;border-radius:999px;border:1px solid var(--line);font-size:12.5px;text-decoration:none;color:var(--ink)}
.seb-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:16px 0}.seb-board-col{margin:0}
.seb-qm th.c,.seb-qm td.c{text-align:center;width:1%;white-space:nowrap}.seb-qm tr.off td{opacity:.6}.seb-qm tfoot th{font-size:12px}.seb-qm tfoot th.bad{color:var(--bad)}
.sq-cell{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;vertical-align:middle;border:1px dashed var(--line)}
.sq-cell.ok{border:0;background:color-mix(in srgb,var(--ok) 20%,transparent);color:var(--ok)}.sq-cell.expiring{border:0;background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}.sq-cell.expired{border:0;background:color-mix(in srgb,var(--bad) 20%,transparent);color:var(--bad)}
.seb-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}
.seb-lessons{display:flex;flex-direction:column;gap:12px}.seb-lesson{margin:0}.seb-lesson h3{margin:4px 0 8px}.seb-lesson-l{border-left:3px solid var(--gold);padding:2px 0 2px 12px;margin-bottom:8px}.seb-lesson-l small{text-transform:uppercase;letter-spacing:.06em;color:var(--mute);font-size:11px}.seb-lesson-l p{margin:2px 0 0}
@media(max-width:900px){.seb-cc-grid{grid-template-columns:1fr}.seb-board{grid-template-columns:1fr}}
@media(max-width:640px){.seb-ready{grid-template-columns:1fr;gap:10px}.seb-ready-nums{justify-content:space-between}.seb-rnum{min-width:0}}
@media(max-width:1200px) and (min-width:641px){.seb-ready{grid-template-columns:auto 1fr}.seb-ready-nums{grid-column:1/-1;justify-content:flex-start;border-top:1px solid var(--line);padding-top:10px}}
.seb-qm td:first-child,.seb-qm th:first-child{white-space:nowrap;position:sticky;left:0;background:var(--panel);z-index:1}.seb-qm td:first-child .small{font-size:11.5px}
.seb-board{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.seb-op{flex-wrap:wrap}.seb-op-main{min-width:140px}
.seb-prior .seb-lesson-l{margin-top:10px}
.seb-ready-mini{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:8px 12px;border-radius:10px;border:1px solid var(--line);border-left:4px solid var(--mute);margin:0 0 12px}.seb-ready-mini.ok{border-left-color:var(--ok)}.seb-ready-mini.ok b{color:var(--ok)}.seb-ready-mini.warn{border-left-color:var(--warn)}.seb-ready-mini.warn b{color:var(--warn)}.seb-ready-mini.bad{border-left-color:var(--bad)}.seb-ready-mini.bad b{color:var(--bad)}
.crit2.flash{animation:crit-flash 1.6s ease-out}@keyframes crit-flash{0%{background:color-mix(in srgb,var(--gold) 25%,transparent)}100%{background:transparent}}@media(prefers-reduced-motion:reduce){.crit2.flash{animation:none;outline:2px solid var(--gold)}}
/* the website's service notice (read-only) */
.svc-notice{position:sticky;top:0;z-index:80;background:#1d1608;border-bottom:2px solid #e8a64a;color:#f6efdc}
.svc-notice .sn-in{max-width:1240px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.sn-ic{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:rgba(232,166,74,.18);color:#f0b45c;flex:none}
.sn-text{flex:1 1 360px;min-width:0}.sn-text b{display:block;font-size:15.5px}.sn-text p{margin:2px 0 0;font-size:13.5px;line-height:1.45;color:#e6dcc3}
.sn-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sn-call{display:inline-flex;flex-direction:column;line-height:1.1;padding:6px 12px;border-radius:10px;border:1px solid rgba(246,239,220,.25);color:#f6efdc;text-decoration:none}
.sn-call small{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;opacity:.8}.sn-call b{font-size:16px}.sn-call.sos{background:#b3261e;border-color:#b3261e;color:#fff}
.sn-link{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;color:#f6efdc;text-decoration:underline;text-underline-offset:3px}
.sn-toggle{background:none;border:0;color:#f0b45c;font:inherit;font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:6px}
.svc-notice.small .sn-in{padding:6px 20px}.svc-notice.small .sn-text p,.svc-notice.small .sn-acts .sn-link,.svc-notice.small .sn-ic{display:none}.svc-notice.small .sn-call{flex-direction:row;gap:6px;align-items:baseline;padding:3px 10px}.svc-notice.small .sn-text b{font-size:14px}
@media(max-width:640px){.svc-notice .sn-in{padding:10px 14px;gap:10px}.sn-ic{display:none}.sn-acts{width:100%}.sn-toggle{margin-left:auto}}
.form-closed{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;margin:0 0 14px;border-radius:10px;border:1px solid #e8a64a;background:rgba(232,166,74,.10)}.form-closed svg{flex:none;margin-top:2px;color:#c9862b}.form-closed p{margin:2px 0 0;font-size:13.5px}
.pub-form.is-closed input,.pub-form.is-closed textarea,.pub-form.is-closed select{opacity:.7}
/* ---------- K9 Unit ---------- */
.k9-face{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;object-fit:cover;flex:none;background:var(--raise);border:1px solid var(--line)}.k9-face-none{color:var(--gold)}
.k9-now{display:flex;gap:16px;align-items:stretch;flex-wrap:wrap;margin-bottom:16px}.k9-now .tg-kpis{flex:1;margin:0}
.k9-now-state{display:flex;flex-direction:column;justify-content:center;padding:14px 20px;border-radius:14px;border:1px solid var(--line);border-left:6px solid var(--warn);background:var(--panel);min-width:200px}
.k9-now-state.ok{border-left-color:var(--ok)}.k9-now-state small{text-transform:uppercase;letter-spacing:.07em;font-size:11px;color:var(--mute)}.k9-now-state b{font-size:32px;line-height:1.1}.k9-now-state.ok b{color:var(--ok)}
.k9-teams{display:flex;flex-direction:column;gap:8px}.k9-kennel{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.k9-team{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);background:var(--panel)}.k9-team:hover{border-color:var(--gold)}
.k9-team.ready{box-shadow:inset 4px 0 0 var(--ok)}.k9-team.retired{opacity:.6}.k9-team-main{flex:1;min-width:0}.k9-team-h{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.k9-team-h b{font-size:16px}
.k9-chips{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0}.sq-tag.cert{border-color:var(--ok);color:var(--ok)}.k9-team-handler{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.k9-flags{display:flex;flex-direction:column;gap:2px;margin-top:6px}
.k9-req{display:block;padding:10px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}.k9-req:first-of-type{border-top:0}.k9-req.emergency b{color:var(--bad)}.k9-req-h{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:3px}
.k9-avail-note{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;border:1px solid var(--line);margin:0 0 12px;font-size:13.5px}.k9-avail-note.ok{border-left:4px solid var(--ok)}.k9-avail-note.warn{border-left:4px solid var(--warn)}.k9-avail-note.big{font-size:15px;padding:12px 16px}
.k9-hero{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.k9-hero h1{margin:0}.k9-kicker{text-transform:uppercase;letter-spacing:.08em;color:var(--gold);font-weight:700}.k9-acts{display:flex;flex-wrap:wrap;gap:8px}
.k9-bio{max-width:760px;line-height:1.6}
.k9-hours{position:relative;display:grid;grid-template-columns:repeat(12,1fr);gap:6px;align-items:end;height:150px;padding-top:6px}.k9-hcol{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.k9-hcol i{display:block;width:100%;max-width:26px;min-height:2px;border-radius:4px 4px 0 0;background:color-mix(in srgb,var(--warn) 60%,transparent)}.k9-hcol.ok i{background:color-mix(in srgb,var(--ok) 70%,transparent)}.k9-hcol small{font-size:10.5px;color:var(--mute);margin-top:4px;height:14px}
.k9-hmin{position:absolute;left:0;right:0;border-top:1px dashed var(--gold);pointer-events:none}
@media(max-width:640px){.k9-kennel{grid-template-columns:1fr}.k9-now-state{min-width:0;width:100%}}
/* the website's Meet Our Canines */
.k9-pub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;margin:8px 0 24px}
.k9-pub{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel)}.k9-pub img,.k9-pub-none{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--raise)}
.k9-pub-none{display:flex;align-items:center;justify-content:center;color:var(--gold)}.k9-pub-body{padding:14px 16px 16px;position:relative}.k9-pub-body h2{margin:0 0 2px;font-size:22px}
.k9-pub-meta{font-size:13px;color:var(--mute)}.k9-pub-tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.k9-pub-tags span{font-size:12px;padding:2px 9px;border-radius:999px;border:1px solid var(--gold);color:var(--gold)}
.k9-pub-body p{margin:8px 0 0;line-height:1.55;font-size:14px}.k9-pub.retired{opacity:.85}.k9-pub-ret{position:absolute;top:-14px;right:14px;background:var(--gold);color:#1b1b1b;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 10px;border-radius:999px}
.k9-ov{display:flex;flex-direction:column;gap:16px}.k9-ov>.card{margin:0}.k9-ov .seb-cc-side{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}.k9-ov .seb-cc-side>*{margin:0}.k9-ov .k9-teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}
.seb-rhist{display:grid;grid-template-columns:repeat(30,1fr);gap:3px;margin-top:6px}.seb-rday{display:block;height:28px;border-radius:4px;background:var(--raise)}.seb-rday.ok{background:var(--ok)}.seb-rday.warn{background:var(--warn)}.seb-rday.bad{background:var(--bad)}
.seb-opcard-top{display:flex;gap:14px;align-items:center;margin-bottom:12px}.seb-opcard h4{margin:14px 0 6px}.seb-lesson-l.good{border-left-color:var(--ok)}
.pub-skip{position:absolute;left:12px;top:-60px;z-index:200;background:#c9a24a;color:#111;padding:8px 14px;border-radius:8px;font-weight:700}.pub-skip:focus{top:12px}
.pub-top{position:fixed;right:18px;bottom:18px;z-index:70;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--ink);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);cursor:pointer}.pub-top svg{transform:rotate(180deg)}.pub-top[hidden]{display:none}
.dir-msg-btn{right:44px}
.rep-img{max-width:min(420px,100%);max-height:320px;border-radius:8px;border:1px solid var(--line);display:block}
.page-star[aria-pressed=true]{color:var(--gold);border-color:var(--gold)}
.eval-self{border:1px dashed var(--line);border-radius:10px;padding:10px 12px;margin:8px 0 12px}.eval-self summary{cursor:pointer;font-weight:600}
.vac-copy{float:right;margin-top:-34px}@media(max-width:640px){.vac-copy{float:none;margin:6px 0}}
.msg-away{display:flex;align-items:center;gap:4px;padding:8px 14px;font-size:13px;color:var(--warn);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--warn) 8%,transparent)}
.msg-pin{color:var(--gold);display:inline-flex;margin-left:4px}
.pol-diff{font-family:var(--mono,ui-monospace,monospace);font-size:12.5px;border:1px solid var(--line);border-radius:8px;overflow:auto;max-height:65vh}
.pol-diff>div{padding:2px 10px;white-space:pre-wrap;overflow-wrap:anywhere}.pol-diff span{display:inline-block;width:14px;opacity:.7}.pd-add{background:color-mix(in srgb,var(--ok) 14%,transparent)}.pd-del{background:color-mix(in srgb,var(--bad) 14%,transparent);text-decoration:line-through}.pd-same{color:var(--mute)}.pd-gap{color:var(--mute);text-align:center}
.pd-gap{height:0;border-top:1px dashed var(--line);margin:6px 0;padding:0!important}
.num-copy{cursor:copy;text-decoration:underline dotted;text-underline-offset:3px}
.trx h1{font-size:22px;margin:4px 0}.trx h2{font-size:15px;margin:18px 0 6px}.tg-trx{margin:0 0 10px}
.ps-forget{float:right;background:none;border:0;color:var(--mute);font:inherit;font-size:11.5px;text-decoration:underline;cursor:pointer;padding:0}
/* ---------- Canine Unit and SEB: the same layouts, calmer and more businesslike ---------- */
.mod-k9 .pill,.mod-seb .pill{border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.02em;padding:1px 7px;background:transparent!important;border:1px solid var(--line)}
.mod-k9 .pill.ok,.mod-seb .pill.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}.mod-k9 .pill.warn,.mod-seb .pill.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}
.mod-k9 .pill.bad,.mod-seb .pill.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}.mod-k9 .pill.blue,.mod-seb .pill.blue{color:var(--blue);border-color:color-mix(in srgb,var(--blue) 40%,transparent)}
.mod-k9 .gold-pill,.mod-seb .gold-pill{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 45%,transparent)}
.mod-k9 .sq-tag,.mod-seb .sq-tag{border-radius:4px;font-size:11px;padding:1px 7px}
.mod-k9 .card,.mod-seb .card{border-radius:10px}
/* Canine */
.mod-k9 .k9-face{border-radius:10px}.mod-k9 .k9-face-none{color:var(--mute);font-weight:700;background:var(--panel2,var(--raise))}
.mod-k9 .k9-now-state{background:var(--panel);border-left-width:4px}.mod-k9 .k9-now-state b{font-size:28px}
.mod-k9 .k9-team{border-radius:10px;padding:14px;gap:14px;transition:border-color .12s}.mod-k9 .k9-team.ready{box-shadow:inset 3px 0 0 var(--ok)}.mod-k9 .k9-team-h b{font-size:15.5px}
.mod-k9 .k9-flags span{display:flex;align-items:center;gap:4px}.mod-k9 .k9-req{padding:12px 0}.mod-k9 .k9-req.emergency b{color:var(--bad)}
.mod-k9 .k9-hero{align-items:center}.mod-k9 .k9-hero h1{font-size:26px}
/* SEB */
.mod-seb .seb-ready{background:var(--panel)!important;border-left-width:4px;border-radius:10px;padding:16px 20px}.mod-seb .seb-ready-state b{font-size:22px}
.mod-seb .seb-ready-txt p{font-weight:500}.mod-seb .seb-rnum b{font-size:22px}
.mod-seb .seb-op{border-radius:8px;background:var(--panel)}.mod-seb .seb-op.oncall{box-shadow:inset 3px 0 0 var(--gold)}
.mod-seb .seb-live i,.mod-seb .seb-livebar i{animation:none!important}
.mod-seb .seb-card{border-radius:10px}.mod-seb .seb-week{border-radius:8px}.mod-seb .seb-chip{border-radius:6px}
.mod-seb .sq-cell{border-radius:4px}
/* Labels everywhere are small squares (4px corners), not rounded capsules: status tags, chips, roles, counts and filters.
   Cards, photos and buttons keep their own shape. */
.pill,.sq-tag,.pr-role,.gold-pill,.chip,.aud-chip,.ac-chip,.ac-count,.ac-tier,.acc-badge,.cal-key,.career-roles a,.cf-flag,.civ-role,.civ-state,.count,.cp-badge,.cp-chips button,.cp-hero-pills span,.cp-pill,
.crew-chip,.fb-kind,.fl-fchip,.fl-state,.k9-pub-tags span,.nw-ctags span,.nw-tags a,.nw-tags span,.pp-chip,.pv-flag,.rel-chip,.seb-chip,.fh-tag{border-radius:4px!important}
.pill{font-weight:600;padding:1px 8px}
.op-go .op-checks{list-style:none;margin:8px 0 0;padding:0}.op-checks li{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13.5px;color:var(--mute)}.op-checks li.ok{color:var(--ink)}
.op-mark{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;border:1px solid var(--line);flex:none}.op-checks li.ok .op-mark{border-color:color-mix(in srgb,var(--ok) 50%,transparent);color:var(--ok)}
.op-done{text-decoration:line-through;color:var(--mute)}
/* SEB threat assessment: the grouped matrix, the threat card, subjects and the Live tab */
.risk-bar .m15{left:15%}.risk-meter.consult .risk-bar i{background:var(--blue)}.risk-meter.consult .risk-txt{color:var(--blue)}
.rm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.rm-group{border:1px solid var(--line);border-radius:6px;padding:4px 12px 8px;margin:0;min-width:0}
.rm-group legend{display:flex;gap:8px;align-items:center;padding:0 4px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--mute)}
.rm-sum{color:var(--bad);font-variant-numeric:tabular-nums}
.rm-item+.rm-item{border-top:1px solid var(--line)}
.rm-row{display:flex;gap:8px;align-items:flex-start;padding:7px 0;font-size:13.5px;line-height:1.35;color:var(--mute);cursor:pointer}
.rm-row input{margin:2px 0 0;flex:none}.rm-row.on{color:var(--ink)}
.rm-pts{flex:none;font-size:11px;padding:0 6px;border:1px solid var(--line);border-radius:4px;font-variant-numeric:tabular-nums}
.rm-row.on .rm-pts{border-color:color-mix(in srgb,var(--bad) 55%,transparent);color:var(--bad)}
.rm-mit{display:block;width:calc(100% - 22px);margin:0 0 8px 22px;font-size:13px}
.rm .risk-live{margin:12px 0 0}
.rk-group{margin-top:12px}.rk-group h4{display:flex;justify-content:space-between;margin:0 0 2px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--mute)}
.rk-item{padding:7px 0;border-top:1px solid var(--line)}.rk-line{display:flex;justify-content:space-between;gap:12px;font-size:14px}.rk-line b{color:var(--bad);font-variant-numeric:tabular-nums}
.rk-mit{font-size:12.5px;color:var(--mute);margin-top:3px}.rk-mit .sq-tag{margin-right:4px}.rk-mit.none{color:var(--warn)}
.rk-accept{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:10px 12px;border:1px solid var(--line);border-radius:6px}
.rk-accept.ok{border-color:color-mix(in srgb,var(--ok) 45%,transparent)}.rk-accept.ok>svg{color:var(--ok);flex:none;margin-top:2px}
.rk-accept.warn{border-color:color-mix(in srgb,var(--warn) 50%,transparent)}.rk-accept.warn>svg{color:var(--warn);flex:none;margin-top:2px}.rk-accept p{margin:4px 0 0}
.rk-hist{margin-top:12px}.rk-hist ol{list-style:none;margin:8px 0 0;padding:0}.rk-hist li{padding:8px 0;border-top:1px solid var(--line)}
.sq-tag.bad{border-color:var(--bad);color:var(--bad)}
.seb-subjs{display:grid;gap:10px;margin-top:10px}
.seb-subj{display:flex;gap:12px;align-items:flex-start;padding:10px;border:1px solid var(--line);border-radius:6px}
.seb-subj img,.seb-subj-ph{width:64px;height:64px;border-radius:4px;object-fit:cover;flex:none;background:var(--bg2)}
.seb-subj-ph{display:flex;align-items:center;justify-content:center;color:var(--mute)}
.seb-subj p{margin:4px 0}.seb-subj-l{display:flex;gap:8px;align-items:baseline;font-size:13px;margin-top:5px}.seb-subj-l .sq-tag{flex:none}
.sb-mit{font-size:12px;color:#444;margin-top:2px}
.seb-livehead{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-left:4px solid var(--mute);border-radius:6px;background:var(--panel)}
.seb-livehead.on{border-left-color:var(--blue)}
.seb-livetime small{display:block;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--mute)}.seb-livetime b{font-size:26px;font-variant-numeric:tabular-nums}
.seb-livekv{display:flex;flex-wrap:wrap;gap:10px 24px;margin:0}.seb-livekv dt{font-size:12px;color:var(--mute)}.seb-livekv dd{margin:0;font-weight:600}
.seb-flags{border-left:4px solid var(--bad)}.seb-flags h3{color:var(--bad)}
.seb-live-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:900px){.seb-live-grid{grid-template-columns:1fr}}
.seb-liveteam{list-style:none;margin:0;padding:0}.seb-liveteam li{display:flex;gap:10px;align-items:center;padding:8px 16px;border-top:1px solid var(--line)}
.seb-mine .seg{margin:6px 0 10px;flex-wrap:wrap}
.op-late{margin-left:6px}
.k9-retired-h{margin:20px 0 10px;font-size:14px;color:var(--mute)}
.left-count{display:block;text-align:right}
.cal-clash{grid-column:1/-1;margin:-4px 0 4px}.cal-clash:empty{display:none}
.msg-find{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--line)}.msg-find input{flex:1;min-width:0}
.msg-bub.found{outline:1px solid color-mix(in srgb,var(--gold) 55%,transparent)}.msg-bub.found-on{outline:2px solid var(--gold)}
/* LSSD Website on a phone: the top bar is one short row of icons; the numbers stay on Contact Us, the service notice and every page's help box */
@media(max-width:700px){.util .util-nums{display:none}.util .in{justify-content:flex-end;min-height:40px}.util .ulinks{gap:2px}}
@media(max-width:700px){.mission{font-size:12.5px;line-height:1.35;padding:5px 0}}
button.fl-plate.fl-copy{cursor:copy}
.ntp-search{flex:1;min-width:180px;max-width:320px}
/* A status label in a details list stays inside its card: it wraps instead of running past the edge */
.kv dd .pill{white-space:normal;max-width:100%;overflow-wrap:anywhere;line-height:1.35;padding-top:2px;padding-bottom:2px}.kv dd .pill .ico{vertical-align:-2px}
/* A segmented choice in a half-width field fills the field, and a long option wraps instead of being cut off */
.w-half .choice-set.pills{display:flex;width:100%}.w-half .choice-set.pills .choice-opt{flex:1 1 auto;min-width:0;padding:8px 10px}
.w-half .choice-set.pills .choice-txt{flex:1 1 auto;min-width:0}.w-half .choice-set.pills .choice-txt b{white-space:normal;text-align:center;overflow-wrap:anywhere;display:block}
/* Figures strip: the boxes share each row, so a short last row stretches to the edge instead of leaving empty cells */
.stats-strip{display:flex;flex-wrap:wrap}.stats-strip>div{flex:1 1 170px;min-width:0}
.seb-lastupd{display:block;font-size:12px;color:var(--mute);margin-top:2px}
.seb-lastupd.t-warn{color:var(--warn)}
.k9-bykind{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.k9-bykind small{display:block;margin-bottom:6px}
.fld-quick{display:flex;gap:6px;align-items:stretch}.fld-quick>input{flex:1;min-width:0}.fld-now{flex:none;white-space:nowrap}
.memo-search{margin:0 0 12px}
.dir-here{margin:0 0 12px}.ex-intro{flex:1;margin:0}
.k9-pub-h{margin:28px 0 14px;font-size:20px}.k9-pub-h:first-child{margin-top:0}
.k9-pub-filter{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}.k9-pub-filter button{font:inherit;font-size:13px;padding:5px 12px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--ink);cursor:pointer}
.k9-pub-filter button.on{border-color:var(--gold);color:var(--gold)}
.sq-tag.ok{border-color:var(--ok);color:var(--ok)}
.seb-oprow-tags{display:flex;gap:8px;align-items:center;margin:2px 0}.seb-flag-ph{width:36px;height:36px;object-fit:cover;border-radius:4px;flex:none}
.k9-unit-hours,.k9-mydog{display:block;margin-top:4px}.k9-req-avail{margin:0 0 10px}
.rec-mine{display:flex;gap:8px;align-items:center;padding:10px 14px;border-color:color-mix(in srgb,var(--warn) 45%,transparent)}.rec-mine>svg{color:var(--warn);flex:none}
@media print{body[data-printed]::after{content:attr(data-printed);display:block;margin-top:14px;padding-top:4px;border-top:1px solid #999;font:9pt/1.4 sans-serif;color:#444}}
/* SEB Monthly Activity Report on screen */
.srep{margin-top:24px}.srep-head{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between;margin:0 0 12px}.srep-head h2{margin:0;font-size:20px}.srep-head p{margin:4px 0 0}
.srep-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.srep-acts select{width:auto}
.srep-delta{display:block;font-size:12px;color:var(--mute);margin-top:3px}.srep-cols{margin:16px 0}
@media(max-width:560px){.stats-strip>div{flex-basis:130px;padding:10px 12px}.stats-strip b{font-size:21px}}
/* Bar lists: a label wraps between words, never inside one; on a phone the label gets the room */
.barlist .bl span{overflow-wrap:normal;word-break:normal;hyphens:none}
@media(max-width:560px){.barlist .bl{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) 28px}}
.srep-big{font:700 28px var(--font);margin:6px 0 2px}.srep-big.ok{color:var(--ok)}
.seb-urgent{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border:1px solid var(--bad);border-left-width:4px;border-radius:6px;background:color-mix(in srgb,var(--bad) 10%,var(--panel))}
.seb-urgent>svg{color:var(--bad);flex:none;margin-top:2px}.seb-urgent b{display:block;color:var(--bad)}.seb-urgent small{color:var(--mute)}
.k9-team-st{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.sq-tag.blue{border-color:var(--blue);color:var(--blue)}
.with-search{margin-bottom:12px}.tl-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
/* The dog's page header: photo and details side by side, the actions on their own row underneath (never squeezing the details) */
.mod-k9 .k9-hero{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px 20px}
.mod-k9 .k9-hero>.grow{min-width:0}
.mod-k9 .k9-hero>.k9-acts{grid-column:1/-1;margin:0;justify-content:flex-start;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px}
@media(max-width:560px){.mod-k9 .k9-hero{grid-template-columns:64px minmax(0,1fr)}.mod-k9 .k9-hero .k9-face{width:64px!important;height:64px!important}.mod-k9 .k9-hero>.k9-acts .btn{flex:1 1 auto}}
/* Where You Stand: a square label and the verdict, then a plain checklist with the member's value on the right */
.ws2{display:grid;gap:10px;margin:4px 0}
.ws2-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.ws2-head b{font-size:15px;color:var(--ink)}.ws2-head .small{flex-basis:100%}
.ws2-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.ws2-list .ws-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:4px 10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.ws2-list .ws-ic{width:18px;height:18px;border-radius:4px;border:1px solid var(--line);background:none;display:grid;place-items:center;margin:0}
.ws2-list .ok .ws-ic{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 50%,transparent)}.ws2-list .no .ws-ic{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 50%,transparent)}
.ws2-list .ws-label{font-size:14px;color:var(--ink)}.ws-have{color:var(--mute);font-size:13px;text-align:right}.ws-have small{display:block;font-size:12px}
.ws2-list .ws-bar{grid-column:2/-1;height:4px;border-radius:2px;background:var(--line);overflow:hidden;max-width:none;margin:0}.ws2-list .ws-bar i{display:block;height:100%;background:var(--warn)}
.ws2.compact{gap:6px}.ws2.compact .ws-row{padding:6px 0;font-size:13px}.ws2.compact .ws2-head b{font-size:14px}
.sq-tag.muted{border-color:var(--line);color:var(--mute)}
/* The applicants board: one row of stages that never overlap (it scrolls sideways on a narrow screen), the heading above it */
.vac-board-head{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:flex-end;justify-content:space-between;margin:20px 0 10px}.vac-board-head p{margin:4px 0 0}
.kanban.vac-board{grid-template-columns:repeat(var(--lanes,5),minmax(190px,1fr))!important;overflow-x:auto!important}.vac-board .lane{min-width:0}
.vac-board .kcard b{display:block;line-height:1.3}
.seb-quicknote{display:flex;gap:8px;margin-top:10px}.seb-quicknote input{flex:1;min-width:0}
.seb-week.mine{box-shadow:inset 3px 0 0 var(--gold)}.trr-left{margin:0 0 10px}
mark{background:color-mix(in srgb,var(--gold) 35%,transparent);color:inherit;border-radius:2px;padding:0 1px}
@media(max-width:700px){.lic-banner .lic-fix{display:none}}
/* ---------- The maintenance screen: the badge with a slow pulse, a soft turning light, the message and a working line ---------- */
.maint2{position:relative;min-height:100vh;display:grid;place-items:center;padding:24px 16px;overflow:hidden;background:radial-gradient(1100px 560px at 50% -10%,color-mix(in srgb,var(--gold) 14%,transparent),transparent 62%),var(--bg)}
.maint2-glow{position:absolute;inset:-30%;background:conic-gradient(from 0deg at 50% 50%,transparent 0 68%,color-mix(in srgb,var(--gold) 9%,transparent) 78%,transparent 88%);animation:maint2-turn 22s linear infinite;pointer-events:none}
@keyframes maint2-turn{to{transform:rotate(360deg)}}
.maint2-card{position:relative;max-width:500px;width:100%;text-align:center;background:color-mix(in srgb,var(--panel) 94%,transparent);border:1px solid var(--line);border-radius:14px;padding:34px 28px 22px;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.maint2-badge{position:relative;width:96px;height:96px;margin:0 auto 14px;display:grid;place-items:center}
.maint2-badge::before,.maint2-badge::after{content:'';position:absolute;inset:-4px;border-radius:50%;border:1px solid color-mix(in srgb,var(--gold) 50%,transparent);animation:maint2-pulse 3s ease-out infinite}
.maint2-badge::after{animation-delay:1.5s}
.maint2-badge img{position:relative;width:88px;height:auto;filter:drop-shadow(0 8px 20px rgba(0,0,0,.45))}
@keyframes maint2-pulse{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.35);opacity:0}}
.maint2-kicker{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.maint2 h1{font-size:28px;margin:6px 0 10px}
.maint2-msg{max-width:400px;margin:0 auto;line-height:1.6;white-space:pre-wrap}
.maint2-bar{height:3px;border-radius:2px;background:var(--line);overflow:hidden;margin:22px auto 10px;max-width:260px}
.maint2-bar i{display:block;height:100%;width:40%;background:linear-gradient(90deg,transparent,var(--gold),transparent);animation:maint2-slide 1.9s ease-in-out infinite}
@keyframes maint2-slide{0%{transform:translateX(-110%)}100%{transform:translateX(260%)}}
.maint2-meta{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--mute)}.maint2-since{color:var(--ink)}
.maint2-acts{justify-content:center;margin-top:16px}
.maint2-admin{margin-top:20px;padding-top:14px;border-top:1px solid var(--line);text-align:left}.maint2-admin summary{cursor:pointer;font-weight:600;text-align:center;color:var(--gold);list-style:none}
.maint2-admin summary::-webkit-details-marker{display:none}.maint2-admin[open] summary{margin-bottom:6px}.maint2-admin>p{text-align:center}
.maint2-links{margin:16px 0 0}
@media(prefers-reduced-motion:reduce){.maint2-glow,.maint2-badge::before,.maint2-badge::after,.maint2-bar i{animation:none}}
.op-rolesum{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.mr-figs:not(.two){display:flex;flex-wrap:wrap}.mr-figs:not(.two)>*{flex:1 1 130px;min-width:0}
/* The Attendees window of a course */
.tc-roster h4{margin:18px 0 6px}.tc-head{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid var(--line)}
.tc-sum{font-size:13px;color:var(--mute)}.tc-note{display:flex;gap:6px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:6px;color:var(--mute)}
.tc-people{border-top:1px solid var(--line)}.tc-people .tc-person{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.tc-mark button.on.present{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}.tc-mark button.on.absent{background:color-mix(in srgb,var(--bad) 14%,transparent);color:var(--bad)}
/* The license notice: a square label, one sentence, the action at the right */
.lic-banner{flex-wrap:nowrap;gap:12px}.lic-banner .lic-text{flex:1;min-width:0}.lic-banner .lic-fix{flex:none;white-space:nowrap}
.lic-tag{flex:none;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border:1px solid currentColor;border-radius:4px;color:var(--gold)}
.lic-banner.warn .lic-tag{color:var(--warn)}.lic-banner.bad .lic-tag{color:var(--bad)}
@media(max-width:700px){.lic-banner{align-items:flex-start}.lic-tag{margin-top:1px}}
.lic-banner .lic-short{display:none}
@media(max-width:700px){.lic-banner{align-items:center;padding:7px 14px;gap:10px}.lic-banner .lic-text{display:none}.lic-banner .lic-short{display:block;flex:1;min-width:0;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lic-tag{margin:0;font-size:10.5px;padding:1px 7px}}
@media(max-width:700px){.lic-banner .lic-short{white-space:normal;overflow:visible;text-overflow:clip}}
.seb-livecounts{display:flex;gap:18px}.seb-livecounts div{display:flex;flex-direction:column}.seb-livecounts b{font-size:24px;font-variant-numeric:tabular-nums}.seb-livecounts small{font-size:12px;color:var(--mute)}
.seb-debrief{padding:10px 0;border-top:1px solid var(--line)}.seb-debrief:first-of-type{border-top:0}
.tc-fb{padding:10px 0;border-bottom:1px solid var(--line)}.tc-fb p{margin:6px 0 0}
/* The notifications menu: Unread with its number as a small count, never wrapped; on a phone the choice gets its own row */
.nt-seg button{white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.nt-count{font-size:11px;font-weight:700;min-width:18px;padding:0 5px;border-radius:4px;background:color-mix(in srgb,currentColor 18%,transparent);text-align:center}
@media(max-width:700px){.nt-head{display:grid!important;grid-template-columns:1fr auto;align-items:center;row-gap:10px}.nt-head .nt-seg{grid-column:1/-1;grid-row:2;display:flex;width:100%}.nt-head .nt-seg button{flex:1;justify-content:center}}
.msg-count{margin-left:8px;font-size:12px;font-weight:500;color:var(--mute)}
.poster-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.menu-pop.sheet .sheet-grab{position:absolute;left:50%;top:0;width:96px;height:26px;margin-left:-48px;border:0;background:transparent;cursor:pointer;z-index:2;padding:0}.menu-pop.sheet .sheet-grab:focus-visible{outline:2px solid var(--gold);outline-offset:-4px;border-radius:6px}
.trr-find{margin:0 0 10px}
.dir-copy{cursor:copy;text-decoration:none;color:inherit}
.lab-turn{margin:10px 0 0}
.tl-tools{margin:2px 0 18px;align-items:center}.tl-tools .tl-chips{margin:0}.tl-tools>.btn{flex:none}
