*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #1a3c6e;--primary-dark: #122b52;--primary-light: #e8eef7;--accent: #c8a84b;--accent-light: #faf3e0;--accent-dark: #a0832e;--success: #1e6b45;--success-light: #e6f4ed;--danger: #b91c1c;--danger-light: #fee2e2;--warning: #92600a;--warning-light: #fef3cd;--blue: #1a3c6e;--blue-light: #e8eef7;--ink: #1a1a2e;--ink-2: #2d3748;--ink-3: #718096;--paper: #f7f8fc;--paper-2: #eef0f6;--paper-3: #d8dce8;--white: #ffffff;--font-display: "Georgia", "Times New Roman", serif;--font-body: "Segoe UI", "Helvetica Neue", Arial, sans-serif;--radius: 8px;--radius-lg: 12px;--shadow: 0 2px 8px rgba(26,60,110,.08), 0 1px 3px rgba(26,60,110,.06);--shadow-lg: 0 8px 32px rgba(26,60,110,.12);--transition: .18s ease}[data-theme=dark]{--primary: #5b8dee;--primary-dark: #3a6fd8;--primary-light: #1e2a3a;--accent: #c8a84b;--accent-light: #2a2210;--accent-dark: #a0832e;--success: #34d399;--success-light: #0d2d1e;--danger: #f87171;--danger-light: #2d0f0f;--warning: #fbbf24;--warning-light: #2d1f05;--blue: #5b8dee;--blue-light: #1e2a3a;--ink: #e2e8f0;--ink-2: #cbd5e0;--ink-3: #718096;--paper: #0f1117;--paper-2: #1a1f2e;--paper-3: #2d3748;--white: #1a1f2e;--shadow: 0 2px 8px rgba(0,0,0,.4), 0 1px 3px rgba(0,0,0,.3);--shadow-lg: 0 8px 32px rgba(0,0,0,.5)}html{font-size:17px}body{font-family:var(--font-body);background:var(--paper);color:var(--ink);line-height:1.65;min-height:100vh;transition:background .2s,color .2s}h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.25;color:var(--primary)}h1{font-size:2.1rem}h2{font-size:1.6rem}h3{font-size:1.2rem}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline;color:var(--accent-dark)}button{font-family:var(--font-body);cursor:pointer;border:none;outline:none;transition:all var(--transition)}input,textarea,select{font-family:var(--font-body);font-size:1rem;border:1.5px solid var(--paper-3);border-radius:var(--radius);padding:10px 14px;background:var(--white);color:var(--ink);transition:border-color var(--transition),background .2s;width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1a3c6e1a}[data-theme=dark] input:focus,[data-theme=dark] textarea:focus,[data-theme=dark] select:focus{box-shadow:0 0 0 3px #5b8dee33}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:var(--radius);font-weight:600;transition:all var(--transition);text-transform:uppercase;letter-spacing:.05em;font-size:.88rem}.btn-primary{background:var(--primary);color:#fff;border:2px solid var(--primary)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow)}.btn-secondary{background:var(--white);color:var(--primary);border:2px solid var(--primary)}.btn-secondary:hover{background:var(--primary-light)}.btn-accent{background:var(--accent);color:#fff;border:2px solid var(--accent)}.btn-accent:hover{background:var(--accent-dark);border-color:var(--accent-dark);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--ink-3);border:2px solid transparent}.btn-ghost:hover{background:var(--paper-2);color:var(--ink)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.card{background:var(--white);border:1px solid var(--paper-3);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow);transition:background .2s,border-color .2s}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:100px;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.badge-success{background:var(--success-light);color:var(--success)}.badge-danger{background:var(--danger-light);color:var(--danger)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-blue{background:var(--blue-light);color:var(--blue)}.badge-neutral{background:var(--paper-2);color:var(--ink-3)}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:.78rem;font-weight:600;background:var(--paper-2);color:var(--ink-2)}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);padding:24px}.auth-card{background:var(--white);border-radius:var(--radius-lg);padding:40px;width:100%;max-width:420px;box-shadow:0 20px 60px #0003}.divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--ink-3);font-size:.82rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--paper-3)}.plan-card{border:2px solid var(--paper-3);border-radius:var(--radius-lg);padding:28px 24px;cursor:pointer;transition:all .2s;background:var(--white)}.plan-card:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:var(--shadow-lg)}.plan-card.selected{border-color:var(--accent);background:var(--accent-light)}.plan-price{font-family:var(--font-display);font-size:2.4rem;color:var(--primary);line-height:1;font-weight:700}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-in{animation:fadeIn .3s ease forwards}.spinner{animation:spin .8s linear infinite}.pulsing{animation:pulse 1.5s ease infinite}.section-header{border-left:4px solid var(--accent);padding-left:14px;margin-bottom:24px}.section-header h2{color:var(--primary)}.stat-card{background:var(--white);border-radius:var(--radius-lg);padding:20px 24px;border-top:4px solid var(--primary);box-shadow:var(--shadow)}@media print{.print-hide,aside,button,.btn{display:none!important}.print-only,.print-show{display:block!important}@page{size:A4;margin:0}body{padding:14mm 12mm!important;background:#fff!important;font-size:11pt;color:#000!important}.card{background:#fff!important;border:1px solid #d1d5db!important;color:#000!important;break-inside:avoid}.question-result-card{break-inside:avoid;page-break-inside:avoid}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important;color:#000!important}body>div,#root>div{display:block!important}aside{display:none!important}main,.print-main{margin:0!important;padding:0!important;max-width:100%!important}}
