@import "https://fonts.googleapis.com/css2?family=DM+Mono&family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap";:root{--sans:"DM Sans", system-ui, -apple-system, sans-serif;--mono:"DM Mono", ui-monospace, SFMono-Regular, monospace;--display:"Fraunces", Georgia, "Times New Roman", serif;--bg:#f5f6f9;--surface:#fff;--surface-2:#eef1f6;--surface-3:#e4e8f0;--panel:#101423;--panel-text:#e7e9f5;--panel-muted:#a7adcf;--text:#1a2233;--text-muted:#616d86;--text-faint:#93a0b7;--border:#e3e7ef;--border-strong:#ccd3e0;--accent:#4f46e5;--accent-hover:#4338ca;--accent-soft:#eceafe;--accent-on:#fff;--ruby:#d81e5b;--pos:#0e9f6e;--pos-soft:#e5f6ef;--pos-border:#a7ddc4;--neg:#d64545;--neg-soft:#fdecec;--neg-border:#f0b9b9;--warn:#b45309;--warn-soft:#fbf0e2;--warn-border:#eecfa4;--info:#2563eb;--info-soft:#e8effd;--info-border:#b9cdf5;--ue-bg-l:92%;--ue-fg-l:32%;--ue-border-l:74%;--ring:0 0 0 3px #4f46e547;--shadow-sm:0 1px 2px #1118270d, 0 1px 3px #1118270a;--shadow:0 6px 22px -8px #11182729;--radius:16px;--radius-sm:10px;--radius-xs:7px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e0f14;--surface:#16181f;--surface-2:#1d2029;--surface-3:#262a35;--panel:#201d33;--panel-text:#eceaf9;--panel-muted:#a9a6cf;--text:#e6e9f0;--text-muted:#9aa3b7;--text-faint:#6c7688;--border:#292d38;--border-strong:#3a3f4e;--accent:#7f78f6;--accent-hover:#948df8;--accent-soft:#211f33;--accent-on:#14121f;--ruby:#f2578e;--pos:#3ccf8e;--pos-soft:#15271f;--pos-border:#285741;--neg:#f07a7a;--neg-soft:#2a1a1a;--neg-border:#5c3030;--warn:#e0a94e;--warn-soft:#2b2216;--warn-border:#574529;--info:#6aa3ff;--info-soft:#181f2e;--info-border:#2f4468;--ue-bg-l:22%;--ue-fg-l:78%;--ue-border-l:42%;--ring:0 0 0 3px #7f78f659;--shadow-sm:0 1px 2px #0006;--shadow:0 10px 30px -10px #0009}}:root[data-theme=dark]{--bg:#0e0f14;--surface:#16181f;--surface-2:#1d2029;--surface-3:#262a35;--panel:#14161f;--panel-text:#e7e9f5;--panel-muted:#9298bf;--text:#e6e9f0;--text-muted:#9aa3b7;--text-faint:#6c7688;--border:#292d38;--border-strong:#3a3f4e;--accent:#7f78f6;--accent-hover:#948df8;--accent-soft:#211f33;--accent-on:#14121f;--ruby:#f2578e;--pos:#3ccf8e;--pos-soft:#15271f;--pos-border:#285741;--neg:#f07a7a;--neg-soft:#2a1a1a;--neg-border:#5c3030;--warn:#e0a94e;--warn-soft:#2b2216;--warn-border:#574529;--info:#6aa3ff;--info-soft:#181f2e;--info-border:#2f4468;--ue-bg-l:22%;--ue-fg-l:78%;--ue-border-l:42%;--ring:0 0 0 3px #7f78f659;--shadow-sm:0 1px 2px #0006;--shadow:0 10px 30px -10px #0009}:root[data-theme=sakura]{--bg:#fff3f7;--surface:#fffbfd;--surface-2:#ffe9f2;--surface-3:#ffdcec;--panel:#5c2a42;--panel-text:#ffe7f1;--panel-muted:#d9a8c1;--text:#4a2436;--text-muted:#925e7a;--text-faint:#c793aa;--border:#f8d6e6;--border-strong:#f0b9d6;--accent:#de6f9e;--accent-hover:#c85786;--accent-soft:#fde3ef;--accent-on:#fff;--ruby:#d1467a;--pos:#4f9f76;--pos-soft:#e7f6ee;--pos-border:#ade3c4;--neg:#cf5a76;--neg-soft:#fdebf1;--neg-border:#f3bdd1;--warn:#c98a44;--warn-soft:#fbf0e0;--warn-border:#eed3a8;--info:#8b7fe0;--info-soft:#efecfd;--info-border:#d3cbf5;--ue-bg-l:93%;--ue-fg-l:36%;--ue-border-l:80%;--ring:0 0 0 3px #de6f9e4d;--shadow-sm:0 1px 2px #5d264214, 0 1px 3px #5d26420f;--shadow:0 6px 22px -8px #5d264238;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;transition:background .2s,color .2s}::selection{background:var(--accent);color:var(--accent-on)}a{color:var(--accent)}h1,h2{font-family:var(--display);letter-spacing:-.01em;margin:0}h3{margin-top:0}:where(button,input,select,textarea):focus-visible{box-shadow:var(--ring);outline:none}main{max-width:1080px;margin:auto;padding:40px 24px 34px}.offline-banner{z-index:20;text-align:center;font:700 13px var(--sans);color:var(--warn);background:var(--warn-soft);border-bottom:1px solid var(--warn-border);margin:-40px -24px 20px;padding:8px 24px;position:sticky;top:0}.prefetch-bar{font:600 12px var(--sans);color:var(--text-muted);align-items:center;gap:10px;margin:0 0 20px;display:flex}.prefetch-bar-track{background:var(--surface-3);border-radius:99px;flex:1;height:6px;overflow:hidden}.prefetch-bar-fill{background:var(--accent);border-radius:99px;height:100%;transition:width .3s}.prefetch-result{font:600 12px var(--sans);color:var(--text-muted);margin:0 0 20px}header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding-bottom:22px;display:flex}header .eyebrow{margin-bottom:6px}h1{align-items:baseline;font-size:34px;display:inline-flex}h1:before{content:"";background:var(--ruby);width:.42em;height:.42em;box-shadow:0 0 0 4px color-mix(in srgb, var(--ruby) 18%, transparent);border-radius:50%;align-self:center;margin-right:.35em}h1 span{color:var(--accent)}.eyebrow{font:11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin:0 0 8px}.header-tools{align-items:center;gap:10px;display:flex}.status{color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);white-space:nowrap;border-radius:99px;align-items:center;gap:8px;padding:8px 13px;font-size:12.5px;display:inline-flex}.status i{background:var(--pos);border-radius:50%;flex:none;width:8px;height:8px}.theme-toggle{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:99px;place-items:center;width:38px;height:38px;font-size:16px;transition:background .15s,color .15s,border-color .15s;display:grid}.theme-toggle:hover{color:var(--text);border-color:var(--border-strong);background:var(--surface-2)}.theme-toggle.active{border-color:var(--accent);background:var(--accent-soft)}.main-tabs{flex-wrap:wrap;gap:8px;margin:22px 0;display:flex}.indexing-banner{border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);align-items:center;gap:10px;margin:-10px 0 18px;padding:10px 16px;font-size:13px;font-weight:600;display:flex}.indexing-banner-text{flex:auto}.indexing-banner-stop{border:1px solid var(--accent);color:var(--accent);border-radius:var(--radius-xs);cursor:pointer;white-space:nowrap;background:0 0;flex:none;padding:5px 12px;font-size:12px;font-weight:700}.indexing-banner-stop:hover{background:var(--accent);color:var(--accent-on)}.indexing-banner-stop:disabled{opacity:.6;cursor:default}.indexing-spinner{border:2px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;flex:none;width:14px;height:14px;animation:.8s linear infinite indexing-spin}@media (prefers-reduced-motion:reduce){.indexing-spinner{animation:none}}@keyframes indexing-spin{to{transform:rotate(360deg)}}.main-tabs button{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font:600 13px var(--sans);cursor:pointer;border-radius:99px;padding:9px 17px;transition:all .15s}.main-tabs button:hover{color:var(--text);border-color:var(--border-strong)}.main-tabs button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}article,.generator,.documents,.quiz,.history-empty,.history-session,.history-filters-empty,.revision-today,.revision-plans,.revision-start,.revision-calendar,.storage-bar,.moodle-help,.annale-json-help,.semester-plan,.annale-progress,.today-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}article,.generator,.documents,.quiz{padding:24px}.intro{padding:42px 0 24px}.intro h2{max-width:30ch;font-size:30px;line-height:1.15}.intro p{color:var(--text-muted);margin:10px 0 0}.study-set{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:var(--radius);justify-content:space-between;align-items:flex-start;gap:26px;margin:12px 0 18px;padding:20px;display:flex}.study-set h3{margin:0}.study-set p:not(.eyebrow){color:var(--text-muted);margin:6px 0 0;font-size:13px}.set-controls{flex-direction:column;flex:1;gap:10px;min-width:360px;max-width:460px;display:flex}.set-picker{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.set-select{min-width:180px;font:600 15px var(--sans);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;flex:1;padding:11px 12px}.set-empty{color:var(--text-muted);flex:1;font-size:13px;font-style:italic}.set-doc-count{font:11px var(--mono);letter-spacing:.05em;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);white-space:nowrap;border-radius:99px;padding:6px 11px}.set-actions{gap:8px;display:flex}.set-inline-form{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:8px;display:flex}.set-inline-form input{flex:1;min-width:0}.set-inline-form button[type=submit]{background:var(--accent);color:var(--accent-on);border-radius:var(--radius-xs);cursor:pointer;white-space:nowrap;border:0;height:38px;padding:0 14px;font-weight:700}.set-inline-form button[type=submit]:disabled{opacity:.5;cursor:default}.set-inline-cancel{color:var(--neg);cursor:pointer;background:0 0;border:0;height:38px;padding:0 4px;font-weight:700}button{font-family:var(--sans)}.set-action-btn{background:var(--surface);color:var(--accent);border:1px solid var(--border-strong);border-radius:var(--radius-xs);cursor:pointer;padding:9px 14px;font-size:13px;font-weight:700;transition:background .15s,border-color .15s}.set-action-btn:hover{background:var(--accent-soft)}.set-action-btn.active{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}.set-action-btn:disabled{opacity:.5;cursor:default}.set-action-delete{color:var(--neg);border-color:var(--neg-border)}.set-action-delete:hover{background:var(--neg-soft)}.generator button,.quiz>button,.moodle-export>button,.revision-due-card>button,.revision-start .revision-plan-row>button,.gate-form button{background:var(--accent);color:var(--accent-on);border-radius:var(--radius-sm);cursor:pointer;border:0;padding:12px 18px;font-size:14px;font-weight:700;transition:background .15s,transform 50ms}.generator button:hover,.quiz>button:hover,.moodle-export>button:hover,.revision-due-card>button:hover,.gate-form button:hover{background:var(--accent-hover)}.generator button:active,.quiz>button:active{transform:translateY(1px)}.generator button:disabled,.quiz>button:disabled,.moodle-export>button:disabled,.revision-due-card>button:disabled,.gate-form button:disabled{opacity:.6;cursor:default}.review-quiz-button{color:var(--panel-text)!important;background:#ffffff0f!important;border:1px solid #ffffff38!important}.review-quiz-button:hover:not(:disabled){background:#ffffff21!important}.check-question{background:var(--surface-2);color:var(--accent);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;margin-top:4px;padding:8px 14px;font-size:13px;font-weight:700}.check-question:hover:not(:disabled){background:var(--accent-soft)}.check-question:disabled{opacity:.55;cursor:default;border-style:dashed}.delete-document{border:1px solid var(--neg-border);background:var(--neg-soft);color:var(--neg);border-radius:var(--radius-xs);cursor:pointer;padding:8px 10px}.delete-document:hover{filter:brightness(.97)}label{color:inherit;flex-direction:column;gap:5px;font-size:12px;display:flex}input,select,textarea{font:14px var(--sans);border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);padding:9px 11px}input::placeholder,textarea::placeholder{color:var(--text-faint)}select option,select optgroup{background:var(--surface);color:var(--text)}.generator{background:var(--panel);color:var(--panel-text);border-color:#0000;margin-top:28px}.generator h2{font-size:26px}.generator .eyebrow,.generator label{color:var(--panel-muted)}.generator input,.generator select{color:var(--panel-text);background:#ffffff0f;border-color:#ffffff29}.generator-note{color:var(--panel-muted);margin:0 0 8px;font-size:13px}.session-subject{color:var(--panel-muted);margin:8px 0 0;font-size:14px}.fields{grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0;display:grid}.annals-required{color:var(--warn);background:var(--warn-soft);border:1px solid var(--warn-border);border-radius:var(--radius-xs);padding:9px 12px;font-size:13px}.generation-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.generation-status{color:var(--panel-muted);flex-direction:column;align-items:flex-start;gap:8px;font-size:13px;display:flex}.generation-status>span:last-child{align-items:center;gap:8px;display:flex}.generation-status i{border:2px solid var(--accent);border-top-color:#0000;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin;display:inline-block}.progress-track{background:#ffffff1f;border-radius:99px;width:240px;max-width:60vw;height:6px;display:block;overflow:hidden}.progress-track span{background:var(--accent);border-radius:inherit;height:100%;transition:width .25s;display:block}@keyframes spin{to{transform:rotate(360deg)}}.generation-warning{background:var(--warn-soft);border:1px solid var(--warn-border);color:var(--warn);border-radius:var(--radius-sm);margin:10px 0 0;padding:11px 14px;font-size:13px}.grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.upload-top{gap:9px;margin-bottom:12px;display:flex}.upload-top input{min-width:0}.badge{background:var(--surface-2);border-radius:var(--radius-xs);white-space:nowrap;padding:8px;font-size:11px;font-weight:700}.drop{border:1.5px dashed var(--border-strong);text-align:center;cursor:pointer;color:var(--text-muted);border-radius:12px;flex-direction:column;gap:5px;padding:26px;transition:border-color .15s,background .15s;display:flex}.drop:hover{border-color:var(--accent);background:var(--accent-soft)}.drop input{display:none}.drop strong{color:var(--text)}.disabled{opacity:.5}.upload small{color:var(--text-muted);margin-top:8px;display:block}.documents{margin-top:18px}.documents-toggle{text-align:left;width:100%;font:700 16px var(--sans);color:var(--text);cursor:pointer;background:0 0;border:0;margin:0 0 4px;padding:0;display:block}.doc{border-top:1px solid var(--border);align-items:center;gap:12px 14px;padding:13px 0;font-size:14px;display:grid;grid-template-columns:1fr auto auto auto auto auto!important}.doc>div:first-child{min-width:0}.doc>div:first-child b{overflow-wrap:anywhere;word-break:break-word}.doc span{color:var(--text-muted)}.doc em{color:var(--pos);grid-column:1/-1;font-size:12px;font-style:normal}.doc-kind{font:10px var(--mono);letter-spacing:.06em;border-radius:5px;margin:0 7px;padding:4px 7px;font-weight:700;display:inline-block}.doc-kind.course{color:var(--pos);background:var(--pos-soft);border:1px solid var(--pos-border)}.doc-kind.annal{color:var(--warn);background:var(--warn-soft);border:1px solid var(--warn-border)}.preview{border:1px solid var(--border-strong);background:var(--surface);color:var(--accent);border-radius:var(--radius-xs);cursor:pointer;width:34px;height:34px;font-size:17px}.preview:hover{background:var(--accent-soft)}.storage-bar{margin:14px 0;padding:14px 16px}.storage-bar-head{color:var(--text-muted);justify-content:space-between;gap:10px;margin-bottom:8px;font-size:13px;display:flex}.storage-bar-track{background:var(--surface-2);border-radius:99px;height:8px;overflow:hidden}.storage-bar-fill{background:var(--pos);border-radius:inherit;height:100%;transition:width .3s}.storage-bar-warning .storage-bar-fill{background:var(--warn)}.storage-bar-critical .storage-bar-fill{background:var(--neg)}.storage-bar-message{color:var(--warn);margin:8px 0 0;font-size:12px}.photo-upload{margin-top:14px}.photo-list{flex-wrap:wrap;gap:10px;margin:14px 0;padding:0;list-style:none;display:flex}.photo-list li{width:92px;color:var(--text-muted);flex-direction:column;align-items:center;gap:4px;font-size:11px;display:flex}.photo-list-thumb{border:1px solid var(--border);cursor:zoom-in;background:0 0;border-radius:8px;width:92px;height:92px;padding:0;display:block;overflow:hidden}.photo-list-thumb img{object-fit:cover;width:92px;height:92px;display:block}.photo-list-caption{flex-direction:column;align-items:center;gap:1px;width:100%;display:flex}.photo-list-caption b{color:var(--text-muted)}.photo-list-caption em{text-overflow:ellipsis;white-space:nowrap;max-width:92px;color:var(--text-faint);font-style:normal;overflow:hidden}.photo-list-actions{flex-wrap:wrap;justify-content:center;gap:4px;max-width:92px;display:flex}.photo-list-actions button{border:1px solid var(--border-strong);background:var(--surface);color:var(--accent);cursor:pointer;border-radius:5px;width:22px;height:22px;padding:0;font-size:11px;line-height:1}.photo-list-actions button:disabled{opacity:.35;cursor:default}.photo-upload input[type=text]{width:100%;margin-top:4px}.photo-upload>button{background:var(--accent);color:var(--accent-on);border-radius:var(--radius-sm);cursor:pointer;border:0;margin-top:10px;padding:11px 16px;font-weight:700}.photo-upload>button:disabled{opacity:.6;cursor:default}.quiz{max-width:920px;margin-top:28px}.quiz h2{font-size:25px;line-height:1.25}.session-question{border-top:1px solid var(--border);background:0 0;padding:26px 0}.session-question:first-of-type{border-top:0;padding-top:4px}.question-number{font:11px var(--mono);letter-spacing:.08em;color:var(--text-faint);text-transform:uppercase}.session-context{background:var(--surface-2);border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;max-width:68ch;margin-top:26px;padding:18px 22px}.session-context-label{font:700 11px var(--mono);letter-spacing:.08em;color:var(--accent);text-transform:uppercase;margin:0 0 10px}.session-context p{color:var(--text-muted);margin:0 0 12px;font-size:15px;line-height:1.7}.session-context p:last-child{margin-bottom:0}.session-context-image{border-radius:8px;max-width:100%;margin-top:8px;display:block}.session-question-image{border-radius:8px;max-width:100%;margin:4px 0 16px;display:block}.session-question-para{white-space:pre-line;max-width:72ch;margin:0 0 4px;font-size:18px;font-weight:600;line-height:1.6}.official-annale-quiz-title{flex-direction:column;gap:3px;padding-bottom:2px;display:flex}.official-annale-quiz-title b{background:hsl(var(--ue-hue,220) 55% var(--ue-bg-l));width:fit-content;color:hsl(var(--ue-hue,220) 55% var(--ue-fg-l));border-radius:99px;padding:3px 10px;font-size:13px}.official-annale-quiz-title span{color:var(--text-muted);font-size:13px}.question-feedback{background:var(--surface-2);border-radius:var(--radius-xs);max-width:72ch;margin-top:16px;padding:12px 14px;font-size:14px;line-height:1.55}.question-right-answer{color:var(--pos);margin:0 0 6px;font-weight:700}.question-feedback p{white-space:pre-line;margin:0 0 6px}.question-feedback p:last-child{margin-bottom:0}.choices{gap:10px;margin:22px 0;display:grid}.short-answer{flex-direction:column;gap:8px;max-width:480px;margin:22px 0;display:flex}.short-answer-input{font:15px var(--sans);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:12px 14px}.short-answer-input:disabled{opacity:.7}.short-answer-note{color:var(--text-faint);margin:0;font-size:12px;font-style:italic}.choice{font:15px var(--sans);text-align:left;background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:12px;grid-template-columns:30px 1fr;gap:12px;padding:14px;transition:border-color .12s,background .12s;display:grid}.choice:hover{border-color:var(--border-strong)}.choice b{color:var(--text-faint)}.choice.chosen{border:2px solid var(--accent);background:var(--accent-soft)}.choice.chosen b{color:var(--accent)}.choice.good{border-color:var(--pos);background:var(--pos-soft)}.choice.bad{border-color:var(--neg);background:var(--neg-soft)}.choice small{color:var(--text-muted);grid-column:2;margin-top:4px;line-height:1.45}.course-sources{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.course-sources-title{font:11px var(--mono);letter-spacing:.08em;color:var(--text-faint);margin:0 0 8px}.choice-sources{flex-direction:column;grid-column:2;gap:6px;margin-top:8px;display:flex}blockquote{border-left:3px solid var(--accent);background:var(--surface-2);color:var(--text-muted);border-radius:6px;margin:12px 0;padding:10px 12px;font-size:13px;line-height:1.5}.choice-sources blockquote,.course-sources blockquote{margin:0 0 8px}.open-source{border:1px solid var(--border-strong);background:var(--surface);color:var(--accent);cursor:pointer;border-radius:6px;width:24px;height:24px;margin-left:8px;font-weight:700;line-height:1}.open-source:hover{background:var(--accent-soft)}.history-your-answer{color:var(--accent);font-style:italic}details{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);margin:16px 0;padding:13px}summary{cursor:pointer;color:var(--text);font-weight:700}.history{flex-direction:column;gap:14px;margin:20px 0;display:flex}.history-empty,.history-filters-empty{color:var(--text-muted);padding:24px}.history-filters-empty{text-align:center;border-style:dashed}.history-filters{flex-wrap:wrap;gap:10px;margin-bottom:2px;display:flex}.history-filters select{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-xs);font:13px var(--sans);color:var(--text);cursor:pointer;padding:9px 11px}.history-search{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-xs);font:13px var(--sans);color:var(--text);flex:220px;min-width:160px;padding:9px 11px}.history-session{padding:20px}.history-session-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.history-session-heading h3{margin:8px 0 2px}.history-session-heading small{color:var(--text-muted);font-size:12px}.history-kind{font:10px var(--mono);letter-spacing:.08em;border-radius:5px;padding:4px 8px;font-weight:700}.history-kind.generated{color:var(--pos);background:var(--pos-soft);border:1px solid var(--pos-border)}.history-kind.official,.history-kind.official-annale{color:var(--warn);background:var(--warn-soft);border:1px solid var(--warn-border)}.history-kind.unofficial-annale{color:var(--info);background:var(--info-soft);border:1px solid var(--info-border)}.history-kind.review{color:var(--accent);background:var(--accent-soft);border:1px solid var(--border-strong)}.history-kind.revision{color:var(--info);background:var(--info-soft);border:1px solid var(--info-border)}.history-session-actions{gap:8px;display:flex}.history-session-actions button{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius-xs);cursor:pointer;padding:9px 13px;font-size:12.5px;font-weight:700}.history-session-actions button:hover{background:var(--surface-2)}.history-edit-correction.active{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}.history-delete-attempt,.history-delete-session{border-radius:var(--radius-xs);cursor:pointer;padding:6px 11px;font-size:12px;font-weight:700;border:1px solid var(--neg-border)!important;background:var(--neg-soft)!important;color:var(--neg)!important}.history-attempts{flex-direction:column;gap:12px;margin-top:16px;display:flex}.history-attempt{border-top:1px solid var(--border);padding-top:12px}.history-attempt-heading{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.history-detail-toggle{border:1px solid var(--border-strong);background:var(--surface);color:var(--accent);border-radius:var(--radius-xs);cursor:pointer;margin-left:auto;padding:6px 11px;font-size:12px;font-weight:700}.history-attempt-questions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.history-question-flag{background:var(--surface-2);width:26px;height:26px;color:var(--text-faint);border-radius:6px;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.history-question-flag.correct{background:var(--pos-soft);color:var(--pos)}.history-question-flag.incorrect{background:var(--neg-soft);color:var(--neg)}.history-attempt-detail{border-top:1px dashed var(--border);margin-top:14px;padding-top:6px}.history-unanswered-note{color:var(--neg);margin-top:8px;display:block}.correction-editor{margin-top:16px}.correction-editor-hint{color:var(--text-muted);margin:0 0 14px;font-size:13px}.correction-question-text{resize:vertical;width:100%;font:21px var(--display);color:inherit;background:0 0;border:1px solid #0000;border-radius:8px;margin:0 0 4px -8px;padding:6px 8px;line-height:1.3;display:block}.correction-question-text:hover,.correction-question-text:focus{border-color:var(--border-strong);background:var(--surface)}.correction-choice{cursor:default;grid-template-columns:34px 1fr;align-items:center;gap:8px 12px;width:100%;padding:6px;display:grid}.correction-choice.good{border:2px solid var(--pos);background:var(--pos-soft);border-radius:8px}.correction-correct-toggle{background:var(--surface-2);width:34px;height:34px;color:var(--text-muted);cursor:pointer;border:0;border-radius:8px;font-weight:700}.correction-choice.good .correction-correct-toggle{background:var(--pos-border);color:var(--pos)}.correction-choice-text{border-radius:var(--radius-xs);font:15px var(--sans);color:inherit;background:0 0;border:1px solid #0000;width:100%;padding:8px 10px}.correction-choice-text:hover,.correction-choice-text:focus{border-color:var(--border-strong);background:var(--surface)}.correction-choice-explanation{resize:vertical;width:100%;font:13px var(--sans);color:var(--text-muted);border-radius:var(--radius-xs);background:0 0;border:1px solid #0000;grid-column:2;padding:6px 8px;line-height:1.45}.correction-choice-explanation:hover,.correction-choice-explanation:focus{border-color:var(--border-strong);background:var(--surface)}.correction-versions{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);margin:8px 0 0;padding:8px 12px}.correction-versions summary{color:var(--text-muted);cursor:pointer;font-size:12px;font-weight:700}.correction-version{border-top:1px dashed var(--border);color:var(--text-muted);padding:8px 0;font-size:12.5px}.correction-version:first-of-type{border-top:0}.correction-version-meta{font:10px var(--mono);letter-spacing:.05em;color:var(--text-faint);margin:0 0 4px}.correction-version-q{color:var(--text);margin:0 0 4px;font-weight:600}.correction-version ul{margin:0;padding-left:18px;line-height:1.5}.correction-version em{color:var(--text-muted);font-style:normal}.logs-panel{margin:20px 0}.logs-controls{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;display:flex}.logs-source-toggle{gap:8px;display:flex}.logs-source-toggle button{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:99px;padding:8px 16px;font-size:13px;font-weight:700}.logs-source-toggle button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}.logs-autorefresh{color:var(--text-muted);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.logs-controls>button:last-child{border:1px solid var(--border-strong);background:var(--surface);color:var(--accent);border-radius:var(--radius-xs);cursor:pointer;margin-left:auto;padding:8px 14px;font-size:13px;font-weight:700}.logs-controls>button:last-child:disabled{opacity:.5;cursor:default}.logs-view{color:#cdd6e4;font:12.5px var(--mono);white-space:pre-wrap;word-break:break-word;border:1px solid var(--border);background:#0c0e14;border-radius:12px;max-height:65vh;margin:0;padding:16px;line-height:1.6;overflow:auto}.content-modal,.photo-lightbox{z-index:100;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.content-modal{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a0c148c}.content-modal-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:720px;max-height:82vh;box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.logs-modal-panel{max-width:900px}.logs-modal-panel .logs-panel{margin:0;padding:0 22px 20px;overflow-y:auto}.calendar-event-panel{max-width:380px}.calendar-event-panel .content-modal-body p{margin:0 0 8px;font-size:14px;line-height:1.5}.content-modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;padding:18px 22px;display:flex}.content-modal-head h3{margin:0;font-size:18px}.content-modal-head button{border:1px solid var(--border-strong);background:var(--surface);color:var(--accent);border-radius:var(--radius-xs);cursor:pointer;white-space:nowrap;padding:8px 14px;font-weight:700}.content-modal-body{flex-direction:column;gap:18px;padding:18px 22px;display:flex;overflow-y:auto}.content-empty{color:var(--text-muted);text-align:center}.content-chunk{border-top:1px solid var(--border);padding-top:14px}.content-chunk:first-child{border-top:0;padding-top:0}.content-chunk-page{font:11px var(--mono);letter-spacing:.08em;color:var(--text-faint);margin:0 0 6px}.content-chunk-text{color:var(--text);white-space:pre-wrap;margin:0 0 10px;font-size:14px;line-height:1.55}.content-image-description{background:var(--accent-soft);border-left:3px solid var(--accent);color:var(--text);border-radius:6px;margin:0 0 10px;padding:10px 12px;font-size:13px}.content-image-description b{letter-spacing:.04em;color:var(--accent);text-transform:uppercase;margin-bottom:4px;font-size:11px;display:block}.content-image-description p{white-space:pre-wrap;margin:0}.photo-lightbox{cursor:zoom-out;background:#06080ee6;flex-direction:column;gap:14px}.photo-lightbox img{object-fit:contain;cursor:default;border-radius:8px;max-width:min(90vw,900px);max-height:70vh;box-shadow:0 12px 40px #00000080}.photo-lightbox-bar{color:#e7e9f5;text-align:center;cursor:default;flex-direction:column;align-items:center;gap:10px;font-size:13px;display:flex}.photo-lightbox-nav{gap:8px;display:flex}.photo-lightbox-nav button{color:#e7e9f5;border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:1px solid #ffffff4d;padding:8px 14px;font-weight:700}.photo-lightbox-nav button:disabled{opacity:.35;cursor:default}.photo-lightbox-nav button:hover:not(:disabled){background:#ffffff1f}.gate{max-width:360px;margin:16vh auto;padding:0 24px}.gate-form{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius);text-align:center;flex-direction:column;gap:14px;padding:32px;display:flex}.gate-form h2{margin:0 0 4px}.gate-form input{text-align:center}.gate-error{color:var(--neg)}.gate-loading{text-align:center;color:var(--text-muted)}.revision{margin:20px 0}.revision .intro{padding:20px 0 10px}.revision .intro h2{font-size:24px}.revision h3{margin:0 0 12px}.revision-empty{color:var(--text-muted);margin:0;font-size:13px;font-style:italic}.revision-today,.revision-plans,.revision-start,.semester-plan,.annale-progress,.today-panel{margin:14px 0;padding:20px}.today-panel{border:1px solid var(--accent)!important}.today-panel .intro{padding:0 0 12px}.today-panel .intro h3{letter-spacing:.02em;text-transform:uppercase;color:var(--accent);margin:0;font-size:16px}.today-subject-title{font:700 30px/1.15 var(--display);color:hsl(var(--ue-hue,220) 55% var(--ue-fg-l));text-wrap:balance;margin:2px 0 14px}.today-plan-row{flex-direction:column;gap:10px;padding-bottom:14px;display:flex}.today-plan-row+.today-due-list{border-top:1px solid var(--border);padding-top:14px}.today-due-list{flex-direction:column;gap:10px;display:flex}.today-due-row{color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.today-due-row button{background:var(--accent);color:var(--accent-on);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:0;padding:9px 16px;font-weight:700}.today-due-row button:disabled{opacity:.6;cursor:default}.semester-plan .intro{padding:0 0 14px}.semester-plan .intro h3{margin:0 0 4px;font-size:18px}.semester-plan .intro p{color:var(--text-muted);margin:0;font-size:13px}.semester-plan .drop{margin:0 0 10px}.semester-hero{border-radius:var(--radius-sm);background:var(--accent-soft);flex-wrap:wrap;align-items:stretch;gap:12px;margin:0 0 4px;padding:18px 20px;display:flex}.semester-hero-item{align-items:baseline;gap:12px;display:flex}.semester-hero-item+.semester-hero-item{border-left:1px solid var(--border);padding-left:20px}.semester-hero-number{color:var(--accent);font-size:40px;font-weight:800;line-height:1}.semester-hero-item+.semester-hero-item .semester-hero-number{color:hsl(var(--ue-hue,220) 55% var(--ue-fg-l))}.semester-hero-label{color:var(--text);font-size:13px;line-height:1.4}.semester-upcoming{border-top:1px solid var(--border);padding:14px 0}.semester-upcoming b{color:var(--text);margin-bottom:10px;font-size:14px;display:block}.semester-badges{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.semester-badge{word-break:break-word;border-radius:99px;max-width:100%;padding:5px 10px;font-size:12px;line-height:1.3;display:inline-block}.semester-badge.revision{background:hsl(var(--ue-hue,220) 55% var(--ue-bg-l));color:hsl(var(--ue-hue,220) 55% var(--ue-fg-l));border:1px solid hsl(var(--ue-hue,220) 45% var(--ue-border-l))}.semester-badge.special{background:var(--accent-soft);color:var(--accent);border:1px solid var(--border-strong)}.semester-checklist{flex-wrap:wrap;gap:10px;display:flex}.semester-check{color:var(--text-muted);cursor:pointer;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:99px;align-items:center;gap:6px;padding:9px 14px;font-size:13px;font-weight:600;display:flex}.semester-check.done{background:var(--pos-soft);color:var(--pos);border-color:var(--pos-border)}.semester-upcoming-cards{flex-wrap:wrap;gap:10px;display:flex}.semester-day-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;flex:140px;gap:6px;min-width:140px;max-width:200px;padding:10px 12px;display:flex}.semester-day-card-date{letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.semester-ue-progress{border-top:1px solid var(--border);padding:14px 0}.semester-section-toggle{text-align:left;width:100%;font:700 14px var(--sans);color:var(--text);cursor:pointer;background:0 0;border:0;margin:0 0 10px;padding:0;display:block}.semester-section-toggle:hover{color:var(--accent)}.semester-ue-progress-list{flex-direction:column;gap:10px;display:flex}.semester-ue-progress-row{flex-direction:column;gap:5px;display:flex}.semester-ue-progress-label{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.semester-ue-progress-label .semester-badge{font-size:12px}.semester-ue-progress-days{color:var(--text-muted);white-space:nowrap;font-size:12px}.semester-ue-progress-bar{background:var(--surface-3);border-radius:99px;height:6px;overflow:hidden}.semester-ue-progress-fill{border-radius:inherit;height:100%;transition:width .3s}.semester-checklist-history{border-top:1px solid var(--border);padding:14px 0}.semester-checklist-history-list{flex-direction:column;gap:8px;max-height:360px;display:flex;overflow-y:auto}.semester-checklist-history-row{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:6px 0;display:flex}.semester-checklist-history-row:first-child{border-top:0}.semester-checklist-history-date{color:var(--text-muted);min-width:90px;font-size:12px;font-weight:700}.semester-checklist-history-row .semester-checklist{gap:6px;margin-left:auto}.semester-checklist-history-row .semester-check{padding:5px 10px;font-size:12px}.semester-import-toggle{text-align:left;width:100%;font:600 13px var(--sans);color:var(--text-muted);cursor:pointer;background:0 0;border:0;margin:16px 0 0;padding:0;display:block}.semester-import-toggle:hover{color:var(--text)}.semester-plan .semester-import-toggle+.drop{margin-top:10px}.annale-progress-toggle{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:0;padding:0;display:block}.annale-progress-toggle:hover .intro h3{color:var(--accent)}.annale-progress .intro{padding:0 0 14px}.annale-progress .intro h3{margin:0 0 4px;font-size:18px}.annale-progress .intro p{color:var(--text-muted);margin:0;font-size:13px}.annale-progress-bar{background:var(--surface-2);border-radius:99px;height:8px;margin-bottom:0;overflow:hidden}.annale-progress-fill{background:var(--accent);border-radius:inherit;height:100%;transition:width .3s}.annale-progress-ues{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:16px;display:grid}.annale-progress-ue{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:12px 14px}.annale-progress-ue-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.annale-progress-ue-head .semester-badge{font-size:12px}.annale-progress-ue-count{font:700 12px var(--sans);color:var(--text-muted);white-space:nowrap}.annale-progress-items{flex-direction:column;gap:8px;display:flex}.annale-progress-item{color:var(--text-muted);align-items:center;gap:10px;font-size:12px;display:flex}.annale-progress-item-label{white-space:nowrap;flex:none}.annale-progress-item-status.not-imported{color:var(--text-faint);font-style:italic}.annale-progress-item-bar{background:var(--surface-3);border-radius:99px;flex:auto;height:16px;position:relative;overflow:hidden}.annale-progress-item-fill{background:var(--pos);border-radius:inherit;height:100%;transition:width .3s;position:absolute;inset:0 auto 0 0}.annale-progress-item-percent{text-align:right;font:700 11px var(--sans);color:var(--text);padding:0 8px;line-height:16px;display:block;position:relative}.revision-due-card,.revision-plan-row{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;display:flex}.revision-due-card:first-of-type,.revision-plan-row:first-of-type{border-top:0}.revision-due-card b,.revision-plan-row b{color:var(--text);font-size:15px;display:block}.revision-due-card small,.revision-plan-row small{color:var(--text-muted);margin-top:3px;font-size:12px;display:block}.revision-plan-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.revision-plan-actions>button{background:var(--surface);color:var(--accent);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;padding:10px 16px;font-weight:700}.revision-plan-actions>button:hover:not(:disabled){background:var(--accent-soft)}.revision-plan-actions>button:disabled{opacity:.55;cursor:default}.revision-stop{background:var(--neg-soft)!important;color:var(--neg)!important;border-color:var(--neg-border)!important}.revision-move{color:var(--text-muted);flex-direction:column;gap:2px;font-size:10px;display:flex}.revision-move input{font:12px var(--sans);border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);padding:6px 8px}.revision-count{color:var(--text-muted);flex-direction:column;gap:2px;font-size:10px;display:flex}.revision-count input{width:64px;font:12px var(--sans);border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);padding:6px 8px}.revision-start .revision-plan-row>button:disabled{opacity:.5;cursor:default}.revision-message{background:var(--warn-soft);border:1px solid var(--warn-border);color:var(--warn);border-radius:var(--radius-sm);margin:12px 0 0;padding:10px 14px;font-size:13px}.revision-calendar{margin:14px 0;padding:18px}.revision-calendar-head{justify-content:center;align-items:center;gap:16px;margin-bottom:12px;display:flex}.revision-calendar-head strong{font-family:var(--display);text-transform:capitalize;text-align:center;min-width:190px;font-size:19px}.revision-calendar-head button{border:1px solid var(--border-strong);background:var(--surface);color:var(--accent);border-radius:var(--radius-xs);cursor:pointer;width:32px;height:32px;font-size:16px;font-weight:700}.revision-calendar-head button:hover{background:var(--accent-soft)}.revision-calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.revision-calendar-weekday{font:10px var(--mono);letter-spacing:.08em;color:var(--text-faint);text-align:center;padding:4px 0}.revision-calendar-cell{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;flex-direction:column;gap:3px;min-width:0;min-height:76px;padding:5px;display:flex}.revision-calendar-cell.outside{opacity:.4}.revision-calendar-cell.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.revision-calendar-daynum{color:var(--text-muted);font-size:11px;font-weight:600}.revision-pill{-webkit-line-clamp:2;min-width:0;font:10px var(--sans);white-space:normal;word-break:break-word;text-align:left;cursor:pointer;border:1px solid #0000;border-radius:5px;-webkit-box-orient:vertical;padding:2px 5px;line-height:1.25;display:-webkit-box;overflow:hidden}.revision-pill.due{background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn-border)}.revision-pill.overdue{background:var(--neg-soft);color:var(--neg);border:1px solid var(--neg-border)}.revision-pill.done{background:var(--pos-soft);color:var(--pos);border:1px solid var(--pos-border)}.revision-pill.planned{background:var(--info-soft);color:var(--info);border:1px solid var(--info-border)}.revision-pill.planned.by-ue{background:hsl(var(--ue-hue,220) 55% var(--ue-bg-l));color:hsl(var(--ue-hue,220) 55% var(--ue-fg-l));border:1px solid hsl(var(--ue-hue,220) 45% var(--ue-border-l))}.moodle-export{max-width:680px;margin:20px 0}.moodle-export .intro{padding:20px 0 6px}.moodle-export .intro h2{font-size:24px}.moodle-export .intro p{color:var(--text-muted);font-size:14px}.moodle-export code,.moodle-help code{background:var(--surface-2);font:12px var(--mono);word-break:break-all;border-radius:4px;padding:1px 5px}.moodle-field{color:var(--text-muted);flex-direction:column;gap:5px;margin:12px 0;font-size:12px;display:flex}.moodle-field input,.moodle-field select{font:14px var(--sans);border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);padding:9px 11px}.moodle-remember{color:var(--text-muted);cursor:pointer;align-items:flex-start;gap:8px;margin:6px 0 4px;font-size:12px;display:flex}.moodle-remember input{margin-top:2px}.moodle-error{background:var(--neg-soft);border:1px solid var(--neg-border);color:var(--neg);border-radius:var(--radius-sm);margin:12px 0 0;padding:10px 14px;font-size:13px}.moodle-warning{background:var(--warn-soft);border:1px solid var(--warn-border);color:var(--warn);border-radius:var(--radius-sm);margin:12px 0 0;padding:10px 14px;font-size:13px}.moodle-help{color:var(--text-muted);margin-top:18px;padding:12px 16px;font-size:13px}.moodle-help summary{cursor:pointer;color:var(--text);font-weight:700}.moodle-help ol{margin:10px 0 0;padding-left:20px;line-height:1.6}.moodle-help p{margin:10px 0 0;line-height:1.55}.moodle-help-note{color:var(--text-faint);margin:10px 0 0;font-size:12px}.annale-json-help{color:var(--text-muted);margin-top:10px;padding:12px 16px;font-size:13px}.annale-json-help summary{cursor:pointer;color:var(--text);font-weight:700}.annale-json-help p{margin:10px 0;line-height:1.55}.annale-json-help pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-xs);font:12px var(--mono);color:var(--text);margin:0;padding:12px 14px;line-height:1.5;overflow-x:auto}.annale-json-example{position:relative}.annale-json-copy{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius-xs);cursor:pointer;padding:5px 10px;font-size:12px;font-weight:700;position:absolute;top:8px;right:8px}.annale-json-copy:hover{background:var(--surface-3)}footer{text-align:center;color:var(--text-faint);margin-top:44px;font-size:12px}.footer-mascot{object-fit:cover;border:4px solid var(--border);width:220px;height:220px;box-shadow:var(--shadow);border-radius:50%;margin:0 auto 16px;display:block}@media (width<=760px){main{padding:20px 12px 26px}header{flex-wrap:wrap;padding-bottom:18px}h1{font-size:26px}.intro{padding:22px 0 16px}.intro h2{font-size:22px}.intro p{font-size:14px}.main-tabs{gap:8px;margin:16px 0}.main-tabs button{padding:8px 12px;font-size:13px}.fields{grid-template-columns:1fr;gap:12px}article,.generator,.documents,.quiz{padding:16px}.generator{margin-top:22px}.generator h2{font-size:21px}.generation-actions{flex-direction:column;align-items:stretch}.generation-actions>button,.review-quiz-button{width:100%}.study-set{padding:16px;display:block}.set-controls{min-width:0;max-width:none;margin-top:14px}.set-actions{flex-wrap:wrap}.set-action-btn{text-align:center;flex:auto}.grid{display:block}.grid article+article{margin-top:15px}.doc{padding:12px 0;grid-template-columns:1fr!important;gap:8px 0!important}.documents-toggle{font-size:14px;line-height:1.35}.quiz{margin-top:22px}.quiz h2{font-size:20px;line-height:1.3}.choices{margin:16px 0}.choice{gap:10px;padding:12px;font-size:14px}.history{gap:12px}.history-session{padding:16px}.history-session-heading{flex-direction:column;align-items:flex-start;gap:8px}.history-session-actions{flex-wrap:wrap;gap:6px;width:100%}.history-session-actions button{flex:auto;padding:8px 10px;font-size:12px}.history-filters{flex-direction:column}.history-filters select,.history-search{width:100%}.history-attempt-heading{gap:8px}.history-detail-toggle{margin-left:0}.correction-choice{grid-template-columns:30px 1fr}.revision .intro h2{font-size:21px}.revision-due-card,.revision-plan-row{flex-direction:column;align-items:stretch;gap:8px}.revision-due-card>button,.revision-plan-actions{width:100%}.revision-plan-actions>button{flex:auto}.revision-move,.revision-move input,.revision-count input,.revision-start .revision-plan-actions,.revision-start .revision-plan-actions>button{width:100%}.revision-calendar{padding:12px}.revision-calendar-head strong{min-width:0;font-size:15px}.revision-calendar-grid{gap:3px}.revision-calendar-cell{min-height:46px;padding:3px}.revision-calendar-daynum{font-size:10px}.moodle-export{max-width:none}.content-modal,.photo-lightbox{padding:12px}.content-modal-panel{max-height:88vh}.footer-mascot{width:150px;height:150px}input,select,textarea{font-size:16px}.logs-view{font-size:12px}}.quiz-score{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);align-items:center;gap:14px;margin:4px 0 20px;padding:14px 16px;display:flex}.quiz-score img{object-fit:contain;flex:none;width:56px;height:56px}.quiz-score b{font-family:var(--display);font-size:19px;display:block}.quiz-score span{color:var(--text-muted);font-size:13px}.quiz-score.good{background:var(--pos-soft);border-color:var(--pos-border)}.quiz-score.good b{color:var(--pos)}.quiz-score.mid{background:var(--info-soft);border-color:var(--info-border)}.quiz-score.mid b{color:var(--info)}.quiz-score.bad{background:var(--neg-soft);border-color:var(--neg-border)}.quiz-score.bad b{color:var(--neg)}.cat-mini{object-fit:contain;vertical-align:middle;width:24px;height:24px;margin-left:6px}.history-empty.with-cat,.revision-empty.with-cat,.generation-warning.with-cat{align-items:center;gap:12px;display:flex}.history-empty.with-cat img{object-fit:contain;flex:none;width:60px;height:60px}.revision-empty.with-cat img,.generation-warning.with-cat img{object-fit:contain;flex:none;width:34px;height:34px}.upload-blocked{color:var(--warn);background:var(--warn-soft);border:1px solid var(--warn-border);border-radius:var(--radius-xs);margin-top:8px;padding:7px 10px;font-size:12px;line-height:1.4;display:block}.brand{align-items:center;gap:14px;display:flex}.brand-cat{object-fit:contain;flex:none;width:54px;height:54px}@media (width<=760px){.brand-cat{width:40px;height:40px}.brand{gap:10px}}.revision-joffset{font:700 11px var(--mono);letter-spacing:.03em;color:var(--accent)}.non-official-annale-import{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;gap:10px;margin:14px 0 18px;padding:16px;display:flex}.non-official-annale-import-fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;display:grid}.non-official-annale-import-fields input,.non-official-annale-import-fields select{border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface);font:13px var(--sans);color:var(--text);padding:9px 11px}.non-official-annale-import button{border:1px solid var(--accent);background:var(--accent);color:var(--accent-on);border-radius:var(--radius-xs);cursor:pointer;align-self:flex-start;padding:9px 16px;font-size:13px;font-weight:700}.non-official-annale-import button:disabled{opacity:.6;cursor:default}.non-official-annale-import small{color:var(--text-muted)}.annale-history{margin:0 0 18px}.annale-history-toggle{border:1px solid var(--border-strong);background:var(--surface);color:var(--accent);border-radius:var(--radius-xs);cursor:pointer;padding:8px 14px;font-size:13px;font-weight:700}.annale-history-body{flex-direction:column;gap:8px;margin-top:10px;display:flex}.annale-history-message{color:var(--accent);font-weight:600}.annale-history-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.annale-history-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden}.annale-history-row{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:0;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex}.annale-history-row:hover{background:var(--surface-3)}.annale-history-badge{font:700 11px var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-3);border-radius:99px;flex:none;padding:2px 8px}.annale-history-badge.mcp{color:var(--accent);background:var(--accent-soft)}.annale-history-action{flex:none;font-weight:700}.annale-history-action.create{color:var(--pos)}.annale-history-action.update{color:var(--info)}.annale-history-action.delete{color:var(--neg)}.annale-history-action.revert{color:var(--warn)}.annale-history-subject{color:var(--text-muted);flex:220px}.annale-history-subject b{color:var(--text)}.annale-history-counts{color:var(--text-muted);white-space:nowrap;font-size:12px}.annale-history-date{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:12px}.annale-history-detail{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding:12px 14px;display:flex}.annale-history-images{flex-wrap:wrap;gap:8px;display:flex}.annale-history-images img{object-fit:cover;border-radius:var(--radius-xs);border:1px solid var(--border-strong);width:72px;height:72px}.annale-history-json{max-height:280px;font:12px var(--mono);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-xs);white-space:pre-wrap;padding:10px 12px;overflow:auto}.annale-history-revert{border:1px solid var(--warn-border);background:var(--warn-soft);color:var(--warn);border-radius:var(--radius-xs);cursor:pointer;align-self:flex-start;padding:8px 16px;font-size:13px;font-weight:700}.annale-history-revert:disabled{opacity:.6;cursor:default}.official-annales-ues{flex-direction:column;gap:10px;margin-top:14px;display:flex}.official-annales-ue{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden}.official-annales-ue-head{cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.official-annales-ue-head-left{align-items:center;gap:10px;display:flex}.official-annales-ue-validated{color:var(--accent);white-space:nowrap;font-size:12px;font-weight:600}.official-annales-ue-count{color:var(--text-muted);white-space:nowrap;font-size:12px}.official-annales-groups{border-top:1px solid var(--border);flex-direction:column;display:flex}.official-annales-group{border-top:1px solid var(--border)}.official-annales-group:first-child{border-top:0}.official-annales-group-head{text-align:left;background:var(--surface);cursor:pointer;border:0;flex-direction:column;align-items:flex-start;gap:3px;width:100%;padding:10px 14px;display:flex}.official-annales-group-head:hover{background:var(--surface-3)}.official-annales-group-head span:first-child{color:var(--text);font-weight:600}.official-annales-item-meta{color:var(--text-muted);font-size:12px}.official-annales-parts{border-top:1px solid var(--border);background:var(--surface-2);flex-direction:column;display:flex}.official-annales-part{text-align:left;border:0;border-top:1px solid var(--border);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:8px 14px 8px 26px;font-size:13px;display:flex}.official-annales-part:first-child{border-top:0}.official-annales-part:hover{background:var(--surface-3)}.official-annales-part span:first-child{color:var(--text);font-weight:600}.attach-annale{margin-top:14px}.attach-annale-body{flex-direction:column;gap:8px;margin-top:10px;display:flex}.attach-annale-select{width:100%;font:13px var(--sans);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-xs);padding:8px 10px}.attach-annale-parts{flex-direction:column;gap:6px;max-height:220px;display:flex;overflow-y:auto}.attach-annale-part-row{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface-2);color:var(--text);justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:12px;display:flex}.attach-annale-part-row button{border:1px solid var(--border-strong);background:var(--surface);color:var(--accent);border-radius:var(--radius-xs);cursor:pointer;white-space:nowrap;flex:none;padding:6px 12px;font-size:12px;font-weight:700}.attach-annale-part-row button:hover{background:var(--accent-soft)}.attach-annale-part-row button:disabled{opacity:.6;cursor:default}.link-back{color:var(--accent);cursor:pointer;background:0 0;border:0;margin-bottom:12px;padding:0;font-size:13px;font-weight:700}.official-annale-detail{flex-direction:column;gap:4px;display:flex}.official-annale-quiz-wrap{flex-direction:column;gap:16px;display:flex}.official-annale-quiz-wrap .link-back{margin-bottom:0}.official-annale-status-pill{text-transform:uppercase;letter-spacing:.02em;border-radius:99px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.official-annale-status-pill.non_commence{color:var(--text-muted);background:var(--surface-3)}.official-annale-status-pill.en_cours{color:var(--warn);background:var(--warn-soft)}.official-annale-status-pill.valide{color:var(--pos);background:var(--pos-soft)}.official-annale-status-pill.a_refaire{color:var(--neg);background:var(--neg-soft)}.official-annale-status-pill.processing{color:var(--info);background:var(--info-soft)}.official-annale-status-row{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.official-annale-status-row.inline{background:var(--surface-2);border-radius:var(--radius-sm);margin:0;padding:12px}.official-annale-status-btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:99px;padding:7px 14px;font-size:13px;font-weight:600}.official-annale-status-btn.active.non_commence{border-color:var(--border-strong);background:var(--surface-3);color:var(--text)}.official-annale-status-btn.active.en_cours{border-color:var(--warn-border);background:var(--warn-soft);color:var(--warn)}.official-annale-status-btn.active.valide{border-color:var(--pos-border);background:var(--pos-soft);color:var(--pos)}.official-annale-status-btn.active.a_refaire{border-color:var(--neg-border);background:var(--neg-soft);color:var(--neg)}.official-annale-score-row{color:var(--text);flex-wrap:wrap;gap:4px 16px;margin-bottom:16px;font-size:14px;display:flex}.official-annale-score-row b{color:var(--accent)}.official-annale-actions{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.official-annale-start{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:0;padding:12px 22px;font-size:15px;font-weight:700}.official-annale-start.secondary{background:var(--surface);color:var(--accent);border:1px solid var(--border-strong)}.official-annale-delete{border:1px solid var(--neg-border);background:var(--neg-soft);color:var(--neg);border-radius:var(--radius-sm);cursor:pointer;margin-left:auto;padding:12px 22px;font-size:15px;font-weight:700}.official-annale-notes{color:var(--text-muted);flex-direction:column;gap:6px;margin-bottom:20px;font-size:13px;font-weight:600;display:flex}.official-annale-notes textarea{font:14px/1.5 var(--sans);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);resize:vertical;padding:10px 12px}.official-annale-attempts{border-top:1px solid var(--border);padding-top:12px}.official-annale-attempts-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 8px;font-size:12px}.official-annale-attempt-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:6px 0;font-size:13px;display:flex}.official-annale-attempt-row:first-child{border-top:0}.official-annale-attempt-delete{color:var(--neg);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0;font-size:12px;font-weight:600}.official-annale-attempt-delete:hover{text-decoration:underline}.official-annale-attempt-resume{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;font-weight:600}.official-annale-attempt-resume:hover{text-decoration:underline}.official-annale-attempt-remaining{font:700 11px var(--mono);color:var(--info);white-space:nowrap}.quiz-sticky-bar{top:calc(12px + var(--offline-banner-h,0px));z-index:5;flex-direction:column;align-items:flex-start;gap:6px;width:fit-content;margin:4px 0 0;display:flex;position:sticky}.quiz-timer{font:700 13px var(--mono);color:var(--info);background:var(--info-soft);border:1px solid var(--border);width:fit-content;box-shadow:0 2px 8px color-mix(in srgb, var(--text) 10%, transparent);border-radius:99px;align-items:center;gap:6px;margin:0;padding:4px 12px;display:inline-flex}.quiz-timer.low{color:var(--neg);background:var(--neg-soft)}.quiz-sync-pending{font:600 12px var(--sans);color:var(--warn);background:var(--warn-soft);border:1px solid var(--warn-border);width:fit-content;box-shadow:0 2px 8px color-mix(in srgb, var(--text) 10%, transparent);border-radius:99px;align-items:center;gap:6px;margin:0;padding:4px 12px;display:inline-flex}.quiz-scroll-nav{z-index:15;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:18px;right:18px}.quiz-scroll-nav button{border:1px solid var(--border-strong);background:var(--surface);width:42px;height:42px;color:var(--accent);box-shadow:var(--shadow);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex}.quiz-scroll-nav button:hover{background:var(--accent);color:#fff}@media (width<=680px){.quiz-scroll-nav{bottom:12px;right:12px}}
