:root{--color-bg:#f7f8fa;--color-surface:#fff;--color-border:#e2e5e9;--color-text:#1a1d21;--color-text-muted:#6b7280;--color-primary:#2454ff;--color-primary-hover:#1a3fd6;--color-danger:#d92d20;--color-danger-bg:#fef3f2;--color-success:#067647;--color-success-bg:#ecfdf3;--color-warning-bg:#fffaeb;--color-warning-text:#b54708;--radius:8px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);margin:0;font-size:14px}button,input,select,textarea{font-family:inherit;font-size:inherit}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.btn{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;align-items:center;gap:6px;padding:8px 16px;font-weight:500;display:inline-flex}.btn:hover{background:var(--color-bg)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.field{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.field label{font-size:13px;font-weight:500}.field input,.field select,.field textarea{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);padding:8px 10px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px}.error-banner{background:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--radius);margin-bottom:14px;padding:10px 14px;font-size:13px}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:10px 12px}th{text-transform:uppercase;color:var(--color-text-muted);font-size:12px;font-weight:600}tbody tr:hover{background:var(--color-bg)}.badge{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-draft{background:var(--color-bg);color:var(--color-text-muted)}.badge-sent{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge-paid{background:var(--color-success-bg);color:var(--color-success)}.badge-partially_paid{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge-overdue{background:var(--color-danger-bg);color:var(--color-danger)}.badge-void{background:var(--color-bg);color:var(--color-text-muted);text-decoration:line-through}.auth-screen{justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-box{width:360px}.auth-box h1{margin-bottom:4px;font-size:20px}.auth-box p.subtitle{color:var(--color-text-muted);margin-top:0;margin-bottom:20px;font-size:13px}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;width:220px;padding:16px;display:flex}.sidebar .brand{margin-bottom:20px;font-weight:700}.sidebar nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar nav a{color:var(--color-text);border-radius:var(--radius);padding:8px 10px;text-decoration:none}.sidebar nav a:hover,.sidebar nav a.active{background:var(--color-bg)}.main{flex:1;max-width:1100px;padding:24px}.page-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-header h2{margin:0}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:24px;display:grid}.stat-card .label{color:var(--color-text-muted);margin-bottom:6px;font-size:12px}.stat-card .value{font-size:24px;font-weight:700}.modal-backdrop{z-index:50;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius);width:480px;max-height:85vh;padding:24px;overflow-y:auto}.modal h3{margin-top:0}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.line-items-editor table td{padding:6px}.line-items-editor input{width:100%}.totals-row{justify-content:flex-end;gap:24px;margin-top:12px;font-size:14px;display:flex}.totals-row .label{color:var(--color-text-muted)}
