*{box-sizing:border-box}body{color:#1f2937;background:#f3f4f6;margin:0;font-family:system-ui,sans-serif}a{color:#009ee3;text-decoration:none}a:hover{text-decoration:underline}.nav{background:#fff;border-bottom:1px solid #e5e7eb;flex-wrap:wrap;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex}.brand{font-size:1.1rem;font-weight:700}.spacer{flex:1}.container{max-width:880px;margin:1.5rem auto;padding:0 1rem}.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.card{background:#fff;border-radius:10px;padding:1rem 1.25rem;box-shadow:0 1px 6px #0000000f}.card h3{margin-top:0}.price,.total{font-size:1.15rem}.muted{color:#6b7280;font-size:.9rem}.ok{color:#15803d}.warn{color:#b45309}.err{color:#b91c1c}.status-paid{color:#15803d}.status-failed,.status-cancelled{color:#b91c1c}.table{border-collapse:collapse;background:#fff;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid #e5e7eb;padding:.5rem .75rem}.form{background:#fff;border-radius:10px;gap:.9rem;max-width:420px;padding:1.25rem;display:grid}.form label{gap:.25rem;font-size:.9rem;display:grid}.form .check,.row{align-items:center;gap:.5rem;display:flex}input,textarea{font:inherit;border:1px solid #d1d5db;border-radius:6px;padding:.45rem .6rem}input[type=number]{width:90px}.form input:not([type=checkbox]),.form textarea{width:100%}button{font:inherit;color:#fff;cursor:pointer;background:#009ee3;border:0;border-radius:6px;padding:.5rem 1rem}button:disabled{opacity:.5;cursor:not-allowed}button.link{color:#009ee3;background:0 0;padding:0}a.button{color:#fff;background:#009ee3;border-radius:6px;padding:.5rem 1rem;display:inline-block}a.button:hover{opacity:.9;text-decoration:none}button.secondary{color:#1f2937;background:#e5e7eb}select{font:inherit;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:.4rem .5rem}.badge{color:#374151;background:#e5e7eb;border-radius:999px;padding:.1rem .55rem;font-size:.8rem;font-weight:600;display:inline-block}.badge-paid{color:#166534;background:#dcfce7}.badge-upcoming{color:#075985;background:#e0f2fe}.badge-due_soon{color:#92400e;background:#fef3c7}.badge-overdue{color:#991b1b;background:#fee2e2}.highlight{border-left:5px solid #009ee3;margin:1rem 0}.highlight-overdue{border-left-color:#dc2626}.highlight-due_soon{border-left-color:#f59e0b}.highlight-paid{border-left-color:#16a34a}.highlight h2{margin-top:0}.stats{margin-bottom:1rem}.stat{margin:.25rem 0;font-size:1.5rem;font-weight:700}.toolbar{margin:1rem 0 .5rem}.form.inline{max-width:none;margin-bottom:1.5rem}
