: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}}.btn.sos{background:var(--bad);font-size:18px;padding:14px 22px;display:block;text-align:center;margin:16px 0}.sos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px;margin-bottom:8px}.sos-type{margin:0;font-weight:600}.sos-type input{position:absolute;opacity:0;width:1px}.sos-type span{display:block;border:2px solid var(--line);border-radius:12px;padding:14px 10px;text-align:center;background:#fff;cursor:pointer}.sos-type span b{display:block;font-size:28px}.sos-type input:checked+span{border-color:var(--bad);background:#fbe7e5}.sos-type input:focus-visible+span{outline:3px solid var(--brand)}label.check{display:flex;gap:8px;align-items:center;font-weight:400}label.check input{width:auto}.links{list-style:none;padding:0;margin:0}.links li{padding:10px 0;border-bottom:1px solid var(--line)}.links li:last-child{border-bottom:0}.months{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.months .card{margin:0;padding:14px}.months h3{margin:0 0 8px;font-size:16px}.ev{display:block;padding:6px 8px;border-radius:8px;background:#efe8fb;margin:6px 0;text-decoration:none;color:var(--ink);font-size:14px}.ev.festival{background:#fdf0d9}.ev.draft{opacity:.6;border:1px dashed var(--line)}.ev small{display:block;color:var(--muted)}.stats{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}.stat b{display:block;font-size:24px}.stat span{color:var(--muted);font-size:13px}.idcard{width:86mm;height:54mm;border:1px solid var(--ink);border-radius:3mm;padding:3mm;display:grid;grid-template-columns:22mm 1fr 18mm;grid-gap:3mm;gap:3mm;background:#fff;font-size:9pt;line-height:1.3}.idcard img.photo{width:22mm;height:28mm;object-fit:cover;border-radius:2mm;background:#eee}.idcard .qr svg{width:18mm;height:18mm}.idcard h2{font-size:11pt;margin:0}.idcard .top{grid-column:1/-1;display:flex;justify-content:space-between;font-weight:700;color:var(--brand);border-bottom:1px solid var(--line);padding-bottom:1mm}@media print{.no-print{display:none!important}body{background:#fff}.card{border:0;padding:0}}