:root{--primary: #2563eb;--primary-hover: #1d4ed8;--primary-light: #dbeafe;--primary-soft: #eff6ff;--teal: #0d9488;--teal-light: #ccfbf1;--success: #059669;--success-light: #d1fae5;--danger: #dc2626;--danger-light: #fee2e2;--danger-hover: #b91c1c;--warning: #d97706;--warning-light: #fef3c7;--muted: #64748b;--border: #e2e8f0;--border-focus: #93c5fd;--text: #0f172a;--text-secondary: #475569;--bg: #f1f5f9;--surface: #ffffff;--shadow-xs: 0 1px 2px rgba(15,23,42,.06);--shadow-sm: 0 2px 8px rgba(15,23,42,.07), 0 1px 2px rgba(15,23,42,.04);--shadow: 0 4px 20px rgba(15,23,42,.08), 0 1px 4px rgba(15,23,42,.04);--shadow-lg: 0 12px 40px rgba(15,23,42,.12), 0 2px 8px rgba(15,23,42,.06);--radius-xs: 6px;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow-x:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none;color:inherit}button{font-family:inherit}h1,h2,h3,h4{font-weight:700;line-height:1.3;letter-spacing:-.01em;color:var(--text)}.input{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:.88rem;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease;outline:none;appearance:none}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1f}.input::placeholder{color:#94a3b8}.input:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed;border-color:#f1f5f9}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--primary);color:#fff;padding:10px 20px;border:1.5px solid transparent;border-radius:var(--radius);cursor:pointer;font-weight:600;font-size:.88rem;font-family:inherit;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .1s ease;box-shadow:var(--shadow-xs);white-space:nowrap}.btn:hover{background:var(--primary-hover);box-shadow:var(--shadow-sm)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.secondary{background:var(--surface);color:var(--text-secondary);border-color:var(--border);box-shadow:none}.btn.secondary:hover{background:var(--bg);color:var(--text);border-color:#cbd5e1}.btn.ghost{background:transparent;color:var(--primary);border-color:transparent;box-shadow:none}.btn.ghost:hover{background:var(--primary-soft)}.btn.danger{background:var(--danger);border-color:var(--danger)}.btn.danger:hover{background:var(--danger-hover)}.btn.success{background:var(--success)}.btn.small{padding:6px 12px;font-size:.8rem;border-radius:var(--radius-sm)}.btn.icon{padding:8px;border-radius:var(--radius-sm)}.card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-xs);padding:24px}.table{width:100%;border-collapse:collapse}.table thead tr{background:#f8fafc}.table th{text-align:left;padding:10px 14px;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600;border-bottom:2px solid var(--border);white-space:nowrap}.table td{padding:12px 14px;border-bottom:1px solid #f1f5f9;font-size:.88rem;color:var(--text)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:#fafbff}.small-muted{color:var(--muted);font-size:12px}.total-row{display:flex;justify-content:space-between;padding:8px 0}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:600}.badge.blue{background:var(--primary-light);color:var(--primary-hover)}.badge.green{background:var(--success-light);color:var(--success)}.badge.red{background:var(--danger-light);color:var(--danger)}.section-divider{height:1px;background:linear-gradient(90deg,var(--border),transparent);margin:20px 0}@media print{.header-shell,.app-footer,.no-print{display:none!important}.container{padding:0!important;margin:0!important}@page{margin:8mm 10mm;size:A4 portrait}}@media (max-width: 960px){.billing-grid{grid-template-columns:1fr}}.req{color:#dc2626;font-weight:700;font-size:.9em;line-height:1;flex-shrink:0}.field-error{display:flex;align-items:center;gap:4px;color:#dc2626;font-size:.73rem;font-weight:500;margin-top:3px;animation:errSlideIn .15s ease}@keyframes errSlideIn{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.input.ng-invalid.ng-touched,input.ng-invalid.ng-touched,select.ng-invalid.ng-touched{border-color:#dc2626!important;box-shadow:0 0 0 3px #dc26261a!important}
