:root{
  --ink:#1B2A38; --paper:#E9E2D0; --paper-2:#F2ECDF; --paper-line:#CFC4A4;
  --gold:#A97D35; --forest:#3C5A44; --rust:#8B3A2B; --text:#241C13;
  --muted:#6B6152; --white:#FBF9F3;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--text);font-family:'IBM Plex Sans',sans-serif;-webkit-font-smoothing:antialiased;}
.wrap{max-width:1080px;margin:0 auto;padding:28px 20px 60px;}

header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--ink);padding-bottom:16px;margin-bottom:20px;gap:16px;flex-wrap:wrap;}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 6px;}
h1{font-family:'Lora',serif;font-weight:700;font-size:26px;margin:0;color:var(--ink);}
h2{font-family:'Lora',serif;font-size:19px;color:var(--ink);margin:0 0 6px;}
.who{font-size:12px;color:var(--muted);align-self:center;}
.who a{color:var(--rust);}

.tabs{display:flex;flex-wrap:wrap;gap:2px;margin-bottom:0;}
.tab{font-family:'IBM Plex Mono',monospace;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;padding:10px 14px;color:var(--muted);background:var(--paper-line);text-decoration:none;}
.tab.active{background:var(--ink);color:var(--white);}
.panel{background:var(--paper-2);border:1px solid var(--paper-line);padding:24px;}

.sched-label{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:.12em;margin:0 0 4px;}
.legal{font-size:12px;color:var(--muted);margin:0 0 18px;line-height:1.6;border-left:2px solid var(--gold);padding-left:10px;}

.card{background:var(--white);border:1px solid var(--paper-line);padding:20px;margin-bottom:18px;}
.field-row{display:flex;gap:14px;flex-wrap:wrap;}
.field{flex:1;min-width:150px;}
label{display:block;font-size:11px;letter-spacing:.03em;color:var(--muted);margin-bottom:5px;text-transform:uppercase;font-family:'IBM Plex Mono',monospace;}
input[type=text],input[type=date],input[type=number],input[type=password],input[type=file],select,textarea{
  width:100%;padding:9px 10px;border:1px solid var(--paper-line);background:var(--white);
  font-family:'IBM Plex Sans',sans-serif;font-size:14px;color:var(--text);
}
input:focus,select:focus,button:focus,.tab:focus{outline:2px solid var(--gold);outline-offset:1px;}
button,.btn{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.04em;text-transform:uppercase;
  background:var(--ink);color:var(--white);border:none;padding:10px 16px;cursor:pointer;text-decoration:none;display:inline-block;}
button:hover,.btn:hover{background:#2c4054;}
.btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--ink);}
.btn.secondary:hover{background:rgba(27,42,56,.06);}
.btn.link{background:none;border:none;color:var(--rust);text-decoration:underline;padding:0;margin:0 0 0 10px;font-size:12px;text-transform:none;letter-spacing:0;cursor:pointer;}

table{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px;}
th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--paper-line);}
th{font-family:'IBM Plex Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);}
td.num{font-family:'IBM Plex Mono',monospace;}
.neg{color:var(--rust);font-weight:600;}
.empty-state{padding:22px;color:var(--muted);font-size:13px;text-align:center;border:1px dashed var(--paper-line);}

.stat-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.stat{flex:1;min-width:130px;background:var(--white);border:1px solid var(--paper-line);padding:14px 16px;}
.stat .n{font-family:'IBM Plex Mono',monospace;font-size:24px;font-weight:600;color:var(--ink);}
.stat .l{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px;}

.tally{display:flex;flex-wrap:wrap;gap:4px;margin:10px 0 4px;}
.tblock{width:14px;height:14px;border:1px solid var(--ink);}
.tblock.used{background:var(--rust);border-color:var(--rust);}
.tblock.accrued{background:var(--forest);border-color:var(--forest);}
.tblock.empty{background:transparent;}

.note{font-size:12px;color:var(--muted);background:var(--white);border:1px solid var(--paper-line);padding:10px 12px;margin:12px 0;line-height:1.6;}
.warn{border-left:3px solid var(--rust);}
.ok{border-left:3px solid var(--forest);}
.error-box{font-size:13px;color:var(--rust);background:#FBE1DC;border:1px solid var(--rust);padding:10px 12px;margin-bottom:16px;}
.success-box{font-size:13px;color:var(--forest);background:#E4EBE6;border:1px solid var(--forest);padding:10px 12px;margin-bottom:16px;}

.footer-note{font-size:11.5px;color:var(--muted);text-align:center;margin-top:26px;line-height:1.6;}

.pie{width:150px;height:150px;border-radius:50%;flex-shrink:0;}
.legend{display:flex;flex-direction:column;gap:8px;justify-content:center;}
.legend .row{display:flex;align-items:center;gap:8px;font-size:13px;}
.swatch{width:12px;height:12px;display:inline-block;border-radius:2px;}

.login-wrap{max-width:380px;margin:80px auto;}
