:root{
  --ink:#1a1d21;--muted:#5b6672;--line:#d6dbe1;--bg:#eef1f4;--panel:#fff;
  --accent:#12457a;--accent2:#0f6b4f;--out:#e8f0fb;--outbd:#bcd3f0;--in:#f3f4f6;--inbd:#dfe3e8;
  --warn:#8a5a00;--warnbg:#fff6e5;color-scheme:light;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.5}
a{color:var(--accent)}
.print-only{display:none}

/* top bar */
.topbar{display:flex;align-items:center;gap:16px;background:var(--accent);color:#fff;padding:10px 18px;flex-wrap:wrap}
.topbar .brand{font-weight:700;font-size:15px}
.mainnav{display:flex;gap:4px;flex:1;flex-wrap:wrap}
.mainnav a{color:#dbe7f4;text-decoration:none;padding:6px 11px;border-radius:6px;font-size:13.5px}
.mainnav a:hover{background:rgba(255,255,255,.12);color:#fff}
.mainnav a.active{background:#fff;color:var(--accent);font-weight:700}
.userbox{display:flex;align-items:center;gap:10px;font-size:12.5px}
.updatebar{background:#eef4ea;border-bottom:1px solid #cfe3c8;color:#0c5c42;padding:7px 18px;font-size:12.5px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.updatebar .dot{width:9px;height:9px;border-radius:50%;background:#12805f;display:inline-block}
.updatebar .latest{color:#334}
.updatebar .mini{margin-left:auto;font-size:11.5px}

.wrap{max-width:960px;margin:0 auto;padding:20px 20px 70px}
h1.pt{font-size:19px;color:var(--accent);margin:6px 0 4px}
h2.sub{font-size:15px;color:var(--accent);border-bottom:1px solid var(--line);padding-bottom:4px;margin:24px 0 10px}
.muted{color:var(--muted);font-size:13px}

.btn{display:inline-block;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:6px;padding:8px 13px;font-weight:600;cursor:pointer;text-decoration:none;font-size:13.5px}
.btn.sec{background:#fff;color:var(--accent)}
.btn.min{padding:4px 9px;font-size:12px}
.btn.small{padding:5px 10px;font-size:12px}
.btn:hover{filter:brightness(1.05)}

.err{background:#fff3f3;border:1px solid #c98a8a;color:#8a1c1c;border-radius:8px;padding:10px 14px;margin-bottom:14px}
.okbar{background:#e5f3ea;border:1px solid #bfe0cc;color:#0f6b4f;border-radius:8px;padding:10px 14px;margin-bottom:14px}

/* dashboard */
.tiles{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 18px;min-width:130px;flex:1}
.tile .n{font-size:24px;font-weight:800;color:var(--accent)}
.tile .l{font-size:12px;color:var(--muted)}
.cards2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:8px 0}
.bigcard{display:block;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 20px;text-decoration:none;color:inherit}
.bigcard:hover{box-shadow:0 2px 10px rgba(18,69,122,.14);border-color:var(--accent)}
.bigcard .t{font-size:16px;font-weight:700;color:var(--accent)}
.bigcard .d{font-size:13px;color:var(--muted);margin-top:3px}
.updlist .upd{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin-bottom:8px}
.updlist .ut{font-weight:700}.updlist .ud{font-weight:400;color:var(--muted);font-size:11.5px;margin-left:6px}
.updlist .udd{font-size:13px;color:#334;margin-top:3px}

/* filters */
.filters{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:12px 0}
.frow{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.filters label{font-size:11.5px;color:var(--muted);display:flex;flex-direction:column;gap:3px}
.filters .grow{flex:1;min-width:180px}
.filters input,.filters select{padding:7px 8px;border:1px solid var(--line);border-radius:6px;font-size:13px}
.resultmeta{font-size:12px;color:var(--muted);margin:6px 2px}

/* messages */
.msgs{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px 14px}
.m{padding:9px 2px;border-bottom:1px solid #f0f2f4;display:grid;grid-template-columns:150px 1fr;gap:12px}
.m:last-child{border-bottom:none}
.m .body{min-width:0;overflow-wrap:anywhere}
.m .gutter{font-size:10.5px;color:var(--muted)}
.m .gutter .b{font-family:Consolas,monospace;color:#2a2f36;font-weight:700;font-size:10px}
.m .gutter .dt{margin-top:2px}
.m .gutter .thlink{display:inline-block;margin-top:5px;font-size:10.5px}
.m .body .who{font-weight:600;font-size:12.5px;margin-bottom:3px}
.m .body .who .lbl{color:var(--muted);font-weight:400}
.m .body .who .arr{color:var(--muted)}
.m.out .body .who{color:var(--accent)}
.m.in .body .who{color:var(--accent2)}
.m .subj{font-size:12.5px;font-weight:600;margin-bottom:3px}
.bubble{display:inline-block;max-width:100%;padding:7px 11px;border-radius:9px;white-space:pre-wrap;overflow-wrap:anywhere}
.m.out .bubble{background:var(--out);border:1px solid var(--outbd)}
.m.in .bubble{background:var(--in);border:1px solid var(--inbd)}
.m.notresp{opacity:.45}
.reason{font-size:10.5px;color:var(--accent2);font-style:italic;margin-top:3px}
.badge{display:inline-block;background:#0d5a3f;color:#fff;border-radius:3px;padding:0 6px;font-size:9px;font-weight:700;margin-left:6px;vertical-align:middle;letter-spacing:.3px}
.badge.low{background:#8a5a00}.badge.medium{background:#12805f}.badge.high{background:#0d5a3f}
mark{background:#fff2a8}
.att{margin-top:6px;display:flex;flex-wrap:wrap;gap:10px}
.att .a{border:1px solid var(--line);border-radius:6px;padding:6px;background:#fff;max-width:260px}
.att img{max-width:240px;max-height:240px;display:block;border-radius:4px}
.att .cap{font-size:10px;color:var(--muted);margin-top:4px;font-family:Consolas,monospace}
.att .file{display:block;padding:8px 10px;background:#f4f7fa;border-radius:5px;font-size:12px}
.att .missing{padding:8px 10px;background:var(--warnbg);border:1px dashed #e0c485;color:var(--warn);border-radius:5px;font-size:11.5px;max-width:420px}
.pager{display:flex;gap:14px;align-items:center;justify-content:center;margin:16px 0;font-size:13px}

/* thread */
.threadhd{background:var(--panel);border:1px solid var(--line);border-radius:10px;border-top:3px solid var(--accent);padding:12px 18px;margin-bottom:14px}
.threadhd .pt{font-size:16px;font-weight:700;color:var(--accent)}
.threadhd .meta{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5}
.threadhd .back{font-size:13px}

/* panels/forms/tables */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin:10px 0}
.userform{display:flex;gap:12px;flex-wrap:wrap;align-items:end}
.userform label,form label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:4px}
.userform input,.userform select,.panel input,.panel textarea{padding:8px 10px;border:1px solid var(--line);border-radius:6px;font-size:13px}
.panel input,.panel textarea{width:100%}
table.grid{border-collapse:collapse;width:100%;font-size:13px;background:var(--panel)}
table.grid th,table.grid td{border:1px solid var(--line);padding:6px 9px;text-align:left;vertical-align:middle}
table.grid th{background:var(--accent);color:#fff}
table.grid tr.inactive{opacity:.5}
.acts form{margin:0}
.acts input{margin-right:4px}

.foot{max-width:960px;margin:0 auto;padding:16px 20px;color:var(--muted);font-size:11.5px;display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line)}

/* party multi-select dropdown */
.ddwrap{display:flex;flex-direction:column;gap:3px;position:relative}
.ddlabel{font-size:11.5px;color:var(--muted)}
.partydd{position:relative}
.partydd>summary{list-style:none;cursor:pointer;padding:7px 26px 7px 8px;border:1px solid var(--line);border-radius:6px;font-size:13px;background:#fff;min-width:210px;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.partydd>summary::-webkit-details-marker{display:none}
.partydd>summary::after{content:"\25BE";position:absolute;right:9px;top:8px;color:var(--muted);font-size:11px}
.ddpanel{position:absolute;z-index:20;top:100%;left:0;margin-top:3px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.18);padding:8px;min-width:260px;max-height:300px;overflow:auto}
.ddtools{font-size:12px;padding:2px 4px 8px;border-bottom:1px solid var(--line);margin-bottom:6px}
.ddpanel .ddopt{display:flex;flex-direction:row;align-items:center;gap:8px;padding:5px 6px;font-size:13px;color:var(--ink);white-space:normal;text-align:left}
.ddpanel .ddopt:hover{background:#f2f6fb;border-radius:5px}
.ddpanel .ddopt input{width:16px;height:16px;padding:0;border:0;margin:0;flex:0 0 auto}

/* conversation image gallery */
.gallery-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 16px 16px;margin:12px 0}
.gallery-grid{margin-top:6px}

/* login */
.loginbg{background:var(--accent)}
.loginwrap{max-width:360px;margin:9vh auto;background:#fff;border-radius:12px;padding:26px 26px 30px;box-shadow:0 8px 30px rgba(0,0,0,.25)}
.loginwrap h1{font-size:17px;color:var(--accent);margin:0 0 6px}
.loginwrap .conf{font-size:11.5px;color:#8a1c1c;margin-bottom:14px}
.loginwrap label{font-size:12px;color:var(--muted);display:block;margin:12px 0 4px}
.loginwrap input{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:6px;box-sizing:border-box}
.loginwrap .btn{width:100%;margin-top:18px;text-align:center;padding:11px}
.loginwrap .err{margin-top:12px}

/* access codes */
.mono{font-family:Consolas,monospace;font-size:12px}
.expwarn{color:#8a1c1c;font-weight:600}
.minisel{padding:3px 4px;border:1px solid var(--line);border-radius:5px;font-size:12px;margin-right:4px}
.codebox{background:#f2f8f4;border:1px solid #bfe0cc;border-radius:10px;padding:16px 18px;margin:12px 0}
.codebox .cbh{font-size:13px;color:#0f6b4f;margin-bottom:8px}
.codebox .cbcode{font-family:Consolas,monospace;font-size:26px;font-weight:800;letter-spacing:2px;color:#0d3b2b;margin-bottom:10px;user-select:all}
.codebox .cbtag{font-size:12px;color:#334;margin-top:6px}
.codebox .cbwarn{font-size:12px;color:var(--warn);margin-top:8px}
.logtabs{font-size:12px;font-weight:400;margin-left:10px}
.logtabs a{text-decoration:none;padding:2px 8px;border:1px solid var(--line);border-radius:5px;color:var(--accent);background:#fff}
.logtabs a.on{background:var(--accent);color:#fff;border-color:var(--accent)}

/* login extras */
.loginhint{font-size:11.5px;color:var(--muted);margin-top:10px}
.adminlogin{margin-top:20px;border-top:1px solid var(--line);padding-top:8px}
.adminlogin summary{font-size:12.5px;color:var(--accent);cursor:pointer;list-style:none}
.adminlogin summary::-webkit-details-marker{display:none}
.adminlogin .btn.sec{background:#fff;color:var(--accent)}

@media (max-width:620px){.cards2{grid-template-columns:1fr}.m{grid-template-columns:1fr}.m .gutter{display:flex;gap:10px;align-items:center}}
