:root{--color-primary:#6c63ff;--color-primary-hover:#5b52ee;--color-primary-dark:#4a41dd;--color-primary-light:#eeedff;--color-primary-glow:rgba(108,99,255,.4);--color-secondary:#1a1a2e;--color-secondary-hover:#12121f;--color-secondary-light:#2a2a42;--bg-primary:#fff;--bg-secondary:#f8f8fc;--bg-tertiary:#f0f0f8;--bg-elevated:#fff;--bg-card:#fff;--bg-overlay:rgba(26,26,46,.8);--text-primary:#1a1a2e;--text-secondary:#4a4a5e;--text-tertiary:#7a7a8e;--text-muted:#a0a0b0;--border-color:#e4e4ee;--border-subtle:#f0f0f8;--border-light:#e4e4ee;--border-focus:var(--color-primary);--caliber-ic:#60a5fa;--caliber-ec:#f472b6;--caliber-sc:#34d399;--caliber-ic-bg:rgba(96,165,250,.15);--caliber-ec-bg:rgba(244,114,182,.15);--caliber-sc-bg:rgba(52,211,153,.15);--color-success:#22c55e;--color-success-dark:#16a34a;--color-success-bg:rgba(34,197,94,.15);--color-warning:#f59e0b;--color-warning-dark:#d97706;--color-warning-bg:rgba(245,158,11,.15);--color-error:#ef4444;--color-error-dark:#dc2626;--color-error-bg:rgba(239,68,68,.15);--color-info:#3b82f6;--color-info-bg:rgba(59,130,246,.15);--chart-self:#6c63ff;--chart-others:#f472b6;--chart-grid:rgba(0,0,0,.1);--streak-gradient-start:#ff6b35;--streak-gradient-end:#f7931e;--streak-glow:rgba(247,147,30,.3);--glass-bg:hsla(0,0%,100%,.7);--glass-border:hsla(0,0%,100%,.3);--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace;--text-xs:11px;--text-sm:13px;--text-base:15px;--text-md:16px;--text-lg:17px;--text-xl:19px;--text-2xl:22px;--text-3xl:26px;--text-4xl:30px;--text-5xl:36px;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.1;--leading-snug:1.25;--leading-normal:1.4;--leading-relaxed:1.5;--leading-loose:1.6;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-3xl:24px;--radius-full:50%;--radius-pill:9999px;--shadow-xs:0 1px 2px rgba(26,26,46,.04);--shadow-sm:0 2px 8px rgba(26,26,46,.06);--shadow-md:0 4px 16px rgba(26,26,46,.08);--shadow-lg:0 8px 24px rgba(26,26,46,.1);--shadow-xl:0 12px 32px rgba(26,26,46,.12);--shadow-glow:0 4px 20px var(--color-primary-glow);--transition-fast:0.15s ease;--transition-normal:0.2s ease;--transition-slow:0.3s ease;--transition-all:all 0.2s ease;--transition-colors:background-color 0.2s ease,border-color 0.2s ease,color 0.2s ease;--z-base:1;--z-dropdown:10;--z-sticky:50;--z-fixed:100;--z-modal-backdrop:900;--z-modal:1000;--z-tooltip:1100;--z-toast:1200}[data-theme=dark]{--color-primary:#d4af37;--color-primary-hover:#e8c547;--color-primary-dark:#b8962e;--color-primary-light:rgba(212,175,55,.15);--color-primary-glow:rgba(212,175,55,.3);--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-tertiary:#1a1a24;--bg-elevated:#1e1e28;--bg-card:linear-gradient(145deg,#16161e,#0f0f15);--bg-overlay:rgba(0,0,0,.6);--text-primary:#fff;--text-secondary:hsla(0,0%,100%,.7);--text-tertiary:hsla(0,0%,100%,.5);--text-muted:hsla(0,0%,100%,.5);--border-color:#2a2a3a;--border-subtle:hsla(0,0%,100%,.06);--border-light:hsla(0,0%,100%,.12);--shadow-xs:0 1px 2px rgba(0,0,0,.2);--shadow-sm:0 2px 8px rgba(0,0,0,.3);--shadow-md:0 4px 16px rgba(0,0,0,.4);--shadow-lg:0 8px 24px rgba(0,0,0,.5);--shadow-xl:0 12px 32px rgba(0,0,0,.6);--chart-self:#d4af37;--chart-others:#60a5fa;--chart-grid:hsla(0,0%,100%,.1);--glass-bg:hsla(0,0%,100%,.03);--glass-border:hsla(0,0%,100%,.08)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s ease}.btn,body{font-size:var(--text-base)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4) var(--space-6);border-radius:var(--radius-xl);font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-all);border:none;text-decoration:none;font-family:inherit}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-dark) 100%);color:var(--bg-primary);box-shadow:var(--shadow-glow)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px var(--color-primary-glow)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-light)}.btn-secondary:hover{background:var(--bg-elevated);border-color:var(--color-primary)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-outline{background:transparent;color:var(--color-primary);border:2px solid var(--color-primary)}.btn-outline:hover{background:var(--color-primary-light)}.btn-lg{padding:var(--space-5) var(--space-8);font-size:var(--text-lg);border-radius:var(--radius-2xl)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);border-radius:var(--radius-lg)}.btn-full{width:100%}.card{background:var(--bg-card);border-radius:var(--radius-2xl);border:1px solid var(--border-subtle);padding:var(--space-6)}.card-elevated{background:var(--bg-secondary);box-shadow:var(--shadow-md);border:none}.card-glass{background:var(--glass-bg);border:1px solid var(--glass-border);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.input{width:100%;padding:var(--space-4) var(--space-5);background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-xl);color:var(--text-primary);font-size:var(--text-base);font-family:inherit;transition:var(--transition-fast)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}.input::placeholder{color:var(--text-tertiary)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--font-semibold)}.badge-primary{background:var(--color-primary-light);color:var(--color-primary)}.badge-ic{background:var(--caliber-ic-bg);color:var(--caliber-ic)}.badge-ec{background:var(--caliber-ec-bg);color:var(--caliber-ec)}.badge-sc{background:var(--caliber-sc-bg);color:var(--caliber-sc)}.badge-success{background:var(--color-success-bg);color:var(--color-success)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge-error{background:var(--color-error-bg);color:var(--color-error)}.progress-bar{height:4px;background:var(--bg-tertiary);overflow:hidden}.progress-bar,.progress-fill{border-radius:var(--radius-pill)}.progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary) 0,var(--color-primary-hover) 100%);transition:width var(--transition-slow)}.caliber-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:24px}.caliber-icon.ic{background:var(--caliber-ic-bg)}.caliber-icon.ec{background:var(--caliber-ec-bg)}.caliber-icon.sc{background:var(--caliber-sc-bg)}.caliber-tag{padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--font-semibold)}.caliber-tag.ic{background:var(--caliber-ic-bg);color:var(--caliber-ic);border:1px solid var(--caliber-ic)}.caliber-tag.ec{background:var(--caliber-ec-bg);color:var(--caliber-ec);border:1px solid var(--caliber-ec)}.caliber-tag.sc{background:var(--caliber-sc-bg);color:var(--caliber-sc);border:1px solid var(--caliber-sc)}.tab-bar{display:flex;gap:var(--space-2);padding:var(--space-1);background:var(--bg-tertiary)}.tab-bar,.tab-item{border-radius:var(--radius-pill)}.tab-item{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-fast);border:none;background:transparent;color:var(--text-secondary)}.tab-item.active,.tab-item:hover{color:var(--text-primary)}.tab-item.active{background:var(--bg-primary);box-shadow:var(--shadow-sm)}.stat-card{background:var(--bg-card);border-radius:var(--radius-2xl);padding:var(--space-5);border:1px solid var(--border-subtle)}.stat-value{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--text-primary)}.stat-label{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-1)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}@keyframes glow{0%,to{box-shadow:0 0 20px var(--color-primary-glow)}50%{box-shadow:0 0 40px var(--color-primary-glow),0 0 60px var(--color-primary-glow)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .3s ease forwards}.animate-fade-in-up{animation:fadeInUp .6s ease forwards}.animate-pulse{animation:pulse 2s infinite}.animate-glow{animation:glow 2s infinite}.animate-float{animation:float 6s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}.animate-slide-in-right{animation:slideInRight .3s ease forwards}.animate-slide-in-up{animation:slideInUp .3s ease forwards}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}.answer-option-btn{-webkit-tap-highlight-color:transparent!important;-webkit-appearance:none!important}.answer-option-btn:active,.answer-option-btn:focus,.answer-option-btn:focus-visible,.answer-option-btn:focus-within{outline:none!important;box-shadow:none!important}.answer-option-btn:not(.selected):active,.answer-option-btn:not(.selected):focus,.answer-option-btn:not(.selected):focus-visible{border-color:var(--border-color)!important;border-width:2px!important}.hide-scrollbar::-webkit-scrollbar{width:0;height:0}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}