:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.45;font-synthesis:none;color-scheme:light;--bg: #f5f3fc;--surface: #fff;--subtle: #eeebf7;--text: #242035;--muted: #68617b;--line: #dfd9ee;--primary: #6941db;--primary-hover: #5630bd;--on-primary: #fff;--accent: #d4f56b;--good: #226e46;--good-bg: #e8f6ed;--bad: #b14035;--bad-bg: #fff0eb;--warning: #8a5b10;--shadow: 0 8px 32px #31225b0b;background:var(--bg);color:var(--text)}:root[data-theme=dark]{color-scheme:dark;--bg: #14121e;--surface: #211e30;--subtle: #2c273e;--text: #f0edf9;--muted: #b1a8c5;--line: #403750;--primary: #a98aff;--primary-hover: #baa1ff;--on-primary: #1c1338;--accent: #d4f56b;--good: #95e0b3;--good-bg: #213b30;--bad: #ffb1a6;--bad-bg: #42292e;--warning: #efca7e;--shadow: 0 8px 32px #0002}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 100% 0%,color-mix(in srgb,var(--primary) 9%,transparent),transparent 55%) no-repeat var(--bg);min-height:100svh}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{min-height:44px;border:1px solid var(--line);border-radius:12px;padding:10px 15px;background:var(--surface);color:var(--text);cursor:pointer;font-size:.82rem;font-weight:650;touch-action:manipulation}button:hover:not(:disabled){background:var(--subtle)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--primary);color:var(--on-primary);border-color:transparent;box-shadow:0 3px #00000012}button.primary:hover:not(:disabled){background:var(--primary-hover)}button[aria-pressed=true]{background:var(--subtle);color:var(--primary);border-color:var(--primary)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--primary);outline-offset:3px}a{color:inherit}h1,h2,h3,h4,p{margin:0}h1,h2,h3{line-height:1.2;letter-spacing:-.035em}h1{font-size:1.6rem;font-weight:800}h2{font-size:1.1rem;font-weight:750}h3{font-size:1rem;font-weight:700}small{font-size:.72rem}input:not([type=radio]),select{min-height:44px;max-width:100%;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:.88rem}input::placeholder{color:var(--muted)}label{font-size:.8rem;font-weight:550}summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px;font-size:.83rem;font-weight:650;list-style:none}summary::-webkit-details-marker{display:none}summary:before{content:"+";font-size:1.05rem;color:var(--primary)}details[open]>summary:before{content:"−"}.app{max-width:980px;margin:0 auto;padding:0 16px 28px}.masthead{display:flex;align-items:center;gap:12px;height:68px;border-bottom:1px solid var(--line);margin-bottom:18px}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;font-size:1.35rem;font-weight:850;letter-spacing:-.07em;line-height:1}.brand small{font-size:.5rem;letter-spacing:.15em;display:block;color:var(--muted);font-weight:650;margin-top:5px}.brand-period{color:var(--primary)}.brand-icon{height:36px;width:36px;display:grid;place-items:center;font-size:1.8rem;line-height:1;background:var(--primary);color:var(--accent);border-radius:11px;transform:rotate(-7deg)}.header-note{font-size:.7rem;color:var(--muted);margin-left:auto;display:none}.theme-toggle{margin-left:auto;width:44px;min-width:44px;padding:0;font-size:1.4rem;border-radius:50%;background:var(--surface)}.eyebrow{font-size:.63rem;letter-spacing:.12em;font-weight:750;color:var(--muted)}.intro{background:#6438d2;color:#fff;border-radius:20px;padding:22px;margin-bottom:22px;position:relative;overflow:hidden;box-shadow:var(--shadow)}.intro:after{content:"✳";position:absolute;right:-18px;top:-55px;font-size:11rem;color:#d4f56b20;pointer-events:none;line-height:1}.intro .eyebrow{color:#e4d8ff;font-size:.6rem}.intro h1{font-size:2rem;line-height:1.1;letter-spacing:-.055em;margin:10px 0 16px;position:relative;z-index:1;max-width:290px}.intro em{font-style:normal;color:#d4f56b}.pills{display:flex;flex-wrap:wrap;gap:7px}.pills span{font-size:.65rem;padding:5px 8px;background:#ffffff20;border:1px solid #ffffff20;border-radius:7px;font-weight:550}.slots-layout{display:flex;flex-direction:column;gap:22px}.slots-layout>aside{order:-1}.new-slot{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.new-slot h2{margin-bottom:13px}.new-slot form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.new-slot form label{grid-column:1/-1;font-size:.7rem;color:var(--muted)}.new-slot input{width:100%;min-width:0}.new-slot button{white-space:nowrap}.import{margin-top:10px;padding-top:2px;border-top:1px solid var(--line)}.import label{display:block;margin:4px 0 7px;color:var(--muted)}.import input{font-size:.7rem!important;padding:8px!important}.import button{margin-top:10px}.storage-note{font-size:.69rem;color:var(--muted);padding:10px 3px 0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.section-heading>span{font-size:.72rem;color:var(--muted)}.empty{border:1px dashed var(--line);border-radius:14px;padding:24px;text-align:center;background:var(--surface)}.empty h3{margin-bottom:6px}.empty p,.muted{font-size:.8rem;color:var(--muted)}.slot-list{display:grid;gap:12px}.slot-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow);overflow:hidden}.slot-card:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;background:var(--primary);border-radius:4px}.slot-card h3{font-size:1.02rem;margin-bottom:13px;overflow-wrap:anywhere}.slot-card p{font-size:.75rem;margin-top:8px}.slot-card>small{color:var(--muted);font-size:.65rem}.slot-card .actions{margin-top:14px}.last-grade small{display:block;color:var(--warning);margin-top:4px}.actions{display:flex;flex-wrap:wrap;gap:8px}.actions button{font-size:.76rem}.progress{height:5px;background:var(--line);border-radius:10px;overflow:hidden}.progress>span{display:block;height:100%;border-radius:10px;background:var(--primary);transition:width .15s}.in-exam{max-width:820px;padding-bottom:100px}.in-exam .masthead{height:58px;margin-bottom:3px}.exam-top{display:flex;justify-content:space-between;align-items:center;min-height:36px}.text-button{background:none;border:0;padding:6px 0;font-size:.72rem;min-height:36px;color:var(--muted)}.saved,.save-error{font-size:.65rem;font-weight:650}.saved{color:var(--good)}.save-error{color:var(--bad)}.exam-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:5px 0 10px}.exam-title h1{font-size:1rem;font-weight:750;letter-spacing:-.02em;overflow-wrap:anywhere}.exam-title>span{font-size:.66rem;color:var(--muted);white-space:nowrap}.exam-tabs{display:flex;align-items:center;gap:6px;margin:12px 0 16px}.exam-tabs button{font-size:.7rem;padding:8px 10px;min-height:40px;border-radius:10px;white-space:nowrap}.exam-tabs button[aria-pressed=true]{background:var(--primary);color:var(--on-primary);border-color:transparent}.exam-tabs .jump-button{margin-left:auto;font-size:.66rem;background:var(--subtle);color:var(--primary)}.exam-layout{display:block}.question-panel{background:var(--surface);padding:18px 16px;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.question-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:17px}.question-meta .eyebrow{font-size:.6rem;letter-spacing:0;color:var(--primary);background:var(--subtle);border-radius:6px;padding:5px 8px}.question-meta>span:last-child{font-size:.63rem;font-weight:650;color:var(--muted);white-space:nowrap}fieldset{border:0;padding:0;margin:0;min-width:0}legend{width:100%;padding:0;font-size:1.12rem;font-weight:700;line-height:1.4;letter-spacing:-.025em;margin-bottom:18px}.options{display:grid;gap:9px}.option{display:flex;align-items:center;gap:10px;padding:12px;min-height:55px;border:1px solid var(--line);background:var(--surface);border-radius:12px;font-size:.88rem;font-weight:450;cursor:pointer;position:relative}.option input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.option:has(input:focus-visible){outline:3px solid var(--primary);outline-offset:3px}.option-letter{width:29px;height:29px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;font-size:.73rem;font-weight:750;flex-shrink:0;color:var(--muted);background:var(--bg)}.option.selected{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 7%,var(--surface));box-shadow:inset 0 0 0 1px var(--primary)}.option.selected .option-letter{background:var(--primary);color:var(--on-primary);border-color:transparent}.option.correct{border-color:var(--good);background:var(--good-bg);box-shadow:none}.option.incorrect{border-color:var(--bad);background:var(--bad-bg);box-shadow:none}.option.correct .option-letter{background:var(--good);color:var(--surface)}.option.incorrect .option-letter{background:var(--bad);color:var(--surface)}.option small{display:block;font-size:.68rem;font-weight:650;margin-top:5px}.question-tools{display:flex;justify-content:space-between;gap:8px;margin-top:10px}.question-tools button{border:0;background:none;color:var(--muted);padding:7px 4px;font-size:.7rem;min-height:40px}.question-tools button[aria-pressed=true]{color:var(--primary);background:var(--subtle);padding:7px 10px}.study-dock{position:fixed;bottom:0;left:0;right:0;z-index:10;background:color-mix(in srgb,var(--surface) 96%,transparent);border-top:1px solid var(--line);padding:10px 16px max(10px,env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.question-navigation{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;align-items:start;max-width:788px;margin:auto}.question-navigation>button{padding:10px 0;font-size:1rem}.question-navigation>button>span{display:none}.grade-action{min-width:0;display:flex;flex-direction:column;gap:5px}.grade-action .primary{width:100%;white-space:nowrap}.grade-action small{text-align:center;color:var(--muted);font-size:.6rem;line-height:1.2}.grade-action small:empty{display:none}.feedback{margin-top:14px;padding:15px;border-radius:12px;background:var(--subtle);font-size:.85rem}.feedback h3{font-size:.93rem;margin-bottom:8px}.feedback p+p{margin-top:8px}.navigator{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:20px;width:calc(100% - 24px);max-width:460px;max-height:85svh;padding:20px;box-shadow:0 30px 90px #0005;overscroll-behavior:contain}.navigator::backdrop{background:#100c246b;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.dialog-heading h2{font-size:1.1rem}.dialog-heading button{width:44px;padding:0;background:var(--subtle)}.navigator>label{display:block;color:var(--muted);font-size:.7rem;margin-bottom:6px}.navigator>select{width:100%}.nav-topic{margin-top:16px}.nav-topic h4{font-size:.7rem;color:var(--muted);font-weight:600;margin-bottom:10px}.question-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.question-grid button{padding:7px 2px;border-radius:10px;min-height:48px;font-size:.8rem;background:var(--bg)}.question-grid small{display:block;font-size:.56rem;line-height:1.1;margin-top:1px}.question-grid .nav-answered{background:var(--subtle);color:var(--primary);border-color:var(--primary)}.question-grid .nav-correct{background:var(--good-bg);border-color:var(--good);color:var(--good)}.question-grid .nav-incorrect{background:var(--bad-bg);border-color:var(--bad);color:var(--bad)}.question-grid button[aria-current]{outline:2px solid var(--primary);outline-offset:1px}.legend{font-size:.65rem;color:var(--muted);line-height:1.7;margin-top:15px}.new-slot #exam-type,.new-slot .exam-details{grid-column:1/-1;width:100%}.new-slot .exam-details{font-size:.67rem;color:var(--muted);margin:0 0 5px}.slot-card .slot-exam{font-size:.68rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:-5px 0 12px}.active-exam{font-size:.63rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:-4px 0 8px}.report-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:0 0 16px}.report-actions .report-download{background:var(--accent);color:#261d39;border-color:transparent}.report-actions .report-download:hover:not(:disabled){background:#e1fc91}.report-actions small{font-size:.68rem;color:var(--muted)}.review>.section-heading{margin:18px 0 14px}.review>.section-heading .grade-action{margin-left:auto;max-width:190px}.review>.section-heading .grade-action .primary{font-size:.75rem}.review .empty{margin-top:20px}.grade-banner{background:#6438d2;color:#fff;padding:22px;border-radius:18px;margin-bottom:16px;box-shadow:var(--shadow)}.grade-banner .eyebrow{color:#e1d6ff;font-size:.58rem;letter-spacing:.07em}.grade-banner h3{font-size:2.6rem;margin:12px 0 8px;letter-spacing:-.055em}.grade-banner h3>span{font-size:1.8rem;color:#dfd3ff}.grade-banner h3>small{font-size:.88rem;display:block;letter-spacing:0;font-weight:500;color:#d4f56b;margin-top:8px}.grade-banner p{font-size:.76rem;margin-top:9px;color:#e5dcfb}.grade-banner strong{display:block;font-size:.76rem;margin-top:10px;font-weight:600}.grade-banner .stale{color:#f8e2a4}.topic-breakdown{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:2px 13px;margin-bottom:22px}.topic-breakdown summary>span{margin-left:auto;font-size:.65rem;color:var(--muted);font-weight:450}.table-wrap{overflow-x:auto;margin:0 -13px}.table-wrap table{border-collapse:collapse;width:100%;font-size:.73rem;white-space:nowrap}.table-wrap caption{font-size:.66rem;padding:10px 13px;text-align:left;color:var(--muted)}th,td{padding:11px 13px;border-top:1px solid var(--line);text-align:left}thead{background:var(--subtle)}tbody th{font-weight:550}.review .section-heading label{display:flex;align-items:center;gap:7px;font-size:.7rem}.review select{font-size:.73rem;padding:8px}.review-list{display:grid;gap:10px}.review-list article{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}.review-link{display:block;width:100%;text-align:left;padding:16px;border:0;border-radius:0;font-weight:450;background:transparent}.review-link>span{display:block;font-size:.65rem;color:var(--primary);margin-bottom:7px}.review-link>strong{font-size:.86rem;line-height:1.4;font-weight:600}.review-feedback{padding:0 16px 16px;font-size:.8rem}.review-feedback p{margin-top:9px}.tags{color:var(--muted);font-size:.68rem}.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:16px}.pagination>span{color:var(--muted);font-size:.7rem}.error{background:var(--bad-bg);color:var(--bad);border:1px solid var(--bad);padding:15px;border-radius:12px;font-size:.8rem;margin:14px 0}.error .actions{margin-top:12px}.error strong{font-weight:550}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.review h2[tabindex]:focus{outline:none}@media(min-width:600px){.app{padding:0 28px 36px}.masthead{height:82px;margin-bottom:26px}.header-note{display:block}.theme-toggle{margin-left:4px}.intro{padding:28px 32px}.intro h1{max-width:none;font-size:2.7rem}.intro:after{right:25px;top:-36px;font-size:12rem}.slots-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:22px}.slots-layout>aside{order:0;grid-column:2;grid-row:1}.slots-layout>section{grid-column:1;grid-row:1}.new-slot form{grid-template-columns:1fr}.new-slot form label{grid-column:auto}.in-exam{max-width:820px;padding-bottom:28px}.in-exam .masthead{height:72px}.exam-top{margin-top:7px}.exam-title{margin:10px 0 14px}.exam-title h1{font-size:1.3rem}.exam-title>span{font-size:.76rem}.exam-tabs{margin:16px 0 22px}.exam-tabs button{font-size:.78rem;padding:9px 15px}.exam-tabs .jump-button{font-size:.75rem}.question-panel{padding:26px 28px}.question-meta{margin-bottom:22px}.question-meta .eyebrow{font-size:.7rem;padding:6px 10px}.question-meta>span:last-child{font-size:.72rem}legend{font-size:1.35rem;line-height:1.45;margin-bottom:23px}.option{padding:14px 16px;min-height:65px;font-size:.97rem}.option-letter{width:32px;height:32px}.question-tools{margin-top:12px}.question-tools button{font-size:.78rem}.study-dock{position:static;border-top:1px solid var(--line);margin-top:14px;background:none;padding:18px 0 0;-webkit-backdrop-filter:none;backdrop-filter:none}.question-navigation{grid-template-columns:110px minmax(0,1fr) 110px;gap:15px}.question-navigation>button{font-size:.8rem}.question-navigation>button>span{display:inline}.grade-action small{font-size:.66rem}.review>.section-heading .grade-action{max-width:220px}.grade-banner{padding:26px}.grade-banner h3>small{display:inline;margin-left:10px}.review .section-heading label,.review select{font-size:.8rem}.navigator{padding:24px}}.option input{inset:0;width:100%;height:100%;margin:0;pointer-events:auto;cursor:pointer;z-index:1}@media(max-width:599px){.in-exam .masthead{height:50px}.exam-top{min-height:32px}.exam-tabs{margin:10px 0 12px}.question-panel{padding:14px}.question-meta{margin-bottom:12px}legend{font-size:1.06rem;line-height:1.35;margin-bottom:14px}.options{gap:8px}.option{min-height:49px;padding:10px;font-size:.87rem}.option-letter{height:27px;width:27px}.question-tools{margin-top:6px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
