:root{--dm-navy:#082C44;--dm-navy-deep:#051E2F;--dm-teal:#3E8586;--dm-teal-deep:#2F6B6C;--dm-teal-wash:#E6F0EF;--dm-mist:#F1F6F5;
--dm-charcoal:#24333C;--dm-slate:#5A6870;--dm-canvas:#FAF9F5;--dm-card:#FFFFFF;--dm-hairline:#E7E4DC;--dm-rule:#D3CEC4;
--warn:#8A4B0F;--warn-wash:#FBF0E2;--bad:#8C2A2A;--bad-wash:#F8E8E6;
--font:"Inter","Switzer",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
--mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--r:6px;--r-panel:13px}
*{box-sizing:border-box}
body{margin:0;background:var(--dm-canvas);color:var(--dm-navy);font-family:var(--font);font-size:16px;line-height:1.5;letter-spacing:-.01em;-webkit-font-smoothing:antialiased}
a{color:inherit}.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.banner{position:sticky;top:0;z-index:5;background:var(--dm-navy);color:#fff;text-align:center;font:500 13px var(--mono);letter-spacing:.03em;padding:8px 12px}
.banner.mine{background:var(--dm-teal-wash);color:var(--dm-navy);border-bottom:1px solid var(--dm-hairline)}
.top{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:12px 24px;border-bottom:1px solid var(--dm-hairline);max-width:1200px;margin:0 auto}
.logo img{height:36px;display:block}
.top nav{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:15px;font-weight:500}
.top nav a{text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}.top nav a.on{border-color:var(--dm-teal)}
.who{margin-left:auto;font-size:13px;color:var(--dm-slate);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
h1{font-weight:400;font-size:clamp(30px,5vw,48px);line-height:1.05;letter-spacing:-.03em;margin:24px 0 8px}
h2{font-weight:400;font-size:26px;letter-spacing:-.02em;margin:28px 0 12px}h3{font-weight:500;font-size:17px;margin:0 0 8px}
.muted{color:var(--dm-slate)}.small{font-size:13px}
.btn{display:inline-block;background:var(--dm-navy);color:#fff;border:0;border-radius:var(--r);padding:10px 16px;font:500 15px var(--font);cursor:pointer;text-decoration:none}
.btn:hover{background:var(--dm-navy-deep)}.btn.alt{background:#fff;color:var(--dm-navy);border:1px solid var(--dm-rule)}.btn.alt:hover{background:var(--dm-mist)}
.btn.sm{padding:6px 10px;font-size:13px}.btn[disabled]{opacity:.5;cursor:not-allowed}
input,select,textarea{font:15px var(--font);padding:9px 10px;border:1px solid var(--dm-rule);border-radius:var(--r);background:#fff;color:var(--dm-navy);max-width:100%}
textarea{width:100%;min-height:120px;font-family:var(--mono);font-size:13px}
.card{background:var(--dm-card);border:1px solid var(--dm-hairline);border-radius:var(--r);padding:18px;min-width:0}
.panel{background:var(--dm-teal-wash);border-radius:var(--r-panel);padding:28px}
.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(4,1fr)}.g2{grid-template-columns:1fr 1fr}.g5{grid-template-columns:repeat(5,1fr)}
.kpi .v{font-size:28px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi .l{font:500 12px var(--mono);text-transform:uppercase;color:var(--dm-slate);letter-spacing:.03em}
.bucket .bar{height:6px;background:var(--dm-teal);border-radius:3px;margin-top:8px;min-width:2px}
.pill{display:inline-block;font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.02em;border-radius:999px;padding:3px 10px;white-space:nowrap;background:var(--dm-mist);color:var(--dm-slate)}
.pill.scheduled{background:var(--dm-mist);color:var(--dm-slate)}.pill.reminded{background:var(--dm-teal-wash);color:var(--dm-teal-deep)}
.pill.promised{background:#E3ECF6;color:var(--dm-navy)}.pill.disputed{background:var(--bad-wash);color:var(--bad)}
.pill.paused{background:var(--warn-wash);color:var(--warn)}.pill.paid{background:var(--dm-teal);color:#fff}
.tag{font:500 11px var(--mono);text-transform:uppercase;color:var(--dm-slate);letter-spacing:.04em}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--dm-hairline);vertical-align:middle}
th{font-weight:500;color:var(--dm-slate);font-size:12px;white-space:nowrap}th button{all:unset;cursor:pointer}th button:focus-visible{outline:2px solid var(--dm-teal)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tr.click{cursor:pointer}tr.click:hover td{background:var(--dm-mist)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.filters input{flex:1 1 180px}
ul.list{list-style:none;margin:0;padding:0}ul.list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--dm-hairline);align-items:center}
.tl{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--dm-hairline)}
.tl li{position:relative;padding:6px 0 10px}.tl li:before{content:"";position:absolute;left:-25px;top:12px;width:10px;height:10px;border-radius:50%;background:var(--dm-teal)}
.tl li.proj:before{background:#fff;border:2px solid var(--dm-teal)}.tl li.proj{color:var(--dm-slate)}
.tl .when{font:500 12px var(--mono);color:var(--dm-slate)}
.steps{display:flex;gap:6px;flex-wrap:wrap}.step{font:500 12px var(--mono);border:1px solid var(--dm-rule);border-radius:var(--r);padding:4px 8px}
.step.sent{background:var(--dm-teal);border-color:var(--dm-teal);color:#fff}.step.skip{text-decoration:line-through;color:var(--dm-slate)}.step.next{border-color:var(--dm-navy);border-width:2px}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.notice{padding:10px 12px;border-radius:var(--r);background:var(--dm-mist);font-size:14px}.notice.err{background:var(--bad-wash);color:var(--bad)}.notice.ok{background:var(--dm-teal-wash)}
.errs{font:12px var(--mono);max-height:220px;overflow:auto;background:var(--bad-wash);color:var(--bad);padding:8px 12px;border-radius:var(--r)}
.works{margin:28px 0 8px}.badges{list-style:none;margin:8px 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.badge{display:flex;flex-direction:column;gap:2px;border:1px solid var(--dm-rule);border-radius:var(--r);padding:8px 12px;background:#fff;font-size:14px;min-width:0}
.badge span{font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.02em;color:var(--dm-slate)}
.badge.ok{border-color:var(--dm-teal)}.badge.ok span{color:var(--dm-teal-deep)}.badge.soon span{color:var(--warn)}
.card .works{margin:12px 0}
.foot{font-size:12px;color:var(--dm-slate);padding:32px 24px 48px}
@media (max-width:900px){.g4,.g5{grid-template-columns:1fr 1fr}.g2{grid-template-columns:1fr}}
@media (max-width:600px){
 .wrap{padding:0 14px}.top{padding:10px 14px}.who{margin-left:0;width:100%}.panel{padding:18px}
 .kpi .v{font-size:22px}
 table.rows thead{display:none}table.rows,table.rows tbody,table.rows tr,table.rows td{display:block;width:100%}
 table.rows tr{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 4px;border-bottom:1px solid var(--dm-hairline)}
 table.rows td{border:0;padding:0;text-align:left}table.rows td.num{text-align:right}
 table.rows td[data-l]:before{content:attr(data-l) " ";font:500 10px var(--mono);text-transform:uppercase;color:var(--dm-slate)}
 table.rows td.hide-sm{display:none}
 #inv-table .o1{order:1}#inv-table .o2{order:2;text-align:right}#inv-table .o3{order:3}#inv-table .o4{order:4}#inv-table .o5{order:5}
}
