@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";
:root{--page:#fafafa;--surface:#fff;--surface-2:#f6f6f7;--border:#e5e7eb;--border-hover:#d1d5db;--ink:#18181b;--muted:#6b7280;--faint:#9ca3af;--brand:#ff5b1f;--accent:#cc4919;--accent-hover:#b34016;--accent-wash:#fef1ec;--success-text:#15803d;--success-bg:#dcfce7;--warning-text:#b45309;--warning-bg:#fef3c7;--error-text:#b91c1c;--error-bg:#fee2e2;--neutral-text:#374151;--neutral-bg:#f3f4f6;--radius:8px;--radius-lg:12px;--font:"Inter", -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--sidebar-w:232px}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased}body{font:14px/1.5 var(--font);background:var(--page);color:var(--ink);font-variant-numeric:tabular-nums;margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--ink);color:#e4e4e7;flex-direction:column;flex:none;padding:18px 14px;display:flex}.sidebar .brand{align-items:center;gap:8px;padding:6px 8px 20px;display:flex}.sidebar .brand img{width:auto;height:26px;display:block}.sidebar nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar nav a{color:#d4d4d8;border-radius:7px;align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;font-weight:500;display:flex}.sidebar nav a:hover{color:#fff;background:#27272a;text-decoration:none}.sidebar nav a.active{background:var(--accent);color:#fff}.sidebar nav a .icon{opacity:.9;flex:none;width:16px;height:16px}.sidebar-foot{border-top:1px solid #27272a;flex-direction:column;gap:8px;padding-top:12px;display:flex}.tailnet-badge{color:#a1a1aa;border:1px solid #333338;border-radius:99px;align-items:center;gap:6px;padding:5px 9px;font-size:11px;display:flex}.tailnet-badge .dot{background:#22c55e;border-radius:50%;flex:none;width:6px;height:6px}.signout{color:#d4d4d8;background:0 0;border:1px solid #333338;width:100%}.signout:hover{background:#27272a;border-color:#27272a}.content{flex:1;min-width:0;max-width:1320px;padding:28px 36px}h1{letter-spacing:-.01em;margin:0 0 4px;font-size:22px;font-weight:650;line-height:1.2}h2{margin:0 0 4px;font-size:15px;font-weight:650}.subtitle{color:var(--muted);max-width:62ch;margin:0 0 22px;font-size:13.5px}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:7px;padding:8px 14px;font-size:13.5px;font-weight:600;transition:background-color .12s,border-color .12s,opacity .12s}button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.ghost{background:var(--surface);color:var(--ink);border-color:var(--border)}button.ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-hover)}button.subtle{color:var(--muted);background:0 0;border-color:#0000;padding:6px 8px}button.subtle:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}button.danger{background:var(--error-text);border-color:var(--error-text)}button.danger:hover:not(:disabled){background:#991b1b;border-color:#991b1b}button:disabled{opacity:.5;cursor:default}select,input[type=text],input[type=email],input[type=tel],input[type=date],input[type=number],input[type=password],textarea{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:7px;padding:8px 10px;font-size:13.5px}select:focus,input:focus,textarea:focus{border-color:var(--accent)}.field{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.field label{color:var(--muted);font-size:12.5px;font-weight:600}.field input,.field textarea,.field select{width:100%}.row{gap:10px;display:flex}.row>*{flex:1}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.tabs{background:var(--surface-2);border-radius:9px;gap:4px;padding:3px;display:flex}.tab{cursor:pointer;font:inherit;color:var(--muted);background:0 0;border:none;border-radius:6px;padding:6px 13px;font-size:13px;font-weight:600}.tab.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000000f}.chips{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.chip{background:var(--accent-wash);color:var(--accent);border-radius:99px;align-items:center;gap:6px;padding:4px 6px 4px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.chip button{color:var(--accent);background:0 0;border:none;border-radius:50%;padding:2px;font-size:11px;line-height:1}.chip button:hover{background:#cc491926}.badge{border-radius:99px;align-items:center;gap:4px;padding:3px 9px;font-size:11.5px;font-weight:650;display:inline-flex}.badge.complete{background:var(--success-bg);color:var(--success-text)}.badge.incomplete{background:var(--warning-bg);color:var(--warning-text)}.badge.dnc{background:var(--error-bg);color:var(--error-text)}.badge.draft{background:var(--neutral-bg);color:var(--neutral-text)}.badge.sent{background:var(--warning-bg);color:var(--warning-text)}.badge.paid{background:var(--success-bg);color:var(--success-text)}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:auto hidden}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:0 12px}th{background:var(--surface-2);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;height:36px;font-size:11px;font-weight:650}td{height:44px;font-size:13.5px}tbody tr{transition:background-color .1s}tbody tr:hover{background:var(--surface-2)}tbody tr:last-child td{border-bottom:none}td.num,th.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.row-actions{opacity:0;gap:2px;transition:opacity .1s;display:flex}tr:hover .row-actions,tr:focus-within .row-actions{opacity:1}tr.just-saved{animation:.9s ease-out saved-flash}@keyframes saved-flash{0%{background:var(--accent-wash)}to{background:0 0}}.cell-edit{width:100%;font:inherit;color:var(--ink);background:0 0;border:1.5px solid #0000;border-radius:5px;padding:5px 6px;font-size:13.5px}.cell-edit::placeholder{color:var(--faint)}.cell-edit:hover{border-color:var(--border)}.cell-edit:focus{border-color:var(--accent);background:var(--surface);outline:none}.empty{text-align:center;color:var(--muted);padding:56px 24px}.empty h2{color:var(--ink);margin-bottom:6px;font-size:16px}.empty p{max-width:42ch;margin:0 auto 16px}.panel-backdrop{z-index:60;background:#18181b59;animation:.15s fade-in;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.panel{background:var(--surface);z-index:61;flex-direction:column;width:420px;max-width:92vw;animation:.18s cubic-bezier(.2,.7,.2,1) slide-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 32px #00000024}@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.panel-body{flex:1;padding:20px;overflow-y:auto}.panel-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:16px 20px;display:flex}.save-flash{color:var(--success-text);align-items:center;gap:5px;font-size:12.5px;font-weight:650;display:inline-flex}.modal-backdrop{z-index:50;background:#18181b66;justify-content:center;align-items:center;animation:.15s fade-in;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);width:560px;max-width:92vw;max-height:86vh;padding:22px;overflow:auto;box-shadow:0 20px 60px #0003}.modal h2{margin-bottom:6px;font-size:17px}.status-line{color:var(--muted);white-space:pre-wrap;background:var(--surface-2);max-height:160px;font-size:12px;font-family:var(--font-mono);border-radius:7px;margin-top:10px;padding:10px 12px;overflow:auto}.login-screen{background:var(--ink);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border-radius:var(--radius-lg);text-align:center;width:340px;max-width:90vw;padding:32px 28px;box-shadow:0 20px 60px #00000059}.login-logo{height:40px;margin-bottom:16px}.login-card h1{font-size:18px}.login-card .muted{margin-bottom:18px;font-size:12.5px}.login-card input{text-align:center;margin-bottom:12px}.login-card button{width:100%}.login-error{color:var(--error-text);margin:-4px 0 12px;font-size:12.5px}.muted{color:var(--muted)}.small{font-size:12px}
