:root{--navy:#0F2D5E;--navy-d:#0A2147;--navy2:#1E4FA3;--orange:#F26B1D;--paper:#FBF8F3;--bg:#F4F0E9;--sky:#E8F0FA;--line:#DCE3EE;--ink2:#51607A;--red:#b42318;--side:14.5rem}
*{box-sizing:border-box}html{height:100%;font-size:clamp(12px,.42vw + 9px,15px)}
@media(min-width:1800px){html{font-size:16px}}
body{margin:0;background:var(--bg);color:var(--navy);font:1rem/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--navy2)}h1{font-size:1.6rem;margin:0 0 .3em}h2{font-size:1.25rem;margin:0}h3{font-size:1rem;margin:0 0 .6em}.small{font-size:.88rem;color:var(--ink2)}
.ic{flex:none}
/* buttons */
button,.dark,.ghost,.btn{font:600 .95rem system-ui,sans-serif;cursor:pointer;border-radius:62.438rem;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:0.375rem}
.dark,.btn{background:var(--navy);color:#fff;border:2px solid var(--navy);padding:0.562rem 1.25rem}.dark:hover,.btn:hover{background:var(--navy-d)}
.ghost{background:#fff;color:var(--navy);border:1.5px solid var(--line);padding:0.5rem 1.125rem}.ghost:hover{border-color:var(--navy)}
.redtxt{color:var(--red)}.redbtn{background:var(--red);color:#fff;border:0;padding:0.562rem 1.125rem}.small{}.dark.small,.redbtn.small{padding:0.438rem 1rem;font-size:.9rem}
.btn.orange{background:var(--orange);border-color:var(--orange);color:var(--navy)}
/* login (no sidebar) */
body.bare{background:var(--paper)}.loginbrand{display:flex;gap:0.625rem;align-items:center;justify-content:center;font-weight:700;padding:2.125rem 0 0}.loginbrand i,.sbrand i{width:1.625rem;height:1.625rem;border-radius:50% 50% 0 0;background:var(--orange);display:block;flex:none}.loginbrand span{font-weight:500;opacity:.6;font-size:.8rem;letter-spacing:.12em}
.wrap{max-width:68.75rem;margin:0 auto;padding:1.25rem clamp(1rem,4vw,2rem) 2.5rem}.foot{text-align:center;color:var(--ink2);font-size:.85rem;padding:1.25rem}
/* app shell */
body.app{display:grid;grid-template-columns:var(--side) 1fr;min-height:100vh}
.side{background:var(--navy);color:#DCE7FA;display:flex;flex-direction:column;padding:1.125rem 0.875rem;position:sticky;top:0;height:100vh;overflow:auto}
.sbrand{display:flex;gap:0.75rem;align-items:center;color:#fff;text-decoration:none;padding:0.375rem 0.5rem 1.125rem}.sbrand b{display:block;line-height:1.15}.sbrand small{letter-spacing:.14em;color:#8FB0E6;font-size:.72rem}
.side nav{flex:1}.grp{font:700 .72rem system-ui;letter-spacing:.16em;text-transform:uppercase;color:#7F9ACB;margin:1.25rem 0.625rem 0.375rem}
.nv{display:flex;align-items:center;gap:0.75rem;padding:0.688rem 0.75rem;border-radius:0.75rem;color:#E6EEFB;text-decoration:none;font-weight:600;border:0;background:none;width:100%;font-size:1rem;position:relative}
.nv:hover{background:rgba(255,255,255,.08)}.nv.on{background:rgba(255,255,255,.14);color:#fff}.nv.on:before{content:"";position:absolute;left:-14px;top:0.5rem;bottom:0.5rem;width:0.25rem;border-radius:0 0.25rem 0.25rem 0;background:var(--orange)}
.bdg{margin-left:auto;background:var(--orange);color:var(--navy);font:700 .75rem system-ui;border-radius:62.438rem;padding:1px 0.5rem;font-style:normal}
.nv kbd{margin-left:auto;font:600 .72rem system-ui;border:1px solid #3d5f9a;border-radius:0.375rem;padding:1px 0.375rem;color:#9db4dc}.narrowbtn{cursor:pointer}
.sfoot{border-top:1px solid #27487f;margin-top:0.875rem;padding-top:0.75rem}
.me{display:flex;align-items:center;gap:0.625rem;padding:0.75rem 0.5rem 0.25rem;flex-wrap:wrap}.av{width:2.5rem;height:2.5rem;border-radius:50%;background:var(--orange);color:var(--navy);display:grid;place-items:center;font-weight:700;flex:none}
.me b{display:block;line-height:1.15;color:#fff}.me small{color:#9db4dc}.me form{margin:0 0 0 auto}.signout{background:none;border:0;color:#cfe0ff;text-decoration:underline;font:500 .9rem system-ui;padding:0.25rem}
.content{min-width:0}.content.pad{padding:1.75rem clamp(1rem,3vw,2.25rem) 3.75rem;max-width:71.875rem}.content.wide{padding:0;height:100vh}
body.narrow{--side:4.875rem}body.narrow .sbrand div,body.narrow .nv span,body.narrow .grp,body.narrow .nv kbd,body.narrow .me div,body.narrow .me form,body.narrow .bdg{display:none}body.narrow .nv{justify-content:center}body.narrow .nv.on:before{left:-14px}body.narrow .sbrand{justify-content:center}
.menu-toggle,.burger{display:none}
/* two-pane enquiries */
.two{display:grid;grid-template-columns:minmax(19rem,25rem) 1fr;height:100%}
.listpane{background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.lp-head{display:flex;align-items:center;justify-content:space-between;gap:0.625rem;padding:1.375rem 1.375rem 0.5rem}.lp-head h1{margin:0;font-size:1.5rem}
.lp-filter{display:flex;gap:0.5rem;padding:0.5rem 1.375rem 0.875rem}.lp-filter input,.lp-filter select{flex:1;min-width:0;font:inherit;padding:0.625rem 0.75rem;border:1.5px solid var(--line);border-radius:0.75rem;background:#fff;color:var(--navy)}.lp-filter select{flex:0 0 auto;width:8.125rem}
#bulk{display:flex;flex-direction:column;min-height:0;flex:1}
.lp-bulk{background:#F1ECE2;border-block:1px solid var(--line);padding:0.75rem 1.375rem;display:flex;flex-wrap:wrap;gap:0.5rem 0.625rem;align-items:center}
.lp-bulk select{font:inherit;padding:0.5rem 0.625rem;border:1.5px solid var(--line);border-radius:0.75rem;background:#fff;color:var(--navy);margin-left:auto}.btns{display:flex;flex-wrap:wrap;gap:0.5rem;width:100%}
.check{display:flex;gap:0.5rem;align-items:center;font-weight:500}input[type=checkbox]{width:1.125rem;height:1.125rem;accent-color:var(--navy)}
.rows{list-style:none;margin:0;padding:0;overflow:auto;flex:1}.row{display:flex;align-items:stretch;border-bottom:1px solid var(--line)}
.row.sel{background:#fff;box-shadow:inset 0.25rem 0 0 var(--orange)}.row:hover{background:#fff}.rk{display:grid;place-items:center;padding:0 0.375rem 0 1.375rem}
.rl{flex:1;min-width:0;display:flex;align-items:center;gap:0.75rem;padding:1rem 1.125rem 1rem 0.625rem;color:inherit;text-decoration:none}
.rt{flex:1;min-width:0}.rt b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rt small{display:block;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row:not(.unread) .rt b{font-weight:600}.row.unread .rt b{font-weight:800}.rl time{font-size:.82rem;color:var(--ink2);text-align:right;max-width:6.875rem}
.dot{width:0.625rem;height:0.625rem;border-radius:50%;background:#c3ccda;flex:none;display:inline-block}.dot.new{background:var(--orange)}.dot.in_progress{background:var(--navy2)}.dot.done{background:#2f9e5b}.dot.spam{background:#999}
.empty{padding:2.125rem;color:var(--ink2);text-align:center;list-style:none}.pager{display:flex;justify-content:center;gap:1rem;padding:0.625rem;color:var(--ink2);font-size:.9rem;border-top:1px solid var(--line);margin:0;background:var(--paper)}
.detailpane{overflow:auto;background:var(--bg);min-width:0}.pick{height:100%;display:grid;place-items:center;color:var(--ink2);align-content:center}
.detail{padding:1.625rem clamp(1rem,3vw,2.125rem) 3.125rem}.backlink{display:none;align-items:center;gap:0.25rem;margin-bottom:0.625rem;font-weight:600;text-decoration:none}
.dhead{display:flex;justify-content:space-between;gap:0.875rem;align-items:flex-start;margin-bottom:1rem}.meta{color:var(--ink2);margin:2px 0 0}.ref{font-family:ui-monospace,monospace}
.dgrid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:1rem;align-items:start}@media(max-width:1400px){.dgrid{grid-template-columns:1fr}}
.dcard{background:#fff;border:1px solid var(--line);border-radius:1rem;padding:1.125rem 1.25rem;margin:0 0 1rem}.dcard.red{border-color:#f0b3ac}
.kv{width:100%;border-collapse:collapse}.kv th,.kv td{text-align:left;padding:0.5rem 0.375rem;border-bottom:1px solid #eef1f6;vertical-align:top;overflow-wrap:anywhere}.kv th{width:38%;color:var(--ink2);font-weight:600;font-size:.9rem}
.inl{display:flex;gap:0.5rem;align-items:flex-end;margin:0 0 0.625rem}.inl label{flex:1;margin:0}
label{display:block;font-weight:600;margin:0 0 0.75rem}select,input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],textarea{display:block;width:100%;margin-top:0.312rem;font:inherit;color:var(--navy);padding:0.625rem 0.75rem;border:1.5px solid #9fb0cc;border-radius:0.625rem;background:#fff}
textarea{resize:vertical}label.check{margin:0 0 0.75rem}
.pill{display:inline-block;padding:0.188rem 0.75rem;border-radius:62.438rem;font-size:.82rem;font-weight:700;background:var(--sky);white-space:nowrap}.pill.new{background:#FFE9D6;color:#8a3a06}.pill.done{background:#E6F4EA;color:#14532d}.pill.spam{background:#eee;color:#555}
.flash{background:#E6F4EA;border:1px solid #9bd0a8;border-radius:0.625rem;padding:0.625rem 0.875rem;margin:0 0 0.875rem}.err{background:#FDECEA;border:1px solid #f0b3ac;color:#7a1b12;border-radius:0.625rem;padding:0.625rem 0.875rem}
/* home, tables, cards on other pages */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0.875rem;margin:1rem 0}@media(max-width:900px){.stats{grid-template-columns:1fr 1fr}}
.stat{background:#fff;border:1px solid var(--line);border-radius:1rem;padding:1.125rem;text-decoration:none;color:var(--navy);display:grid;gap:2px;transition:transform .15s,box-shadow .15s}.stat:hover{transform:translateY(-3px);box-shadow:0 0.625rem 1.5rem rgba(15,45,94,.1)}
.stat b{font-size:2rem;line-height:1}.stat span{color:var(--ink2)}.stat.hot b{color:var(--orange)}
.recent{list-style:none;margin:0 0 0.875rem;padding:0}.recent li a{display:flex;gap:0.75rem;align-items:center;padding:0.75rem 0.25rem;border-bottom:1px solid #eef1f6;text-decoration:none;color:inherit}.recent time{font-size:.82rem;color:var(--ink2)}
.card{background:#fff;border:1px solid var(--line);border-radius:1rem;padding:1.375rem;margin:0 0 1.125rem}.narrow{max-width:26.25rem;margin:2.5rem auto}.narrow2{max-width:35rem}
.tablewrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:0.875rem}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:0.688rem 0.875rem;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink2);background:var(--sky)}
.act{white-space:nowrap}.inline{display:inline;margin:0}.linkbtn{background:none;border:0;color:var(--navy2);font:inherit;cursor:pointer;text-decoration:underline;padding:0.25rem}
.secret{font:700 1.3rem ui-monospace,monospace;letter-spacing:.08em;background:var(--sky);padding:0.75rem;border-radius:0.625rem;overflow-wrap:anywhere}.pw{font:700 1.2rem ui-monospace,monospace;background:var(--sky);padding:0.75rem;border-radius:0.625rem;overflow-wrap:anywhere}
.card .btn,.narrow2 .btn,.card button.btn{margin-top:0.25rem}
/* phones and tablets */
@media(max-width:900px){
  body.app{display:block}
  .burger{display:flex;position:sticky;top:0;z-index:30;background:var(--navy);color:#fff;padding:0.875rem 1.125rem;font-weight:700;cursor:pointer}
  .side{position:fixed;left:0;top:0;bottom:0;width:18.125rem;height:auto;z-index:40;transform:translateX(-100%);transition:transform .2s}
  .menu-toggle:checked ~ .side{transform:none;box-shadow:0 0 0 100vmax rgba(10,33,71,.5)}
  .content.wide{height:auto}.two{display:block;height:auto}.two.has-detail .listpane{display:none}.two:not(.has-detail) .detailpane{display:none}
  .backlink{display:inline-flex}.dgrid{grid-template-columns:1fr}.rows{overflow:visible}
  body.narrow{--side:14.5rem}body.narrow .sbrand div,body.narrow .nv span,body.narrow .grp,body.narrow .me div,body.narrow .me form{display:revert}
}
.kv th{background:none;text-transform:none;letter-spacing:0;font-size:.9rem;padding:0.5rem 0.625rem 0.5rem 0}
.kv td{padding:0.5rem 0}
@media(max-width:1700px){.dgrid{grid-template-columns:1fr}}
.dside{display:grid;grid-template-columns:repeat(auto-fit,minmax(16.25rem,1fr));gap:0 1rem;align-items:start}
.dside .dcard{margin:0 0 1rem}

/* ---------- compact density ---------- */
h1{font-size:1.35rem}.lp-head h1{font-size:1.25rem}.dhead h2{font-size:1.15rem}
.nv{padding:.55rem .7rem;font-size:.92rem;gap:.7rem}.sbrand{padding:.3rem .5rem 1rem}
.dark,.btn{padding:.45rem 1.05rem;font-size:.85rem}.ghost{padding:.4rem .9rem;font-size:.85rem}
.lp-head{padding:1rem 1.1rem .4rem}.lp-filter{padding:.4rem 1.1rem .8rem}.lp-bulk{padding:.65rem 1.1rem}
.lp-filter input,.lp-filter select,.lp-bulk select{padding:.45rem .65rem;font-size:.88rem}
.rl{padding:.75rem .9rem .75rem .4rem}.rk{padding:0 .3rem 0 1.1rem}.rt b{font-size:.92rem}.rt small{font-size:.8rem}
.detail{padding:1.2rem 1.6rem 2.5rem}.dcard{padding:.9rem 1.1rem}.kv th,.kv td{padding:.4rem .5rem .4rem 0;font-size:.88rem}
.stat b{font-size:1.6rem}.stat{padding:.9rem}.content.pad{padding:1.4rem 1.8rem 3rem}
.qrbox{display:grid;place-items:center;margin:.8rem 0}.qr{width:12.5rem;height:12.5rem;border:1px solid var(--line);border-radius:.6rem;background:#fff}
.alt{margin:.6rem 0 1rem}.alt summary{cursor:pointer;color:var(--navy2);font-weight:600;font-size:.9rem}
.secret{font-size:1.05rem}
.rl time{white-space:nowrap;max-width:none}
