:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink-900:#1a1a2e;--ink-800:#16213e;--ink-700:#0f3460;--gold-600:#c9a84c;--gold-500:#e6b85c;--gold-400:#f0cc80;--gold-100:#fdf6e3;--gold-50:#fffcf5;--ai-700:#1e40af;--ai-600:#2563eb;--ai-500:#3b82f6;--ai-400:#60a5fa;--ai-100:#dbeafe;--ai-50:#eff6ff;--green-700:#047857;--green-500:#10b981;--green-100:#d1fae5;--green-50:#ecfdf5;--red-700:#b91c1c;--red-500:#ef4444;--red-100:#fee2e2;--red-50:#fef2f2;--orange-700:#c2410c;--orange-500:#f97316;--orange-100:#ffedd5;--orange-50:#fff7ed;--yellow-700:#92400e;--yellow-500:#f59e0b;--yellow-100:#fef3c7;--yellow-50:#fffbeb;--purple-700:#6d28d9;--purple-500:#8b5cf6;--purple-100:#ede9fe;--purple-50:#f5f3ff;--gray-950:#0a0a0f;--gray-900:#111827;--gray-800:#1f2937;--gray-700:#374151;--gray-600:#4b5563;--gray-500:#6b7280;--gray-400:#9ca3af;--gray-300:#d1d5db;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--gray-50:#f9fafb;--white:#fff;--font:"Noto Sans SC", "PingFang SC", -apple-system, BlinkMacSystemFont, "Geist", "DM Sans", "SF Pro Text", "Segoe UI", system-ui, sans-serif;--font-serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", Georgia, serif;--font-mono:"JetBrains Mono", "SF Mono", "Fira Code", "Cascadia Code", monospace;--text-xs:.6875rem;--text-sm:.8125rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.25rem;--s6:1.5rem;--s8:2rem;--s10:2.5rem;--s12:3rem;--s16:4rem;--s20:5rem;--r-xs:.25rem;--r-sm:.375rem;--r-md:.5rem;--r-lg:.75rem;--r-xl:1rem;--r-2xl:1.5rem;--r-3xl:2rem;--r-full:9999px;--shadow-xs:0 1px 2px 0 #0000000a;--shadow-sm:0 2px 4px -1px #0000000d, 0 1px 2px -2px #0000000d;--shadow-md:0 4px 6px -2px #0000000f, 0 2px 4px -3px #0000000f;--shadow-lg:0 8px 16px -4px #00000014, 0 4px 6px -5px #0000000f;--shadow-xl:0 20px 24px -6px #0000001a, 0 8px 8px -6px #0000000f;--shadow-2xl:0 32px 48px -12px #0000002e;--shadow-gold:0 4px 16px -2px #c9a84c4d, 0 2px 4px -2px #c9a84c33;--shadow-ai:0 4px 16px -2px #3b82f640, 0 2px 4px -2px #3b82f626;--shadow-focus-gold:0 0 0 3px #c9a84c33;--ease:cubic-bezier(.16, 1, .3, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--dur-micro:.1s;--dur-fast:.15s;--dur-normal:.25s;--dur-slow:.4s;--dur-page:.5s;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-drawer:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070;--z-toast:1080}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font);color:var(--gray-800);background:var(--gray-50);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;min-height:100vh;line-height:1.6}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit;line-height:inherit;background:0 0;border:none}input,textarea,select{font-family:inherit;font-size:inherit;line-height:inherit}img,svg{max-width:100%;display:block}ul,ol{list-style:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:focus{outline:none}:focus-visible{outline:2px solid var(--gold-500);outline-offset:2px}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--ink-900);flex-direction:column;flex-shrink:0;width:240px;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-logo{padding:var(--s6) var(--s5) var(--s5);align-items:center;gap:var(--s3);border-bottom:1px solid #ffffff14;display:flex}.logo-mark{border-radius:var(--r-lg);background:linear-gradient(135deg, var(--gold-500), var(--gold-600));width:36px;height:36px;color:var(--ink-900);box-shadow:var(--shadow-gold);flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:800;display:flex}.logo-text{flex-direction:column;display:flex}.logo-name{font-size:var(--text-base);color:var(--white);letter-spacing:.04em;font-weight:700}.logo-sub{font-size:var(--text-xs);color:#fff6;margin-top:2px}.sidebar-nav{padding:var(--s4) var(--s3);flex:1}.nav-section{color:#ffffff4d;letter-spacing:.1em;text-transform:uppercase;padding:var(--s4) var(--s3) var(--s2);margin-top:var(--s2);font-size:10px;font-weight:600}.nav-section:first-child{margin-top:0}.nav-item{align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);border-radius:var(--r-lg);color:#ffffff8c;font-size:var(--text-sm);cursor:pointer;transition:all var(--dur-micro) var(--ease);margin-bottom:2px;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item:hover{color:#ffffffe6;background:#ffffff14}.nav-item.active{color:var(--gold-400);background:#c9a84c26}.nav-item.active:before{content:"";background:var(--gold-500);border-radius:0 3px 3px 0;width:3px;height:20px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.nav-icon{text-align:center;flex-shrink:0;width:20px;font-size:16px}.nav-badge{background:var(--red-500);color:var(--white);border-radius:var(--r-full);text-align:center;min-width:18px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:700}.nav-tag-soon{color:#fff6;padding:1px var(--s2);border-radius:var(--r-full);background:#ffffff1a;margin-left:auto;font-size:10px}.sidebar-footer{padding:var(--s4);align-items:center;gap:var(--s3);border-top:1px solid #ffffff14;display:flex}.nav-item-disabled{opacity:.4;pointer-events:none}.avatar{border-radius:var(--r-full);background:linear-gradient(135deg, var(--ai-500), var(--ai-700));width:36px;height:36px;color:var(--white);font-size:var(--text-sm);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.avatar-name{font-size:var(--text-sm);color:var(--white);font-weight:600}.avatar-sub{font-size:var(--text-xs);color:#fff6;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--white);border-bottom:1px solid var(--gray-200);padding:var(--s4) var(--s8);align-items:center;gap:var(--s4);z-index:20;display:flex;position:sticky;top:0}.topbar-title{font-size:var(--text-xl);color:var(--gray-900);flex:1;font-weight:700}.topbar-actions{align-items:center;gap:var(--s3);display:flex}.page-body{padding:var(--s8);background:#f9fafb;flex:1}.btn{justify-content:center;align-items:center;gap:var(--s2);padding:var(--s2) var(--s5);border-radius:var(--r-lg);font-size:var(--text-sm);white-space:nowrap;cursor:pointer;transition:all var(--dur-fast) var(--ease);font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:focus-visible{outline:2px solid var(--gold-500);outline-offset:2px;box-shadow:var(--shadow-focus-gold)}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn:active:not(:disabled){transform:scale(.97)}.btn-gold:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 8px 24px -4px #c9a84c66}.btn-ai:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 8px 24px -4px #3b82f659}.btn-outline{color:var(--gray-700);border:1.5px solid var(--gray-300);background:0 0}.btn-outline:hover:not(:disabled){border-color:var(--gray-400);background:var(--gray-50);color:var(--gray-900)}.btn-ghost:hover:not(:disabled){background:var(--gray-100);color:var(--gray-900)}.btn-danger{background:var(--red-500);color:var(--white)}.btn-danger:hover:not(:disabled){background:var(--red-700)}.btn-sm{padding:var(--s1) var(--s3);font-size:var(--text-xs);border-radius:var(--r-md)}.btn-lg{padding:var(--s3) var(--s8);font-size:var(--text-base);border-radius:var(--r-xl)}.btn-xl{padding:var(--s4) var(--s10);font-size:var(--text-lg);border-radius:var(--r-xl)}.btn-icon{padding:var(--s2);border-radius:var(--r-md)}.btn-full{width:100%}.card{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);box-shadow:var(--shadow-xs);overflow:hidden}.card-hd{padding:var(--s5) var(--s6);border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--text-base);color:var(--gray-900);font-weight:700}.card-bd{padding:var(--s6)}.card-sm .card-bd{padding:var(--s4)}.tag{padding:2px var(--s2);border-radius:var(--r-full);font-size:var(--text-xs);align-items:center;gap:3px;font-weight:600;line-height:1.4;display:inline-flex}.tag-gold{background:var(--yellow-100);color:var(--yellow-700)}.tag-ai{background:var(--ai-100);color:var(--ai-700)}.tag-green{background:var(--green-100);color:var(--green-700)}.tag-red{background:var(--red-100);color:var(--red-700)}.tag-orange{background:var(--orange-100);color:var(--orange-700)}.tag-purple{background:var(--purple-100);color:var(--purple-700)}.tag-gray{background:var(--gray-100);color:var(--gray-600)}.tag-warn{background:var(--yellow-100);color:var(--yellow-700)}.tag-muted{background:var(--gray-100);color:var(--gray-500)}.err-tag{padding:3px var(--s3);border-radius:var(--r-full);font-size:var(--text-xs);cursor:default;align-items:center;gap:4px;font-weight:700;display:inline-flex}.err-tag-001{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5}.err-tag-002{color:#9a3412;background:#ffedd5;border:1px solid #fdba74}.err-tag-003{color:#78350f;background:#fef3c7;border:1px solid #fcd34d}.err-tag-004{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5}.err-tag-005{color:#9a3412;background:#ffedd5;border:1px solid #fdba74}.err-tag-006{color:#3730a3;background:#e0e7ff;border:1px solid #a5b4fc}.err-tag-007{color:#6b21a8;background:#f3e8ff;border:1px solid #c084fc}.err-tag-008{color:#065f46;background:#ecfdf5;border:1px solid #6ee7b7}.citation{font-size:var(--text-xs);color:var(--ai-700);background:var(--ai-50);border:1px solid var(--ai-200);padding:3px var(--s2);border-radius:var(--r-md);cursor:pointer;transition:all var(--dur-fast) var(--ease);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.citation:hover{background:var(--ai-100);border-color:var(--ai-300);color:var(--ai-800)}.form-group{margin-bottom:var(--s5)}.form-label{font-size:var(--text-sm);color:var(--gray-700);margin-bottom:var(--s2);font-weight:600;display:block}.form-input{width:100%;padding:var(--s3) var(--s4);border:1.5px solid var(--gray-300);border-radius:var(--r-lg);font-size:var(--text-sm);color:var(--gray-900);background:var(--white);transition:border-color var(--dur-micro), box-shadow var(--dur-micro);outline:none}.progress-bar{background:var(--gray-100);border-radius:var(--r-full);overflow:hidden}.pf-gold{background:linear-gradient(90deg, var(--gold-400), var(--gold-600))}.pf-green{background:linear-gradient(90deg,#34d399,#059669)}.pf-orange{background:var(--orange-500)}.qtype{padding:3px var(--s3);border-radius:var(--r-full);font-size:var(--text-xs);align-items:center;gap:4px;font-weight:700;display:inline-flex}.qtype-term{color:#5b21b6;background:#ede9fe}.diff-easy{color:var(--green-700);font-size:var(--text-xs);font-weight:600}.diff-medium{color:var(--yellow-700);font-size:var(--text-xs);font-weight:600}.diff-hard{color:var(--red-700);font-size:var(--text-xs);font-weight:600}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%,to{background-position:0%}50%{background-position:100%}}@keyframes toastIn{0%{opacity:0;transform:translate(40px)scale(.96)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(60px)}}.anim-up{animation:fadeUp var(--dur-normal) var(--ease) both}.anim-in{animation:fadeIn var(--dur-fast) var(--ease) both}.anim-scale{animation:scaleIn var(--dur-normal) var(--ease) both}.anim-stagger>:first-child{animation-delay:0s}.anim-stagger>:nth-child(2){animation-delay:50ms}.anim-stagger>:nth-child(3){animation-delay:.1s}.anim-stagger>:nth-child(4){animation-delay:.15s}.anim-stagger>:nth-child(5){animation-delay:.2s}.anim-stagger>:nth-child(6){animation-delay:.25s}.skeleton{background:linear-gradient(90deg, var(--gray-200) 0%, var(--gray-100) 20%, var(--gray-200) 40%, var(--gray-200) 100%);border-radius:var(--r-md);background-size:800px 100%;animation:1.4s ease-in-out infinite shimmer}.toast-container{top:var(--s5);right:var(--s5);z-index:var(--z-toast);gap:var(--s2);pointer-events:none;flex-direction:column;max-width:420px;display:flex;position:fixed}.toast{align-items:center;gap:var(--s3);padding:var(--s4) var(--s5);border-radius:var(--r-xl);background:var(--white);border:1px solid var(--gray-200);box-shadow:var(--shadow-lg);font-size:var(--text-sm);color:var(--gray-800);pointer-events:auto;min-width:280px;animation:toastIn var(--dur-normal) var(--ease) both;font-weight:500;display:flex;position:relative;overflow:hidden}.toast.leaving{animation:toastOut var(--dur-fast) var(--ease) both}.toast-icon{flex-shrink:0;font-size:18px}.toast-body{flex-direction:column;gap:4px;display:flex}.toast-link{color:var(--ai-500);cursor:pointer;font-weight:600;font-size:var(--text-sm);text-decoration:underline;display:inline-block}.toast-link:hover{color:var(--ai-700)}.toast-success .toast-icon{color:var(--green-500)}.toast-error .toast-icon{color:var(--red-500)}.toast-warning .toast-icon{color:var(--yellow-500)}.toast-info .toast-icon{color:var(--ai-500)}.toast-progress{border-radius:0 0 var(--r-xl) var(--r-xl);height:3px;animation:3s linear both toastProgress;position:absolute;bottom:0;left:0}.toast-success .toast-progress{background:var(--green-500)}.toast-error .toast-progress{background:var(--red-500)}.toast-warning .toast-progress{background:var(--yellow-500)}.toast-info .toast-progress{background:var(--ai-500)}@keyframes toastProgress{0%{width:100%}to{width:0}}.modal-overlay{z-index:var(--z-modal);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:1;visibility:visible;padding:var(--s8);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay.show{opacity:1;visibility:visible}.modal-box{background:var(--white);border-radius:var(--r-2xl);box-shadow:var(--shadow-2xl);flex-direction:column;width:100%;max-width:480px;max-height:90vh;display:flex;overflow:hidden}.modal-overlay.show .modal-box{opacity:1;transform:translateY(0)scale(1)}.modal-header{padding:var(--s6);border-bottom:1px solid var(--gray-100);align-items:center;gap:var(--s3);display:flex}.modal-title{font-size:var(--text-lg);color:var(--gray-900);flex:1;font-weight:700}.modal-close{border-radius:var(--r-full);width:36px;height:36px;color:var(--gray-400);cursor:pointer;transition:all var(--dur-micro);justify-content:center;align-items:center;font-size:18px;display:flex}.modal-body{padding:var(--s6);font-size:var(--text-sm);color:var(--gray-700);flex:1;line-height:1.7;overflow-y:auto}.modal-footer{padding:var(--s4) var(--s6);border-top:1px solid var(--gray-100);justify-content:flex-end;align-items:center;gap:var(--s3);display:flex}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}@media (width<=1024px){.sidebar{width:200px}.topbar{padding:var(--s4)}.page-body{padding:var(--s6)}}@media (width<=768px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static}.sidebar-nav{gap:var(--s1);padding:var(--s3);flex-wrap:wrap;display:flex}.nav-section{display:none}.nav-item{padding:var(--s2)}.topbar{padding:var(--s3) var(--s4)}.page-body{padding:var(--s4)}}.btn:focus-visible,.nav-item:focus-visible,.quick-entry:focus-visible,.filter-chip:focus-visible,.pagination-btn:focus-visible,.tool-btn:focus-visible,.sidebar-link:focus-visible{outline:2px solid var(--ai-500);outline-offset:2px;border-radius:var(--r-md)}.card-hover,.stat-card,.history-item{transition:transform .15s,box-shadow .15s,background .15s}.empty-state-illustration{text-align:center;margin-bottom:var(--s4);opacity:.6;font-size:48px}.tier-badge{white-space:nowrap;letter-spacing:.02em;border:none;border-radius:12px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.tier-badge__icon{font-size:12px;line-height:1}.tier-badge__label{font-size:11px}.expired-badge{color:#fff;background:var(--red-500,#ef4444);white-space:nowrap;border-radius:4px;align-items:center;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.upgrade-banner{border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;font-size:13px;display:flex}.upgrade-banner--info{color:var(--ai-primary-dark,#4f46e5);background:linear-gradient(135deg,#6366f114,#6366f10a);border:1px solid #6366f133}.upgrade-banner--warning{color:var(--orange-700,#c2410c);background:linear-gradient(135deg,#f59e0b14,#f59e0b0a);border:1px solid #f59e0b33}.upgrade-banner--expired{color:var(--red-700,#b91c1c);background:linear-gradient(135deg,#ef444414,#ef44440a);border:1px solid #ef444433}.upgrade-banner__content{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.upgrade-banner__icon{flex-shrink:0;font-size:16px}.upgrade-banner__message{line-height:1.4}.upgrade-banner__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.upgrade-banner__action-btn{white-space:nowrap;border-radius:14px;padding:4px 14px;font-size:12px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-block}.upgrade-banner--info .upgrade-banner__action-btn{background:var(--ai-primary,#6366f1);color:#fff}.upgrade-banner--warning .upgrade-banner__action-btn{background:var(--gold-500,#f59e0b);color:#fff}.upgrade-banner--expired .upgrade-banner__action-btn{background:var(--red-500,#ef4444);color:#fff}.upgrade-banner__action-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.upgrade-banner__dismiss{cursor:pointer;opacity:.5;color:inherit;background:0 0;border:none;padding:2px 4px;font-size:14px}.upgrade-banner__dismiss:hover{opacity:1}.view-mode-toggle{color:#6b7280;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #d1d5db;border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.view-mode-toggle:hover{color:#374151;background:#f3f4f6;border-color:#9ca3af;transform:translateY(-1px);box-shadow:0 2px 8px #0000000f}.view-mode-toggle:active{transform:scale(.96)}.view-mode-toggle--pc{color:#ffffffb3;background:#ffffff14;border-color:#fff3;padding:5px 12px;font-size:12px}.view-mode-toggle--pc:hover{color:#fff;background:#ffffff24;border-color:#ffffff4d;box-shadow:0 2px 12px #0003}.view-mode-toggle--h5{color:#ea580c;background:#fff7ed;border-color:#f97316}.view-mode-toggle--h5:hover{background:#ffedd5;border-color:#ea580c;box-shadow:0 2px 12px #f9731626}.view-mode-toggle-icon{font-size:14px;line-height:1}.view-mode-toggle-label{font-size:13px;line-height:1}.logout-btn{border-radius:var(--r-lg);color:#ffffff80;font-size:var(--text-sm);cursor:pointer;transition:all var(--dur-micro) var(--ease);white-space:nowrap;background:0 0;border:1.5px solid #ffffff26;align-items:center;gap:6px;margin-left:auto;padding:6px 10px;font-weight:600;display:flex}.logout-btn:hover{color:#fca5a5;background:#ef44441f;border-color:#ef444466}.logout-btn:active{transform:scale(.96)}.logout-icon{flex-shrink:0;font-size:.9rem;line-height:1}.logout-text{font-size:var(--text-xs)}.sidebar-footer{align-items:center;gap:var(--s3);padding:var(--s4) var(--s4);border-top:1px solid #ffffff14;display:flex}.layout-breadcrumb{align-items:center;gap:var(--s2);font-size:var(--text-sm);color:var(--gray-500);margin-bottom:var(--s6);display:flex}.layout-breadcrumb a{color:var(--ai-600);cursor:pointer;transition:color var(--dur-micro)}.layout-breadcrumb a:hover{color:var(--ai-700)}.nav-item-locked{opacity:.45;cursor:not-allowed;position:relative}.nav-item-locked:hover{opacity:.65}.nav-locked-hint{color:var(--ai-primary,#6366f1);margin-left:auto;font-size:10px;display:none}.nav-item-locked:hover .nav-locked-hint{display:inline}.sidebar-upgrade-btn{background:linear-gradient(135deg, var(--gold-500,#f59e0b), var(--gold-600,#d97706));color:#fff;text-align:center;border-radius:8px;width:100%;margin-bottom:8px;padding:6px 12px;font-size:12px;font-weight:700;text-decoration:none;transition:all .2s;display:block}.sidebar-upgrade-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b59}.sidebar-upgrade-btn--premium{background:linear-gradient(135deg, var(--ai-600,#4f46e5), var(--ai-400,#818cf8))}.sidebar-upgrade-btn--premium:hover{box-shadow:0 4px 12px #6366f159}.avatar-tier-row{align-items:center;gap:4px;margin-top:3px;display:flex}.avatar-quota-row{flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;display:flex}.quota-chip{color:#6a5acd;background:#5b5fef1a;border-radius:10px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.quota-banner{margin-bottom:var(--s4,16px);border-radius:var(--r-lg,12px);animation:fadeUp var(--dur-normal,.3s) ease both;overflow:hidden}.quota-banner--upgrade{background:linear-gradient(135deg, var(--ai-50,#eff6ff), var(--ai-100,#dbeafe));border:1px solid var(--ai-200,#bfdbfe)}.quota-banner--exhausted{background:linear-gradient(135deg, var(--red-50,#fef2f2), var(--red-100,#fee2e2));border:1px solid var(--red-200,#fecaca)}.quota-banner__content{align-items:flex-start;gap:var(--s2,8px);padding:var(--s3,12px) var(--s4,16px);display:flex}.quota-banner__icon{font-size:var(--text-lg,1.125rem);flex-shrink:0;margin-top:1px}.quota-banner__text{font-size:var(--text-sm,.8125rem);color:var(--gray-700,#374151);flex:1;line-height:1.6}.quota-banner__text strong{color:var(--gray-900,#111827);font-weight:700}.quota-banner__inline-link{font-size:inherit;color:var(--ai-500,#3b82f6);cursor:pointer;background:0 0;border:none;margin:0 2px;padding:0;font-weight:600;text-decoration:underline}.quota-banner__inline-link:hover{color:var(--ai-700,#1e40af)}.quota-banner__action{padding:var(--s1,4px) var(--s3,12px);background:var(--ai-500,#3b82f6);color:#fff;font-size:var(--text-xs,.6875rem);border-radius:var(--r-full,9999px);cursor:pointer;white-space:nowrap;border:none;flex-shrink:0;align-items:center;font-weight:700;transition:background .15s;display:inline-flex}.quota-banner__action:hover{background:var(--ai-600,#2563eb)}.quota-banner--exhausted .quota-banner__action{background:var(--red-500,#ef4444)}.quota-banner--exhausted .quota-banner__action:hover{background:var(--red-700,#b91c1c)}.quota-banner__close{font-size:var(--text-sm,.8125rem);color:var(--gray-400,#9ca3af);cursor:pointer;border-radius:var(--r-xs,4px);background:0 0;border:none;flex-shrink:0;padding:2px 4px;line-height:1;transition:color .15s}.quota-banner__close:hover{color:var(--gray-600,#4b5563)}.quota-banner__bonus{padding:var(--s2,8px) var(--s4,16px);font-size:var(--text-xs,.6875rem);color:var(--green-700,#047857);border-top:1px dashed var(--green-200,#a7f3d0);text-align:center;background:#10b98114;font-weight:600}@media (width<=480px){.quota-banner__content{flex-wrap:wrap}.quota-banner__text{width:100%}}.grid-stat{gap:var(--s4);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=768px){.grid-stat,.home-loading{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);padding:var(--s5);text-align:center;box-shadow:var(--shadow-xs);flex-direction:column;align-items:center;display:flex}.stat-icon{border-radius:var(--r-lg);justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.stat-value{font-size:var(--text-2xl);margin-top:var(--s2);font-weight:800}.stat-label{font-size:var(--text-xs);color:var(--gray-500);margin-top:var(--s1)}.home-loading{gap:var(--s4);grid-template-columns:repeat(4,1fr);display:grid}.home-welcome{margin-bottom:var(--s6)}.home-quick-links{flex-direction:column;display:flex}.weak-tags-list{gap:var(--s3);flex-direction:column;display:flex}.weak-tag-item{align-items:center;gap:var(--s3);display:flex}.history-item{align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--r-lg);cursor:pointer;transition:background var(--dur-micro) var(--ease);display:flex}.history-item:hover{background:var(--gray-50)}.history-item:active{transform:scale(.99)}.history-score-badge{border-radius:var(--r-md);width:40px;height:40px;font-size:var(--text-xs);flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:flex}.history-info{flex:1;min-width:0}.history-title{font-size:var(--text-xs);color:var(--gray-800);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.history-meta{font-size:var(--text-xs);color:var(--gray-400);align-items:center;gap:var(--s1);margin-top:2px;display:flex}.quick-entry-list{gap:var(--s2);flex-direction:column;display:flex}.quick-entry{align-items:center;gap:var(--s3);padding:var(--s4);background:var(--gray-50);border-radius:var(--r-xl);cursor:pointer;transition:all var(--dur-micro) var(--ease);display:flex}.quick-entry:hover{background:var(--gray-100);transform:translate(2px)}.quick-entry:active{transform:scale(.99)}.quick-icon{border-radius:var(--r-lg);background:var(--white);width:40px;height:40px;box-shadow:var(--shadow-sm);flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:flex}.quick-info{flex:1;min-width:0}.quick-title{font-size:var(--text-sm);color:var(--gray-900);font-weight:700}.quick-desc{font-size:var(--text-xs);color:var(--gray-500);margin-top:2px}.quick-arrow{font-size:var(--text-lg);color:var(--gray-400);flex-shrink:0}.home-progress-ring{text-align:center}.feedback-overlay{z-index:9000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;justify-content:center;align-items:center;padding:16px;animation:.2s feedback-overlay-in;display:flex;position:fixed;inset:0}@keyframes feedback-overlay-in{0%{opacity:0}to{opacity:1}}.feedback-modal{background:#1a1a2e;border:1px solid #ffffff1a;border-radius:20px;width:100%;max-width:480px;max-height:90vh;animation:.25s cubic-bezier(.34,1.56,.64,1) feedback-modal-in;overflow-y:auto;box-shadow:0 24px 64px #00000080}@keyframes feedback-modal-in{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.feedback-header{justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.feedback-header-left{align-items:center;gap:8px;display:flex}.feedback-header-icon{font-size:18px}.feedback-header-title{color:#e8e0f0;letter-spacing:.02em;font-size:17px;font-weight:700}.feedback-close-btn{color:#ffffff80;cursor:pointer;background:#ffffff14;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;transition:background .2s,color .2s;display:flex}.feedback-close-btn:hover{color:#fff;background:#ffffff26}.feedback-question-preview{background:#ffffff0d;border-left:3px solid #d4af3780;border-radius:10px;align-items:flex-start;gap:6px;margin:12px 24px 0;padding:10px 14px;display:flex}.feedback-question-label{color:#d4af37cc;white-space:nowrap;padding-top:1px;font-size:12px;font-weight:600}.feedback-question-text{color:#ffffffa6;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.feedback-steps{align-items:center;gap:6px;padding:16px 24px 0;display:flex}.feedback-step{color:#ffffff59;align-items:center;gap:6px;font-size:12px;transition:color .2s;display:flex}.feedback-step.active{color:#d4af37}.feedback-step.done{color:#4caf50}.feedback-step-dot{border:1.5px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;transition:background .2s;display:flex}.feedback-step.active .feedback-step-dot{background:#d4af3726}.feedback-step.done .feedback-step-dot{background:#4caf5026}.feedback-step-line{background:#ffffff1a;flex:1;height:1px}.feedback-body{padding:16px 24px 24px}.feedback-type-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.feedback-type-card{cursor:pointer;text-align:left;background:#ffffff0a;border:1.5px solid #ffffff14;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 14px 12px;transition:background .2s,border-color .2s,transform .15s;display:flex}.feedback-type-card:hover{background:#d4af3714;border-color:#d4af3759;transform:translateY(-1px)}.feedback-type-card:active{transform:translateY(0)}.feedback-type-icon{margin-bottom:2px;font-size:22px;line-height:1}.feedback-type-label{color:#e8e0f0;font-size:13px;font-weight:700}.feedback-type-desc{color:#fff6;font-size:11px;line-height:1.4}.feedback-selected-type{background:#d4af3714;border:1px solid #d4af3733;border-radius:12px;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.feedback-selected-icon{flex-shrink:0;font-size:24px}.feedback-selected-label{color:#d4af37;font-size:14px;font-weight:700}.feedback-selected-desc{color:#ffffff73;margin-top:2px;font-size:12px}.feedback-change-type-btn{color:#ffffff80;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:20px;flex-shrink:0;margin-left:auto;padding:4px 12px;font-size:12px;transition:all .2s}.feedback-change-type-btn:hover{color:#d4af37;border-color:#d4af3780}.feedback-field{margin-bottom:14px;position:relative}.feedback-field-label{color:#ffffffb3;margin-bottom:8px;font-size:13px;font-weight:600;display:block}.feedback-field-optional{color:#ffffff4d;margin-left:4px;font-size:11px;font-weight:400}.feedback-textarea{color:#e8e0f0;resize:none;box-sizing:border-box;background:#ffffff0d;border:1.5px solid #ffffff1a;border-radius:12px;width:100%;padding:12px 14px;font-family:inherit;font-size:14px;line-height:1.6;transition:border-color .2s,background .2s}.feedback-textarea:focus{background:#d4af370a;border-color:#d4af3780;outline:none}.feedback-textarea::placeholder{color:#ffffff40}.feedback-char-count{color:#ffffff4d;pointer-events:none;font-size:11px;position:absolute;bottom:8px;right:10px}.feedback-actions{gap:10px;margin-top:20px;display:flex}.feedback-btn-cancel{color:#ffffff8c;cursor:pointer;background:0 0;border:1.5px solid #ffffff1f;border-radius:12px;flex:1;padding:12px;font-size:14px;font-weight:600;transition:all .2s}.feedback-btn-cancel:hover:not(:disabled){color:#fffc;background:#ffffff0f}.feedback-btn-submit{color:#1a1a2e;cursor:pointer;letter-spacing:.02em;background:linear-gradient(135deg,#d4af37,#b8963e);border:none;border-radius:12px;flex:2;padding:12px;font-size:14px;font-weight:700;transition:all .2s}.feedback-btn-submit:hover:not(:disabled){background:linear-gradient(135deg,#e6c23a,#d4af37);transform:translateY(-1px);box-shadow:0 4px 16px #d4af3759}.feedback-btn-submit:disabled,.feedback-btn-cancel:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}.feedback-done{text-align:center;flex-direction:column;align-items:center;padding:24px 0 8px;display:flex}.feedback-done-icon{margin-bottom:16px;font-size:52px;animation:.5s cubic-bezier(.34,1.56,.64,1) feedback-done-bounce}@keyframes feedback-done-bounce{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.feedback-done-title{color:#e8e0f0;margin-bottom:10px;font-size:20px;font-weight:800}.feedback-done-desc{color:#ffffff8c;margin-bottom:24px;font-size:14px;line-height:1.7}.feedback-done-note{color:#d4af3799;font-size:12px}.feedback-btn-close-done{color:#1a1a2e;cursor:pointer;letter-spacing:.02em;background:linear-gradient(135deg,#d4af37,#b8963e);border:none;border-radius:24px;padding:12px 32px;font-size:14px;font-weight:700;transition:all .2s}.feedback-btn-close-done:hover{transform:translateY(-1px);box-shadow:0 4px 16px #d4af3759}@media (width<=400px){.feedback-type-grid{grid-template-columns:1fr}.feedback-modal{border-radius:16px 16px 0 0;max-height:85vh;position:fixed;bottom:0;left:0;right:0}}.feedback-kp-list{background:#ffffff0a;border:1.5px solid #ffffff1a;border-radius:10px;max-height:200px;padding:6px;overflow-y:auto}.feedback-kp-item{cursor:pointer;color:#ffffffb3;border-radius:8px;align-items:center;gap:8px;padding:6px 10px;transition:background .15s;display:flex}.feedback-kp-item:hover{background:#ffffff0f}.feedback-kp-item input[type=checkbox]{accent-color:#d4af37;flex-shrink:0;width:16px;height:16px}.inline-upgrade-link{cursor:pointer;text-decoration:none;transition:all .2s}.inline-upgrade-link--text{color:var(--ai-primary,#6366f1);align-items:center;gap:2px;font-size:12px;font-weight:500;display:inline-flex}.inline-upgrade-link--text:hover{color:var(--ai-primary-dark,#4f46e5);text-decoration:underline}.inline-upgrade-link--button{background:linear-gradient(135deg, var(--gold-500,#f59e0b), var(--gold-600,#d97706));color:#fff;white-space:nowrap;border-radius:20px;padding:6px 16px;font-size:13px;font-weight:500;display:inline-block}.inline-upgrade-link--button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b59}.inline-upgrade-link--chip{color:var(--gold-600,#d97706);background:linear-gradient(135deg,#f59e0b1f,#d9770614);border:1px solid #f59e0b40;border-radius:12px;align-items:center;gap:2px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.inline-upgrade-link--chip:hover{background:linear-gradient(135deg,#f59e0b33,#d9770626)}.quota-status-bar{background:var(--bg-secondary,#f8fafc);border:1px solid var(--border-light,#e2e8f0);border-radius:8px;padding:8px 12px}.quota-status-bar--compact{flex-wrap:wrap;align-items:center;gap:12px;display:inline-flex}.quota-status-bar--full{flex-direction:column;gap:8px;display:flex}.quota-status-bar__slots{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.quota-status-bar--full .quota-status-bar__slots{flex-direction:column;width:100%}.quota-status-bar__slot{flex-direction:column;gap:3px;display:flex}.quota-status-bar--compact .quota-status-bar__slot{flex-direction:row;align-items:center;gap:4px}.quota-status-bar__slot-header{align-items:center;gap:4px;display:flex}.quota-status-bar__slot-icon{font-size:14px;line-height:1}.quota-status-bar__slot-label{color:var(--text-secondary,#64748b);white-space:nowrap;font-size:12px;font-weight:500}.quota-status-bar__slot-label--warning{color:var(--orange-600,#ea580c)}.quota-status-bar__slot-label--danger{color:var(--red-600,#dc2626);font-weight:600}.quota-status-bar__progress{border-radius:3px;width:100%;height:6px;overflow:hidden}.quota-status-bar__progress-fill{border-radius:3px;min-width:2px;height:100%;transition:width .4s}.quota-status-bar__mini-bar{border-radius:2px;width:40px;height:4px;overflow:hidden}.quota-status-bar__mini-bar-fill{border-radius:2px;height:100%;transition:width .4s}.quota-status-bar__upgrade{margin-top:4px;font-size:12px}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:200px;padding:48px 24px;display:flex}.empty-state--registration-guide{border:2px dashed var(--ai-primary-light,#6366f14d);background:linear-gradient(135deg,#6366f10d,#8b5cf614);border-radius:16px;min-height:360px}.empty-state--quota-exhausted,.empty-state--locked{background:var(--bg-secondary,#f8fafc);border:1px solid var(--border-light,#e2e8f0);border-radius:12px}.empty-state__icon{margin-bottom:16px;font-size:48px;line-height:1}.empty-state--registration-guide .empty-state__icon{margin-bottom:20px;font-size:64px}.empty-state__title{color:var(--text-primary,#1e293b);margin:0 0 8px;font-size:18px;font-weight:600}.empty-state--registration-guide .empty-state__title{font-size:22px}.empty-state__description{color:var(--text-secondary,#64748b);max-width:320px;margin:0 0 20px;font-size:14px;line-height:1.6}.empty-state__actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.empty-state__action-btn{cursor:pointer;border-radius:20px;padding:8px 20px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-block}.empty-state__action-btn--primary{background:linear-gradient(135deg, var(--ai-primary,#6366f1), var(--ai-secondary,#8b5cf6));color:#fff}.empty-state__action-btn--primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f159}.empty-state__action-btn--secondary{background:var(--ai-primary,#6366f1);color:#fff}.empty-state__action-btn--secondary:hover{background:var(--ai-primary-dark,#4f46e5)}.empty-state__action-btn--outline{color:var(--text-secondary,#64748b);border:1px solid var(--border-light,#e2e8f0);background:0 0}.empty-state__action-btn--outline:hover{border-color:var(--ai-primary,#6366f1);color:var(--ai-primary,#6366f1)}.empty-state__registration-cta{align-items:center;gap:6px;margin-top:16px;font-size:13px;display:flex}.empty-state__registration-text{color:var(--text-secondary,#64748b);margin:0}.empty-state__registration-link{color:var(--ai-primary,#6366f1);font-weight:500;text-decoration:none}.empty-state__registration-link:hover{text-decoration:underline}.generate-dialog-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.generate-dialog{background:#fff;border-radius:16px;width:90%;max-width:460px;max-height:85vh;padding:28px 24px 20px;position:relative;overflow-y:auto;box-shadow:0 20px 60px #00000026}.generate-dialog__close{color:var(--text-secondary,#64748b);cursor:pointer;background:0 0;border:none;font-size:18px;position:absolute;top:12px;right:12px}.generate-dialog__title{color:var(--text-primary,#1e293b);margin:0 0 16px;font-size:18px;font-weight:700}.generate-dialog__existing-hint{color:var(--text-secondary,#64748b);background:#6366f10f;border-radius:8px;margin-bottom:12px;padding:8px 12px;font-size:12px}.generate-dialog__existing-link{color:var(--ai-primary,#6366f1)}.generate-dialog__section{margin-bottom:14px}.generate-dialog__label{color:var(--text-primary,#334155);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.generate-dialog__kp-list{flex-wrap:wrap;gap:6px;display:flex}.generate-dialog__kp-item{background:var(--bg-secondary,#f8fafc);border:1px solid var(--border-light,#e2e8f0);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;transition:all .15s;display:flex}.generate-dialog__kp-item:hover{border-color:var(--ai-primary,#6366f1)}.generate-dialog__kp-item:has(input:checked){border-color:var(--ai-primary,#6366f1);background:#6366f114}.generate-dialog__kp-name{color:var(--text-primary,#334155)}.generate-dialog__kp-relevance{color:var(--text-secondary,#94a3b8);font-size:10px}.generate-dialog__no-kp{color:var(--orange-600,#ea580c);font-size:13px}.generate-dialog__select{border:1px solid var(--border-light,#e2e8f0);box-sizing:border-box;border-radius:6px;outline:none;width:100%;padding:8px 12px;font-size:13px}.generate-dialog__select:focus{border-color:var(--ai-primary,#6366f1)}.generate-dialog__count-row{align-items:center;gap:10px;display:flex}.generate-dialog__slider{accent-color:var(--ai-primary,#6366f1);flex:1}.generate-dialog__count-value{color:var(--ai-primary,#6366f1);text-align:right;min-width:40px;font-size:14px;font-weight:600}.generate-dialog__quota-info{color:var(--text-secondary,#94a3b8);margin-top:4px;font-size:11px}.generate-dialog__quota-exhausted{color:var(--red-500,#ef4444);margin-left:4px}.generate-dialog__grading-warning{color:var(--orange-600,#ea580c);background:#f59e0b14;border-radius:6px;margin-bottom:14px;padding:8px 12px;font-size:12px}.generate-dialog__actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.generate-dialog__btn{cursor:pointer;border:none;border-radius:20px;padding:8px 20px;font-size:14px;font-weight:500;transition:all .2s}.generate-dialog__btn--cancel{background:var(--bg-secondary,#f1f5f9);color:var(--text-secondary,#64748b)}.generate-dialog__btn--generate{background:linear-gradient(135deg, var(--ai-primary,#6366f1), var(--ai-secondary,#8b5cf6));color:#fff}.generate-dialog__btn--generate:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.generate-dialog__btn--generate:disabled{opacity:.5;cursor:not-allowed}.grading-pulse{background:var(--ai-500);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite gradingPulse;display:inline-block}@keyframes gradingPulse{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.drill-layout{gap:var(--s8);grid-template-columns:1fr 340px;align-items:start;display:grid}.subject-tabs{gap:var(--s1);padding:var(--s1);background:var(--gray-100);border-radius:var(--r-xl);display:flex}.subject-tab{padding:var(--s3) var(--s4);border-radius:var(--r-lg);font-size:var(--text-sm);color:var(--gray-500);cursor:pointer;transition:all var(--dur-micro) var(--ease);text-align:center;flex:1;font-weight:600;position:relative}.subject-tab:hover{color:var(--gray-800)}.subject-tab.active{background:var(--white);color:var(--gray-900);box-shadow:var(--shadow-sm)}.qtype-row{gap:var(--s3);margin-bottom:var(--s6);display:flex}.qtype-btn{padding:var(--s5);border-radius:var(--r-xl);border:2px solid var(--gray-200);cursor:pointer;transition:all var(--dur-micro) var(--ease);text-align:center;background:var(--white);align-items:center;gap:var(--s1);flex-direction:column;flex:1;display:flex}.qtype-btn:hover{border-color:var(--gold-400);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.qtype-btn.active{border-color:var(--gold-500);background:var(--gold-50);box-shadow:0 0 0 3px #c9a84c1a}.qtype-btn:active{transform:scale(.98)}.qtype-btn-icon{margin-bottom:var(--s1);font-size:22px}.qtype-btn-name{font-size:var(--text-sm);color:var(--gray-800);font-weight:700}.qtype-btn-count{font-size:var(--text-xs);color:var(--gray-500);margin-top:2px}.qtype-btn-progress{background:var(--gray-100);border-radius:var(--r-full);height:4px;margin-top:var(--s3);width:100%;overflow:hidden}.empty-question-card.question-card{background:var(--white);border-radius:var(--r-2xl);border:1.5px dashed var(--gray-300);box-shadow:none;padding:var(--s10) var(--s8);text-align:center;align-items:center;gap:var(--s3);flex-direction:column;display:flex}.empty-qmeta{align-items:center;gap:var(--s3);margin-bottom:var(--s2);flex-wrap:wrap;justify-content:center;display:flex}.empty-question-card .empty-icon{margin-bottom:var(--s2);font-size:48px}.empty-question-card .empty-title{font-size:var(--text-lg);color:var(--gray-700);font-weight:700}.empty-question-card .empty-desc{font-size:var(--text-sm);color:var(--gray-500);max-width:400px}.empty-suggest{align-items:center;gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;justify-content:center;display:flex}.question-card:not(.empty-question-card){border-radius:var(--r-2xl);border:1px solid var(--gray-200);box-shadow:var(--shadow-sm);padding:var(--s8);margin-bottom:var(--s5);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff!important}.q-meta-row{align-items:center;gap:var(--s3);margin-bottom:var(--s5);flex-wrap:wrap;display:flex}.q-school-badge{background:var(--red-50);color:var(--red-700);padding:3px var(--s3);border-radius:var(--r-full);font-size:var(--text-xs);align-items:center;gap:4px;font-weight:600;display:flex}.q-src-badge{background:var(--gray-100);color:var(--gray-600);padding:3px var(--s3);border-radius:var(--r-full);font-size:var(--text-xs)}.q-source-tag{padding:3px var(--s3);border-radius:var(--r-full);font-size:var(--text-xs);white-space:nowrap;align-items:center;gap:4px;font-weight:600;display:inline-flex}.q-source-exam{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.q-source-simulation{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.q-source-practice{background:var(--gray-100);color:var(--gray-600);border:1px solid var(--gray-200)}.q-exam-multi{cursor:pointer;text-underline-offset:3px;-webkit-text-decoration:underline dotted #b91c1c;text-decoration:underline dotted #b91c1c;position:relative}.q-exam-tooltip{padding:var(--s3) var(--s4);color:#f9fafb;border-radius:var(--r-lg);font-size:var(--text-xs);white-space:nowrap;z-index:1000;pointer-events:none;background:#1f2937;font-weight:400;display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0000004d}.q-exam-multi:hover .q-exam-tooltip{display:block}.q-exam-tooltip-item{font-size:var(--text-xs);color:#e5e7eb;padding:3px 0;line-height:1.5}.q-exam-tooltip-item+.q-exam-tooltip-item{border-top:1px solid #ffffff1f;margin-top:3px;padding-top:5px}.q-exam-tooltip:after{content:"";border:6px solid #0000;border-top-color:#1f2937;position:absolute;top:100%;left:50%;transform:translate(-50%)}.q-title{color:#1a1a2e;margin-bottom:var(--s6);font-size:1.125rem;font-weight:700;line-height:1.7}.input-toolbar{padding:var(--s3) var(--s4);background:var(--gray-50);border-radius:var(--r-xl) var(--r-xl) 0 0;border:1.5px solid var(--gray-200);border-bottom:none;justify-content:space-between;align-items:center;display:flex}.toolbar-left{align-items:center;gap:var(--s4);display:flex}.word-count{font-size:var(--text-sm);color:var(--gray-700);font-weight:600}.word-count.warn{color:var(--orange-500)}.word-count.ok{color:var(--green-500)}.timer-chip{align-items:center;gap:var(--s2);font-size:var(--text-sm);color:var(--gray-700);background:var(--white);border:1px solid var(--gray-200);padding:4px var(--s3);border-radius:var(--r-md);transition:all var(--dur-micro) var(--ease);font-weight:700;display:flex}.timer-chip.warn{color:var(--red-500);border-color:var(--red-200);background:var(--red-50)}.timer-chip.urgent{color:var(--white);border-color:var(--red-500);background:var(--red-500);animation:1s ease-in-out infinite timer-blink}@keyframes timer-blink{0%,to{opacity:1}50%{opacity:.7}}.toolbar-tools{gap:var(--s2);display:flex}.tool-btn{font-size:var(--text-xs);color:var(--ai-600);background:var(--ai-50);border:1px solid var(--ai-200);padding:4px var(--s3);border-radius:var(--r-md);cursor:pointer;transition:all var(--dur-micro) var(--ease);align-items:center;gap:4px;display:flex}.tool-btn:hover{background:var(--ai-100);border-color:var(--ai-300)}.tool-btn:active{transform:scale(.97)}.answer-input{border:1.5px solid var(--gray-200);border-radius:0 0 var(--r-xl) var(--r-xl);width:100%;padding:var(--s5);font-size:var(--text-sm);font-family:var(--font);color:#1a1a2e;resize:vertical;min-height:180px;transition:border-color var(--dur-micro), box-shadow var(--dur-micro);background:#fff;border-top:none;outline:none;line-height:1.9}.answer-input.essay{min-height:260px}.answer-input:focus{border-color:var(--gold-400);box-shadow:0 0 0 3px #c9a84c1a}.answer-input::placeholder{color:var(--gray-400);line-height:1.9}.assist-panel{background:var(--ai-50);border:1px solid var(--ai-200);border-radius:var(--r-xl);padding:var(--s4);margin-top:var(--s3);display:none}.assist-panel.show{animation:fadeUp var(--dur-normal) var(--ease) both;display:block}.assist-title{font-size:var(--text-xs);color:var(--ai-700);margin-bottom:var(--s3);font-weight:700}.keyword-grid{gap:var(--s2);flex-wrap:wrap;display:flex}.kw-blur{background:var(--gray-200);color:#0000;padding:3px var(--s3);border-radius:var(--r-full);font-size:var(--text-xs);cursor:pointer;transition:all var(--dur-micro) var(--ease);-webkit-user-select:none;user-select:none;border:1px solid var(--gray-300)}.kw-blur:hover,.kw-blur.shown{background:var(--gold-100);color:var(--yellow-700);border-color:var(--gold-400)}.logic-chain{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.lc-step{background:var(--white);border:1px solid var(--ai-200);padding:3px var(--s3);border-radius:var(--r-md);font-size:var(--text-xs);color:var(--ai-700);font-weight:600}.lc-arr{color:var(--gray-400)}.submit-warn{align-items:flex-start;gap:var(--s2);background:var(--yellow-50);border:1px solid var(--yellow-100);border-radius:var(--r-lg);padding:var(--s3) var(--s4);font-size:var(--text-xs);color:var(--yellow-700);margin-top:var(--s4);opacity:0;max-height:0;padding-top:0;padding-bottom:0;transition:max-height .25s,opacity .2s,padding .2s;display:flex;overflow:hidden}.submit-warn.show{opacity:1;max-height:80px;padding:var(--s3) var(--s4);animation:fadeUp var(--dur-normal) var(--ease) both}.submit-row{margin-top:var(--s5);justify-content:space-between;align-items:center;display:flex}.submit-left{gap:var(--s3);display:flex}.draft-status{font-size:var(--text-xs);color:var(--gray-400);transition:color var(--dur-micro);align-items:center;gap:4px;display:flex}.draft-status.saving{color:var(--ai-500)}.draft-status.saved{color:var(--green-500)}.side-panel{gap:var(--s5);flex-direction:column;display:flex}.progress-card{border-radius:var(--r-xl);border:1px solid var(--gray-200);box-shadow:var(--shadow-xs);padding:var(--s5);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff}.progress-ring-wrap{width:88px;height:88px;margin:0 auto var(--s4);position:relative}.ring-center-text{text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ring-big{font-size:var(--text-2xl);color:var(--gray-900);font-weight:800;line-height:1}.ring-small{font-size:var(--text-xs);color:var(--gray-500)}.session-grid{gap:var(--s2);text-align:center;margin-top:var(--s4);grid-template-columns:repeat(3,1fr);display:grid}.session-num{font-size:var(--text-lg);font-weight:800}.session-lbl{font-size:var(--text-xs);color:var(--gray-500);margin-top:2px}.rec-reason{background:var(--ai-50);border:1px solid var(--ai-200);border-radius:var(--r-xl);padding:var(--s4)}.rec-title{font-size:var(--text-xs);color:var(--ai-700);align-items:center;gap:var(--s2);margin-bottom:var(--s2);font-weight:700;display:flex}.rec-text{font-size:var(--text-xs);color:var(--gray-600);line-height:1.6}.weak-card{background:var(--red-50);border:1px solid var(--red-100);border-radius:var(--r-xl);padding:var(--s4)}.weak-list{gap:var(--s3);margin-top:var(--s3);flex-direction:column;display:flex}.weak-item{align-items:center;gap:var(--s3);display:flex}.weak-bar-wrap{flex:1}.weak-val{font-size:var(--text-xs);text-align:right;flex-shrink:0;width:32px;font-weight:700}.future-mode{background:var(--gray-50);border:1.5px dashed var(--gray-300);border-radius:var(--r-xl);padding:var(--s4);text-align:center;cursor:default}.future-mode-title{font-size:var(--text-sm);color:var(--gray-500);margin-bottom:4px;font-weight:700}.future-mode-desc{font-size:var(--text-xs);color:var(--gray-400)}@media (width<=1024px){.drill-layout{grid-template-columns:1fr}.side-panel{grid-template-columns:repeat(2,1fr);display:grid}}@media (width<=768px){.side-panel{grid-template-columns:1fr}.subject-tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.qtype-tabs{flex-wrap:nowrap;overflow-x:auto}.toolbar{flex-wrap:wrap}}.qtype-btn-count{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;margin-top:2px;display:flex}.qtype-stat{align-items:center;gap:2px;display:inline-flex}.qtype-stat-label{color:var(--gray-400);font-size:10px;font-weight:500}.qtype-stat-val{font-size:var(--text-xs);color:var(--gray-700);font-weight:700}.qtype-stat-val.today{color:var(--gold-600)}.qtype-btn.active .qtype-stat-val{color:var(--gray-800)}.qtype-btn.active .qtype-stat-val.today{color:var(--gold-700)}.qtype-stat-sep{color:var(--gray-300);padding:0 1px;font-size:10px}.dialog-overlay{z-index:1000;animation:fadeIn var(--dur-micro) var(--ease) both;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog-card{background:var(--white);border-radius:var(--r-2xl);box-shadow:var(--shadow-lg);padding:var(--s8) var(--s8) var(--s7);text-align:center;width:90%;max-width:400px;animation:scaleIn var(--dur-normal) var(--ease) both}.dialog-icon{margin-bottom:var(--s4);font-size:40px;line-height:1}.dialog-title{font-size:var(--text-lg);color:var(--gray-900);margin-bottom:var(--s3);font-weight:800}.dialog-desc{font-size:var(--text-sm);color:var(--gray-600);margin-bottom:var(--s6);line-height:1.7}.dialog-desc strong{color:var(--gray-800)}.dialog-actions{gap:var(--s3);flex-wrap:wrap;justify-content:center;display:flex}.dialog-actions .btn{min-width:120px}.source-type-row{gap:var(--s2);margin-bottom:var(--s3);display:flex}.source-type-btn{padding:4px var(--s4);border-radius:var(--r-full);font-size:var(--text-xs);color:var(--gray-500);background:var(--gray-100);border:1.5px solid var(--gray-200);cursor:pointer;transition:all var(--dur-micro) var(--ease);font-weight:600}.source-type-btn:hover{color:var(--gray-700);border-color:var(--gray-300)}.source-type-btn.active{color:var(--gray-800);background:var(--white);border-color:var(--gray-400);box-shadow:var(--shadow-sm)}.source-type-btn.active.source-exam{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.source-type-btn.active.source-non-exam{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.grading-history-card{border-radius:var(--r-xl);border:1px solid var(--gray-200);box-shadow:var(--shadow-xs);padding:var(--s5);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff}.gh-header{margin-bottom:var(--s3);justify-content:space-between;align-items:center;display:flex}.gh-title{font-size:var(--text-sm);color:var(--gray-700);font-weight:700}.gh-view-all{font-size:var(--text-xs);color:var(--ai-500);cursor:pointer;background:0 0;border:none;padding:0}.gh-view-all:hover{color:var(--ai-700);text-decoration:underline}.gh-empty{text-align:center;padding:var(--s5) var(--s3)}.gh-empty-icon{margin-bottom:var(--s2);opacity:.6;font-size:28px}.gh-empty-text{font-size:var(--text-sm);color:var(--gray-500);margin-bottom:2px;font-weight:600}.gh-empty-hint{font-size:var(--text-xs);color:var(--gray-400)}.gh-list{flex-direction:column;gap:2px;display:flex}.gh-item{align-items:center;gap:var(--s3);padding:8px var(--s3);border-radius:var(--r-md);cursor:pointer;transition:background .15s;display:flex;position:relative}.gh-item:hover{background:var(--gray-50)}.gh-item:not(.gh-not-clickable):hover .gh-arrow{opacity:1}.gh-not-clickable{cursor:default;opacity:.7}.gh-not-clickable:hover{background:0 0}.gh-status{font-size:var(--text-xs);flex-shrink:0;align-items:center;gap:4px;min-width:60px;font-weight:600;display:inline-flex}.gh-status-label{font-size:var(--text-xs)}.gh-item.gh-status-pending .gh-status{color:var(--gray-500)}.gh-item.gh-status-processing .gh-status{color:var(--ai-500)}.gh-item.gh-status-completed .gh-status{color:var(--green-500)}.gh-item.gh-status-failed .gh-status,.gh-item.gh-status-permanent_failed .gh-status{color:var(--red-500)}.gh-item.gh-status-cancelled .gh-status{color:var(--gray-400)}.gh-qtype{font-size:var(--text-xs);color:var(--gray-600);background:var(--gray-100);border-radius:var(--r-full);white-space:nowrap;flex-shrink:0;padding:1px 8px;font-weight:500}.gh-score{font-size:var(--text-xs);color:var(--green-500);text-align:right;flex-shrink:0;min-width:36px;font-weight:700}.gh-time{font-size:var(--text-xs);color:var(--gray-400);white-space:nowrap;flex-shrink:0;margin-left:auto}.gh-arrow{font-size:var(--text-xs);color:var(--gray-400);opacity:0;flex-shrink:0;transition:opacity .15s}.gh-footer{margin-top:var(--s3);padding-top:var(--s2);border-top:1px solid var(--gray-100);font-size:var(--text-xs);color:var(--gray-400);text-align:center}@media (width<=768px){.gh-score,.gh-arrow{display:none}.gh-status{min-width:52px}}.share-poster-overlay{z-index:1100;background:#0009;flex-direction:column;justify-content:center;align-items:center;animation:.2s poster-overlay-in;display:flex;position:fixed;inset:0}@keyframes poster-overlay-in{0%{opacity:0}to{opacity:1}}.share-poster-container{flex-direction:column;align-items:center;gap:16px;max-width:90vw;max-height:95vh;display:flex}.share-poster-preview{object-fit:contain;border-radius:12px;max-width:90vw;max-height:75vh;animation:.3s poster-img-in;box-shadow:0 8px 32px #0000004d}@keyframes poster-img-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.share-poster-actions{align-items:center;gap:16px;display:flex}.share-poster-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:24px;padding:12px 28px;font-size:15px;font-weight:600;transition:all .2s}.share-poster-btn:active{transform:scale(.96)}.share-poster-btn--save{color:#fff;background:linear-gradient(135deg,#1e3a5f,#2563eb);min-width:140px}.share-poster-btn--save:active{opacity:.85}.share-poster-btn--close{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff3}.share-poster-btn--close:active{background:#ffffff4d}.share-poster-loading{color:#fff;flex-direction:column;align-items:center;gap:16px;display:flex}.share-poster-spinner{border:3px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:40px;height:40px;animation:.8s linear infinite poster-spin}@keyframes poster-spin{to{transform:rotate(360deg)}}.share-poster-loading-text{opacity:.8;font-size:14px}.share-poster-error{color:#fff;text-align:center;flex-direction:column;align-items:center;gap:16px;padding:24px;display:flex}.share-poster-error-text{opacity:.9;max-width:260px;font-size:14px;line-height:1.5}.share-poster-btn--retry{color:#1e3a5f;background:#f59e0b;min-width:120px;font-weight:700}.share-poster-btn--retry:active{background:#d97706}.share-panel-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;animation:.2s share-overlay-in;display:flex;position:fixed;inset:0}@keyframes share-overlay-in{0%{opacity:0}to{opacity:1}}.share-panel{background:#fff;border-radius:20px;width:100%;max-width:420px;max-height:90vh;margin:0 16px;padding:24px 20px 32px;animation:.25s share-panel-in;overflow-y:auto;box-shadow:0 20px 60px #0000004d}@keyframes share-panel-in{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.share-panel-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.share-panel-title{color:#374151;margin:0;font-size:18px;font-weight:700}.share-panel-close{color:#6b7280;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#f3f4f6;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.share-panel-close:active{background:#e5e7eb}.share-panel-body{justify-content:center;gap:24px 36px;padding:8px 0 16px;display:grid}.share-panel-body--2col{grid-template-columns:repeat(2,auto)}.share-panel-body--3col{grid-template-columns:repeat(3,auto)}.share-panel-item{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;align-items:center;gap:8px;padding:0;display:flex}.share-panel-item:active{opacity:.7}.share-panel-item-icon{border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;font-size:26px;display:flex}.share-panel-item-label{color:#374151;white-space:nowrap;font-size:12px;font-weight:500}.share-panel-divider{align-items:center;gap:12px;margin:8px 0 16px;display:flex}.share-panel-divider:before,.share-panel-divider:after{content:"";background:#e5e7eb;flex:1;height:1px}.share-panel-divider span{color:#9ca3af;font-size:12px}.share-panel-copy{margin-bottom:12px}.share-panel-cancel{color:#6b7280;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#f3f4f6;border:none;border-radius:10px;width:100%;padding:14px;font-size:14px;font-weight:500}.share-panel-cancel:active{background:#e5e7eb}.source-drawer-overlay{z-index:9000;background:#00000040;justify-content:flex-end;animation:.2s source-drawer-overlay-in;display:flex;position:fixed;inset:0}@keyframes source-drawer-overlay-in{0%{opacity:0}to{opacity:1}}.source-drawer-panel{background:#fff;border-radius:20px 0 0 20px;flex-direction:column;width:480px;max-width:90vw;height:100vh;animation:.25s cubic-bezier(.34,1.56,.64,1) source-drawer-slide-in;display:flex;overflow:hidden;box-shadow:-4px 0 24px #0000001a}@keyframes source-drawer-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.source-drawer-header{padding:var(--s6,20px) var(--s6,20px) var(--s4,14px);border-bottom:1px solid var(--gray-200,#e5e7eb);background:var(--gray-50,#f9fafb);border-radius:20px 0 0;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.source-drawer-title{font-size:var(--text-lg,18px);color:var(--gray-900,#111827);align-items:center;gap:var(--s2,6px);font-weight:800;display:flex}.source-drawer-close{border-radius:var(--r-full,9999px);background:var(--gray-200,#e5e7eb);width:32px;height:32px;color:var(--gray-600,#4b5563);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;transition:all .15s;display:flex}.source-drawer-close:hover{background:var(--gray-300,#d1d5db);color:var(--gray-800,#1f2937)}.source-drawer-body{padding:var(--s6,20px);flex:1;overflow-y:auto}.source-drawer-group{margin-bottom:var(--s6,20px)}.source-drawer-group-title{font-size:var(--text-sm,14px);color:var(--gray-700,#374151);margin-bottom:var(--s3,10px);align-items:center;gap:var(--s2,6px);padding-bottom:var(--s2,6px);border-bottom:2px solid var(--ai-100,#dbeafe);font-weight:700;display:flex}.source-drawer-group-icon{font-size:16px}.source-drawer-chunk{padding:var(--s4,14px);border-radius:var(--r-lg,12px);border:1px solid var(--gray-200,#e5e7eb);margin-bottom:var(--s3,10px);background:var(--white,#fff);transition:all .15s}.source-drawer-chunk:hover{border-color:var(--ai-200,#bfdbfe);box-shadow:0 1px 4px #0000000d}.source-drawer-chunk-meta{align-items:center;gap:var(--s2,6px);margin-bottom:var(--s2,6px);flex-wrap:wrap;display:flex}.source-drawer-chunk-chapter{font-size:var(--text-xs,12px);color:var(--ai-600,#2563eb);background:var(--ai-50,#eff6ff);padding:2px var(--s2,6px);border-radius:var(--r-sm,4px);font-weight:600}.source-drawer-chunk-page{color:var(--gray-400,#9ca3af);background:var(--gray-100,#f3f4f6);padding:1px var(--s2,6px);border-radius:var(--r-sm,4px);font-size:10px}.source-drawer-chunk-content{font-size:var(--text-sm,14px);color:var(--gray-700,#374151);margin-bottom:var(--s2,6px);line-height:1.7;font-family:var(--font-serif,"Noto Serif SC", serif);white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.source-drawer-chunk-scores{align-items:center;gap:var(--s3,10px);display:flex}.source-drawer-score{color:var(--gray-500,#6b7280);align-items:center;gap:3px;font-size:10px;display:flex}.source-drawer-score-bar{background:var(--gray-200,#e5e7eb);border-radius:2px;width:48px;height:4px;overflow:hidden}.source-drawer-score-fill{border-radius:2px;height:100%;transition:width .3s}.source-drawer-score-fill.high{background:var(--green-500,#22c55e)}.source-drawer-score-fill.medium{background:var(--yellow-500,#eab308)}.source-drawer-score-fill.low{background:var(--red-500,#ef4444)}.source-drawer-empty{padding:var(--s8,32px);color:var(--gray-400,#9ca3af);flex-direction:column;justify-content:center;align-items:center;display:flex}.source-drawer-empty-icon{margin-bottom:var(--s3,10px);font-size:40px}.source-drawer-empty-text{font-size:var(--text-sm,14px)}@media (width<=600px){.source-drawer-panel{border-radius:16px 0 0;width:100vw}}.blur-overlay-wrapper{border-radius:8px;position:relative;overflow:hidden}.blur-overlay-content{filter:blur(8px);opacity:.4;pointer-events:none;-webkit-user-select:none;user-select:none}.blur-overlay-mask{-webkit-backdrop-filter:blur(4px);z-index:2;text-align:center;background:#ffffffbf;flex-direction:column;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.blur-overlay-icon{width:44px;height:44px;color:var(--ai-primary,#6366f1);background:#6366f114;border-radius:50%;justify-content:center;align-items:center;margin-bottom:10px;line-height:1;display:flex}.blur-overlay-icon svg{width:24px;height:24px}.blur-overlay-text{color:var(--gray-800,#333);max-width:240px;margin:0 0 4px;font-size:14px;font-weight:600;line-height:1.5}.blur-overlay-upgrade-text{color:var(--gray-500,#999);max-width:240px;margin:0;font-size:12px;line-height:1.4}.blur-overlay-upgrade-btn{background:linear-gradient(135deg, var(--ai-primary,#6366f1), var(--ai-secondary,#8b5cf6));color:#fff;border-radius:20px;padding:6px 18px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-block}.blur-overlay-upgrade-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f159}.blur-overlay-upgrade-btn--modal{background:linear-gradient(135deg, var(--gold-500,#f59e0b), var(--gold-600,#d97706))}.tier-guard-disabled-wrapper{display:inline-block;position:relative}.tier-guard-disabled-overlay{cursor:not-allowed;z-index:1;border-radius:inherit;background:#ffffff80;position:absolute;inset:0}.tier-guard-upgrade-hint{color:#6b7280;white-space:nowrap;z-index:2;font-size:11px;position:absolute;bottom:-28px;left:50%;transform:translate(-50%)}@keyframes polling-bar{0%{transform:translate(-100%)}50%{transform:translate(150%)}to{transform:translate(-100%)}}.review-breadcrumb{align-items:center;gap:var(--s2);font-size:var(--text-sm);color:var(--gray-500);margin-bottom:var(--s6);display:flex}.review-breadcrumb a{color:var(--ai-600);cursor:pointer;transition:color var(--dur-micro)}.review-breadcrumb a:hover{color:var(--ai-700)}.review-page .question-card{border-radius:var(--r-2xl);padding:var(--s8);margin-bottom:var(--s6);position:relative;overflow:hidden;background:linear-gradient(135deg, var(--ink-900), var(--ink-800))!important}.review-page .question-card:after{content:"";pointer-events:none;background:#c9a84c14;border-radius:50%;width:200px;height:200px;position:absolute;bottom:-40px;right:-40px}.question-meta{align-items:center;gap:var(--s3);margin-bottom:var(--s4);flex-wrap:wrap;display:flex}.question-text{font-size:var(--text-xl);color:var(--white);font-weight:700;line-height:1.6;font-family:var(--font-serif)}.school-badge{align-items:center;gap:var(--s2);font-size:var(--text-xs);color:#fffc;padding:3px var(--s3);border-radius:var(--r-full);background:#ffffff1a;font-weight:600;display:flex}.question-meta-right{align-items:center;gap:var(--s3);margin-left:auto;display:flex}.review-page .question-card .q-source-tag{padding:3px var(--s3);border-radius:var(--r-full);font-size:var(--text-xs);white-space:nowrap;align-items:center;gap:4px;font-weight:600;display:inline-flex}.review-page .question-card .q-source-exam{color:#fca5a5;background:#ef444433;border:1px solid #ef444459}.review-page .question-card .q-source-simulation{color:#93c5fd;background:#3b82f633;border:1px solid #3b82f659}.review-page .question-card .q-source-practice{color:#fff9;background:#ffffff14;border:1px solid #ffffff26}.score-hero{background:var(--white);border-radius:var(--r-2xl);border:1px solid var(--gray-200);padding:var(--s8);margin-bottom:var(--s6);box-shadow:var(--shadow-sm)}.score-main{align-items:center;gap:var(--s8);flex-wrap:wrap;display:flex}.score-circle-wrap{align-items:center;gap:var(--s3);flex-direction:column;flex-shrink:0;display:flex}.score-circle{width:128px;height:128px;position:relative}.score-circle svg{transform:rotate(-90deg)}.score-number{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.score-num-big{font-size:var(--text-4xl);color:var(--gray-900);font-weight:900;line-height:1}.score-num-total{font-size:var(--text-sm);color:var(--gray-400);margin-top:2px}.score-verdict{font-size:var(--text-sm);padding:4px var(--s4);border-radius:var(--r-full);font-weight:700}.verdict-excellent{color:#065f46;background:#d1fae5}.verdict-good{background:var(--ai-100);color:var(--ai-700)}.verdict-medium{background:var(--yellow-100);color:var(--yellow-700)}.verdict-poor{background:var(--red-100);color:var(--red-700)}.dim-grid{gap:var(--s4);flex:1;grid-template-columns:repeat(2,1fr);min-width:300px;display:grid}.dim-item{background:var(--gray-50);border-radius:var(--r-xl);padding:var(--s4);border:1.5px solid var(--gray-200);transition:all var(--dur-micro) var(--ease)}.dim-item:hover{border-color:var(--gold-400);background:var(--gold-50);transform:translateY(-1px)}.dim-weight{font-size:var(--text-xs);color:var(--gray-400);background:var(--gray-200);border-radius:var(--r-full);padding:2px 6px}.dim-score-row{align-items:baseline;gap:var(--s1);margin-bottom:var(--s2);display:flex}.dim-score{font-size:var(--text-2xl);color:var(--gray-900);font-weight:800}.dim-score-max{font-size:var(--text-sm);color:var(--gray-400)}.dim-bar{height:8px}.dim-tip{font-size:var(--text-xs);color:var(--gray-500);margin-top:var(--s2);line-height:1.5}.review-body{gap:var(--s6);grid-template-columns:1fr 320px;align-items:start;display:grid}.answer-section{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);margin-bottom:var(--s6);overflow:hidden}.answer-hd{padding:var(--s4) var(--s6);background:var(--gray-50);border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;display:flex}.answer-hd-title{font-size:var(--text-sm);color:var(--gray-700);font-weight:700}.answer-meta{align-items:center;gap:var(--s3);display:flex}.answer-body{padding:var(--s6);font-size:var(--text-base);color:var(--gray-800);line-height:1.8;font-family:var(--font-serif);white-space:pre-wrap;word-break:break-word;max-height:280px;overflow-y:auto}.answer-body .hl-good{cursor:pointer;background:#10b98126;border-bottom:2px solid #10b981;border-radius:2px;padding:1px 4px;position:relative}.answer-body .hl-warn,.answer-body .hl-partial{cursor:pointer;background:#f59e0b1f;border-bottom:2px solid #f59e0b;border-radius:2px;padding:1px 4px;position:relative}.answer-body .hl-bad,.answer-body .hl-miss{cursor:pointer;background:#ef44441f;border-bottom:2px solid #ef4444;border-radius:2px;padding:1px 4px;position:relative}.hl-tooltip-fixed{background:var(--gray-800,#1f2937);color:#fff;white-space:normal;z-index:9999;pointer-events:none;min-width:80px;max-width:320px;font-size:12px;line-height:1.4;font-family:var(--font-sans);word-break:break-word;opacity:0;border-radius:6px;padding:6px 10px;transition:opacity .15s;position:fixed;box-shadow:0 2px 8px #00000026}.verdict-summary{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);margin-bottom:var(--s6);overflow:hidden}.verdict-summary-hd{padding:var(--s4) var(--s6);border-bottom:1px solid var(--gray-100)}.verdict-summary-body{padding:var(--s4) var(--s6);font-size:var(--text-sm);color:var(--gray-700);white-space:pre-wrap;word-break:break-word;line-height:1.7}.verdict-dims{border-top:1px solid var(--gray-100);padding:var(--s3) var(--s6) var(--s4)}.verdict-dim-item{padding:var(--s3) 0;border-bottom:1px solid var(--gray-50)}.verdict-dim-item:last-child{border-bottom:none}.verdict-dim-hd{font-size:var(--text-sm);color:var(--gray-800);margin-bottom:var(--s1);justify-content:space-between;align-items:center;font-weight:600;display:flex}.verdict-dim-score{font-size:var(--text-xs);color:var(--gray-500);font-weight:500}.verdict-dim-fb{font-size:var(--text-xs);color:var(--gray-600);white-space:pre-wrap;word-break:break-word;line-height:1.6}.verdict-dim-item.dim-fb-good .verdict-dim-hd{color:var(--green-700)}.verdict-dim-item.dim-fb-warn .verdict-dim-hd{color:var(--yellow-700)}.verdict-dim-item.dim-fb-bad .verdict-dim-hd{color:var(--red-700)}.points-section{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);margin-bottom:var(--s6);overflow:hidden}.points-hd{padding:var(--s4) var(--s6);border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;display:flex}.points-list{padding:var(--s4) var(--s6)}.point-item{align-items:flex-start;gap:var(--s3);padding:var(--s4) 0;border-bottom:1px solid var(--gray-100);display:flex}.point-item:last-child{border-bottom:none}.point-status{border-radius:var(--r-full);flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:2px;font-size:12px;display:flex}.point-hit{background:var(--green-100);color:var(--green-700)}.point-miss{background:var(--red-100);color:var(--red-700)}.point-partial{background:var(--yellow-100);color:var(--yellow-700)}.point-content{flex:1;min-width:0}.point-text{font-size:var(--text-sm);color:var(--gray-800);margin-bottom:var(--s2);line-height:1.6}.point-cite-row{gap:var(--s2);flex-wrap:wrap;align-items:center;display:flex}.point-score{font-size:var(--text-xs);white-space:nowrap;flex-shrink:0;margin-left:auto;font-weight:700}.point-score.hit{color:var(--green-700)}.point-score.miss{color:var(--red-700)}.point-score.partial{color:var(--yellow-700)}.suggest-section{background:linear-gradient(135deg, var(--ai-50), #f0f7ff);border-radius:var(--r-xl);border:1px solid var(--ai-100);margin-bottom:var(--s6);overflow:hidden}.suggest-hd{padding:var(--s4) var(--s6);border-bottom:1px solid var(--ai-100);align-items:center;gap:var(--s3);display:flex}.ai-icon-badge{border-radius:var(--r-md);background:linear-gradient(135deg, var(--ai-500), var(--ai-700));width:28px;height:28px;color:var(--white);flex-shrink:0;justify-content:center;align-items:center;font-size:14px;display:flex}.suggest-body{padding:var(--s6)}.suggest-item{padding:var(--s4);background:var(--white);border-radius:var(--r-lg);border:1px solid var(--ai-100);margin-bottom:var(--s3)}.suggest-item:last-child{margin-bottom:0}.suggest-item-hd{align-items:center;gap:var(--s2);margin-bottom:var(--s2);display:flex}.suggest-tag{padding:2px var(--s2);border-radius:var(--r-sm);background:var(--ai-100);color:var(--ai-700);font-size:10px;font-weight:700}.suggest-text{font-size:var(--text-sm);color:var(--gray-700);line-height:1.7}.suggest-cite-row{gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;display:flex}.model-answer-section{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);margin-bottom:var(--s6);overflow:hidden}.model-standard-selector{align-items:center;gap:var(--s2);background:var(--gray-50);padding:var(--s3) var(--s6);border-bottom:1px solid var(--gray-200);display:flex}.standard-btn{padding:4px var(--s3);font-size:var(--text-xs);border-radius:var(--r-full);cursor:pointer;border:1.5px solid var(--gray-300);color:var(--gray-600);background:var(--white);transition:all var(--dur-fast) var(--ease);font-weight:600}.standard-btn.active{background:var(--ink-900);color:var(--white);border-color:var(--ink-900)}.standard-btn:hover:not(.active){border-color:var(--gray-400);background:var(--gray-100)}.model-content{padding:var(--s6)}.model-text{font-size:var(--text-sm);color:var(--gray-700);line-height:1.9;font-family:var(--font-serif);white-space:pre-wrap}.next-actions{background:linear-gradient(135deg, var(--gold-50), #fff9ed);border-radius:var(--r-lg);border:1px solid var(--yellow-100);padding:var(--s4);margin-bottom:var(--s3)}.next-title{font-size:var(--text-base);color:var(--gray-800);margin-bottom:var(--s3);align-items:center;gap:var(--s2);font-weight:700;display:flex}.next-btn-row{gap:var(--s3);flex-wrap:wrap;display:flex}.sidebar-card{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);margin-bottom:var(--s4);box-shadow:var(--shadow-xs);overflow:hidden}.sidebar-card-hd{padding:var(--s4) var(--s5);border-bottom:1px solid var(--gray-100);align-items:center;gap:var(--s2);display:flex}.sidebar-card-title{font-size:var(--text-sm);color:var(--gray-800);font-weight:700}.sidebar-card-bd{padding:var(--s4) var(--s5)}.err-summary-list{gap:var(--s2);flex-direction:column;display:flex}.err-summary-row{align-items:center;gap:var(--s3);padding:var(--s3);border-radius:var(--r-lg);background:var(--gray-50);display:flex}.err-count{font-size:var(--text-xs);background:var(--white);border:1px solid var(--gray-200);padding:1px var(--s2);border-radius:var(--r-full);color:var(--gray-600);text-align:center;min-width:24px;margin-left:auto;font-weight:700}.rec-item{padding:var(--s3) 0;border-bottom:1px solid var(--gray-100);cursor:pointer;transition:all var(--dur-fast) var(--ease)}.rec-item:last-child{border-bottom:none}.rec-item:hover .rec-title{color:var(--ai-600)}.rec-title{font-size:var(--text-sm);color:var(--gray-800);margin-bottom:var(--s1);transition:color var(--dur-fast) var(--ease);font-weight:500;line-height:1.5}.rec-meta{align-items:center;gap:var(--s2);display:flex}.rec-reason{color:var(--gray-500);background:var(--gray-100);padding:1px var(--s2);border-radius:var(--r-full);font-size:10px}.timeline-item{gap:var(--s3);padding:var(--s3) 0;border-bottom:1px solid var(--gray-100);display:flex}.timeline-item:last-child{border-bottom:none}.t-dot{border-radius:var(--r-full);background:var(--gray-300);flex-shrink:0;width:8px;height:8px;margin-top:6px}.t-dot.current{background:var(--ai-500)}.t-info{flex:1;min-width:0}.t-title{font-size:var(--text-xs);color:var(--gray-700);font-weight:500;line-height:1.4}.t-time{color:var(--gray-400);margin-top:1px;font-size:10px}.t-score{font-size:var(--text-xs);font-weight:700}.t-score.up{color:var(--green-600)}.t-score.down{color:var(--red-500)}.t-score.eq{color:var(--gray-500)}.fab-bar{bottom:var(--s6);background:var(--ink-900);border-radius:var(--r-full);padding:var(--s3) var(--s6);align-items:center;gap:var(--s4);box-shadow:var(--shadow-2xl);z-index:40;animation:fadeUp var(--dur-slow) var(--ease) both;display:flex;position:fixed;left:50%;transform:translate(-50%)}.fab-btn{align-items:center;gap:var(--s2);padding:var(--s2) var(--s4);border-radius:var(--r-full);font-size:var(--text-sm);cursor:pointer;transition:all var(--dur-micro) var(--ease);color:#ffffffb3;font-weight:600;display:flex}.fab-btn:hover{color:var(--white);background:#ffffff1a}.fab-btn:active{transform:scale(.96)}.fab-btn:disabled{opacity:.3;cursor:default}.fab-btn:disabled:hover{color:#ffffffb3;background:0 0;transform:none}.fab-btn.primary{background:linear-gradient(135deg, var(--gold-500), var(--gold-600));color:var(--ink-900);box-shadow:var(--shadow-gold)}.fab-btn.primary:hover{filter:brightness(1.08);transform:translateY(-1px)}.fab-sep{background:#ffffff1f;width:1px;height:24px}.annotation-popover{z-index:var(--z-popover);background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);box-shadow:var(--shadow-2xl);padding:var(--s5);width:340px;max-width:90vw;animation:fadeUp var(--dur-normal) var(--ease) both;position:fixed}.annotation-popover.show{display:block}.pop-close{top:var(--s3);right:var(--s3);border-radius:var(--r-full);cursor:pointer;width:28px;height:28px;color:var(--gray-500);transition:all var(--dur-micro);justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute}.pop-close:hover{background:var(--gray-100);color:var(--gray-700)}@media (width<=1024px){.review-body{grid-template-columns:1fr}.fab-bar{bottom:var(--s4);padding:var(--s3) var(--s4);gap:var(--s3)}}@media (width<=768px){.score-main{flex-direction:column}.dim-grid{grid-template-columns:1fr}.fab-bar{display:none}}.data-source-section{background:var(--white,#fff);border-radius:var(--r-xl,16px);border:1px solid var(--gray-200,#e5e7eb);padding:var(--s5,18px) var(--s6,22px);margin-top:var(--s4,14px)}.data-source-section .card-hd{align-items:center;gap:var(--s3,10px);margin-bottom:var(--s2,6px);display:flex}.data-source-section .card-title{font-size:var(--text-lg,18px);color:var(--gray-900,#111827);font-weight:800}.data-source-list{gap:var(--s2,6px);flex-direction:column;display:flex}.data-source-item{padding:var(--s3,10px) var(--s4,14px);border-radius:var(--r-lg,12px);border:1px solid var(--gray-200,#e5e7eb);background:var(--gray-50,#f9fafb);cursor:pointer;transition:all .15s}.data-source-item:hover{border-color:var(--ai-300,#93c5fd);background:var(--ai-50,#eff6ff);box-shadow:0 1px 4px #0000000d}.data-source-item-header{align-items:center;gap:var(--s2,6px);margin-bottom:2px;display:flex}.data-source-index{color:var(--ai-600,#2563eb);background:var(--ai-100,#dbeafe);border-radius:var(--r-sm,4px);flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:700}.data-source-book{font-size:var(--text-sm,14px);color:var(--gray-800,#1f2937);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.data-source-author{font-size:var(--text-xs,12px);color:var(--gray-500,#6b7280);flex-shrink:0}.data-source-score{border-radius:var(--r-sm,4px);flex-shrink:0;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:600}.data-source-score.high{color:var(--green-700,#15803d);background:var(--green-100,#dcfce7)}.data-source-score.medium{color:var(--yellow-700,#a16207);background:var(--yellow-100,#fef9c3)}.data-source-score.low{color:var(--red-700,#b91c1c);background:var(--red-100,#fee2e2)}.data-source-item-meta{align-items:center;gap:var(--s1,4px);margin-bottom:var(--s1,4px);flex-wrap:wrap;display:flex}.data-source-chapter{font-size:var(--text-xs,12px);color:var(--ai-600,#2563eb);background:var(--ai-50,#eff6ff);border-radius:var(--r-sm,4px);padding:1px 6px;font-weight:600}.data-source-page,.data-source-chunk,.data-source-rerank{color:var(--gray-400,#9ca3af);background:var(--gray-100,#f3f4f6);border-radius:var(--r-sm,4px);padding:1px 5px;font-size:10px}.data-source-snippet{font-size:var(--text-xs,12px);color:var(--gray-500,#6b7280);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.5;display:-webkit-box;overflow:hidden}.data-source-empty{padding:var(--s6,22px) var(--s4,14px);color:var(--gray-400,#9ca3af);text-align:center;flex-direction:column;align-items:center;display:flex}.data-source-empty-icon{margin-bottom:var(--s3,10px);font-size:32px}.data-source-empty-text{font-size:var(--text-sm,14px);color:var(--gray-500,#6b7280);margin-bottom:var(--s1,4px);font-weight:600}.data-source-empty-sub{font-size:var(--text-xs,12px);color:var(--gray-400,#9ca3af)}.pagination-wrap{align-items:center;gap:var(--s2);padding:var(--s4) 0;border-top:1px solid var(--gray-100);margin-top:var(--s4);flex-direction:column;display:flex}.pagination{justify-content:center;align-items:center;gap:var(--s1);-webkit-user-select:none;user-select:none;display:flex}.pagination-btn{border:1.5px solid var(--gray-300);border-radius:var(--r-md);background:var(--white);min-width:32px;height:30px;color:var(--gray-700);font-size:var(--text-sm);cursor:pointer;transition:all var(--dur-micro) var(--ease);padding:0 var(--s2);justify-content:center;align-items:center;font-weight:500;line-height:1;display:inline-flex}.pagination-btn:hover:not(:disabled):not(.active){border-color:var(--blue-400);color:var(--blue-600);background:var(--blue-50)}.pagination-btn.active{background:var(--blue-500);color:var(--white);border-color:var(--blue-500);font-weight:700}.pagination-btn:disabled{opacity:.35;cursor:not-allowed}.pagination-prev,.pagination-next{font-size:var(--text-sm);padding:0 var(--s3);font-weight:600}.pagination-ellipsis{min-width:28px;height:30px;font-size:var(--text-sm);color:var(--gray-400);letter-spacing:2px;justify-content:center;align-items:center;display:inline-flex}.pagination-info{font-size:var(--text-xs);color:var(--gray-400)}.filter-bar{align-items:center;gap:var(--s3);padding:var(--s5) var(--s8);background:var(--white);border-bottom:1px solid var(--gray-200);z-index:var(--z-sticky);margin:0 calc(-1 * var(--s8)) var(--s6);border-radius:0;flex-wrap:wrap;display:flex;position:sticky;top:0}.filter-group{align-items:center;gap:var(--s2);display:flex}.filter-label{font-size:var(--text-xs);color:var(--gray-500);white-space:nowrap;font-weight:600}.filter-chip{padding:4px var(--s3);border-radius:var(--r-full);font-size:var(--text-xs);cursor:pointer;border:1.5px solid var(--gray-300);color:var(--gray-600);background:var(--white);transition:all var(--dur-micro) var(--ease);align-items:center;gap:4px;font-weight:600;display:inline-flex}.filter-chip:hover{border-color:var(--gray-400);background:var(--gray-50)}.filter-chip:active{transform:scale(.97)}.filter-chip:focus-visible{box-shadow:var(--shadow-focus-gold)}.filter-chip.active{background:var(--ink-900);color:var(--white);border-color:var(--ink-900)}.filter-chip-icon{font-size:12px;line-height:1}.filter-chip-count{border-radius:var(--r-full);text-align:center;background:#00000014;min-width:18px;padding:0 5px;font-size:11px;line-height:18px}.filter-chip.active .filter-chip-count{color:var(--white);background:#ffffff4d}.filter-chip.fc-err001.active{color:var(--white);background:#991b1b;border-color:#991b1b}.filter-chip.fc-err002.active{color:var(--white);background:#9a3412;border-color:#9a3412}.filter-chip.fc-err003.active{color:var(--white);background:#78350f;border-color:#78350f}.filter-chip.fc-err004.active{color:var(--white);background:#1e40af;border-color:#1e40af}.filter-chip.fc-err005.active{color:var(--white);background:#6d28d9;border-color:#6d28d9}.filter-chip.fc-err006.active{color:var(--white);background:#065f46;border-color:#065f46}.filter-chip.fc-err007.active{color:var(--white);background:#4338ca;border-color:#4338ca}.filter-chip.fc-err008.active{color:var(--white);background:#9d174d;border-color:#9d174d}.filter-sep{background:var(--gray-200);width:1px;height:16px}.filter-sort{align-items:center;gap:var(--s2);font-size:var(--text-xs);color:var(--gray-500);margin-left:auto;display:flex}.sort-select{font-size:var(--text-xs);padding:4px var(--s3);border:1.5px solid var(--gray-300);border-radius:var(--r-md);background:var(--white);color:var(--gray-700);cursor:pointer;transition:border-color var(--dur-micro)}.sort-select:focus{border-color:var(--gold-500)}@media (width<=768px){.filter-bar{flex-direction:column;align-items:flex-start}.filter-sort{margin-left:0}}.mistakes-topbar{align-items:center;gap:var(--s4);margin-bottom:var(--s5);display:flex}.mistakes-topbar-title{font-size:var(--text-xl);color:var(--gray-900);flex:1;font-weight:700}.mistakes-topbar-actions{align-items:center;gap:var(--s3);display:flex}.stat-summary{gap:var(--s4);margin-bottom:var(--s6);grid-template-columns:repeat(4,1fr);display:grid}.stat-card{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);padding:var(--s5);transition:all var(--dur-micro) var(--ease)}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-card.active{border-color:var(--gold-500);background:linear-gradient(135deg, var(--white) 0%, #d4af370d 100%);box-shadow:0 0 0 3px #d4af3726}.stat-hd{align-items:center;gap:var(--s3);margin-bottom:var(--s2);display:flex}.stat-icon{border-radius:var(--r-lg);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.stat-label{font-size:var(--text-xs);color:var(--gray-500);font-weight:600}.stat-value{font-size:var(--text-3xl);color:var(--gray-900);font-weight:800;line-height:1.1}.stat-delta{font-size:var(--text-xs);margin-top:var(--s2);color:var(--gray-400)}.stat-delta.up{color:var(--green-500)}.stat-delta.down{color:var(--red-500)}.mistakes-layout{gap:var(--s6);grid-template-columns:1fr 320px;align-items:start;display:grid}.subject-group{margin-bottom:var(--s6)}.subject-group-hd{align-items:center;gap:var(--s3);margin-bottom:var(--s3);padding-bottom:var(--s2);border-bottom:2px solid var(--gray-200);display:flex}.subject-group-title{font-size:var(--text-base);color:var(--gray-800);font-weight:700}.subject-group-count{font-size:var(--text-sm);color:var(--gray-500)}.mistake-card{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);margin-bottom:var(--s4);transition:all var(--dur-micro) var(--ease);overflow:hidden}.mistake-card:hover{border-color:var(--gray-300);box-shadow:var(--shadow-md);transform:translateY(-1px)}.mistake-card:active{transform:scale(.995)}.mistake-card.mastered{opacity:.7}.mc-head{padding:var(--s4) var(--s5);align-items:flex-start;gap:var(--s3);cursor:pointer;display:flex}.mc-check{border-radius:var(--r-sm);border:2px solid var(--gray-300);cursor:pointer;width:20px;height:20px;transition:all var(--dur-micro) var(--ease);flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:11px;display:flex}.mc-check:hover{border-color:var(--green-500)}.mc-check.checked{background:var(--green-500);border-color:var(--green-500);color:var(--white)}.mc-main{flex:1;min-width:0}.mc-meta{align-items:center;gap:var(--s2);margin-bottom:var(--s2);flex-wrap:wrap;display:flex}.mc-question{font-size:var(--text-sm);color:var(--gray-800);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:500;line-height:1.6;display:-webkit-box;overflow:hidden}.mc-card-foot{align-items:center;gap:var(--s3);margin-top:var(--s2);flex-wrap:wrap;display:flex}.mc-date{font-size:var(--text-xs);color:var(--gray-400)}.mc-score{font-size:var(--text-xs);padding:2px var(--s2);border-radius:var(--r-full);font-weight:700}.mc-score.low{background:var(--red-100);color:var(--red-700)}.mc-score.mid{background:var(--yellow-100);color:var(--yellow-700)}.mc-score.high{background:var(--green-100);color:var(--green-700)}.mc-actions{gap:var(--s2);margin-left:auto;display:flex}.mc-expand-btn{border-radius:var(--r-full);width:28px;height:28px;color:var(--gray-400);transition:transform var(--dur-micro) var(--ease);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:12px;display:flex}.mc-expand-btn:hover{background:var(--gray-100)}.mc-expand-btn.rotate{transform:rotate(180deg)}.mc-body{border-top:1px solid var(--gray-100);animation:fadeIn var(--dur-normal) var(--ease) both}.mc-compare{grid-template-columns:1fr 1fr;display:grid}.mc-compare-col{padding:var(--s5)}.mc-compare-col:first-child{border-right:1px solid var(--gray-100)}.compare-hd{font-size:var(--text-xs);margin-bottom:var(--s3);align-items:center;gap:var(--s2);font-weight:700;display:flex}.compare-text{font-size:var(--text-sm);color:var(--gray-700);white-space:pre-wrap;line-height:1.9;font-family:var(--font-serif);max-height:220px;overflow-y:auto}.compare-text .del{color:var(--red-500);background:#ef444414;border-radius:3px;padding:0 2px;text-decoration:line-through}.compare-text .ins{color:var(--green-700);background:#10b9811a;border-radius:3px;padding:0 2px;font-weight:600}.compare-text .hl-good{cursor:pointer;background:#10b98126;border-bottom:2px solid #10b981;border-radius:2px;padding:0 2px;position:relative}.compare-text .hl-bad,.compare-text .hl-miss{cursor:pointer;background:#ef44441f;border-bottom:2px solid #ef4444;border-radius:2px;padding:0 2px;position:relative}.compare-text .hl-warn,.compare-text .hl-partial{cursor:pointer;background:#f59e0b1f;border-bottom:2px solid #f59e0b;border-radius:2px;padding:0 2px;position:relative}.compare-text .hl-good:hover:after{content:attr(data-tip, "✅ 踩中知识点，用语规范")}.compare-text .hl-warn:hover:after,.compare-text .hl-partial:hover:after{content:attr(data-tip, "⚠️ 方向正确，但待完善")}.compare-text .hl-bad:hover:after,.compare-text .hl-miss:hover:after{content:attr(data-tip, "❌ 需修正，概念偏差或缺失")}.compare-text .hl-good:hover:after,.compare-text .hl-warn:hover:after,.compare-text .hl-bad:hover:after,.compare-text .hl-miss:hover:after,.compare-text .hl-partial:hover:after{background:var(--gray-800,#1f2937);color:#fff;white-space:nowrap;text-overflow:ellipsis;z-index:100;pointer-events:none;max-width:320px;font-size:12px;line-height:1.4;font-family:var(--font-sans);border-radius:6px;padding:6px 10px;position:absolute;bottom:calc(100% + 6px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 2px 8px #00000026}.mc-ai-comment{padding:var(--s4) var(--s5);background:var(--ai-50);border-top:1px solid var(--ai-100)}.mc-ai-comment-hd{font-size:var(--text-xs);color:var(--ai-700);margin-bottom:var(--s2);font-weight:700}.mc-ai-comment-text{font-size:var(--text-sm);color:var(--gray-700);line-height:1.7}.mc-body-actions{padding:var(--s3) var(--s5);gap:var(--s2);border-top:1px solid var(--gray-100);background:var(--gray-50);display:flex}.side-err-chart{padding:var(--s5)}.err-bar-item{align-items:center;gap:var(--s3);margin-bottom:var(--s3);display:flex}.err-bar-label{font-size:var(--text-xs);color:var(--gray-600);flex-shrink:0;width:88px;line-height:1.3}.err-bar-wrap{background:var(--gray-100);border-radius:var(--r-full);flex:1;height:8px;overflow:hidden}.err-bar-fill{border-radius:var(--r-full);height:100%;transition:width .6s var(--ease)}.err-bar-count{font-size:var(--text-xs);color:var(--gray-600);white-space:nowrap;text-align:right;width:24px;font-weight:700}.alert{align-items:flex-start;gap:var(--s3);padding:var(--s4);border-radius:var(--r-lg);font-size:var(--text-sm);display:flex}.alert-warn{background:var(--orange-50);border:1px solid var(--orange-100)}.alert-icon{flex-shrink:0;margin-top:2px;font-size:16px}.alert-content{flex:1}.alert-title{font-size:var(--text-xs);color:var(--orange-700);margin-bottom:2px;font-weight:700}.alert-text{font-size:var(--text-xs);color:var(--gray-600);line-height:1.5}.empty-mistakes{text-align:center;padding:var(--s16)}.bulk-bar{bottom:var(--s6);background:var(--ink-900);border-radius:var(--r-full);padding:var(--s3) var(--s6);align-items:center;gap:var(--s4);box-shadow:var(--shadow-2xl);z-index:var(--z-fixed);animation:fadeUp var(--dur-normal) var(--ease) both;display:none;position:fixed;left:50%;transform:translate(-50%)}.bulk-bar.show{display:flex}.bulk-info{font-size:var(--text-sm);color:#fffc}.bulk-btn{padding:var(--s2) var(--s4);border-radius:var(--r-full);font-size:var(--text-sm);cursor:pointer;transition:all var(--dur-micro) var(--ease);color:#ffffffb3;font-weight:600}.bulk-btn:hover{color:var(--white);background:#ffffff1a}.bulk-btn:active{transform:scale(.96)}.bulk-btn.danger:hover{color:#fca5a5;background:#ef44444d}.bulk-sep{background:#ffffff1f;width:1px;height:20px}@media (width<=1024px){.mistakes-layout{grid-template-columns:1fr}.stat-summary{grid-template-columns:repeat(2,1fr)}.filter-bar{padding:var(--s4)}}@media (width<=768px){.stat-summary{grid-template-columns:1fr 1fr}.mc-compare{grid-template-columns:1fr}.mc-compare-col:first-child{border-right:none;border-bottom:1px solid var(--gray-100)}.filter-bar{flex-direction:column;align-items:flex-start}.filter-sort{margin-left:0}}.grading-page{padding:var(--s6) var(--s8);max-width:800px;margin:0 auto}.grading-page-header{align-items:center;gap:var(--s4);margin-bottom:var(--s5);display:flex}.grading-page-title{font-size:var(--text-xl);color:var(--gray-900);flex:1;font-weight:700}.grading-page-total{font-size:var(--text-sm);color:var(--gray-500)}.grading-page-list{gap:var(--s4);flex-direction:column;display:flex}.grading-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--r-lg);padding:var(--s5) var(--s6);cursor:pointer;transition:box-shadow var(--dur-micro) var(--ease), border-color var(--dur-micro) var(--ease)}.grading-card:hover{border-color:var(--gray-300);box-shadow:0 2px 8px #00000014}.grading-card-header{margin-bottom:var(--s2);justify-content:space-between;align-items:center;display:flex}.grading-card-meta{align-items:center;gap:var(--s2);flex:1;min-width:0;display:flex}.grading-card-qtype-icon{font-size:14px}.grading-card-qtype{font-size:var(--text-xs);color:var(--ai-600);background:var(--ai-50);border-radius:var(--r-full);padding:2px 8px;font-weight:600}.grading-card-subject{font-size:var(--text-xs);color:var(--gray-500)}.grading-card-source{border-radius:var(--r-full);padding:1px 6px;font-size:11px;font-weight:500}.grading-card-source--drill{background:var(--green-50);color:var(--green-600)}.grading-card-source--diagnosis{background:var(--purple-50);color:var(--purple-600)}.grading-card-status{font-size:var(--text-xs);border-radius:var(--r-full);flex-shrink:0;padding:2px 8px;font-weight:600}.grading-status-pending{background:var(--gray-100);color:var(--gray-500)}.grading-status-processing{background:var(--ai-50);color:var(--ai-600);animation:1.5s ease-in-out infinite grading-pulse}.grading-status-completed{background:var(--green-50);color:var(--green-600)}.grading-status-failed{background:var(--red-50);color:var(--red-600)}.grading-status-cancelled{background:var(--orange-50);color:var(--orange-700)}@keyframes grading-pulse{0%,to{opacity:1}50%{opacity:.6}}.grading-card-question{font-size:var(--text-sm);color:var(--gray-800);margin-bottom:var(--s3);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.6;display:-webkit-box;overflow:hidden}.grading-card-score{align-items:center;gap:var(--s3);margin-bottom:var(--s2);display:flex}.grading-card-score-num{font-size:var(--text-lg);font-weight:700}.grading-card-score-value{color:var(--ai-600)}.grading-card-score-max{color:var(--gray-400);font-size:var(--text-sm);font-weight:400}.grading-card-verdict{font-size:var(--text-xs);border-radius:var(--r-full);padding:2px 8px;font-weight:600}.grading-card-progress{background:var(--gray-100);height:4px;margin-bottom:var(--s2);border-radius:2px;overflow:hidden}.grading-card-progress-bar{background:linear-gradient(90deg, var(--ai-400), var(--ai-600));border-radius:2px;height:100%;transition:width .5s}.grading-card-failed-reason{font-size:var(--text-xs);color:var(--red-500);margin-bottom:var(--s2);padding:var(--s2) var(--s3);background:var(--red-50);border-radius:var(--r-md)}.grading-card-footer{justify-content:space-between;align-items:center;display:flex}.grading-card-time{font-size:var(--text-xs);color:var(--gray-400)}.grading-card-retry-btn{font-size:var(--text-xs);color:var(--ai-600);background:var(--ai-50);border-radius:var(--r-full);cursor:pointer;transition:background var(--dur-micro) var(--ease);border:none;padding:4px 12px;font-weight:600}.grading-card-retry-btn:hover{background:var(--ai-100)}.grading-empty{padding:var(--s10) var(--s6);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.grading-empty-icon{margin-bottom:var(--s5);font-size:48px}.grading-empty-title{font-size:var(--text-lg);color:var(--gray-700);margin-bottom:var(--s2);font-weight:600}.grading-empty-desc{font-size:var(--text-sm);color:var(--gray-500);margin-bottom:var(--s6)}.grading-empty-btn{font-size:var(--text-sm);color:var(--white);background:var(--ai-500);padding:var(--s3) var(--s8);border-radius:var(--r-full);cursor:pointer;transition:background var(--dur-micro) var(--ease);border:none;font-weight:600}.grading-empty-btn:hover{background:var(--ai-600)}.grading-empty-regrade{background:var(--ai-50);border:1px solid var(--ai-100);border-radius:var(--r-lg);padding:var(--s4) var(--s5);margin-bottom:var(--s5);text-align:center;max-width:320px}.grading-empty-regrade-info{font-size:var(--text-xs);color:var(--ai-700);margin-bottom:var(--s3)}.grading-empty-regrade-btn{font-size:var(--text-xs);color:var(--white);background:var(--ai-500);padding:var(--s2) var(--s5);border-radius:var(--r-full);cursor:pointer;transition:background var(--dur-micro) var(--ease);border:none;font-weight:600}.grading-empty-regrade-btn:hover:not(:disabled){background:var(--ai-600)}.grading-empty-regrade-btn:disabled{opacity:.6;cursor:not-allowed}.grading-empty-regrade-actions{justify-content:center;display:flex}.grading-empty-regrade-btn--cancel{background:var(--white);color:var(--red-500);border:1.5px solid var(--red-500)}.grading-empty-regrade-btn--cancel:hover:not(:disabled){background:var(--red-50);border-color:var(--red-700);color:var(--red-700)}.grading-page-loading,.grading-page-end{text-align:center;font-size:var(--text-sm);color:var(--gray-400);padding:var(--s6) 0}.profile-page{gap:var(--s6,24px);padding-bottom:var(--s8,32px);flex-direction:column;display:flex}.profile-banner{align-items:center;gap:var(--s6,24px);padding:var(--s6,24px) var(--s8,32px);color:#fff;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);border-radius:16px;display:flex;position:relative;overflow:hidden}.profile-banner:before{content:"";pointer-events:none;background:radial-gradient(circle,#e9c46a26 0%,#0000 70%);border-radius:50%;width:300px;height:300px;position:absolute;top:-40%;right:-10%}.profile-banner:after{content:"";pointer-events:none;background:radial-gradient(circle,#3b82f61f 0%,#0000 70%);border-radius:50%;width:200px;height:200px;position:absolute;bottom:-30%;left:20%}.profile-avatar-large{color:#1a1a2e;z-index:1;background:linear-gradient(135deg,#e9c46a,#f4a261);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;font-size:28px;font-weight:800;display:flex;position:relative;box-shadow:0 0 0 3px #e9c46a4d}.profile-banner-info{z-index:1;flex-direction:column;flex:1;gap:6px;display:flex;position:relative}.profile-name{letter-spacing:.5px;font-size:22px;font-weight:800}.profile-target{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.target-chip{color:#e9c46a;background:#e9c46a33;border:1px solid #e9c46a4d;border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.subject-chip{color:#93c5fd;background:#3b82f626;border-color:#3b82f640}.profile-day-badge{color:#ffffff8c;margin-top:2px;font-size:12px}.profile-stats-row{gap:var(--s6,24px);z-index:1;display:flex;position:relative}.profile-stat-item{flex-direction:column;align-items:center;gap:4px;min-width:64px;display:flex}.profile-stat-num{color:#e9c46a;font-size:24px;font-weight:800;line-height:1}.profile-stat-unit{color:#e9c46ab3;margin-left:2px;font-size:12px;font-weight:500}.profile-stat-lbl{color:#ffffff80;white-space:nowrap;font-size:11px}.skeleton-banner{align-items:center;gap:var(--s6,24px);padding:var(--s6,24px) var(--s8,32px);background:var(--gray-100,#f3f4f6);border-radius:16px;display:flex}.profile-tab-nav{background:var(--gray-100,#f3f4f6);border-radius:12px;gap:4px;padding:4px;display:flex}.profile-tab-btn{color:var(--gray-500,#6b7280);cursor:pointer;background:0 0;border:none;border-radius:10px;flex:1;padding:10px 0;font-size:14px;font-weight:600;transition:all .2s}.profile-tab-btn:hover{color:var(--gray-700,#374151);background:#ffffff80}.profile-tab-btn.active{color:var(--ink,#1a1a2e);background:#fff;box-shadow:0 1px 3px #00000014}.profile-tab-content{min-height:200px}.tab-placeholder{background:var(--gray-50,#f9fafb);min-height:300px;color:var(--gray-400,#9ca3af);border-radius:16px;justify-content:center;align-items:center;font-size:16px;font-weight:500;display:flex}.radar-section{gap:var(--s6,24px);margin-bottom:var(--s6,24px);grid-template-columns:320px 1fr;display:grid}.radar-box{background:var(--white,#fff);border-radius:var(--r-xl,12px);border:1px solid var(--gray-200,#e5e7eb);padding:var(--s5,20px);box-shadow:var(--shadow-xs,0 1px 2px #0000000d);text-align:center}.radar-title{font-size:var(--text-sm,14px);color:var(--gray-700,#374151);margin-bottom:var(--s4,16px);font-weight:700}.radar-score{margin-top:var(--s3,12px);font-size:var(--text-xs,12px);color:var(--gray-400,#9ca3af)}.radar-point{cursor:pointer;transition:transform .15s,filter .15s}.radar-point:hover{filter:drop-shadow(0 0 4px);transform:scale(1.4)}.dim-detail-box{gap:var(--s4,16px);flex-direction:column;display:flex}.dim-detail-title{font-size:var(--text-base,16px);color:var(--gray-800,#1f2937);font-weight:700}.dim-score-list{gap:var(--s3,12px);flex-direction:column;display:flex}.dim-row{align-items:center;gap:var(--s3,12px);padding:var(--s3,12px);background:var(--gray-50,#f9fafb);border-radius:var(--r-lg,8px);cursor:default;transition:background .15s,transform .15s;display:flex}.dim-row:hover{background:var(--gray-100,#f3f4f6);transform:translate(2px)}.dim-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;transition:transform .15s}.dim-row:hover .dim-dot{transform:scale(1.2)}.dim-row-name{font-size:var(--text-sm,14px);color:var(--gray-700,#374151);flex-shrink:0;width:80px;font-weight:600}.dim-row-bar{background:var(--gray-200,#e5e7eb);border-radius:var(--r-full,9999px);flex:1;height:8px;overflow:hidden}.dim-row-fill{border-radius:var(--r-full,9999px);height:100%;transition:width .4s}.dim-row-val{font-size:var(--text-sm,14px);color:var(--gray-700,#374151);text-align:right;width:36px;font-weight:700}.dim-alert{align-items:flex-start;gap:var(--s3,12px);padding:var(--s4,16px);border-radius:var(--r-lg,8px);background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border:1px solid #fcd34d;display:flex}.dim-alert-icon{flex-shrink:0;font-size:20px}.dim-alert-content{flex:1}.dim-alert-title{font-size:var(--text-sm,14px);color:#92400e;margin-bottom:2px;font-weight:700}.dim-alert-text{font-size:var(--text-xs,12px);color:#b45309;margin-bottom:2px;line-height:1.5}.dim-alert-text:last-child{margin-bottom:0}.dim-rec-tags{gap:var(--s1,4px);margin-bottom:var(--s2,8px);flex-wrap:wrap;display:flex}.dim-rec-tag{padding:2px var(--s2,8px);border-radius:var(--r-full,99px);font-size:var(--text-xs,12px);color:#92400e;background:#fef3c7;border:1px solid #fcd34d;font-weight:600}.section-title{font-size:var(--text-base,16px);color:var(--gray-800,#1f2937);margin-bottom:var(--s4,16px);font-weight:700}.subject-progress-grid{gap:var(--s4,16px);margin-bottom:var(--s6,24px);grid-template-columns:repeat(3,1fr);display:grid}.sp-card{background:var(--white,#fff);border-radius:var(--r-xl,12px);border:1px solid var(--gray-200,#e5e7eb);padding:var(--s5,20px);box-shadow:var(--shadow-xs,0 1px 2px #0000000d);transition:box-shadow .2s,transform .2s,border-color .2s}.sp-card:hover{box-shadow:var(--shadow-md,0 4px 6px #0000001a);border-color:var(--gray-300,#d1d5db);transform:translateY(-2px)}.sp-card.locked{opacity:.5;pointer-events:none}.sp-card-hd{align-items:center;gap:var(--s3,12px);margin-bottom:var(--s4,16px);display:flex}.sp-icon{border-radius:var(--r-md,6px);justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex}.sp-title{font-size:var(--text-sm,14px);color:var(--gray-800,#1f2937);font-weight:700}.sp-code{font-size:var(--text-xs,12px);color:var(--gray-500,#6b7280)}.sp-progress-ring{margin-bottom:var(--s3,12px);justify-content:center;display:flex;position:relative}.sp-ring-text{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.sp-ring-pct{font-size:var(--text-xl,20px);color:var(--gray-900,#111827);font-weight:800}.sp-ring-lbl{color:var(--gray-500,#6b7280);font-size:10px}.sp-stats{justify-content:space-between;gap:var(--s2,8px);display:flex}.sp-stat-mini{text-align:center}.sp-stat-mini-num{font-size:var(--text-base,16px);color:var(--gray-800,#1f2937);font-weight:700}.sp-stat-mini-lbl{color:var(--gray-500,#6b7280);font-size:10px}.sp-locked-content{text-align:center;padding:var(--s6,24px) 0;color:var(--gray-400,#9ca3af)}.sp-locked-icon{margin-bottom:var(--s2,8px);font-size:1.5rem}.sp-locked-text{font-size:var(--text-sm,14px)}.sp-empty{text-align:center;padding:var(--s8,32px) var(--s6,24px);background:var(--white,#fff);border-radius:var(--r-xl,16px);border:1px dashed var(--gray-200,#e5e7eb);color:var(--gray-400,#9ca3af)}.sp-empty-icon{margin-bottom:var(--s2,8px);font-size:2rem}.sp-empty-text{font-size:var(--text-base,16px);color:var(--gray-500,#6b7280);margin-bottom:var(--s1,4px);font-weight:600}.sp-empty-hint{font-size:var(--text-sm,14px);color:var(--gray-400,#9ca3af)}.progress-ring-circle{transition:stroke-dashoffset 1s}.heatmap-trend-row{gap:var(--s4,16px);align-items:flex-start;display:flex}.heatmap-trend-row .heatmap-section{flex:none}.heatmap-trend-row .trend-section{flex:1;min-width:0;margin-top:0}.heatmap-section{background:var(--white,#fff);border-radius:var(--r-xl,12px);border:1px solid var(--gray-200,#e5e7eb);padding:var(--s6,24px);box-shadow:var(--shadow-xs,0 1px 2px #0000000d)}.heatmap-header{margin-bottom:var(--s2,8px);justify-content:space-between;align-items:center;display:flex}.heatmap-title{font-size:var(--text-base,16px);color:var(--gray-800,#1f2937);font-weight:700}.heatmap-period{font-size:var(--text-xs,12px);color:var(--gray-500,#6b7280)}.heatmap-subtitle{font-size:var(--text-xs,12px);color:var(--gray-500,#6b7280);margin-bottom:var(--s3,12px)}.heatmap-grid{margin-top:var(--s3,12px);grid-template-rows:repeat(14,28px);grid-template-columns:repeat(7,28px);justify-content:flex-start;gap:3px;display:grid}.hm-cell{cursor:pointer;border-radius:2px;transition:transform .15s,filter .15s;position:relative}.hm-cell:hover{z-index:1;filter:brightness(1.1);transform:scale(1.5)}.hm-0{background:var(--gray-100,#f3f4f6)}.hm-1{background:#bbf7d0}.hm-2{background:#4ade80}.hm-3{background:#16a34a}.hm-4{background:#166534}.heatmap-legend{align-items:center;gap:var(--s2,8px);margin-top:var(--s3,12px);display:flex}.heatmap-legend-label{color:var(--gray-400,#9ca3af);font-size:10px}.trend-section{margin-top:var(--s5,20px);padding:var(--s4,16px);background:var(--gray-50,#f9fafb);border-radius:var(--r-lg,12px);border:1px solid var(--gray-100,#f3f4f6)}.trend-header{align-items:baseline;gap:var(--s2,8px);margin-bottom:var(--s3,12px);display:flex}.trend-title{color:var(--gray-800,#1f2937);font-size:15px;font-weight:600}.trend-subtitle{color:var(--gray-400,#9ca3af);font-size:12px}.trend-chart{width:100%;max-width:680px;display:block}.trend-summary{align-items:center;gap:var(--s3,12px);margin-top:var(--s2,8px);font-size:13px;display:flex}.trend-up{color:var(--green-600,#16a34a);font-weight:600}.trend-down{color:var(--red-500,#ef4444);font-weight:600}.trend-avg{color:var(--gray-500,#6b7280)}.subject-stat-list{gap:var(--s5);flex-direction:column;display:flex}.tag-stat-list{gap:var(--s3);flex-direction:column;display:flex}.tag-stat-item{align-items:center;gap:var(--s2);display:flex}.diagnosis-tab{gap:var(--s5,20px);flex-direction:column;display:flex}.report-history{gap:var(--s4,16px);flex-direction:column;display:flex}.report-card{background:var(--white,#fff);border-radius:var(--r-xl,12px);border:1px solid var(--gray-200,#e5e7eb);padding:var(--s5,20px);box-shadow:var(--shadow-xs,0 1px 2px #0000000d)}.report-card-hd{margin-bottom:var(--s4,16px);justify-content:space-between;align-items:center;display:flex}.report-date{flex-direction:column;gap:2px;display:flex}.report-date-label{font-size:var(--text-xs,12px);color:var(--gray-500,#6b7280)}.report-date-val{font-size:var(--text-sm,14px);color:var(--gray-800,#1f2937);font-weight:600}.report-score-box{text-align:center}.report-score{font-size:var(--text-3xl,28px);color:var(--ink-900,#111827);font-weight:800}.report-score-label{color:var(--gray-500,#6b7280);font-size:10px}.report-change{font-size:var(--text-lg,18px);font-weight:700}.report-change.up{color:var(--green-600,#16a34a)}.report-change.down{color:var(--red-600,#dc2626)}.report-dims{gap:var(--s3,12px);margin-bottom:var(--s4,16px);flex-direction:column;display:flex}.report-dim{flex-direction:column;gap:4px;display:flex}.report-dim-info{justify-content:space-between;display:flex}.report-dim-name{font-size:var(--text-sm,14px);color:var(--gray-700,#374151)}.report-dim-val{font-size:var(--text-sm,14px);color:var(--ink-900,#111827);font-weight:700}.report-dim-bar{background:var(--gray-200,#e5e7eb);border-radius:var(--r-full,9999px);height:6px;overflow:hidden}.report-dim-fill{background:var(--gold-500,#f59e0b);border-radius:var(--r-full,9999px);height:100%;transition:width .4s}.report-card-ft{text-align:right}.diagnosis-suggestion{border-radius:var(--r-lg,8px);padding:var(--s4,16px);background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border:1px solid #fcd34d}.suggestion-hd{align-items:center;gap:var(--s2,8px);font-size:var(--text-sm,14px);color:#92400e;margin-bottom:var(--s2,8px);font-weight:700;display:flex}.suggestion-bd{font-size:var(--text-sm,14px);color:#b45309;line-height:1.6}.suggestion-line{margin-bottom:var(--s1,4px);padding-left:var(--s3,12px);position:relative}.suggestion-line:before{content:"•";color:#d97706;position:absolute;left:0}.achievements-tab{gap:var(--s5,20px);flex-direction:column;display:flex}.achievement-header{text-align:center}.achievement-progress{font-size:var(--text-sm,14px);color:var(--gray-600,#4b5563);font-weight:600}.achievement-grid{gap:var(--s4,16px);grid-template-columns:repeat(4,1fr);display:grid}.achievement-badge{background:var(--white,#fff);border-radius:var(--r-xl,12px);border:1px solid var(--gray-200,#e5e7eb);padding:var(--s4,16px);text-align:center;box-shadow:var(--shadow-xs,0 1px 2px #0000000d);transition:transform .2s,box-shadow .2s;position:relative}.achievement-badge:hover{box-shadow:var(--shadow-md,0 4px 6px #0000001a);transform:translateY(-4px)}.achievement-badge.locked{opacity:.6}.achievement-badge.future{background:linear-gradient(135deg,#f3f4f6 0%,#e5e7eb 100%)}.badge-icon{margin-bottom:var(--s2,8px);font-size:2.5rem}.badge-name{font-size:var(--text-sm,14px);color:var(--gray-800,#1f2937);margin-bottom:4px;font-weight:700}.badge-desc{color:var(--gray-500,#6b7280);font-size:10px;line-height:1.4}.badge-lock{top:var(--s2,8px);right:var(--s2,8px);font-size:14px;position:absolute}.badge-future{bottom:var(--s2,8px);right:var(--s2,8px);color:var(--ai-500,#3b82f6);background:var(--ai-100,#dbeafe);border-radius:var(--r-sm,4px);padding:2px 6px;font-size:9px;font-weight:700;position:absolute}.settings-tab{gap:var(--s5,20px);flex-direction:column;display:flex}.settings-section{background:var(--white,#fff);border-radius:var(--r-xl,12px);border:1px solid var(--gray-200,#e5e7eb);overflow:hidden}.settings-section-title{font-size:var(--text-sm,14px);color:var(--gray-600,#4b5563);padding:var(--s3,12px) var(--s4,16px);background:var(--gray-50,#f9fafb);border-bottom:1px solid var(--gray-200,#e5e7eb);font-weight:700}.settings-item{padding:var(--s4,16px);border-bottom:1px solid var(--gray-100,#f3f4f6);justify-content:space-between;align-items:center;display:flex}.settings-item:last-child{border-bottom:none}.settings-item.clickable{cursor:pointer;transition:background .15s}.settings-item.clickable:hover{background:var(--gray-50,#f9fafb)}.settings-item.clickable:active{background:var(--gray-100,#f3f4f6)}.settings-item-hd{align-items:center;gap:var(--s3,12px);font-size:var(--text-sm,14px);color:var(--gray-800,#1f2937);display:flex}.settings-icon{font-size:18px}.settings-item-val{align-items:center;gap:var(--s2,8px);font-size:var(--text-sm,14px);color:var(--gray-500,#6b7280);display:flex}.settings-arrow{color:var(--gray-400,#9ca3af);font-size:18px}.settings-item.danger .settings-item-hd{color:var(--red-600,#dc2626)}.toggle-switch{width:44px;height:24px;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{background:var(--gray-300,#d1d5db);border-radius:var(--r-full,9999px);cursor:pointer;transition:background .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background:var(--white,#fff);border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle-switch input:checked+.toggle-slider{background:var(--green-500,#22c55e)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.settings-section.disabled-section{opacity:.5;pointer-events:none}.settings-item.disabled-item{opacity:.7}.toggle-switch.disabled{pointer-events:none}.toggle-switch input:disabled+.toggle-slider{background:var(--gray-300,#d1d5db)}.toggle-switch input:disabled:checked+.toggle-slider{background:var(--gray-400,#9ca3af)}.future-section{border:1px dashed var(--ai-300,#93c5fd);padding:var(--s4,16px);background:linear-gradient(135deg,#eff6ff 0%,#dbeafe 100%);position:relative}.future-badge{top:var(--s2,8px);right:var(--s2,8px);color:var(--ai-600,#2563eb);background:var(--ai-100,#dbeafe);border-radius:var(--r-sm,4px);padding:2px 8px;font-size:10px;font-weight:700;position:absolute}.future-items{gap:var(--s3,12px);flex-wrap:wrap;display:flex}.future-item{font-size:var(--text-sm,14px);color:var(--ai-700,#1d4ed8)}.empty-state{text-align:center;padding:var(--s8,48px) var(--s4,16px)}.empty-icon{margin-bottom:var(--s3,12px);opacity:.5;font-size:3rem}.empty-text{font-size:var(--text-base,16px);color:var(--gray-700,#374151);margin-bottom:var(--s2,8px);font-weight:600}.empty-hint{font-size:var(--text-sm,14px);color:var(--gray-500,#6b7280);margin-bottom:var(--s5,20px)}.modal-overlay{z-index:2000;padding:var(--s4);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:1;visibility:visible;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{border-radius:var(--r-2xl,16px);width:100%;max-height:90vh;animation:modalIn .2s var(--ease,ease) both;background:#fff;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{padding:var(--s5,20px) var(--s6,24px);border-bottom:1px solid var(--gray-100,#f3f4f6);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--text-lg,18px);color:var(--gray-900,#111827);font-weight:800}.modal-close{border-radius:var(--r-full,9999px);background:var(--gray-100,#f3f4f6);width:32px;height:32px;color:var(--gray-500,#6b7280);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.modal-close:hover{background:var(--gray-200,#e5e7eb);color:var(--gray-700,#374151)}.modal-body{padding:var(--s5,20px) var(--s6,24px);flex:1;overflow-y:auto}.modal-footer{justify-content:flex-end;align-items:center;gap:var(--s3,12px);padding:var(--s4,16px) var(--s6,24px);border-top:1px solid var(--gray-100,#f3f4f6);flex-shrink:0;display:flex}.modal-card .school-grid{gap:var(--s3,12px);grid-template-columns:repeat(3,1fr);display:grid}.modal-card .school-card{border:2px solid var(--gray-200,#e5e7eb);border-radius:var(--r-xl,12px);padding:var(--s4,16px);cursor:pointer;text-align:center;transition:all .15s;position:relative}.modal-card .school-card:hover{border-color:var(--gold-400,#f59e0b);background:var(--gold-50,#fffbeb)}.modal-card .school-card.selected{border-color:var(--gold-500,#d4a853);background:var(--gold-50,#fffbeb);box-shadow:0 0 0 3px #c9a84c26}.modal-card .school-card.selected:after{content:"✓";top:var(--s2,8px);right:var(--s2,8px);border-radius:var(--r-full,9999px);background:var(--gold-500,#d4a853);width:22px;height:22px;color:var(--ink-900,#111827);justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex;position:absolute}.modal-card .school-card:active{transform:scale(.98)}.modal-card .school-avatar{border-radius:var(--r-lg,8px);background:var(--gray-100,#f3f4f6);width:40px;height:40px;margin:0 auto var(--s2,8px);color:var(--gray-700,#374151);justify-content:center;align-items:center;font-size:14px;font-weight:800;display:flex}.modal-card .school-name{font-size:var(--text-xs,12px);color:var(--gray-900,#111827);font-weight:700}.modal-card .school-level{color:var(--gray-500,#6b7280);margin-top:2px;font-size:10px}.modal-card .subject-list{gap:var(--s3,12px);flex-direction:column;display:flex}.modal-card .subject-item{align-items:flex-start;gap:var(--s4,16px);padding:var(--s4,16px);border:2px solid var(--gray-200,#e5e7eb);border-radius:var(--r-xl,12px);cursor:pointer;transition:all .15s;display:flex}.modal-card .subject-item:hover{border-color:var(--ai-300,#93c5fd);background:var(--ai-50,#eff6ff)}.modal-card .subject-item.selected{border-color:var(--ai-500,#3b82f6);background:var(--ai-50,#eff6ff);box-shadow:0 0 0 3px #3b82f61a}.modal-card .subject-checkbox{border-radius:var(--r-sm,4px);border:2px solid var(--gray-300,#d1d5db);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:2px;font-size:12px;font-weight:800;transition:all .15s;display:flex}.modal-card .subject-item.selected .subject-checkbox{background:var(--ai-500,#3b82f6);border-color:var(--ai-500,#3b82f6)}.modal-card .subject-info{flex:1}.modal-card .subject-name{font-size:var(--text-sm,14px);color:var(--gray-900,#111827);align-items:center;gap:8px;font-weight:700;display:flex}.modal-card .subject-code{font-size:var(--text-xs,12px);color:var(--gray-500,#6b7280);margin-top:2px}.modal-card .degree-badge{white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600}.modal-card .degree-academic{color:#1e40af;background:#dbeafe}.modal-card .degree-professional{color:#92400e;background:#fef3c7}.modal-card .subject-textbooks{color:var(--gray-400,#9ca3af);margin-top:4px;font-size:11px;line-height:1.4}.modal-card .alert{align-items:flex-start;gap:var(--s3,12px);padding:var(--s4,16px);border-radius:var(--r-lg,8px);font-size:var(--text-sm,14px);display:flex}.modal-card .alert-info{background:var(--ai-50,#eff6ff);border:1px solid #3b82f633}.modal-card .alert-icon{flex-shrink:0;font-size:18px}.modal-card .alert-title{color:var(--ai-700,#1d4ed8);margin-bottom:2px;font-weight:700}.modal-card .alert-text{color:var(--ai-600,#2563eb);opacity:.8}.modal-card .school-search{position:relative}.modal-card .school-search-icon{left:var(--s4,16px);color:var(--gray-400,#9ca3af);pointer-events:none;font-size:16px;position:absolute;top:50%;transform:translateY(-50%)}@media (width<=640px){.modal-card .school-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=1024px){.achievement-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=768px){.achievement-grid{grid-template-columns:repeat(2,1fr)}}.diagnosis-page{max-width:800px;padding:var(--s6) 0;margin:0 auto}.history-stats{justify-content:center;align-items:center;gap:var(--s6);padding:var(--s6) var(--s8);background:var(--white);border-radius:var(--r-2xl);border:1px solid var(--gray-200);box-shadow:var(--shadow-xs);margin-bottom:var(--s5);display:flex}.stat-item{flex-direction:column;align-items:center;gap:2px;display:flex}.stat-val{font-size:var(--text-2xl);color:var(--gray-900);font-weight:800;line-height:1}.stat-lbl{font-size:var(--text-xs);color:var(--gray-500);font-weight:500}.stat-divider{background:var(--gray-200);width:1px;height:40px}.history-tabs{gap:var(--s2);padding:var(--s1);background:var(--gray-100);border-radius:var(--r-xl);margin-bottom:var(--s5);display:flex}.history-tab{padding:var(--s3) var(--s4);border-radius:var(--r-lg);font-size:var(--text-sm);color:var(--gray-500);cursor:pointer;transition:all var(--dur-micro) var(--ease);background:0 0;border:none;flex:1;font-weight:600}.history-tab:hover{color:var(--gray-700)}.history-tab.active{background:var(--white);color:var(--gray-900);box-shadow:var(--shadow-sm)}.history-body{gap:var(--s3);flex-direction:column;display:flex}.history-empty{text-align:center;padding:var(--s16);color:var(--gray-400);font-size:var(--text-sm)}.history-loading{gap:var(--s2);flex-direction:column;display:flex}.date-groups{gap:var(--s3);flex-direction:column;display:flex}.date-group{background:var(--white);border-radius:var(--r-2xl);border:1px solid var(--gray-200);transition:box-shadow var(--dur-micro) var(--ease);overflow:hidden}.date-group.open{box-shadow:var(--shadow-sm)}.date-group-header{padding:var(--s4) var(--s5);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--dur-micro);justify-content:space-between;align-items:center;display:flex}.date-group-header:hover{background:var(--gray-50)}.date-group-left,.date-group-right{align-items:center;gap:var(--s3);display:flex}.date-label{font-size:var(--text-base);color:var(--gray-900);font-weight:700}.date-count{font-size:var(--text-xs);color:var(--gray-500);background:var(--gray-100);padding:2px var(--s2);border-radius:var(--r-full)}.date-avg{font-size:var(--text-sm);font-weight:700}.expand-arrow{color:var(--gray-400);font-size:10px}.date-group-items{border-top:1px solid var(--gray-100);padding:var(--s2) 0}.type-groups{gap:var(--s3);flex-direction:column;display:flex}.type-group{background:var(--white);border-radius:var(--r-2xl);border:1px solid var(--gray-200);transition:box-shadow var(--dur-micro) var(--ease);overflow:hidden}.type-group.open{box-shadow:var(--shadow-sm)}.type-group-header{padding:var(--s4) var(--s5);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--dur-micro);justify-content:space-between;align-items:center;display:flex}.type-group-header:hover{background:var(--gray-50)}.type-group-left,.type-group-right{align-items:center;gap:var(--s3);display:flex}.type-icon{font-size:20px}.type-label{font-size:var(--text-base);color:var(--gray-900);font-weight:700}.type-count{font-size:var(--text-xs);color:var(--gray-500);background:var(--gray-100);padding:2px var(--s2);border-radius:var(--r-full)}.type-avg-wrap{align-items:baseline;gap:4px;display:flex}.type-avg{font-size:var(--text-lg);font-weight:800}.type-avg-label{font-size:var(--text-xs);color:var(--gray-400)}.type-group-items{border-top:1px solid var(--gray-100);padding:var(--s2) 0}.type-empty-hint{padding:var(--s4) var(--s5);font-size:var(--text-xs);color:var(--gray-400);text-align:center}.history-row{align-items:center;gap:var(--s4);padding:var(--s3) var(--s5);cursor:pointer;transition:background var(--dur-micro);min-width:0;display:flex}.history-row:hover{background:var(--gray-50)}.history-row-meta{align-items:center;gap:var(--s2);flex-shrink:0;min-width:0;display:flex}.history-subject{font-size:var(--text-xs);color:var(--gray-500)}.history-time{font-size:var(--text-xs);color:var(--gray-400);margin-left:auto}.history-row-content{flex:1;min-width:0}.history-q{font-size:var(--text-sm);color:var(--gray-700);line-height:1.5}.history-row-score{flex-shrink:0;align-items:baseline;gap:2px;display:flex}.score-num{font-size:var(--text-lg);font-weight:800}.score-max{font-size:var(--text-xs);color:var(--gray-400)}.score-pct{font-size:var(--text-xs);margin-left:var(--s1);opacity:.8;font-weight:600}.type-loading{padding:var(--s4) var(--s5);font-size:var(--text-sm);color:var(--gray-400);text-align:center}.verify-code-input{align-items:center;gap:var(--s2,8px);flex-direction:column;display:flex}.verify-code-input__cells{gap:var(--s2,8px);justify-content:center;display:flex}.verify-code-input__cell{border:2px solid var(--gray-200,#e5e7eb);border-radius:var(--r-md,8px);background:var(--white,#fff);width:44px;height:52px;font-size:var(--text-xl,1.25rem);color:var(--ink-700,#0f3460);text-align:center;caret-color:var(--ai-500,#3b82f6);outline:none;font-weight:700;transition:border-color .15s,box-shadow .15s,background .15s}.verify-code-input__cell:focus{border-color:var(--ai-500,#3b82f6);box-shadow:0 0 0 3px #3b82f626}.verify-code-input__cell--filled{background:var(--ai-50,#eff6ff);border-color:var(--ai-400,#60a5fa)}.verify-code-input__cell--error{border-color:var(--red-500,#ef4444);background:var(--red-50,#fef2f2)}.verify-code-input__cell--expired{border-color:var(--gray-300,#d1d5db);background:var(--gray-100,#f3f4f6);color:var(--gray-400,#9ca3af)}.verify-code-input__cell:disabled{cursor:not-allowed;opacity:.6}@keyframes verify-code-shake{0%,to{transform:translate(0)}10%,50%,90%{transform:translate(-4px)}30%,70%{transform:translate(4px)}}.verify-code-input--shake .verify-code-input__cells{animation:.5s ease-in-out verify-code-shake}.verify-code-input__message{font-size:var(--text-xs,.6875rem);margin-top:var(--s1,4px);text-align:center;line-height:1.4}.verify-code-input__message--expired{color:var(--gray-500,#6b7280)}.verify-code-input__message--error{color:var(--red-500,#ef4444);align-items:center;gap:4px;display:flex}@media (width<=400px){.verify-code-input__cell{width:38px;height:46px;font-size:var(--text-lg,1.125rem)}}.login-shell{min-height:100vh;padding:var(--s8);background:linear-gradient(155deg,#0f172a 0%,#1e293b 50%,#1a2540 100%);justify-content:center;align-items:center;display:flex;position:relative;overflow-x:hidden}.login-shell:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#6366f10a 0%,#0000 70%);border-radius:50%;width:520px;height:520px;position:fixed;top:-160px;right:-100px}.login-shell:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#818cf80a 0%,#0000 70%);border-radius:50%;width:380px;height:380px;position:fixed;bottom:-120px;left:-60px}.login-wrap{gap:var(--s12);z-index:1;width:100%;max-width:920px;animation:fadeUp var(--dur-slow) var(--ease) both;grid-template-columns:1fr 1fr;align-items:center;display:grid;position:relative}.login-brand{color:#fff}.login-brand-logo{align-items:center;gap:var(--s3);margin-bottom:var(--s8);display:inline-flex}.login-brand-logo-mark{color:#fff;background:linear-gradient(135deg,#818cf8,#6366f1);border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;display:flex;box-shadow:0 4px 16px #6366f159}.login-brand-name{font-size:var(--text-2xl);letter-spacing:.04em;color:#e2e8f0;font-weight:700}.login-brand-title{font-size:var(--text-4xl);margin-bottom:var(--s4);color:#f8fafc;font-weight:700;line-height:1.2}.login-brand-desc{font-size:var(--text-base);color:#cbd5e199;margin-bottom:var(--s8);line-height:1.7}.login-brand-features{gap:var(--s3);flex-direction:column;display:flex}.login-brand-feature{align-items:center;gap:var(--s3);font-size:var(--text-sm);color:#cbd5e18c;animation:fadeUp var(--dur-slow) var(--ease) both;display:flex}.login-brand-feature:first-child{animation-delay:.1s}.login-brand-feature:nth-child(2){animation-delay:.2s}.login-brand-feature:nth-child(3){animation-delay:.3s}.login-brand-feature-icon{color:#a5b4fc;background:#6366f11f;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.login-brand-feature-text strong{color:#e2e8f0;font-weight:600}.login-brand-feature-dash{color:#94a3b866}.login-card{animation:fadeUp var(--dur-slow) var(--ease) .15s both;background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #00000040}.login-card-inner{padding:var(--s8)}.login-card-title{font-size:var(--text-2xl);color:#1e293b;margin-bottom:var(--s2);font-weight:700}.login-card-sub{font-size:var(--text-sm);color:#94a3b8;margin-bottom:var(--s6)}.login-tabs{margin-bottom:var(--s4);background:#f1f5f9;border-radius:8px;gap:0;padding:4px;display:flex}.login-tab{cursor:pointer;color:#94a3b8;background:0 0;border:none;border-radius:6px;flex:1;padding:8px 0;font-size:14px;font-weight:600;transition:all .2s}.login-tab:hover{color:#64748b}.login-tab--active{color:#1e293b;background:#fff;box-shadow:0 1px 3px #00000014}.login-form{gap:var(--s4);flex-direction:column;display:flex}.form-field{gap:var(--s2);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);color:#334155;font-weight:600}.form-label-optional{color:#94a3b8;font-weight:400;font-size:var(--text-xs)}.form-input{width:100%;font-size:var(--text-base);color:#1e293b;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;outline:none;padding:10px 14px;transition:border-color .15s,box-shadow .15s}.form-input:focus{border-color:#818cf8;box-shadow:0 0 0 3px #818cf81f}.form-input::placeholder{color:#94a3b8}.form-input.error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.form-input:focus-visible{outline:none}.btn-pwd-toggle{color:#64748b;cursor:pointer;white-space:nowrap;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;flex-shrink:0;padding:8px 14px;font-size:13px;font-weight:600;transition:all .15s}.btn-pwd-toggle:hover{color:#334155;background:#f1f5f9}.captcha-display{letter-spacing:5px;color:#4f46e5;cursor:pointer;-webkit-user-select:none;user-select:none;background:#eef2ff;border:1.5px solid #e0e7ff;border-radius:8px;padding:6px 12px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:22px;font-weight:700;transition:background .15s}.captcha-display:hover{background:#e0e7ff}.code-btn{padding:var(--s3) var(--s4);font-size:var(--text-sm);color:#6366f1;white-space:nowrap;text-align:center;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;flex-shrink:0;min-width:100px;font-weight:600;transition:all .15s}.code-btn:hover:not(:disabled){background:#eef2ff;border-color:#a5b4fc}.code-btn:disabled{color:#cbd5e1;cursor:not-allowed;background:#f8fafc;border-color:#e2e8f0}.field-error{font-size:var(--text-xs);color:#ef4444;animation:fadeUp var(--dur-fast) var(--ease) both;align-items:center;gap:4px;display:none}.field-error.show{display:flex}.remember-row{align-items:center;display:flex}.remember-me{align-items:center;gap:var(--s2);font-size:var(--text-sm);color:#64748b;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.remember-check{border:2px solid #cbd5e1;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;transition:all .15s;display:flex}.remember-me.checked .remember-check{background:#6366f1;border-color:#6366f1}.remember-me.checked .remember-check:after{content:"✓";color:#fff;font-size:10px;font-weight:800}.btn-login{width:100%;padding:var(--s4);color:#fff;font-size:var(--text-base);cursor:pointer;justify-content:center;align-items:center;gap:var(--s2);background:#1e293b;border:none;border-radius:10px;font-weight:700;transition:all .15s;display:flex}.btn-login:hover{background:#334155;transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.btn-login:active{transform:translateY(0)}.btn-login:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-login.loading{pointer-events:none}.btn-login .spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite spin}.login-switch{text-align:center;margin-top:var(--s2);font-size:var(--text-xs);color:#94a3b8}.login-switch-divider{color:#e2e8f0;margin:0 8px}.login-footer{margin-top:var(--s5);font-size:var(--text-xs);color:#94a3b8;text-align:center;line-height:1.6}.login-footer span{color:#64748b;cursor:pointer;font-weight:600;transition:color .15s}.login-footer span:hover{color:#6366f1}.login-guest-entry{margin-top:var(--s5);text-align:center}.login-guest-divider{margin-bottom:var(--s3);color:#475569;font-size:var(--text-xs);align-items:center;gap:10px;display:flex}.login-guest-divider:before,.login-guest-divider:after{content:"";background:#334155;flex:1;height:1px}.btn-guest-mode{border-radius:var(--r-full);color:#94a3b8;font-size:var(--text-sm);cursor:pointer;background:0 0;border:1px solid #475569;padding:8px 24px;transition:all .2s;display:inline-block}.btn-guest-mode:hover{color:#a5b4fc;background:#6366f11a;border-color:#6366f1}.login-guest-hint{margin-top:var(--s2);color:#475569;font-size:11px;line-height:1.5}.forgot-sent{text-align:center;padding:var(--s3)}.forgot-sent-icon{margin-bottom:var(--s2)}.forgot-sent-title{font-weight:700;font-size:var(--text-lg);margin-bottom:var(--s1);color:#1e293b}.forgot-sent-desc{color:#64748b;font-size:var(--text-sm);margin-bottom:var(--s2);line-height:1.6}.forgot-sent-hint{font-size:var(--text-xs);color:#94a3b8;padding:var(--s2);background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.forgot-q-box{padding:var(--s3);margin-bottom:var(--s2);background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.forgot-q-label{font-size:var(--text-sm);color:#64748b;margin-bottom:4px}.forgot-q-text{font-weight:700;font-size:var(--text-base);color:#1e293b}.modal-feature-item{margin-bottom:4px;padding-left:12px;position:relative}.modal-feature-item:before{content:"";background:#94a3b8;border-radius:50%;width:5px;height:5px;position:absolute;top:8px;left:0}@media (width<=768px){.login-wrap{grid-template-columns:1fr}.login-brand{display:none}.login-shell{padding:var(--s4)}.login-card-inner{padding:var(--s6)}}.admin-header-bar{padding:var(--s3) var(--s8);align-items:center;gap:var(--s4);margin:calc(-1 * var(--s6)) calc(-1 * var(--s8)) var(--s6);background:linear-gradient(90deg,#0f2027,#203a43,#2c5364);display:flex}.admin-role-badge{color:var(--gold-400);font-size:var(--text-xs);padding:3px var(--s3);border-radius:var(--r-full);background:#c9a84c40;border:1px solid #c9a84c4d;align-items:center;gap:4px;font-weight:700;display:inline-flex}.admin-env{font-size:var(--text-xs);color:#ffffff80}.admin-tabs{border-bottom:2px solid var(--gray-200);background:var(--white);z-index:10;margin-bottom:var(--s6);gap:0;padding:0;display:flex;position:sticky;top:64px}.admin-tab{padding:var(--s4) var(--s5);font-size:var(--text-sm);color:var(--gray-500);cursor:pointer;align-items:center;gap:var(--s2);transition:all var(--dur-fast) var(--ease);white-space:nowrap;-webkit-user-select:none;user-select:none;border-bottom:2px solid #0000;margin-bottom:-2px;font-weight:600;display:flex}.admin-tab:hover{color:var(--gray-700)}.admin-tab.active{color:var(--ai-600);border-bottom-color:var(--ai-500)}.admin-tab-pane{display:none}.admin-tab-pane.active{display:block}.q-toolbar{align-items:center;gap:var(--s3);margin-bottom:var(--s5);flex-wrap:wrap;display:flex}.search-box{align-items:center;gap:var(--s2);background:var(--white);border:1.5px solid var(--gray-300);border-radius:var(--r-lg);padding:var(--s2) var(--s4);max-width:300px;transition:border-color var(--dur-fast) var(--ease);flex:1;display:flex}.search-box:focus-within{border-color:var(--gold-500)}.search-box input{font-size:var(--text-sm);color:var(--gray-800);background:0 0;border:none;outline:none;flex:1}.admin-bulk-bar{background:var(--ink-900);padding:var(--s3) var(--s6);border-radius:var(--r-xl);align-items:center;gap:var(--s4);margin-bottom:var(--s4);display:none}.admin-bulk-bar.show{display:flex}.question-table-wrap{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);overflow:auto hidden}.q-table{border-collapse:collapse;table-layout:fixed;width:100%}.q-table thead{background:var(--gray-50)}.q-table th{padding:var(--s3) var(--s2);font-size:var(--text-xs);color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--gray-200);white-space:nowrap;text-align:left;font-weight:700}.q-table td{padding:var(--s2) var(--s2);font-size:var(--text-sm);color:var(--gray-800);border-bottom:1px solid var(--gray-100);vertical-align:top;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.q-table td:nth-child(2),.q-table td:nth-child(3){white-space:normal;word-break:break-word;text-overflow:unset;overflow:visible}.q-table td:nth-child(3){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.q-table tr:last-child td{border-bottom:none}.q-table tr:hover td{background:var(--gray-50)}.q-check{cursor:pointer;width:16px;height:16px;accent-color:var(--ai-500)}.q-text{font-size:var(--text-sm);color:var(--gray-800);cursor:pointer;white-space:normal;word-break:break-word;line-height:1.5}.q-text:hover{color:var(--ai-600)}.review-badge{padding:2px var(--s2);border-radius:var(--r-full);align-items:center;gap:4px;font-size:10px;font-weight:700;display:inline-flex}.rb-pending{background:var(--yellow-100);color:var(--yellow-700)}.rb-published{background:var(--green-100);color:var(--green-700)}.rb-rejected{background:var(--red-100);color:var(--red-700)}.rb-draft{background:var(--gray-100);color:var(--gray-600)}.review-queue-list{gap:var(--s3);flex-direction:column;display:flex}.rq-item{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);padding:var(--s5);transition:all var(--dur-normal) var(--ease)}.rq-item:hover{border-color:var(--gray-300);box-shadow:var(--shadow-sm)}.rq-item-hd{align-items:flex-start;gap:var(--s3);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.rq-item-body{font-size:var(--text-sm);color:var(--gray-700);background:var(--gray-50);border-radius:var(--r-lg);padding:var(--s4);margin-bottom:var(--s3);line-height:1.6}.rq-answer-ref{font-size:var(--text-xs);color:var(--gray-500);border-left:3px solid var(--gray-300);padding-left:var(--s3);margin-bottom:var(--s3);max-height:80px;line-height:1.6;overflow-y:auto}.rq-actions{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.textbook-grid{gap:var(--s4);grid-template-columns:repeat(3,1fr);display:grid}.tb-card{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);padding:var(--s5);transition:all var(--dur-normal) var(--ease)}.tb-card:hover{border-color:var(--gold-400);box-shadow:0 4px 20px #c9a84c26}.tb-cover{aspect-ratio:3/4;background:linear-gradient(135deg, var(--ink-900), var(--ink-700));border-radius:var(--r-lg);width:100%;margin-bottom:var(--s3);justify-content:center;align-items:center;font-size:2rem;display:flex}.tb-title{font-size:var(--text-sm);color:var(--gray-800);margin-bottom:2px;font-weight:700}.tb-author{font-size:var(--text-xs);color:var(--gray-500);margin-bottom:var(--s2)}.tb-stats{gap:var(--s3);display:flex}.tb-stat{color:var(--gray-500);font-size:10px}.tb-stat b{color:var(--gray-700)}.import-zone{border:2px dashed var(--gray-300);border-radius:var(--r-xl);padding:var(--s10);text-align:center;transition:all var(--dur-normal) var(--ease);cursor:pointer;background:var(--gray-50)}.import-zone:hover{border-color:var(--ai-400);background:var(--ai-50)}.import-zone.dragover{border-color:var(--gold-500);background:var(--gold-50)}.import-icon{margin-bottom:var(--s3);font-size:3rem}.import-title{font-size:var(--text-lg);color:var(--gray-700);margin-bottom:var(--s2);font-weight:700}.import-desc{font-size:var(--text-sm);color:var(--gray-500);line-height:1.6}.question-form{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);padding:var(--s8)}.form-section-title{font-size:var(--text-sm);color:var(--gray-600);text-transform:uppercase;letter-spacing:.08em;margin:var(--s6) 0 var(--s4);padding-bottom:var(--s2);border-bottom:1px solid var(--gray-200);font-weight:700}.form-section-title:first-child{margin-top:0}.role-matrix{border-radius:var(--r-xl);border:1px solid var(--gray-200);grid-template-columns:160px repeat(3,1fr);gap:0;display:grid;overflow:hidden}.rm-header{background:var(--gray-50);padding:var(--s3) var(--s4);font-size:var(--text-xs);color:var(--gray-600);border-bottom:2px solid var(--gray-200);border-right:1px solid var(--gray-200);font-weight:700}.rm-cell{padding:var(--s3) var(--s4);border-bottom:1px solid var(--gray-100);border-right:1px solid var(--gray-100);font-size:var(--text-sm);justify-content:center;align-items:center;display:flex}.rm-cell.label{color:var(--gray-700);background:var(--gray-50);justify-content:flex-start;font-weight:600}.rm-yes{color:var(--green-700);font-size:16px}.rm-no{color:var(--gray-300);font-size:16px}.rm-partial{color:var(--yellow-700);font-size:14px}.data-table{border-collapse:collapse;width:100%}.data-table thead{background:var(--gray-50)}.data-table th{padding:var(--s3) var(--s4);font-size:var(--text-xs);color:var(--gray-500);border-bottom:1px solid var(--gray-200);text-align:left;font-weight:700}.data-table td{padding:var(--s4);font-size:var(--text-sm);border-bottom:1px solid var(--gray-100);color:var(--gray-700)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--gray-50)}.section-row{margin-bottom:var(--s5);justify-content:space-between;align-items:center;display:flex}.section-title{font-size:var(--text-lg);color:var(--gray-900);font-weight:700}.section-sub{font-size:var(--text-sm);color:var(--gray-500);margin-top:2px}.alert-info-sm{background:var(--ai-50);border:1px solid var(--ai-100);border-radius:var(--r-lg);padding:var(--s3) var(--s4);font-size:var(--text-xs);color:var(--ai-700);gap:var(--s2);align-items:flex-start;display:flex}.alert-warn-sm{background:var(--yellow-50);border:1px solid var(--yellow-100);border-radius:var(--r-lg);padding:var(--s3) var(--s4);font-size:var(--text-xs);color:var(--yellow-700);gap:var(--s2);align-items:flex-start;display:flex}.structure-empty{padding:var(--s6);justify-content:center;display:flex}.structure-editor{border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden}.structure-header{padding:var(--s3) var(--s4);background:var(--gray-50);border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;display:flex}.structure-header h4{font-size:var(--text-base);margin:0}.structure-actions{gap:var(--s2);display:flex}.structure-error{padding:var(--s3) var(--s4);background:var(--red-50);color:var(--red-700);font-size:var(--text-sm)}.structure-warnings{padding:var(--s3) var(--s4);background:var(--yellow-50);color:var(--yellow-800);font-size:var(--text-xs);border-bottom:1px solid var(--yellow-200)}.structure-warning-item{padding-left:var(--s3);margin-top:2px}.structure-tree{padding:var(--s2) 0;max-height:60vh;overflow-y:auto}.structure-part{border-bottom:1px solid var(--gray-100)}.structure-part-header{align-items:center;gap:var(--s2);padding:var(--s2) var(--s4);cursor:pointer;background:var(--gray-25);font-weight:600;font-size:var(--text-sm);display:flex}.structure-part-header:hover{background:var(--gray-100)}.structure-part-name{color:var(--gray-800);font-weight:600}.structure-chapters{padding-left:var(--s4)}.structure-chapter{border-bottom:1px solid var(--gray-50)}.structure-chapter-header{align-items:center;gap:var(--s2);padding:var(--s1) var(--s3);cursor:pointer;font-size:var(--text-sm);display:flex}.structure-chapter-header:hover{background:var(--ai-25)}.structure-chapter-name{color:var(--gray-700)}.structure-sections{padding-left:var(--s6)}.structure-section{align-items:center;gap:var(--s2);padding:2px var(--s3);font-size:var(--text-xs);color:var(--gray-500);display:flex}.structure-toggle{width:16px;color:var(--gray-400);flex-shrink:0;font-size:10px}.structure-icon{flex-shrink:0;font-size:14px}.structure-count{font-size:var(--text-xs);color:var(--gray-400);margin-left:auto;font-weight:400}.structure-line{font-size:var(--text-xs);color:var(--gray-300);margin-left:auto;font-family:monospace}.structure-flat-label{padding:var(--s2) var(--s4);font-size:var(--text-xs);color:var(--gray-500);font-style:italic}.structure-editable-text{cursor:pointer;border:1px solid #0000;border-radius:3px;padding:1px 4px}.structure-editable-text:hover{background:var(--ai-50);border-color:var(--ai-200)}.structure-editable-input{border:1px solid var(--ai-400);font-size:inherit;border-radius:3px;outline:none;padding:1px 4px;font-family:inherit}body:has(.onboarding-wrap){background:var(--ink-900)}.onboarding-wrap{width:100%;max-width:640px;padding:var(--s8);flex-direction:column;align-items:center;min-height:100vh;margin:0 auto;display:flex}.ob-header{text-align:center;margin-bottom:var(--s10);animation:fadeUp var(--dur-slow,.5s) var(--ease,ease) both}.ob-logo{align-items:center;gap:var(--s3);margin-bottom:var(--s3);display:inline-flex}.ob-logo-mark{border-radius:var(--r-xl,16px);background:linear-gradient(135deg, var(--gold-500,#c9a84c), var(--gold-600,#a8872e));width:48px;height:48px;color:var(--ink-900,#1a1a2e);justify-content:center;align-items:center;font-size:22px;font-weight:800;transition:transform .2s;display:flex;box-shadow:0 4px 16px #c9a84c4d}.ob-logo:hover .ob-logo-mark{transform:scale(1.05)}.ob-logo-name{font-size:var(--text-2xl,1.5rem);color:var(--white,#fff);letter-spacing:.04em;font-weight:800}.ob-tagline{font-size:var(--text-sm,.875rem);color:#ffffff73}.ob-steps{margin-bottom:var(--s8);animation:fadeUp var(--dur-slow,.5s) var(--ease,ease) both;justify-content:center;align-items:center;gap:0;display:flex}.ob-step{align-items:center;gap:var(--s2);display:flex}.ob-step-dot{color:#ffffff4d;border:2px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;transition:all .3s;display:flex}.ob-step-dot.done{background:var(--green-500,#10b981);border-color:var(--green-500,#10b981);color:var(--white,#fff)}.ob-step-dot.active{background:var(--gold-500,#c9a84c);border-color:var(--gold-500,#c9a84c);color:var(--ink-900,#1a1a2e);box-shadow:0 0 0 4px #c9a84c33}.ob-step-label{font-size:var(--text-xs,.75rem);color:#ffffff59;transition:color .2s}.ob-step-label.active{color:var(--gold-400,#d4a853)}.ob-step-sep{width:48px;height:2px;margin:0 var(--s2);background:#ffffff1a}.ob-card{background:var(--white,#fff);border-radius:var(--r-2xl,20px);width:100%;animation:fadeUp var(--dur-slow,.5s) var(--ease,ease) both;overflow:hidden;box-shadow:0 8px 32px #00000026}.ob-card-hd{padding:var(--s8) var(--s8) var(--s6);border-bottom:1px solid var(--gray-100,#f3f4f6)}.ob-card-title{font-size:var(--text-2xl,1.5rem);color:var(--gray-900,#111827);margin-bottom:var(--s2);font-weight:800}.ob-card-desc{font-size:var(--text-sm,.875rem);color:var(--gray-500,#6b7280);line-height:1.7}.ob-card-bd{padding:var(--s8)}.ob-card-ft{padding:var(--s5) var(--s8);border-top:1px solid var(--gray-100,#f3f4f6);justify-content:flex-end;align-items:center;gap:var(--s3);display:flex}.school-search{margin-bottom:var(--s5);position:relative}.school-search-icon{left:var(--s4);color:var(--gray-400,#9ca3af);pointer-events:none;font-size:16px;position:absolute;top:50%;transform:translateY(-50%)}.school-grid{gap:var(--s3);grid-template-columns:repeat(3,1fr);display:grid}.school-card{border:2px solid var(--gray-200,#e5e7eb);border-radius:var(--r-xl,16px);padding:var(--s5);cursor:pointer;text-align:center;transition:all .2s;position:relative}.school-card:hover{border-color:var(--gold-400,#d4a853);background:var(--gold-50,#fffdf5)}.school-card.selected{border-color:var(--gold-500,#c9a84c);background:var(--gold-50,#fffdf5);box-shadow:0 0 0 3px #c9a84c26}.school-card.selected:after{content:"✓";top:var(--s2);right:var(--s2);background:var(--gold-500,#c9a84c);width:22px;height:22px;color:var(--ink-900,#1a1a2e);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex;position:absolute}.school-card:active{transform:scale(.98)}.school-avatar{border-radius:var(--r-lg,12px);background:var(--gray-100,#f3f4f6);width:48px;height:48px;margin:0 auto var(--s3);color:var(--gray-700,#374151);justify-content:center;align-items:center;font-size:18px;font-weight:800;transition:transform .2s;display:flex}.school-card:hover .school-avatar{transform:scale(1.05)}.school-name{font-size:var(--text-sm,.875rem);color:var(--gray-900,#111827);font-weight:700}.school-level{font-size:var(--text-xs,.75rem);color:var(--gray-500,#6b7280);margin-top:2px}.subject-list{gap:var(--s3);flex-direction:column;display:flex}.subject-item{align-items:flex-start;gap:var(--s4);padding:var(--s5);border:2px solid var(--gray-200,#e5e7eb);border-radius:var(--r-xl,16px);cursor:pointer;transition:all .2s;display:flex}.subject-item:hover{border-color:var(--ai-300,#93c5fd);background:var(--ai-50,#eff6ff)}.subject-item.selected{border-color:var(--ai-500,#3b82f6);background:var(--ai-50,#eff6ff);box-shadow:0 0 0 3px #3b82f61a}.subject-item:active{transform:scale(.99)}.subject-checkbox{border-radius:var(--r-sm,6px);border:2px solid var(--gray-300,#d1d5db);width:22px;height:22px;color:var(--white,#fff);flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:12px;transition:all .2s;display:flex}.subject-item.selected .subject-checkbox{background:var(--ai-500,#3b82f6);border-color:var(--ai-500,#3b82f6)}.subject-info{flex:1}.subject-name{font-size:var(--text-base,1rem);color:var(--gray-900,#111827);align-items:center;gap:8px;font-weight:700;display:flex}.subject-code{font-size:var(--text-xs,.75rem);color:var(--gray-500,#6b7280);margin-top:2px}.degree-badge{white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600}.degree-academic{color:#1e40af;background:#dbeafe}.degree-professional{color:#92400e;background:#fef3c7}.subject-textbooks{color:var(--gray-400,#9ca3af);margin-top:4px;font-size:11px;line-height:1.4}.diag-progress{background:var(--gray-100,#f3f4f6);height:6px;margin-bottom:var(--s6);border-radius:50%;overflow:hidden}.diag-progress-fill{background:linear-gradient(90deg, var(--ai-400,#60a5fa), var(--ai-600,#2563eb));border-radius:50%;height:100%;transition:width .5s}.diag-q-meta{align-items:center;gap:var(--s3);margin-bottom:var(--s5);display:flex}.qtype{font-size:var(--text-xs,.75rem);border-radius:var(--r-full,9999px);padding:3px 10px;font-weight:700}.qtype-term{background:var(--green-100,#d1fae5);color:var(--green-700,#047857)}.qtype-short{background:var(--blue-100,#dbeafe);color:var(--blue-700,#1d4ed8)}.qtype-essay{background:var(--purple-100,#ede9fe);color:var(--purple-700,#6d28d9)}.diag-q-text{font-size:var(--text-lg,1.125rem);color:var(--gray-900,#111827);margin-bottom:var(--s6);font-weight:700;line-height:1.6}.diag-answer-area{position:relative}.diag-answer-label{font-size:var(--text-sm,.875rem);color:var(--gray-700,#374151);margin-bottom:var(--s2);justify-content:space-between;align-items:center;font-weight:600;display:flex}.diag-char-count{font-size:var(--text-xs,.75rem);color:var(--gray-400,#9ca3af)}.diag-textarea{border:2px solid var(--gray-200,#e5e7eb);border-radius:var(--r-xl,16px);width:100%;min-height:140px;padding:var(--s4);font-size:var(--text-sm,.875rem);color:var(--gray-800,#1f2937);resize:vertical;background:var(--white,#fff);box-sizing:border-box;outline:none;font-family:inherit;line-height:1.8;transition:border-color .2s,box-shadow .2s}.diag-textarea:focus{border-color:var(--ai-400,#60a5fa);box-shadow:0 0 0 3px #3b82f61f}.diag-textarea::placeholder{color:var(--gray-400,#9ca3af)}.diag-tools{gap:var(--s3);margin-top:var(--s3);flex-wrap:wrap;display:flex}.diag-tool-btn{font-size:var(--text-xs,.75rem);color:var(--ai-600,#2563eb);background:var(--ai-50,#eff6ff);border:1px solid var(--ai-200,#bfdbfe);padding:var(--s2) var(--s3);border-radius:var(--r-md,8px);cursor:pointer;align-items:center;gap:4px;font-weight:500;transition:all .2s;display:flex}.diag-tool-btn:hover{background:var(--ai-100,#dbeafe);border-color:var(--ai-300,#93c5fd)}.diag-tool-btn:active{transform:scale(.97)}.dimension-list{gap:var(--s4);flex-direction:column;display:flex}.dim-item{background:var(--gray-50,#f9fafb);border-radius:var(--r-xl,16px);padding:var(--s4) var(--s5);transition:all .2s}.dim-item:hover{background:var(--gray-100,#f3f4f6)}.dim-header{margin-bottom:var(--s3);justify-content:space-between;align-items:center;display:flex}.dim-name{font-size:var(--text-sm,.875rem);color:var(--gray-800,#1f2937);font-weight:700}.dim-bar{background:var(--gray-200,#e5e7eb);height:8px;margin-bottom:var(--s3);border-radius:50%;overflow:hidden}.progress-fill{border-radius:50%;height:100%;transition:width .5s}.pf-ai{background:linear-gradient(90deg, var(--ai-400,#60a5fa), var(--ai-600,#2563eb))}.pf-red{background:linear-gradient(90deg, var(--red-400,#f87171), var(--red-600,#dc2626))}.dim-suggestion{margin-top:var(--s2);font-size:var(--text-xs,.75rem);color:var(--ai-600,#2563eb);align-items:flex-start;gap:4px;display:flex}.dim-urgent{border-left:3px solid var(--red-500,#ef4444);padding-left:var(--s3);background:var(--red-50,#fef2f2);border-radius:0 var(--r-md,8px) var(--r-md,8px) 0}.dim-conclusion{font-size:var(--text-xs,.75rem);color:var(--gray-600,#4b5563);line-height:1.5}.btn{justify-content:center;align-items:center;gap:var(--s2);border-radius:var(--r-lg,12px);cursor:pointer;font-weight:600;font-size:var(--text-sm,.875rem);padding:var(--s2) var(--s5);border:none;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{font-size:var(--text-xs,.75rem);padding:var(--s2) var(--s3)}.btn-lg{font-size:var(--text-base,1rem);padding:var(--s4) var(--s8);width:100%}.btn-gold{background:linear-gradient(135deg, var(--gold-500,#c9a84c), var(--gold-600,#a8872e));color:var(--ink-900,#1a1a2e);box-shadow:0 2px 8px #c9a84c4d}.btn-gold:hover:not(:disabled){box-shadow:0 4px 16px #c9a84c66}.btn-ai{background:linear-gradient(135deg, var(--ai-500,#3b82f6), var(--ai-600,#2563eb));color:var(--white,#fff);box-shadow:0 2px 8px #3b82f64d}.btn-ai:hover:not(:disabled){box-shadow:0 4px 16px #3b82f666}.btn-ghost{color:var(--gray-500,#6b7280);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--gray-700,#374151);background:var(--gray-50,#f9fafb)}.alert{gap:var(--s3);padding:var(--s4);border-radius:var(--r-xl,16px);display:flex}.alert-info{background:var(--ai-50,#eff6ff);border:1px solid var(--ai-200,#bfdbfe)}.alert-icon{flex-shrink:0;font-size:20px}.alert-title{font-size:var(--text-sm,.875rem);color:var(--gray-800,#1f2937);font-weight:700}.alert-text{font-size:var(--text-xs,.75rem);color:var(--gray-600,#4b5563);margin-top:2px}.spinner{border:3px solid var(--gray-200,#e5e7eb);border-top-color:var(--ai-500,#3b82f6);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@media (width<=640px){.school-grid{grid-template-columns:repeat(2,1fr)}.ob-card-hd,.ob-card-bd,.ob-card-ft{padding-left:var(--s5);padding-right:var(--s5)}}.pe-wrap{background:linear-gradient(160deg, var(--ink-900) 0%, var(--ink-800) 60%, #1a2a4a 100%);min-height:100vh;padding:var(--s8);justify-content:center;align-items:center;display:flex;position:relative;overflow-x:hidden}.pe-wrap:before{content:"";pointer-events:none;background:radial-gradient(circle,#c9a84c0f 0%,#0000 70%);border-radius:50%;width:480px;height:480px;position:fixed;top:-120px;right:-80px}.pe-wrap:after{content:"";pointer-events:none;background:radial-gradient(circle,#3b82f60d 0%,#0000 70%);border-radius:50%;width:360px;height:360px;position:fixed;bottom:-80px;left:-60px}.pe-container{width:100%;max-width:640px;animation:fadeUp var(--dur-slow) var(--ease) both}.pe-header{text-align:center;margin-bottom:var(--s8);animation:fadeUp var(--dur-slow) var(--ease) both}.pe-logo{align-items:center;gap:var(--s3);margin-bottom:var(--s3);display:inline-flex}.pe-logo-mark{border-radius:var(--r-xl);background:linear-gradient(135deg, var(--gold-500), var(--gold-600));width:48px;height:48px;color:var(--ink-900);box-shadow:var(--shadow-gold);justify-content:center;align-items:center;font-size:1.4rem;font-weight:800;display:flex}.pe-logo-name{font-size:var(--text-2xl);color:#fff;letter-spacing:.04em;font-weight:800}.pe-tagline{font-size:var(--text-sm);color:#ffffff73}.pe-steps{margin-bottom:var(--s6);justify-content:center;align-items:center;gap:0;display:flex}.pe-step{align-items:center;gap:var(--s2);display:flex}.pe-step-dot{border-radius:var(--r-full);color:#ffffff4d;width:32px;height:32px;transition:all var(--dur-normal) var(--ease);background:#ffffff0d;border:2px solid #ffffff26;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.pe-step-dot.done{background:var(--green-500);border-color:var(--green-500);color:#fff}.pe-step-dot.active{background:var(--gold-500);border-color:var(--gold-500);color:var(--ink-900);box-shadow:0 0 0 4px #c9a84c33}.pe-step-label{font-size:var(--text-xs);color:#ffffff59;transition:color var(--dur-micro)}.pe-step-label.active{color:var(--gold-400)}.pe-step-sep{width:48px;height:2px;margin:0 var(--s2);background:#ffffff1a}.pe-card{border-radius:var(--r-2xl);box-shadow:var(--shadow-2xl);background:#fff;overflow:hidden}.pe-card-topbar{background:linear-gradient(90deg, var(--gold-400), var(--ai-500), var(--gold-400));background-size:200% 100%;height:4px;animation:3s ease-in-out infinite shimmer}.pe-card-inner{padding:var(--s8)}.pe-welcome{text-align:center;margin-bottom:var(--s6);padding:var(--s6);background:linear-gradient(135deg, var(--ink-900), var(--ink-800));border-radius:var(--r-2xl);position:relative;overflow:hidden}.pe-welcome:before{content:"";pointer-events:none;background:radial-gradient(circle at 20%,#c9a84c26 0%,#0000 60%);position:absolute;inset:0}.pe-welcome-icon{margin-bottom:var(--s3);animation:bounceIn .6s var(--ease-bounce) both;font-size:2.5rem}@keyframes bounceIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.pe-welcome h2{font-size:var(--text-xl);color:#fff;margin-bottom:var(--s2);font-weight:800}.pe-welcome p{font-size:var(--text-sm);color:#ffffff8c;line-height:1.6}.pe-avatar-section{margin-bottom:var(--s8)}.pe-section-label{align-items:center;gap:var(--s2);font-size:var(--text-sm);color:var(--gray-700);margin-bottom:var(--s4);font-weight:700;display:flex}.pe-section-label-icon{border-radius:var(--r-sm);background:var(--gold-100);width:24px;height:24px;color:var(--gold-600);justify-content:center;align-items:center;font-size:12px;display:flex}.pe-section-label-tip{font-size:var(--text-xs);color:var(--gray-400);margin-left:auto;font-weight:400}.pe-avatar-preview-wrap{margin-bottom:var(--s6);justify-content:center;align-items:center;display:flex}.pe-avatar-preview{display:inline-block;position:relative}.pe-avatar-preview-img{border-radius:var(--r-full);border:4px solid var(--gold-200);background:var(--gray-100);width:120px;height:120px;color:var(--gray-400);transition:all var(--dur-normal) var(--ease);box-shadow:var(--shadow-lg);justify-content:center;align-items:center;font-size:3rem;display:flex;overflow:hidden}.pe-avatar-preview-img img{object-fit:cover;width:100%;height:100%}.pe-avatar-edit-btn{border-radius:var(--r-full);background:var(--gold-500);width:32px;height:32px;color:var(--ink-900);box-shadow:var(--shadow-md);cursor:pointer;transition:all var(--dur-micro) var(--ease);border:none;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;bottom:4px;right:4px}.pe-avatar-edit-btn:hover{background:var(--gold-600);transform:scale(1.1)}.pe-avatar-edit-btn:active{transform:scale(.95)}.pe-avatar-upload-area{gap:var(--s3);margin-bottom:var(--s6);justify-content:center;display:flex}.pe-btn-upload{align-items:center;gap:var(--s2);padding:var(--s3) var(--s5);border:2px dashed var(--gray-300);border-radius:var(--r-xl);font-size:var(--text-sm);color:var(--gray-600);cursor:pointer;transition:all var(--dur-micro) var(--ease);background:#fff;font-weight:600;display:inline-flex}.pe-btn-upload:hover{border-color:var(--gold-400);color:var(--gold-600);background:var(--gold-50);transform:translateY(-1px)}.pe-btn-upload:active{transform:scale(.98)}.pe-preset-label{font-size:var(--text-xs);color:var(--gray-500);text-align:center;margin-bottom:var(--s3)}.pe-preset-avatars{gap:var(--s2);grid-template-columns:repeat(8,1fr);display:grid}.pe-preset-avatar{aspect-ratio:1;border-radius:var(--r-full);cursor:pointer;transition:all var(--dur-micro) var(--ease);background:var(--gray-100);border:3px solid #0000;justify-content:center;align-items:center;font-size:1.5rem;display:flex;overflow:hidden}.pe-preset-avatar:hover{border-color:var(--gold-300);box-shadow:var(--shadow-md);transform:scale(1.15)}.pe-preset-avatar.selected{border-color:var(--gold-500);box-shadow:0 0 0 3px #c9a84c40, var(--shadow-md);transform:scale(1.1)}.pe-preset-avatar:active{transform:scale(1.05)}.pe-nickname-section{margin-bottom:var(--s6)}.pe-nickname-input-row{gap:var(--s3);margin-bottom:var(--s4);display:flex}.pe-nickname-input{padding:var(--s3) var(--s4);border:2px solid var(--gray-200);border-radius:var(--r-xl);font-size:var(--text-base);color:var(--gray-800);transition:border-color var(--dur-micro) var(--ease), box-shadow var(--dur-micro) var(--ease);background:#fff;outline:none;flex:1}.pe-nickname-input:focus{border-color:var(--gold-400);box-shadow:var(--shadow-focus-gold)}.pe-nickname-input::placeholder{color:var(--gray-400)}.pe-nickname-input.taken{border-color:var(--red-400)}.pe-nickname-input.taken:focus{box-shadow:0 0 0 3px #ef44441a}.pe-btn-random{align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);border:2px solid var(--gold-200);border-radius:var(--r-xl);font-size:var(--text-sm);color:var(--gold-600);background:var(--gold-50);cursor:pointer;white-space:nowrap;transition:all var(--dur-micro) var(--ease);flex-shrink:0;font-weight:700;display:inline-flex}.pe-btn-random:hover{border-color:var(--gold-400);background:var(--gold-100);box-shadow:var(--shadow-gold);transform:translateY(-1px)}.pe-btn-random:active{transform:scale(.97)}.pe-btn-random.spinning .dice{animation:shake .4s var(--ease)}@keyframes shake{0%,to{transform:rotate(0)}25%{transform:rotate(-20deg)}75%{transform:rotate(20deg)}}.pe-nickname-suggestions{gap:var(--s2);flex-wrap:wrap;display:flex}.pe-nickname-chip{padding:var(--s2) var(--s3);border:1.5px solid var(--gray-200);border-radius:var(--r-full);font-size:var(--text-xs);color:var(--gray-600);cursor:pointer;transition:all var(--dur-micro) var(--ease);background:#fff;align-items:center;gap:4px;font-weight:600;display:inline-flex}.pe-nickname-chip:hover{border-color:var(--gold-300);color:var(--gold-600);background:var(--gold-50);transform:translateY(-1px)}.pe-nickname-chip:active{transform:scale(.97)}.pe-nickname-chip.selected{border-color:var(--gold-500);color:var(--gold-700);background:var(--gold-100)}.pe-nickname-chip .refresh-icon{opacity:.6;font-size:10px}.pe-nickname-status{align-items:center;gap:var(--s2);font-size:var(--text-xs);margin-top:var(--s2);min-height:20px;transition:all var(--dur-micro) var(--ease);display:flex}.pe-nickname-status.ok{color:var(--green-600)}.pe-nickname-status.error{color:var(--red-500)}.pe-nickname-status.hint{color:var(--gray-400)}.pe-card-ft{padding:var(--s5) var(--s8) var(--s8);gap:var(--s3);border-top:1px solid var(--gray-100);flex-direction:column;display:flex}.pe-btn-start{width:100%;padding:var(--s4);background:linear-gradient(135deg, var(--gold-500), var(--gold-600));color:var(--ink-900);font-size:var(--text-base);border-radius:var(--r-xl);cursor:pointer;box-shadow:var(--shadow-gold);transition:all var(--dur-micro) var(--ease);justify-content:center;align-items:center;gap:var(--s2);border:none;font-weight:800;display:flex;position:relative;overflow:hidden}.pe-btn-start:before{content:"";opacity:0;transition:opacity var(--dur-micro) var(--ease);background:linear-gradient(135deg,#ffffff26,#0000);position:absolute;inset:0}.pe-btn-start:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #c9a84c73}.pe-btn-start:hover:before{opacity:1}.pe-btn-start:active:not(:disabled){transform:scale(.99)}.pe-btn-start:disabled{opacity:.5;cursor:not-allowed}.pe-btn-skip{width:100%;padding:var(--s3);font-size:var(--text-sm);color:var(--gray-400);cursor:pointer;text-align:center;transition:color var(--dur-micro) var(--ease);background:0 0;border:none;font-weight:600}.pe-btn-skip:hover{color:var(--gray-600)}.pe-file-input{display:none}@media (width<=576px){.pe-preset-avatars{grid-template-columns:repeat(5,1fr)}.pe-card-inner{padding:var(--s5)}.pe-card-ft{padding:var(--s4) var(--s5) var(--s6)}.pe-wrap{padding:var(--s4)}.pe-steps{transform-origin:50%;transform:scale(.85)}.pe-avatar-preview-img{width:96px;height:96px}}.pe-spinner{border:2.5px solid #1a1a2e40;border-top-color:var(--ink-900);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}.kp-page{max-width:960px;margin:0 auto}.kp-page-loading{gap:var(--s4);flex-direction:column;max-width:960px;margin:0 auto;display:flex}.kp-header{margin-bottom:var(--s5);justify-content:space-between;align-items:center;display:flex}.kp-header-left{align-items:baseline;gap:var(--s3);display:flex}.kp-title{font-size:var(--text-xl);color:var(--gray-900);margin:0;font-weight:800}.kp-subtitle{font-size:var(--text-xs);color:var(--gray-400)}.kp-header-right{align-items:center;gap:var(--s3);display:flex}.kp-subject-select{border-radius:var(--r-md);border:1px solid var(--gray-300);background:var(--white);font-size:var(--text-sm);color:var(--gray-700);cursor:pointer;padding:6px 12px}.kp-subject-select:focus{border-color:var(--ai-500,#3b82f6);box-shadow:0 0 0 2px var(--ai-200,#bfdbfe);outline:none}.kp-textbook-notice{margin-bottom:var(--s4);border-radius:var(--r-md);background:var(--blue-50,#eff6ff);border:1px solid var(--blue-200,#bfdbfe);font-size:var(--text-sm);color:var(--blue-700,#1d4ed8);align-items:center;gap:6px;padding:8px 14px;display:flex}.kp-textbook-notice-icon{flex-shrink:0;font-size:16px}.kp-textbook-notice-text{line-height:1.5}.kp-overview-bar{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);padding:var(--s4) var(--s5);margin-bottom:var(--s5);box-shadow:var(--shadow-xs)}.kp-overview-segments{border-radius:var(--r-md);gap:2px;display:flex;overflow:hidden}.kp-overview-seg{padding:var(--s2) var(--s3);cursor:pointer;border-radius:var(--r-md);flex-direction:column;align-items:center;min-width:60px;transition:all .2s;display:flex}.kp-overview-seg:hover{background:var(--gray-50)}.kp-overview-seg.active{background:var(--gray-100);box-shadow:inset 0 0 0 2px var(--gray-300)}.kp-overview-seg-bar{border-radius:var(--r-full);width:100%;height:8px;margin-bottom:var(--s1);opacity:.85}.kp-overview-seg-label{font-size:var(--text-xs);color:var(--gray-600);white-space:nowrap}.kp-overview-seg-label strong{color:var(--gray-900)}.kp-toolbar{align-items:center;gap:var(--s5);margin-bottom:var(--s5);flex-wrap:wrap;display:flex}.kp-filter-group{align-items:center;gap:var(--s2);display:flex}.kp-filter-label{font-size:var(--text-xs);color:var(--gray-500);white-space:nowrap;font-weight:600}.kp-filter-btn{border-radius:var(--r-full);border:1px solid var(--gray-200);background:var(--white);font-size:var(--text-xs);color:var(--gray-600);cursor:pointer;padding:4px 10px;transition:all .15s}.kp-filter-btn:hover{border-color:var(--gray-300);background:var(--gray-50)}.kp-filter-btn.active{background:var(--gray-900);color:var(--white);border-color:var(--gray-900)}.kp-toolbar-right{align-items:center;gap:var(--s3);margin-left:auto;display:flex}.kp-sort-btn{border-radius:var(--r-full);border:1px solid var(--gray-200);background:var(--white);font-size:var(--text-xs);color:var(--gray-600);cursor:pointer;padding:4px 10px;transition:all .15s}.kp-sort-btn:hover{border-color:var(--gray-300)}.kp-sort-btn.active{border-color:var(--ai-500,#3b82f6);color:var(--ai-600,#2563eb);background:var(--ai-50,#eff6ff);font-weight:600}.kp-view-toggle{border:1px solid var(--gray-200);border-radius:var(--r-md);display:flex;overflow:hidden}.kp-view-btn{background:var(--white);cursor:pointer;font-size:var(--text-sm);border:none;padding:4px 8px;transition:all .15s}.kp-view-btn+.kp-view-btn{border-left:1px solid var(--gray-200)}.kp-view-btn:hover{background:var(--gray-50)}.kp-view-btn.active{background:var(--gray-900)}.kp-empty{text-align:center;padding:var(--s10) var(--s5);background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200)}.kp-empty-icon{margin-bottom:var(--s4);font-size:48px}.kp-empty-title{font-size:var(--text-lg);color:var(--gray-700);margin-bottom:var(--s2);font-weight:700}.kp-empty-desc{font-size:var(--text-sm);color:var(--gray-400)}.kp-list{gap:var(--s2);flex-direction:column;display:flex}.kp-list-item{padding:var(--s3) var(--s4);background:var(--white);border-radius:var(--r-lg);border:1px solid var(--gray-200);justify-content:space-between;align-items:center;transition:all .15s;display:flex}.kp-list-item:hover{border-color:var(--gray-300);box-shadow:var(--shadow-xs)}.kp-list-left{align-items:flex-start;gap:var(--s3);flex:1;min-width:0;display:flex}.kp-level-icon{font-size:var(--text-lg);flex-shrink:0;margin-top:2px;line-height:1}.kp-list-info{flex:1;min-width:0}.kp-list-name{font-size:var(--text-sm);color:var(--gray-800);align-items:center;gap:var(--s2);font-weight:600;display:flex}.kp-list-level{font-size:var(--text-xs);color:var(--gray-400);font-weight:400}.kp-list-path{font-size:var(--text-xs);color:var(--gray-400);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;overflow:hidden}.kp-list-meta{font-size:var(--text-xs);color:var(--gray-400);margin-top:2px}.kp-list-right{align-items:center;gap:var(--s3);flex-shrink:0;display:flex}.kp-mastery-bar-wrap{align-items:center;gap:var(--s2);display:flex}.kp-mastery-bar{border-radius:var(--r-full);background:var(--gray-100);width:80px;height:6px;overflow:hidden}.kp-mastery-fill{border-radius:var(--r-full);height:100%;transition:width .3s}.kp-mastery-pct{font-size:var(--text-xs);text-align:right;min-width:32px;font-weight:700}.kp-status-tag{font-size:var(--text-xs);border-radius:var(--r-full);white-space:nowrap;padding:2px 8px;font-weight:600}.kp-practice-btn{border-radius:var(--r-full);border:1px solid var(--ai-200,#bfdbfe);background:var(--ai-50,#eff6ff);color:var(--ai-600,#2563eb);font-size:var(--text-xs);cursor:pointer;white-space:nowrap;padding:4px 12px;font-weight:600;transition:all .15s}.kp-practice-btn:hover{background:var(--ai-100,#dbeafe);border-color:var(--ai-300,#93c5fd)}.kp-tree{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--gray-200);padding:var(--s2)}.kp-tree-row{align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);border-radius:var(--r-md);cursor:pointer;transition:background .15s;display:flex}.kp-tree-row:hover{background:var(--gray-50)}.kp-tree-arrow{color:var(--gray-400);text-align:center;flex-shrink:0;width:16px;font-size:10px;transition:transform .2s}.kp-tree-arrow.expanded{transform:rotate(90deg)}.kp-tree-arrow-placeholder{flex-shrink:0;width:16px}.kp-tree-chapter-header{font-size:var(--text-xs,12px);color:var(--gray-700,#374151);background:var(--gray-50,#f9fafb);border-radius:var(--r-sm,4px);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:3px 10px;font-weight:600;display:flex}.kp-tree-chapter-header:hover{background:var(--gray-100,#f3f4f6)}.kp-tree-child-count{font-size:var(--text-xs,12px);color:var(--gray-400,#9ca3af);white-space:nowrap;font-weight:400}.kp-tree-name{font-size:var(--text-sm);color:var(--gray-800);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.kp-tree-mastery{align-items:center;gap:var(--s2);flex-shrink:0;display:flex}.kp-tree-children{border-left:1px solid var(--gray-200);margin-left:12px}.kp-pagination{margin-top:var(--s4);padding:var(--s3) 0;justify-content:space-between;align-items:center;display:flex}.kp-pagination-info{font-size:var(--text-xs);color:var(--gray-500)}.kp-pagination-btns{align-items:center;gap:4px;display:flex}.kp-page-btn{border-radius:var(--r-md);border:1px solid var(--gray-200);background:var(--white);min-width:32px;height:32px;font-size:var(--text-sm);color:var(--gray-600);cursor:pointer;justify-content:center;align-items:center;padding:0 8px;transition:all .15s;display:inline-flex}.kp-page-btn:hover:not(:disabled){border-color:var(--gray-300);background:var(--gray-50)}.kp-page-btn.active{background:var(--gray-900);color:var(--white);border-color:var(--gray-900)}.kp-page-btn:disabled{opacity:.35;cursor:not-allowed}.kp-page-ellipsis{text-align:center;min-width:32px;font-size:var(--text-sm);color:var(--gray-400)}@media (width<=768px){.kp-toolbar{flex-direction:column;align-items:stretch}.kp-toolbar-right{justify-content:space-between;margin-left:0}.kp-list-item{align-items:flex-start;gap:var(--s2);flex-direction:column}.kp-list-right{justify-content:space-between;width:100%}.kp-overview-segments{flex-wrap:wrap;gap:4px}}.leaderboard-period-bar{margin-bottom:var(--s4);background:var(--gray-100,#f3f4f6);border-radius:10px;justify-content:center;gap:0;width:fit-content;margin-left:auto;margin-right:auto;padding:3px;display:flex}.leaderboard-period-tab{color:var(--gray-500,#6b7280);cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;background:0 0;border:none;border-radius:8px;padding:6px 18px;font-size:13px;font-weight:500;transition:all .2s}.leaderboard-period-tab:active{opacity:.8}.leaderboard-period-tab--active{color:var(--ai-700,#1d4ed8);background:#fff;font-weight:600;box-shadow:0 1px 3px #00000014}.leaderboard-list{background:var(--card-bg,#fff);border:1px solid var(--border-color,#e5e7eb);border-radius:12px;overflow:hidden}.leaderboard-header{padding:var(--s2) var(--s3);background:var(--gray-50,#f9fafb);border-bottom:1px solid var(--border-color,#e5e7eb);color:var(--gray-500,#6b7280);align-items:center;font-size:12px;font-weight:600;display:flex}.leaderboard-row{padding:var(--s2) var(--s3);border-bottom:1px solid var(--border-color,#f3f4f6);align-items:center;transition:background .15s;display:flex}.leaderboard-row:last-child{border-bottom:none}.leaderboard-row--top3{background:var(--gold-50,#fffdf5)}.leaderboard-row--current{background:var(--ai-50,#eff6ff)!important;border-bottom-color:var(--ai-100,#dbeafe)!important}.leaderboard-cell-rank{text-align:center;flex-shrink:0;width:48px}.leaderboard-cell-user{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.leaderboard-cell-user .avatar{object-fit:cover;background:var(--gray-200,#e5e7eb);border-radius:50%;flex-shrink:0;width:28px;height:28px}.leaderboard-cell-user .nickname{color:var(--gray-800,#1f2937);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.leaderboard-cell-user .current-tag{background:var(--ai-200,#bfdbfe);color:var(--ai-700,#1d4ed8);white-space:nowrap;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:500}.leaderboard-cell-stat{text-align:center;flex-shrink:0;width:64px}.leaderboard-divider{padding:10px var(--s3);background:var(--gray-50,#f9fafb);align-items:center;display:flex}.leaderboard-divider:before,.leaderboard-divider:after{content:"";background:var(--border-color,#e5e7eb);flex:1;height:1px}.leaderboard-divider span{color:var(--gray-400,#9ca3af);white-space:nowrap;padding:0 12px;font-size:11px;font-weight:500}.leaderboard-rule{margin-top:var(--s4);padding:var(--s3);background:var(--ai-50,#f0f7ff);color:var(--gray-600,#4b5563);border-radius:8px;font-size:13px;line-height:1.6}.leaderboard-rule strong{color:var(--gray-700,#374151)}.leaderboard-empty{text-align:center;padding:var(--s6);color:var(--gray-400,#9ca3af)}.leaderboard-empty-emoji{margin-bottom:12px;font-size:48px}.leaderboard-empty-text{margin-bottom:4px;font-size:15px}.leaderboard-empty-sub{font-size:13px}.quota-indicator{font-size:var(--text-sm,.8125rem)}.quota-indicator--brief{align-items:center;gap:var(--s2,8px);padding:var(--s1,4px) var(--s3,12px);background:var(--gray-50,#f9fafb);border-radius:var(--r-full,9999px);border:1px solid var(--gray-200,#e5e7eb);display:inline-flex}.quota-indicator__dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.quota-indicator__text{color:var(--gray-700,#374151)}.quota-indicator__text strong{color:var(--ink-700,#0f3460);font-weight:700}.quota-indicator__label{font-weight:700;font-size:var(--text-xs,.6875rem)}.quota-indicator--action{align-items:center;gap:var(--s3,12px);padding:var(--s3,12px);background:var(--gray-50,#f9fafb);border-radius:var(--r-md,8px);border:1px solid var(--gray-200,#e5e7eb);display:flex}.quota-indicator__bar-wrap{align-items:center;gap:var(--s3,12px);flex:1;display:flex}.quota-indicator__bar{background:var(--gray-200,#e5e7eb);border-radius:4px;flex:1;height:8px;overflow:hidden}.quota-indicator__bar--full{height:10px}.quota-indicator__bar-fill{border-radius:4px;height:100%;transition:width .4s,background .3s}.quota-indicator__bar-text{font-size:var(--text-xs,.6875rem);white-space:nowrap;min-width:100px;font-weight:600}.quota-indicator__upgrade-link{padding:var(--s1,4px) var(--s2,8px);font-size:var(--text-xs,.6875rem);color:var(--ai-500,#3b82f6);cursor:pointer;white-space:nowrap;border-radius:var(--r-xs,4px);background:0 0;border:none;font-weight:600;text-decoration:underline;transition:background .15s}.quota-indicator__upgrade-link:hover{background:var(--ai-50,#eff6ff)}.quota-indicator__upgrade-link--urgent{color:var(--red-500,#ef4444);font-weight:700}.quota-indicator--full{padding:var(--s4,16px);background:var(--white,#fff);border:1px solid var(--gray-200,#e5e7eb);border-radius:var(--r-lg,12px)}.quota-indicator__full-header{margin-bottom:var(--s3,12px);justify-content:space-between;align-items:center;display:flex}.quota-indicator__full-title{font-size:var(--text-base,1rem);color:var(--gray-800,#1f2937);font-weight:700}.quota-indicator__full-status{font-weight:700;font-size:var(--text-sm,.8125rem)}.quota-indicator__full-bar-wrap{margin-bottom:var(--s4,16px)}.quota-indicator__full-bar-label{font-size:var(--text-xs,.6875rem);color:var(--gray-500,#6b7280);margin-top:var(--s1,4px);display:block}.quota-indicator__full-details{gap:var(--s2,8px);margin-bottom:var(--s4,16px);flex-direction:column;display:flex}.quota-indicator__full-row{padding:var(--s2,8px) 0;border-bottom:1px solid var(--gray-100,#f3f4f6);justify-content:space-between;align-items:center;display:flex}.quota-indicator__full-row:last-child{border-bottom:none}.quota-indicator__full-label{font-size:var(--text-sm,.8125rem);color:var(--gray-600,#4b5563)}.quota-indicator__full-value{font-size:var(--text-sm,.8125rem);color:var(--gray-500,#6b7280);font-weight:600}.quota-indicator__full-value--bound{color:var(--green-500,#10b981)}.quota-indicator__active-progress{margin-top:var(--s2,8px)}.quota-indicator__active-bar{background:var(--gray-200,#e5e7eb);height:6px;margin-bottom:var(--s1,4px);border-radius:3px;overflow:hidden}.quota-indicator__active-fill{background:var(--ai-500,#3b82f6);border-radius:3px;height:100%;transition:width .5s}.quota-indicator__active-text{font-size:var(--text-xs,.6875rem);color:var(--gray-500,#6b7280)}@media (width<=480px){.quota-indicator--action{flex-direction:column;align-items:stretch}.quota-indicator__bar-wrap{align-items:stretch;gap:var(--s1,4px);flex-direction:column}.quota-indicator__bar-text{text-align:center}}.security-page{gap:var(--s6,24px);padding-bottom:var(--s8,32px);flex-direction:column;max-width:640px;display:flex}.security-page__header{gap:var(--s2,8px);flex-direction:column;display:flex}.security-page__back{font-size:var(--text-sm,.8125rem);color:var(--ai-500,#3b82f6);cursor:pointer;text-align:left;background:0 0;border:none;width:fit-content;padding:0}.security-page__back:hover{text-decoration:underline}.security-page__title{font-size:var(--text-2xl,1.5rem);color:var(--gray-900,#111827);margin:0;font-weight:800}.security-section{gap:var(--s3,12px);flex-direction:column;display:flex}.security-section__title{font-size:var(--text-base,1rem);color:var(--gray-800,#1f2937);margin:0;font-weight:700}.security-card{background:var(--white,#fff);border:1px solid var(--gray-200,#e5e7eb);border-radius:var(--r-lg,12px);padding:var(--s4,16px)}.security-card__row{justify-content:space-between;align-items:center;gap:var(--s3,12px);display:flex}.security-card__label{font-size:var(--text-sm,.8125rem);color:var(--gray-600,#4b5563)}.security-card__value{font-size:var(--text-sm,.8125rem);color:var(--gray-700,#374151);font-weight:600}.security-card__value--bound{color:var(--green-500,#10b981)}.security-badge{font-size:var(--text-xs,.6875rem);color:var(--green-500,#10b981);background:var(--green-50,#ecfdf5);border-radius:var(--r-full,9999px);padding:2px 8px;font-weight:700}.security-card__actions{gap:var(--s2,8px);margin-top:var(--s3,12px);flex-wrap:wrap;align-items:center;display:flex}.security-card__bind-form{gap:var(--s3,12px);flex-direction:column;display:flex}.security-card__hint{font-size:var(--text-xs,.6875rem);color:var(--gray-500,#6b7280);margin:0}.security-card__input-row{width:100%}.security-card__input-row .form-input{width:100%;padding:var(--s3,12px) var(--s4,16px);border:2px solid var(--gray-200,#e5e7eb);border-radius:var(--r-xl,12px);font-size:var(--text-base,1rem);color:var(--gray-800,#1f2937);outline:none;transition:border-color .15s,box-shadow .15s}.security-card__input-row .form-input:focus{border-color:var(--ai-500,#3b82f6);box-shadow:0 0 0 3px #3b82f61f}.security-card__code-row{justify-content:center;display:flex}.security-empty,.security-skeleton{padding:var(--s6,24px);text-align:center;color:var(--gray-400,#9ca3af);font-size:var(--text-sm,.8125rem)}@media (width<=480px){.security-page{max-width:100%}.security-card__row{flex-direction:column;align-items:flex-start}.security-card__actions{flex-direction:column;align-items:stretch}.security-card__actions .btn{justify-content:center;width:100%}}.tier-compare-page{max-width:960px;padding:var(--s6) var(--s5) var(--s10);margin:0 auto}.tier-compare-header{text-align:center;margin-bottom:var(--s6)}.tier-compare-back{color:var(--ai-600);font-size:var(--text-sm);cursor:pointer;margin-bottom:var(--s3);background:0 0;border:none;display:inline-block}.tier-compare-back:hover{opacity:.7}.tier-compare-header h1{font-size:var(--text-2xl);color:var(--gray-900);margin:0 0 var(--s1);font-weight:800}.tier-compare-sub{font-size:var(--text-sm);color:var(--gray-500);margin:0}.tier-compare-table{border:1px solid var(--gray-200);border-radius:var(--r-lg);background:var(--white);overflow:hidden}.tcr-sticky-header{z-index:10;background:var(--white);border-bottom:2px solid var(--gray-200);position:sticky;top:0}.tcr-row{border-bottom:1px solid var(--gray-100);grid-template-columns:1.8fr 1fr 1fr 1fr 1fr;min-height:44px;display:grid}.tcr-row:last-child{border-bottom:none}.tcr-cell{padding:var(--s2) var(--s2);font-size:var(--text-sm);text-align:center;justify-content:center;align-items:center;display:flex}.tcr-header-row .tcr-tier-col{padding:var(--s3) var(--s2);background:var(--tier-bg,#f9fafb);flex-direction:column;gap:2px;position:relative}.tcr-tier-icon{font-size:20px;line-height:1}.tcr-tier-name{color:var(--tier-color);font-weight:700;font-size:var(--text-sm)}.tcr-tier-badge{color:var(--tier-color);background:color-mix(in srgb, var(--tier-color) 15%, transparent);border-radius:10px;margin-top:2px;padding:1px 6px;font-size:10px;font-weight:600}.tcr-current{position:relative}.tcr-current:after{content:"";background:var(--tier-color);height:3px;position:absolute;top:0;left:0;right:0}.tcr-section-row{background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.tcr-section-label{font-weight:700;font-size:var(--text-sm);color:var(--gray-700);padding-left:var(--s4);grid-column:1;justify-content:flex-start}.tcr-section-cell{background:var(--gray-50)}.tcr-feature-label{text-align:left;padding:var(--s3) var(--s4);flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:2px}.tcr-feature-name{font-weight:600;font-size:var(--text-sm);color:var(--gray-800)}.tcr-feature-desc{font-size:var(--text-xs);color:var(--gray-400);line-height:1.4}.tcr-value-cell{font-weight:600;font-size:var(--text-sm)}.tcr-val{color:var(--gray-600)}.tcr-check{color:#10b981;font-size:16px}.tcr-cross{color:var(--gray-300);font-weight:400}.tcr-good .tcr-val{color:var(--ai-600)}.tier-compare-cta{text-align:center;margin-top:var(--s6);padding:var(--s5);border-radius:var(--r-lg);border:1px solid var(--gray-200);background:linear-gradient(135deg,#eff6ff,#f5f3ff)}.tier-compare-cta p{font-size:var(--text-sm);color:var(--gray-600);margin:0 0 var(--s3)}.tier-compare-cta .btn-gold{font-size:var(--text-base);padding:10px 32px}@media (width<=768px){.tcr-row{grid-template-columns:1.5fr 1fr 1fr 1fr 1fr}.tcr-feature-desc{display:none}.tcr-cell{font-size:var(--text-xs);padding:var(--s2) var(--s1)}}@media (width<=480px){.tier-compare-table{-webkit-overflow-scrolling:touch;overflow-x:auto}.tcr-row{min-width:560px}}.highlight-answer{width:100%}.highlight-toolbar{padding:var(--s2) 0;margin-bottom:var(--s2);justify-content:flex-end;align-items:center;display:flex}.highlight-body{color:var(--gray-800);white-space:pre-wrap;word-break:break-word;line-height:1.8}.highlight-legend{align-items:center;gap:var(--s3);padding:var(--s3) var(--s6);background:var(--gray-50);border-top:1px solid var(--gray-100);margin-top:var(--s4);font-size:var(--text-xs);color:var(--gray-500);display:flex}.legend-item{border-radius:2px;padding:1px 4px;font-size:10px}.legend-good{color:var(--green-700);background:#10b98126;border-bottom:2px solid #10b981}.legend-warn{color:var(--yellow-700);background:#f59e0b1f;border-bottom:2px solid #f59e0b}.legend-bad{color:var(--red-700);background:#ef44441f;border-bottom:2px solid #ef4444}.highlight-body .hl-good{cursor:pointer;background:#10b98126;border-bottom:2px solid #10b981;border-radius:2px;padding:0 2px;position:relative}.highlight-body .hl-warn,.highlight-body .hl-partial{cursor:pointer;background:#f59e0b1f;border-bottom:2px solid #f59e0b;border-radius:2px;padding:0 2px;position:relative}.highlight-body .hl-bad,.highlight-body .hl-miss{cursor:pointer;background:#ef44441f;border-bottom:2px solid #ef4444;border-radius:2px;padding:0 2px;position:relative}.highlight-body .hl-good:hover:after{content:attr(data-tip, "✅ 踩中知识点，用语规范")}.highlight-body .hl-warn:hover:after,.highlight-body .hl-partial:hover:after{content:attr(data-tip, "⚠️ 方向正确，但待完善")}.highlight-body .hl-bad:hover:after,.highlight-body .hl-miss:hover:after{content:attr(data-tip, "❌ 需修正，概念偏差或缺失")}.highlight-body .hl-good:hover:after,.highlight-body .hl-warn:hover:after,.highlight-body .hl-bad:hover:after,.highlight-body .hl-miss:hover:after,.highlight-body .hl-partial:hover:after{background:var(--gray-800,#1f2937);color:#fff;white-space:nowrap;text-overflow:ellipsis;z-index:100;pointer-events:none;border-radius:6px;max-width:320px;padding:6px 10px;font-size:12px;line-height:1.4;position:absolute;bottom:calc(100% + 6px);left:50%;overflow:hidden;transform:translate(-50%)}.quota-overview-bar{background:var(--ai-surface,#fff);border-bottom:1px solid var(--ai-border,#e5e7eb);z-index:10;flex-wrap:wrap;gap:16px;padding:10px 20px;display:flex;position:sticky;top:0}.quota-slot{white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:flex}.quota-slot-icon{font-size:16px}.quota-slot-label{color:var(--ai-text-secondary,#6b7280)}.quota-slot-value{font-variant-numeric:tabular-nums;font-weight:600}.ai-generated-badge{color:#7c3aed;white-space:nowrap;background:linear-gradient(135deg,#ede9fe,#fae8ff);border-radius:12px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.ai-generated-badge--compact{gap:0;padding:2px 6px}.ai-generated-badge-icon{font-size:13px;line-height:1}.ai-generated-badge-text{line-height:1}.kp-link-status{border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.kp-status--linking{color:#9ca3af;background:#f9fafb}.kp-status--linked{color:#16a34a;background:#f0fdf4}.kp-status--unlinked{color:#3b82f6;background:#eff6ff}.kp-status-icon{font-size:13px;line-height:1}.kp-status-icon--spin{animation:1.5s linear infinite kp-spin}@keyframes kp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.kp-status-label{font-weight:500}.kp-status-names{color:inherit;opacity:.8;text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.kp-status-link-btn{color:#3b82f6;cursor:pointer;background:0 0;border:none;margin-left:4px;padding:0 4px;font-size:11px;text-decoration:underline}.kp-status-link-btn:hover{color:#2563eb}.llm-indicator{border-radius:8px;padding:12px 16px;font-size:13px}.llm-indicator--loading{background:#f9fafb;border:1px dashed #d1d5db}.llm-indicator--success{background:#f0fdf4;border:1px solid #bbf7d0}.llm-indicator--warning{background:#fffbeb;border:1px solid #fde68a}.llm-spinner{vertical-align:middle;border:2px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;width:14px;height:14px;margin-right:8px;animation:.8s linear infinite llm-spin;display:inline-block}@keyframes llm-spin{to{transform:rotate(360deg)}}.llm-icon{margin-right:6px}.llm-label{color:var(--ai-text-primary,#111827)}.llm-skeleton{flex-direction:column;gap:6px;margin-top:10px;display:flex}.llm-skeleton-line{background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6 50%,#e5e7eb 75%) 0 0/200% 100%;border-radius:4px;height:12px;animation:1.5s ease-in-out infinite skeleton-pulse}.llm-skeleton-line--long{width:90%}.llm-skeleton-line--medium{width:65%}.llm-skeleton-line--short{width:40%}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.llm-actions{gap:8px;margin-top:8px;display:flex}.llm-retry-btn{color:#3b82f6;cursor:pointer;background:#eff6ff;border:1px solid #3b82f6;border-radius:6px;padding:4px 12px;font-size:12px}.llm-retry-btn:hover{background:#dbeafe}.llm-manual-btn{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:4px 12px;font-size:12px}.llm-manual-btn:hover{background:#f9fafb}.question-form{flex-direction:column;gap:16px;display:flex}.question-form__field{flex-direction:column;gap:6px;display:flex}.question-form__label{color:var(--text-primary,#334155);font-size:13px;font-weight:600}.question-form__required{color:#ef4444;margin-left:2px}.question-form__input--error{border-color:#ef4444!important}.question-form__error{color:#ef4444;margin-top:2px;font-size:11px;display:block}.question-form__hint{color:#94a3b8;margin-top:2px;font-size:11px;display:block}.question-form__type-group{flex-wrap:wrap;gap:8px;display:flex}.question-form__type-btn{border:1px solid var(--border-light,#e2e8f0);background:var(--bg-primary,#fff);color:var(--text-secondary,#64748b);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:13px;transition:all .15s}.question-form__type-btn:hover{border-color:var(--ai-primary,#6366f1);color:var(--ai-primary,#6366f1)}.question-form__type-btn--active{background:var(--ai-primary,#6366f1);color:#fff;border-color:var(--ai-primary,#6366f1)}.question-form__type-icon{margin-right:4px;font-size:12px}.question-form__type-label{font-size:12px}.question-form__hint{color:var(--text-tertiary,#94a3b8);margin-left:4px;font-size:11px;font-weight:400}.question-form__row{gap:12px;display:flex}.question-form__field--half{flex:1;min-width:0}.question-form__textarea--small{min-height:48px}.question-form__source-toggle{border:1px solid var(--border-light,#e2e8f0);border-radius:8px;gap:0;width:fit-content;display:flex;overflow:hidden}.question-form__source-btn{background:var(--bg-primary,#fff);color:var(--text-secondary,#64748b);cursor:pointer;border:none;padding:8px 18px;font-size:13px;font-weight:500;transition:all .2s}.question-form__source-btn:first-child{border-right:1px solid var(--border-light,#e2e8f0)}.question-form__source-btn:hover{background:var(--bg-secondary,#f1f5f9);color:var(--text-primary,#334155)}.question-form__source-btn--active{background:var(--ai-primary,#6366f1);color:#fff}.question-form__source-btn--active:hover{background:var(--ai-primary-dark,#4f46e5);color:#fff}.question-form__select,.question-form__input{border:1px solid var(--border-light,#e2e8f0);color:var(--text-primary,#334155);background:var(--bg-primary,#fff);border-radius:6px;outline:none;padding:8px 12px;font-size:13px;transition:border-color .15s}.question-form__select:focus,.question-form__input:focus{border-color:var(--ai-primary,#6366f1)}.question-form__textarea{border:1px solid var(--border-light,#e2e8f0);color:var(--text-primary,#334155);background:var(--bg-primary,#fff);resize:vertical;border-radius:6px;outline:none;padding:10px 12px;font-family:inherit;font-size:13px;line-height:1.6;transition:border-color .15s}.question-form__textarea:focus{border-color:var(--ai-primary,#6366f1)}.question-form__llm-status{margin-top:4px}.question-form__actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.question-form__btn{cursor:pointer;border:none;border-radius:20px;padding:8px 20px;font-size:14px;font-weight:500;transition:all .2s}.question-form__btn--submit{background:linear-gradient(135deg, var(--ai-primary,#6366f1), var(--ai-secondary,#8b5cf6));color:#fff}.question-form__btn--submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.question-form__btn--submit:disabled{opacity:.5;cursor:not-allowed}.question-form__btn--cancel{background:var(--bg-secondary,#f1f5f9);color:var(--text-secondary,#64748b)}.question-form__btn--cancel:hover{background:var(--border-light,#e2e8f0)}.excel-import-title{color:#1e293b;margin:0 0 12px;font-size:18px;font-weight:700}.excel-columns-section{margin-bottom:12px}.excel-columns-toggle{color:#475569;cursor:pointer;text-align:left;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;width:100%;padding:8px 12px;font-size:12px}.excel-columns-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:11px}.excel-columns-table th,.excel-columns-table td{text-align:left;border:1px solid #e2e8f0;padding:4px 8px}.excel-columns-table th{background:#f1f5f9;font-weight:600}.excel-required{color:#ef4444;font-weight:700}.excel-example{color:#94a3b8;font-style:italic}.excel-col-name{font-weight:500}.excel-col-required{color:#1e293b}.excel-col-conditional{color:#d97706}.excel-badge{white-space:nowrap;border-radius:10px;padding:1px 6px;font-size:10px;font-weight:500}.excel-badge-required{color:#dc2626;background:#ef44441a}.excel-badge-conditional{color:#d97706;background:#f59e0b1a}.excel-badge-ai{color:#7c3aed;background:#8b5cf614}.excel-template-download{align-items:center;gap:10px;margin-bottom:12px;display:flex}.excel-template-btn{color:#6366f1;cursor:pointer;background:#eff6ff;border:1px dashed #6366f1;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:500}.excel-template-hint{color:#94a3b8;font-size:11px}.excel-dropzone{text-align:center;cursor:pointer;border:2px dashed #e2e8f0;border-radius:10px;margin-bottom:12px;padding:28px 16px;transition:all .2s}.excel-dropzone--drag{background:#6366f10a;border-color:#6366f1}.excel-dropzone-icon{margin-bottom:6px;font-size:28px;display:block}.excel-dropzone-text{color:#94a3b8;font-size:13px}.excel-dropzone-hint{color:#cbd5e1;margin-top:4px;font-size:11px;display:block}.excel-file-selected{color:#16a34a;justify-content:center;align-items:center;gap:10px;font-size:14px;font-weight:500;display:flex}.excel-file-selected button{color:#94a3b8;cursor:pointer;background:0 0;border:none;font-size:16px}.excel-result{border-radius:8px;margin-top:10px;padding:8px 12px;font-size:12px}.excel-result--success{color:#15803d;background:#22c55e14}.excel-result--partial{color:#c2410c;background:#f59e0b14}.excel-errors{color:#dc2626;margin:4px 0 0;padding-left:18px;font-size:11px}.excel-actions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.excel-btn-cancel{cursor:pointer;color:#64748b;background:#f1f5f9;border:none;border-radius:20px;padding:7px 18px;font-size:13px}.excel-btn-import{cursor:pointer;color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:20px;padding:7px 18px;font-size:13px;font-weight:500}.excel-btn-import:disabled{opacity:.5;cursor:not-allowed}.ocr-upload-dialog-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ocr-upload-dialog{background:#fff;border-radius:16px;width:90%;max-width:480px;padding:28px 24px 20px;position:relative;box-shadow:0 20px 60px #00000026}.ocr-upload-dialog__close{color:var(--text-secondary,#64748b);cursor:pointer;background:0 0;border:none;font-size:18px;position:absolute;top:12px;right:12px}.ocr-upload-dialog__title{color:var(--text-primary,#1e293b);margin:0 0 16px;font-size:18px;font-weight:700}.ocr-upload-dialog__field{margin-bottom:12px}.ocr-upload-dialog__label{color:var(--text-primary,#334155);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.ocr-upload-dialog__input{border:1px solid var(--border-light,#e2e8f0);box-sizing:border-box;border-radius:6px;outline:none;width:100%;padding:8px 12px;font-size:13px}.ocr-upload-dialog__input:focus{border-color:var(--ai-primary,#6366f1)}.ocr-upload-dialog__dropzone{border:2px dashed var(--border-light,#e2e8f0);text-align:center;cursor:pointer;border-radius:10px;padding:32px 16px;transition:all .2s}.ocr-upload-dialog__dropzone--active{border-color:var(--ai-primary,#6366f1);background:#6366f10a}.ocr-upload-dialog__dropzone--has-file{border-color:var(--green-400,#4ade80);background:#22c55e0a;border-style:solid}.ocr-upload-dialog__dropzone-icon{margin-bottom:8px;font-size:32px;display:block}.ocr-upload-dialog__dropzone-hint p{color:var(--text-secondary,#94a3b8);margin:0 0 4px;font-size:13px}.ocr-upload-dialog__dropzone-format{color:var(--text-tertiary,#cbd5e1);font-size:11px}.ocr-upload-dialog__file-info{align-items:center;gap:8px;font-size:14px;display:flex}.ocr-upload-dialog__file-icon{font-size:20px}.ocr-upload-dialog__file-name{color:var(--text-primary,#334155);font-weight:500}.ocr-upload-dialog__progress{margin-top:16px}.ocr-upload-dialog__progress-bar{background:var(--bg-secondary,#f1f5f9);border-radius:2px;height:4px;overflow:hidden}.ocr-upload-dialog__progress-fill{background:linear-gradient(90deg, var(--ai-primary,#6366f1), var(--ai-secondary,#8b5cf6));border-radius:2px;width:60%;height:100%;animation:2s ease-in-out infinite ocr-progress}.ocr-upload-dialog__progress-fill--indeterminate{animation:1.5s ease-in-out infinite ocr-progress;width:40%!important}@keyframes ocr-progress{0%,to{width:20%}50%{width:80%}}.ocr-upload-dialog__progress-text{color:var(--text-secondary,#64748b);margin:6px 0 0;font-size:12px}.ocr-upload-dialog__success{color:var(--green-700,#15803d);background:#22c55e14;border-radius:8px;margin-top:14px;padding:10px 12px;font-size:13px}.ocr-upload-dialog__error{color:var(--red-700,#b91c1c);background:#ef444414;border-radius:8px;margin-top:14px;padding:10px 12px;font-size:13px}.ocr-upload-dialog__retry-btn{background:var(--red-100,#fee2e2);color:var(--red-600,#dc2626);cursor:pointer;border:none;border-radius:10px;margin-left:8px;padding:2px 10px;font-size:12px}.ocr-upload-dialog__actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.ocr-upload-dialog__btn{cursor:pointer;border:none;border-radius:20px;padding:8px 20px;font-size:14px;font-weight:500;transition:all .2s}.ocr-upload-dialog__btn--cancel{background:var(--bg-secondary,#f1f5f9);color:var(--text-secondary,#64748b)}.ocr-upload-dialog__btn--upload{background:linear-gradient(135deg, var(--ai-primary,#6366f1), var(--ai-secondary,#8b5cf6));color:#fff}.ocr-upload-dialog__btn--upload:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.ocr-upload-dialog__btn--upload:disabled{opacity:.5;cursor:not-allowed}.my-questions-page{max-width:1024px;margin:0 auto;padding:16px 20px}.mq-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.mq-toolbar-left{gap:6px;display:flex}.mq-toolbar-right{gap:0;display:flex}.mq-btn{cursor:pointer;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:6px 14px;font-size:13px;transition:all .15s}.mq-btn:hover:not(:disabled){color:#6366f1;border-color:#6366f1}.mq-btn:disabled{opacity:.5;cursor:not-allowed}.mq-btn-primary{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;font-weight:500}.mq-btn-primary:hover:not(:disabled){color:#fff;box-shadow:0 2px 8px #6366f14d}.mq-btn-ai{color:#fff;background:linear-gradient(135deg,#f59e0b,#f97316);border:none;font-weight:500}.mq-btn-ai:hover:not(:disabled){color:#fff;box-shadow:0 2px 8px #f59e0b59}.mq-tab{cursor:pointer;color:#64748b;background:#fff;border:1px solid #e2e8f0;padding:6px 14px;font-size:13px}.mq-tab:first-child{border-radius:8px 0 0 8px}.mq-tab:last-child{border-radius:0 8px 8px 0}.mq-tab-active{color:#fff;background:#6366f1;border-color:#6366f1}.mq-filters{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.mq-filter-select{background:#fff;border:1px solid #e2e8f0;border-radius:6px;outline:none;padding:5px 10px;font-size:12px}.mq-filter-select:focus{border-color:#6366f1}.mq-search{border:1px solid #e2e8f0;border-radius:6px;outline:none;width:160px;padding:5px 10px;font-size:12px}.mq-search:focus{border-color:#6366f1}.mq-loading{text-align:center;color:#94a3b8;padding:40px}.mq-list{flex-direction:column;gap:10px;display:flex}.mq-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px;transition:box-shadow .2s}.mq-card:hover{box-shadow:0 2px 8px #0000000f}.mq-card-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.mq-card-source{color:#6366f1;font-size:12px;font-weight:500}.mq-card-exam-type{color:#f59e0b;background:#fffbeb;border-radius:4px;padding:1px 6px;font-size:11px}.mq-card-personal{color:#6366f1;background:#eef2ff;border-radius:4px;padding:1px 6px;font-size:11px}.mq-card-incomplete{color:#f97316;background:#f59e0b1a;border-radius:4px;padding:1px 6px;font-size:11px}.mq-card-content{color:#334155;-webkit-line-clamp:4;-webkit-box-orient:vertical;margin-bottom:8px;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.mq-card-meta{flex-wrap:wrap;gap:6px;display:flex}.mq-tag{color:#94a3b8;background:#f8fafc;border-radius:4px;padding:1px 6px;font-size:11px}.mq-tag-time{color:#a8a29e;background:0 0;padding-left:0}.mq-card-actions{gap:6px;margin-top:8px;display:flex}.mq-action-btn{cursor:pointer;color:#64748b;background:#f1f5f9;border:none;border-radius:12px;padding:2px 10px;font-size:11px}.mq-action-btn:hover{color:#fff;background:#6366f1}.mq-action-danger:hover{background:#ef4444}.mq-action-btn:disabled{opacity:.5;cursor:not-allowed}.mq-load-more{justify-content:center;padding:16px 0 8px;display:flex}.mq-btn-load-more{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:8px 32px;font-size:13px;transition:all .2s}.mq-btn-load-more:hover{color:#6366f1;border-color:#6366f1}.mq-btn-load-more:disabled{opacity:.5;cursor:wait}.mq-modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.mq-modal{background:#fff;border-radius:16px;width:90%;max-width:560px;max-height:85vh;padding:28px 24px 20px;overflow-y:auto;box-shadow:0 20px 60px #00000026}.mq-modal h3{color:#1e293b;margin:0 0 16px;font-size:18px;font-weight:700}.mq-kp-group{margin-bottom:20px}.mq-kp-group-header{background:linear-gradient(135deg,#eef2ff,#e0e7ff);border:1px solid #c7d2fe;border-bottom:none;border-radius:10px 10px 0 0;align-items:center;gap:8px;padding:10px 14px;display:flex}.mq-kp-group-icon{font-size:16px}.mq-kp-group-name{color:#4338ca;font-size:14px;font-weight:700}.mq-kp-group-count{color:#6366f1;background:#6366f11a;border-radius:10px;margin-left:auto;padding:2px 8px;font-size:12px}.mq-kp-group .mq-card{border-top:none;border-radius:0}.mq-kp-group .mq-card:last-child{border-radius:0 0 10px 10px}.viral-dashboard{padding:var(--s6);max-width:1400px;margin:0 auto}.viral-summary-row{gap:var(--s4);margin-bottom:var(--s6);grid-template-columns:repeat(4,1fr);display:grid}.viral-summary-card{background:var(--white);border-radius:var(--r-lg);border:1px solid var(--gray-200);padding:var(--s5)}.viral-summary-card .card-label{font-size:var(--text-xs);color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--s2)}.viral-summary-card .card-value{font-size:var(--text-3xl);color:var(--gray-900);font-weight:700}.viral-grid-2{gap:var(--s4);margin-bottom:var(--s6);grid-template-columns:1fr 1fr;display:grid}.viral-grid-3{gap:var(--s4);margin-bottom:var(--s6);grid-template-columns:1fr 1fr 1fr;display:grid}.viral-card{background:var(--white);border-radius:var(--r-lg);border:1px solid var(--gray-200);padding:var(--s5)}.viral-card-title{font-size:var(--text-sm);color:var(--gray-700);margin-bottom:var(--s4);align-items:center;gap:var(--s2);font-weight:700;display:flex}.viral-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.viral-table th{text-align:left;padding:var(--s2) var(--s3);border-bottom:2px solid var(--gray-200);color:var(--gray-500);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.viral-table th:hover{color:var(--gray-800)}.viral-table th .sort-arrow{margin-left:var(--s1);font-size:10px}.viral-table td{padding:var(--s3);border-bottom:1px solid var(--gray-100);color:var(--gray-800)}.viral-table tbody tr:hover{background:var(--gray-50)}.viral-badge{padding:2px var(--s2);border-radius:var(--r-full);font-size:var(--text-xs);font-weight:600;display:inline-block}.viral-badge-success{background:var(--green-100);color:var(--green-700)}.viral-badge-danger{background:var(--red-100);color:var(--red-700)}.viral-badge-warning{background:var(--yellow-100);color:var(--yellow-700)}.viral-badge-default{background:var(--gray-100);color:var(--gray-600)}.kfactor-card{background:var(--white);border-radius:var(--r-lg);border:1px solid var(--gray-200);padding:var(--s6);text-align:center}.kfactor-card .kfactor-label{font-size:var(--text-xs);color:var(--gray-500);text-transform:uppercase;letter-spacing:.1em}.kfactor-card .kfactor-value{font-size:var(--text-5xl);margin:var(--s2) 0;font-weight:800;transition:color .3s}.kfactor-card .kfactor-value.danger{color:var(--red-500)}.kfactor-card .kfactor-value.success{color:var(--green-500)}.kfactor-card .kfactor-value.neutral{color:var(--yellow-500)}.kfactor-card .kfactor-sub{font-size:var(--text-xs);color:var(--gray-400);margin-bottom:var(--s4)}.funnel-container{padding:var(--s2)}.viral-period-tabs{gap:var(--s1);margin-bottom:var(--s3);display:flex}.viral-period-tab{padding:var(--s1) var(--s3);font-size:var(--text-xs);border-radius:var(--r-full);cursor:pointer;border:1px solid var(--gray-200);background:var(--white);color:var(--gray-500);font-weight:600;transition:all .15s}.viral-period-tab:hover{border-color:var(--gray-400);color:var(--gray-700)}.viral-period-tab.active{background:var(--gold-500);color:var(--white);border-color:var(--gold-500)}.risk-summary-row{gap:var(--s4);margin-bottom:var(--s4);grid-template-columns:repeat(3,1fr);display:grid}.risk-type-dist{gap:var(--s3);margin-bottom:var(--s4);flex-wrap:wrap;display:flex}.risk-type-item{align-items:center;gap:var(--s2);font-size:var(--text-xs);padding:var(--s1) var(--s3);background:var(--gray-50);border-radius:var(--r-full);border:1px solid var(--gray-200);display:flex}.risk-type-item .dot{border-radius:50%;width:10px;height:10px}.experiment-grid{gap:var(--s4);margin-bottom:var(--s6);grid-template-columns:repeat(auto-fill,minmax(360px,1fr));display:grid}.experiment-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--r-lg);padding:var(--s4)}.experiment-card .exp-header{margin-bottom:var(--s3);justify-content:space-between;align-items:flex-start;display:flex}.experiment-card .exp-name{font-weight:700;font-size:var(--text-base);color:var(--gray-900)}.experiment-card .exp-meta{font-size:var(--text-xs);color:var(--gray-400);margin-top:var(--s1)}.experiment-card .variant-table{border-collapse:collapse;width:100%;font-size:var(--text-xs);margin-top:var(--s3)}.experiment-card .variant-table th,.experiment-card .variant-table td{padding:var(--s1) var(--s2);border-bottom:1px solid var(--gray-100);text-align:left}.experiment-card .variant-table th{color:var(--gray-500);font-weight:600}.significant-tag{padding:1px var(--s2);border-radius:var(--r-full);font-size:10px;font-weight:700;display:inline-block}.significant-yes{background:var(--green-100);color:var(--green-700)}.significant-no{background:var(--gray-100);color:var(--gray-500)}.reward-config-form{max-width:600px}.reward-config-row{align-items:flex-end;gap:var(--s3);padding:var(--s3) 0;border-bottom:1px solid var(--gray-100);display:flex}.reward-config-row .key-col{flex:0 0 180px}.reward-config-row .key-label{font-size:var(--text-xs);color:var(--gray-500);margin-bottom:var(--s1)}.reward-config-row .key-value{font-weight:700;font-size:var(--text-sm);color:var(--gray-800)}.reward-config-row .value-col{flex:1}.reward-config-row .value-input{width:100%;padding:var(--s2) var(--s3);border:1px solid var(--gray-300);border-radius:var(--r-md);font-size:var(--text-sm);font-family:inherit}.reward-config-row .value-input:focus{border-color:var(--gold-500);outline:none;box-shadow:0 0 0 3px #c9a84c26}.reward-config-row .action-col{flex:none}.reward-config-row .last-updated{color:var(--gray-400);margin-top:var(--s1);font-size:10px}.viral-actions{gap:var(--s2);display:flex}.viral-empty{padding:var(--s10);text-align:center;color:var(--gray-400);font-size:var(--text-sm)}.viral-loading{padding:var(--s10);color:var(--gray-400);justify-content:center;align-items:center;display:flex}.viral-form-group{margin-bottom:var(--s4)}.viral-form-group label{font-size:var(--text-sm);color:var(--gray-700);margin-bottom:var(--s2);font-weight:600;display:block}.viral-form-group input,.viral-form-group textarea,.viral-form-group select{width:100%;padding:var(--s2) var(--s3);border:1px solid var(--gray-300);border-radius:var(--r-md);font-size:var(--text-sm);font-family:inherit}.viral-form-group input:focus,.viral-form-group textarea:focus,.viral-form-group select:focus{border-color:var(--gold-500);outline:none;box-shadow:0 0 0 3px #c9a84c26}.viral-form-group textarea{resize:vertical;min-height:80px}.viral-pagination{justify-content:center;gap:var(--s2);margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--gray-100);display:flex}@media (width<=1024px){.viral-summary-row{grid-template-columns:repeat(2,1fr)}.viral-grid-2{grid-template-columns:1fr}.viral-grid-3{grid-template-columns:1fr 1fr}}@media (width<=640px){.viral-summary-row,.viral-grid-3,.risk-summary-row{grid-template-columns:1fr}}:root{--h5-max-width:480px;--h5-primary:#2563eb;--h5-primary-dark:#1d4ed8;--h5-bg:#f9fafb;--h5-card-bg:#fff;--h5-text:#374151;--h5-text-light:#6b7280;--h5-border:#e5e7eb;--h5-radius:12px;--h5-header-height:52px;--h5-footer-height:60px}.h5-layout{background:var(--h5-bg);flex-direction:column;align-items:center;min-height:100dvh;display:flex}.h5-header{z-index:100;background:var(--h5-card-bg);border-bottom:1px solid var(--h5-border);width:100%;position:sticky;top:0}.h5-header-inner{max-width:var(--h5-max-width);height:var(--h5-header-height);justify-content:space-between;align-items:center;margin:0 auto;padding:0 16px;display:flex}.h5-logo{cursor:pointer;-webkit-user-select:none;user-select:none;z-index:1;-webkit-tap-highlight-color:transparent;touch-action:manipulation;align-items:center;gap:6px;display:flex;position:relative}.h5-logo-icon{font-size:24px;line-height:1}.h5-logo-text{color:var(--h5-text);font-size:16px;font-weight:700}.h5-header-right{cursor:pointer;-webkit-user-select:none;user-select:none}.h5-user-avatar{background:#e8f0fe;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;display:flex}.h5-login-btn{color:var(--h5-primary);border:1px solid var(--h5-primary);border-radius:16px;padding:6px 14px;font-size:13px;font-weight:500}.h5-login-btn:active{background:var(--h5-primary);color:#fff}.h5-main{width:100%;max-width:var(--h5-max-width);flex:1;padding:16px}.h5-footer{background:var(--h5-card-bg);border-top:1px solid var(--h5-border);width:100%}.h5-footer-inner{max-width:var(--h5-max-width);height:var(--h5-footer-height);flex-direction:column;justify-content:center;align-items:center;gap:2px;margin:0 auto;padding:0 16px;display:flex}.h5-footer-text{color:var(--h5-text-light);margin:0;font-size:12px}.h5-footer-sub{color:#9ca3af;margin:0;font-size:10px}.h5-landing{padding:0}.h5-landing-loading{text-align:center;color:#6b7280;padding:60px 16px}.h5-landing-error{text-align:center;padding:60px 16px}.h5-landing-hero{text-align:center;padding:32px 16px 24px}.h5-landing-badge{color:#4f46e5;background:linear-gradient(135deg,#dbeafe,#ede9fe);border-radius:20px;margin-bottom:16px;padding:4px 14px;font-size:13px;font-weight:600;display:inline-block}.h5-landing-title{color:#1f2937;margin:0 0 8px;font-size:24px;font-weight:800;line-height:1.4}.h5-landing-inviter{color:#2563eb}.h5-landing-subtitle{color:#6b7280;letter-spacing:1px;margin:0;font-size:14px}.h5-landing-preview{text-align:center;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid #bbf7d0;border-radius:12px;margin:0 16px 20px;padding:16px}.h5-landing-preview-label{color:#16a34a;margin-bottom:4px;font-size:12px;font-weight:500}.h5-landing-score{justify-content:center;align-items:baseline;gap:4px;display:flex}.h5-landing-score-num{color:#16a34a;font-size:40px;font-weight:800;line-height:1}.h5-landing-score-div{color:#86efac;font-size:18px}.h5-landing-score-max{color:#6b7280;font-size:18px}.h5-landing-types{padding:0 16px 24px}.h5-landing-section-title{color:#374151;text-align:center;margin:0 0 12px;font-size:15px;font-weight:600}.h5-landing-type-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.h5-landing-type-item{text-align:center;background:#fff;border:1px solid #f3f4f6;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:16px 8px;display:flex}.h5-landing-type-icon{font-size:28px;line-height:1}.h5-landing-type-label{color:#374151;font-size:13px;font-weight:600}.h5-landing-type-desc{color:#9ca3af;font-size:11px}.h5-landing-testimonials{padding:0 16px 24px}.h5-landing-testimonial{text-align:center;background:#f9fafb;border:1px solid #f3f4f6;border-radius:12px;padding:20px 16px}.h5-landing-stars{letter-spacing:2px;margin-bottom:8px;font-size:18px}.h5-landing-quote{color:#374151;margin:0 0 6px;font-size:14px;font-style:italic}.h5-landing-author{color:#9ca3af;font-size:12px}.h5-landing-cta-section{text-align:center;padding:0 16px 24px}.h5-landing-cta-sub{color:#9ca3af;margin:10px 0 12px;font-size:12px}.h5-landing-login-link{color:#9ca3af;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;font-size:13px}.h5-landing-login-link span{color:#2563eb;font-weight:500}.h5-landing-trust{border-top:1px solid #f3f4f6;justify-content:center;gap:20px;padding:20px 16px 40px;display:flex}.h5-landing-trust-item{color:#9ca3af;flex-direction:column;align-items:center;gap:4px;font-size:11px;display:flex}.h5-landing-trust-icon{font-size:20px}.h5-drill{padding:0 0 24px}.h5-drill-loading,.h5-drill-error{text-align:center;padding:60px 16px}.h5-drill-loading p{color:#6b7280;margin-top:12px;font-size:14px}.h5-drill-progress{margin-bottom:12px}.h5-drill-progress-text{color:#6b7280;text-align:center;margin-bottom:6px;font-size:12px}.h5-drill-progress-bar{background:#e5e7eb;border-radius:2px;height:4px;overflow:hidden}.h5-drill-progress-fill{background:linear-gradient(90deg,#2563eb,#7c3aed);border-radius:2px;height:100%;transition:width .3s}.h5-drill-banner{text-align:center;color:#b45309;background:linear-gradient(135deg,#fef3c7,#fef9c3);border-radius:10px;margin-bottom:16px;padding:8px 12px;font-size:12px;font-weight:500}.h5-drill-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;margin-bottom:16px;padding:20px 16px}.h5-drill-card-header{align-items:center;gap:8px;margin-bottom:14px;display:flex}.h5-drill-card-num{color:#6b7280;font-size:12px;font-weight:600}.h5-drill-card-type{color:#1d4ed8;background:#dbeafe;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.h5-drill-card-diff{border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.h5-drill-diff--easy{color:#16a34a;background:#dcfce7}.h5-drill-diff--medium{color:#b45309;background:#fef3c7}.h5-drill-diff--hard{color:#dc2626;background:#fef2f2}.h5-drill-card-content{color:#1f2937;white-space:pre-wrap;margin-bottom:12px;font-size:15px;line-height:1.7}.h5-drill-word-hint{color:#9ca3af;background:#f9fafb;border-radius:6px;margin-bottom:12px;padding:6px 10px;font-size:11px}.h5-drill-textarea{color:#374151;resize:vertical;box-sizing:border-box;background:#fafafa;border:2px solid #e5e7eb;border-radius:10px;width:100%;min-height:140px;padding:14px;font-family:inherit;font-size:15px;line-height:1.6;transition:border-color .2s}.h5-drill-textarea:focus{background:#fff;border-color:#2563eb;outline:none}.h5-drill-answer-footer{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.h5-drill-word-count{color:#9ca3af;font-size:12px}.h5-drill-submit{padding:10px 24px!important}.h5-drill-submit:disabled{opacity:.5;cursor:not-allowed}.h5-drill-grading{text-align:center;padding:32px 16px}.h5-drill-grading p{color:#6b7280;margin-top:12px;font-size:14px}.h5-drill-result{padding-top:4px}.h5-drill-result-error{text-align:center;color:#dc2626;background:#fef2f2;border-radius:8px;margin-bottom:12px;padding:20px;font-size:14px}.h5-drill-result-score{justify-content:center;align-items:baseline;gap:4px;margin-bottom:4px;display:flex}.h5-drill-result-score-num{color:#2563eb;font-size:44px;font-weight:800;line-height:1}.h5-drill-result-score-div{color:#93c5fd;font-size:16px}.h5-drill-result-score-max{color:#6b7280;font-size:16px}.h5-drill-result-verdict{text-align:center;margin-bottom:12px;font-size:14px;font-weight:600}.h5-drill-result-comment{color:#4b5563;background:#f9fafb;border-radius:8px;margin-bottom:12px;padding:12px;font-size:13px;line-height:1.6}.h5-drill-dims{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px;display:grid}.h5-dim{text-align:center;background:#f9fafb;border-radius:8px;padding:8px 4px}.h5-dim span{color:#9ca3af;margin-bottom:2px;font-size:10px;display:block}.h5-dim strong{color:#374151;font-size:16px}.h5-drill-nav{margin-top:4px}.h5-drill-indicators{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:24px;display:flex}.h5-drill-dot{cursor:pointer;color:#9ca3af;-webkit-tap-highlight-color:transparent;background:#fff;border:2px solid #e5e7eb;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:12px;font-weight:600;transition:all .2s;display:flex}.h5-drill-dot--active{color:#2563eb;border-color:#2563eb;transform:scale(1.1)}.h5-drill-dot--grading{color:#f59e0b;background:#fef3c7;border-color:#f59e0b;animation:1.5s infinite h5-pulse}.h5-drill-dot--completed{color:#16a34a;background:#dcfce7;border-color:#16a34a}@keyframes h5-pulse{0%,to{opacity:1}50%{opacity:.5}}.h5-drill-modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:20px;animation:.2s share-overlay-in;display:flex;position:fixed;inset:0}.h5-drill-modal{text-align:center;background:#fff;border-radius:20px;width:100%;max-width:360px;padding:32px 24px;animation:.3s h5-modal-in}@keyframes h5-modal-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.h5-drill-modal-icon{margin-bottom:12px;font-size:48px}.h5-drill-modal-title{color:#1f2937;margin:0 0 8px;font-size:20px;font-weight:700}.h5-drill-modal-desc{color:#6b7280;margin:0 0 20px;font-size:14px;line-height:1.6}.h5-drill-modal-desc strong{color:#2563eb}.h5-drill-modal-close{color:#9ca3af;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;margin-top:12px;font-size:13px}.h5-br{padding-bottom:40px}.h5-br-loading,.h5-br-error{text-align:center;justify-content:center;align-items:center;min-height:80vh;padding:40px 16px 60px;display:flex}.h5-br-loading-card{background:#fff;border-radius:20px;width:100%;max-width:360px;padding:40px 24px;box-shadow:0 4px 24px #0000000f}.h5-br-loading-title{color:#1e3a5f;margin:16px 0 8px;font-size:20px;font-weight:700}.h5-br-loading-desc{color:#6b7280;margin:0 0 24px;font-size:14px}.h5-br-loading-steps{justify-content:space-between;margin-bottom:24px;display:flex;position:relative}.h5-br-loading-steps:before{content:"";z-index:0;background:#e5e7eb;height:2px;position:absolute;top:7px;left:20px;right:20px}.h5-br-step{color:#d1d5db;z-index:1;flex-direction:column;flex:1;align-items:center;gap:6px;font-size:11px;display:flex;position:relative}.h5-br-step.active{color:#2563eb}.h5-br-step.done{color:#16a34a}.h5-br-step-dot{background:#e5e7eb;border:2px solid #fff;border-radius:50%;flex-shrink:0;width:14px;height:14px}.h5-br-step.active .h5-br-step-dot{background:#2563eb;animation:1.5s ease-in-out infinite h5-dot-pulse;box-shadow:0 0 0 4px #2563eb26}.h5-br-step.done .h5-br-step-dot{background:#16a34a}@keyframes h5-dot-pulse{0%,to{box-shadow:0 0 0 4px #2563eb26}50%{box-shadow:0 0 0 8px #2563eb0d}}.h5-br-loading-tip{color:#9ca3af;margin:0 0 12px;font-size:13px}.h5-br-loading-timer{color:#6b7280;justify-content:center;align-items:center;gap:6px;margin:0;font-size:13px;display:flex}.h5-br-timer-dot{background:#f59e0b;border-radius:50%;width:8px;height:8px;animation:1.5s ease-in-out infinite h5-dot-pulse}.h5-br-poll-info{color:#9ca3af;margin-top:8px;font-size:12px}.h5-br-hero{text-align:center;color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);padding:24px 16px}.h5-br-title{margin:0 0 16px;font-size:20px;font-weight:700}.h5-br-score-summary{justify-content:center;align-items:baseline;gap:4px;margin-bottom:16px;display:flex}.h5-br-big-score{font-size:48px;font-weight:800}.h5-br-score-sep{opacity:.6;font-size:24px}.h5-br-max-score{opacity:.6;font-size:20px}.h5-br-percent-bar{background:#fff3;border-radius:3px;max-width:300px;height:6px;margin:0 auto 8px;overflow:hidden}.h5-br-percent-fill{background:#f59e0b;border-radius:3px;height:100%;transition:width .5s}.h5-br-percent-text{opacity:.8;margin:0;font-size:14px}.h5-br-results{padding:16px}.h5-br-section-title{color:#374151;margin:0 0 12px;font-size:16px;font-weight:600}.h5-br-card{background:#f9fafb;border:1px solid #f3f4f6;border-radius:12px;margin-bottom:10px;padding:14px}.h5-br-card--error{background:#fef2f2;border-color:#fecaca}.h5-br-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.h5-br-card-index{color:#374151;font-size:13px;font-weight:600}.h5-br-card-score{color:#2563eb;font-size:18px;font-weight:700}.h5-br-card-error-tag{color:#dc2626;background:#fef2f2;border-radius:8px;padding:2px 8px;font-size:12px}.h5-br-card-verdict{color:#374151;margin-bottom:6px;font-size:14px;line-height:1.6}.h5-br-card-comment{color:#6b7280;font-size:13px;line-height:1.5}.h5-br-card-error{color:#dc2626;font-size:13px}.h5-br-cta{text-align:center;padding:0 16px}.h5-br-cta-text{color:#6b7280;margin:0 0 16px;font-size:14px}@keyframes h5-spin{to{transform:rotate(360deg)}}.h5-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.radar-chart{justify-content:center;align-items:center;margin:0 auto;display:flex}.radar-chart svg{display:block}.score-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;margin-bottom:16px;padding:24px 16px}.score-card--compact{padding:16px 12px}.score-card-hero{justify-content:center;align-items:baseline;gap:4px;margin-bottom:4px;display:flex}.score-card-score{font-size:52px;font-weight:800;line-height:1}.score-card-max{color:#9ca3af;font-size:16px;font-weight:500}.score-card-verdict{border-radius:12px;margin-left:8px;padding:3px 12px;font-size:13px;font-weight:600;display:inline-block}.score-card-pct{text-align:center;color:#6b7280;margin-bottom:16px;font-size:14px}.score-card-pct strong{color:#2563eb;font-size:20px;font-weight:700}.score-card-radar{justify-content:center;margin-bottom:16px;display:flex}.score-card-dims{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px;display:grid}.score-card-dim{background:#f9fafb;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.score-card-dim-label{color:#9ca3af;font-size:11px;font-weight:500}.score-card-dim-value{color:#374151;font-size:16px;font-weight:700}.score-card-meta{border-top:1px solid #f3f4f6;justify-content:center;gap:24px;padding-top:12px;display:flex}.score-card-meta-item{flex-direction:column;align-items:center;gap:2px;display:flex}.score-card-meta-label{color:#9ca3af;font-size:11px}.score-card-meta-value{color:#374151;text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:13px;font-weight:600;overflow:hidden}.h5-report{padding:8px 0}.h5-report-loading,.h5-report-error{text-align:center;padding:60px 16px}.h5-report-loading p{color:#6b7280;font-size:14px}.h5-report-header{text-align:center;padding:20px 0 16px}.h5-report-avatar{background:#e8f0fe;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 8px;font-size:22px;display:flex}.h5-report-byline{color:#6b7280;font-size:14px}.h5-report-byline strong{color:#374151}.h5-no-result{text-align:center;color:#9ca3af;padding:40px;font-size:14px}.h5-report-cta{text-align:center;padding:20px 0 40px}.h5-report-cta-text{color:#374151;margin:0 0 16px;font-size:15px;font-weight:500}.h5-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:12px;justify-content:center;align-items:center;padding:12px 28px;font-size:15px;font-weight:600;transition:all .2s;display:inline-flex}.h5-btn-primary{color:#fff;background:#2563eb}.h5-btn-primary:active{background:#1d4ed8}.h5-btn-cta{color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);padding:14px 40px;font-size:16px;box-shadow:0 4px 16px #2563eb4d}.h5-btn-cta:active{transform:scale(.97);box-shadow:0 2px 8px #2563eb33}.h5-kp{padding:0}.h5-kp-loading{text-align:center;color:#6b7280;padding:60px 16px}.h5-kp-error{text-align:center;padding:60px 16px}.h5-kp-breadcrumb{color:#9ca3af;white-space:nowrap;-webkit-overflow-scrolling:touch;align-items:center;gap:6px;padding:12px 16px;font-size:13px;display:flex;overflow-x:auto}.h5-kp-breadcrumb-item{color:#6b7280;cursor:pointer;-webkit-tap-highlight-color:transparent}.h5-kp-breadcrumb-item:hover,.h5-kp-breadcrumb-item:active{color:#2563eb}.h5-kp-breadcrumb-sep{color:#d1d5db}.h5-kp-breadcrumb-current{color:#374151;font-weight:500}.h5-kp-hero{padding:16px 16px 24px}.h5-kp-title{color:#1f2937;margin:0 0 12px;font-size:22px;font-weight:800;line-height:1.4}.h5-kp-desc{color:#6b7280;margin:0 0 16px;font-size:14px;line-height:1.7}.h5-kp-meta{gap:8px;display:flex}.h5-kp-badge{color:#4f46e5;background:linear-gradient(135deg,#dbeafe,#ede9fe);border-radius:20px;align-items:center;gap:4px;padding:4px 12px;font-size:13px;font-weight:600;display:inline-flex}.h5-kp-questions{padding:0 16px 24px}.h5-kp-section-title{color:#374151;margin:0 0 12px;font-size:16px;font-weight:600}.h5-kp-question-list{flex-direction:column;gap:10px;display:flex}.h5-kp-question-card{background:#f9fafb;border:1px solid #f3f4f6;border-radius:12px;padding:14px 16px}.h5-kp-question-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.h5-kp-question-type{color:#2563eb;background:#eff6ff;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.h5-kp-question-content{color:#374151;margin:0;font-size:14px;line-height:1.6}.h5-kp-cta{text-align:center;padding:0 16px 32px}.h5-kp-cta-sub{color:#9ca3af;margin:10px 0 0;font-size:12px}.h5-kp-section{padding:0 16px 24px}.h5-kp-content-block{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:16px}.h5-kp-content-block p{color:#475569;margin:0 0 12px;font-size:14px;line-height:1.8}.h5-kp-content-block p:last-child{margin-bottom:0}.h5-kp-question-type-item{margin-bottom:16px}.h5-kp-question-type-item:last-child{margin-bottom:0}.h5-kp-question-type-item h3{color:#334155;margin:0 0 6px;font-size:15px;font-weight:600}.h5-kp-question-type-item p{margin:0}.h5-kp-tips-list{margin:0;padding:0;list-style:none}.h5-kp-tips-list li{color:#475569;border-bottom:1px solid #f1f5f9;padding:8px 0;font-size:14px;line-height:1.7}.h5-kp-tips-list li:last-child{border-bottom:none}.h5-kp-tips-list li strong{color:#2563eb}.h5-school-list{padding:0}.h5-school-list-loading{text-align:center;color:#6b7280;padding:60px 16px}.h5-school-list-error{text-align:center;padding:60px 16px}.h5-school-list-hero{text-align:center;padding:32px 16px 24px}.h5-school-list-badge{color:#4f46e5;background:linear-gradient(135deg,#dbeafe,#ede9fe);border-radius:20px;margin-bottom:16px;padding:4px 14px;font-size:13px;font-weight:600;display:inline-block}.h5-school-list-title{color:#1f2937;margin:0 0 8px;font-size:22px;font-weight:800;line-height:1.4}.h5-school-list-subtitle{color:#6b7280;margin:0;font-size:14px}.h5-school-list-grid{flex-direction:column;gap:12px;padding:0 16px 24px;display:flex}.h5-school-list-empty{text-align:center;color:#9ca3af;padding:40px 0;font-size:14px}.h5-school-list-card{cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff;border:1px solid #f3f4f6;border-radius:14px;align-items:center;padding:16px;transition:box-shadow .15s;display:flex}.h5-school-list-card:active{border-color:#dbeafe;box-shadow:0 4px 12px #2563eb1a}.h5-school-list-card-body{flex:1;min-width:0}.h5-school-list-card-name{color:#1f2937;margin:0 0 6px;font-size:17px;font-weight:700}.h5-school-list-card-desc{color:#9ca3af;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 10px;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.h5-school-list-card-stats{gap:12px;display:flex}.h5-school-list-stat{color:#6b7280;font-size:12px;font-weight:500}.h5-school-list-card-arrow{color:#d1d5db;flex-shrink:0;margin-left:8px;font-size:18px}.h5-school-list-footer{text-align:center;color:#9ca3af;padding:0 16px 40px;font-size:12px}.h5-school-detail{padding:0}.h5-school-detail-loading{text-align:center;color:#6b7280;padding:60px 16px}.h5-school-detail-error{text-align:center;padding:60px 16px}.h5-loading-spinner{border:3px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;width:36px;height:36px;margin:0 auto 16px;animation:.7s linear infinite h5-spin}.h5-error-icon{margin-bottom:12px;font-size:48px}.h5-error-title{color:#374151;margin:0 0 8px;font-size:18px;font-weight:600}.h5-error-desc{color:#9ca3af;margin:0 0 20px;font-size:14px}.h5-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:10px;justify-content:center;align-items:center;font-weight:600;transition:opacity .15s;display:inline-flex}.h5-btn:active{opacity:.8}.h5-btn-primary{color:#fff;background:#2563eb;padding:12px 28px;font-size:15px}.h5-btn-cta{color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed)}.h5-btn-block{width:100%;padding:16px 24px;font-size:17px}.h5-school-detail-breadcrumb{color:#9ca3af;white-space:nowrap;-webkit-overflow-scrolling:touch;align-items:center;gap:6px;padding:12px 16px;font-size:13px;display:flex;overflow-x:auto}.h5-school-detail-breadcrumb-item{color:#6b7280;cursor:pointer;-webkit-tap-highlight-color:transparent}.h5-school-detail-breadcrumb-item:hover,.h5-school-detail-breadcrumb-item:active{color:#2563eb}.h5-school-detail-breadcrumb-sep{color:#d1d5db}.h5-school-detail-breadcrumb-current{color:#374151;font-weight:500}.h5-school-detail-hero{text-align:center;padding:16px 16px 24px}.h5-school-detail-badge{color:#4f46e5;background:linear-gradient(135deg,#dbeafe,#ede9fe);border-radius:20px;margin-bottom:12px;padding:4px 14px;font-size:13px;font-weight:600;display:inline-block}.h5-school-detail-title{color:#1f2937;margin:0 0 12px;font-size:22px;font-weight:800;line-height:1.4}.h5-school-detail-desc{color:#6b7280;margin:0 0 16px;font-size:14px;line-height:1.7}.h5-school-detail-stats{justify-content:center;gap:20px;display:flex}.h5-school-detail-stat{color:#6b7280;font-size:14px}.h5-school-detail-stat strong{color:#2563eb;font-weight:700}.h5-school-detail-subjects{padding:0 16px 24px}.h5-school-detail-section-title{color:#374151;margin:0 0 12px;font-size:16px;font-weight:600}.h5-school-detail-subject-list{flex-direction:column;gap:8px;display:flex}.h5-school-detail-subject-card{background:#f9fafb;border:1px solid #f3f4f6;border-radius:10px;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.h5-school-detail-subject-name{color:#374151;font-size:14px;font-weight:600}.h5-school-detail-subject-count{color:#6b7280;background:#f3f4f6;border-radius:10px;padding:2px 10px;font-size:13px}.h5-school-detail-cta{text-align:center;padding:0 16px 24px}.h5-school-detail-cta-sub{color:#9ca3af;margin:10px 0 0;font-size:12px}.h5-school-detail-trust{border-top:1px solid #f3f4f6;justify-content:center;gap:20px;padding:20px 16px 40px;display:flex}.h5-school-detail-trust-item{color:#9ca3af;flex-direction:column;align-items:center;gap:4px;font-size:11px;display:flex}.h5-school-detail-trust-icon{font-size:20px}.h5-school-detail-section{padding:4px 16px 24px}.h5-school-detail-content-block{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:16px}.h5-school-detail-content-block p{color:#475569;margin:0 0 12px;font-size:14px;line-height:1.8}.h5-school-detail-content-block p:last-child{margin-bottom:0}.h5-school-detail-tips-list{margin:0;padding:0;list-style:none}.h5-school-detail-tips-list li{color:#475569;border-bottom:1px solid #f1f5f9;padding:8px 0;font-size:14px;line-height:1.7}.h5-school-detail-tips-list li:last-child{border-bottom:none}.h5-school-detail-tips-list li strong{color:#2563eb}.h5-school-detail-subject-info{flex-direction:column;gap:2px;display:flex}.h5-school-detail-subject-code{color:#94a3b8;font-size:11px}.h5-share-page{-webkit-font-smoothing:antialiased;background:#f3f4f6;min-height:100vh;font-family:PingFang SC,Microsoft YaHei,-apple-system,sans-serif}.h5-share-page-inner{max-width:680px;margin:0 auto;padding:0 0 40px}.h5-share-topbar{background:linear-gradient(135deg,#1e3a5f 0%,#1e40af 100%);align-items:center;gap:10px;padding:14px 20px;display:flex}.h5-share-logo{color:#fff;letter-spacing:1px;font-size:18px;font-weight:700}.h5-share-tag{color:#fcd34d;background:#ffffff1f;border-radius:10px;padding:2px 10px;font-size:11px}.h5-share-shaver{background:#fff;border-bottom:1px solid #f3f4f6;align-items:center;gap:14px;padding:20px;display:flex}.h5-share-avatar{color:#fff;background:linear-gradient(135deg,#1e3a5f,#3b82f6);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;font-weight:700;display:flex}.h5-share-nickname{color:#1f2937;font-size:16px;font-weight:600}.h5-share-msg{color:#9ca3af;margin-top:2px;font-size:12px}.h5-share-score-box{text-align:center;background:#fff;border-bottom:1px solid #f3f4f6;padding:28px 20px 20px}.h5-share-score-big{font-family:DIN Alternate,PingFang SC,sans-serif;font-size:56px;font-weight:800;line-height:1}.h5-share-score-sub{color:#6b7280;margin-top:4px;font-size:13px}.h5-share-info-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:18px;display:grid}.h5-share-info-item{background:#f9fafb;border-radius:8px;padding:10px 6px}.h5-share-info-val{color:#374151;font-size:16px;font-weight:700}.h5-share-info-lbl{color:#9ca3af;margin-top:2px;font-size:11px}.h5-share-comment{background:#fff;border:1px solid #e5e7eb;border-left:3px solid #2563eb;border-radius:12px;margin:12px 16px;padding:16px}.h5-share-comment-title{color:#1e3a5f;margin-bottom:8px;font-size:14px;font-weight:600}.h5-share-comment-text{color:#4b5563;margin:0;font-size:14px;line-height:1.7}.h5-share-detail-section{padding:0 16px}.h5-share-detail-head{color:#374151;padding:16px 4px 12px;font-size:15px;font-weight:600}.h5-share-qcard{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:12px;padding:16px}.h5-share-qcard-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.h5-share-qcard-head-l{align-items:center;gap:8px;display:flex}.h5-share-qcard-idx{color:#374151;font-size:14px;font-weight:600}.h5-share-qcard-type{border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.h5-share-qcard-type--essay{color:#1d4ed8;background:#dbeafe}.h5-share-qcard-type--short{color:#b45309;background:#fef3c7}.h5-share-qcard-type--term{color:#16a34a;background:#dcfce7}.h5-share-qcard-head-r{align-items:center;gap:8px;display:flex}.h5-share-qcard-verdict{border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.h5-share-qcard-verdict--excellent{color:#16a34a;background:#dcfce7}.h5-share-qcard-verdict--good{color:#1d4ed8;background:#dbeafe}.h5-share-qcard-verdict--medium{color:#b45309;background:#fef3c7}.h5-share-qcard-verdict--poor{color:#dc2626;background:#fee2e2}.h5-share-qcard-score{font-size:20px;font-weight:700}.h5-share-qcard-question{color:#374151;background:#f9fafb;border-left:3px solid #2563eb;border-radius:6px;margin-bottom:10px;padding:10px 12px;font-size:13px;line-height:1.6}.h5-share-qcard-detail{margin-bottom:8px}.h5-share-qcard-summary{color:#2563eb;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0;font-size:12px;font-weight:500}.h5-share-qcard-answer{margin-top:6px}.h5-share-qcard-ai-comment{color:#4b5563;background:#f0f9ff;border:1px solid #dbeafe;border-radius:6px;margin-bottom:8px;padding:10px 12px;font-size:13px;line-height:1.6}.h5-share-qcard-ai-label{color:#2563eb;margin-bottom:4px;font-size:11px;font-weight:600;display:block}.h5-share-qcard-points{margin-top:6px}.h5-share-point-row{border-bottom:1px solid #f3f4f6;align-items:flex-start;gap:10px;padding:8px 0;display:flex}.h5-share-point-row:last-child{border-bottom:none}.h5-share-point-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-top:1px;font-size:11px;font-weight:700;display:flex}.h5-share-point-body{flex:1;min-width:0}.h5-share-point-kw{color:#374151;font-size:13px;font-weight:600}.h5-share-point-fb{color:#6b7280;margin-top:2px;font-size:12px;line-height:1.5}.h5-share-point-tags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.h5-share-point-tag{color:#dc2626;background:#fef2f2;border-radius:3px;padding:1px 6px;font-size:10px}.h5-share-point-score{color:#6b7280;flex-shrink:0;font-size:13px;font-weight:700}.h5-share-qcard-err-tags{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.h5-share-qcard-err-tag{color:#dc2626;background:#fef2f2;border-radius:4px;padding:2px 8px;font-size:10px}.h5-share-qcard-model{color:#374151;white-space:pre-wrap;background:#f0fdf4;border:1px solid #dcfce7;border-radius:6px;margin-top:6px;padding:12px;font-size:13px;line-height:1.7}.h5-share-actions{flex-direction:column;gap:10px;padding:20px 16px 8px;display:flex}.h5-share-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;text-align:center;border:none;border-radius:12px;width:100%;padding:14px;font-family:inherit;font-size:16px;font-weight:600;transition:all .15s}.h5-share-btn:active{transform:scale(.97)}.h5-share-btn--primary{color:#fff;background:linear-gradient(135deg,#1e3a5f,#1e40af);box-shadow:0 4px 16px #1e3a5f40}.h5-share-btn--poster{color:#1e3a5f;background:#fff;border:2px solid #1e3a5f}.h5-share-btn--ghost{color:#9ca3af;background:0 0;font-size:14px}.h5-share-footer{text-align:center;color:#9ca3af;padding:16px;font-size:12px}.h5-share-loading,.h5-share-error{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:60vh;display:flex}.h5-share-error-icon{font-size:48px}.h5-share-error h3{color:#374151;margin:0;font-size:18px}.h5-share-spinner{border:3px solid #e5e7eb;border-top-color:#1e3a5f;border-radius:50%;width:36px;height:36px;animation:.7s linear infinite h5-share-spin}@keyframes h5-share-spin{to{transform:rotate(360deg)}}
