:root{color-scheme:light;--bg: #f5f6fa;--bg-elev: #ffffff;--bg-sunken: #eceef4;--bg-hover: #eef0f6;--sidebar: #eceef5;--border: #e1e4ec;--border-strong: #cdd2de;--text: #171a23;--text-2: #555b6b;--text-3: #8a90a0;--accent: #c2410c;--accent-hover: #a8380a;--accent-soft: #fdebe1;--accent-text: #a33a0c;--danger: #d6404e;--danger-soft: #fde9eb;--danger-text: #b42836;--warn: #c77a0a;--warn-soft: #fdf2df;--warn-text: #94590a;--ok: #1d9a5f;--ok-soft: #e0f5ea;--ok-text: #157046;--shadow-sm: 0 1px 2px rgba(20, 24, 40, .05);--shadow: 0 1px 2px rgba(20, 24, 40, .04), 0 2px 8px rgba(20, 24, 40, .05);--shadow-lg: 0 12px 40px rgba(20, 24, 40, .18);--radius: 14px;--radius-sm: 9px;--sl: 52%;--st: 34%;--soft-a: .11;--font: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, sans-serif;--font-display: "Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg: #101217;--bg-elev: #181b22;--bg-sunken: #0c0e12;--bg-hover: #1f232c;--sidebar: #0c0e12;--border: #252a34;--border-strong: #353b48;--text: #e9ebf1;--text-2: #a6abb9;--text-3: #6f7585;--accent: #e8622a;--accent-hover: #f47a3f;--accent-soft: #3a2418;--accent-text: #ffa070;--danger: #f06470;--danger-soft: #3a1a20;--danger-text: #ff9aa3;--warn: #f0a535;--warn-soft: #3a2a10;--warn-text: #ffc670;--ok: #3cc685;--ok-soft: #12301f;--ok-text: #7fe0ae;--shadow-sm: none;--shadow: 0 0 0 1px rgba(255, 255, 255, .02);--shadow-lg: 0 16px 50px rgba(0, 0, 0, .55);--sl: 64%;--st: 80%;--soft-a: .15}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #101217;--bg-elev: #181b22;--bg-sunken: #0c0e12;--bg-hover: #1f232c;--sidebar: #0c0e12;--border: #252a34;--border-strong: #353b48;--text: #e9ebf1;--text-2: #a6abb9;--text-3: #6f7585;--accent: #e8622a;--accent-hover: #f47a3f;--accent-soft: #3a2418;--accent-text: #ffa070;--danger: #f06470;--danger-soft: #3a1a20;--danger-text: #ff9aa3;--warn: #f0a535;--warn-soft: #3a2a10;--warn-text: #ffc670;--ok: #3cc685;--ok-soft: #12301f;--ok-text: #7fe0ae;--shadow-sm: none;--shadow: 0 0 0 1px rgba(255, 255, 255, .02);--shadow-lg: 0 16px 50px rgba(0, 0, 0, .55);--sl: 64%;--st: 80%;--soft-a: .15}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow:hidden;-webkit-user-select:none;user-select:none}h1,h2,h3{font-family:var(--font-display);margin:0;letter-spacing:-.01em}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none;padding:0}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-soft)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background-color:var(--text-3)}::-webkit-scrollbar-track{background:transparent}.drag{-webkit-app-region:drag}.drag button,.drag input,.drag a{-webkit-app-region:no-drag}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.rot-180{transform:rotate(180deg)}.muted{color:var(--text-3)}.muted-icon{color:var(--text-3);flex-shrink:0}.muted-line{color:var(--text-3);padding:6px 0}.center{text-align:center;padding:28px 0}.app{display:grid;grid-template-columns:236px minmax(0,1fr);height:100vh}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:0 12px 12px;min-height:0}.brand{display:flex;align-items:center;gap:10px;height:64px;padding:10px 8px 0;font-family:var(--font-display);font-weight:700;font-size:17px;letter-spacing:-.02em}.brand img{border-radius:7px}.nav{display:flex;flex-direction:column;gap:2px;margin-top:8px}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:var(--radius-sm);color:var(--text-2);font-weight:500;text-align:left;transition:background .12s,color .12s}.nav-item:hover{background:var(--bg-hover);color:var(--text)}.nav-item.active{background:var(--bg-elev);color:var(--text);box-shadow:var(--shadow-sm)}.nav-item.active svg{color:var(--accent)}.nav-label{flex:1}.nav-badge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--bg-sunken);color:var(--text-2);font-size:12px;font-weight:600;display:grid;place-items:center}.nav-item.active .nav-badge{background:var(--accent-soft);color:var(--accent-text)}.nav-badge.accent{background:var(--accent);color:#fff}.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;gap:4px}.sync-status{display:flex;align-items:center;gap:8px;padding:7px 11px;border-radius:var(--radius-sm);color:var(--text-3);font-size:12.5px;text-align:left}.sync-status:hover:not(:disabled){background:var(--bg-hover);color:var(--text-2)}.dot-warn{width:7px;height:7px;border-radius:50%;background:var(--warn);margin-left:auto}.account{display:flex;align-items:center;gap:10px;padding:10px 8px 2px;border-top:1px solid var(--border);margin-top:6px}.avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;object-position:top;background:var(--accent-soft);color:var(--accent-text);display:grid;place-items:center;font-weight:700;font-size:13px;flex-shrink:0}.avatar-lg{width:56px;height:56px;font-size:20px}.account-text{min-width:0}.account-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-sub{color:var(--text-3);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main{overflow-y:auto;height:100vh;position:relative;scroll-behavior:smooth}.titlebar{position:sticky;top:0;height:40px;z-index:20;background:linear-gradient(var(--bg) 70%,transparent)}.page{max-width:1240px;margin:0 auto;padding:0 36px 40px;animation:page-in .18s ease-out}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}}.splash{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:var(--text-3)}.splash img{border-radius:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 13px;border-radius:var(--radius-sm);background:var(--bg-elev);border:1px solid var(--border);color:var(--text);font-weight:500;box-shadow:var(--shadow-sm);transition:background .12s,border-color .12s;white-space:nowrap}.btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}.btn:disabled{opacity:.55}.btn-icon{width:34px;padding:0}.btn-small{height:28px;padding:0 10px;font-size:13px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--text-2)}.btn-danger{color:var(--danger-text)}.btn-danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.btn-block{width:100%;height:40px}.icon-btn{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;color:var(--text-3)}.icon-btn:hover{background:var(--bg-hover);color:var(--text)}.link-btn{display:inline-flex;align-items:center;gap:4px;color:var(--accent-text);font-size:13px;font-weight:500}.link-btn:hover{text-decoration:underline}.field{display:flex;flex-direction:column;gap:6px;font-weight:500;font-size:13px;color:var(--text-2)}.field input,.totp-input{height:42px;padding:0 13px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg);color:var(--text);font-size:14.5px;outline:none;transition:border-color .12s,box-shadow .12s;-webkit-user-select:text;user-select:text}.field input:focus,.totp-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input-with-button{position:relative;display:flex}.input-with-button input{flex:1;padding-right:42px}.input-with-button .icon-btn{position:absolute;right:7px;top:7px}.checkbox{display:flex;align-items:center;gap:9px;cursor:pointer;color:var(--text-2)}.checkbox.small{font-size:13px}.checkbox input,.qcm-choice input{accent-color:var(--accent);width:16px;height:16px;margin:0}.select{height:34px;padding:0 30px 0 11px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elev);color:var(--text);box-shadow:var(--shadow-sm);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a90a0' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}.select:disabled{opacity:.5}.form-error{background:var(--danger-soft);color:var(--danger-text);padding:10px 12px;border-radius:var(--radius-sm);font-size:13px;-webkit-user-select:text;user-select:text}.switch{appearance:none;width:38px;height:22px;border-radius:11px;background:var(--border-strong);position:relative;cursor:pointer;transition:background .15s;flex-shrink:0;margin:0}.switch:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .15s}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(16px)}.switch:disabled{opacity:.45;cursor:default}.segmented{display:inline-flex;padding:3px;gap:2px;background:var(--bg-sunken);border-radius:10px;border:1px solid var(--border);flex-wrap:wrap}.segmented button{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:7px;color:var(--text-2);font-weight:500;font-size:13px;white-space:nowrap}.segmented button:hover{color:var(--text)}.segmented button.active{background:var(--bg-elev);color:var(--text);box-shadow:var(--shadow-sm),0 0 0 1px var(--border)}.login-screen{height:100%;display:flex;flex-direction:column;align-items:center;padding:calc(40px + var(--sat, 0px)) 20px calc(40px + var(--sab, 0px));background:radial-gradient(900px 500px at 15% 0%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 70%),radial-gradient(700px 500px at 100% 100%,color-mix(in srgb,#ffd23f 14%,transparent),transparent 70%),var(--bg);overflow-y:auto}.login-drag{position:fixed;inset:0 0 auto;height:40px}.login-card{margin-top:auto;flex-shrink:0;width:100%;max-width:420px;background:var(--bg-elev);border:1px solid var(--border);border-radius:20px;padding:30px;box-shadow:var(--shadow-lg)}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:26px}.login-brand img{border-radius:13px}.login-title{font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-.02em}.login-sub{color:var(--text-2)}.login-form{display:flex;flex-direction:column;gap:16px}.login-footnote{margin-bottom:auto;max-width:420px;text-align:center;color:var(--text-3);font-size:12px;margin-top:20px;line-height:1.6}.login-footnote svg{vertical-align:-1px}.qcm-intro{display:flex;gap:12px;background:var(--accent-soft);color:var(--accent-text);padding:12px 14px;border-radius:var(--radius-sm)}.qcm-intro svg{flex-shrink:0;margin-top:2px}.qcm-intro p{margin:3px 0 0;font-size:13px;opacity:.9}.qcm-question{font-family:var(--font-display);font-size:17px;font-weight:600}.qcm-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.qcm-choice{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);cursor:pointer;transition:border-color .12s,background .12s}.qcm-choice:hover{background:var(--bg-hover)}.qcm-choice.selected{border-color:var(--accent);background:var(--accent-soft)}.totp-input{font-size:24px;letter-spacing:.3em;text-align:center;height:54px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:4px 0 22px;flex-wrap:wrap}.page-header h1{font-size:28px;font-weight:700}.page-subtitle{color:var(--text-2);margin-top:3px}.page-actions{display:flex;align-items:center;gap:8px}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:22px;flex-wrap:wrap}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.card-head h2{display:flex;align-items:center;gap:8px;font-size:15.5px;font-weight:650}.card-head h2 svg{color:var(--text-3)}.card-loading,.page-loading{display:grid;place-items:center;padding:30px 0;color:var(--text-3)}.page-loading{padding:70px 0}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:34px 20px;color:var(--text-2)}.empty-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--bg-sunken);color:var(--text-3);margin-bottom:12px}.empty-title{font-weight:650;color:var(--text);font-size:15px}.empty-text{margin-top:4px;color:var(--text-3);max-width:340px}.offline-note{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--warn-text);background:var(--warn-soft);padding:5px 10px;border-radius:20px}.error-note{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--danger-soft);color:var(--danger-text);padding:12px 14px;border-radius:var(--radius-sm);margin-bottom:16px;-webkit-user-select:text;user-select:text}.pill{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 9px;border-radius:11px;font-size:12px;font-weight:600;background:var(--bg-sunken);color:var(--text-2);white-space:nowrap;flex-shrink:0}.pill-small{height:19px;padding:0 7px;font-size:11px}.pill-danger{background:var(--danger-soft);color:var(--danger-text)}.pill-warn{background:var(--warn-soft);color:var(--warn-text)}.pill-ok{background:var(--ok-soft);color:var(--ok-text)}.pill-accent{background:var(--accent-soft);color:var(--accent-text)}.subject-dot{display:inline-block;border-radius:50%;background:hsl(var(--h) 65% var(--sl));flex-shrink:0}.subject-tag{display:inline-flex;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:600;background:hsl(var(--h) 70% var(--sl) / var(--soft-a));color:hsl(var(--h) 60% var(--st))}.done-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--border-strong);display:grid;place-items:center;color:transparent;flex-shrink:0;transition:all .15s;background:var(--bg-elev)}.done-check:hover{border-color:var(--ok);color:var(--ok)}.done-check.is-done{background:var(--ok);border-color:var(--ok);color:#fff;animation:pop .25s ease-out}@keyframes pop{50%{transform:scale(1.18)}}.tone-good{color:var(--ok-text)}.tone-mid{color:var(--warn-text)}.tone-bad{color:var(--danger-text)}.tone-none{color:var(--text-3)}.skeleton-lines{display:flex;flex-direction:column;gap:7px;margin-top:10px}.skeleton-lines span{height:11px;border-radius:6px;background:linear-gradient(90deg,var(--bg-sunken),var(--bg-hover),var(--bg-sunken));background-size:200% 100%;animation:shimmer 1.2s infinite}.skeleton-lines span:last-child{width:60%}@keyframes shimmer{to{background-position:-200% 0}}.flash{animation:flash 1.6s ease-out}@keyframes flash{0%,30%{box-shadow:0 0 0 3px var(--accent)}}.rich{-webkit-user-select:text;user-select:text;line-height:1.6;overflow-wrap:anywhere}.rich p{margin:0 0 .6em}.rich p:last-child{margin-bottom:0}.rich ul,.rich ol{margin:.3em 0 .6em;padding-left:1.4em}.rich a{color:var(--accent-text)}.rich img{max-width:100%;height:auto;border-radius:8px}.rich table{border-collapse:collapse;margin:.5em 0}.rich td,.rich th{border:1px solid var(--border);padding:4px 8px}.rich blockquote{margin:.5em 0;padding-left:12px;border-left:3px solid var(--border-strong);color:var(--text-2)}.attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.attachment{display:inline-flex;align-items:center;gap:8px;max-width:100%;height:34px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:13px;transition:border-color .12s,background .12s}.attachment:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.attachment-icon{color:var(--accent-text);display:flex}.attachment-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.attachment-size{color:var(--text-3);font-size:12px}.attachment-action{color:var(--text-3);display:flex}.toasts{position:fixed;bottom:18px;right:18px;display:flex;flex-direction:column;gap:8px;z-index:100}.toast{display:flex;align-items:center;gap:9px;padding:11px 14px;border-radius:11px;background:var(--bg-elev);border:1px solid var(--border);box-shadow:var(--shadow-lg);max-width:380px;animation:toast-in .2s ease-out}.toast-success svg{color:var(--ok)}.toast-error svg{color:var(--danger)}.toast-info svg{color:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.dash-hello{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:4px 0 24px}.dash-date{color:var(--text-3);font-weight:500;font-size:13px;text-transform:uppercase;letter-spacing:.04em}.dash-hello h1{font-size:30px;font-weight:700;margin-top:2px}.dash-summary{margin:6px 0 0;color:var(--text-2);font-size:15px}.dash-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:18px;align-items:start}.dash-col{display:flex;flex-direction:column;gap:18px;min-width:0}@media(max-width:1080px){.dash-grid{grid-template-columns:minmax(0,1fr)}}.schedule-span{color:var(--text-3);font-size:13px;margin:-8px 0 12px}.schedule{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.schedule-gap{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-3);padding:2px 0 8px 64px}.schedule-gap:after{content:"";flex:1;border-top:1px dashed var(--border-strong)}.lesson-row{display:flex;align-items:stretch;gap:12px;padding:8px 10px 8px 0;border-radius:11px;transition:background .12s}.lesson-row.now{background:hsl(var(--h) 70% var(--sl) / var(--soft-a))}.lesson-row.past{opacity:.5}.lesson-time{width:52px;display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums;font-weight:600;font-size:13px;flex-shrink:0}.lesson-time span:last-child{color:var(--text-3);font-weight:500;font-size:12px}.lesson-bar{width:4px;border-radius:2px;background:hsl(var(--h) 65% var(--sl));flex-shrink:0}.lesson-main{min-width:0;flex:1}.lesson-subject{display:flex;align-items:center;gap:7px;font-weight:600;flex-wrap:wrap}.lesson-meta{color:var(--text-2);font-size:13px}.lesson-row.cancelled .lesson-subject,.lesson-row.cancelled .lesson-meta,.lesson-row.cancelled .lesson-time{text-decoration:line-through;text-decoration-color:var(--text-3);color:var(--text-3)}.lesson-row.cancelled .lesson-subject .pill{text-decoration:none}.lesson-row.cancelled .lesson-bar{background:repeating-linear-gradient(180deg,var(--border-strong) 0 4px,transparent 4px 7px)}.lesson-progress{height:4px;background:hsl(var(--h) 70% var(--sl) / .22);border-radius:2px;margin-top:7px;overflow:hidden}.lesson-progress span{display:block;height:100%;background:hsl(var(--h) 65% var(--sl));border-radius:2px;transition:width .4s}.test-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.test-list li{display:flex;align-items:center;gap:12px;padding:8px 10px 8px 0;border-radius:10px;cursor:pointer}.test-list li:hover{background:var(--bg-hover)}.test-bar{width:4px;align-self:stretch;border-radius:2px;background:hsl(var(--h) 65% var(--sl))}.test-main{flex:1;min-width:0}.test-subject{font-weight:600}.test-date{font-size:13px;color:var(--text-2)}.todo-groups{display:flex;flex-direction:column;gap:12px}.todo-date{font-size:12px;font-weight:650;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;display:flex;gap:6px}.todo-date span{color:var(--text-3);font-weight:500}.todo-row{display:flex;align-items:center;gap:10px;padding:7px 8px;margin:0 -8px;border-radius:9px;cursor:pointer}.todo-row:hover{background:var(--bg-hover)}.todo-subject{flex:1;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.todo-row.done .todo-subject{text-decoration:line-through;color:var(--text-3)}.grade-feed,.msg-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.grade-feed li{display:flex;align-items:center;gap:12px;padding:7px 0}.grade-badge{width:52px;height:38px;border-radius:10px;display:grid;place-items:center;grid-auto-flow:column;font-weight:700;font-size:16px;background:var(--bg-sunken);font-variant-numeric:tabular-nums;flex-shrink:0}.grade-badge small{font-size:10px;font-weight:500;color:var(--text-3)}.grade-feed-text{flex:1;min-width:0}.grade-feed-subject{display:flex;align-items:center;gap:6px;font-weight:600}.grade-feed-title,.msg-feed-subject{color:var(--text-2);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grade-feed-date,.msg-feed-date{color:var(--text-3);font-size:12.5px;white-space:nowrap}.msg-feed li{display:flex;align-items:center;gap:10px;padding:8px;margin:0 -8px;border-radius:9px;cursor:pointer}.msg-feed li:hover{background:var(--bg-hover)}.msg-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.msg-feed li.unread .msg-dot{background:var(--accent)}.msg-feed-text{flex:1;min-width:0}.msg-feed-from{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-feed li.unread .msg-feed-from{font-weight:700}.hw-days{display:flex;flex-direction:column;gap:26px}.hw-day-title{display:flex;align-items:baseline;gap:10px;font-size:17px;font-weight:650;margin-bottom:10px}.hw-day-date{color:var(--text-3);font-size:13.5px;font-weight:500}.hw-day-count{margin-left:auto;color:var(--text-3);font-size:13px;font-weight:500}.hw-list{display:flex;flex-direction:column;gap:10px}.hw-card{display:flex;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:opacity .2s}.hw-card-bar{width:5px;background:hsl(var(--h) 65% var(--sl));flex-shrink:0}.hw-card.test{border-color:color-mix(in srgb,var(--danger) 35%,var(--border))}.hw-card.done{opacity:.62}.hw-card.done .hw-subject{text-decoration:line-through}.hw-card-body{flex:1;min-width:0;padding:14px 18px 16px}.hw-card-head{display:grid;grid-template-columns:auto 1fr;column-gap:12px;row-gap:2px;align-items:center}.hw-card-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hw-subject{font-weight:650;font-size:15px}.hw-card-meta{grid-column:2;display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--text-3)}.hw-content{margin:10px 0 0 34px}.hw-card .attachments,.hw-card .skeleton-lines{margin-left:34px}.hw-session{margin:12px 0 0 34px;padding-top:10px;border-top:1px solid var(--border)}.hw-session .link-btn{color:var(--text-2)}.hw-session-body{margin-top:8px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg);color:var(--text-2)}.week-nav{display:flex;gap:6px}.edt{position:relative;display:grid;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.edt-corner{border-bottom:1px solid var(--border)}.edt-dayhead{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border-bottom:1px solid var(--border);border-left:1px solid var(--border);min-width:0}.edt-dayname{font-size:12px;color:var(--text-3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.edt-daynum{font-family:var(--font-display);font-size:20px;font-weight:650;width:34px;height:34px;display:grid;place-items:center;border-radius:50%}.edt-dayhead.today .edt-daynum{background:var(--accent);color:#fff}.edt-dayhead.today .edt-dayname{color:var(--accent-text)}.edt-allday{font-size:11px;font-weight:600;background:var(--bg-sunken);color:var(--text-2);border-radius:6px;padding:1px 7px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edt-hours{position:relative;margin:12px 0}.edt-hours span{position:absolute;right:8px;transform:translateY(-50%);font-size:11.5px;color:var(--text-3);font-variant-numeric:tabular-nums}.edt-col{position:relative;border-left:1px solid var(--border);margin:12px 0}.edt-col.today{background:color-mix(in srgb,var(--accent) 4%,transparent)}.edt-line{position:absolute;left:0;right:0;border-top:1px solid var(--border);opacity:.6}.edt-lesson{position:absolute;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:5px 8px 5px 10px;border-radius:8px;background:hsl(var(--h) 70% var(--sl) / var(--soft-a));color:hsl(var(--h) 60% var(--st));border-left:3px solid hsl(var(--h) 65% var(--sl));text-align:left;overflow:hidden;transition:transform .1s,box-shadow .12s;z-index:1}.edt-lesson:hover{box-shadow:var(--shadow-lg);z-index:3}.edt-lesson.compact{flex-direction:row;align-items:center;padding-top:0;padding-bottom:0}.edt-lesson-subject{display:flex;align-items:center;gap:5px;font-weight:650;font-size:12.5px;line-height:1.25;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edt-lesson-subject svg{flex-shrink:0;opacity:.8}.edt-lesson-meta{font-size:11.5px;opacity:.85;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edt-lesson.cancelled{background:repeating-linear-gradient(-45deg,var(--bg-sunken) 0 6px,transparent 6px 12px),var(--bg);color:var(--text-3);border-left-color:var(--border-strong)}.edt-lesson.cancelled .edt-lesson-subject{text-decoration:line-through}.edt-lesson.modified:not(.cancelled):after{content:"";position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--warn)}.edt-now{position:absolute;left:-1px;right:0;height:2px;background:var(--danger);z-index:4;pointer-events:none}.edt-now:before{content:"";position:absolute;left:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--danger)}.edt-loading{position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in srgb,var(--bg-elev) 60%,transparent)}.drawer-backdrop{position:fixed;inset:0;z-index:50;background:#0a0c1447;display:flex;justify-content:flex-end;animation:fade-in .15s ease-out}@keyframes fade-in{0%{opacity:0}}.drawer{position:relative;width:380px;max-width:92vw;height:100%;background:var(--bg-elev);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);padding:56px 28px 28px;overflow-y:auto;animation:drawer-in .2s ease-out;display:flex;flex-direction:column;gap:10px;-webkit-user-select:text;user-select:text}@keyframes drawer-in{0%{transform:translate(30px);opacity:0}}.drawer-close{position:absolute;top:46px;right:16px}.drawer-color{width:44px;height:6px;border-radius:3px;background:hsl(var(--h) 65% var(--sl))}.drawer h2{font-size:22px;font-weight:700}.drawer-kicker{color:hsl(var(--h) 60% var(--st));font-weight:650;font-size:13px}.drawer-when{color:var(--text-2)}.drawer-tags{display:flex;gap:6px;flex-wrap:wrap}.drawer-facts{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:10px}.drawer-facts li{display:flex;align-items:center;gap:10px}.drawer-facts svg{color:var(--text-3)}.drawer .btn-primary{align-self:flex-start;margin-top:6px}.drawer-comment{background:var(--bg);padding:10px 12px;border-radius:var(--radius-sm);color:var(--text-2);margin:0}.drawer-foot{margin-top:auto;color:var(--text-3);font-size:12.5px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:22px}.stat{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);min-width:0}.stat-main{background:linear-gradient(135deg,var(--accent-soft),var(--bg-elev) 70%)}.stat-label{display:flex;align-items:center;gap:6px;color:var(--text-2);font-size:13px;font-weight:500}.stat-value{font-family:var(--font-display);font-size:32px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:2px}.stat-text{font-size:20px;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-sub{display:flex;align-items:center;gap:8px;color:var(--text-3);font-size:12.5px;margin-top:2px}.stat-warn .stat-label svg{color:var(--warn)}.stat-danger .stat-label svg{color:var(--danger)}.stat-ok .stat-label svg{color:var(--ok)}.computed-hint{display:inline-flex;align-items:center;gap:4px;cursor:help}.subjects{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.subject-row{display:grid;grid-template-columns:minmax(170px,230px) minmax(0,1fr) 84px;gap:16px;align-items:center;padding:13px 18px;border-bottom:1px solid var(--border)}.subject-row:last-child{border-bottom:none}.subject-row:hover{background:color-mix(in srgb,var(--bg-hover) 55%,transparent)}.subject-name{display:flex;align-items:center;gap:8px;font-weight:650}.subject-teachers{color:var(--text-3);font-size:12.5px;margin-left:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coef{margin-left:6px;padding:0 6px;border-radius:5px;background:var(--bg-sunken);color:var(--text-2)}.subject-grades{display:flex;flex-wrap:wrap;gap:6px}.grade-chip{position:relative;display:inline-flex;align-items:baseline;gap:1px;height:30px;min-width:40px;padding:0 9px;border-radius:8px;background:var(--bg-sunken);font-weight:650;font-variant-numeric:tabular-nums;line-height:30px;justify-content:center;transition:transform .1s,background .12s}.grade-chip:hover{background:var(--bg-hover);transform:translateY(-1px)}.grade-chip small{font-size:10.5px;color:var(--text-3);font-weight:500}.grade-chip sup{font-size:9.5px;color:var(--text-3);font-weight:600;margin-left:2px}.grade-chip.ns{background:transparent;border:1px dashed var(--border-strong);font-style:italic}.grade-chip.recent:after{content:"";position:absolute;top:-3px;right:-3px;width:9px;height:9px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-elev)}.subject-avg{display:flex;flex-direction:column;align-items:flex-end}.subject-avg strong{font-family:var(--font-display);font-size:20px;font-variant-numeric:tabular-nums}.subject-avg small{color:var(--text-3);font-size:12px;white-space:nowrap}.big-grade{font-family:var(--font-display);font-size:54px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:8px 0 0;line-height:1.1}.big-grade span{font-size:22px;color:var(--text-3);font-weight:500}.range{margin:14px 0 6px}.range-title{font-weight:600;margin-bottom:12px}.range-track{position:relative;height:8px;border-radius:4px;background:var(--bg-sunken)}.range-band{position:absolute;top:0;bottom:0;background:hsl(var(--h) 70% var(--sl) / .25);border-radius:4px}.range-avg{position:absolute;top:-4px;width:2px;height:16px;background:var(--text-3);transform:translate(-1px)}.range-me{position:absolute;top:-5px;width:18px;height:18px;border-radius:50%;background:hsl(var(--h) 65% var(--sl));border:3px solid var(--bg-elev);box-shadow:0 1px 4px #00000040;transform:translate(-9px)}.range-legend{display:flex;justify-content:space-between;color:var(--text-3);font-size:12px;margin-top:10px}.page:has(.page-messages){max-width:none;padding:0 20px 20px}.page-messages{height:calc(100vh - 60px)}.mail{display:grid;grid-template-columns:360px minmax(0,1fr);height:100%;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.mail-list-pane{display:flex;flex-direction:column;border-right:1px solid var(--border);min-height:0}.mail-list-head{display:flex;flex-direction:column;gap:12px;padding:16px 16px 12px;border-bottom:1px solid var(--border)}.mail-title-row{display:flex;align-items:center;justify-content:space-between}.mail-title-row h1{font-size:22px;font-weight:700}.search{display:flex;align-items:center;gap:8px;height:36px;padding:0 6px 0 11px;border-radius:var(--radius-sm);background:var(--bg);border:1px solid var(--border);color:var(--text-3)}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search input{flex:1;border:none;outline:none;background:transparent;color:var(--text);-webkit-user-select:text;user-select:text}.mail-list{flex:1;overflow-y:auto;padding:6px;outline:none}.mail-item{width:100%;display:flex;gap:11px;padding:10px;border-radius:10px;text-align:left;position:relative}.mail-item:hover{background:var(--bg-hover)}.mail-item.selected{background:var(--accent-soft)}.mail-item.unread:before{content:"";position:absolute;left:2px;top:50%;width:4px;height:22px;margin-top:-11px;border-radius:2px;background:var(--accent)}.msg-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:700;flex-shrink:0;background:hsl(var(--h) 70% var(--sl) / var(--soft-a));color:hsl(var(--h) 60% var(--st))}.mail-item-text{flex:1;min-width:0}.mail-item-top{display:flex;justify-content:space-between;gap:8px}.mail-item-from{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mail-item.unread .mail-item-from{font-weight:700}.mail-item-date{color:var(--text-3);font-size:12px;white-space:nowrap}.mail-item.unread .mail-item-date{color:var(--accent-text);font-weight:600}.mail-item-subject{display:flex;align-items:center;gap:6px;color:var(--text-2);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mail-item-subject svg{flex-shrink:0;color:var(--text-3)}.mail-item.unread .mail-item-subject{color:var(--text)}.mail-reader{overflow-y:auto;min-height:0;display:flex;flex-direction:column}.mail-reader>.empty,.mail-reader>.page-loading{margin:auto}.mail-reader>.error-note{margin:24px}.mail-article{padding:28px 36px 36px;max-width:860px;width:100%}.mail-article h2{font-size:22px;font-weight:700;margin-bottom:18px;-webkit-user-select:text;user-select:text}.mail-meta{display:flex;align-items:flex-start;gap:12px;padding-bottom:18px;margin-bottom:20px;border-bottom:1px solid var(--border)}.mail-meta>div{flex:1;min-width:0}.mail-meta-from{font-weight:650}.mail-meta-date,.mail-meta-to{color:var(--text-3);font-size:12.5px}.mail-body{font-size:14.5px}.mail-files{margin-top:26px;padding-top:16px;border-top:1px solid var(--border)}.mail-files-title{display:flex;align-items:center;gap:6px;color:var(--text-2);font-weight:600;font-size:13px}.sl-list{display:flex;flex-direction:column;gap:8px}.sl-row{display:flex;align-items:center;gap:14px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:13px 16px;box-shadow:var(--shadow)}.sl-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;background:var(--bg-sunken)}.sl-row.tone-warn .sl-icon{background:var(--warn-soft);color:var(--warn-text)}.sl-row.tone-danger .sl-icon{background:var(--danger-soft);color:var(--danger-text)}.sl-row.tone-ok .sl-icon{background:var(--ok-soft);color:var(--ok-text)}.sl-row.tone-accent .sl-icon{background:var(--accent-soft);color:var(--accent-text)}.sl-main{flex:1;min-width:0}.sl-title{font-weight:650}.sl-label{font-weight:500;color:var(--text-2)}.sl-when{color:var(--text-2);font-size:13px}.sl-reason{color:var(--text-3);font-size:13px;margin-top:2px}.settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}@media(max-width:1000px){.settings-grid{grid-template-columns:minmax(0,1fr)}}.settings-col{display:flex;flex-direction:column;gap:18px}.settings-list{display:flex;flex-direction:column;gap:4px}.settings-list>.btn{align-self:flex-start;margin-top:10px}.toggle-row,.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 0;cursor:pointer}.setting-row{cursor:default}.toggle-row.disabled{opacity:.5;cursor:default}.toggle-label{font-weight:500}.toggle-hint{color:var(--text-3);font-size:12.5px}.setting-note{color:var(--text-3);font-size:12.5px;margin:2px 0 0}.account-card{display:flex;align-items:center;gap:14px;margin-bottom:16px}.account-card .account-sub{white-space:normal}.about{color:var(--text-3);font-size:12.5px;text-align:center;margin-top:28px}.search-trigger{display:flex;align-items:center;gap:8px;margin:2px 0 6px;height:34px;padding:0 10px;border-radius:var(--radius-sm);background:var(--bg-elev);border:1px solid var(--border);color:var(--text-3);font-size:13px;text-align:left}.search-trigger:hover{border-color:var(--border-strong);color:var(--text-2)}.search-trigger span{flex:1}kbd{font-family:inherit;font-size:11px;padding:1px 6px;border-radius:5px;border:1px solid var(--border);background:var(--bg-sunken);color:var(--text-3)}.sync-status.on{color:var(--accent-text)}.palette-backdrop{position:fixed;inset:0;z-index:80;background:#0a0c1459;display:flex;justify-content:center;align-items:flex-start;padding-top:12vh;animation:fade-in .12s ease-out}.palette{width:min(640px,92vw);max-height:64vh;display:flex;flex-direction:column;background:var(--bg-elev);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden}.palette-input{display:flex;align-items:center;gap:10px;padding:0 16px;height:54px;border-bottom:1px solid var(--border);color:var(--text-3)}.palette-input input{flex:1;border:none;outline:none;background:transparent;font-size:16px;color:var(--text);-webkit-user-select:text;user-select:text}.palette-list{overflow-y:auto;padding:6px}.palette-group{font-size:11.5px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);padding:10px 10px 4px}.palette-item{width:100%;display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:9px;text-align:left}.palette-item.active{background:var(--accent-soft)}.palette-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--bg-sunken);color:var(--text-2);flex-shrink:0}.palette-item.active .palette-icon{background:var(--bg-elev);color:var(--accent-text)}.palette-text{flex:1;min-width:0;display:flex;flex-direction:column}.palette-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-sub{font-size:12.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini{position:relative;height:100vh;padding:14px 16px;background:var(--bg-elev);border:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;gap:8px;overflow:hidden}.mini-close{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;color:var(--text-3)}.mini-close:hover{background:var(--bg-hover);color:var(--text)}.mini-empty{color:var(--text-2);text-align:center}.mini-label{font-size:11.5px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-text)}.mini-lesson{display:flex;gap:10px;align-items:stretch}.mini-bar{width:4px;border-radius:2px;background:hsl(var(--h) 65% var(--sl))}.mini-subject{font-family:var(--font-display);font-size:19px;font-weight:700;line-height:1.2}.mini-meta{display:flex;align-items:center;gap:3px;color:var(--text-2);font-size:13px}.mini-next{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:12.5px;color:var(--text-3);border-top:1px solid var(--border);padding-top:8px}.mini-next strong{color:var(--text-2)}.task-composer{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 14px;margin-bottom:16px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.task-composer:focus-within{border-color:var(--accent)}.task-composer>input:first-of-type{flex:1;min-width:0;border:none;outline:none;background:transparent;height:34px;-webkit-user-select:text;user-select:text}.date-input,.text-input,.num-input{height:34px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elev);color:var(--text);-webkit-user-select:text;user-select:text;outline:none}.date-input:focus,.text-input:focus,.num-input:focus{border-color:var(--accent)}.text-input{flex:1;min-width:160px}.num-input{width:58px;text-align:center}.task-row{display:flex;align-items:center;gap:10px;padding:11px 14px 11px 18px;background:var(--bg-elev);border:1px dashed var(--border-strong);border-radius:var(--radius)}.task-title{flex:1;font-weight:500}.task-subject{font-size:12.5px;color:var(--text-3)}.task-row.done{opacity:.6}.task-row.done .task-title{text-decoration:line-through}.task-row .icon-btn{opacity:0}.task-row:hover .icon-btn{opacity:1}.hw-revise{margin-left:auto}.hw-card-head.no-check{grid-template-columns:1fr}.hw-card-head.no-check .hw-card-meta{grid-column:1}.day-nav-label{font-weight:600;margin-left:6px}.day-block{margin-top:12px}.day-block-title{font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-bottom:4px}.subject-dot.placeholder{width:10px;height:10px;background:var(--border-strong)}.test-revise{margin-left:4px}.modal-backdrop{position:fixed;inset:0;z-index:60;background:#0a0c1459;display:grid;place-items:center;padding:20px;animation:fade-in .12s ease-out}.modal{position:relative;width:min(520px,100%);max-height:90vh;overflow-y:auto;background:var(--bg-elev);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-lg);padding:24px;display:flex;flex-direction:column;gap:14px;-webkit-user-select:text;user-select:text}.modal h2{font-size:20px;font-weight:700}.modal-close{position:absolute;top:16px;right:16px}.modal-text{margin:0;color:var(--text-2)}.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}.modal-actions.center{justify-content:center}code{font-family:Consolas,Cascadia Code,monospace;font-size:.92em;background:var(--bg-sunken);padding:1px 5px;border-radius:5px}.howto{background:var(--bg);border-radius:var(--radius-sm);padding:10px 14px;color:var(--text-2);font-size:13px}.howto summary{cursor:pointer;font-weight:600;color:var(--text)}.howto ul{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.drawer-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.drawer .drawer-actions .btn-primary{margin-top:0}.compose{width:min(640px,100%)}.compose-field{display:flex;align-items:flex-start;gap:10px;border-bottom:1px solid var(--border);padding-bottom:10px}.compose-label{width:44px;flex-shrink:0;color:var(--text-3);font-weight:500;padding-top:6px}.compose-to{flex:1;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.recipient{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 6px 0 10px;border-radius:14px;background:var(--accent-soft);color:var(--accent-text);font-weight:500;font-size:13px}.recipient button{display:grid;place-items:center;width:18px;height:18px;border-radius:50%}.recipient button:hover{background:color-mix(in srgb,var(--accent) 20%,transparent)}.compose-search{flex:1;min-width:180px;display:flex;align-items:center;gap:6px;color:var(--text-3)}.compose-search input,.compose-input{flex:1;border:none;outline:none;background:transparent;height:30px;color:var(--text)}.contact-list{max-height:210px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px;margin-top:-6px}.contact{width:100%;display:flex;justify-content:space-between;gap:10px;padding:7px 10px;border-radius:7px;text-align:left}.contact:hover{background:var(--bg-hover)}.contact-name{display:flex;align-items:center;gap:6px;font-weight:500}.contact-sub{color:var(--text-3);font-size:12.5px}.compose-body{min-height:200px;resize:vertical;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:12px;outline:none;line-height:1.55;-webkit-user-select:text;user-select:text}.compose-body:focus{border-color:var(--accent)}.compose-quote{display:flex;align-items:center;gap:6px;color:var(--text-3);font-size:12.5px}.compose-hint{margin-right:auto;color:var(--text-3);font-size:12px}.mail-article-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.sim-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-text);margin-bottom:16px;font-size:13.5px}.delta{font-size:15px;font-weight:650;margin-left:10px;padding:2px 8px;border-radius:8px;vertical-align:middle}.delta.up{color:var(--ok-text);background:var(--ok-soft)}.delta.down{color:var(--danger-text);background:var(--danger-soft)}.subject-block{border-bottom:1px solid var(--border)}.subject-block:last-child{border-bottom:none}.subject-block .subject-row{border-bottom:none}.subject-row.clickable{cursor:pointer}.subject-block.open{background:color-mix(in srgb,var(--accent-soft) 40%,transparent)}.grade-chip.sim{background:transparent;border:1.5px dashed var(--accent);gap:3px;align-items:center}.grade-chip.add{border:1.5px dashed var(--border-strong);background:transparent;color:var(--text-3);align-items:center;min-width:30px}.sim-panel{padding:4px 18px 14px 36px;display:flex;flex-direction:column;gap:8px}.sim-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--text-2)}.sim-title{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--text);min-width:130px}.sim-result{margin-left:4px}.evolution{display:flex;flex-direction:column;gap:14px}.evo-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.evo-legend{display:flex;flex-wrap:wrap;gap:14px}.evo-key{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:var(--text-2)}.evo-swatch{width:16px;height:3px;border-radius:2px;display:inline-block;flex-shrink:0}.evo-chart{position:relative}.evo-chart svg{display:block;overflow:visible}.evo-grid{stroke:var(--border);stroke-width:1}.evo-ten{stroke:var(--border-strong);stroke-width:1}.evo-axis{fill:var(--text-3);font-size:11.5px;font-variant-numeric:tabular-nums}.evo-dot{stroke:var(--bg-elev);stroke-width:2}.evo-end{fill:var(--text-2);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.evo-cross{stroke:var(--text-3);stroke-width:1}.evo-tooltip{position:absolute;top:8px;width:200px;background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:10px 12px;pointer-events:none;font-size:13px}.evo-tooltip-date{font-weight:650;margin-bottom:6px}.evo-tooltip-row{display:flex;align-items:center;gap:7px;color:var(--text-2)}.evo-tooltip-row span:nth-child(2){flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.evo-tooltip-row strong{color:var(--text);font-variant-numeric:tabular-nums}.evo-pick{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:12px;border-top:1px solid var(--border)}.evo-pick-label{color:var(--text-3);font-size:13px;margin-right:4px}.evo-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:14px;border:1px solid var(--border);background:var(--bg-elev);font-size:12.5px;color:var(--text-2)}.evo-chip:hover:not(:disabled){border-color:var(--border-strong);color:var(--text)}.evo-chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.evo-chip:disabled{opacity:.45}.evo-table-wrap{max-height:340px;overflow:auto}.evo-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;-webkit-user-select:text;user-select:text}.evo-table th,.evo-table td{text-align:right;padding:7px 10px;border-bottom:1px solid var(--border)}.evo-table th:first-child,.evo-table td:first-child{text-align:left}.evo-table th{position:sticky;top:0;background:var(--bg-elev);color:var(--text-3);font-weight:600;font-size:12.5px}.back{margin-bottom:6px}.rev-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.rev-tests,.rev-docs{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:4px}.rev-tests li{display:flex;align-items:center;gap:12px;padding:8px 0}.rev-made{color:var(--accent-text)}.rev-docs li{display:flex;align-items:center;gap:12px;padding:8px;margin:0 -8px;border-radius:10px;cursor:pointer}.rev-docs li:hover{background:var(--bg-hover)}.rev-docs li.rev-child{margin-left:14px;padding-left:16px;position:relative}.rev-docs li.rev-child:before{content:"";position:absolute;left:4px;top:6px;bottom:6px;width:2px;border-radius:1px;background:hsl(var(--h) 60% var(--sl) / .35)}.rev-docs li.rev-child .rev-doc-icon{width:28px;height:28px}.practice-card{margin-top:18px}.practice-card>.muted{margin:0 0 12px}.practice-actions{margin-bottom:0}.practice-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.practice-item{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;border-radius:999px;border:1px solid var(--border);background:var(--bg-elev);font-weight:650;font-size:13.5px}.practice-item:hover{border-color:var(--border-strong)}.practice-item .rev-doc-icon{width:28px;height:28px;border-radius:999px}.practice-item .muted{font-weight:500;font-size:12.5px}.rev-doc-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:hsl(var(--h) 70% var(--sl) / var(--soft-a));color:hsl(var(--h) 60% var(--st));flex-shrink:0}.rev-doc-text{min-width:0}.rev-doc-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rev-doc-sub{display:flex;align-items:center;gap:5px;color:var(--text-3);font-size:12.5px}.rev-free-btn{width:100%}.rev-free{display:flex;gap:8px;flex-wrap:wrap}.rev-topic{margin-bottom:18px}.rev-topic input{height:42px;padding:0 13px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elev);color:var(--text);font-size:15px;outline:none;-webkit-user-select:text;user-select:text}.rev-topic input:focus{border-color:var(--accent)}.rev-workspace{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;align-items:start}@media(max-width:1000px){.rev-grid,.rev-workspace{grid-template-columns:minmax(0,1fr)}}.rev-gathering{display:flex;gap:10px;align-items:center;justify-content:center}.src-group{margin-bottom:14px}.src-group-title{font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-bottom:6px}.src{display:flex;gap:10px;align-items:flex-start;padding:7px 8px;margin:0 -8px;border-radius:8px;cursor:pointer}.src:hover{background:var(--bg-hover)}.src input{accent-color:var(--accent);width:16px;height:16px;margin:2px 0 0;flex-shrink:0}.src-label{font-weight:500}.src-detail{color:var(--text-3);font-size:12.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notes-input{width:100%;margin-top:12px;min-height:80px;resize:vertical;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:10px 12px;outline:none;-webkit-user-select:text;user-select:text}.notes-input:focus{border-color:var(--accent)}.rev-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.rev-action{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;border-radius:12px;border:1px solid var(--border);background:var(--bg);text-align:left;transition:border-color .12s,transform .12s,background .12s}.rev-action:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.rev-action:disabled{opacity:.5}.rev-action-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--accent);color:#fff;margin-bottom:4px}.rev-action-title{font-weight:650}.rev-action-desc{font-size:12.5px;color:var(--text-3)}.rev-running-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.rev-running-head .btn{margin-left:auto}.rev-live{max-height:60vh;overflow-y:auto}.fiche{padding:26px 32px}.markdown h2{font-size:18px;font-weight:700;margin:1.3em 0 .5em;padding-bottom:4px;border-bottom:2px solid hsl(var(--h, 240) 65% var(--sl) / .4)}.markdown h2:first-child{margin-top:0}.markdown h3{font-size:15.5px;margin:1em 0 .4em}.markdown table{width:100%}.markdown th{background:var(--bg-sunken);text-align:left}.markdown li{margin:2px 0}.rev-meta{display:flex;align-items:center;gap:6px;color:var(--text-3);font-size:12.5px;margin-top:14px}.quiz{max-width:760px}.quiz-progress{display:flex;justify-content:space-between;color:var(--text-3);font-size:13px;margin-bottom:6px}.progress{height:5px;border-radius:3px;background:var(--bg-sunken);overflow:hidden;margin-bottom:18px}.progress span{display:block;height:100%;background:var(--accent);border-radius:3px;transition:width .3s}.quiz-q{font-size:19px;font-weight:650;margin-bottom:16px;-webkit-user-select:text;user-select:text}.quiz-choices{display:flex;flex-direction:column;gap:8px}.quiz-choice{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:11px;border:1px solid var(--border);background:var(--bg);text-align:left;transition:border-color .12s,background .12s}.quiz-choice span:nth-child(2){flex:1}.quiz-choice:hover:not(:disabled){border-color:var(--accent)}.quiz-letter{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;background:var(--bg-sunken);font-weight:700;font-size:13px;flex-shrink:0}.quiz-choice.right{border-color:var(--ok);background:var(--ok-soft);color:var(--ok-text)}.quiz-choice.wrong{border-color:var(--danger);background:var(--danger-soft);color:var(--danger-text)}.quiz-choice.dim{opacity:.55}.quiz-explain{margin-top:14px;padding:12px 14px;border-radius:10px;background:var(--bg-sunken);-webkit-user-select:text;user-select:text}.quiz-explain.right strong{color:var(--ok-text)}.quiz-explain.wrong strong{color:var(--danger-text)}.quiz-next{margin-top:14px}.quiz-end{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.quiz-score{font-family:var(--font-display);font-size:56px;font-weight:700;color:var(--accent-text)}.quiz-missed{text-align:left;width:100%;margin:8px 0}.quiz-missed-item{display:flex;flex-direction:column;padding:8px 0;border-bottom:1px solid var(--border);font-size:13.5px;-webkit-user-select:text;user-select:text}.quiz-missed-item span{color:var(--ok-text)}.cards{max-width:640px}.flashcard{position:relative;width:100%;height:280px;perspective:1200px;margin-bottom:16px}.flashcard-face{position:absolute;inset:0;display:grid;place-items:center;padding:30px;border-radius:18px;border:1px solid var(--border);box-shadow:var(--shadow);backface-visibility:hidden;transition:transform .45s cubic-bezier(.2,.7,.2,1);font-size:19px;line-height:1.5;text-align:center}.flashcard-face.front{background:var(--bg-elev);font-family:var(--font-display);font-weight:650;font-size:22px}.flashcard-face.back{background:var(--accent-soft);color:var(--accent-text);transform:rotateY(180deg)}.flashcard.flipped .front{transform:rotateY(-180deg)}.flashcard.flipped .back{transform:rotateY(0)}.center-text{text-align:center}.chat{display:flex;flex-direction:column;height:calc(100vh - 230px);min-height:380px;padding:0;overflow:hidden}.chat-log{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}.chat-empty{margin:auto;text-align:center;color:var(--text-2);max-width:520px;display:flex;flex-direction:column;align-items:center;gap:6px}.chat-suggestions{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:8px}.bubble{max-width:82%;padding:11px 15px;border-radius:16px;line-height:1.55;-webkit-user-select:text;user-select:text}.bubble.user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:5px;white-space:pre-wrap}.bubble.assistant{align-self:flex-start;background:var(--bg-sunken);border-bottom-left-radius:5px}.bubble.assistant .markdown h2{font-size:15px;border:none}.chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border)}.chat-input textarea{flex:1;resize:none;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:9px 12px;outline:none;-webkit-user-select:text;user-select:text}.chat-input textarea:focus{border-color:var(--accent)}.chat-input .btn{align-self:flex-end;height:40px}.ai-setup{display:flex;gap:14px;padding:16px;border-radius:var(--radius);background:linear-gradient(135deg,var(--accent-soft),transparent 80%);border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border));margin-bottom:18px;-webkit-user-select:text;user-select:text}.card .ai-setup{margin-bottom:0}.ai-setup-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--accent);color:#fff;flex-shrink:0}.ai-setup-body{flex:1;min-width:0}.ai-setup-body p{margin:4px 0;color:var(--text-2)}.ai-setup-body ol{margin:6px 0 12px;padding-left:20px;color:var(--text-2);display:flex;flex-direction:column;gap:4px}.ai-setup-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.ai-key-form{display:flex;align-items:center;gap:8px;padding:4px 4px 4px 12px;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:var(--radius-sm);margin-bottom:8px}.ai-key-form input{flex:1;min-width:0;border:none;outline:none;background:transparent;height:32px;font-family:Consolas,monospace}.ai-ok{display:flex;align-items:center;gap:8px;color:var(--ok-text);background:var(--ok-soft);padding:8px 12px;border-radius:var(--radius-sm);margin-bottom:8px}.model-list{display:flex;flex-direction:column;gap:6px}.model{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer}.model.selected{border-color:var(--accent);background:var(--accent-soft)}.model input{accent-color:var(--accent);margin:3px 0 0}.model .toggle-label{display:flex;align-items:center;gap:8px}.day-chips{display:flex;gap:6px}.setting-row.disabled{opacity:.5}.toggle-label svg{vertical-align:-2px}.colors{margin-top:18px}.color-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0}.color-name{display:flex;align-items:center;gap:8px;font-weight:500;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.swatches{display:flex;align-items:center;gap:4px;flex-shrink:0}.swatch{width:16px;height:16px;border-radius:50%;border:2px solid transparent;transition:transform .1s}.swatch:hover{transform:scale(1.2)}.swatch.on{box-shadow:0 0 0 2px var(--bg-elev),0 0 0 4px var(--text-2)}.provider-body{margin-top:14px}.setup-card{margin-bottom:18px}.waiting{display:inline-flex;align-items:center;gap:8px;color:var(--text-3);font-size:13px}.model-text{flex:1;min-width:0}.model-text .toggle-hint svg{vertical-align:-1px;margin-left:4px}.model-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.model input:disabled{opacity:.35}.pull{display:flex;align-items:center;gap:10px;margin-top:8px}.pull .progress{flex:1;margin:0}.pull-text{font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap}.site-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px;align-items:start}@media(max-width:1000px){.site-grid{grid-template-columns:minmax(0,1fr)}}.site-col{display:flex;flex-direction:column;gap:18px;min-width:0}.site-sessions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}.site-session{position:relative;padding-left:16px;border-left:2px solid hsl(var(--h) 60% var(--sl) / .45)}.site-session:first-child{border-left-color:hsl(var(--h) 65% var(--sl))}.site-session-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin-bottom:6px}.site-session-date{font-weight:650}.site-session-due{font-size:12.5px;color:var(--text-3)}.site-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.site-line{display:flex;align-items:flex-start;gap:10px;line-height:1.4}.site-line .done-check{margin-top:-1px}.site-line-icon{width:22px;height:22px;flex-shrink:0;display:grid;place-items:center;border-radius:7px;color:var(--text-3);background:var(--bg-sunken)}.site-line.kind-interro .site-line-icon{color:var(--danger-text);background:var(--danger-soft)}.site-line.kind-exercices .site-line-text{font-weight:600}.site-line.done .site-line-text{color:var(--text-3);text-decoration:line-through}.site-line-body{min-width:0;display:flex;flex-direction:column;gap:5px}.site-links{display:flex;flex-wrap:wrap;gap:6px}.site-link{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:13px;font-size:12.5px;font-weight:600;color:hsl(var(--h) 55% var(--st));background:hsl(var(--h) 70% var(--sl) / var(--soft-a));transition:filter .12s}.site-link:hover{filter:brightness(.95)}.site-more{margin-top:14px}.site-chapters{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.site-chapters li{display:flex;gap:10px;align-items:flex-start}.site-chapter-num{width:26px;height:26px;flex-shrink:0;border-radius:8px;display:grid;place-items:center;font-size:12.5px;font-weight:700;background:var(--bg-sunken);color:var(--text-2)}.site-chapters li.hot .site-chapter-num{background:var(--danger-soft);color:var(--danger-text)}.site-chapter-body{min-width:0;display:flex;flex-direction:column;gap:5px}.site-chapter-title{display:flex;align-items:center;gap:8px;font-weight:600;padding-top:3px}.site-past{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.site-past li{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.site-past-title{font-weight:600}.pill-site{background:hsl(var(--h) 70% var(--sl) / var(--soft-a));color:hsl(var(--h) 55% var(--st))}.site-banner{margin-bottom:16px;padding:12px 16px;border-left:4px solid hsl(var(--h) 65% var(--sl))}.site-banner-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.site-banner-title{display:flex;align-items:center;gap:7px;font-weight:650}.site-banner-title svg{color:hsl(var(--h) 60% var(--sl))}.site-banner-test{display:flex;align-items:center;gap:8px;padding:6px 0;color:var(--danger-text)}.site-banner-test span:nth-child(2){flex:1;min-width:0}.site-banner-due{font-size:12.5px;white-space:nowrap}.site-subtitle{color:var(--text-2);margin:-6px 0 0}.site-due{margin-left:8px;vertical-align:1px;background:var(--warn-soft);color:var(--warn-text)}.site-detect{display:flex;flex-direction:column;gap:10px;margin-top:6px}.site-detect-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.site-detect-list li{display:flex;gap:9px;align-items:flex-start;line-height:1.4}.site-detect-list svg{flex-shrink:0;margin-top:2px}.site-detect-actions{display:flex;align-items:center;gap:10px;font-size:12.5px}.site-pages{display:flex;flex-direction:column;gap:8px;margin-top:6px}:root{--sat: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));--sab: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--sal: var(--safe-area-inset-left, env(safe-area-inset-left, 0px));--sar: var(--safe-area-inset-right, env(safe-area-inset-right, 0px));--tabbar-h: 62px}.m-topbar,.m-tabbar{display:none}html:not([data-platform=desktop]) .titlebar{height:24px;-webkit-app-region:no-drag}@media(hover:none){.search-trigger kbd,.compose-hint,.palette-foot{display:none}*{-webkit-tap-highlight-color:transparent}}.hide-narrow{display:inline}@media(max-width:760px){body{font-size:15px;overscroll-behavior:none}.app{display:block;height:100vh;height:100dvh}.sidebar,.titlebar,.hide-narrow{display:none!important}.main{height:100vh;height:100dvh;padding-bottom:calc(var(--tabbar-h) + var(--sab) + 12px);scroll-behavior:auto;overscroll-behavior-y:contain}.page{padding:4px calc(14px + var(--sar)) 24px calc(14px + var(--sal))}.m-topbar{display:flex;position:sticky;top:0;z-index:30;align-items:center;justify-content:space-between;gap:8px;padding:calc(var(--sat) + 6px) calc(8px + var(--sar)) 6px calc(14px + var(--sal));background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:saturate(1.5) blur(16px);backdrop-filter:saturate(1.5) blur(16px)}.m-brand{display:flex;align-items:center;gap:9px;font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.02em;color:var(--text)}.m-brand img{border-radius:7px}.m-top-actions{display:flex;align-items:center;gap:2px}.m-icon-btn{position:relative;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:var(--text-2)}.m-icon-btn:active:not(:disabled){background:var(--bg-hover)}.m-dot-warn{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--warn)}.m-avatar-btn{padding:4px;margin-left:2px}.m-avatar-btn .avatar{width:32px;height:32px;font-size:12px}.m-tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;padding:6px calc(4px + var(--sar)) calc(6px + var(--sab)) calc(4px + var(--sal));background:color-mix(in srgb,var(--bg-elev) 90%,transparent);-webkit-backdrop-filter:saturate(1.5) blur(18px);backdrop-filter:saturate(1.5) blur(18px);border-top:1px solid var(--border)}.m-tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:2px 0;color:var(--text-3);font-size:11px;font-weight:600;min-width:0}.m-tab-icon{position:relative;display:grid;place-items:center;width:54px;height:30px;border-radius:15px;transition:background .15s,color .15s}.m-tab-label{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-tab.active{color:var(--text)}.m-tab.active .m-tab-icon{background:var(--accent-soft);color:var(--accent-text)}.m-badge{position:absolute;top:-4px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:10.5px;font-weight:700;line-height:1;display:grid;place-items:center;border:2px solid var(--bg-elev);box-sizing:content-box}.m-badge.accent{background:var(--accent)}.m-sheet-backdrop{position:fixed;inset:0;z-index:50;background:#0a0c146b;display:flex;align-items:flex-end;animation:fade-in .15s ease-out}.m-sheet{width:100%;background:var(--bg-elev);border-radius:22px 22px 0 0;padding:8px calc(16px + var(--sar)) calc(16px + var(--sab)) calc(16px + var(--sal));box-shadow:var(--shadow-lg);animation:sheet-up .22s cubic-bezier(.2,.9,.3,1);max-height:85dvh;overflow-y:auto}.m-sheet-grip{width:40px;height:5px;border-radius:3px;background:var(--border-strong);margin:0 auto 10px}.m-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.m-sheet-head .account{border:none;margin:0;padding:0}.m-sheet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.m-sheet-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px 12px;border-radius:16px;background:var(--bg-sunken);color:var(--text);font-size:13px;font-weight:600;text-align:center;line-height:1.2}.m-sheet-item.active{background:var(--accent-soft);color:var(--accent-text)}.m-sheet-icon{position:relative;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--bg-elev);color:var(--accent);box-shadow:var(--shadow-sm)}.m-sheet-icon .m-badge{top:-6px;left:auto;right:-8px}.m-sheet-sync{width:100%;justify-content:center;margin-top:14px}}@keyframes sheet-up{0%{transform:translateY(40%);opacity:.4}}@media(hover:none){.main::-webkit-scrollbar{width:0;height:0}}@media(max-width:760px){.page-header{align-items:flex-start;gap:12px;margin:6px 0 16px}.page-header h1{font-size:26px}.page-actions{flex-wrap:wrap;gap:6px}.card{padding:16px;border-radius:16px}.btn{min-height:36px}.task-composer{flex-wrap:wrap;padding:8px 8px 8px 12px}.task-composer>input:first-of-type{flex:1 1 calc(100% - 32px)}.task-composer .date-input,.task-composer .select{flex:1 1 0;min-width:0}.edt-daytabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;margin:-4px 0 12px}.edt-daytab{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 2px 6px;border-radius:14px;background:var(--bg-elev);border:1px solid var(--border);color:var(--text-2);min-width:0}.edt-daytab span{font-size:11.5px;font-weight:600;text-transform:capitalize}.edt-daytab strong{font-family:var(--font-display);font-size:19px;line-height:1.2;color:var(--text)}.edt-daytab i{font-style:normal;font-size:10.5px;color:var(--text-3);white-space:nowrap}.edt-daytab.today strong{color:var(--accent-text)}.edt-daytab.active{background:var(--accent);border-color:var(--accent);color:#ffffffd9}.edt-daytab.active strong,.edt-daytab.active i{color:#fff}.edt-oneday .edt-dayname,.edt-oneday .edt-daynum{display:none}.edt-oneday .edt-corner,.edt-oneday .edt-dayhead:not(:has(.edt-allday)){display:none}.edt-oneday .edt-lesson{padding:6px 10px 6px 12px}.edt-oneday .edt-lesson-subject{font-size:14px}.week-nav .btn:not(.btn-icon){padding:0 10px}}@media(max-width:760px){.stats{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:16px}.stat{padding:13px 14px}.stat-main{grid-column:1 / -1}.stat-text{font-size:19px}.subject-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"info avg" "grades grades";gap:10px 12px;padding:13px 14px}.subject-info{grid-area:info;min-width:0}.subject-grades{grid-area:grades}.subject-avg{grid-area:avg}}.mail-back{display:none}@media(max-width:760px){.page:has(.page-messages){padding:4px calc(14px + var(--sar)) 24px calc(14px + var(--sal))}.page-messages{height:auto}.mail{display:block;height:auto;background:transparent;border:none;box-shadow:none}.mail-list-pane{border-right:none}.mail-list-head{padding:4px 0 10px}.mail-list{overflow:visible;padding:6px;background:var(--bg-elev);border:1px solid var(--border);border-radius:16px}.page-messages:not(.reading) .mail-reader,.page-messages.reading .mail-list-pane{display:none}.page-messages.reading .mail-reader{background:var(--bg-elev);border:1px solid var(--border);border-radius:16px;overflow:visible}.mail-article{padding:14px 16px 22px}.mail-article h2{font-size:19px}.mail-back{display:inline-flex;margin-bottom:14px}.mail-article-head{flex-wrap:wrap}.mail-body{overflow-x:auto}}@media(max-width:760px){.color-row{flex-wrap:wrap;gap:6px;padding:7px 0}.color-name{flex:1 1 100%}.swatches{flex:1 1 100%;flex-wrap:wrap;gap:7px}.swatch{width:22px;height:22px}.toggle-row,.setting-row{padding:11px 0}.setting-row{flex-wrap:wrap}.about{margin-top:18px}}@media(max-width:760px){.palette-backdrop{padding:calc(var(--sat) + 10px) 10px 0;background:#0a0c1480}.palette{width:100%;max-height:72dvh}}@media(max-width:760px){.drawer-backdrop{align-items:flex-end;justify-content:stretch;background:#0a0c1473}.drawer{width:100%;max-width:none;height:auto;max-height:86dvh;border-left:none;border-radius:22px 22px 0 0;padding:22px calc(20px + var(--sar)) calc(24px + var(--sab)) calc(20px + var(--sal));animation:sheet-up .22s cubic-bezier(.2,.9,.3,1)}.drawer-close{top:14px;right:14px}.modal-backdrop{padding:calc(var(--sat) + 8px) 8px calc(var(--sab) + 8px);background:#0a0c1480}.modal{max-height:100%;padding:18px 16px;border-radius:18px}.modal-actions{flex-wrap:wrap}}@media(max-width:760px){.login-screen{padding:calc(20px + var(--sat)) 14px calc(20px + var(--sab))}.login-card{padding:22px 18px}.login-brand{margin-bottom:20px}.qcm-choice{padding:13px 12px}}html:not([data-platform=desktop]) .login-drag{height:var(--sat);background:var(--bg);z-index:5}.install-banner{position:fixed;right:18px;bottom:18px;z-index:45;width:min(380px,calc(100vw - 24px));display:flex;gap:12px;padding:16px 40px 16px 16px;background:var(--bg-elev);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-lg);animation:sheet-up .25s cubic-bezier(.2,.9,.3,1)}.install-close{position:absolute;top:10px;right:10px}.install-icon{width:40px;height:40px;flex-shrink:0;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text)}.install-body{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}.install-body p{margin:0;color:var(--text-2);font-size:13px}.install-body .btn{margin-top:4px;text-decoration:none}.install-body .install-note{font-size:11.5px;color:var(--text-3)}.install-steps{margin:2px 0 0;padding-left:18px;color:var(--text-2);font-size:13px;display:flex;flex-direction:column;gap:4px}.install-steps svg{vertical-align:-2px;color:var(--accent-text)}@media(max-width:760px){.install-banner{left:12px;right:12px;width:auto;bottom:calc(12px + var(--sab))}.install-banner.above-tabs{bottom:calc(var(--tabbar-h) + var(--sab) + 10px)}}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAa0ABQAAAAADOwAAAZHAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbbhwoP0hWQVJtP01WQVJGBmA/U1RBVIEcAGQvXBEICoMkgmcLFgAwhEwBNgIkAyYEIAWGXAdiDAcbOgtRlHLSRcD8TEzkdoghPRuspKefbVnJIM5yRfA8vZv9uTNJSCZY21Scrigr6qyJ/C3sE1OFKuVP3e+lxUTbYio1zb/kFdk2bufY2BlhWERRBrcDUBhB5GEpd2Cy+MDxqf9zLPX+XVsk5r+s50d6IpWLatqbdT6f2MAikiOKQocbjya2QT0DqPDX4R0jQBgAUAiCRhDA0EkvYeLk9X3I2bEWI8jBAihIANm+kUWQBgggWChcBBdFhXlAUgOCAgBA0AgKjUJ8HKvjddFCKSgAVklEBYAeEJgCQJH0qB3B+neDg4sAA4hAD0AVIEAA0IACJGeaUjMIIIhBUE/zNABjTQMBwEVRcwcYBUCObLERABAgjAA1M/ZSa9hSi4OlpsnZ2KBOVUsAZlRGl1W0NZ6gSwhQPIAFs7YFL0QS91vRQgdgx2VDAnIegKpQvwAJIoLgooBAGtCJcHizg0TDiz8vhPgIcVXaDJu37ZyDAIjFy4AAiC1JAA0olJwN6nFAACQk/zfQVUuA3t5ELKMT9hpBSRj+HBSggYCIAIEkUoC4PCIQIWHGA8+IStxf0PW15ntP22gc+Wo+BLyQAHECQiAVd+c3Ba8gZ4NOACBaLOhsbIMkAXEmuHsSAvkf4oJaAogH6nEQAzoBIEihUAwAA0AACAObAGcANYAAABaqgMmpWAhiiVyrvNyqFV8tMQ5Iyq6r9Lf7W82i8ILl2cv8zbfdJ5lnPzSnvt/XXPfRR/5pH3xA+u5uS0798EPJ3Fft33w36Wc+8E/7aIB/9fvvb1pE9erNXLB9mkw//cSg8Cnx03VGXDvZnRzKqV9Xkhn7eRHb3wVjHpg19nkZpX9bBU+vnHegrsuQcbW9Bi7oO33h+8SU0Tly/MbeYUuG1cftVz6oNxrW0qH1iezq446fkDFo/rgvTkqt7zmteFzncZ0uxXti09FFF2z+C7CODpjUudOE5NSeb3bv/mbPKcmOEzpWQ3VBgBAuj/AOY3qMm7UvgA8qo3+qvAUBBAX0wADQG4AG+jCKaSxkBe/zvcTG8jRpRZgqhCog4sd++cOo7J+/RdvaaMoc78Ri/PNPSclx6fDvG1Kt3qQFi1rq+5EaavTtt9TVvfvucYsA5wc4oESU+E1ikF9TkrOkIsIH5Fawx7SBNLnMcWlM3skBluCmQNs7GeyFvYVDamsqwhxx18n/+WdxzDgOLU1AqbUlb3m+KOT9+ONvY/7XlrdLS//5v7nN97XHj0VzJpJvz4spq0V7ioXDuv2YrSxtF/KZmvbWfKtorXSh8dfvgGu+ev/nFSaXM6jyuCE/f/EpmuP7Rqu8R98vP/+tXUdrOgKlZP9Q/s+fRF9+3CHZd4EugfPv158me9X7v/6aSMCxMJmIr//65bNXngl7+uiPP5oKx+y27D8trp+psUzMacpm80XlnYeMAct0LynxhNYgaP3dtn8/LBAi+ksr+7NvjjtJV+UXrz0uLXV1x08AZRN1S2A8EaVE5afk/dfGjz//+fdHn36Xdttz2d9/z+bawZ8/slNN1aYtq+ZPGzNuPGdwOsfYflwmHCkPgs5DcKizvdpS/3gEUMW9/lvQvWp1bGTW1fpngC/uSVYAfH3TeSusL8TtlHUD4KAAEHjahk4YpuffGwEBN/dUmpHqdHyJ3Ap8O3UlQ4gCNrMRwLBBKiskL6a+RoBi/9XGlgc8L4/CUejQxaiIyqmomdhktOhfgDbDfaNDb4+yKIPd6IgmzDa0CByijWFmL2dlSRKagTIWXeIU9HDphoZiJeBTjAefHMxDhVSRFUgVcOkW3EGMahYVMFjWHhMluB2wAcbHYqF1LpsDF9C6s+CI2fDgh4wSuFEyGadjXAmIk3CugIRibLIti9ZtC8S4VSqfikGqPaoI122XyRYLBmsOmdiiTpqK1OklUQzpMcZmQRQV4M4oJCMkfRQXK+qvjifUcQd1bRdetW/LWjacYxvcttnVjWg5h0q4xw6rZyejSpZVZ78LzC4uyDNRQ4bymHSTMyM+SZ7D75mg/7YTlmNz7W8T00h0VEiGKB+F7iWYZFvSTiA4LVxttm2ATt5EoUWLJbY4EnLGrfsvEROlHtzlKn3H9VUT5tU/2dt3/EBv7foYzV/W4upyj04woO/gh6Vwwt3WGQAA) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-vietnamese-wght-normal-RvljkFvg.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-latin-ext-wght-normal-B6JQhE1e.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-latin-wght-normal-ci0D1wrL.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.section-tabs{max-width:1240px;margin:0 auto;padding:0 36px}.section-tabs-inner{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px 0 16px}.section-tabs-inner::-webkit-scrollbar{display:none}.section-tab{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 15px;border-radius:18px;background:var(--bg-elev);border:1px solid var(--border);color:var(--text-2);font-weight:600;font-size:13.5px;white-space:nowrap;flex-shrink:0;transition:background .12s,color .12s,border-color .12s}.section-tab:hover{color:var(--text);border-color:var(--border-strong)}.section-tab.active{background:var(--text);border-color:var(--text);color:var(--bg)}.section-tab-badge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:#fff;font-size:11.5px;font-weight:700;display:grid;place-items:center}.section-tab.active .section-tab-badge{background:var(--bg);color:var(--text)}.account-btn{width:100%;text-align:left;padding:10px 8px;border-radius:var(--radius-sm);color:var(--text);transition:background .12s}.account-btn:hover,.account-btn.active{background:var(--bg-hover)}.account-gear{margin-left:auto;color:var(--text-3);flex-shrink:0}.account-btn.active .account-gear{color:var(--accent)}.qcm-backdrop{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:calc(16px + var(--sat, 0px)) calc(12px + var(--sar, 0px)) calc(16px + var(--sab, 0px)) calc(12px + var(--sal, 0px));background:#0a0c148c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:fade-in .15s ease-out}.qcm-modal{width:100%;max-width:470px;max-height:100%;display:flex;flex-direction:column;background:var(--bg-elev);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-lg);overflow:hidden;animation:qcm-in .22s cubic-bezier(.2,.9,.3,1)}@keyframes qcm-in{0%{opacity:0;transform:translateY(14px) scale(.98)}}.qcm-head{flex-shrink:0;display:flex;gap:12px;padding:20px 20px 14px;border-bottom:1px solid var(--border)}.qcm-head-icon{width:42px;height:42px;flex-shrink:0;border-radius:13px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text)}.qcm-head h2{font-size:17px;font-weight:700}.qcm-head p{margin:3px 0 0;color:var(--text-2);font-size:13px;line-height:1.45}.qcm-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 20px 18px;display:flex;flex-direction:column;gap:14px}.qcm-body .qcm-question{font-size:17px}.qcm-body .qcm-choice{min-height:48px}.qcm-foot{flex-shrink:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:10px;padding:12px 20px 16px;border-top:1px solid var(--border);background:var(--bg-elev)}.qcm-foot .btn{height:46px;font-size:15px}@media(max-width:360px){.qcm-choices{grid-template-columns:minmax(0,1fr)}}@media(max-height:520px){.qcm-head p{display:none}}.login-fields{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:16px}.login-fields:disabled{opacity:.55}.install-banner.inline{position:relative;inset:auto;width:100%;max-width:420px;margin:0 0 8px;flex-shrink:0;animation:none;box-shadow:var(--shadow)}.login-screen:has(.install-banner.inline) .login-footnote{margin-bottom:16px}.login-screen:has(.install-banner.inline) .install-banner.inline{margin-bottom:auto}.site-card .site-source{display:inline-flex;align-items:center;gap:4px;color:hsl(var(--h) 55% var(--st));font-weight:600}.site-clear{display:flex;flex-direction:column;gap:6px}.site-clear p{margin:0}.site-clear-title{font-size:15.5px;font-weight:600;color:var(--text);line-height:1.4;-webkit-user-select:text;user-select:text}.hw-card.done .site-clear-title{text-decoration:line-through;color:var(--text-3)}.site-clear-line{display:flex;align-items:flex-start;gap:7px;color:var(--text-2);font-size:13.5px}.site-clear-line svg{flex-shrink:0;margin-top:2px;color:hsl(var(--h) 60% var(--sl))}.site-clear-note{color:var(--warn-text)}.site-clear-note svg{color:var(--warn)}.site-original{font-size:12.5px;color:var(--text-3);font-style:italic;-webkit-user-select:text;user-select:text;overflow-wrap:anywhere}.site-files{margin:6px 0 0}.hw-card .site-files{margin:12px 0 0 34px}.site-files-title{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:7px}.site-files .attachments,.hw-card .site-files .attachments{margin:0}.site-files .attachment-icon{color:hsl(var(--h) 60% var(--sl))}.site-files .file-pdf .attachment-icon{color:var(--danger)}.site-files .file-zip .attachment-icon{color:var(--warn)}.site-card-foot{margin:10px 0 0 34px}.site-card-foot .link-btn{color:var(--text-2)}.kind-pill{background:var(--bg-sunken);color:var(--text-2)}.kind-pill.kind-devoir,.kind-pill.kind-afinir{background:var(--warn-soft);color:var(--warn-text)}.kind-pill.kind-interro{background:var(--danger-soft);color:var(--danger-text)}.kind-pill.kind-chapitre,.kind-pill.kind-cours{background:hsl(var(--h) 70% var(--sl) / var(--soft-a));color:hsl(var(--h) 55% var(--st))}.kind-pill.kind-correction{background:var(--ok-soft);color:var(--ok-text)}.kind-pill.kind-evenement{background:var(--accent-soft);color:var(--accent-text)}.site-line-text{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.site-line-title{font-weight:550;-webkit-user-select:text;user-select:text}.site-line.kind-devoir .site-line-title,.site-line.kind-afinir .site-line-title,.site-line.kind-chapitre .site-line-title{font-weight:650}.site-line.done .site-line-text{text-decoration:none}.site-line.done .site-line-title{color:var(--text-3);text-decoration:line-through}.site-line-meta{font-size:12.5px;color:var(--text-2)}.site-line .site-original{font-size:12px}.site-line .site-files{margin:2px 0 0}.site-line .site-due{margin-left:0}.site-line.kind-devoir .site-line-icon,.site-line.kind-afinir .site-line-icon{color:var(--warn-text);background:var(--warn-soft)}.site-line.kind-chapitre .site-line-icon,.site-line.kind-cours .site-line-icon{color:hsl(var(--h) 55% var(--st));background:hsl(var(--h) 70% var(--sl) / var(--soft-a))}.site-lines{gap:12px}.site-parts{margin:0;padding-left:18px;color:var(--text-2);display:flex;flex-direction:column;gap:2px}.site-session-head .pill{align-self:center}.site-todo-link{display:flex;align-items:center;gap:12px;width:100%;text-align:left;color:var(--text);border-left:4px solid hsl(var(--h) 65% var(--sl));cursor:pointer}.site-todo-link span{flex:1;min-width:0}.site-todo-link>svg:first-child{color:hsl(var(--h) 60% var(--sl));flex-shrink:0}.site-todo-link:hover{background:var(--bg-hover)}.appearance-row{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:18px}.appearance-row .setting-note{margin:0}.tab-short{display:none}@media(max-width:760px){.section-tabs{padding:8px calc(14px + var(--sar)) 0 calc(14px + var(--sal))}.section-tabs-inner{padding-bottom:6px}.section-tab-badge,.tab-long{display:none}.tab-short{display:inline}.hw-card .site-files,.site-card-foot{margin-left:0}}@media(hover:none){.task-row .icon-btn{opacity:.7}}html[data-vt] .page{animation:none}html[data-vt-running] .page{view-transition-name:page}html[data-vt-running] .nav-item.active{view-transition-name:nav-pill}html[data-vt-running] .section-tab.active{view-transition-name:section-pill}html[data-vt-running] .m-tab:nth-child(1){view-transition-name:tab-1}html[data-vt-running] .m-tab:nth-child(2){view-transition-name:tab-2}html[data-vt-running] .m-tab:nth-child(3){view-transition-name:tab-3}html[data-vt-running] .m-tab:nth-child(4){view-transition-name:tab-4}html[data-vt-running] .m-tab:nth-child(5){view-transition-name:tab-5}html[data-vt-running] .m-tabbar{view-transition-name:m-tabbar}html[data-vt-running] .m-topbar{view-transition-name:m-topbar}::view-transition-old(m-tabbar),::view-transition-old(m-topbar){display:none}::view-transition-new(m-tabbar),::view-transition-new(m-topbar){animation:none}::view-transition-group(*){animation-duration:.24s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}::view-transition-old(root),::view-transition-new(root){animation:none}::view-transition-group(page){animation:none}::view-transition-old(page){animation:vt-page-out .1s ease-in both}::view-transition-new(page){animation:vt-page-in .22s cubic-bezier(.2,.8,.2,1) both}html[data-nav-dir=back]::view-transition-new(page){animation-name:vt-page-in-back}@keyframes vt-page-out{to{opacity:0}}@keyframes vt-page-in{0%{opacity:0;transform:translate(14px)}}@keyframes vt-page-in-back{0%{opacity:0;transform:translate(-14px)}}::view-transition-old(nav-pill),::view-transition-new(nav-pill),::view-transition-old(section-pill),::view-transition-new(section-pill){height:100%}.settings-profile,.settings-cat{display:flex;align-items:center;gap:14px;width:100%;min-width:0;padding:14px 16px;text-align:left;color:var(--text);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .15s cubic-bezier(.22,1,.36,1),border-color .12s}.settings-profile:hover,.settings-cat:hover{border-color:var(--border-strong)}.settings-profile:active,.settings-cat:active{transform:scale(.985)}.settings-profile{margin-bottom:14px}.settings-profile .avatar{flex-shrink:0}.settings-profile-text,.settings-cat-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.settings-profile-text strong,.settings-cat-text strong{font-size:15.5px;font-weight:750;letter-spacing:-.01em}.settings-profile-text span,.settings-cat-text span{font-size:13px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.settings-cat-icon{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:14px;background:hsl(var(--h) var(--tile-s, 80%) var(--tile-l, 92%));color:hsl(var(--h) 55% var(--tile-ink, 32%))}.settings-chevron{flex-shrink:0;color:var(--text-3)}.settings-section{display:flex;flex-direction:column;gap:18px;max-width:760px}@media(max-width:760px){.settings-cats{grid-template-columns:minmax(0,1fr);gap:10px}.settings-profile,.settings-cat{padding:13px 14px}}.cloud-busy{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text-2)}.cloud-state{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--text)}.cloud-state>svg{flex-shrink:0;color:var(--accent-text)}.cloud-state>div{flex:1;min-width:0}.cloud-facts{margin:0 0 14px;padding-left:1.2em;display:flex;flex-direction:column;gap:8px;color:var(--text-2);font-size:14px}.cloud-invite{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:12px 14px;border-radius:var(--radius);background:var(--bg-elev);border:1px solid var(--border)}.cloud-invite-icon{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:13px;background:hsl(205 var(--tile-s, 80%) var(--tile-l, 92%));color:hsl(205 55% var(--tile-ink, 32%))}.cloud-invite-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;font-size:13.5px;color:var(--text-2)}.cloud-invite-text strong{font-size:15px;color:var(--text)}@media(max-width:760px){.cloud-invite{flex-wrap:wrap}.cloud-invite-text{flex-basis:calc(100% - 100px)}}.dash-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:-6px 0 22px}@media(max-width:1080px){.dash-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}.dash-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;min-height:116px;padding:16px 18px;text-align:left;border-radius:var(--radius);background:var(--bg-elev);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text);transition:transform .18s cubic-bezier(.22,1,.36,1)}.dash-tile:hover{transform:translateY(-2px)}.dash-tile:active{transform:scale(.98)}.dash-tile-label{font-size:13px;font-weight:700;color:var(--text-2)}.dash-tile-big{font-family:var(--font-display);font-size:40px;font-weight:800;letter-spacing:-.045em;line-height:1.05;margin-top:2px;font-variant-numeric:tabular-nums}.dash-tile-big.word{font-size:28px;letter-spacing:-.03em;padding:6px 0 2px}.dash-tile-big small{font-size:15px;font-weight:700;letter-spacing:0;color:var(--text-2)}.dash-tile-sub{font-size:13px;font-weight:600;line-height:1.3;color:var(--text-2);max-width:100%;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}@media(max-width:760px){.dash-tiles{margin:-4px 0 18px}.dash-tile{min-height:108px;padding:14px 16px}}:root[data-style=nouveau]{--font: "Plus Jakarta Sans Variable", "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: var(--font);--bg: #f3eee7;--bg-elev: #ffffff;--bg-sunken: #e9e2d8;--bg-hover: #ece5db;--sidebar: #fbf8f3;--border: #e6ded2;--border-strong: #d2c7b7;--text: #1a1712;--text-2: #48423a;--text-3: #6e675d;--accent: #ff6b2c;--accent-hover: #ff7d45;--accent-soft: #ffe2d2;--accent-text: #b5400d;--accent-shadow: #c9400c;--on-accent: #1a1712;--badge: #1a1712;--on-badge: #ffffff;--shadow-sm: none;--shadow: none;--shadow-lg: 0 24px 60px rgba(60, 35, 10, .22);--radius: 28px;--radius-sm: 16px;--tabbar-h: 72px;--tile-s: 85%;--tile-l: 91%;--tile-ink: 27%;--on-tile: rgba(255, 255, 255, .86);--t-mint: #c9f2dd;--t-peach: #ffdcc8;--t-sky: #d3e7ff;--t-lilac: #ddd6ff;--postit-y1: #fff6a8;--postit-y2: #ffee80;--postit-y-fold: #e3cf55;--postit-p1: #ffdbe7;--postit-p2: #ffcddf;--postit-p-fold: #f0afc6;--postit-shadow: 0 14px 16px -12px rgba(70, 50, 10, .45), 0 1px 2px rgba(0, 0, 0, .06);--tape: rgba(255, 255, 255, .72);--page-bg: var(--bg)}:root[data-style=nouveau][data-theme=dark]{--bg: #14120f;--bg-elev: #201d19;--bg-sunken: #0d0c0a;--bg-hover: #2b2722;--sidebar: #1a1714;--border: #312c25;--border-strong: #463f35;--text: #f7f2ea;--text-2: #c9bfb2;--text-3: #9a9083;--accent: #ff7a3d;--accent-hover: #ff8f5c;--accent-soft: #3d2517;--accent-text: #ff9d6b;--accent-shadow: #9a3208;--on-accent: #1a1712;--badge: #ff7a3d;--on-badge: #1a1712;--shadow-lg: 0 24px 60px rgba(0, 0, 0, .6);--tile-s: 28%;--tile-l: 19%;--tile-ink: 80%;--on-tile: rgba(255, 255, 255, .1);--t-mint: #1c3a2c;--t-peach: #3e2a1e;--t-sky: #1c2c43;--t-lilac: #2a2548;--postit-y1: #e4d87f;--postit-y2: #d9cb6b;--postit-y-fold: #a99c45;--postit-p1: #e6b0c3;--postit-p2: #dca1b6;--postit-p-fold: #a86f84;--postit-shadow: 0 14px 18px -12px rgba(0, 0, 0, .85);--tape: rgba(255, 255, 255, .35)}@media(prefers-color-scheme:dark){:root[data-style=nouveau]:not([data-theme=light]){--bg: #14120f;--bg-elev: #201d19;--bg-sunken: #0d0c0a;--bg-hover: #2b2722;--sidebar: #1a1714;--border: #312c25;--border-strong: #463f35;--text: #f7f2ea;--text-2: #c9bfb2;--text-3: #9a9083;--accent: #ff7a3d;--accent-hover: #ff8f5c;--accent-soft: #3d2517;--accent-text: #ff9d6b;--accent-shadow: #9a3208;--on-accent: #1a1712;--badge: #ff7a3d;--on-badge: #1a1712;--shadow-lg: 0 24px 60px rgba(0, 0, 0, .6);--tile-s: 28%;--tile-l: 19%;--tile-ink: 80%;--on-tile: rgba(255, 255, 255, .1);--t-mint: #1c3a2c;--t-peach: #3e2a1e;--t-sky: #1c2c43;--t-lilac: #2a2548;--postit-y1: #e4d87f;--postit-y2: #d9cb6b;--postit-y-fold: #a99c45;--postit-p1: #e6b0c3;--postit-p2: #dca1b6;--postit-p-fold: #a86f84;--postit-shadow: 0 14px 18px -12px rgba(0, 0, 0, .85);--tape: rgba(255, 255, 255, .35)}}[data-style=nouveau] :is(.btn-primary,.edt-dayhead.today .edt-daynum,.bubble.user,.rev-action-icon,.ai-setup-icon,.edt-daytab.active,.edt-daytab.active strong,.edt-daytab.active i){color:var(--on-accent)}[data-style=nouveau] body{font-size:15px;letter-spacing:-.005em}[data-style=nouveau] h1,[data-style=nouveau] h2,[data-style=nouveau] h3{letter-spacing:-.025em}[data-style=nouveau] .app{grid-template-columns:256px minmax(0,1fr)}[data-style=nouveau] .sidebar{border-right:0;padding:0 14px 14px}[data-style=nouveau] .brand{font-size:20px;font-weight:800;letter-spacing:-.03em}[data-style=nouveau] .search-trigger{height:44px;border-radius:999px;border:0;background:var(--bg)}[data-style=nouveau] .nav{gap:4px;margin-top:14px}[data-style=nouveau] .nav-item{height:48px;padding:0 16px;border-radius:999px;font-size:15px;font-weight:650;gap:12px}[data-style=nouveau] .nav-item.active{background:var(--accent);color:var(--on-accent);font-weight:750;box-shadow:0 3px 0 var(--accent-shadow)}[data-style=nouveau] .nav-item.active svg{color:var(--on-accent)}[data-style=nouveau] .nav-badge,[data-style=nouveau] .nav-badge.accent{min-width:22px;height:22px;border-radius:11px;background:var(--badge);color:var(--on-badge);font-weight:800}[data-style=nouveau] .nav-item.active .nav-badge{background:var(--on-accent);color:var(--accent)}[data-style=nouveau] .account-btn{border-radius:22px;border-top:0;background:var(--bg-elev)}[data-style=nouveau] .sync-status{border-radius:999px}[data-style=nouveau] .page-header h1{font-size:32px;font-weight:800;letter-spacing:-.035em}[data-style=nouveau] .page-subtitle{font-size:14.5px;font-weight:500}[data-style=nouveau] .dash-date{text-transform:none;letter-spacing:0;font-size:14px;font-weight:600}[data-style=nouveau] .dash-hello h1{font-size:36px;font-weight:800;letter-spacing:-.04em}[data-style=nouveau] .dash-summary{font-size:15.5px}[data-style=nouveau] .card{border:0;border-radius:28px;padding:20px 22px;box-shadow:none}[data-style=nouveau] .card-head h2{font-size:15px;font-weight:750;color:var(--text-2);letter-spacing:-.01em}[data-style=nouveau] .card-head h2 svg{color:var(--text-2)}[data-style=nouveau] .btn{height:42px;padding:0 17px;border-radius:999px;border:0;background:var(--bg-elev);font-weight:700;box-shadow:none}[data-style=nouveau] .btn:hover:not(:disabled){background:var(--bg-hover)}[data-style=nouveau] .card .btn:not(.btn-primary):not(.btn-ghost){background:var(--bg)}[data-style=nouveau] .btn-icon{width:42px;padding:0}[data-style=nouveau] .btn-small{height:34px;padding:0 13px;font-size:13px}[data-style=nouveau] .btn-block{height:50px;font-size:15.5px}[data-style=nouveau] .btn-primary,[data-style=nouveau] .card .btn-primary{background:var(--accent);border-color:var(--accent)}[data-style=nouveau] .btn-primary:not(:disabled){box-shadow:0 3px 0 var(--accent-shadow);transition:background .12s,transform .08s,box-shadow .08s}[data-style=nouveau] .btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}[data-style=nouveau] .btn-primary:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--accent-shadow)}[data-style=nouveau] .btn-ghost{background:transparent}[data-style=nouveau] .icon-btn{border-radius:999px}[data-style=nouveau] .link-btn{color:var(--text);font-weight:700}[data-style=nouveau] .segmented{background:var(--bg-elev);border:0;border-radius:24px;padding:4px;gap:2px}[data-style=nouveau] .card .segmented{background:var(--bg)}[data-style=nouveau] .segmented button{height:38px;border-radius:20px;padding:0 16px;font-weight:700;font-size:13.5px}[data-style=nouveau] .segmented button.active{background:var(--accent);color:var(--on-accent);box-shadow:0 2px 0 var(--accent-shadow)}[data-style=nouveau] .select{height:42px;border:0;border-radius:999px;padding:0 34px 0 16px;background-color:var(--bg-elev);box-shadow:none;font-weight:600}[data-style=nouveau] .card .select{background-color:var(--bg)}[data-style=nouveau] .field input{height:50px;border-radius:16px;border:2px solid transparent;background:var(--bg);font-size:15.5px}[data-style=nouveau] .field input:focus,[data-style=nouveau] .totp-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}[data-style=nouveau] .date-input,[data-style=nouveau] .text-input,[data-style=nouveau] .num-input{border-radius:12px}[data-style=nouveau] .pill{height:26px;padding:0 11px;border-radius:999px;font-size:12.5px;font-weight:700}[data-style=nouveau] .pill-small{height:22px;padding:0 9px;font-size:11.5px}[data-style=nouveau] .done-check{width:30px;height:30px;border:2px solid var(--text);background:var(--bg-elev)}[data-style=nouveau] .done-check.is-done{border-color:var(--ok)}[data-style=nouveau] .attachment{height:42px;padding:0 15px;border:0;border-radius:999px;background:var(--bg);font-weight:650}[data-style=nouveau] .attachment:hover:not(:disabled){background:var(--bg-hover)}[data-style=nouveau] .section-tabs-inner{display:inline-flex;max-width:100%;box-sizing:border-box;gap:4px;padding:4px;margin-bottom:18px;background:var(--bg-elev);border-radius:24px}[data-style=nouveau] .section-tab{height:42px;padding:0 17px;border:0;border-radius:20px;background:transparent;color:var(--text-2);font-weight:700;font-size:14px}[data-style=nouveau] .section-tab:hover{color:var(--text)}[data-style=nouveau] .section-tab.active{background:var(--accent);color:var(--on-accent);box-shadow:0 3px 0 var(--accent-shadow)}[data-style=nouveau] .section-tab-badge{background:var(--badge);color:var(--on-badge)}[data-style=nouveau] .section-tab.active .section-tab-badge{background:var(--on-accent);color:var(--accent)}[data-style=nouveau] .hw-days{gap:30px}[data-style=nouveau] .hw-day-title{align-items:center;font-size:26px;font-weight:800;letter-spacing:-.035em;margin-bottom:12px}[data-style=nouveau] .hw-day-date{font-size:13px;font-weight:700;color:var(--text-2);background:var(--bg-elev);border-radius:999px;padding:4px 11px;letter-spacing:0}[data-style=nouveau] .hw-day-count{font-weight:700;letter-spacing:0}[data-style=nouveau] .hw-list{gap:14px}[data-style=nouveau] .hw-card{--tile-bg: hsl(var(--h) var(--tile-s) var(--tile-l));--postit-under: var(--tile-bg);position:relative;background:var(--tile-bg);border:0;border-radius:28px;box-shadow:none;overflow:visible}[data-style=nouveau] .hw-card-bar{display:none}[data-style=nouveau] .hw-card-body{padding:18px 20px 20px}[data-style=nouveau] .hw-card-head{column-gap:12px}[data-style=nouveau] .hw-subject{font-size:13.5px;font-weight:800;background:var(--on-tile);border-radius:999px;padding:5px 12px}[data-style=nouveau] .hw-card.done .hw-subject{text-decoration:none}[data-style=nouveau] .hw-card-meta{color:hsl(var(--h) 35% var(--tile-ink));font-weight:600;margin-top:4px}[data-style=nouveau] .hw-content{color:var(--text);margin:12px 0 0 42px}[data-style=nouveau] .hw-card .attachments,[data-style=nouveau] .hw-card .skeleton-lines,[data-style=nouveau] .hw-session,[data-style=nouveau] .hw-card .site-files,[data-style=nouveau] .site-card-foot{margin-left:42px}[data-style=nouveau] .hw-card .site-files .attachments{margin-left:0}[data-style=nouveau] .hw-card:has(.hw-card-head.no-check) :is(.hw-content,.attachments,.site-files,.hw-session){margin-left:0}[data-style=nouveau] .hw-card .attachment,[data-style=nouveau] .hw-card .skeleton-lines span{background:var(--on-tile)}[data-style=nouveau] .hw-session{border-top-color:color-mix(in srgb,var(--text) 10%,transparent)}[data-style=nouveau] .hw-session-body{background:var(--on-tile);border-radius:16px}[data-style=nouveau] .hw-card .site-source{color:hsl(var(--h) 35% var(--tile-ink))}[data-style=nouveau] .hw-card .site-original,[data-style=nouveau] .hw-card .site-files-title,[data-style=nouveau] .hw-card .site-card-foot .link-btn{color:hsl(var(--h) 25% var(--tile-ink))}[data-style=nouveau] .hw-card.done{opacity:.55}[data-style=nouveau] .kind-pill{background:var(--on-tile);color:var(--text)}[data-style=nouveau] .kind-pill.kind-devoir,[data-style=nouveau] .kind-pill.kind-afinir{background:var(--accent);color:var(--on-accent)}[data-style=nouveau] .site-clear-title{font-size:18px;font-weight:800;letter-spacing:-.02em}[data-style=nouveau] .site-clear-line svg{color:hsl(var(--h) 35% var(--tile-ink))}[data-style=nouveau] .task-composer{border:0;border-radius:26px;padding:6px 6px 6px 18px;min-height:56px}[data-style=nouveau] :is(.hw-card.test,.card-tests,.dash-tile.tile-test){--postit-fold: var(--postit-p-fold);--text: #1f1218;--text-2: #57303f;--text-3: #66404e;background:linear-gradient(180deg,var(--postit-p1),var(--postit-p2))}[data-style=nouveau] :is(.task-row,.site-clear-note){--postit-fold: var(--postit-y-fold);--text: #1d1a0c;--text-2: #4a4330;--text-3: #5c5440;background:linear-gradient(180deg,var(--postit-y1),var(--postit-y2))}[data-style=nouveau] :is(.hw-card.test,.card-tests,.dash-tile.tile-test,.task-row,.site-clear-note){--bg: rgba(255, 255, 255, .55);--bg-elev: rgba(255, 255, 255, .8);--bg-hover: rgba(255, 255, 255, .4);--bg-sunken: rgba(0, 0, 0, .07);--on-tile: rgba(255, 255, 255, .7);--accent: #111318;--accent-hover: #2b2e38;--on-accent: #ffffff;position:relative;color:var(--text);border:0;border-radius:4px;box-shadow:var(--postit-shadow);transform:rotate(-.8deg)}[data-style=nouveau] :is(.hw-card.test,.card-tests,.dash-tile.tile-test,.site-clear-note):before{content:"";position:absolute;top:-9px;left:50%;width:64px;height:18px;margin-left:-32px;background:var(--tape);transform:rotate(3deg);box-shadow:0 1px 2px #00000014;pointer-events:none}[data-style=nouveau] :is(.hw-card.test,.card-tests,.dash-tile.tile-test,.task-row,.site-clear-note):after{content:"";position:absolute;right:0;bottom:0;width:20px;height:20px;background:linear-gradient(to top left,var(--postit-under, var(--page-bg)) 50%,var(--postit-fold) 50%);pointer-events:none}[data-style=nouveau] :is(.hw-card.test,.card-tests,.task-row){--postit-under: var(--page-bg)}[data-style=nouveau] .hw-list>:nth-child(2n):is(.hw-card.test,.task-row){transform:rotate(.7deg)}[data-style=nouveau] .hw-card.test .done-check,[data-style=nouveau] .task-row .done-check{background:#fff9;border-color:#1d1a0c}[data-style=nouveau] .card-tests .test-list li:hover{background:#ffffff59}[data-style=nouveau] .card-tests .card-head h2,[data-style=nouveau] .card-tests .card-head h2 svg{color:#57303f}[data-style=nouveau] .card-tests .pill:not(.pill-danger):not(.pill-warn){background:#fff9}[data-style=nouveau] .site-clear-note{align-self:flex-start;max-width:94%;margin:8px 0 6px 2px;padding:14px 16px 12px;border-radius:3px;font-size:14px;font-weight:700;color:var(--text);transform:rotate(-1.4deg)}[data-style=nouveau] .site-clear-note svg{color:var(--text-2)}[data-style=nouveau] .task-row{min-height:60px;padding:14px 18px;transform:rotate(.6deg)}[data-style=nouveau] .task-row .task-title{font-weight:700}[data-style=nouveau] .task-row .pill{background:transparent;color:var(--text-2);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}[data-style=nouveau] .dash-tile{border:0;border-radius:28px}[data-style=nouveau] .dash-tile.tile-todo{background:var(--t-mint)}[data-style=nouveau] .dash-tile.tile-msg{background:var(--t-peach)}[data-style=nouveau] .dash-tile.tile-grade{background:var(--t-sky)}[data-style=nouveau] .dash-tile.tile-test{border-radius:4px;transform:rotate(-1.8deg)}[data-style=nouveau] .dash-tile.tile-test:hover{transform:rotate(-.8deg) translateY(-2px)}[data-style=nouveau] .login-screen{background:radial-gradient(620px 420px at 0% 0%,color-mix(in srgb,var(--t-peach) 90%,transparent),transparent 70%),radial-gradient(560px 460px at 100% 100%,color-mix(in srgb,var(--postit-y1) 70%,transparent),transparent 70%),var(--bg)}[data-style=nouveau] .login-card{border:0;border-radius:32px}[data-style=nouveau] .login-title{font-weight:800;letter-spacing:-.035em}[data-style=nouveau] .qcm-modal{border:0;border-radius:28px}[data-style=nouveau] .qcm-head,[data-style=nouveau] .qcm-foot{border-color:transparent}[data-style=nouveau] .qcm-head-icon{border-radius:16px;background:var(--t-lilac);color:var(--text)}[data-style=nouveau] .qcm-choice{min-height:52px;border:2px solid transparent;border-radius:16px;background:var(--bg);font-weight:650}[data-style=nouveau] .qcm-choice.selected{border-color:var(--accent);background:var(--bg-elev)}[data-style=nouveau] .qcm-foot .btn{height:50px}@media(max-width:760px){[data-style=nouveau] body{font-size:15.5px}[data-style=nouveau] .page,[data-style=nouveau] .section-tabs{padding-left:calc(16px + var(--sal));padding-right:calc(16px + var(--sar))}[data-style=nouveau] .m-topbar{padding-top:calc(var(--sat) + 8px);padding-bottom:8px}[data-style=nouveau] .m-brand{font-size:22px;font-weight:800;letter-spacing:-.03em}[data-style=nouveau] .m-top-actions{gap:6px}[data-style=nouveau] .m-icon-btn{width:44px;height:44px;border-radius:22px;background:var(--bg-elev);color:var(--text)}[data-style=nouveau] .m-avatar-btn{padding:0;margin-left:0}[data-style=nouveau] .m-avatar-btn .avatar{width:44px;height:44px;font-size:14px;font-weight:800;background:var(--accent);color:var(--on-accent)}[data-style=nouveau] .m-avatar-btn.active .avatar{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--accent)}[data-style=nouveau] .m-tabbar{display:flex;align-items:center;justify-content:space-between;padding:10px calc(14px + var(--sar)) calc(10px + var(--sab)) calc(14px + var(--sal));background:var(--bg-elev);border-top:0;border-radius:28px 28px 0 0;box-shadow:0 -10px 30px #11131812;-webkit-backdrop-filter:none;backdrop-filter:none}[data-style=nouveau] .m-tab{flex:0 0 auto;flex-direction:row;justify-content:center;gap:8px;height:50px;min-width:50px;padding:0 13px;border-radius:25px;color:var(--text-2);font-size:14px;font-weight:750}[data-style=nouveau] .m-tab-icon,[data-style=nouveau] .m-tab.active .m-tab-icon{width:auto;height:auto;border-radius:0;background:none;color:inherit}[data-style=nouveau] .m-tab-label{display:none}[data-style=nouveau] .m-tab.active{background:var(--accent);color:var(--on-accent);padding:0 18px;box-shadow:0 3px 0 var(--accent-shadow)}[data-style=nouveau] .m-tab.active .m-tab-label{display:inline}[data-style=nouveau] .m-tab svg{width:23px;height:23px}[data-style=nouveau] .m-badge{top:-13px;left:auto;right:-19px;background:var(--badge);color:var(--on-badge);border-color:var(--bg-elev)}[data-style=nouveau] .m-tab.active{position:relative}[data-style=nouveau] .m-tab.active .m-tab-icon{position:static}[data-style=nouveau] .m-tab.active .m-badge{top:-7px;right:-5px;border-color:var(--bg-elev)}[data-style=nouveau] .section-tabs-inner{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);width:100%;padding:4px;margin-bottom:10px}[data-style=nouveau] .section-tab{justify-content:center;height:44px;padding:0 10px}[data-style=nouveau] .page-header h1{font-size:30px}[data-style=nouveau] .dash-hello h1{font-size:32px}[data-style=nouveau] .card{padding:18px}[data-style=nouveau] .hw-card-body{padding:16px 16px 18px}[data-style=nouveau] .hw-content,[data-style=nouveau] .hw-card .attachments,[data-style=nouveau] .hw-card .skeleton-lines,[data-style=nouveau] .hw-session,[data-style=nouveau] .hw-card .site-files,[data-style=nouveau] .site-card-foot{margin-left:0}[data-style=nouveau] .hw-card-meta{grid-column:1 / -1}[data-style=nouveau] .attachment-name{max-width:200px}[data-style=nouveau] .toolbar .select{flex:1 1 140px}}.fsheet{--ink: #1d2130;--ink-2: #3b4051;--ink-3: #646b7c;--paper: #ffffff;--line: #e2e5ec;--accent: hsl(var(--h, 240) 58% 38%);--accent-soft: hsl(var(--h, 240) 85% 95%);--accent-mid: hsl(var(--h, 240) 70% 87%);--mark: #ffe58f;--key-bg: #fff8dc;--key-ink: #7a5600;--lesson-bg: #f3f5f9;--zebra: #ffffff;--def-bg: #e8f1ff;--def-ink: #1d4e98;--method-bg: #e6f5ec;--method-ink: #17673f;--train-bg: #f1ecff;--train-ink: #5a39a8;container-type:inline-size;max-width:860px;margin:0 auto;padding:28px 28px 22px;background:var(--paper);color:var(--ink);border:1px solid var(--border, #e1e4ea);border-radius:28px;font-family:Lexend Variable,Lexend,Plus Jakarta Sans Variable,system-ui,sans-serif;font-size:16px;font-weight:350;line-height:1.65;letter-spacing:.012em;word-spacing:.06em;text-align:left;-webkit-hyphens:none;hyphens:none;overflow-wrap:break-word}.fsheet *{text-align:left}.fsheet strong{font-weight:650;color:var(--ink);background:linear-gradient(transparent 52%,var(--mark) 52%);padding:0 2px;border-radius:3px;-webkit-box-decoration-break:clone;box-decoration-break:clone}.fsheet em,.fsheet i:not(.fs-write i){font-style:normal;font-weight:550;color:var(--ink-2)}.fs-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fs-logo{width:32px;height:32px;border-radius:10px}.fs-brand{font-weight:700;font-size:16px;margin-right:auto}.fs-pill{display:inline-flex;align-items:center;padding:4px 13px;border-radius:999px;font-size:13px;font-weight:600;white-space:nowrap}.fs-subject{background:var(--accent-soft);color:var(--accent)}.fs-date{background:var(--ink);color:#fff}.fs-title-wrap{margin:18px 0;padding-bottom:14px;border-bottom:4px solid var(--accent-mid)}.fs-doc-kicker{display:block;font-size:14px;font-weight:600;color:var(--accent)}.fs-title{margin:2px 0 0;font-size:30px;line-height:1.2;font-weight:700;letter-spacing:0;color:var(--ink)}.fs-grid{display:flex;flex-direction:column;gap:14px}.fs-block{border-radius:22px;padding:16px 20px 18px;min-width:0}.fs-block-title,.fs-part-head,.fs-method-title{break-after:avoid}.fs-key,.fs-warn,.fs-example{break-inside:avoid}.fs-block-title{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:0;border:0;font-size:18px;font-weight:700;line-height:1.3;letter-spacing:0;color:var(--tone-ink, var(--ink))}.fs-icon{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--paper);color:var(--tone-ink, var(--accent));flex:none}.fs-key{--tone-ink: var(--key-ink);background:var(--key-bg);border:2px solid #f6e3a1}.fs-key .fs-points li{font-weight:500}.fs-def{--tone-ink: var(--def-ink);background:var(--def-bg)}.fs-method{--tone-ink: var(--method-ink);background:var(--method-bg)}.fs-memo{--tone-ink: var(--accent);background:var(--lesson-bg)}.fs-train{--tone-ink: var(--train-ink);background:var(--train-bg)}.fs-lesson{background:var(--lesson-bg)}.fs-part-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.fs-part-num{display:inline-grid;place-items:center;flex:none;width:36px;height:36px;border-radius:12px;background:var(--accent);color:#fff;font-size:18px;font-weight:700}.fs-part-titles{display:flex;flex-direction:column;min-width:0}.fs-kicker{font-size:13px;font-weight:600;color:var(--accent);line-height:1.3}.fs-part-title{font-size:20px;font-weight:700;line-height:1.3;color:var(--ink)}.fs-points{list-style:none;margin:0;padding:0}.fs-points li{position:relative;margin:0;padding:6px 12px 6px 32px;border-radius:12px;break-inside:avoid}.fs-points li+li{margin-top:2px}.fs-lesson .fs-points li:nth-child(2n){background:var(--zebra)}.fs-points li:before{content:"";position:absolute;left:13px;top:calc(2px + .82em);width:8px;height:8px;border-radius:50%;background:var(--tone-ink, var(--accent))}.fs-defs{margin:0;display:flex;flex-direction:column;gap:8px}.fs-def-item{background:var(--paper);border-radius:14px;padding:10px 14px;break-inside:avoid}.fs-def-item dt{font-weight:700;color:var(--def-ink)}.fs-def-item dd{margin:2px 0 0}.fs-def-item strong,.fs-def-item dt strong{background:none;padding:0}.fs-method-item+.fs-method-item{margin-top:14px;padding-top:14px;border-top:2px dashed #bfe3cd}.fs-method-title{margin:0 0 6px;font-size:17px;font-weight:700;color:var(--method-ink)}.fs-steps,.fs-questions,.fs-answers-list{list-style:none;margin:0;padding:0}.fs-steps li,.fs-questions li,.fs-answers-list li{position:relative;padding:5px 0 5px 40px;break-inside:avoid}.fs-n{position:absolute;left:0;top:5px;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;font-size:14px;font-weight:700;line-height:1;color:#fff;background:var(--tone-ink, var(--accent))}.fs-example{margin-top:8px;padding:10px 14px;background:var(--paper);border-radius:14px;border-left:0}.fs-example-label{display:inline-block;margin-right:8px;padding:1px 10px;border-radius:999px;background:var(--method-bg);color:var(--method-ink);font-size:13px;font-weight:700}.fs-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--paper);border-radius:14px;overflow:hidden}.fs-table th{background:var(--accent-mid);color:var(--ink);font-weight:700}.fs-table th,.fs-table td{padding:8px 12px;vertical-align:top;border-bottom:1px solid var(--line)}.fs-table tbody tr:nth-child(2n) td{background:#f7f8fb}.fs-table tr:last-child td{border-bottom:0}.fs-table td:first-child{font-weight:600}.fs-warn{--tone-ink: #7a5d00;--mark: transparent;position:relative;background:linear-gradient(170deg,#fff6a8,#ffee80);border-radius:8px 8px 26px;box-shadow:0 10px 14px -12px #46320a80;color:#3a3410}.fs-warn strong{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.fs-warn .fs-icon{background:#ffffffa6}.fs-write{display:block;margin-top:4px}.fs-write i{display:block;height:1.75em;border-bottom:1.5px dotted #a99bd3}.fs-answers{--tone-ink: var(--ink-2);background:var(--paper);border:2px dashed var(--line);color:var(--ink-2)}.fsheet code{font-family:Cascadia Mono,Consolas,Courier New,monospace;font-size:.92em;letter-spacing:0;word-spacing:0;background:#11131812;padding:1px 5px;border-radius:5px}.fsheet pre{margin:8px 0 0;padding:10px 12px;background:#1c1f27;color:#f2f3f6;border-radius:12px;overflow-x:auto;white-space:pre-wrap;font-size:.9em;line-height:1.5}.fsheet pre code{background:none;padding:0;color:inherit}.fsheet .md-block p{margin:0 0 6px}.fsheet ul,.fsheet ol{margin:0}.fs-md ul,.fs-md ol{padding-left:1.3em}.fs-md li{margin:4px 0}.fs-md h3{font-size:1.05em;margin:10px 0 4px}.fs-md p{margin:0 0 8px}.fsheet .fs-md table{width:100%;border-collapse:separate;border-spacing:0;border:0;background:var(--paper);border-radius:14px;overflow:hidden}.fsheet .fs-md th{background:var(--accent-mid);color:var(--ink)}.fsheet .fs-md th,.fsheet .fs-md td{padding:8px 12px;border:0;border-bottom:1px solid var(--line);color:inherit}.fsheet .fs-md td{background:var(--paper)}.fsheet .fs-md tr:last-child td{border-bottom:0}.fs-note{margin:14px 4px 0;font-size:14px;color:var(--ink-3)}.fs-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;margin-top:16px;padding-top:10px;border-top:1px solid var(--line);font-size:12.5px;line-height:1.5;color:var(--ink-3)}.fs-live .fs-block{animation:fs-in .35s ease-out both}@keyframes fs-in{0%{opacity:0;transform:translateY(6px)}}@container (max-width: 560px){.fs-title{font-size:25px}.fs-block{padding:14px 14px 16px}.fs-points li{padding-left:28px}.fs-points li:before{left:10px}}@media screen and (max-width:600px){.fsheet{padding:18px 14px 16px;border-radius:22px}}.fsheet.fs-compact{--s: var(--pdf-size, 11px);max-width:none;margin:0;padding:0;border:0;border-radius:0;font-size:var(--s);line-height:1.58}.fs-compact .fs-logo{width:calc(var(--s) * 2.2);height:calc(var(--s) * 2.2);border-radius:calc(var(--s) * .65)}.fs-compact .fs-brand{font-size:calc(var(--s) * 1.15)}.fs-compact .fs-pill{font-size:calc(var(--s) * .9);padding:calc(var(--s) * .28) calc(var(--s) * .95)}.fs-compact .fs-title-wrap{margin:calc(var(--s) * .9) 0;padding-bottom:calc(var(--s) * .75);border-bottom-width:3px}.fs-compact .fs-doc-kicker{font-size:calc(var(--s) * 1)}.fs-compact .fs-title{font-size:calc(var(--s) * 1.87)}.fs-compact .fs-grid{gap:calc(var(--s) * .75)}.fs-compact .fs-block{padding:calc(var(--s) * .9) calc(var(--s) * 1.2) calc(var(--s) * .97);border-radius:calc(var(--s) * 1.35)}.fs-compact .fs-block-title{font-size:calc(var(--s) * 1.16);gap:calc(var(--s) * .6);margin-bottom:calc(var(--s) * .52)}.fs-compact .fs-icon{width:calc(var(--s) * 2);height:calc(var(--s) * 2);border-radius:calc(var(--s) * .6)}.fs-compact .fs-icon svg{width:calc(var(--s) * 1.15);height:calc(var(--s) * 1.15)}.fs-compact .fs-part-head{gap:calc(var(--s) * .75);margin-bottom:calc(var(--s) * .6)}.fs-compact .fs-part-num{width:calc(var(--s) * 2.24);height:calc(var(--s) * 2.24);border-radius:calc(var(--s) * .7);font-size:calc(var(--s) * 1.16)}.fs-compact .fs-part-title{font-size:calc(var(--s) * 1.27)}.fs-compact .fs-kicker{font-size:calc(var(--s) * .86)}.fs-compact .fs-points li{padding:calc(var(--s) * .3) calc(var(--s) * .75) calc(var(--s) * .3) calc(var(--s) * 2.1);border-radius:calc(var(--s) * .75)}.fs-compact .fs-points li:before{left:calc(var(--s) * .82);top:calc(var(--s) * .3 + .79em - var(--s) * .26);width:calc(var(--s) * .52);height:calc(var(--s) * .52)}.fs-compact .fs-steps li,.fs-compact .fs-questions li,.fs-compact .fs-answers-list li{padding:calc(var(--s) * .22) 0 calc(var(--s) * .22) calc(var(--s) * 2.54)}.fs-compact .fs-n{top:calc(var(--s) * .22);width:calc(var(--s) * 1.8);height:calc(var(--s) * 1.8);border-radius:calc(var(--s) * .55);font-size:calc(var(--s) * .93)}.fs-compact .fs-method-title{font-size:calc(var(--s) * 1.2)}.fs-compact .fs-method-item+.fs-method-item{margin-top:calc(var(--s) * .9);padding-top:calc(var(--s) * .9)}.fs-compact .fs-example{margin-top:calc(var(--s) * .5);padding:calc(var(--s) * .6) calc(var(--s) * .9);border-radius:calc(var(--s) * .9)}.fs-compact .fs-example-label{font-size:calc(var(--s) * .88)}.fs-compact .fs-defs{gap:calc(var(--s) * .5)}.fs-compact .fs-def-item{padding:calc(var(--s) * .52) calc(var(--s) * .9);border-radius:calc(var(--s) * .9)}.fs-compact .fs-table{border-radius:calc(var(--s) * .9)}.fs-compact .fs-table th,.fs-compact .fs-table td{padding:calc(var(--s) * .37) calc(var(--s) * .75)}.fs-compact .fs-note{font-size:calc(var(--s) * .95)}.fs-compact .fs-foot{margin-top:calc(var(--s) * .9);padding-top:calc(var(--s) * .52);font-size:calc(var(--s) * .78);break-inside:avoid}.fs-compact *{animation:none!important}.print-root{display:none}.pdf-root{position:fixed;left:-12000px;top:0;width:726px;background:#fff;pointer-events:none}.pdf-root .fs-foot{display:none}.fs-foot{break-before:avoid}@media print{@page{size:A4;margin:9mm 9mm 10mm}html,body{background:#fff!important;height:auto!important;min-height:0!important;overflow:visible!important}body>:not(.print-root){display:none!important}.print-root{display:block!important}.print-root *{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.pdfv{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.pdfv-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 4px}.pdfv-pages{font-size:13px;font-weight:600;color:var(--text-3)}.pdfv-zoom{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:999px;background:var(--bg-elev);border:1px solid var(--border)}.pdfv-percent{min-width:52px;text-align:center;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.pdfv-scroll{overflow-x:auto;overflow-y:hidden;min-height:320px;padding:12px;border-radius:var(--radius);background:var(--bg-sunken);touch-action:pan-x pan-y;overscroll-behavior:contain}.pdfv-pages-list{display:flex;flex-direction:column;gap:12px;margin:0 auto}.pdfv-page{position:relative;background:#fff;border-radius:6px;box-shadow:0 1px 3px #1418281f,0 8px 24px -12px #14182840;overflow:hidden}.pdfv-page canvas{display:block;width:100%;height:100%}.pdfv-loading{display:grid;place-items:center;min-height:300px}@media(max-width:760px){.pdfv-scroll{padding:8px}}.share-modal{width:min(560px,100%)}.share-section{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:var(--radius-sm, 14px);background:var(--bg-sunken)}.share-section h3{display:flex;align-items:center;gap:8px;margin:0;font-size:15px}.share-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.share-row .text-input{flex:1 1 180px;min-width:0}.share-code-box{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.share-code{font-family:Cascadia Mono,Consolas,monospace;font-size:24px;font-weight:800;letter-spacing:.08em;padding:6px 14px;border-radius:12px;background:var(--bg-elev);border:1px dashed var(--border-strong);-webkit-user-select:all;user-select:all}.share-code-input{font-family:Cascadia Mono,Consolas,monospace;letter-spacing:.06em;text-transform:uppercase}.share-code-input::placeholder{font-family:var(--font, inherit);letter-spacing:0;text-transform:none}.share-hint{font-size:12.5px;color:var(--text-3)}.share-code-box .share-hint{flex-basis:100%}.share-invite{margin:0 0 16px}.share-invite .share-hint{flex-basis:auto}.share-folders{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.share-folders li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:12px;background:var(--bg-elev)}.share-folder-name{font-weight:700}.share-done{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--text-3)}.share-pseudo{display:flex;flex-direction:column;gap:10px}.rev-shared-badge{margin-left:auto;color:var(--text-3);display:inline-flex}.rev-share-note,.rev-shares li{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text-2)}.rev-share-note{margin:0 0 14px;padding:10px 14px;border-radius:var(--radius-sm, 14px);background:var(--bg-sunken)}.rev-shares{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:4px}.rev-shares .link-btn{margin-left:auto}.page-revisions>.fsheet{margin-bottom:14px}.rev-live .fsheet{border:0;padding:6px 2px 0}
