*,*:before,*:after{box-sizing:border-box}:root{--color-primary: #1261d5;--color-primary-hover: #0f54b8;--color-primary-active: #0c469a;--color-primary-soft: #eaf3ff;--color-accent-teal: #16b3a4;--color-accent-yellow: #f5c53d;--color-n900: #0f172a;--color-n700: #334155;--color-n500: #64748b;--color-n300: #cbd5e1;--color-n100: #f1f5f9;--color-n50: #f8fafc;--color-white: #ffffff;--color-success: #22a55e;--color-success-bg: #ecfdf3;--color-warning: #f59e0b;--color-warning-bg: #fff7e6;--color-error: #e5484d;--color-error-bg: #fef2f2;--color-info: #1261d5;--color-info-bg: #eff6ff;--color-border: #dce4ee;--color-border-light: #edf2f7;--font-display: "Poppins", sans-serif;--font-body: "Inter", sans-serif;--space-4: 4px;--space-8: 8px;--space-12: 12px;--space-16: 16px;--space-24: 24px;--space-32: 32px;--space-48: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-s1: 0 1px 2px rgba(15, 23, 42, .06);--shadow-s2: 0 4px 12px rgba(15, 23, 42, .08);--shadow-s3: 0 8px 24px rgba(15, 23, 42, .12);--transition-fast: .18s ease;--transition-default: .25s ease;--transition-slow: .32s ease;--focus-ring: 0 0 0 3px rgba(18, 97, 213, .18);--color-primary-dark: var(--color-primary-active);--color-text: var(--color-n900);--color-muted: var(--color-n500);--color-bg: var(--color-n50);--color-danger: var(--color-error);--radius: var(--radius-lg);--shadow: var(--shadow-s1)}html,body{margin:0;padding:0;font-family:var(--font-body);font-size:14px;line-height:22px;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--color-n900);line-height:1.25;margin:0 0 var(--space-8)}h1{font-size:40px;line-height:48px;font-weight:700}h2{font-size:32px;line-height:40px;font-weight:600}h3{font-size:24px;line-height:32px;font-weight:600}h4{font-size:20px;line-height:28px;font-weight:600}h5{font-size:16px;line-height:24px;font-weight:600}h6{font-size:14px;line-height:20px;font-weight:600}a{color:var(--color-primary)}:focus-visible{outline:none;box-shadow:var(--focus-ring)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-16);margin-bottom:var(--space-24);flex-wrap:wrap}.page-header h1{font-size:32px;line-height:40px}.card{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-24);box-shadow:var(--shadow-s1);margin-bottom:var(--space-24)}.card h2:first-child{margin-top:0}.auth-card{max-width:440px;margin:var(--space-32) auto;background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-32);box-shadow:var(--shadow-s2)}.auth-card--wide{max-width:560px}.auth-card h1{margin-top:0;font-size:24px;line-height:32px}.subtitle{color:var(--color-muted);margin:0 0 var(--space-24)}.auth-links{margin-top:var(--space-24);text-align:center;font-size:14px;color:var(--color-muted)}.auth-links a{text-decoration:none;font-weight:600}.form-group{margin-bottom:var(--space-16)}.form-group label{display:block;font-size:14px;font-weight:600;margin-bottom:var(--space-8);color:var(--color-text)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit;color:var(--color-n900);background:var(--color-white);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-group input::placeholder,.form-group select::placeholder,.form-group textarea::placeholder{color:var(--color-n500)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:var(--color-n50);border-color:var(--color-border-light);color:#94a3b8;cursor:not-allowed}.form-group textarea{resize:vertical;min-height:80px}.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea,.form-group input.ng-invalid.ng-touched,.form-group select.ng-invalid.ng-touched,.form-group textarea.ng-invalid.ng-touched{border-color:var(--color-error);background:var(--color-error-bg)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-16);align-items:start}.field-error{display:block;font-size:12px;line-height:16px;color:var(--color-error);margin-top:var(--space-4)}.field-hint{display:block;font-size:12px;line-height:16px;color:var(--color-muted);margin-top:var(--space-4)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);min-height:44px;padding:12px 20px;border:1px solid transparent;border-radius:var(--radius-md);font-family:var(--font-body);font-weight:600;font-size:14px;line-height:20px;cursor:pointer;text-decoration:none;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.btn:disabled{cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-white);box-shadow:var(--shadow-s1)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:active:not(:disabled){background:var(--color-primary-active)}.btn-primary:disabled{background:var(--color-n300);color:#94a3b8;box-shadow:none}.btn-secondary{background:transparent;border-color:var(--color-primary);color:var(--color-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-primary-soft)}.btn-secondary:disabled{border-color:var(--color-n300);color:#94a3b8}.btn-danger{background:var(--color-error);color:var(--color-white)}.btn-danger:hover:not(:disabled){background:#d23c41}.btn-ghost{background:transparent;color:var(--color-primary)}.btn-ghost:hover:not(:disabled){background:var(--color-n100)}.btn-block{width:100%}.btn-sm{min-height:36px;padding:8px 12px;font-size:13px}.alert{padding:12px 16px;border-radius:var(--radius-md);margin-bottom:var(--space-16);font-size:14px;border:1px solid transparent}.alert-error{background:var(--color-error-bg);color:#b91c1c;border-color:#fecaca}.alert-success{background:var(--color-success-bg);color:#166534;border-color:#a7f3d0}.alert-warning{background:var(--color-warning-bg);color:#92400e;border-color:#fcd34d}.alert-info{background:var(--color-info-bg);color:#1d4ed8;border-color:#bfdbfe}.badge,.status{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:16px;border:1px solid transparent}.badge--confirmed,.status--confirmed,.badge--completed,.status--completed,.badge--in_progress,.status--in_progress{background:#ecfdf3;border-color:#a7f3d0;color:#166534}.badge--pending_payment,.status--pending_payment,.badge--pending,.status--pending{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.badge--rescheduled,.status--rescheduled,.badge--dispute,.status--dispute,.badge--suspended{background:#fff7e6;border-color:#fcd34d;color:#92400e}.badge--cancelled,.status--cancelled,.badge--rejected{background:#f1f5f9;border-color:#cbd5e1;color:#475569}.badge--no_show,.status--no_show,.badge--failed{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.badge--approved,.badge--main{background:var(--color-primary-soft);border-color:#bfdbfe;color:var(--color-primary-active)}.badge-remote{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#f3e8ff;border:1px solid #d8b4fe;color:#7e22ce}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th,.data-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--color-border)}.data-table th{font-weight:600;color:var(--color-muted);font-size:12px;text-transform:uppercase;letter-spacing:.03em}.data-table tbody tr:hover{background:var(--color-n50)}.muted{color:var(--color-muted);font-size:14px}.empty{text-align:center;color:var(--color-muted);padding:var(--space-32)}code{font-size:13px;background:var(--color-n100);padding:2px 6px;border-radius:var(--radius-sm)}@media(max-width:768px){h1{font-size:32px;line-height:40px}h2{font-size:24px;line-height:32px}}
