:root{
  --ink:#231A4D; --paper:#F7F7F3; --white:#fff; --line:#DDDDD4;
  --stamp:#3700B3; --paid:#1F7A4D; --due:#B3702A; --muted:#6B7280; --danger:#B3372A;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'IBM Plex Sans',system-ui,sans-serif;background:var(--paper);color:var(--ink);font-size:15px;line-height:1.55}
h1,h2,h3{font-family:'Space Grotesk',sans-serif;letter-spacing:-.01em}
a{color:var(--stamp)} button{font-family:inherit;cursor:pointer}
.app{max-width:860px;margin:0 auto;padding:28px 18px 80px}
.brand{display:flex;align-items:center;gap:10px;margin-bottom:26px;border-bottom:2px solid var(--ink);padding-bottom:14px}
.brand img{height:44px;width:auto}
.brand .sub{font-family:'Space Grotesk';font-size:16px;color:var(--muted);font-weight:500}
.brand .who{margin-left:auto;font-size:13px;color:var(--muted);text-align:right}
.brand .who b{color:var(--ink)}
.card{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:26px;box-shadow:0 1px 2px rgba(35,26,77,.05)}
.login{max-width:460px;margin:40px auto 0}
.login h1{font-size:26px;font-weight:600;margin-bottom:8px}
.login p.lead{color:var(--muted);margin-bottom:22px}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.field input{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:8px;font-size:15px;font-family:inherit;background:var(--paper)}
.field input:focus{outline:2px solid var(--stamp);outline-offset:1px;border-color:var(--stamp)}
.btn{display:inline-block;background:var(--stamp);color:#fff;border:none;border-radius:8px;padding:12px 22px;font-size:15px;font-weight:600;margin-top:16px;text-decoration:none}
.btn:hover{background:#2B008F}
.btn.secondary{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.hint{font-size:13px;color:var(--muted);margin-top:16px}
.msg{border-left:4px solid var(--paid);background:var(--white);border:1px solid var(--line);border-left-width:4px;border-left-color:var(--paid);border-radius:8px;padding:14px 16px;margin-bottom:14px;font-size:14px}
.msg.warn{border-left-color:var(--due)} .msg.err{border-left-color:var(--danger)}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.toolbar input,.toolbar select{padding:10px 12px;border:1.5px solid var(--line);border-radius:8px;font-size:14px;font-family:inherit;background:var(--white)}
.toolbar input[type=search]{flex:1;min-width:180px}
.ledger-wrap{border:1px solid var(--line);border-radius:10px;overflow-x:auto;background:var(--white);margin-bottom:14px}
table.ledger{width:100%;border-collapse:collapse}
.ledger th{text-align:left;font-family:'Space Grotesk';font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:12px 14px;border-bottom:2px solid var(--ink)}
.ledger td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.ledger tr:last-child td{border-bottom:none}
.ledger tr:hover td{background:#FBFBF7}
.num{font-family:'Space Grotesk';font-weight:600}
.amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.status{display:inline-block;font-family:'Space Grotesk';font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border:1.5px solid currentColor;border-radius:4px;padding:2px 8px;transform:rotate(-2deg)}
.status.paid{color:var(--paid)} .status.due{color:var(--due)}
.dl{background:none;border:1.5px solid var(--line);border-radius:6px;padding:6px 12px;font-size:13px;color:var(--ink);text-decoration:none;white-space:nowrap;display:inline-block}
.dl:hover{border-color:var(--stamp);color:var(--stamp)}
.empty{padding:34px;text-align:center;color:var(--muted)}
.summary{font-size:13px;color:var(--muted);margin-top:4px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
@media(max-width:640px){.grid2{grid-template-columns:1fr}}
.stat{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:18px}
.stat .k{font-family:'Space Grotesk';font-size:30px;font-weight:700}
.stat .l{font-size:13px;color:var(--muted)}
h2.section{font-size:17px;margin:26px 0 12px}
.footnote{margin-top:34px;font-size:12.5px;color:var(--muted);text-align:center}
.linklike{background:none;border:none;color:var(--stamp);font-size:13px;text-decoration:underline;padding:0}
.drop{border:2px dashed #B9BDAF;border-radius:10px;background:var(--white);padding:26px;text-align:center;color:var(--muted);margin-bottom:16px}
.drop b{color:var(--ink)}
.assign{background:none;border:1.5px solid var(--stamp);color:var(--stamp);border-radius:6px;padding:5px 12px;font-size:13px}
.assign:hover{background:var(--stamp);color:#fff}
.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.inline-form input{padding:7px 10px;border:1.5px solid var(--line);border-radius:6px;font-size:13px;font-family:inherit}
.sent{text-align:center;padding:12px 0}
.sent .env{font-size:42px}
.sent h2{font-size:20px;margin:10px 0 6px}
.sent p{color:var(--muted);font-size:14px}
