*{box-sizing:border-box}
body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1c2630;background:#f3f5f7}
a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
.top{background:var(--secondary);color:#fff;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 16px;position:sticky;top:0;z-index:5}
.top a{color:#fff}.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:17px}
.logo{height:30px;width:auto;background:#fff;border-radius:4px;padding:2px}
nav{display:flex;flex-wrap:wrap;gap:2px;flex:1}nav a{padding:6px 10px;border-radius:6px;font-size:14px}nav a.on,nav a:hover{background:rgba(255,255,255,.18);text-decoration:none}
.who{font-size:13px;display:flex;gap:10px;align-items:center}.who small{opacity:.75}
.burger{display:none;background:none;border:0;color:#fff;font-size:24px;margin-left:auto}
.wrap{max-width:1180px;margin:18px auto;padding:0 14px}.wrap.narrow{max-width:760px}
.card{background:#fff;border:1px solid #dde3e8;border-radius:10px;padding:16px;margin-bottom:16px}
h1,h2,h3{margin:0 0 12px;color:var(--secondary)}h2{font-size:19px}h3{font-size:16px}
table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:8px 10px;border-bottom:1px solid #e6ebef;text-align:left;vertical-align:top}
th{background:#f0f3f6;font-size:12.5px;text-transform:uppercase;letter-spacing:.03em;color:#4a5866}
tr.abn td{color:#b3261e;font-weight:600}tr.crit td{background:#fdeceb}
.tbl-wrap{overflow-x:auto}
label{display:block;font-size:13px;font-weight:600;margin:10px 0 4px;color:#3b4a58}
input,select,textarea{width:100%;padding:8px 10px;border:1px solid #c5ced6;border-radius:7px;font:inherit;background:#fff}
input[type=checkbox],input[type=radio]{width:auto}textarea{min-height:80px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}
.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.row>*{flex:1;min-width:130px}.row>.auto{flex:0 0 auto;min-width:0}
.btn,button.btn{display:inline-block;background:var(--primary);color:#fff;border:0;border-radius:7px;padding:8px 14px;font:inherit;font-weight:600;cursor:pointer;width:auto}
.btn:hover{filter:brightness(1.1);text-decoration:none}.btn.sec{background:#fff;color:var(--primary);border:1px solid var(--primary)}.btn.red{background:#b3261e}.btn.sm{padding:4px 9px;font-size:13px}
.alert{padding:10px 14px;border-radius:8px;margin-bottom:12px;background:#e6f4ea;color:#1e5b2f}.alert.err{background:#fdeceb;color:#8a1c14}.alert.warn{background:#fff4d6;color:#7a5600}
.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;background:#e8edf1;color:#3b4a58;white-space:nowrap}
.badge.ok{background:#dff3e4;color:#1e6a36}.badge.bad{background:#fbe0de;color:#a1241b}.badge.warn{background:#fff0c7;color:#7a5600}
.stats{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:16px}
.stat{background:#fff;border:1px solid #dde3e8;border-left:5px solid var(--primary);border-radius:10px;padding:12px}.stat b{display:block;font-size:26px;color:var(--secondary)}.stat span{font-size:13px;color:#566573}
.muted{color:#6b7885}.right{text-align:right}.mt{margin-top:12px}.nowrap{white-space:nowrap}
.tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.tabs a{padding:6px 12px;border-radius:99px;background:#e8edf1;color:#3b4a58}.tabs a.on{background:var(--primary);color:#fff}
.hit{border:1px solid #c5ced6;border-radius:7px;background:#fff;max-height:220px;overflow:auto}.hit div{padding:7px 10px;cursor:pointer;border-bottom:1px solid #eef1f4}.hit div:hover{background:#eef6f6}
.chip{display:inline-flex;gap:6px;align-items:center;background:#e4f1f1;border-radius:99px;padding:3px 10px;margin:2px}.chip button{border:0;background:none;cursor:pointer;color:#a1241b;font-size:16px;padding:0}
.rangebox{background:#f7f9fa;border:1px dashed #c5ced6;border-radius:8px;padding:8px;margin-top:8px}
.rangerow{display:grid;gap:6px;grid-template-columns:90px 70px 70px 90px 80px 80px 1fr 34px;margin-bottom:6px}
.prm{border:1px solid #cfd8de;border-radius:10px;padding:12px;margin-bottom:12px;background:#fff}
input.flag-low,input.flag-high{border-color:#b3261e;background:#fdeceb;color:#8a1c14;font-weight:700}input.flag-normal{border-color:#2e8b57}
.pfoot{margin-top:24px;text-align:center;color:#566573;font-size:13px}
.label{border:1px dashed #666;padding:6px 8px;width:300px;display:inline-block;margin:4px;font-size:12px;vertical-align:top;background:#fff}.label svg{width:100%;height:42px}
.report{background:#fff;padding:24px;max-width:820px;margin:auto;border:1px solid #dde3e8}
.report .rhead{display:flex;gap:14px;align-items:center;border-bottom:4px solid var(--rp);padding-bottom:10px;margin-bottom:10px}.report .rhead img{height:60px}.report h1{color:var(--rp);font-size:22px;margin:0}
.report h3.unit{background:var(--rs);color:#fff;padding:4px 8px;margin-top:16px}.report table.info td{border:0;padding:3px 6px}.report table.res th{background:#eef1f4}
.report .amend{color:#b3261e;font-size:12px}.report .sig,.report .rfoot{font-size:12px;color:#566573}.narr{white-space:pre-wrap;margin:6px 0}
.lj{width:100%;height:240px;background:#fff;border:1px solid #dde3e8;border-radius:8px}
@media(max-width:820px){.rangerow{grid-template-columns:1fr 1fr 1fr}th,td{padding:6px}}
@media print{.side,.mobbar,.top,.noprint,.tabs,.alert{display:none!important}body{background:#fff}.wrap{margin:0;max-width:none;padding:0}.card,.report{border:0;padding:0}.label{break-inside:avoid}}
@media(max-width:600px){.narrow table{font-size:13px}.narrow th,.narrow td{padding:5px 5px}.narrow th{font-size:10px;letter-spacing:0;text-transform:none}.narrow .card{padding:12px}.narrow .badge{padding:1px 6px;font-size:11px}.narrow h2{font-size:17px}}

/* ---- sidebar layout (staff app) ---- */
.shell{display:flex;min-height:100vh}
.side{position:fixed;top:0;bottom:0;left:0;width:236px;background:var(--secondary);color:#fff;display:flex;flex-direction:column;overflow-y:auto;z-index:30}
.side .brand{display:flex;align-items:center;gap:10px;padding:16px 16px 12px;font-weight:700;font-size:16px;color:#fff;border-bottom:1px solid rgba(255,255,255,.14)}
.side .brand .logo{height:30px;width:auto;border-radius:4px}
.side nav{display:block;flex:1;padding:6px 8px 12px}
.side nav .grp{font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.6;padding:14px 10px 4px}
.side nav a{display:block;padding:8px 10px;margin:1px 0;border-radius:6px;font-size:14px;color:#fff;border-left:3px solid transparent}
.side nav a:hover{background:rgba(255,255,255,.12);text-decoration:none}
.side nav a.on{background:rgba(255,255,255,.2);border-left-color:#fff;font-weight:600}
.side .who{display:block;border-top:1px solid rgba(255,255,255,.14);padding:12px 16px;font-size:13px}
.side .who .me{display:flex;flex-direction:column;margin-bottom:6px}.side .who small{opacity:.7;text-transform:capitalize}
.side .who .links{display:flex;flex-wrap:wrap;gap:4px 14px}.side .who a{color:#fff;opacity:.9}
.content{flex:1;margin-left:236px;min-width:0}
.mobbar{display:none}
.scrim{display:none}
@media(max-width:820px){
  .side{transform:translateX(-100%);transition:transform .2s;width:260px;box-shadow:none}
  .side.open{transform:none;box-shadow:0 0 0 100vmax rgba(0,0,0,.45)}
  .content{margin-left:0}
  .mobbar{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:20;background:var(--secondary);color:#fff;padding:8px 12px}
  .mobbar .brand{color:#fff;font-weight:700;display:flex;align-items:center;gap:8px}.mobbar .logo{height:26px}
  .mobbar .burger{display:block;background:none;border:0;color:#fff;font-size:24px;line-height:1;padding:4px 8px;cursor:pointer}
  .scrim.show{display:block;position:fixed;inset:0;z-index:25}
}
.side{overflow:hidden}.side nav{overflow-y:auto;min-height:0}.side .brand,.side .who{flex:none}
