:root{--brand-50: #eef2ff;--brand-100: #e0e7ff;--brand-500: #6366f1;--brand-600: #4f46e5;--brand-700: #4338ca;--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--success-500: #10b981;--success-bg: #ecfdf5;--success-border: #a7f3d0;--warning-500: #f59e0b;--warning-bg: #fffbeb;--warning-border: #fde68a;--danger-500: #ef4444;--danger-600: #dc2626;--danger-bg: #fef2f2;--danger-border: #fecaca;--info-500: #0ea5e9;--info-bg: #f0f9ff;--bg-page: var(--gray-50);--bg-surface: #ffffff;--bg-sidebar: var(--gray-900);--bg-sidebar-hover: rgba(255, 255, 255, .06);--bg-sidebar-active: rgba(99, 102, 241, .18);--text-primary: var(--gray-900);--text-secondary: var(--gray-500);--text-on-dark: #e2e8f0;--text-on-dark-muted: #94a3b8;--border-color: var(--gray-200);--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 22px;--text-2xl: 28px;--text-3xl: 34px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-8: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .14);--transition: .16s cubic-bezier(.4, 0, .2, 1);--color-bg: var(--bg-page);--color-surface: var(--bg-surface);--color-border: var(--border-color);--color-primary: var(--brand-600);--color-text: var(--text-primary);--color-muted: var(--text-secondary)}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);font-size:var(--text-md);color:var(--text-primary);background-color:var(--bg-page);-webkit-font-smoothing:antialiased}a{color:var(--brand-600);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--brand-700)}h1,h2,h3{margin:0;line-height:1.25}:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}.chart-card:focus-visible,.hbar:focus-visible,.hbar-row:focus-visible,.donut-wrapper:focus-visible{outline:none}.recharts-wrapper *:focus,.donut-wrapper *:focus{outline:none}.text-muted{color:var(--text-secondary);font-size:var(--text-sm)}.app-shell{display:flex;min-height:100vh}.app-sidebar{width:240px;flex-shrink:0;position:sticky;top:0;height:100vh}.app-content{flex:1;min-width:0;display:flex;flex-direction:column}.app-main{flex:1;padding:var(--space-5) var(--space-6);max-width:1280px;width:100%;margin:0 auto}.sidebar{display:flex;flex-direction:column;height:100vh;padding:var(--space-5) var(--space-3);background-color:var(--bg-sidebar);overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-3) var(--space-5);border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-logo{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--brand-500),var(--brand-700));color:#fff;font-weight:700;font-size:var(--text-sm);letter-spacing:.02em}.sidebar-brand-name{color:#fff;font-weight:600;font-size:var(--text-md)}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:var(--space-5);padding-top:var(--space-5)}.sidebar-group{display:flex;flex-direction:column;gap:2px}.sidebar-group-label{padding:0 var(--space-3) var(--space-2);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-on-dark-muted)}.sidebar-link{display:flex;align-items:center;gap:var(--space-3);padding:10px var(--space-3);border-radius:var(--radius-md);color:var(--text-on-dark);font-size:var(--text-sm);font-weight:500;transition:background-color var(--transition),color var(--transition)}.sidebar-link:hover{background-color:var(--bg-sidebar-hover);color:#fff}.sidebar-link-active,.sidebar-link-active:hover{background-color:var(--bg-sidebar-active);color:#c7d2fe}.sidebar-footer{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid rgba(255,255,255,.08)}.sidebar-user{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:inherit;text-decoration:none;transition:background-color var(--transition)}.sidebar-user:hover{background-color:var(--gray-700);color:inherit}.sidebar-user-name{color:var(--text-on-dark);font-size:var(--text-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-logout{color:var(--text-on-dark-muted);justify-content:flex-start}.sidebar-logout:hover{color:#fff;background-color:var(--bg-sidebar-hover)}.sidebar-overlay{display:none}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--space-4);height:60px;padding:0 var(--space-6);background-color:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-color)}.topbar-menu-button{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);cursor:pointer}.topbar-menu-button:hover{background-color:var(--gray-100)}.topbar-breadcrumb{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.topbar-crumb-root{color:var(--text-secondary)}.topbar-crumb-current{color:var(--text-primary);font-weight:600}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-2)}.topbar-help-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--surface-primary);color:var(--text-secondary);cursor:pointer;transition:background-color var(--transition),color var(--transition)}.topbar-help-button:hover{background-color:var(--gray-100);color:var(--text-primary)}.topbar-user{display:flex;align-items:center;gap:var(--space-3);color:inherit;text-decoration:none;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);transition:background-color var(--transition)}.topbar-user:hover{background-color:var(--gray-100);color:inherit}.topbar-user-name{font-size:var(--text-sm);font-weight:500}.topbar-role{text-transform:uppercase}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.page-title{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em}.page-title-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-md);background-color:var(--brand-50);color:var(--brand-600)}.page-subtitle{margin:var(--space-1) 0 0;color:var(--text-secondary);font-size:var(--text-sm)}.page-header-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.breadcrumb{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);font-size:var(--text-xs);color:var(--text-secondary)}.breadcrumb-sep{color:var(--gray-300)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:9px var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background-color var(--transition),border-color var(--transition),color var(--transition),box-shadow var(--transition)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background-color:var(--brand-600);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:var(--brand-700)}.btn-secondary{background-color:var(--bg-surface);border-color:var(--border-color);color:var(--gray-700)}.btn-secondary:hover:not(:disabled){border-color:var(--gray-300);background-color:var(--gray-50)}.btn-ghost{background-color:transparent;color:var(--gray-700)}.btn-ghost:hover:not(:disabled){background-color:var(--gray-100)}.btn-danger{background-color:var(--danger-500);color:#fff}.btn-danger:hover:not(:disabled){background-color:var(--danger-600)}.btn-sm{padding:6px var(--space-3);font-size:var(--text-xs)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-4)}.field-label{font-size:var(--text-sm);font-weight:500;color:var(--gray-700)}.field-control{width:100%;padding:9px var(--space-3);border:1px solid var(--border-color);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-sm);color:var(--text-primary);background-color:var(--bg-surface);transition:border-color var(--transition),box-shadow var(--transition)}.field-control:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}.field-error .field-control{border-color:var(--danger-500)}.field-error .field-control:focus{box-shadow:0 0 0 3px var(--danger-bg)}.color-field{display:flex;align-items:center;gap:var(--space-2)}.color-field__swatch{width:40px;height:40px;flex-shrink:0;padding:0;border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;box-shadow:inset 0 0 0 2px var(--bg-surface);transition:border-color var(--transition),box-shadow var(--transition)}.color-field__swatch:hover{border-color:var(--brand-500)}.color-field__swatch:focus-visible{outline:none;border-color:var(--brand-500);box-shadow:inset 0 0 0 2px var(--bg-surface),0 0 0 3px var(--brand-100)}.color-field__picker{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.color-field__hex{flex:1;min-width:0;font-family:ui-monospace,SF Mono,Cascadia Code,Menlo,monospace;text-transform:lowercase}.field-hint{font-size:var(--text-xs);color:var(--text-secondary)}.field-error-message{font-size:var(--text-xs);color:var(--danger-600);font-weight:500}.card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow-x:auto}.card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-color)}.card-title{font-size:var(--text-sm);font-weight:600;color:var(--gray-700);text-transform:uppercase;letter-spacing:.06em}.card-actions{display:flex;align-items:center;gap:var(--space-2)}.card-body{padding:var(--space-5)}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;line-height:1.6}.badge-dot{width:6px;height:6px;border-radius:var(--radius-full);background-color:currentColor}.badge-success{background-color:var(--success-bg);color:#047857}.badge-warning{background-color:var(--warning-bg);color:#b45309}.badge-danger{background-color:var(--danger-bg);color:var(--danger-600)}.badge-info{background-color:var(--info-bg);color:#0369a1}.badge-brand{background-color:var(--brand-50);color:var(--brand-700)}.badge-neutral{background-color:var(--gray-100);color:var(--gray-500)}.table-wrapper{width:100%;overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table-th{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);background-color:var(--gray-50);border-bottom:1px solid var(--border-color);white-space:nowrap}.table-td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-color);vertical-align:middle}.table tbody tr{transition:background-color var(--transition)}.table tbody tr:hover{background-color:var(--gray-50)}.table tbody tr:last-child .table-td{border-bottom:none}.table-actions{display:flex;align-items:center;gap:var(--space-2)}.table-actions .btn{padding:6px 10px}.table-link{color:var(--brand-600);font-weight:500}.skeleton{display:block;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-200) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}.skeleton-text{height:14px;margin-bottom:var(--space-2)}.skeleton-block{height:120px;border-radius:var(--radius-md)}.skeleton-circle{border-radius:var(--radius-full)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:var(--space-4);background-color:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{width:100%;max-width:440px;background-color:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:modal-in var(--transition) ease}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-color)}.modal-title{font-size:var(--text-lg);font-weight:600}.modal-close{display:grid;place-items:center;width:32px;height:32px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);cursor:pointer}.modal-close:hover{background-color:var(--gray-100);color:var(--text-primary)}.modal-body{padding:var(--space-5)}.modal-message{margin:0;color:var(--gray-700);font-size:var(--text-sm);line-height:1.6}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border-color)}.toast-container{position:fixed;bottom:var(--space-5);right:var(--space-5);z-index:200;display:flex;flex-direction:column;gap:var(--space-2)}.toast{display:flex;align-items:center;gap:var(--space-3);min-width:280px;max-width:400px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background-color:var(--gray-900);color:#fff;font-size:var(--text-sm);box-shadow:var(--shadow-lg);animation:toast-in var(--transition) ease}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast-success{background-color:#065f46}.toast-error{background-color:var(--danger-600)}.toast-message{flex:1}.toast-close{display:grid;place-items:center;border:none;background:transparent;color:#ffffffb3;cursor:pointer;padding:2px}.toast-close:hover{color:#fff}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-5);text-align:center}.empty-state-icon{display:grid;place-items:center;width:64px;height:64px;margin-bottom:var(--space-2);border-radius:var(--radius-full);background-color:var(--gray-100);color:var(--gray-400)}.empty-state-title{margin:0;font-weight:600;color:var(--gray-700)}.empty-state-description{margin:0;max-width:360px;font-size:var(--text-sm);color:var(--text-secondary)}.empty-state-action{margin-top:var(--space-3)}.avatar{display:inline-grid;place-items:center;border-radius:var(--radius-full);color:#fff;font-weight:600;flex-shrink:0}.avatar-md{width:36px;height:36px;font-size:var(--text-sm)}.avatar-sm{width:28px;height:28px;font-size:var(--text-xs)}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-5)}.kpi-grid--3{grid-template-columns:repeat(3,1fr)}.kpi-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-5);background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.kpi-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.kpi-value{font-size:var(--text-2xl);font-weight:700;color:var(--gray-900);letter-spacing:-.02em}.kpi-hint{font-size:var(--text-xs);color:var(--text-secondary)}.dashboard-sections{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);margin-bottom:var(--space-4)}.chart-card{padding:var(--space-5);background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow-x:auto}.chart-card h3,.chart-card .card-title{margin:0 0 var(--space-4);font-size:var(--text-sm);font-weight:600;color:var(--gray-700);text-transform:uppercase;letter-spacing:.06em}.dashboard-timeline-chart{margin-bottom:var(--space-4)}.chart-empty{margin:var(--space-2) 0;color:var(--text-secondary);font-size:var(--text-sm)}.hbar{display:flex;flex-direction:column;gap:10px}.hbar-row{display:grid;grid-template-columns:140px 1fr auto;align-items:center;gap:12px}.hbar-label{font-size:var(--text-sm);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.hbar-track{height:24px;background-color:var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.hbar-fill{height:100%;border-radius:var(--radius-sm);transition:width .4s ease}.hbar-value{min-width:28px;font-size:var(--text-sm);font-weight:600;color:var(--text-primary);text-align:right;font-variant-numeric:tabular-nums}.chart-hint{margin:0 0 var(--space-3);color:var(--text-secondary);font-size:var(--text-sm)}.donut-wrapper{max-width:260px;margin:0 auto}.chart-legend{list-style:none;margin:var(--space-2) 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:var(--text-sm)}.chart-legend li{display:flex;align-items:center;gap:var(--space-2)}.chart-legend strong{margin-left:auto}.legend-dot{width:10px;height:10px;border-radius:var(--radius-full);flex-shrink:0}.dashboard-tables{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:var(--space-4)}.dashboard-tables .data-table th,.dashboard-tables .data-table td{padding:10px var(--space-3)}.chart-card .data-table{width:100%}.chart-card .data-table tbody td{text-align:center}.chart-card .data-table th:first-child,.chart-card .data-table td:first-child{text-align:left}.chart-card .data-table th:last-child,.chart-card .data-table td:last-child{text-align:right}.shortcut-row{display:flex;gap:var(--space-2)}.status-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600}.status-badge.draft,.status-badge.cancelled,.status-badge.canceled{background-color:var(--gray-100);color:var(--gray-500)}.status-badge.scheduled{background-color:var(--info-bg);color:#0369a1}.status-badge.in_progress,.status-badge.inprogress{background-color:var(--warning-bg);color:#b45309}.status-badge.completed{background-color:var(--success-bg);color:#047857}.tag-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-full);color:#fff;font-size:var(--text-xs);font-weight:600}.auth-page{display:grid;place-items:center;min-height:100vh;padding:var(--space-5)}.auth-card{display:flex;flex-direction:column;gap:var(--space-3);width:100%;max-width:420px;padding:var(--space-6);background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.form-card-wide{max-width:860px}.auth-note{color:var(--text-secondary);font-size:var(--text-sm)}.auth-error{padding:var(--space-2) var(--space-3);background-color:var(--danger-bg);border:1px solid var(--danger-border);border-radius:var(--radius-sm);color:var(--danger-600);font-size:var(--text-sm)}.auth-subtitle{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-4);line-height:1.5}.auth-link{display:block;text-align:center;color:var(--brand-600);font-size:var(--text-sm);text-decoration:none;margin-top:var(--space-3)}.auth-link:hover{color:var(--brand-700);text-decoration:underline}.auth-card .field{margin-bottom:var(--space-2)}.login-split{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-brand{display:flex;flex-direction:column;justify-content:center;gap:var(--space-4);padding:var(--space-8);background:linear-gradient(150deg,var(--brand-700),var(--gray-900));color:#fff}.login-brand-logo{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:var(--radius-md);background:#ffffff1f;font-weight:700}.login-brand h1{font-size:var(--text-2xl);letter-spacing:-.02em}.login-brand p{margin:0;color:var(--text-on-dark-muted);font-size:var(--text-sm);line-height:1.7}.login-brand ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-on-dark)}.login-brand li{display:flex;align-items:center;gap:var(--space-3)}.login-form-side{display:grid;place-items:center;padding:var(--space-5)}.register-card{max-width:480px;overflow:hidden}.register-stepper{display:flex;align-items:center;justify-content:center;gap:0;padding:var(--space-2) 0}.register-stepper-item{display:flex;align-items:center}.register-stepper-dot{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-full);background-color:var(--gray-200);color:var(--gray-500);font-size:var(--text-xs);font-weight:600;transition:background-color .3s,color .3s;flex-shrink:0}.register-stepper-item.active .register-stepper-dot{background-color:var(--brand-600);color:#fff}.register-stepper-item.completed .register-stepper-dot{background-color:var(--success-500);color:#fff}.register-stepper-line{width:32px;height:2px;background-color:var(--gray-200);transition:background-color .3s}.register-stepper-line.filled{background-color:var(--success-500)}.register-step-container{position:relative;overflow:hidden;min-height:240px}.register-step-wrapper{width:100%}.register-step{display:flex;flex-direction:column;gap:var(--space-3)}.register-step-header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-2);margin-bottom:var(--space-3)}.register-step-header h2{font-size:var(--text-lg);font-weight:600;margin:0}.register-step-header p{color:var(--text-secondary);font-size:var(--text-sm);margin:0}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.slide-in-right{animation:slideInRight .35s cubic-bezier(.25,.46,.45,.94) forwards}.slide-in-left{animation:slideInLeft .35s cubic-bezier(.25,.46,.45,.94) forwards}.register-nav{display:flex;align-items:center;gap:var(--space-3)}.register-nav-spacer{flex:1}.register-plan-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.register-plan-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background-color:var(--bg-surface);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:border-color .2s,box-shadow .2s;font-family:inherit;color:inherit}.register-plan-card:hover{border-color:var(--brand-300)}.register-plan-card.selected{border-color:var(--brand-600);box-shadow:0 0 0 3px var(--brand-100)}.register-plan-card h3{font-size:var(--text-base);font-weight:600;margin:0}.register-plan-card p{font-size:var(--text-xs);color:var(--text-secondary);margin:0}.register-plan-card ul{list-style:none;padding:0;margin:var(--space-2) 0 0;display:flex;flex-direction:column;gap:var(--space-1)}.register-plan-card li{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-secondary)}.register-plan-badge{display:inline-block;padding:2px var(--space-2);background-color:var(--gray-100);border-radius:var(--radius-sm);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-600);align-self:flex-start}.register-plan-badge--pro{background-color:var(--brand-100);color:var(--brand-700)}.register-plan-trial{font-size:10px;color:var(--text-secondary);font-style:italic}.auth-register-link{text-align:center;font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-2)}.auth-register-link a{color:var(--brand-600);text-decoration:none;font-weight:500}.auth-register-link a:hover{text-decoration:underline;color:var(--brand-700)}.filter-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.filter-bar label{font-size:var(--text-sm);color:var(--text-secondary)}.filter-bar .field-control,.filter-bar select,.filter-bar input{max-width:260px}.search-input{position:relative;flex:1;max-width:320px}.question-select{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.question-select-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-surface);transition:border-color var(--transition),background-color var(--transition)}.question-select-item.selected{border-color:var(--brand-500);background-color:var(--brand-50)}.question-select-order{display:grid;place-items:center;width:26px;height:26px;border-radius:var(--radius-full);background-color:var(--brand-600);color:#fff;font-size:var(--text-xs);font-weight:600;flex-shrink:0}.question-select-item:not(.selected) .question-select-order{background-color:var(--gray-200);color:var(--gray-500)}.question-select-content{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.question-select-score{font-size:var(--text-xs);color:var(--text-secondary)}.question-select-controls{display:flex;gap:var(--space-1)}.question-order-hint{margin:0 0 var(--space-2);font-size:var(--text-sm)}.question-drag-handle{display:grid;place-items:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--radius-md);background-color:transparent;color:var(--gray-400);cursor:grab;flex-shrink:0;touch-action:none;transition:background-color var(--transition),color var(--transition)}.question-drag-handle:hover:not(:disabled){background-color:#0f172a0f;color:var(--gray-500)}.question-drag-handle:active:not(:disabled){cursor:grabbing}.question-drag-handle:disabled{cursor:not-allowed;opacity:.45}.question-select-item.dragging{position:relative;z-index:2;box-shadow:var(--shadow-md);opacity:.9}.interview-detail-info{display:flex;flex-direction:column;margin-bottom:var(--space-5);background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.detail-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border-color)}.detail-row:last-child{border-bottom:none}.detail-label{width:120px;flex-shrink:0;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.interview-detail-section{margin-bottom:var(--space-5);padding:var(--space-5);background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.interview-detail-section h2{margin:0 0 var(--space-4);font-size:var(--text-lg);font-weight:600}.interview-detail-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.realtime-progress{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-full);background-color:var(--info-bg);color:#0369a1;font-size:var(--text-xs);font-weight:600;line-height:1.6;white-space:nowrap}.realtime-progress-dot{width:6px;height:6px;border-radius:var(--radius-full);background-color:currentColor;animation:realtime-dot-pulse 1.4s ease-in-out infinite}.realtime-progress.is-complete{background-color:var(--success-bg);color:#047857}.realtime-progress.is-complete .realtime-progress-dot{animation:none}@keyframes realtime-dot-pulse{0%,to{opacity:1}50%{opacity:.35}}.interview-questions{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-5)}.question-card{padding:var(--space-5);background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.question-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.question-order{font-size:var(--text-sm);font-weight:700;color:var(--brand-600)}.question-id{font-size:var(--text-xs);color:var(--gray-400);font-family:monospace}.question-display{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background-color:var(--gray-50);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.question-title{font-size:var(--text-md);font-weight:700;color:var(--gray-900);margin:0}.question-body{font-size:var(--text-sm);color:var(--gray-700);line-height:1.6;margin:0}.question-max-score{font-size:var(--text-xs);font-weight:600;color:var(--brand-600)}.question-meta{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);font-size:var(--text-xs);color:var(--text-secondary)}.question-score{font-size:var(--text-xs);color:var(--text-secondary);font-weight:500}.question-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.answer-display{padding:var(--space-3) var(--space-4);background-color:var(--gray-50);border:1px solid var(--border-color);border-radius:var(--radius-md)}.answer-content{margin:0 0 var(--space-2);font-size:var(--text-sm);line-height:1.6;white-space:pre-wrap}.answer-date{font-size:var(--text-xs);color:var(--text-secondary)}.answer-pending{color:var(--text-secondary);font-size:var(--text-sm);font-style:italic}.answer-status-badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:var(--radius-full);background-color:var(--success-bg);color:#047857;font-size:var(--text-xs);font-weight:600}.answer-form{display:flex;flex-direction:column;gap:var(--space-3)}.answer-form textarea{width:100%;padding:var(--space-3);border:1px solid var(--border-color);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-sm);resize:vertical}.answer-form textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}.grade-card{margin-top:var(--space-3);padding:var(--space-4);border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--gray-50)}.grade-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3)}.grade-scores{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-3)}.grade-score-item{display:flex;flex-direction:column;gap:2px}.grade-score-item.final .grade-score-value{color:var(--brand-600)}.grade-score-label{font-size:var(--text-xs);color:var(--text-secondary)}.grade-score-value{font-size:var(--text-md);font-weight:700}.grade-feedback{font-size:var(--text-sm);color:var(--gray-700);line-height:1.6}.grade-feedback-label{display:block;font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1)}.ai-grading-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:600;border:1px solid var(--border-color);color:var(--text-secondary);line-height:1.4}.ai-grading-badge.processing-pulse{color:var(--brand-600);border-color:var(--brand-500);animation:ai-badge-pulse 1.4s ease-in-out infinite}@keyframes ai-badge-pulse{0%,to{opacity:1}50%{opacity:.4}}.grade-date{font-size:var(--text-xs);color:var(--gray-400)}.grade-section{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-color)}.grade-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.manual-grade-form{display:flex;flex-direction:column;gap:var(--space-3)}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:var(--text-sm);font-weight:500;color:var(--gray-700)}.form-group input,.form-group textarea,.form-group select{padding:9px var(--space-3);border:1px solid var(--border-color);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-sm)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}.form-error{font-size:var(--text-xs);color:var(--danger-600)}.form-actions{display:flex;gap:var(--space-2)}.score-summary{display:flex;align-items:center;gap:var(--space-4)}.score-summary-main{display:flex;align-items:baseline;gap:6px}.score-summary-value{font-size:var(--text-xl);font-weight:700;color:var(--brand-600)}.score-summary-max{color:var(--text-secondary);font-size:var(--text-sm)}.score-summary-percent{font-size:var(--text-xs);color:var(--text-secondary)}.score-summary-divider{width:1px;height:28px;background-color:var(--border-color)}.score-summary-detail{font-size:var(--text-xs);color:var(--text-secondary)}.disclosure{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.disclosure__trigger{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-4) var(--space-5);background:none;border:none;cursor:pointer;text-align:left;font:inherit;color:var(--text-primary)}.disclosure__trigger:hover{background-color:var(--gray-50)}.disclosure__trigger:focus-visible{outline:none;box-shadow:inset 0 0 0 3px var(--brand-100)}.disclosure__title{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0;font-size:var(--text-md);font-weight:600}.disclosure__meta{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.disclosure__chevron{flex-shrink:0;color:var(--text-secondary)}.disclosure__content{padding:0 var(--space-5) var(--space-5)}.disclosure__content[hidden]{display:none}@media(max-width:480px){.disclosure__trigger{flex-wrap:wrap;row-gap:var(--space-2)}.disclosure__title{flex:1 1 100%}}.public-interview{max-width:800px;margin:0 auto;padding:var(--space-6) var(--space-5)}.public-interview h1{margin-bottom:var(--space-5);font-size:var(--text-2xl)}.public-progress{padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5);background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);font-size:var(--text-sm);font-weight:500}.public-progress-bar{height:6px;margin-top:var(--space-2);border-radius:var(--radius-full);background-color:var(--gray-100);overflow:hidden}.public-progress-fill{height:100%;border-radius:var(--radius-full);background-color:var(--brand-500);transition:width var(--transition)}.public-submit-all{display:flex;justify-content:center;padding:var(--space-5) 0}.public-submit-all .btn{width:100%;display:flex}.interview-questions .disclosure{margin-bottom:var(--space-4)}.interview-question-card{padding:var(--space-5);margin-bottom:var(--space-4);background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.interview-question-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.interview-question-number{font-size:var(--text-sm);font-weight:700;color:var(--brand-600)}.interview-question-max{font-size:var(--text-xs);color:var(--text-secondary);font-weight:500}.interview-question-title{margin:0 0 var(--space-1);font-size:var(--text-md);font-weight:600}.interview-question-body{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--gray-700);line-height:1.6}.interview-question-submitted{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:600;color:#047857}.interview-completed-banner{padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4);background-color:var(--success-bg);border:1px solid var(--success-border);border-radius:var(--radius-lg);color:#065f46;font-weight:500}.interview-not-completed{padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4);background-color:var(--warning-bg);border:1px solid var(--warning-border);border-radius:var(--radius-lg);color:#b45309;font-weight:500}.public-interview{--brand-bg: var(--bg-page);--brand-surface: var(--bg-surface);--brand-surface-hover: var(--gray-50);--brand-text: var(--text-primary);--brand-body: var(--gray-700);--brand-text-muted: var(--text-secondary);--brand-primary: var(--brand-600);--brand-primary-hover: var(--brand-700);--brand-on-primary: #ffffff;--brand-border: var(--border-color);--brand-link: var(--brand-600);--brand-progress-track: var(--gray-100);--brand-progress-fill: var(--brand-500);--brand-banner-bg: var(--success-bg);--brand-banner-text: #065f46;--brand-banner-border: var(--success-border);--brand-chip-bg: transparent;--brand-chip-text: var(--brand-600);--brand-input-bg: #1e1e2e;--brand-input-text: #cdd6f4;--brand-input-border: #313244;--brand-input-label: #a6adc8;--brand-focus: #89b4fa;--brand-focus-ring: var(--brand-100);--brand-answer-bg: var(--gray-50);--brand-radius: var(--radius-lg);--brand-logo-h: 36px;color:var(--brand-text)}.public-interview:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background-color:var(--brand-bg)}.public-interview .company-logo{display:block;height:var(--brand-logo-h);width:auto;max-width:220px;object-fit:contain;margin-bottom:var(--space-3)}.public-interview .public-progress{background-color:var(--brand-surface);border-color:var(--brand-border)}.public-interview .public-progress-bar{background-color:var(--brand-progress-track)}.public-interview .public-progress-fill{background-color:var(--brand-progress-fill)}.public-interview .disclosure,.public-interview .interview-question-card,.public-interview .question-card{background-color:var(--brand-surface);border-color:var(--brand-border);border-radius:var(--brand-radius)}.public-interview .disclosure__trigger{color:var(--brand-text)}.public-interview .disclosure__trigger:hover{background-color:var(--brand-surface-hover)}.public-interview .disclosure__trigger:focus-visible{box-shadow:inset 0 0 0 3px var(--brand-focus-ring)}.public-interview .interview-question-number,.public-interview .question-order{padding:1px 7px;margin:-1px -7px;border-radius:var(--radius-full);background-color:var(--brand-chip-bg);color:var(--brand-chip-text)}.public-interview .interview-question-max,.public-interview .question-score,.public-interview .answer-pending,.public-interview .loading{color:var(--brand-text-muted)}.public-interview .interview-question-body,.public-interview .rich-text p{color:var(--brand-body)}.public-interview a{color:var(--brand-link)}.public-interview a:hover{color:var(--brand-primary-hover)}.public-interview .interview-completed-banner{background-color:var(--brand-banner-bg);border-color:var(--brand-banner-border);color:var(--brand-banner-text)}.public-interview .btn-primary{background-color:var(--brand-primary);color:var(--brand-on-primary)}.public-interview .btn-primary:hover:not(:disabled){background-color:var(--brand-primary-hover)}.public-interview .btn-secondary{background-color:var(--brand-surface);border-color:var(--brand-border);color:var(--brand-body)}.public-interview .btn-secondary:hover:not(:disabled){border-color:var(--brand-primary);background-color:var(--brand-surface-hover)}.public-interview .modal{background-color:var(--brand-surface)}.public-interview .modal-header,.public-interview .modal-footer{border-color:var(--brand-border)}.public-interview .modal-title{color:var(--brand-text)}.public-interview .modal-message{color:var(--brand-body)}.public-interview .modal-close:hover{background-color:var(--brand-surface-hover);color:var(--brand-text)}.public-interview .answer-display{background-color:var(--brand-answer-bg);border-color:var(--brand-border)}.public-interview .code-textarea-label{background:var(--brand-input-bg);border-color:var(--brand-input-border);color:var(--brand-input-label)}.public-interview .code-textarea{background:var(--brand-input-bg);color:var(--brand-input-text);border-color:var(--brand-input-border)}.public-interview .code-textarea:focus{border-color:var(--brand-focus);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-focus),transparent 85%)}.loading{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8);color:var(--text-secondary);font-size:var(--text-sm)}.error-boundary{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8);text-align:center}.error-boundary h2{font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.error-boundary p{font-size:var(--text-sm);color:var(--text-secondary)}.overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.overview-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.overview-card h3{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.overview-stat{display:flex;align-items:baseline;gap:var(--space-2)}.overview-value{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);line-height:1}.overview-label{font-size:var(--text-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.overview-detail{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);font-size:var(--text-xs);color:var(--text-secondary)}.company-plan-card{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-6);background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);max-width:600px}.plan-info{display:flex;align-items:center;gap:var(--space-4)}.plan-info h3{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.plan-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.plan-badge.free{background-color:var(--gray-100);color:var(--gray-700)}.plan-badge.ai_pro{background-color:var(--brand-100);color:var(--brand-700)}.plan-badge.large{padding:6px 16px;font-size:var(--text-sm)}.plan-features h4{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-2)}.plan-features ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.plan-features li{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-primary)}.feature-status{font-size:var(--text-sm);font-weight:600}.feature-status.enabled{color:var(--success-600, #059669)}.feature-status.disabled{color:var(--gray-400)}.plan-toggle{padding-top:var(--space-3);border-top:1px solid var(--border-color)}.ai-info{padding:var(--space-4);background-color:var(--brand-50, #eef2ff);border:1px solid var(--brand-200, #c7d2fe);border-radius:var(--radius-md)}.ai-info p{margin:0;font-size:var(--text-sm);color:var(--gray-700);line-height:1.6}@media(max-width:1024px){.app-sidebar{position:fixed;z-index:60;transform:translate(-100%);transition:transform var(--transition)}.app-sidebar-open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background-color:#0f172a73}.topbar-menu-button{display:inline-flex}.app-main{padding:var(--space-4)}.overview-grid{grid-template-columns:repeat(2,1fr)}.profile-plan-grid{grid-template-columns:1fr}.revenue-kpi-grid{grid-template-columns:repeat(2,1fr)}}.profile-section{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-5);box-shadow:var(--shadow-sm)}.profile-section-title{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-5);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-color)}.profile-form{display:flex;flex-direction:column;gap:var(--space-4);max-width:560px}.profile-avatar-row{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-3)}.profile-avatar{width:56px;height:56px;border-radius:var(--radius-full);background-color:var(--brand-100);color:var(--brand-700);display:grid;place-items:center;font-size:var(--text-xl);font-weight:700;flex-shrink:0}.profile-identity{display:flex;flex-direction:column;gap:var(--space-1)}.profile-name{font-size:var(--text-lg);font-weight:600}.profile-email{font-size:var(--text-sm);color:var(--text-secondary)}.profile-readonly{display:flex;flex-direction:column;gap:var(--space-3)}.profile-readonly-field{display:flex;flex-direction:column;gap:var(--space-1)}.profile-readonly-label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.profile-readonly-value{font-size:var(--text-md);color:var(--text-primary)}.profile-section-title .icon,.profile-section-title svg{vertical-align:middle;margin-right:var(--space-2)}.profile-plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.profile-plan-info{display:flex;flex-direction:column;gap:var(--space-3)}.profile-plan-name{font-size:var(--text-lg);font-weight:600}.profile-plan-features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.profile-plan-features li{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary)}.profile-plan-features li .icon,.profile-plan-features li svg{color:var(--green-500);flex-shrink:0}.profile-trial{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--amber-600);margin-top:var(--space-2)}.profile-token-usage{display:flex;flex-direction:column;gap:var(--space-2)}.profile-token-bar{height:8px;background-color:var(--gray-200);border-radius:var(--radius-full);overflow:hidden}.profile-token-bar-fill{height:100%;background-color:var(--brand-500);border-radius:var(--radius-full);transition:width .3s ease}.profile-token-text{font-size:var(--text-sm);color:var(--text-secondary)}.revenue-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.revenue-kpi-card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}.revenue-kpi-label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.revenue-kpi-value{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em}.revenue-kpi-skeleton{min-height:80px}.revenue-chart{display:flex;align-items:flex-end;gap:var(--space-2);height:200px;padding-top:var(--space-4)}.revenue-chart-bar-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);height:100%;justify-content:flex-end}.revenue-chart-bar{width:100%;max-width:40px;background-color:var(--brand-500);border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:height .3s ease}.revenue-chart-value,.revenue-chart-label{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap}@media(max-width:768px){.page-header{flex-direction:column}.page-header-actions{width:100%}.page-header-actions .btn{flex:1}.login-split{grid-template-columns:1fr}.login-brand,.topbar-user-name,.topbar-role{display:none}.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-sections,.dashboard-tables,.overview-grid{grid-template-columns:1fr}}.branding-page{max-width:1280px}.branding-layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:var(--space-5);align-items:start}.branding-editor{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.branding-preview{position:sticky;top:var(--space-5)}.branding-preview-frame{display:block;width:100%;height:560px;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-page)}.branding-preview-hint,.branding-preset-hint{margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--text-secondary)}.branding-presets{display:flex;flex-wrap:wrap;gap:var(--space-2)}.branding-color-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-4) var(--space-5)}.branding-transparent-toggle{display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer}.branding-actions{display:flex;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-2)}.branding-invalid-note{margin:calc(-1 * var(--space-2)) 0 0;font-size:var(--text-sm);color:var(--danger-600, #dc2626);text-align:right}.branding-logo-uploader{display:flex;gap:var(--space-5);align-items:flex-start}.branding-logo-preview{display:grid;place-items:center;flex:0 0 140px;width:140px;height:96px;border:1px dashed var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-page);overflow:hidden}.branding-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.branding-logo-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--text-secondary)}.branding-logo-meta{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.branding-logo-hint{margin:0;font-size:var(--text-sm);color:var(--text-secondary)}.branding-logo-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.branding-logo-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.branding-logo-note{margin:0;font-size:var(--text-sm);color:var(--text-secondary)}.branding-logo-error{margin:0;font-size:var(--text-sm);color:#dc2626}.branding-contrast-alert{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background-color:var(--warning-bg);border:1px solid var(--warning-border);border-radius:var(--radius-md);color:#b45309;font-size:var(--text-sm)}.branding-contrast-list{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;list-style:none}.branding-contrast-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm)}.branding-contrast-row:nth-child(2n){background-color:var(--bg-page)}.branding-contrast-label{color:var(--gray-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.branding-contrast-ratio{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.branding-contrast-badge{min-width:96px;padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;text-align:center}.branding-contrast-badge--ok{background-color:var(--success-bg);color:var(--success-text, #065f46);border:1px solid var(--success-border)}.branding-contrast-badge--fail{background-color:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.branding-contrast-badge--neutral{background-color:var(--gray-100);color:var(--text-secondary);border:1px solid var(--border-color)}.profile-branding-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background-color:var(--brand-50);border:1px solid var(--brand-100);border-radius:var(--radius-md);color:var(--brand-700);font-size:var(--text-sm);font-weight:500;transition:background-color var(--transition)}.profile-branding-link:hover{background-color:var(--brand-100)}.profile-branding-link span{flex:1}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);background-color:var(--brand-600);color:#fff;font-size:var(--text-sm)}.preview-toolbar span{display:inline-flex;align-items:center;gap:var(--space-2)}.preview-toolbar a{color:#fff;font-weight:600;text-decoration:underline}@media(max-width:1100px){.branding-layout{grid-template-columns:1fr}.branding-preview{position:static}}@media(max-width:640px){.branding-logo-uploader{flex-direction:column}}.branding-preview-link{font-size:var(--text-sm);font-weight:600}.code-block{background:#1e1e2e;border:1px solid #313244;border-radius:8px;overflow:hidden;margin:12px 0}.code-block-header{display:flex;align-items:center;padding:6px 14px;background:#181825;border-bottom:1px solid #313244;gap:8px}.code-block-lang{font-size:11px;font-weight:600;color:#a6adc8;text-transform:uppercase;letter-spacing:.5px;font-family:JetBrains Mono,Fira Code,monospace}.code-block pre{margin:0;padding:16px;overflow-x:auto;font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;line-height:1.65;background:transparent!important}.code-block code{font-family:inherit;font-size:inherit;background:transparent!important}.rich-text-inline-code{background:#313244;color:#f38ba8;padding:2px 6px;border-radius:4px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.9em}.code-textarea-wrapper{position:relative;margin:12px 0}.code-textarea-label{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;background:#181825;border:1px solid #313244;border-bottom:none;border-radius:8px 8px 0 0;font-size:11px;font-weight:600;color:#a6adc8;text-transform:uppercase;letter-spacing:.5px;font-family:JetBrains Mono,Fira Code,monospace}.code-textarea{width:100%;font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;line-height:1.65;background:#1e1e2e;color:#cdd6f4;border:1px solid #313244;border-radius:0 0 8px 8px;padding:16px;resize:vertical;-moz-tab-size:2;tab-size:2;white-space:pre;overflow-x:auto;min-height:120px}.code-textarea:focus{outline:none;border-color:#89b4fa;box-shadow:0 0 0 2px #89b4fa26}.code-textarea::placeholder{color:#585b70}.code-textarea:disabled{opacity:.6;cursor:not-allowed}.rich-text{line-height:1.7}.rich-text p{margin:0 0 8px}.rich-text p:last-child{margin-bottom:0}
