:root{--ink:#1d2433;--muted:#5d6678;--line:#d9dde5;--bg:#f6f7f9;--card:#fff;--accent:#1f5f8b;--warn:#b54708;--bad:#b42318;--ok:#067647;--warnbg:#fff4e5}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
nav.top{display:flex;gap:18px;align-items:center;padding:10px 20px;background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap}
nav.top a{color:var(--ink);text-decoration:none}nav.top a:hover{color:var(--accent)}.brand{margin-right:8px}.who{margin-left:auto;color:var(--muted)}
main{max-width:1240px;margin:0 auto;padding:20px 16px 60px}h1{font-size:22px;margin:4px 0 16px}h2{font-size:16px;margin:24px 0 8px}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:16px}
table.t{width:100%;border-collapse:collapse;background:var(--card)}table.t th,table.t td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
table.t th{font-weight:600;color:var(--muted);font-size:12px;white-space:nowrap}tr.paid td{background:#ecfdf3}tr.overdue td,.overdue{background:var(--warnbg)}
.badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;border:1px solid var(--line)}.badge.ok{color:var(--ok);border-color:#abefc6}.badge.bad{color:var(--bad);border-color:#fecdca}.badge.warn{color:var(--warn);border-color:#fedf89}
button,.btn{font:inherit;padding:6px 12px;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:6px;cursor:pointer;text-decoration:none;display:inline-block}
button.sec,.btn.sec{background:#fff;color:var(--accent)}button.link{border:0;background:none;color:var(--accent);padding:0}button.danger{background:#fff;color:var(--bad);border-color:var(--bad)}
label{display:block;margin:8px 0 2px;color:var(--muted);font-size:12px}input,select,textarea{font:inherit;width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#fff}
input[type=checkbox]{width:auto}textarea{resize:vertical}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 16px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:800px){.split{grid-template-columns:1fr}}
.msg{padding:8px 12px;border-radius:6px;background:#eef4ff}.msg.error{background:#fef3f2;color:var(--bad)}.msg.success{background:#ecfdf3}.msg.warning{background:var(--warnbg)}
.auto{font-size:11px;color:var(--muted);border:1px dashed var(--line);border-radius:6px;padding:0 5px;margin-left:4px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted)}.inline{display:inline}.errors li{color:var(--bad)}
ol.items{padding-left:22px}ol.items li.l1{margin-left:24px;list-style:lower-alpha}.mono{font-family:ui-monospace,Consolas,monospace}
.votes input[type=number]{width:64px}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:end}.filters label{margin:0}.filters input,.filters select{width:auto}
label.row{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;margin:4px 0;color:var(--ink);font-size:14px}
.votes label{display:inline-flex;gap:6px;align-items:center;margin:0}.votes .row{margin:6px 0}

input.selsearch{margin-bottom:4px;font-size:13px;padding:4px 8px}
.card.quick{margin:6px 0;padding:10px;border:1px dashed var(--line)}.card.quick label{display:block;margin-top:6px}
[hidden]{display:none!important}
