.action-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 26px;background:var(--white);color:var(--ink-700);font-family:var(--font-sans);font-size:14px;font-weight:600;border:1.5px solid var(--ink-200);border-radius:var(--r-pill);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--dur-fast)}.action-btn:hover:not(:disabled){border-color:var(--ink-300);background:var(--ink-50);transform:translateY(-1px);box-shadow:var(--shadow-md)}.action-btn:active:not(:disabled){transform:translateY(0) scale(.97)}.action-btn:disabled{opacity:.5;cursor:default}.action-btn .mini-loader{width:14px;height:14px;border:2px solid var(--ink-200);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}.action-btn svg{width:18px;height:18px;flex-shrink:0}.ubq-burst{position:absolute;width:0;height:0;z-index:10;pointer-events:none}.ubq-burst-line{position:absolute;left:-1px;top:0;width:2px;height:10px;background:var(--brand);border-radius:1px;transform-origin:center top;opacity:0}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r-pill);border:none;background:0 0;color:var(--ink-400);cursor:pointer;text-decoration:none;flex-shrink:0;transition:background var(--dur-fast),color var(--dur-fast)}.icon-btn:hover{background:var(--ink-100);color:var(--ink-700)}.icon-btn.active{background:rgba(0,114,255,.08);color:var(--brand)}.icon-btn svg{width:18px;height:18px;stroke-width:2.2}.tooltip-bubble{position:fixed;background:var(--ink-900);color:var(--white);font-family:var(--font-sans);font-size:11px;font-weight:500;line-height:1.35;white-space:nowrap;padding:6px 10px;border-radius:var(--r-md);box-shadow:var(--shadow-md);pointer-events:none;z-index:10000;display:none}.tooltip-arrow{position:absolute;left:50%;transform:translateX(-50%);border:5px solid transparent}.nav-btn svg{width:14px;height:14px}.chat-header-icon svg{width:14px;height:14px}.chat-send svg{width:18px;height:18px;stroke-width:2.2}body.quiz-shell-body{height:100vh;overflow:hidden;background:var(--page-bg);display:flex;flex-direction:column}.shell{display:flex;flex:1;min-height:0;padding:var(--gap)}.left-col{flex:1;display:flex;flex-direction:column;gap:var(--gap);min-width:0}.header-card{background:var(--card-bg);border-radius:300px;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;border:var(--card-border)}.header-card-left{display:flex;align-items:center;gap:14px;min-width:0}.header-card-text{min-width:0}.quiz-title{font-size:var(--text-md);font-weight:600;color:var(--ink-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.015em}.header-card-desc{font-size:var(--text-sm);color:var(--ink-500);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.floating-meta{position:absolute;top:0;right:0;bottom:0;z-index:5;pointer-events:none}.floating-meta>*{pointer-events:auto;box-shadow:0 1px 4px rgba(0,0,0,.06),0 0 1px rgba(0,0,0,.08)}.floating-meta .attempt-pill{position:absolute;top:24px;right:24px}.floating-meta .mode-pill{position:absolute;bottom:24px;right:24px}.header-card-right{display:flex;align-items:center;gap:4px;flex-shrink:0}.mode-pill{font-size:var(--text-xs);font-weight:600;padding:5px 12px;border-radius:var(--r-pill);white-space:nowrap;cursor:pointer;transition:opacity var(--dur-fast)}.mode-pill:hover{opacity:.8}.mode-pill.practice{background:#eef6ff;color:var(--brand)}.mode-pill.test{background:#fff4ee;color:#d35400}.attempt-pill{font-size:var(--text-xs);font-weight:500;color:var(--ink-500);background:var(--ink-100);padding:5px 12px;border-radius:var(--r-pill);white-space:nowrap;cursor:default}.attempt-pill.has-attempt{background:var(--brand-light);color:var(--brand);cursor:pointer}.main-card{flex:1;background:var(--card-bg);border-radius:50px;display:flex;flex-direction:column;overflow:hidden;min-height:0;position:relative;border:var(--card-border)}.quiz-scroll{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:32px 32px 40px;scrollbar-width:none;-ms-overflow-style:none}.quiz-scroll::-webkit-scrollbar{display:none}.curved-scrollbar{position:absolute;top:0;right:0;bottom:0;pointer-events:none;z-index:10;overflow:visible!important}.curved-scrollbar__track{display:none}.curved-scrollbar__thumb{fill:none;stroke:var(--ink-300);stroke-linecap:round;opacity:0;transition:opacity .4s ease}.main-card:hover .curved-scrollbar__thumb{opacity:1}.curved-scrollbar--visible .curved-scrollbar__thumb{opacity:1}.quiz-inner{max-width:100%}.chat-wrap{width:0;flex-shrink:0;overflow:hidden;transition:width .4s var(--spring-bouncy),margin-left .4s var(--spring-bouncy),overflow 0s .4s;margin-left:0}.chat-wrap.open{width:var(--chat-w);margin-left:var(--gap);overflow:visible;transition:width .4s var(--spring-bouncy),margin-left .4s var(--spring-bouncy),overflow 0s 0s}.chat-card{width:var(--chat-w);height:100%;background:linear-gradient(180deg,#0a0909 0,#09101f 100%);border-radius:50px 50px 10px 50px;display:flex;flex-direction:column;overflow:hidden;position:relative;border:.5px solid rgba(255,255,255,.06)}.chat-shader-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;border-radius:inherit;pointer-events:none}.chat-card>:not(.chat-shader-canvas):not(.chat-gate){position:relative;z-index:1}.chat-header{padding:20px 28px;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0;display:flex;align-items:center;gap:10px}.chat-header-icon{width:28px;height:28px;border-radius:50%;background:rgba(0,114,255,.15);color:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-header-text{font-size:var(--text-md);font-weight:600;color:rgba(255,255,255,.9)}.chat-header-sub{font-size:var(--text-sm);color:rgba(255,255,255,.5);font-weight:400}.chat-messages{flex:1;overflow-y:auto;padding:24px 28px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:0 0;margin-top:8px;margin-bottom:8px}.chat-messages::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:50px}.chat-messages::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.2)}.chat-bubble{padding:10px 14px;border-radius:var(--r-md);font-size:var(--text-base);line-height:var(--leading-normal);max-width:88%}.chat-bubble.ai{background:rgba(255,255,255,.05);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:.5px solid rgba(255,255,255,.08);color:rgba(255,255,255,.7);align-self:flex-start;border-bottom-left-radius:4px}.chat-bubble.user{background:rgba(0,114,255,.15);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:.5px solid rgba(0,114,255,.2);color:rgba(255,255,255,.9);align-self:flex-end;border-bottom-right-radius:4px}.chat-input-area{padding:16px 28px 24px;flex-shrink:0}.chat-input-row{display:flex;gap:10px}.chat-input{flex:1;padding:12px 18px;border:.5px solid rgba(255,255,255,.1);border-radius:var(--r-pill);font-size:var(--text-md);font-family:var(--font-sans);color:rgba(255,255,255,.9);background:rgba(255,255,255,.04)}.chat-input:focus{outline:0;border-color:rgba(0,114,255,.4);background:rgba(255,255,255,.06)}.chat-input::placeholder{color:rgba(255,255,255,.25)}.chat-send{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;border:.5px solid rgba(255,255,255,.1);background:rgba(255,255,255,.06);color:rgba(255,255,255,.8);cursor:pointer;flex-shrink:0;transition:background var(--dur-fast),border-color var(--dur-fast)}.chat-send:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.15)}.quiz-subtitle{font-family:var(--font-prose);font-size:var(--text-sm);color:var(--ink-600);line-height:1.6}.quiz-meta-line{font-size:var(--text-sm);color:var(--ink-400);font-weight:500}#timer-wrap{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink-700);padding:5px 12px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface);transition:all var(--dur-fast);overflow:hidden}#timer-display{display:inline-flex;align-items:center}.t-digit{display:inline-block;overflow:hidden}.t-digit>span{display:block}#timer-wrap.warn{color:var(--warning);border-color:var(--warning);background:var(--warning-bg);animation:pulse-timer 1s ease-in-out infinite}#timer-wrap.urgent{color:var(--incorrect);border-color:var(--incorrect);background:var(--incorrect-bg);animation:pulse-timer .5s ease-in-out infinite}.timer-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;animation:timer-pulse 2s ease-in-out infinite}@keyframes timer-pulse{0%,100%{opacity:1}50%{opacity:.3}}@keyframes pulse-timer{0%,100%{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;margin:0 var(--gap);background:var(--card-bg);border-radius:0 0 35px 35px;flex-shrink:0;border:var(--card-border);border-top:none}.top-bar-left{display:flex;align-items:center;gap:12px}.top-bar-logo{display:flex;align-items:center;text-decoration:none;flex-shrink:0}.top-bar-logo-img{width:24px;height:24px;border-radius:0}.top-bar-title{font-size:var(--text-md);font-weight:700;color:var(--ink-800);letter-spacing:-.01em}.top-bar-title-accent{font-weight:400;color:var(--ink-400)}.top-bar-role{font-size:var(--text-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:3px 10px;border-radius:var(--r-pill);background:var(--ink-100);color:var(--ink-500);white-space:nowrap}.top-bar-tier{display:inline-flex;align-items:center;gap:2px;font-size:var(--text-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 10px;border-radius:var(--r-pill);white-space:nowrap;opacity:0;transition:opacity var(--dur-fast) var(--smooth)}.top-bar-tier.tier-ready{opacity:1}.top-bar-tier.lite{background:var(--tier-lite-bg);color:var(--tier-lite-text)}.top-bar-tier.pro{background:linear-gradient(135deg,var(--tier-pro-from),var(--tier-pro-to));color:var(--white)}.top-bar-tier.pro-plus{background:linear-gradient(135deg,var(--tier-pro-plus-from),var(--tier-pro-plus-to));color:var(--white)}.top-bar-tier.educator{background:linear-gradient(135deg,var(--tier-educator-from),var(--tier-educator-to));color:var(--white)}svg.lucide-plus{width:var(--icon-sm);height:var(--icon-sm);flex-shrink:0}svg.lucide-plus path{stroke-dasharray:14;stroke-dashoffset:14}svg.lucide-plus path:first-child{animation:tier-plus-draw var(--dur-med) var(--ease-out) .3s forwards}svg.lucide-plus path:last-child{animation:tier-plus-draw var(--dur-med) var(--ease-out) .1s forwards}@keyframes tier-plus-draw{from{stroke-dashoffset:14}to{stroke-dashoffset:0}}.top-bar-right{display:flex;align-items:center;gap:4px}.question-card{margin-bottom:56px;opacity:0;animation:cardIn var(--dur-slow) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 60ms + 100ms)}.card-header-row{display:flex;align-items:center;gap:10px;margin-bottom:20px;position:sticky;top:0;z-index:4}.card-header{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;background:var(--ink-900);overflow:hidden;white-space:nowrap;border-radius:var(--r-pill);width:fit-content}.q-admin-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:none;background:0 0;color:var(--ink-300);cursor:pointer;opacity:0;transition:opacity .15s,color .15s,background .15s;text-decoration:none}.q-admin-btn svg{width:15px;height:15px}.q-admin-btn:hover{color:var(--ink-600);background:var(--ink-100)}.card-header-row:hover .q-admin-btn{opacity:1}@media (hover:none){.q-admin-btn{opacity:1}}.q-report-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:none;background:0 0;color:var(--ink-300);cursor:pointer;opacity:0;transition:opacity var(--dur-fast),color var(--dur-fast),background var(--dur-fast);flex-shrink:0}.q-report-btn svg{width:15px;height:15px}.q-report-btn:hover{color:var(--ink-600);background:var(--ink-100)}.card-header-row:hover .q-report-btn{opacity:1}@media (hover:none){.q-report-btn{opacity:1}}.question-number{font-size:var(--text-sm);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.7)}.q-attempt-count{display:inline-flex;align-items:center;gap:2px;padding:4px 10px;border-radius:var(--r-pill);background:var(--ink-50,#f5f5f5);border:1px solid var(--ink-100,#e5e5e5);cursor:pointer;font-size:var(--text-xs, 12px);color:var(--ink-400,#9ca3af);transition:background var(--dur-fast, 120ms),color var(--dur-fast, 120ms),border-color var(--dur-fast, 120ms);white-space:nowrap}.q-attempt-count:hover{background:var(--ink-100,#e8e8e8);color:var(--ink-600,#4b5563);border-color:var(--ink-200,#d1d5db)}.q-attempt-num{font-weight:700;color:var(--ink-600,#4b5563)}.q-attempt-label{font-weight:500}.q-timer-slot{display:flex;align-items:center}.q-timer-pill{display:flex;align-items:center;gap:5px;font-size:var(--text-sm);font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink-400);animation:fadeUp var(--dur-med) var(--ease-out) both}.q-timer-dot{width:5px;height:5px;border-radius:50%;background:#22c55e}.q-timer-done{color:var(--ink-300)}.q-timer-done .q-timer-dot{background:var(--ink-300);animation:none}.card-body{padding:0;max-width:700px}.question-html{font-family:var(--font-prose);font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--ink-900);margin-bottom:28px}.question-html p{margin-bottom:.8em}.question-html ol,.question-html ul{padding-left:1.5em;margin:.6em 0}.question-html li{margin-bottom:4px}.question-html .katex{font-size:1.05em}.question-html figcaption{font-family:var(--font-sans);font-size:var(--text-base);color:var(--ink-500);margin-top:8px;text-align:center;font-style:italic}.question-html figure{margin:16px 0;text-align:center}.question-html img{display:block;margin:12px auto;max-width:100%;border-radius:var(--r-md)}.question-images{margin-bottom:20px;display:flex;flex-direction:column;align-items:center;gap:12px}.question-figure{border-radius:var(--r-md);overflow:hidden;text-align:center}.question-figure img{border-radius:var(--r-md);max-height:360px;display:block;margin:0 auto}.question-figure figcaption{font-size:var(--text-lg);color:var(--ink-300);margin-top:6px;text-align:center;font-style:italic;font-family:var(--font-prose)}.mcq-options{display:flex;flex-direction:column;gap:4px}.mcq-option{display:flex;align-items:flex-start;gap:6px;padding:10px 16px;border-radius:var(--r-pill);border:1.5px solid transparent;cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast);background:0 0;position:relative}.mcq-option:hover:not(.locked):not(.selected){background:var(--ink-50)}.mcq-option.selected:not(.locked){border-color:var(--brand);background:var(--brand-light)}.mcq-option.locked{cursor:default}.mcq-option.correct-answer{border-color:var(--correct);background:var(--correct-bg)}.mcq-option.correct-answer .option-indicator{color:var(--correct);font-weight:700}.mcq-option.wrong-answer{border-color:var(--incorrect);background:var(--incorrect-bg)}.mcq-option.wrong-answer .option-indicator{color:var(--incorrect);font-weight:700}.mcq-option.locked:not(.correct-answer):not(.wrong-answer){opacity:.65}.option-indicator{font-family:var(--font-prose);font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--ink-800)}.option-text{font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--ink-800);flex:1}.table-row-cells{display:flex;align-items:center;border:1px solid var(--ink-200);border-radius:var(--r-md);overflow:hidden}.table-row-cell{flex:auto;padding:8px 14px;text-align:center}.table-row-cell+.table-row-cell{border-left:1px solid var(--ink-200)}.mcq-option .katex-display{text-align:left;margin:0}.mcq-option .katex-display>.katex{text-align:left}.katex{font-size:inherit!important}.frq-parts{display:flex;flex-direction:column}.frq-part{position:relative;transition-property:margin,border-radius,background;transition-duration:.5s;transition-timing-function:var(--spring-bouncy)}.frq-part+.frq-part::before{content:'';position:absolute;top:0;left:18px;right:18px;height:1px;background:var(--ink-100);transition:opacity .2s}.frq-part.frq-open+.frq-part::before,.frq-part.frq-open::before{opacity:0}.frq-part.frq-open{background:var(--ink-50);border:.5px solid var(--ink-200);border-radius:var(--r-lg);margin-block:6px;z-index:2}.frq-part.frq-open:first-child{margin-block-start:0}.frq-part.frq-open:last-child{margin-block-end:0}.frq-part-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:18px 18px;background:0 0;border:none;cursor:pointer;font-family:var(--font-sans);color:var(--ink-900);text-align:left;transition:background .1s}.frq-part:not(.frq-open) .frq-part-header{margin:0 6px;border-radius:var(--r-pill)}.frq-part:not(.frq-open) .frq-part-header:hover{background:var(--ink-100)}.frq-part:not(.frq-open):hover+.frq-part::before,.frq-part:not(.frq-open):hover::before{opacity:0}.frq-part.frq-open .frq-part-header:hover{background:rgba(0,0,0,.02)}.frq-part-header-left{display:flex;align-items:center;gap:8px}.frq-part-label{font-weight:600;font-size:var(--text-lg);color:var(--ink-700)}.frq-part-points{font-size:var(--text-xs);background:var(--ink-100);color:var(--ink-500);padding:2px 10px;border-radius:var(--r-pill);font-weight:500}.frq-part-toggle{width:14px;height:14px;color:var(--ink-400);transition:rotate .5s var(--spring-bouncy),color .15s;flex-shrink:0}.frq-part.frq-open .frq-part-toggle{rotate:225deg;color:var(--ink-700)}.frq-body{display:grid;grid-template-rows:0fr;opacity:0;translate:0 8px;filter:blur(3px);transition:grid-template-rows .6s var(--spring-bouncy),opacity .25s var(--spring-bouncy),translate .4s var(--spring-bouncy),filter .25s ease}.frq-part.frq-open .frq-body{grid-template-rows:1fr;opacity:1;translate:0 0;filter:blur(0)}.frq-body-inner{overflow:hidden;padding:0 18px;transition:padding .22s ease}.frq-part.frq-open .frq-body-inner{padding:2px 18px 18px}.frq-question-text{font-family:var(--font-prose);font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--ink-900);margin-bottom:10px}.frq-textarea{width:100%;min-height:80px;padding:10px 12px;border:1.5px solid var(--ink-200);border-radius:var(--r-sm);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--ink-900);background:var(--ink-50);resize:vertical;transition:border-color .15s,background .15s}.frq-textarea:focus{outline:0;border-color:var(--brand);background:var(--white);box-shadow:0 0 0 3px rgba(0,114,255,.08)}.frq-textarea::placeholder{color:var(--ink-400)}.frq-subparts{display:flex;flex-direction:column;gap:16px}.frq-subpart-text{margin-bottom:8px;font-family:var(--font-prose);line-height:1.6}.frq-subpart-label{font-family:var(--font-prose);font-size:inherit;font-weight:600;color:var(--ink-500);font-style:italic}.frq-subpart-text .frq-question-text{display:inline}.frq-subpart-text .frq-question-text p{display:inline}.frq-part-result{margin-top:12px;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--ink-200);background:var(--ink-50);animation:fadeUp var(--dur-med) var(--ease-out) both}.frq-part-result.correct{border-color:rgba(0,168,120,.25);background:var(--correct-bg)}.frq-part-result.partial{border-color:rgba(245,158,11,.25);background:rgba(232,160,32,.06)}.frq-part-result.incorrect{border-color:rgba(232,64,60,.25);background:var(--incorrect-bg)}.frq-part-result-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.frq-part-result-badge{font-family:var(--font-sans);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:var(--r-sm)}.frq-part-result-badge.correct{color:var(--correct);background:rgba(34,197,94,.12)}.frq-part-result-badge.partial{color:var(--warn,#b8860b);background:rgba(232,160,32,.12)}.frq-part-result-badge.incorrect{color:var(--incorrect);background:rgba(239,68,68,.12)}.frq-part-result-score{font-family:var(--font-sans);font-size:12px;font-weight:600;color:var(--ink-500)}.frq-part-result-feedback{font-family:var(--font-sans);font-size:13px;color:var(--ink-600);line-height:1.55}.frq-part-score-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-left:4px;vertical-align:middle}.frq-part-score-dot.correct{background:var(--correct)}.frq-part-score-dot.partial{background:var(--warn,#e8a020)}.frq-part-score-dot.incorrect{background:var(--incorrect)}.gq-wrap{border-radius:var(--r-lg);border:1px solid var(--border);overflow:hidden;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.gq-wrap:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-glow)}.gq-textarea{width:100%;min-height:120px;padding:14px 16px;font-size:15px;line-height:1.65;color:var(--ink-800);border:none;outline:0;resize:vertical;background:var(--white)}.gq-textarea::placeholder{color:var(--ink-300)}.explanation-box{margin-top:16px;border-radius:var(--r-lg);border:1px solid var(--ink-200);background:var(--ink-50);overflow:hidden;animation:expand-in var(--dur-med) var(--ease-out) forwards}.explanation-box.expanded{max-height:none}.explanation-box.dark{background:var(--surface);border:none;box-shadow:var(--shadow-card)}.explanation-box.collapsing{animation:collapse-out var(--dur-med) var(--ease-out) forwards}@keyframes expand-in{from{opacity:0;max-height:0;transform:translateY(-8px)}to{opacity:1;max-height:2000px;transform:translateY(0)}}@keyframes collapse-out{from{opacity:1;max-height:2000px}to{opacity:0;max-height:0;margin-top:0}}.explanation-topbar{display:flex;align-items:center;gap:8px;padding:12px 24px}.explanation-topbar-label{font-size:var(--text-sm);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-400)}.explanation-topbar .explanation-close-btn{margin-left:auto}.explanation-close-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:none;background:var(--ink-100);color:var(--ink-500);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.explanation-close-btn:hover{background:var(--ink-200);color:var(--ink-700)}.explanation-content{padding:24px;font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--ink-800)}.explanation-content p{margin:0 0 8px}.explanation-content p:last-child{margin-bottom:0}.exp-section{margin-bottom:24px}.exp-section-label{font-size:var(--text-sm);color:var(--ink-400);text-transform:uppercase;letter-spacing:.05em}.exp-step{margin:14px 0;padding:16px 18px;background:var(--surface-inset);border-radius:var(--r-md);font-size:var(--text-md);color:var(--ink-800);line-height:var(--leading-relaxed)}.exp-step-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--ink-200);color:var(--ink-600);font-size:var(--text-sm);font-weight:700;margin-right:10px}.exp-choice-row{display:flex;gap:12px;margin:12px 0}.exp-choice-letter{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--ink-200);color:var(--ink-600);font-size:var(--text-sm);font-weight:700;flex-shrink:0}.exp-choice-text{color:var(--ink-800);font-size:var(--text-md);line-height:var(--leading-normal)}.exp-total-points{font-size:var(--text-md);font-weight:600;color:var(--ink-500);margin-bottom:20px}.exp-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.exp-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:none;border-radius:var(--r-pill);background:var(--surface-inset);color:var(--ink-500);font-family:var(--font-sans);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all .15s;box-shadow:rgba(14,63,126,.04) 0 0 0 1px,rgba(42,51,70,.02) 0 1px 1px -.5px}.exp-tab:hover{color:var(--ink-700);background:var(--ink-100)}.exp-tab.active{color:var(--brand-dark);background:var(--brand-light);box-shadow:rgba(0,114,255,.15) 0 0 0 1px,rgba(0,114,255,.06) 0 1px 2px}.exp-tab-pts{font-size:var(--text-sm);font-weight:500;color:var(--ink-400);background:var(--ink-100);padding:2px 8px;border-radius:var(--r-pill)}.exp-tab.active .exp-tab-pts{color:var(--brand);background:var(--brand-soft)}.exp-panel{display:none}.exp-panel.active{display:block}.exp-subpart{margin-bottom:28px}.exp-subpart:last-child{margin-bottom:0}.exp-subpart-header{display:flex;align-items:center;gap:10px;font-size:var(--text-base);font-weight:600;color:var(--ink-500);margin-bottom:16px;text-transform:lowercase;font-style:italic}.exp-subpart-pts{font-style:normal;font-weight:500;color:var(--ink-400);font-size:var(--text-sm)}.exp-criterion{padding:16px 0;border-top:1px solid var(--ink-100)}.exp-criterion:first-child{border-top:none;padding-top:0}.exp-criterion-meta{display:flex;gap:10px;align-items:center;margin-bottom:10px}.exp-criterion-id{font-size:var(--text-sm);font-weight:700;color:var(--brand-dark);background:var(--brand-light);padding:3px 10px;border-radius:4px}.exp-criterion-pts{font-size:var(--text-sm);color:var(--ink-400)}.exp-criterion-desc{font-size:var(--text-md);color:var(--ink-800);line-height:var(--leading-relaxed)}.exp-criterion-accept{font-size:var(--text-md);color:var(--ink-500);margin-top:10px;line-height:var(--leading-relaxed)}.exp-example{margin:24px 0;padding:16px 18px;background:var(--brand-soft);border-radius:var(--r-md);border:none}.exp-example-label{font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--brand);margin-bottom:8px}.exp-example-text{font-family:var(--font-hand);font-size:var(--text-xl);color:var(--ink-700);line-height:var(--leading-relaxed)}.exp-empty{color:var(--ink-400)}.explanation-footer{padding:12px 24px;display:flex;align-items:center;gap:8px}.explanation-upvote{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--ink-200);border-radius:var(--r-pill);background:0 0;color:var(--ink-400);font-family:var(--font-sans);font-size:11px;font-weight:500;cursor:pointer;transition:all var(--dur-fast)}.explanation-upvote svg{width:14px;height:14px}.explanation-upvote:hover{color:var(--ink-600);border-color:var(--ink-300);background:var(--surface-inset)}.explanation-upvote.active{color:var(--brand);border-color:var(--brand-soft);background:var(--brand-soft)}.explanation-upvote:disabled{opacity:.5;cursor:default}.explanation-pro-step{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;margin-left:auto;border:1px solid var(--ink-200);border-radius:var(--r-pill);background:var(--surface-inset);color:var(--ink-600);font-family:var(--font-sans);font-size:11px;font-weight:600;cursor:pointer;transition:all var(--dur-fast);white-space:nowrap}.explanation-pro-step:hover{color:var(--ink-800);background:var(--ink-100);border-color:var(--ink-300)}@media (max-width:480px){.upvote-label{display:none}.explanation-upvote{padding:6px;border-radius:50%}.explanation-upvote svg{width:16px;height:16px}}.upvote-count{font-size:11px;font-weight:600;color:inherit;opacity:.7}.explanation-header{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border)}.explanation-icon{width:18px;height:18px;background:var(--brand);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.explanation-icon svg{width:10px;height:10px}.explanation-label{font-size:12px;font-weight:600;color:var(--brand-dark);letter-spacing:.04em;text-transform:uppercase}.explanation-body{padding:12px 14px;font-size:14px;line-height:1.65;color:var(--ink-700)}.breakdown-feedback,.explanation-content,.frq-part-result-feedback,.frq-question-text,.inline-result-feedback,.question-html{overflow-x:auto;-webkit-overflow-scrolling:touch}.breakdown-feedback table,.explanation-content table,.frq-part-result-feedback table,.frq-question-text table,.inline-result-feedback table,.option-text table,.question-html table{min-width:480px;max-width:700px}.frq-question-text table,.option-text table,.question-html table{width:100%;border-collapse:collapse;font-size:inherit;margin:20px 0;border:1px solid var(--ink-200);border-radius:var(--r-md);overflow:hidden}.frq-question-text table td,.frq-question-text table th,.option-text table td,.option-text table th,.question-html table td,.question-html table th{padding:10px 14px;text-align:center;vertical-align:middle;border:1px solid var(--ink-200)}.frq-question-text table th,.option-text table th,.question-html table th{font-weight:600;color:var(--ink-600);background:var(--ink-50)}.frq-question-text table td,.option-text table td,.question-html table td{color:var(--ink-700);height:40px}.frq-question-text table td:empty,.option-text table td:empty,.question-html table td:empty{background:var(--ink-50)}.frq-question-text table th:empty,.option-text table th:empty,.question-html table th:empty{height:40px}.editable-cell{font-family:var(--font-hand);font-size:var(--text-lg);color:var(--ink-800);outline:0;cursor:text;transition:background var(--dur-fast);min-width:60px}.editable-cell:focus{background:var(--brand-light)}.editable-cell:empty::before{content:'...';color:var(--ink-300);font-family:var(--font-sans);font-size:var(--text-sm)}.frq-question-text ul{list-style:none;padding:0;margin:12px 0;display:flex;flex-direction:column;gap:6px}.frq-question-text li{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1.5px solid var(--ink-200);border-radius:var(--r-md);font-family:var(--font-sans);font-size:14px;color:var(--ink-700);cursor:pointer;transition:all var(--dur-fast);user-select:none}.frq-question-text li:hover{background:var(--ink-50);border-color:var(--ink-300)}.frq-question-text li.selected{border-color:var(--brand);background:var(--brand-light);color:var(--ink-900)}.frq-question-text li input[type=checkbox]{display:none}.frq-question-text li::before{content:'';width:20px;height:20px;border:2px solid var(--ink-300);border-radius:5px;flex-shrink:0;transition:all var(--dur-fast);background:var(--white)}.frq-question-text li.selected::before{border-color:var(--brand);background:var(--brand);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 14 14' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='3 7.5 6 10.5 11 4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:14px}.frq-question-text ul:not(:has(input[type=checkbox])){list-style:disc;padding-left:1.5em;display:block}.frq-question-text ul:not(:has(input[type=checkbox])) li{display:list-item;border:none;padding:2px 0;cursor:default;user-select:auto}.frq-question-text ul:not(:has(input[type=checkbox])) li::before{display:none}.frq-question-text ul:not(:has(input[type=checkbox])) li:hover{background:0 0}.explanation-box.dark table,.explanation-content table.explanation-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:14px}.explanation-box.dark table td,.explanation-box.dark table th{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:.5px solid rgba(255,255,255,.06)}.explanation-box.dark table th{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.3);padding-bottom:8px;width:50%}.explanation-box.dark table td{color:rgba(255,255,255,.75);line-height:1.7}.explanation-box.dark table tr:last-child td{border-bottom:none}.explanation-box .katex{font-size:1.21rem!important}.explanation-box.dark .katex{color:var(--ink-800)}.col-resize-handle{position:absolute;top:0;right:-2px;bottom:0;width:5px;cursor:col-resize;z-index:5;background:0 0;transition:background var(--dur-fast)}.col-resize-handle:active,.col-resize-handle:hover{background:rgba(0,114,255,.3)}.explanation-btn-slot{margin-top:4px}.check-answer-wrap{margin-top:16px}.check-answer-wrap .action-btn,.check-answer-wrap .check-actions-row{animation:fadeUp var(--dur-med) var(--ease-out) both}.blank-nudge{font-size:13px;color:var(--text-muted,#888);margin-top:8px;animation:fadeUp .2s ease-out both}.grading-fail-notice{font-size:13px;color:var(--text-muted,#888);margin-top:10px;line-height:1.45}.inline-result{margin-top:12px}.inline-result:empty{display:none}.inline-result-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-400);margin-bottom:10px}.inline-result-card{border-radius:var(--r-lg);border:1px solid var(--ink-200);background:var(--ink-50);padding:14px 16px;animation:expand-in var(--dur-med) var(--ease-out) both}.inline-result-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.inline-result-status{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 10px;border-radius:var(--r-pill)}.inline-result-status.correct{background:var(--correct-bg);color:#1b7a3d}.inline-result-status.incorrect{background:var(--incorrect-bg);color:#b91c1c}.inline-result-status.partial{background:#fef3c7;color:#92400e}.inline-result-score{font-size:14px;font-weight:600;color:var(--ink-700)}.inline-result-feedback{font-size:13px;line-height:1.6;color:var(--ink-600)}.inline-result-feedback p{margin:0 0 4px}.inline-result-feedback p:last-child{margin-bottom:0}.inline-result .katex{font-size:1.21rem!important}.inline-result-parts{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.inline-result-part-label{font-size:12px;font-weight:600}.inline-result-part-label.correct{color:#1b7a3d}.inline-result-part-label.incorrect{color:#b91c1c}.inline-result-part-label.partial{color:#92400e}.inline-result-part-feedback{font-size:13px;color:var(--ink-600);margin-top:2px;line-height:1.5}.inline-result-card .explanation-box{margin-top:10px}.ai-help-btn{flex-shrink:0}.check-actions-row{display:flex;align-items:center;gap:8px}.blank-warn-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;transition:opacity .2s ease;padding:24px}.blank-warn-overlay.visible{opacity:1}.blank-warn-modal{background:var(--white);border-radius:var(--r-xl);padding:32px;max-width:420px;width:100%;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.2);animation:expand-in var(--dur-med) var(--ease-out) both}.blank-warn-title{font-family:var(--font-prose);font-style:italic;font-size:22px;font-weight:400;color:var(--ink-900);margin:0 0 8px}.blank-warn-text{font-size:14px;color:var(--ink-600);line-height:1.65;margin:0 0 24px}.blank-warn-actions{display:flex;gap:10px;justify-content:center}.blank-warn-back{padding:10px 24px;border-radius:var(--r-pill);border:1.5px solid var(--border);background:var(--white);color:var(--ink-700);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--dur-fast)}.blank-warn-back:hover{border-color:var(--ink-300);background:var(--ink-50)}.blank-warn-submit{padding:10px 24px;border-radius:var(--r-pill);border:none;background:var(--brand);color:var(--white);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--dur-fast)}.blank-warn-submit:hover{background:var(--brand-dark)}.completion-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .25s ease;padding:24px}.completion-overlay.visible{opacity:1;pointer-events:auto}.completion-modal{background:var(--white);border-radius:var(--r-xl);padding:36px 32px;max-width:400px;width:100%;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.2);transform:translateY(12px) scale(.97);transition:transform .35s var(--spring-bouncy)}.completion-overlay.visible .completion-modal{transform:translateY(0) scale(1)}.completion-icon{width:56px;height:56px;margin:0 auto 16px;background:var(--correct-bg);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--correct)}.completion-icon svg{width:28px;height:28px;stroke-width:2.2}.completion-title{font-family:var(--font-prose);font-style:italic;font-size:22px;font-weight:400;color:var(--ink-900);margin-bottom:6px}.completion-score{font-size:15px;font-weight:600;color:var(--ink-700);margin-bottom:4px}.completion-date{font-size:13px;color:var(--ink-400);margin-bottom:24px}.completion-actions{display:flex;gap:10px;justify-content:center}.completion-actions .action-btn{flex:1}.completion-actions .action-btn.primary{background:var(--brand);color:var(--white);border-color:var(--brand)}.completion-actions .action-btn.primary:hover{background:var(--brand-dark);border-color:var(--brand-dark)}#submit-wrap{position:absolute;bottom:20px;right:20px;display:flex;align-items:center;gap:12px;padding:8px 8px 8px 14px;background:var(--card-bg,#fff);border-radius:var(--r-pill);box-shadow:0 4px 24px rgba(0,0,0,.1),0 1px 4px rgba(0,0,0,.06);z-index:10;flex-shrink:0}#submit-progress-ring{position:relative;width:38px;height:38px;flex-shrink:0}#submit-progress-ring svg{width:38px;height:38px;transform:rotate(-90deg)}#submit-progress-ring .progress-bg{fill:none;stroke:var(--ink-100,#e5e5e5);stroke-width:3}#submit-progress-ring .progress-fill{fill:none;stroke:var(--brand,#0072ff);stroke-width:3;stroke-linecap:round;stroke-dasharray:97.39;stroke-dashoffset:97.39;transition:stroke-dashoffset .35s ease}.progress-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--ink-500,#6b7280);letter-spacing:-.02em}#submit-btn{display:flex;align-items:center;gap:8px;background:var(--brand);color:var(--white);font-size:15px;font-weight:700;padding:11px 32px;border-radius:var(--r-pill);box-shadow:0 4px 20px rgba(0,114,255,.3);transition:all var(--dur-fast) var(--spring);letter-spacing:.01em}#submit-btn:hover:not(:disabled){background:var(--brand-dark);transform:translateY(-1px);box-shadow:0 6px 24px rgba(0,114,255,.35)}#submit-btn:active:not(:disabled){transform:translateY(0) scale(.97);box-shadow:0 2px 10px rgba(0,114,255,.25)}#submit-btn:disabled{background:var(--ink-200);color:var(--ink-400);box-shadow:none;cursor:not-allowed}#submit-btn.grading-active{background:var(--brand);color:var(--white);cursor:pointer;animation:grading-pulse 2s ease-in-out infinite}#submit-btn.grading-done{background:#16a34a;color:var(--white);cursor:pointer;box-shadow:0 4px 20px rgba(22,163,74,.3)}@keyframes grading-pulse{0%,100%{opacity:1}50%{opacity:.7}}#carousel-wrap{display:none}#carousel-wrap.active{display:flex;flex-direction:column;height:100%}.quiz-scroll:has(#carousel-wrap.active){overflow:hidden;padding:0;display:flex;flex-direction:column}.quiz-scroll:has(#carousel-wrap.active) .quiz-inner{flex:1;display:flex;flex-direction:column;min-height:0}#stacked-wrap.hidden{display:none}.carousel-viewport{overflow:hidden;position:relative;flex:1;min-height:0}.carousel-track{display:flex;height:100%;transition:transform var(--dur-slow) var(--ease-out);will-change:transform}.carousel-slide{min-width:100%;flex-shrink:0;height:100%;overflow-y:auto;overscroll-behavior:contain;padding:32px 32px 40px}.carousel-slide .question-card{margin-bottom:0;box-shadow:none;border:none;animation:none;opacity:1}.carousel-nav{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-top:1px solid var(--ink-100);flex-shrink:0;background:var(--card-bg);gap:12px}.carousel-counter{font-size:var(--text-base);font-weight:500;color:var(--ink-500);text-align:center;flex:1}.carousel-counter span{font-weight:700;color:var(--ink-800)}.nav-btn{display:flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--r-pill);font-size:var(--text-md);font-weight:600;border:1.5px solid var(--border);color:var(--ink-700);background:var(--white);transition:all var(--dur-fast) var(--spring);box-shadow:var(--shadow-sm)}.nav-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand);transform:translateX(var(--nudge,0))}.nav-btn.prev:hover:not(:disabled){--nudge:-2px}.nav-btn.next:hover:not(:disabled){--nudge:2px}.nav-btn:disabled{opacity:.4;cursor:not-allowed}.nav-btn.next-primary{background:var(--brand);border-color:var(--brand);color:var(--white)}.nav-btn.next-primary:hover:not(:disabled){background:var(--brand-dark);color:var(--white)}.progress-dots{display:flex;justify-content:center;gap:5px;margin-top:12px;flex-wrap:wrap}.dot{width:7px;height:7px;border-radius:50%;background:var(--ink-200);transition:all var(--dur-med) var(--spring);cursor:pointer}.dot.answered{background:var(--brand-mid)}.dot.current{background:var(--brand);transform:scale(1.5)}.dot.correct{background:var(--correct)}.dot.wrong{background:var(--incorrect)}#results-screen{display:none;animation:cardIn var(--dur-slow) var(--ease-out) both}#results-screen.visible{display:block}.results-hero{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--border);box-shadow:var(--shadow-md);padding:40px 32px;text-align:center;margin-bottom:24px}.results-score-ring{width:120px;height:120px;border-radius:50%;margin:0 auto 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.results-score-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.results-score-ring .ring-bg{fill:none;stroke:var(--ink-100);stroke-width:7}.results-score-ring .ring-fill{fill:none;stroke:var(--brand);stroke-width:7;stroke-linecap:round;stroke-dasharray:283;stroke-dashoffset:283;transition:stroke-dashoffset 1.2s var(--ease-out)}.results-score-ring .ring-fill.animate{stroke-dashoffset:var(--offset,0)}.ring-number{font-size:28px;font-weight:700;color:var(--ink-900);position:relative;z-index:1;line-height:1}.ring-label{font-size:12px;color:var(--ink-500);position:relative;z-index:1}.results-title{font-family:var(--font-prose);font-size:28px;font-style:italic;color:var(--ink-900);margin-bottom:6px}.results-subtitle{font-size:15px;color:var(--ink-500);margin-bottom:28px}.results-stats{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.stat-pill{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--ink-50);border-radius:var(--r-pill);border:1px solid var(--border)}.stat-pill-icon{font-size:16px;line-height:1}.stat-pill-label{font-size:12px;color:var(--ink-500)}.stat-pill-value{font-size:14px;font-weight:700;color:var(--ink-800)}.breakdown-section{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--border);overflow:hidden;margin-bottom:16px}.breakdown-header{padding:16px 20px;border-bottom:1px solid var(--border);font-size:14px;font-weight:600;color:var(--ink-800);display:flex;align-items:center;gap:8px}.breakdown-item{padding:14px 20px;border-bottom:1px solid var(--ink-100);display:flex;align-items:flex-start;gap:12px;opacity:0;animation:cardIn var(--dur-slow) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 50ms + 200ms)}.breakdown-item:last-child{border-bottom:none}.breakdown-status-dot{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.breakdown-status-dot.correct{background:var(--correct-bg)}.breakdown-status-dot.incorrect{background:var(--incorrect-bg)}.breakdown-status-dot svg{width:12px;height:12px}.breakdown-q-text{font-family:var(--font-prose);font-size:15px;color:var(--ink-800);margin-bottom:4px;line-height:1.5}.breakdown-answer-row{display:flex;gap:16px;font-size:12px;color:var(--ink-500);flex-wrap:wrap}.breakdown-answer{display:flex;align-items:center;gap:4px}.breakdown-answer strong{font-weight:600;color:var(--ink-700)}.breakdown-feedback{margin-top:6px;font-size:13px;line-height:1.6;color:var(--ink-600);padding:12px 14px;background:var(--ink-50);border-radius:var(--r-md);border:1px solid var(--ink-200)}.breakdown-feedback p{margin:0 0 4px}.breakdown-feedback p:last-child{margin-bottom:0}#retry-btn{display:flex;align-items:center;gap:8px;margin:24px auto 0;background:var(--white);color:var(--ink-700);border:1.5px solid var(--ink-200);font-size:15px;font-weight:600;padding:11px 28px;border-radius:var(--r-pill);box-shadow:var(--shadow-sm);transition:all var(--dur-fast) var(--spring)}#retry-btn:hover{border-color:var(--ink-300);background:var(--ink-50);transform:translateY(-1px);box-shadow:var(--shadow-md)}#loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:16px;animation:fadeUp var(--dur-med) var(--ease-out) both}.loader{width:28px;height:28px;border:2.5px solid var(--ink-200);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:var(--text-md);color:var(--ink-400);font-weight:500}.swipe-hint{text-align:center;font-size:var(--text-sm);color:var(--ink-400);margin-top:10px;display:none}@media (max-width:600px){.swipe-hint{display:block}}@media (max-width:900px){.chat-wrap{display:none}#chat-toggle{display:none}}@media (max-width:600px){.shell{padding:8px;gap:8px}.main-card{border-radius:var(--r-2xl)}.quiz-scroll{padding:20px 16px 28px}.carousel-nav{padding:10px 16px}#back-to-archive{width:28px;height:28px}.results-hero{padding:28px 16px}.card-header{padding:6px 12px}#submit-wrap{bottom:14px;right:14px;padding:6px 6px 6px 10px;gap:10px}#submit-btn{padding:9px 22px;font-size:14px}.top-bar-role,.top-bar-tier{display:none}.top-bar-title{font-size:13px}.header-card{flex-wrap:wrap;gap:8px;border-radius:var(--r-2xl);padding:14px 16px}.header-card-left{flex:1;min-width:0}.header-card-right{flex-basis:auto}#header-meta{flex-wrap:wrap;gap:6px}.tooltip-bubble{display:none!important}}.grading-spinner{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-500)}.grading-spinner .mini-loader{width:14px;height:14px;border:2px solid var(--ink-200);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}.quiz-inner{-webkit-user-select:none;user-select:none}.frq-textarea,.gq-textarea{-webkit-user-select:text;user-select:text}.stats-panel{position:absolute;top:0;right:0;bottom:0;width:320px;background:var(--card-bg);border-left:1px solid var(--ink-100);z-index:20;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s var(--spring-bouncy)}.stats-panel.open{transform:translateX(0)}.stats-panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid var(--ink-100)}.stats-panel-header h3{font-size:var(--text-md);font-weight:600;color:var(--ink-800);margin:0}.stats-panel-body{flex:1;overflow-y:auto;padding:16px 20px}.stats-empty{text-align:center;color:var(--ink-400);padding:40px 16px;font-size:var(--text-sm);line-height:1.6}.stats-current{margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--ink-100,#e8e8e8)}.stats-current-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.stats-current-label{font-size:12px;font-weight:600;color:var(--ink-600);text-transform:uppercase;letter-spacing:.3px}.stats-current-progress{font-size:12px;color:var(--ink-400)}.stats-current-score{display:flex;align-items:baseline;gap:10px}.stats-current-pts{font-size:13px;color:var(--ink-400)}.stats-current-note{font-size:12px;color:var(--ink-400);margin-top:6px}.stats-summary-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:6px;text-align:center}.stats-big-num{font-size:26px;font-weight:700;color:var(--ink-900);line-height:1.1}.stats-big-num.good{color:#2e7d32}.stats-big-num.mid{color:#e65100}.stats-big-num.low{color:#c62828}.stats-stat-label{font-size:11px;color:var(--ink-400);margin-top:2px}.stats-completed-note{font-size:11px;color:var(--ink-300);text-align:center;margin-bottom:18px}.stats-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.stats-card{background:var(--ink-100,#e8e8e8);border-radius:var(--r-lg);padding:12px 14px}.stats-card-label{font-size:11px;color:var(--ink-400);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.stats-card-value{font-size:20px;font-weight:700;color:var(--ink-900)}.stats-card-value.good{color:#2e7d32}.stats-card-value.mid{color:#e65100}.stats-card-value.low{color:#c62828}.stats-attempts-title{font-size:12px;color:var(--ink-400);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.stats-attempt-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--ink-50);font-size:var(--text-sm)}.stats-attempt-row:last-child{border-bottom:none}.stats-attempt-num{font-weight:600;color:var(--ink-500);min-width:24px}.stats-attempt-score{font-weight:700;margin-left:auto}.stats-attempt-date{color:var(--ink-400);font-size:12px}.stats-attempt-auto{font-size:11px;color:#e65100;background:#fff3e0;padding:1px 6px;border-radius:4px}@media (max-width:600px){.stats-panel{width:100%}.settings-panel{width:100%}}.educator-btn{font-size:12px;font-weight:600;color:var(--brand);background:rgba(0,114,255,.08);border:1px solid rgba(0,114,255,.18);padding:6px 14px;border-radius:var(--r-pill);cursor:pointer;letter-spacing:.02em;white-space:nowrap;transition:background var(--dur-fast)}.educator-btn:hover{background:rgba(0,114,255,.14)}.settings-panel{position:absolute;top:0;right:0;bottom:0;width:320px;background:var(--card-bg);border-left:1px solid var(--ink-100);z-index:20;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s var(--spring-bouncy)}.settings-panel.open{transform:translateX(0)}.settings-panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid var(--ink-100)}.settings-panel-header h3{font-size:var(--text-md);font-weight:600;color:var(--ink-800);margin:0}.settings-panel-body{flex:1;overflow-y:auto;padding:16px 20px}.settings-mode-banner{padding:12px 14px;border-radius:var(--r-lg);margin-bottom:12px;background:var(--ink-50)}.settings-mode-banner.practice{background:#eef6ff}.settings-mode-banner.test{background:#fff4ee}.settings-mode-label{font-size:14px;font-weight:700;color:var(--ink-800);margin-bottom:2px}.settings-mode-banner.practice .settings-mode-label{color:var(--brand)}.settings-mode-banner.test .settings-mode-label{color:#d35400}.settings-mode-desc{font-size:12px;color:var(--ink-400)}.setting-mode-badge{display:inline-block;font-size:10px;font-weight:600;color:var(--ink-400);background:var(--ink-50);padding:1px 6px;border-radius:4px;margin-left:4px;vertical-align:middle}.setting-row.mode-controlled{opacity:.55}.setting-row.mode-controlled .setting-name{color:var(--ink-400)}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--ink-50);opacity:0;transform:translateY(8px);animation:settingIn .3s var(--ease-out) both}.setting-row:last-child{border-bottom:none}.setting-info{flex:1;min-width:0;padding-right:12px}.setting-name{font-size:13px;font-weight:600;color:var(--ink-800);margin-bottom:2px}.setting-desc{font-size:11px;color:var(--ink-400);line-height:1.4}.setting-value{font-size:13px;font-weight:600;color:var(--ink-600);white-space:nowrap;flex-shrink:0}.setting-value.on{color:var(--correct)}.setting-value.off{color:var(--ink-400)}.setting-toggle{position:relative;width:40px;height:22px;background:var(--ink-200);border-radius:11px;cursor:pointer;flex-shrink:0;transition:background .2s;border:none;padding:0}.setting-toggle.on{background:var(--brand)}.setting-toggle::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;background:var(--white);border-radius:50%;transition:transform .2s var(--spring);box-shadow:0 1px 3px rgba(0,0,0,.15)}.setting-toggle.on::after{transform:translateX(18px)}.setting-lock-icon{display:inline-flex;align-items:center;vertical-align:middle;margin-left:5px;color:var(--ink-400);position:relative;cursor:default}.setting-lock-icon svg{width:12px;height:12px}.settings-educator-note{margin-top:16px;padding:14px 16px;background:var(--ink-50);border-radius:var(--r-lg);border:1px dashed var(--ink-200)}.settings-educator-note p{font-size:12px;color:var(--ink-500);line-height:1.5;margin-bottom:10px}.settings-educator-note .pricing-link{font-size:12px;font-weight:600;color:var(--brand);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline;text-underline-offset:2px}@keyframes settingIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.stats-gate{text-align:center;padding:40px 20px}.stats-gate-icon{width:48px;height:48px;margin:0 auto 16px;background:var(--ink-100);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ink-400)}.stats-gate-icon svg{width:22px;height:22px}.stats-gate-title{font-size:15px;font-weight:600;color:var(--ink-800);margin-bottom:6px}.stats-gate-body{font-size:13px;color:var(--ink-400);line-height:1.5;margin-bottom:16px}.stats-gate-btn{font-size:13px;font-weight:600;color:var(--brand);background:rgba(0,114,255,.08);border:none;padding:8px 18px;border-radius:var(--r-pill);cursor:pointer;transition:background var(--dur-fast)}.stats-gate-btn:hover{background:rgba(0,114,255,.14)}.stats-back-btn{display:inline-flex;align-items:center;gap:4px;background:0 0;border:none;font:inherit;font-size:var(--text-sm);font-weight:500;color:var(--ink-400);cursor:pointer;padding:4px 0;margin-bottom:8px;transition:color var(--dur-fast)}.stats-back-btn:hover{color:var(--ink-700)}.stats-attempt-quiz-title{flex:1;font-size:var(--text-xs, 12px);color:var(--ink-400);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-loading{display:flex;align-items:center;gap:8px;padding:24px 0;justify-content:center;color:var(--ink-400);font-size:var(--text-sm)}.stats-mode-badge{display:inline-block;padding:1px 7px;border-radius:var(--r-md,6px);font-size:11px;font-weight:600;line-height:1.5}.stats-mode-practice{background:rgba(0,114,255,.1);color:#1565c0}.stats-mode-test{background:rgba(230,81,0,.1);color:#e65100}.stats-row-clickable{cursor:pointer;transition:background var(--dur-fast, 120ms);border-radius:var(--r-lg,10px);padding-left:10px;padding-right:10px;margin:0 -10px}.stats-row-clickable:hover{background:var(--ink-100,#e8e8e8)}.stats-row-arrow{color:var(--ink-300);display:flex;margin-left:auto}.stats-attempt-status{font-size:12px;color:var(--ink-400);margin-left:auto}.stats-status-progress{color:var(--brand,#0072ff);font-weight:600}.stats-fade-lock{position:relative;margin-top:-8px}.stats-fade-gradient{height:40px;background:linear-gradient(to bottom,transparent,var(--card-bg,#fff));pointer-events:none}.stats-lock-card{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:20px 16px;background:var(--ink-50,#f5f5f5);border-radius:var(--r-lg,10px);color:var(--ink-500);font-size:13px;line-height:1.5}.stats-lock-card svg{color:var(--ink-300)}.stats-rewind-header{margin-bottom:16px}.stats-rewind-title{font-size:15px;font-weight:700;color:var(--ink-900);margin-bottom:6px}.stats-rewind-meta{display:flex;align-items:center;gap:8px;font-size:12px}.stats-rewind-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px;border:none;border-radius:var(--r-lg,10px);background:var(--brand,#0072ff);color:#fff;font:inherit;font-size:var(--text-sm, 14px);font-weight:600;cursor:pointer;transition:opacity var(--dur-fast, 120ms);margin-bottom:16px}.stats-rewind-btn:hover{opacity:.85}.stats-rewind-desc{font-size:12px;color:var(--ink-400);text-align:center;margin:6px 0 0;line-height:1.4}.stats-rewind-action{margin-bottom:16px}.stats-rewind-questions{display:flex;flex-direction:column;gap:2px}.stats-rewind-q{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--ink-50,#f0f0f0);font-size:var(--text-sm, 14px)}.stats-rewind-q:last-child{border-bottom:none}.stats-rewind-qnum{font-weight:700;color:var(--ink-600);min-width:28px}.stats-rewind-qtype{font-size:11px;font-weight:600;color:var(--brand,#6e42c1);background:rgba(110,66,193,.08);padding:1px 6px;border-radius:3px}.stats-rewind-icon{display:flex}.stats-rewind-icon.correct{color:#2e7d32}.stats-rewind-icon.wrong{color:#c62828}.stats-rewind-score{font-weight:700;margin-left:auto}.stats-rewind-raw{font-size:12px;color:var(--ink-400)}.rewind-banner{display:flex;align-items:center;gap:8px;padding:10px 16px;background:rgba(0,114,255,.08);border:1px solid rgba(0,114,255,.2);border-radius:var(--r-lg,10px);color:var(--brand,#0072ff);font-size:var(--text-sm, 14px);font-weight:500;margin-bottom:12px}.rewind-banner button{margin-left:auto;background:0 0;border:1px solid rgba(0,114,255,.3);border-radius:var(--r-md,6px);color:var(--brand,#0072ff);font:inherit;font-size:12px;font-weight:600;padding:4px 12px;cursor:pointer;transition:background var(--dur-fast, 120ms)}.rewind-banner button:hover{background:rgba(0,114,255,.08)}.chat-gate{position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse at center 40%,rgba(9,16,31,.4) 0,rgba(4,9,9,.7) 70%);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 28px;text-align:center;z-index:10}.chat-gate-icon{width:48px;height:48px;background:rgba(0,114,255,.12);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--brand);margin-bottom:16px}.chat-gate-icon svg{width:22px;height:22px}.chat-gate-title{font-size:15px;font-weight:600;color:var(--white);margin-bottom:8px}.chat-gate-body{font-size:13px;color:rgba(255,255,255,.45);line-height:1.55;margin-bottom:20px;max-width:260px}.chat-gate-btn{font-size:13px;font-weight:600;color:var(--brand);background:rgba(0,114,255,.08);border:1px solid rgba(0,114,255,.18);padding:8px 20px;border-radius:var(--r-pill);cursor:pointer;transition:background var(--dur-fast)}.chat-gate-btn:hover{background:rgba(0,114,255,.14)}.pricing-overlay{position:fixed;inset:0;z-index:1000;background:rgba(12,13,15,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .25s ease}.pricing-overlay.open{opacity:1;pointer-events:auto}.pricing-modal{background:var(--white);border-radius:32px;max-width:980px;width:100%;max-height:90vh;overflow-y:auto;padding:40px 36px;position:relative;transform:translateY(16px) scale(.97);transition:transform .35s var(--spring-bouncy);box-shadow:0 24px 80px rgba(0,0,0,.2)}.pricing-overlay.open .pricing-modal{transform:translateY(0) scale(1)}.pricing-close{position:absolute;top:16px;right:16px}.pricing-header{text-align:center;margin-bottom:36px}.pricing-badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 14px;border-radius:var(--r-pill);background:var(--ink-100);color:var(--ink-500);margin-bottom:14px}.pricing-title{font-family:var(--font-prose);font-size:28px;font-weight:400;color:var(--ink-900);margin-bottom:8px}.pricing-title em{font-style:italic;color:var(--brand)}.pricing-subtitle{font-size:15px;color:var(--ink-500);line-height:1.5}.pricing-cards{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:16px;align-items:start}.pricing-card{border:1.5px solid var(--ink-200);border-radius:var(--r-2xl);padding:28px 24px;position:relative;display:flex;flex-direction:column}.pricing-card.educator{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand),0 8px 32px rgba(0,114,255,.12);overflow:visible}.pricing-card.educator>:not(.educator-shader-canvas):not(.pricing-card-popular){position:relative;z-index:1}.educator-shader-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;border-radius:inherit;pointer-events:none}.pricing-card-popular{position:absolute;top:-11px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--brand);color:var(--white);padding:4px 14px;border-radius:var(--r-pill);white-space:nowrap}.pricing-card-top{margin-bottom:20px}.pricing-tier{display:block;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-500);margin-bottom:6px}.pricing-price{display:block;font-size:36px;font-weight:700;color:var(--ink-900);letter-spacing:-.02em;line-height:1;margin-bottom:4px}.pricing-mo{font-size:16px;font-weight:500;color:var(--ink-400)}.pricing-period{font-size:12px;color:var(--ink-400)}.pricing-features{list-style:none;margin:0 0 24px;padding:0;flex:1}.pricing-features li{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--ink-700);line-height:1.4;padding:6px 0}.pricing-features li svg{width:15px;height:15px;color:var(--correct);flex-shrink:0;margin-top:1px}.educator .pricing-features li svg{color:var(--brand)}.pricing-card-action{margin-top:auto}.pricing-current{display:block;text-align:center;font-size:13px;font-weight:500;color:var(--ink-400);padding:10px 0}.pricing-btn{display:block;text-align:center;width:100%;padding:12px 20px;font-size:14px;font-weight:600;border-radius:var(--r-pill);border:1.5px solid var(--ink-900);background:0 0;color:var(--ink-900);text-decoration:none;cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),transform var(--dur-fast)}.pricing-btn:hover{background:var(--ink-900);color:var(--white);transform:scale(1.02)}.pricing-btn.primary{background:var(--brand);border-color:var(--brand);color:var(--white)}.pricing-btn.primary:hover{background:var(--brand-dark);border-color:var(--brand-dark);transform:none}.pricing-btn.disabled{border-color:var(--ink-200);color:var(--ink-400);cursor:default;pointer-events:none;opacity:.6}.pricing-coming-soon{display:block;text-align:center;font-size:11px;color:var(--ink-400);font-style:italic;margin-top:8px}.pricing-soon-badge{display:inline-block;font-size:10px;font-weight:600;color:var(--ink-400);background:var(--ink-100,#f0f0f0);padding:1px 6px;border-radius:999px;vertical-align:middle;margin-left:4px}.pricing-trust{text-align:center;font-size:11px;color:var(--ink-400);margin-top:14px;line-height:1.4}.pricing-disclaimer{text-align:center;font-size:13px;color:var(--ink-400);line-height:1.6;margin-top:36px;padding:24px 32px;background:var(--ink-50);border-radius:var(--r-lg)}.pricing-disclaimer strong{color:var(--ink-600)}.pricing-disclaimer a{color:var(--brand);text-decoration:none}.pricing-disclaimer a:hover{text-decoration:underline}@media (max-width:800px){.pricing-cards{grid-template-columns:1fr;max-width:400px;margin:0 auto}.pricing-card.educator{order:-1}.pricing-modal{padding:28px 20px;border-radius:24px}}.feature-gate-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:rgba(12,13,15,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .2s ease}.feature-gate-overlay.visible{opacity:1}.feature-gate-modal{position:relative;background:var(--white);border-radius:var(--r-xl);padding:36px 32px 28px;max-width:440px;width:calc(100% - 40px);text-align:center;box-shadow:0 24px 64px rgba(0,0,0,.18),0 4px 16px rgba(0,0,0,.08);animation:gateIn .3s var(--ease-out) both}.feature-gate-overlay:not(.visible) .feature-gate-modal{animation:none}@keyframes gateIn{from{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.feature-gate-close{position:absolute;top:14px;right:14px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:0 0;color:var(--ink-400);border-radius:var(--r-pill);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.feature-gate-close:hover{background:var(--ink-50);color:var(--ink-600)}.feature-gate-close svg{width:16px;height:16px}.feature-gate-icon{width:48px;height:48px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;background:var(--ink-50);border-radius:var(--r-pill)}.feature-gate-icon svg{width:22px;height:22px;color:var(--brand)}.feature-gate-title{font-family:var(--font-sans);font-size:17px;font-weight:700;color:var(--ink-900);margin-bottom:8px}.feature-gate-body{font-family:var(--font-sans);font-size:13px;color:var(--ink-500);line-height:1.55;margin-bottom:4px}.feature-gate-subtext{font-family:var(--font-sans);font-size:12px;color:var(--ink-400);margin-bottom:20px}.feature-gate-actions{display:flex;flex-direction:column;gap:8px}.feature-gate-btn{display:block;width:100%;padding:11px 20px;font-family:var(--font-sans);font-size:13px;font-weight:600;border-radius:var(--r-pill);cursor:pointer;text-align:center;text-decoration:none;transition:all var(--dur-fast)}.feature-gate-btn.primary{background:var(--brand);color:var(--white);border:1.5px solid var(--brand)}.feature-gate-btn.primary:hover{background:var(--brand-hover,#005ce6);border-color:var(--brand-hover,#005ce6)}.feature-gate-btn.secondary{background:var(--white);color:var(--ink-700);border:1.5px solid var(--ink-200)}.feature-gate-btn.secondary:hover{background:var(--ink-50);border-color:var(--ink-300)}.feature-gate-email{text-align:left;margin-bottom:20px;border:1px solid var(--ink-100);border-radius:var(--r-lg);overflow:hidden}.feature-gate-email-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--ink-50);border-bottom:1px solid var(--ink-100)}.feature-gate-email-label{font-family:var(--font-sans);font-size:11px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:.03em}.feature-gate-copy-btn{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-sans);font-size:11px;font-weight:600;color:var(--brand);background:0 0;border:none;cursor:pointer;padding:2px 6px;border-radius:var(--r-sm);transition:background var(--dur-fast),color var(--dur-fast)}.feature-gate-copy-btn:hover{background:rgba(0,114,255,.08)}.feature-gate-copy-btn.copied{color:var(--correct)}.feature-gate-copy-btn svg{width:13px;height:13px}.feature-gate-email-body{font-family:var(--font-sans);font-size:12px;color:var(--ink-600);line-height:1.6;padding:12px 14px;margin:0;white-space:pre-wrap;word-wrap:break-word;background:var(--white);max-height:180px;overflow-y:auto}.feature-gate-nerdnotes{margin-top:16px;padding-top:14px;border-top:1px solid var(--ink-100);font-family:var(--font-sans);font-size:11px;color:var(--ink-400);line-height:1.5}.feature-gate-nerdnotes a{color:var(--brand);font-weight:600;text-decoration:none}.feature-gate-nerdnotes a:hover{text-decoration:underline}.ubq-form-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:rgba(12,13,15,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .25s ease}.ubq-form-overlay.visible{opacity:1}.ubq-form-modal{position:relative;background:var(--white);border-radius:var(--r-xl);padding:36px 32px 28px;max-width:480px;width:calc(100% - 40px);box-shadow:0 24px 64px rgba(0,0,0,.18),0 4px 16px rgba(0,0,0,.08);animation:gateIn .3s var(--ease-out) both;max-height:90vh;overflow-y:auto}.ubq-form-modal-sm{max-width:420px}.ubq-form-overlay:not(.visible) .ubq-form-modal{animation:none}.ubq-form-close{position:absolute;top:14px;right:14px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:0 0;color:var(--ink-400);border-radius:var(--r-pill);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.ubq-form-close:hover{background:var(--ink-50);color:var(--ink-600)}.ubq-form-close svg{width:16px;height:16px}.ubq-form-header{text-align:center;margin-bottom:20px}.ubq-form-header-icon{width:48px;height:48px;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;background:var(--brand-light);border-radius:var(--r-pill)}.ubq-form-header-icon svg{width:22px;height:22px;color:var(--brand)}.ubq-form-header-icon.report{background:var(--warning-bg)}.ubq-form-header-icon.report svg{color:var(--warning)}.ubq-form-title{font-family:var(--font-sans);font-size:18px;font-weight:700;color:var(--ink-900);margin-bottom:4px}.ubq-form-subtitle{font-family:var(--font-sans);font-size:13px;color:var(--ink-500);line-height:1.5}.ubq-form-progress{display:flex;justify-content:center;gap:6px;margin-bottom:20px}.ubq-form-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-200);transition:background var(--dur-fast),transform var(--dur-fast)}.ubq-form-dot.active{background:var(--brand);transform:scale(1.15)}.ubq-form-body{margin-bottom:16px}.ubq-form-label{display:block;font-family:var(--font-sans);font-size:12px;font-weight:600;color:var(--ink-600);margin-bottom:14px}.ubq-form-input,.ubq-form-select,.ubq-form-textarea{display:block;width:100%;margin-top:6px;padding:10px 14px;font-family:var(--font-sans);font-size:14px;color:var(--ink-800);background:var(--ink-50);border:1.5px solid var(--ink-200);border-radius:var(--r-md);transition:border-color var(--dur-fast),background var(--dur-fast)}.ubq-form-input:focus,.ubq-form-select:focus,.ubq-form-textarea:focus{outline:0;border-color:var(--brand);background:var(--white)}.ubq-form-input::placeholder,.ubq-form-textarea::placeholder{color:var(--ink-300)}.ubq-form-textarea{resize:vertical;min-height:60px}.ubq-form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23636b82' stroke-width='2' stroke-linecap='round'%3E%3Cpolyline points='3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.ubq-form-checkboxes{display:flex;flex-direction:column;gap:8px;margin-top:8px}.ubq-form-checkbox{display:flex;align-items:center;gap:10px;font-family:var(--font-sans);font-size:14px;color:var(--ink-700);cursor:pointer}.ubq-form-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand);cursor:pointer;flex-shrink:0}.ubq-form-radio-group{display:flex;flex-direction:column;gap:8px;margin-top:8px}.ubq-form-radio{display:flex;align-items:center;gap:10px;font-family:var(--font-sans);font-size:14px;color:var(--ink-700);cursor:pointer;padding:10px 14px;border:1.5px solid var(--ink-200);border-radius:var(--r-md);transition:border-color var(--dur-fast),background var(--dur-fast)}.ubq-form-radio:hover{background:var(--ink-50)}.ubq-form-radio:has(input:checked){border-color:var(--brand);background:var(--brand-light)}.ubq-form-radio input[type=radio]{width:16px;height:16px;accent-color:var(--brand);cursor:pointer;flex-shrink:0}.ubq-form-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px}.ubq-form-back-btn{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--ink-500);background:0 0;border:none;cursor:pointer;padding:10px 20px;border-radius:var(--r-pill);transition:color var(--dur-fast),background var(--dur-fast)}.ubq-form-back-btn:hover{color:var(--ink-700);background:var(--ink-50)}.ubq-form-next-btn,.ubq-form-submit-btn{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--white);background:var(--brand);border:none;padding:11px 28px;border-radius:var(--r-pill);cursor:pointer;transition:background var(--dur-fast),transform var(--dur-fast)}.ubq-form-next-btn:hover:not(:disabled),.ubq-form-submit-btn:hover:not(:disabled){background:var(--brand-dark)}.ubq-form-next-btn:active:not(:disabled),.ubq-form-submit-btn:active:not(:disabled){transform:scale(.97)}.ubq-form-submit-btn:disabled{opacity:.5;cursor:default}.ubq-form-error{font-family:var(--font-sans);font-size:12px;color:var(--incorrect);text-align:center;padding:0;max-height:0;overflow:hidden;transition:all var(--dur-fast)}.ubq-form-error.visible{padding:8px 0 0;max-height:40px}.ubq-form-char-count{font-family:var(--font-sans);font-size:11px;color:var(--ink-400);text-align:right;margin-top:4px}.ubq-form-char-count.met{color:var(--correct)}.ubq-form-success{text-align:center;padding:24px 0}.ubq-form-success-icon{width:56px;height:56px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;background:var(--correct-bg);border-radius:50%}.ubq-form-success-icon svg{width:28px;height:28px;color:var(--correct)}.ubq-form-success h3{font-family:var(--font-sans);font-size:18px;font-weight:700;color:var(--ink-900);margin-bottom:6px}.ubq-form-success p{font-family:var(--font-sans);font-size:13px;color:var(--ink-500);margin-bottom:20px}@media (max-width:500px){.ubq-form-modal{padding:28px 20px 24px;border-radius:20px}}.welcome-overlay{position:fixed;inset:0;z-index:10001;display:flex;align-items:center;justify-content:center;background:rgba(12,13,15,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .3s ease}.welcome-overlay.visible{opacity:1}.welcome-card{position:relative;background:var(--white);border-radius:var(--r-xl);max-width:480px;width:calc(100% - 40px);box-shadow:0 24px 64px rgba(0,0,0,.18),0 4px 16px rgba(0,0,0,.08);animation:gateIn .35s var(--ease-out) both;max-height:90vh;overflow:hidden}.welcome-overlay:not(.visible) .welcome-card{animation:none}.welcome-content{position:relative;padding:40px 36px 32px;overflow-y:auto;max-height:90vh}.welcome-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(to bottom,transparent,var(--white));border-radius:0 0 var(--r-xl) var(--r-xl);pointer-events:none;z-index:2;opacity:0;transition:opacity .3s ease}.welcome-card.scroll-fade::after{opacity:1}.welcome-scroll-hint{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:3;width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:var(--ink-900);border-radius:50%;box-shadow:0 2px 10px rgba(0,0,0,.15);opacity:0;transition:opacity .3s ease;pointer-events:none}.welcome-scroll-hint svg{width:14px;height:14px;color:var(--white);stroke-width:2.5}.welcome-scroll-hint.visible{opacity:1;animation:welcome-bounce 2s ease-in-out infinite}.welcome-scroll-hint.hidden{opacity:0}@keyframes welcome-bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(3px)}}.welcome-header{text-align:center;margin-bottom:28px}.welcome-logo{width:52px;height:52px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0c0d0f,#0a2a6b);border-radius:14px}.welcome-logo svg{width:24px;height:24px;color:var(--white)}.welcome-title{font-family:var(--font-sans);font-size:20px;font-weight:700;color:var(--ink-900);margin-bottom:6px}.welcome-shimmer{display:inline-block;background-color:var(--ink-900);background-image:linear-gradient(120deg,transparent 0,transparent 30%,rgba(255,255,255,.8) 50%,transparent 70%,transparent 100%);background-position:-10rem top;background-repeat:no-repeat;background-size:8rem 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:welcome-shimmer 3s ease infinite;animation-delay:1.5s}@keyframes welcome-shimmer{0%{background-position:-10rem top}60%{background-position:20rem top}100%{background-position:20rem top}}.welcome-byline{font-size:inherit;font-weight:inherit;color:var(--ink-400)}.welcome-subtitle{font-family:var(--font-sans);font-size:13px;color:var(--ink-500);line-height:1.5}.welcome-features{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.welcome-feature{display:flex;align-items:flex-start;gap:14px;cursor:default}.welcome-feature-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--ink-50);border-radius:10px;flex-shrink:0}.welcome-feature-icon svg{width:18px;height:18px;color:var(--ink-600)}.welcome-feature.educator .welcome-feature-icon{background:var(--brand-light)}.welcome-feature.educator .welcome-feature-icon svg{color:var(--brand)}.welcome-feature-title{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--ink-800);margin-bottom:2px}.welcome-feature-desc{font-family:var(--font-sans);font-size:12px;color:var(--ink-500);line-height:1.5}.welcome-trust{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:20px}.welcome-trust-label{font-family:var(--font-sans);font-size:11px;color:var(--ink-400);white-space:nowrap}.welcome-trust-pill{font-family:var(--font-sans);font-size:11px;font-weight:600;color:var(--ink-500);background:var(--ink-50);border:1px solid var(--ink-100);padding:4px 12px;border-radius:var(--r-pill);white-space:nowrap}.welcome-lite-note{font-family:var(--font-sans);font-size:11px;color:var(--ink-500);line-height:1.6;text-align:center;background:var(--ink-50);border:1px solid var(--ink-100);border-radius:var(--r-md);padding:10px 16px;margin-bottom:18px}.welcome-lite-note strong{color:var(--ink-700)}.welcome-agree{display:flex;align-items:flex-start;gap:10px;font-family:var(--font-sans);font-size:12px;color:var(--ink-600);line-height:1.5;cursor:pointer;margin-bottom:20px;padding:0 2px}.welcome-checkbox-hidden{position:absolute;opacity:0;width:0;height:0}.welcome-checkbox{width:18px;height:18px;border:2px solid var(--ink-300);border-radius:4px;flex-shrink:0;margin-top:1px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s cubic-bezier(.23,1,.32,1),border-color .2s cubic-bezier(.23,1,.32,1),transform .15s cubic-bezier(.23,1,.32,1)}.welcome-checkbox svg{width:14px;height:14px}.welcome-check-path{stroke-dasharray:20;stroke-dashoffset:20;transition:stroke-dashoffset .3s cubic-bezier(.23,1,.32,1) .05s}.welcome-checkbox-hidden:checked+.welcome-checkbox{background:var(--brand);border-color:var(--brand);transform:scale(1.1)}.welcome-checkbox-hidden:checked+.welcome-checkbox .welcome-check-path{stroke-dashoffset:0}.welcome-checkbox-hidden:checked+.welcome-checkbox{animation:check-pop .3s cubic-bezier(.23,1,.32,1)}@keyframes check-pop{0%{transform:scale(1)}40%{transform:scale(1.2)}100%{transform:scale(1)}}.welcome-agree a{color:var(--brand);text-decoration:none;font-weight:500}.welcome-agree a:hover{text-decoration:underline}.welcome-cta{display:block;width:100%;padding:13px 24px;font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--white);background:var(--brand);border:none;border-radius:var(--r-pill);cursor:pointer;transition:background var(--dur-fast),transform var(--dur-fast)}.welcome-cta:hover:not(:disabled){background:var(--brand-dark)}.welcome-cta:active:not(:disabled){transform:scale(.98)}.welcome-cta:disabled{opacity:.4;cursor:default}@media (prefers-reduced-motion:reduce){.welcome-shimmer{animation:none;-webkit-text-fill-color:var(--ink-900)}.welcome-scroll-hint{animation:none}}@media (max-width:500px){.welcome-content{padding:32px 24px 28px}.welcome-card{border-radius:20px}.welcome-title{font-size:18px}}.ubq-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(12px);background:var(--ink-900,#1a1a1a);color:#fff;font-size:13px;font-weight:500;padding:10px 20px;border-radius:999px;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;z-index:9999}.ubq-toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}.test-intro-stats{display:flex;align-items:center;justify-content:center;gap:24px;margin:20px 0 12px}.test-intro-stat{display:flex;flex-direction:column;align-items:center}.test-intro-stat-value{font-size:26px;font-weight:800;color:var(--ink-900);line-height:1.1}.test-intro-stat-label{font-size:11px;font-weight:500;color:var(--ink-400);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.test-intro-stat-divider{width:1px;height:32px;background:var(--border)}.test-intro-type-summary{font-size:13px;color:var(--ink-400);text-align:center;margin:0 0 20px}.test-intro-rules{display:flex;flex-direction:column;gap:12px;text-align:left;margin-bottom:24px}.test-intro-rule{display:flex;align-items:flex-start;gap:12px;font-size:13px;color:var(--ink-600);line-height:1.5}.test-intro-rule-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--ink-50);border-radius:10px;flex-shrink:0}.test-intro-rule-icon svg{width:18px;height:18px;color:var(--ink-600)}.grading-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);z-index:9000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s ease}.grading-overlay.visible{opacity:1;pointer-events:auto}.grading-modal{background:var(--bg-primary,#fff);border-radius:20px;max-width:480px;width:90%;max-height:85vh;overflow-y:auto;padding:32px 24px;position:relative;box-shadow:0 24px 80px rgba(0,0,0,.2);transform:translateY(12px);transition:transform .25s ease}.grading-overlay.visible .grading-modal{transform:translateY(0)}.grading-close{position:absolute;top:16px;right:16px;background:0 0;border:none;cursor:pointer;color:var(--ink-400);padding:4px}.grading-close svg{width:20px;height:20px}.grading-close:hover{color:var(--ink-700)}.grading-header{text-align:center;margin-bottom:28px}.grading-title{font-family:var(--font-prose, serif);font-style:italic;font-size:22px;color:var(--ink-900);margin:16px 0 4px}.grading-subtitle{font-size:13px;color:var(--ink-400);margin:0}.grading-progress-ring,.grading-score-ring{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;background:conic-gradient(var(--brand,#5046e5) calc(var(--pct,0) * 1%),var(--ink-100,#f0f0f0) 0);position:relative}.grading-progress-ring::after,.grading-score-ring::after{content:'';position:absolute;width:56px;height:56px;border-radius:50%;background:var(--bg-primary,#fff)}.grading-progress-text,.grading-score-value{position:relative;z-index:1;font-size:14px;font-weight:700;color:var(--ink-900)}.grading-score-value{font-size:18px}.grading-questions{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;margin-bottom:24px}.gq-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;border-radius:10px;background:var(--bg-primary,#fff);border:none;box-shadow:rgba(14,63,126,.04) 0 0 0 1px,rgba(42,51,69,.04) 0 1px 1px -.5px,rgba(42,51,70,.04) 0 3px 3px -1.5px,rgba(42,51,70,.04) 0 6px 6px -3px,rgba(14,63,126,.04) 0 12px 12px -6px;transition:background .3s,box-shadow .3s,transform .15s}.gq-clickable{cursor:pointer}.gq-clickable:hover{transform:translateY(-1px);box-shadow:rgba(14,63,126,.06) 0 0 0 1px,rgba(42,51,69,.06) 0 2px 2px -.5px,rgba(42,51,70,.06) 0 5px 5px -1.5px,rgba(42,51,70,.06) 0 10px 10px -3px,rgba(14,63,126,.06) 0 20px 20px -6px}.gq-item.gq-graded{background:#f0fdf4;box-shadow:0 0 0 1px rgba(22,163,74,.15),0 1px 2px rgba(22,163,74,.06)}.gq-item.gq-failed{background:#fef2f2;box-shadow:0 0 0 1px rgba(220,38,38,.15),0 1px 2px rgba(220,38,38,.06)}.gq-item.gq-grading{background:#fffbeb;box-shadow:0 0 0 1px rgba(217,119,6,.15),0 1px 2px rgba(217,119,6,.06)}.gq-label{font-weight:700;font-size:13px;color:var(--ink-900)}.gq-type{font-size:10px;font-weight:500;color:var(--ink-400);text-transform:uppercase;letter-spacing:.5px}.gq-detail{font-size:12px;font-weight:600;color:var(--ink-600)}.gq-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--ink-200);border-top-color:var(--brand,#5046e5);border-radius:50%;animation:gq-spin .8s linear infinite}@keyframes gq-spin{to{transform:rotate(360deg)}}.gq-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ink-200)}.gq-retry-btn{font-size:11px;font-weight:600;color:#d84315;background:0 0;border:1px solid #d84315;padding:2px 10px;border-radius:999px;cursor:pointer}.gq-retry-btn:hover{background:#fbe9e7}.gq-unavailable{font-size:10px;font-weight:600;color:#dc2626;display:block;text-align:center}.gq-item.gq-failed .gq-detail{display:flex;flex-direction:column;align-items:center;gap:4px}.grading-actions{display:flex;flex-direction:column;align-items:center;gap:10px}.grading-btn{font-size:14px;font-weight:600;padding:12px 28px;border-radius:999px;cursor:pointer;border:none;min-width:200px}.grading-btn-primary{background:var(--brand,#5046e5);color:#fff}.grading-btn-secondary{background:0 0;color:var(--ink-500);border:1.5px solid var(--ink-200)}.grading-hint{font-size:12px;color:var(--ink-400);text-align:center;margin:0 0 12px}.grading-note{font-size:13px;color:var(--ink-600);text-align:center;background:var(--ink-50,#fafafa);padding:10px 16px;border-radius:10px;border:1px solid var(--ink-100,#eee);line-height:1.5}