:root{--c-bg: #F8FAFC;--c-surface: #FFFFFF;--c-sidebar: #0F172A;--c-sidebar-hover: #1E293B;--c-accent: #2563EB;--c-accent-hover: #1D4ED8;--c-accent-light: #EFF6FF;--c-text: #0F172A;--c-text-secondary: #475569;--c-text-muted: #94A3B8;--c-border: #E2E8F0;--c-border-light: #F1F5F9;--c-border-subtle: rgba(226, 232, 240, .6);--c-success: #059669;--c-success-bg: #ECFDF5;--c-warning: #D97706;--c-warning-bg: #FFFBEB;--c-error: #DC2626;--c-error-bg: #FEF2F2;--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .04), 0 1px 2px -1px rgb(0 0 0 / .04);--shadow-md: 0 4px 8px -2px rgb(0 0 0 / .07), 0 2px 4px -2px rgb(0 0 0 / .04);--shadow-lg: 0 12px 24px -4px rgb(0 0 0 / .08), 0 4px 8px -4px rgb(0 0 0 / .04);--shadow-card-hover: 0 8px 24px -4px rgb(37 99 235 / .08), 0 4px 8px -4px rgb(0 0 0 / .06);--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-xl: 20px;--sidebar-w: 240px;--page-px: 32px;--page-py: 32px;--section-gap: 20px;--card-p: 24px}@media(max-width:1024px){:root{--page-px: 24px;--page-py: 24px}}@media(max-width:768px){:root{--page-px: 16px;--page-py: 20px;--section-gap: 16px;--card-p: 18px}}@media(max-width:480px){:root{--page-px: 12px;--page-py: 16px;--card-p: 14px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-weight:700;line-height:1.25;color:var(--c-text)}h1{font-size:clamp(20px,4vw,26px)}h2{font-size:clamp(16px,3vw,20px)}h3{font-size:16px}h4{font-size:14px}p{line-height:1.6}a{color:var(--c-accent);text-decoration:none}a:hover{text-decoration:underline}ul{list-style:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 18px;font-size:14px;font-weight:600;font-family:inherit;border:1px solid transparent;border-radius:var(--r-md);cursor:pointer;transition:all .15s ease;white-space:nowrap;position:relative;text-decoration:none;min-height:40px}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn--primary{background:var(--c-accent);color:#fff}.btn--primary:hover{background:var(--c-accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn--secondary{background:var(--c-surface);color:var(--c-text);border-color:var(--c-border)}.btn--secondary:hover{border-color:#94a3b8;background:var(--c-bg)}.btn--ghost{background:transparent;color:var(--c-text-secondary)}.btn--ghost:hover{background:var(--c-border-light);color:var(--c-text)}.btn--danger{background:var(--c-error-bg);color:var(--c-error);border-color:#dc262626}.btn--danger:hover{background:var(--c-error);color:#fff}.btn--sm{padding:6px 12px;font-size:13px;min-height:34px}.btn--lg{padding:12px 24px;font-size:15px;min-height:48px}.btn--full{width:100%}.btn--loading{color:transparent!important}.btn--loading:after{content:"";position:absolute;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .65s linear infinite}.btn--loading.btn--secondary:after,.btn--loading.btn--ghost:after{border-color:#00000026;border-top-color:var(--c-accent)}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:13px;font-weight:600;color:var(--c-text-secondary)}.field .field-error{font-size:12px;color:var(--c-error);margin-top:2px}input[type=text],input[type=email],input[type=password],input[type=tel]{width:100%;padding:10px 14px;font-size:14px;font-family:inherit;color:var(--c-text);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);outline:none;transition:border-color .15s,box-shadow .15s;min-height:42px}input[type=text]::placeholder,input[type=email]::placeholder,input[type=password]::placeholder,input[type=tel]::placeholder{color:var(--c-text-muted)}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=tel]:focus{border-color:var(--c-accent);box-shadow:0 0 0 3px #2563eb1a}input[type=text].ng-invalid.ng-touched,input[type=email].ng-invalid.ng-touched,input[type=password].ng-invalid.ng-touched,input[type=tel].ng-invalid.ng-touched{border-color:var(--c-error)}select{min-height:42px}.card{background:var(--c-surface);border-radius:var(--r-lg);border:1px solid var(--c-border-subtle);box-shadow:var(--shadow-sm);padding:var(--card-p)}.card--hover{transition:box-shadow .2s ease,transform .2s ease}.card--hover:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.alert{padding:12px 16px;border-radius:var(--r-md);font-size:13px;font-weight:500;line-height:1.5}.alert--error{background:var(--c-error-bg);color:var(--c-error);border:1px solid rgba(220,38,38,.2)}.alert--success{background:var(--c-success-bg);color:var(--c-success);border:1px solid rgba(5,150,105,.2)}.alert--warning{background:var(--c-warning-bg);color:var(--c-warning);border:1px solid rgba(217,119,6,.2)}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.badge--free{background:#f1f5f9;color:#64748b}.badge--basic{background:var(--c-accent-light);color:var(--c-accent)}.badge--pro{background:#f5f3ff;color:#7c3aed}.badge--success{background:var(--c-success-bg);color:var(--c-success)}.badge--warning{background:var(--c-warning-bg);color:var(--c-warning)}.badge--error{background:var(--c-error-bg);color:var(--c-error)}.progress-track{height:6px;background:var(--c-border-light);border-radius:999px;overflow:hidden}.progress-track .progress-fill{height:100%;border-radius:999px;transition:width .5s ease;background:var(--c-accent)}.progress-track .progress-fill--warning{background:var(--c-warning)}.progress-track .progress-fill--danger{background:var(--c-error)}.table-wrap{border:1px solid var(--c-border);border-radius:var(--r-lg);overflow:hidden;overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;min-width:480px}table th,table td{padding:11px 16px;text-align:left;font-size:13px;border-bottom:1px solid var(--c-border)}table th{background:var(--c-border-light);color:var(--c-text-secondary);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}table tr:last-child td{border-bottom:none}table tr:hover td{background:var(--c-bg)}.modal-backdrop{position:fixed;inset:0;z-index:40;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:16px;overflow-y:auto}.divider{height:1px;background:var(--c-border);margin:20px 0}.page{padding:var(--page-py) var(--page-px)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:var(--section-gap)}.page-header h1{margin-bottom:4px}.text-muted{color:var(--c-text-muted);font-size:13px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--section-gap)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--section-gap)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--section-gap)}@media(max-width:768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}@media(min-width:481px)and (max-width:768px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scoreRingFill{0%{stroke-dashoffset:238.76}}.fade-in{animation:fadeIn .25s ease}.score-ring-arc{animation:scoreRingFill .8s ease-out;transition:stroke-dashoffset .5s ease,stroke .3s ease}
