:root{--ink:#1b1230;--muted:#5d5670;--paper:#f6f2ea;--card:#fffdf8;--line:#dcd3c4;--brand:#4a1f86;--gold:#d4a24c;--ok:#1d7a46;--bad:#b3261e;font-family:Kantumruy Pro,Noto Sans Khmer,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;line-height:1.55}a{color:var(--brand)}.wrap{max-width:860px;margin:0 auto;padding:24px 16px 64px}.brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.brand b{font-size:20px}.brand span{color:var(--muted);font-size:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;margin:16px 0}h1{font-size:28px;line-height:1.25;margin:8px 0 4px}h2{font-size:20px;margin:0 0 12px}.km{color:var(--muted)}label{display:block;font-weight:600;margin:14px 0 6px;font-size:15px}label small{font-weight:400;color:var(--muted)}input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}.grid{display:grid;grid-gap:0 16px;gap:0 16px;grid-template-columns:1fr}@media (min-width:640px){.grid{grid-template-columns:1fr 1fr}}.btn{display:inline-block;background:var(--brand);color:#fff;border:0;border-radius:10px;padding:12px 20px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.btn.ghost{background:transparent;color:var(--brand);border:1px solid var(--brand)}.note{padding:12px 14px;border-radius:10px;background:#efe8fb}.note.ok{background:#e3f4ea;color:var(--ok)}.note.bad{background:#fbe7e5;color:var(--bad)}.hp{position:absolute;left:-9999px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}td.num,th.num{text-align:right;white-space:nowrap}.badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:13px;font-weight:600;background:#efe8fb;color:var(--brand)}.badge.active,.badge.paid{background:#e3f4ea;color:var(--ok)}.badge.overdue,.badge.removed,.badge.suspended{background:#fbe7e5;color:var(--bad)}.inv-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.qr svg{width:180px;height:180px}@media print{body{background:#fff}.noprint{display:none!important}.card{border:0}.card,.wrap{padding:0}}