:root{--ink:#14233C;--ink2:#1E3050;--brass:#B98A2F;--brassd:#8F6A20;--gold:#E8C87A;
--paper:#F4F5F2;--card:#FFF;--rule:#D9DCD6;--margin:#C0392B;--text:#26303F;--muted:#5B6472;
--ok:#1D7A4A;--okbg:#E5F3EB;--warnbg:#FDF1E4;--warn:#B54708;
--serif:'Besley',Georgia,serif;--sans:'Public Sans',Arial,sans-serif;--mono:'IBM Plex Mono',monospace}
*{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none!important}
body{font-family:var(--sans);background:var(--paper);color:var(--text);font-size:15px;line-height:1.55}
h1,h2,h3{font-family:var(--serif);color:var(--ink)}
button{font-family:var(--sans);cursor:pointer}
.mono{font-family:var(--mono)}
.btn{background:var(--ink);color:#fff;border:none;border-radius:6px;padding:10px 18px;font-weight:600;font-size:14px}
.btn:hover{background:var(--ink2)}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.btn.small{padding:6px 12px;font-size:12.5px}
.btn.full{width:100%;margin-top:20px}
.btn.gold{background:var(--brass)}
.linkbtn{background:none;border:none;color:var(--muted);text-decoration:underline;font-size:13px}
.badge{display:inline-block;font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;padding:3px 9px;border-radius:99px;text-transform:uppercase}
.b-ok{background:var(--okbg);color:var(--ok)}.b-brass{background:#F7EEDB;color:var(--brassd)}
.b-warn{background:var(--warnbg);color:var(--warn)}.b-muted{background:#ECEEEA;color:var(--muted)}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--rule);border-radius:6px;font-size:14px;background:#FBFBF9;font-family:var(--sans)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brass)}
label{display:block;font-size:12.5px;font-weight:600;color:var(--ink);margin:12px 0 5px}
/* login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;
background:repeating-linear-gradient(to bottom,transparent 0 35px,var(--rule) 35px 36px),#FBFBF9}
.login-wrap::before{content:"";position:absolute;top:0;bottom:0;left:8%;width:2px;background:var(--margin);opacity:.5}
.login-card{background:var(--card);border:1px solid var(--rule);border-radius:14px;padding:42px 40px;width:min(410px,92vw);box-shadow:0 18px 50px rgba(20,35,60,.12)}
.login-card .mark{width:60px;height:60px;margin:0 auto 12px;display:block}
.login-card h1{font-size:28px;text-align:center}.login-card h1 span{color:var(--brass)}
.login-card .tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;color:var(--muted);text-align:center;margin:4px 0 20px;text-transform:uppercase}
.err{color:var(--margin);font-size:13px;margin-top:10px;text-align:center;min-height:18px}
.hint{margin-top:12px;font-size:12px;color:var(--muted);text-align:center;font-family:var(--mono)}
/* shell */
.topbar{background:var(--ink);color:#fff;display:flex;align-items:center;gap:26px;padding:0 20px;height:58px;position:sticky;top:0;z-index:40}
.brand{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-weight:800;font-size:19px}
.brand span{color:var(--gold)}.brand svg{width:28px;height:28px}
.tabs{display:flex;gap:4px;margin-right:auto}
.tabs button{background:none;border:none;color:#B9C2D0;font-size:14px;font-weight:600;padding:8px 14px;border-radius:6px}
.tabs button.on{background:#26385C;color:#fff}
.tabs button:hover{color:#fff}
.who{font-size:13px;color:#C4CBD6;display:flex;gap:14px;align-items:center}
.main{max-width:1180px;margin:0 auto;padding:26px 20px 80px}
.pagehead{display:flex;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.pagehead h2{font-size:23px;margin-right:auto}
.pagehead input{width:230px}
.pagehead select{width:auto}
/* cards & stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:13px;margin-bottom:22px}
.stat{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:16px 18px}
.stat .n{font-family:var(--serif);font-size:26px;font-weight:800;color:var(--ink)}
.stat .l{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:2px}
.stat.gold{border-top:3px solid var(--brass)}
.stat.green .n{color:var(--ok)}.stat.red .n{color:var(--margin)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:860px){.grid2{grid-template-columns:1fr}}
.panel{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:20px 22px;margin-bottom:16px}
.panel h3{font-size:16px;margin-bottom:14px}
/* bar charts (pure CSS) */
.bars .row{display:grid;grid-template-columns:130px 1fr 78px;gap:10px;align-items:center;padding:5px 0;font-size:13px}
.bars .lbl{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bars .track{background:#EFF0EC;border-radius:4px;height:16px;overflow:hidden}
.bars .fill{background:var(--brass);height:100%;border-radius:4px;min-width:2px}
.bars .fill.ink{background:var(--ink)}
.bars .val{font-family:var(--mono);font-size:12px;text-align:right;color:var(--ink)}
/* tables */
.tablewrap{background:var(--card);border:1px solid var(--rule);border-radius:12px;overflow:auto}
table{width:100%;border-collapse:collapse;min-width:640px}
thead th{font-family:var(--mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);text-align:left;padding:12px 14px;border-bottom:2px solid var(--rule);background:#FBFBF9;position:sticky;top:0}
tbody td{padding:12px 14px;border-bottom:1px solid var(--rule);font-size:14px;vertical-align:top}
tbody tr.click{cursor:pointer}
tbody tr.click:hover{background:#F7F6F1}
td .t1{font-weight:600;color:var(--ink)}
td .t2{font-size:12px;color:var(--muted);font-family:var(--mono);margin-top:2px}
.right{text-align:right}
.empty{padding:34px;text-align:center;color:var(--muted)}
/* drawer */
#ov{position:fixed;inset:0;background:rgba(20,35,60,.45);z-index:90}
#drawer{position:fixed;top:0;right:-620px;width:min(620px,100vw);height:100vh;background:var(--card);z-index:100;box-shadow:-16px 0 44px rgba(20,35,60,.25);transition:right .25s ease;overflow-y:auto}
#drawer.open{right:0}
.dr-hd{background:var(--ink);color:#fff;padding:20px 24px;position:sticky;top:0;z-index:2}
.dr-hd .close{position:absolute;top:16px;right:16px;background:none;border:none;color:#C4CBD6;font-size:22px}
.dr-hd h3{color:#fff;font-size:19px;margin-top:8px}
.dr-body{padding:22px 24px 44px}
.field{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px dashed var(--rule);font-size:14px}
.field .k{font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding-top:2px}
.field .v{text-align:right;font-weight:500;color:var(--ink);max-width:64%;word-break:break-word}
.chainbox{margin-top:18px;background:#FBFBF9;border:1px solid var(--rule);border-left:4px solid var(--brass);border-radius:8px;padding:14px 16px;font-family:var(--mono);font-size:11.5px;color:var(--muted);word-break:break-all}
.chainbox b{color:var(--ok);font-weight:500}
.filerow{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px dashed var(--rule);font-size:13.5px}
.filerow .fname{font-weight:600;color:var(--ink);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.filerow .fmeta{font-family:var(--mono);font-size:11px;color:var(--muted)}
.drop{border:2px dashed var(--rule);border-radius:10px;padding:22px;text-align:center;color:var(--muted);font-size:13.5px;margin:14px 0;cursor:pointer}
.drop.over{border-color:var(--brass);background:#FDF9F0}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
@media(max-width:640px){.formgrid{grid-template-columns:1fr}}
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:11px 22px;border-radius:8px;font-size:14px;z-index:200;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.quota{height:8px;background:#EFF0EC;border-radius:4px;overflow:hidden;margin-top:6px}
.quota .fill{height:100%;background:var(--brass)}
.pill-row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 4px}
.notice{background:var(--warnbg);border:1px solid #F0D9BC;border-radius:8px;padding:12px 16px;font-size:13.5px;color:var(--warn);margin-bottom:14px}
.calgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.calday{min-height:92px;border:1px solid var(--rule);border-radius:8px;background:#FBFBF9;padding:8px;overflow:hidden}
.calday.has{background:#fff;border-color:#D8C190}
.caldate{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:10px;color:var(--muted);text-transform:uppercase}
.caldate b{font-family:var(--serif);font-size:20px;color:var(--ink)}
.calempty{display:block;margin-top:16px;font-size:11px;color:var(--muted);text-align:center}
.calappt{display:block;width:100%;border:0;background:#F0E5CE;color:var(--ink);border-radius:6px;padding:6px;margin-top:6px;font-size:11px;font-weight:700;text-align:left;line-height:1.25}
.calappt:hover{background:#E2C892}
@media(max-width:760px){.calgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.calday{min-height:84px}}

/* UX polish: compact filters, drawer navigation, pricing tables */
.compact-panel{padding:14px 16px}.range-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.range-head h3{margin:0 0 2px}.range-head p{font-size:12.5px;color:var(--muted);margin:0}.filterbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;background:#FBFBF9;border:1px solid var(--rule);border-radius:10px;padding:10px 12px;margin:0 0 14px}.filterbar label{margin:0;min-width:145px;flex:0 1 170px}.filterbar label span,.bulkbar label span{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.filterbar input,.filterbar select{padding:7px 9px;font-size:13px;background:#fff}.filterbar .btn{height:34px}.muted-filter{opacity:.48}.backbtn{background:transparent;border:1px solid rgba(255,255,255,.38);border-radius:6px;color:#fff;font-size:12.5px;font-weight:700;padding:6px 10px;margin-bottom:10px}.backbtn:hover{background:rgba(255,255,255,.12)}.bulkbar{display:grid;grid-template-columns:auto 1fr minmax(150px,190px) auto;gap:10px;align-items:end;margin-bottom:10px}.bulkbar label{margin:0}.bulkbar input{padding:7px 9px;font-size:13px;background:#fff}.tablewrap.tight table{min-width:760px}.service-table td,.service-table th{padding:10px 12px}.service-table .btn.small{padding:5px 9px}.dr-body iframe{max-width:100%}
@media(max-width:720px){.filterbar{display:grid;grid-template-columns:1fr 1fr}.filterbar label:first-child{grid-column:1 / -1}.filterbar .btn{width:100%}.bulkbar{grid-template-columns:1fr}.range-head{align-items:flex-start;flex-direction:column}}
