:root{--color-bg:#f7f8fa;--color-surface:#fff;--color-text:#1a1d23;--color-text-muted:#6b7280;--color-primary:#7c3aed;--color-primary-hover:#6d28d9;--color-danger:#dc2626;--color-success:#16a34a;--color-warning:#b45309;--color-border:#e5e7eb;--radius:10px;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font);margin:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem}.btn{align-items:center;background:var(--color-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:600;gap:.5rem;justify-content:center;padding:.55rem 1.1rem;transition:background .15s ease}.btn:hover:not(:disabled){background:var(--color-primary-hover)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn.secondary{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn.danger{background:var(--color-danger)}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.field label{color:var(--color-text-muted);font-size:.85rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--color-border);border-radius:8px;font-family:inherit;font-size:.9rem;padding:.55rem .7rem}.status-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:.75rem;font-weight:600;letter-spacing:.02em;padding:.2rem .6rem;text-transform:uppercase}.status-pill.active,.status-pill.paid{background:#dcfce7;color:var(--color-success)}.status-pill.open,.status-pill.past_due,.status-pill.suspended{background:#fef3c7;color:var(--color-warning)}.error-banner,.status-pill.archived,.status-pill.closed,.status-pill.uncollectible,.status-pill.void{background:#fee2e2;color:var(--color-danger)}.error-banner{border-radius:8px;font-size:.9rem;margin-bottom:1rem;padding:.75rem 1rem}table.data-table{border-collapse:collapse;font-size:.9rem;width:100%}table.data-table th{color:var(--color-text-muted);font-size:.8rem;font-weight:600;letter-spacing:.02em;padding:.5rem .75rem;text-align:left;text-transform:uppercase}table.data-table td,table.data-table th{border-bottom:1px solid var(--color-border)}table.data-table td{padding:.65rem .75rem}table.data-table tr:last-child td{border-bottom:none}table.data-table tr.clickable{cursor:pointer}table.data-table tr.clickable:hover{background:var(--color-bg)}
