@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/034d78ad42e9620c-s.woff2) format("woff2");unicode-range:u+0900-097f,u+1cd0-1cf4,u+1cf7-1cf9,u+200c-200d,u+20a8,u+20b9,u+20f0,u+25cc,u+a830-a839,u+a8e0-a8ff,u+11b00-11b0a}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/fe0777f1195381cb-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/eafabf029ad39a43-s.p.woff2) format("woff2");unicode-range:u+00??,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:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/db911767852bc875-s.woff2) format("woff2");unicode-range:u+0900-097f,u+1cd0-1cf4,u+1cf7-1cf9,u+200c-200d,u+20a8,u+20b9,u+20f0,u+25cc,u+a830-a839,u+a8e0-a8ff,u+11b00-11b0a}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/f10b8e9d91f3edcb-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8888a3826f4a3af4-s.p.woff2) format("woff2");unicode-range:u+00??,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:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/29e7bbdce9332268-s.woff2) format("woff2");unicode-range:u+0900-097f,u+1cd0-1cf4,u+1cf7-1cf9,u+200c-200d,u+20a8,u+20b9,u+20f0,u+25cc,u+a830-a839,u+a8e0-a8ff,u+11b00-11b0a}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c3bc380753a8436c-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/0484562807a97172-s.p.woff2) format("woff2");unicode-range:u+00??,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:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/29a4aea02fdee119-s.woff2) format("woff2");unicode-range:u+0900-097f,u+1cd0-1cf4,u+1cf7-1cf9,u+200c-200d,u+20a8,u+20b9,u+20f0,u+25cc,u+a830-a839,u+a8e0-a8ff,u+11b00-11b0a}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/a1386beebedccca4-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b957ea75a84b6ea7-s.p.woff2) format("woff2");unicode-range:u+00??,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:Poppins Fallback;src:local("Arial");ascent-override:93.62%;descent-override:31.21%;line-gap-override:8.92%;size-adjust:112.16%}.__className_cf84ab{font-family:Poppins,Poppins Fallback;font-style:normal}.__variable_cf84ab{--font-poppins:"Poppins","Poppins Fallback"}:root{--surface-primary:#ffffff;--surface-secondary:#f8f9fa;--surface-sidebar:#111111;--surface-hover:#f0f1f3;--surface-active:rgba(255,255,255,0.08);--text-primary:#000000;--text-secondary:#4b5563;--text-muted:#6b7280;--text-on-dark:#f1f5f9;--text-on-dark-muted:#94a3b8;--accent:#0CC0DF;--accent-fg:#000000;--accent-hover:#0a9ab3;--accent-on:#000000;--accent-light:#e6f9fc;--success:#16a34a;--success-fg:#15803d;--success-on:#000000;--warning:#d97706;--warning-fg:#92400e;--error:#dc2626;--error-fg:#b91c1c;--error-on:#ffffff;--error-on-dark:#f87171;--surface-success:#f0fdf4;--surface-error:#fef2f2;--surface-error-border:#fecaca;--surface-error-fg:#991b1b;--border:#e5e7eb;--border-focus:#0CC0DF;--border-on-dark:rgba(255,255,255,0.08);--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--sp-accent:#0CC0DF;--sp-accent-fg:#000000;--sp-quant:#0CC0DF;--sp-quant-fg:#000000;--sp-verbal:#0CC0DF;--sp-verbal-fg:#000000;--sp-intro:#0CC0DF;--sp-intro-fg:#000000;--sp-sim:#0CC0DF;--sp-sim-fg:#000000;--font-sans:var(--font-poppins),system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono:"Cascadia Code","Fira Code",monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--surface-primary:#0f172a;--surface-secondary:#1e293b;--surface-sidebar:#0a0a0a;--surface-hover:#334155;--surface-active:rgba(255,255,255,0.12);--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--text-on-dark:#f1f5f9;--text-on-dark-muted:#94a3b8;--accent:#5dd8f0;--accent-fg:#7de4f5;--accent-hover:#4bc0d6;--accent-on:#000000;--accent-light:#0d3a3f;--success:#4ade80;--success-fg:#86efac;--success-on:#000000;--error:#f87171;--error-fg:#fca5a5;--error-on:#000000;--surface-success:rgba(74,222,128,0.1);--surface-error:rgba(239,68,68,0.1);--surface-error-border:#7f1d1d;--surface-error-fg:#fca5a5;--sp-accent:#5dd8f0;--sp-accent-fg:#f1f5f9;--sp-quant:#5dd8f0;--sp-quant-fg:#f1f5f9;--sp-verbal:#5dd8f0;--sp-verbal-fg:#f1f5f9;--sp-intro:#5dd8f0;--sp-intro-fg:#f1f5f9;--sp-sim:#5dd8f0;--sp-sim-fg:#f1f5f9;--border:#334155;--border-focus:#5dd8f0}}:root[data-theme=dark]{--surface-primary:#0f172a;--surface-secondary:#1e293b;--surface-sidebar:#0a0a0a;--surface-hover:#334155;--surface-active:rgba(255,255,255,0.12);--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--text-on-dark:#f1f5f9;--text-on-dark-muted:#94a3b8;--accent:#5dd8f0;--accent-fg:#7de4f5;--accent-hover:#4bc0d6;--accent-on:#000000;--accent-light:#0d3a3f;--success:#4ade80;--success-fg:#86efac;--success-on:#000000;--error:#f87171;--error-fg:#fca5a5;--error-on:#000000;--surface-success:rgba(74,222,128,0.1);--surface-error:rgba(239,68,68,0.1);--surface-error-border:#7f1d1d;--surface-error-fg:#fca5a5;--sp-accent:#5dd8f0;--sp-accent-fg:#f1f5f9;--sp-quant:#5dd8f0;--sp-quant-fg:#f1f5f9;--sp-verbal:#5dd8f0;--sp-verbal-fg:#f1f5f9;--sp-intro:#5dd8f0;--sp-intro-fg:#f1f5f9;--sp-sim:#5dd8f0;--sp-sim-fg:#f1f5f9;--border:#334155;--border-focus:#5dd8f0}html{scroll-behavior:smooth}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);font-weight:400;letter-spacing:.01em;background:var(--surface-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent-fg);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.skip-nav-link{position:absolute;top:-100%;left:1rem;z-index:9999;padding:.75rem 1.5rem;background:var(--accent);color:var(--accent-on);font-weight:600;font-size:.875rem;border-radius:var(--radius-md);text-decoration:none;outline:2px solid var(--border-focus);outline-offset:2px;transition:top .15s ease}.skip-nav-link:focus-visible{top:1rem}.app-layout{display:flex;min-height:100dvh}.sidebar{width:260px;flex-shrink:0;background:var(--surface-sidebar);color:var(--text-on-dark);padding:1.5rem 0;display:flex;flex-direction:column;overflow-y:auto}.sidebar-brand{padding:0 1.25rem 1.5rem;font-size:1.125rem;font-weight:600;letter-spacing:-.01em;border-bottom:1px solid var(--border-on-dark);margin-bottom:.75rem}.sidebar-brand-link{color:inherit;text-decoration:none}.sidebar-brand-tag{display:block;margin-top:.2rem;font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-on-dark-muted,var(--text-muted))}.sidebar-nav{list-style:none;display:flex;flex-direction:column;gap:.125rem;padding:0 .5rem}.sidebar-link{display:flex;align-items:center;gap:.625rem;padding:.625rem .75rem;border-radius:var(--radius-md);color:var(--text-on-dark-muted);font-size:.875rem;transition:background-color .15s,color .15s}.sidebar-link:hover{background:var(--surface-active);color:var(--text-on-dark);text-decoration:none}.sidebar-link.active,.sidebar-link[aria-current=page]{background:var(--surface-active);color:var(--text-on-dark);font-weight:600;border-left:2px solid var(--accent);padding-left:calc(.75rem - 2px)}.sidebar-progress-section{padding:0 .5rem;margin-top:1rem}.sp-widget{padding:.875rem;background:rgba(255,255,255,.05);border:1px solid var(--border-on-dark);border-radius:var(--radius-lg)}.sp-widget-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.sp-widget-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--sp-accent)}.sp-widget-percent{font-size:.75rem;font-weight:600;color:var(--text-on-dark)}.sp-widget-bar{width:100%;height:6px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden}.sp-widget-bar-fill{height:100%;background:var(--sp-accent);border-radius:3px;transition:width .6s ease-out}.sp-widget-meta{display:flex;justify-content:space-between;margin-top:.375rem}.sp-widget-count,.sp-widget-day{font-size:.6875rem;color:var(--text-on-dark-muted)}.sp-widget-next{margin-top:.625rem;padding-top:.5rem;border-top:1px solid var(--border-on-dark);display:flex;flex-direction:column;gap:.125rem}.sp-widget-next-label{font-size:.6875rem;color:var(--text-on-dark-muted);text-transform:uppercase;letter-spacing:.04em}.sp-widget-next-title{font-size:.8125rem;color:var(--text-on-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-widget-overdue{margin-top:.5rem;padding:.375rem .5rem;background:color-mix(in srgb,var(--warning) 15%,transparent);border-radius:var(--radius-sm,4px);display:flex;align-items:center;gap:.375rem;font-size:.75rem}.sp-widget-overdue-count{font-weight:700;color:var(--warning,#d97706)}.sp-widget-overdue-label{color:var(--text-on-dark-muted)}.sp-widget-link{display:block;margin-top:.625rem;font-size:.75rem;font-weight:500;color:var(--sp-accent);text-decoration:none;transition:opacity .15s}.sp-widget-link:hover{opacity:.8}.sp-widget-link:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:2px}.sp-widget-error{font-size:.75rem;color:var(--error-on-dark);margin:0}.sp-widget-skeleton{display:flex;flex-direction:column;gap:.375rem}.sp-widget-skeleton-line{height:.625rem;border-radius:4px;background:var(--border-on-dark);animation:sp-pulse 1.5s ease-in-out infinite}.sp-widget-skeleton-line--short{width:40%}.sp-widget-skeleton-line--long{width:100%}@keyframes sp-pulse{0%,to{opacity:.4}50%{opacity:.7}}@media (prefers-reduced-motion:reduce){.sp-widget-bar-fill{transition:none}.sp-widget-skeleton-line{animation:none;opacity:.5}}.sp-dashboard{max-width:960px;margin:0 auto;padding:2rem 1.5rem}.sp-dashboard-empty,.sp-dashboard-error{padding:2rem;text-align:center;color:var(--text-secondary)}.sp-dashboard-error,.sp-toggle-error{color:var(--error-fg);background:var(--surface-error);border:1px solid var(--surface-error-border);border-radius:var(--radius-md)}.sp-toggle-error{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;margin-bottom:1rem;font-size:.875rem}.sp-toggle-error button{background:none;border:none;color:inherit;font-size:1.25rem;cursor:pointer;padding:0 .25rem;line-height:1}.sp-header{margin-bottom:2rem}.sp-header-title{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem}.sp-header-subtitle{font-size:.875rem;color:var(--text-secondary);margin:0 0 1rem}.sp-header-progress{display:flex;align-items:center;gap:.75rem}.sp-header-progress-bar{flex:1 1;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.sp-header-progress-fill{height:100%;background:var(--sp-accent);border-radius:4px;transition:width .3s ease;animation:sp-fill-grow .6s ease-out}.sp-header-progress-label{font-size:.8125rem;font-weight:600;color:var(--text-secondary);white-space:nowrap}.sp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:2rem}.sp-card{display:flex;flex-direction:column;align-items:center;padding:1.25rem 1rem;background:var(--surface-secondary);border-radius:var(--radius-md);border:1px solid var(--border)}.sp-card-value{font-size:1.5rem;font-weight:600;color:var(--text-primary)}.sp-card-label{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.sp-section-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 1rem}.sp-sections{margin-bottom:2rem}.sp-section-row{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.sp-section-label{display:flex;align-items:center;gap:.5rem;min-width:120px;font-size:.875rem;color:var(--text-primary)}.sp-section-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.sp-section-bar-container{flex:1 1;display:flex;align-items:center;gap:.75rem}.sp-section-bar{flex:1 1;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.sp-section-bar-fill{height:100%;border-radius:4px;transition:width .3s ease;animation:sp-fill-grow .6s ease-out}.sp-section-stats{font-size:.75rem;color:var(--text-muted);white-space:nowrap;min-width:80px}.sp-overdue{margin-bottom:2rem}.sp-section-title--overdue{color:var(--warning-fg,#92400e)}.sp-today-item--overdue{border-left:3px solid var(--warning,#d97706)}.sp-today-item-date{font-size:.75rem;color:var(--text-muted)}.sp-card--overdue{border-color:var(--warning,#d97706)}.sp-card--overdue .sp-card-value{color:var(--warning,#d97706)}.sp-today{margin-bottom:2rem}.sp-today-empty{color:var(--text-muted);font-size:.875rem;font-style:italic}.sp-today-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.sp-today-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--surface-secondary);border:1px solid var(--border);border-radius:var(--radius-md);gap:1rem}.sp-today-checkbox-label{display:flex;align-items:center;gap:.75rem;flex:1 1;min-width:0;cursor:pointer}.sp-today-checkbox{width:18px;height:18px;accent-color:var(--sp-accent);flex-shrink:0;cursor:pointer}.sp-today-item-text{font-size:.875rem;color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-today-item-text--done{text-decoration:line-through;color:var(--text-muted)}.sp-today-item-meta{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.sp-today-item-section{display:flex;align-items:center;gap:.375rem;font-size:.75rem;font-weight:600}.sp-today-item-section-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sp-today-item-duration{font-size:.75rem;color:var(--text-muted)}.sp-timeline{margin-bottom:2rem}.sp-timeline-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.sp-timeline-header .sp-section-title{margin-bottom:0}.sp-timeline-nav{display:flex;gap:.5rem}.sp-timeline-nav-btn{padding:.375rem .75rem;font-size:.8125rem;background:var(--surface-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s}.sp-timeline-nav-btn:hover:not(:disabled){background:var(--surface-hover)}.sp-timeline-nav-btn:disabled{opacity:.5;cursor:default}.sp-timeline-nav-btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.sp-timeline-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:.5rem;gap:.5rem}.sp-timeline-day{background:var(--surface-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:.5rem;min-height:100px}.sp-timeline-day--today{border-color:var(--sp-accent);box-shadow:0 0 0 1px var(--sp-accent)}.sp-timeline-day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.sp-timeline-day-name{font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.sp-timeline-day-num{font-size:.8125rem;font-weight:600;color:var(--text-secondary)}.sp-timeline-day--today .sp-timeline-day-num{color:var(--sp-accent)}.sp-timeline-day-items{display:flex;flex-direction:column;gap:.25rem}.sp-timeline-item{font-size:.6875rem;padding:.25rem .375rem;border-left:3px solid var(--border);border-radius:2px;color:var(--text-primary);background:var(--surface-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-timeline-item--done{opacity:.5;text-decoration:line-through;transition:opacity .2s ease}.sp-timeline-item-code{font-weight:600}@keyframes sp-fill-grow{0%{width:0}}.sp-today-item-text{transition:color .2s ease,-webkit-text-decoration-color .2s ease;transition:color .2s ease,text-decoration-color .2s ease;transition:color .2s ease,text-decoration-color .2s ease,-webkit-text-decoration-color .2s ease}.sp-today-item-text--done{-webkit-text-decoration-color:var(--text-muted);text-decoration-color:var(--text-muted)}.sp-today-checkbox:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:2px}.sp-today-item:focus-within{box-shadow:0 0 0 2px var(--border-focus)}.sp-skeleton-header{margin-bottom:2rem}.sp-skeleton-line{height:14px;background:var(--border);border-radius:4px;animation:sp-pulse 1.5s ease-in-out infinite}.sp-skeleton-line--title{width:40%;height:24px;margin-bottom:.5rem}.sp-skeleton-line--subtitle{width:25%;margin-bottom:1rem}.sp-skeleton-bar{height:8px;background:var(--border);border-radius:4px;animation:sp-pulse 1.5s ease-in-out infinite}.sp-skeleton-cards{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1rem;gap:1rem;margin-bottom:2rem}.sp-skeleton-card{height:80px;background:var(--border);border-radius:var(--radius-md);animation:sp-pulse 1.5s ease-in-out infinite}.sp-skeleton-sections{display:flex;flex-direction:column;gap:.75rem}.sp-skeleton-line--section{width:100%;height:28px}@media (max-width:768px){.sp-cards,.sp-skeleton-cards{grid-template-columns:repeat(2,1fr)}.sp-timeline-grid{grid-template-columns:repeat(7,minmax(120px,1fr));overflow-x:auto}.sp-section-row{flex-direction:column;align-items:stretch;gap:.375rem}.sp-section-label{min-width:unset}.sp-today-item{flex-direction:column;align-items:stretch;gap:.5rem}.sp-today-item-meta{padding-left:2.25rem}}@media (max-width:480px){.sp-cards,.sp-skeleton-cards{grid-template-columns:1fr}.sp-timeline-grid{grid-template-columns:repeat(7,minmax(100px,1fr));overflow-x:auto}.sp-dashboard{padding:1rem}}@media (prefers-reduced-motion:reduce){.sp-header-progress-fill,.sp-section-bar-fill{transition:none;animation:none}.sp-timeline-item--done,.sp-today-item-text{transition:none}.sp-skeleton-bar,.sp-skeleton-card,.sp-skeleton-line{animation:none;opacity:.5}}.sidebar-footer{margin-top:auto;padding:.75rem .75rem 0;border-top:1px solid var(--border-on-dark)}.theme-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-on-dark-muted);font-size:.8125rem;cursor:pointer;transition:background-color .15s,color .15s}.theme-toggle:hover{background:var(--surface-active);color:var(--text-on-dark)}.theme-toggle:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.theme-toggle-icon{flex-shrink:0}.main-content{flex:1 1;min-width:0;display:flex;flex-direction:column}.content-header{padding:1rem 2rem;border-bottom:1px solid var(--border);background:var(--surface-primary)}.content-body{flex:1 1;padding:2rem;max-width:960px}.reading-progress{position:-webkit-sticky;position:sticky;top:0;z-index:20;height:3px;background:var(--border);overflow:hidden}.reading-progress-bar{height:100%;background:var(--accent);transition:width .12s ease-out;will-change:width}.breadcrumbs{font-size:.8125rem;color:var(--text-muted);list-style:none;flex-wrap:wrap}.breadcrumbs,.breadcrumbs li{display:flex;align-items:center;gap:.375rem}.breadcrumbs a{color:var(--text-secondary)}.breadcrumbs a:hover{color:var(--accent-fg)}.breadcrumbs [aria-current=page]{color:var(--text-primary);font-weight:500}.breadcrumb-separator{color:var(--text-muted);font-size:.75rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1rem;gap:1rem}.card{background:var(--surface-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;transition:border-color .15s,box-shadow .2s,transform .2s}.card:hover{border-color:var(--accent);box-shadow:0 4px 12px rgba(0,0,0,.08);transform:translateY(-2px)}.card-link:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.card a{color:inherit}.card a:hover,.card-link{text-decoration:none}.card-link{display:block;color:inherit}.card-title{font-size:1.0625rem;font-weight:600;color:var(--text-primary);margin-bottom:.375rem}.card-description{font-size:.875rem;color:var(--text-secondary);line-height:1.5}.card-stats{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.card-stat{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-muted)}.card-stat svg{flex-shrink:0;color:var(--accent)}.card-meta{font-size:.75rem;color:var(--text-muted);margin-top:.75rem}.lesson-list{list-style:none;display:flex;flex-direction:column;gap:.25rem}.lesson-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border);transition:border-color .15s,background-color .15s}.lesson-item:hover{border-color:var(--accent);background:var(--surface-secondary)}.lesson-item a{color:var(--text-primary);font-weight:500;flex:1 1;display:flex;align-items:baseline;gap:.5rem}.lesson-item a:hover{text-decoration:none;color:var(--accent-fg)}.lesson-item a:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.lesson-number{width:1.75rem;height:1.75rem;display:flex;border-radius:50%;background:var(--accent-light);color:var(--accent-fg);font-size:.75rem}.lesson-exercise-badge,.lesson-number{align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.lesson-exercise-badge{display:inline-flex;gap:.25rem;min-width:1.5rem;height:1.5rem;padding:0 .5rem;border-radius:.75rem;border:1px solid var(--border);font-size:.6875rem;line-height:1}.lesson-code,.lesson-exercise-badge{background:var(--surface-secondary);color:var(--text-muted)}.lesson-code{flex-shrink:0;display:inline-block;padding:.05rem .3rem;border-radius:var(--radius-sm,.25rem);font-size:.7rem;font-weight:600;letter-spacing:.02em;white-space:nowrap}.lesson-label{min-width:0}.lesson-code--title{font-size:.85rem;vertical-align:middle;margin-right:.5rem;position:relative;top:-.15em}.exercise-code{color:var(--text-muted);font-size:.82em;font-weight:500}.content-block{margin-bottom:1.5rem;line-height:1.8}.content-block--text{font-size:1.0625rem;color:var(--text-primary);max-width:68ch}.prose h1,.prose h2,.prose h3,.prose h4{color:var(--text-primary);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.3}.prose h1{font-size:1.5rem}.prose h2{font-size:1.25rem}.prose h3{font-size:1.125rem}.prose p{margin-bottom:1em}.prose ol,.prose ul{padding-left:1.5em;margin-bottom:1em}.prose li{margin-bottom:.25em}.prose strong{font-weight:600}.prose a{color:var(--accent-fg);text-decoration:underline;text-underline-offset:2px}.prose a:hover{color:var(--accent-hover)}.prose a:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.prose blockquote{border-left:3px solid var(--border);padding-left:1em;color:var(--text-secondary);margin:1em 0}.prose pre{border:1px solid var(--border);border-radius:var(--radius-md);padding:.875rem 1rem;overflow-x:auto;font-size:.875rem;margin-bottom:1em}.prose code,.prose pre{background:var(--surface-secondary);font-family:var(--font-mono)}.prose code{font-size:.875em;padding:.125em .375em;border-radius:var(--radius-sm)}.prose pre code{background:none;padding:0}.prose img{max-width:100%;border-radius:var(--radius-md)}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.content-block--video{background:var(--surface-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;text-align:center;color:var(--text-muted)}.content-block--video-label{margin-top:.5rem}.content-block--video:has(.content-block--video-frame){padding:0;background:#000;overflow:hidden}.content-block--video-frame{position:relative;width:100%;aspect-ratio:16/9}.content-block--video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}.content-block--code{background:var(--surface-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem 1.25rem;font-family:var(--font-mono);font-size:.875rem;overflow-x:auto;white-space:pre}.content-block--image{max-width:100%}.content-block--image img{max-width:100%;border-radius:var(--radius-md)}.page-title{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem;letter-spacing:-.01em}.page-subtitle{font-size:.9375rem;color:var(--text-secondary);margin-bottom:1.5rem}.lesson-module-label{font-weight:600;color:var(--accent-fg)}.subtitle-link{color:var(--accent-fg);text-decoration:underline;text-underline-offset:2px}.subtitle-link:hover{color:var(--accent-hover)}.subtitle-link:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.empty-state-icon{font-size:2.5rem;margin-bottom:.75rem}.content-placeholder{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;background:var(--surface-secondary);border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--text-muted);font-size:.875rem;margin-bottom:1.5rem}.content-placeholder svg{flex-shrink:0;opacity:.6}.content-placeholder p{margin:0}.error-state{text-align:center;padding:3rem 1rem;color:var(--text-secondary)}.error-state-icon{color:var(--text-muted);margin-bottom:1rem}.error-state h2{font-size:1.25rem;margin-bottom:.5rem;color:var(--text-primary)}.error-state-action{display:flex;gap:.5rem;margin-top:1.5rem}.course-stats-grid{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;margin-bottom:1.75rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.course-stat-card{display:inline-flex;align-items:center;gap:.4rem;padding:0;border:none;background:none;text-align:left}.course-stat-icon{color:var(--text-muted);margin-bottom:0;flex-shrink:0}.course-stat-value{font-size:1.0625rem;font-weight:700;line-height:1;color:var(--text-primary)}.course-stat-label{font-size:.875rem;color:var(--text-muted);text-transform:none;letter-spacing:0}.course-search{position:relative;display:flex;align-items:center;margin-bottom:1rem}.course-search-icon{position:absolute;left:.75rem;color:var(--text-muted);pointer-events:none}.course-search-input{width:100%;padding:.625rem 2.5rem .625rem 2.25rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-primary);color:var(--text-primary);font-size:.875rem;font-family:inherit;outline:none;transition:border-color .15s}.course-search-input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.course-search-input::placeholder{color:var(--text-muted)}.course-search-input:focus{border-color:var(--accent)}.course-search-clear{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border:none;border-radius:50%;background:var(--surface-hover);color:var(--text-muted);cursor:pointer;font-size:0;padding:0}.course-search-clear:hover{background:var(--border);color:var(--text-primary)}.course-search-clear:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.course-search-count{position:absolute;right:2.5rem;font-size:.75rem;color:var(--text-muted)}.module-toggle-all{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;justify-content:flex-end}.module-toggle-btn{background:none;border:none;color:var(--accent-fg);font-size:.8125rem;cursor:pointer;padding:.125rem 0}.module-toggle-btn:hover{text-decoration:underline}.module-toggle-btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.module-toggle-sep{color:var(--text-muted);font-size:.75rem}.module-section{margin-bottom:.5rem;scroll-margin-top:1rem;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.module-section>summary{list-style:none;cursor:pointer;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--surface-secondary);transition:background .15s ease}.module-section>summary:hover{background:color-mix(in srgb,var(--accent) 6%,var(--surface-secondary))}.module-section>summary:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.module-section>summary::-webkit-details-marker{display:none}.module-section-header-content{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex:1 1;min-width:0}.module-section-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .2s ease}.module-section[open]>summary .module-section-chevron{transform:rotate(180deg)}.module-section>.lesson-list{border-top:1px solid var(--border);padding:.5rem}.module-section .lesson-item{border:none;padding:.625rem .75rem;border-radius:var(--radius-md)}.module-section .lesson-item:hover{border:none;background:color-mix(in srgb,var(--accent) 6%,transparent)}.module-section-title{font-size:1.0625rem;font-weight:600;color:var(--text-primary)}.module-section-stats{font-size:.8125rem;color:var(--text-muted);white-space:nowrap}.module-section-empty{color:var(--text-muted);font-size:.875rem;padding:.5rem 0}.exercises-section{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.exercises-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--surface-primary);padding:.75rem 0;margin-top:-.75rem}.exercises-header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--border);opacity:0;transition:opacity .15s}.exercises-header.stuck:after{opacity:1}.exercises-header .section-title{margin-bottom:0;padding-bottom:0;border-bottom:none}.exercise-progress{display:flex;align-items:center;gap:.5rem}.exercise-progress-dots{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}.exercise-dot{width:.625rem;height:.625rem;border-radius:50%;border:1.5px solid var(--border);background:transparent;padding:0;cursor:pointer;transition:background-color .2s,border-color .2s,transform .15s;flex-shrink:0}.exercise-dot:hover{transform:scale(1.3)}.exercise-dot:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.exercise-dot.correct{background:var(--success);border-color:var(--success)}.exercise-dot.incorrect{background:var(--error);border-color:var(--error)}.exercise-dot.current{box-shadow:0 0 0 2px var(--surface-primary),0 0 0 3.5px var(--accent)}.exercise-progress-text{font-size:.8125rem;color:var(--text-muted);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.exercise-progress-score{color:var(--success)}.section-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--accent);display:inline-block}.exercise-card{background:var(--surface-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1rem;transition:border-color .2s ease;scroll-margin-top:1rem;outline:none}.exercise-card:focus-visible{border-color:var(--border-focus);box-shadow:0 0 0 2px color-mix(in srgb,var(--border-focus) 25%,transparent)}.exercise-card.answered-correct{border-color:var(--success)}.exercise-card.answered-incorrect{border-color:var(--error)}.exercise-format-badge{font-size:.75rem;font-weight:600;padding:.125rem .5rem;border-radius:var(--radius-sm,.25rem);background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent-fg)}.multi-select-hint{font-size:.8125rem;color:var(--text-secondary);margin:0 0 .5rem;font-style:italic}.alternative.multi-select .alt-letter{border-radius:.25rem;font-size:.875rem}.alt-letter-label{font-weight:600;font-size:.8125rem;color:var(--text-secondary);flex-shrink:0}.exercises-summary{margin-top:1.5rem;padding:1.5rem;background:color-mix(in srgb,var(--accent) 8%,var(--surface-secondary));border:2px solid var(--accent);border-radius:var(--radius-lg);text-align:center}.exercises-summary-score{font-size:2rem;font-weight:600;color:var(--accent-fg)}.exercises-summary-pct{font-size:1rem;font-weight:500;color:var(--text-secondary)}.exercises-summary-bar{width:100%;max-width:16rem;height:.5rem;border-radius:.25rem;background:var(--surface-secondary);margin-top:.5rem;overflow:hidden}.exercises-summary-bar-fill{height:100%;border-radius:.25rem;background:var(--success);transition:width .5s ease}.exercises-summary-label{font-size:.9375rem;color:var(--text-secondary);margin-top:.25rem}.exercises-summary-list{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;list-style:none;padding:0;margin:1rem 0 0}.summary-item{display:flex;align-items:center;gap:.25rem}.summary-item-icon{font-size:.8125rem;font-weight:600}.summary-item.correct .summary-item-icon{color:var(--success-fg)}.summary-item.incorrect .summary-item-icon{color:var(--error-fg)}.summary-item-link{background:none;border:none;font-family:inherit;font-size:.8125rem;cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius-sm);transition:background-color .15s}.summary-item.correct .summary-item-link{color:var(--success-fg)}.summary-item.incorrect .summary-item-link{color:var(--error-fg);font-weight:600}.summary-item-link:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.summary-item-link:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.exercises-summary .btn{margin-top:1rem}.lesson-complete-banner{display:flex;align-items:center;gap:1rem;margin-top:1.5rem;padding:1rem 1.25rem;border-radius:var(--radius-lg);background:var(--accent-light);border:1px solid var(--border)}.lesson-complete-icon{font-size:1.75rem;line-height:1;flex-shrink:0}.lesson-complete-content{flex:1 1;min-width:0}.lesson-complete-title{font-weight:600;font-size:.9375rem;color:var(--text-primary);margin:0}.lesson-complete-score{font-size:.8125rem;color:var(--text-secondary);margin:.125rem 0 0}.lesson-complete-next{flex-shrink:0;display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border-radius:var(--radius-md);background:var(--accent);color:var(--accent-on);font-size:.8125rem;font-weight:600;text-decoration:none;white-space:nowrap;transition:opacity .15s ease}.lesson-complete-next:hover{opacity:.9}.lesson-complete-next:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.exercise-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.exercise-result-badge{font-size:.75rem;font-weight:600;padding:.125rem .5rem;border-radius:var(--radius-sm);animation:pop-in .25s ease}.exercise-result-badge.correct{color:var(--success-fg);background:color-mix(in srgb,var(--success) 12%,transparent)}.exercise-result-badge.incorrect{color:var(--error);background:color-mix(in srgb,var(--error) 12%,transparent)}.exercise-number{font-size:.8125rem;font-weight:600;color:var(--accent-fg);text-transform:uppercase;letter-spacing:.04em}.exercise-stem{font-size:1rem;color:var(--text-primary);line-height:1.7;margin-bottom:1rem}.exercise-stem p{margin-bottom:.5rem}.exercise-stem img{max-width:100%;height:auto;border-radius:var(--radius-md);margin:.75rem 0;display:block}.exercise-images{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.exercise-image{max-width:100%;height:auto;border-radius:var(--radius-md);border:1px solid var(--border);display:block}.exercise-stem table{border-collapse:collapse;max-width:100%;overflow-x:auto;display:block;margin:.75rem 0;font-size:.875rem}.exercise-stem td,.exercise-stem th{border:1px solid var(--border);padding:.375rem .625rem;text-align:left}.exercise-stem th{background:var(--surface-secondary);font-weight:600}.alternatives-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.alternative{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-primary);cursor:pointer;transition:border-color .2s ease,background-color .2s ease,transform .15s ease;text-align:left;font-size:.9375rem;color:var(--text-primary);font-family:inherit;width:100%}.alternative.selected,.alternative:hover:not(:disabled){border-color:var(--accent);background:var(--accent-light)}.alternative.correct{border-color:var(--success);background:var(--surface-success);animation:alt-reveal .3s ease}.alternative.incorrect{border-color:var(--error);background:var(--surface-error);animation:alt-reveal .3s ease}.alternative:disabled{cursor:default}.alt-letter{width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-secondary);font-weight:600;font-size:.8125rem;flex-shrink:0;color:var(--text-secondary)}.alternative.selected .alt-letter{background:var(--accent);color:var(--accent-on)}.alternative.correct .alt-letter{background:var(--success);color:var(--success-on)}.alternative.incorrect .alt-letter{background:var(--error);color:var(--error-on)}.alt-text{flex:1 1}.exercise-actions{display:flex;align-items:center;gap:.5rem}.keyboard-hint{display:none;font-size:.75rem;color:var(--text-muted);margin-left:auto}@media (hover:hover){.exercise-card:focus .keyboard-hint,.exercise-card:focus-within .keyboard-hint{display:inline}}.lesson-complete{display:flex;flex-direction:column;gap:.5rem;margin:2rem 0;padding-top:1.5rem;border-top:1px solid var(--border)}.lesson-complete-status{min-height:1.25rem}.lesson-complete-error{font-size:.875rem;color:var(--error-fg)}.lesson-complete-done{display:inline-flex;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:600;color:var(--success-fg)}.lesson-complete-btn{align-self:flex-start}.btn{padding:.5rem 1.25rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background-color .15s,opacity .15s;border:none}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);color:var(--accent-on)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface-primary);color:var(--text-secondary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover)}.btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.exercise-error{margin-top:.5rem;padding:.75rem 1rem;background:var(--surface-error);border:1px solid var(--surface-error-border);border-radius:var(--radius-md);color:var(--surface-error-fg);font-size:.875rem}.exercise-explanation{margin-top:1rem;padding:1rem;background:var(--accent-light);border-radius:var(--radius-md);font-size:.9375rem;color:var(--text-secondary);line-height:1.6;animation:slide-in .3s ease}.exercise-explanation-body{margin-top:.5rem}.exercise-explanation-body>:first-child{margin-top:0}.exercise-resolution{margin-top:1rem;font-size:.9375rem;color:var(--text-secondary)}.exercise-resolution .content-block--video-frame{margin-top:.5rem;border-radius:var(--radius-md);overflow:hidden;background:#000}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .exercise-explanation{background:rgba(12,192,223,.08)}:root:not([data-theme=light]) .exercise-result-badge.correct{background:rgba(22,163,74,.15)}:root:not([data-theme=light]) .exercise-result-badge.incorrect{background:rgba(220,38,38,.15)}:root:not([data-theme=light]) .exercises-summary{background:rgba(12,192,223,.08)}}:root[data-theme=dark] .exercise-explanation{background:rgba(12,192,223,.08)}:root[data-theme=dark] .exercise-result-badge.correct{background:rgba(22,163,74,.15)}:root[data-theme=dark] .exercise-result-badge.incorrect{background:rgba(220,38,38,.15)}:root[data-theme=dark] .exercises-summary{background:rgba(12,192,223,.08)}.lesson-nav{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border)}.lesson-nav-inner{display:flex;justify-content:space-between;gap:1rem}.lesson-nav-link{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);text-decoration:none;color:inherit;transition:border-color .15s,background .15s;max-width:48%}.lesson-nav-link:hover{border-color:var(--accent);background:var(--surface-hover)}.lesson-nav-prev{align-items:flex-start}.lesson-nav-next{align-items:flex-end;margin-left:auto}.lesson-nav-direction{display:flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-fg)}.lesson-nav-title{font-size:.9375rem;font-weight:500;line-height:1.3}.lesson-nav-module{font-size:.8125rem;color:var(--text-muted)}.lesson-nav-hint{text-align:center;font-size:.75rem;color:var(--text-muted);margin-top:.5rem;opacity:.6}.lesson-module-nav{margin-bottom:1.5rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-secondary)}.lesson-module-nav-summary{display:flex;align-items:center;justify-content:space-between;padding:.625rem .875rem;cursor:pointer;font-size:.8125rem;font-weight:500;color:var(--text-secondary);list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lesson-module-nav-summary::-webkit-details-marker{display:none}.lesson-module-nav-summary::marker{content:""}.lesson-module-nav-summary:hover{color:var(--text-primary)}.lesson-module-nav-summary:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.lesson-module-nav-label{display:flex;align-items:center;gap:.5rem}.lesson-module-nav-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;font-size:.6875rem;font-weight:600;border-radius:999px;background:var(--border);color:var(--text-secondary)}.lesson-module-nav-chevron{transition:transform .15s ease}.lesson-module-nav[open] .lesson-module-nav-chevron{transform:rotate(180deg)}.lesson-module-nav-list{list-style:none;margin:0;padding:0 0 .375rem}.lesson-module-nav-item{display:flex;align-items:baseline;gap:.5rem;padding:.25rem .875rem;font-size:.8125rem;line-height:1.4}.lesson-module-nav-item.current{background:var(--surface-primary)}.lesson-module-nav-number{flex-shrink:0;width:1.25rem;text-align:right;font-size:.75rem;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lesson-module-nav-link{color:var(--accent-fg);text-decoration:none;display:flex;align-items:baseline;gap:.4rem;min-width:0}.lesson-module-nav-link:hover{text-decoration:underline}.lesson-module-nav-current{font-weight:600;color:var(--text-primary);display:flex;align-items:baseline;gap:.4rem;min-width:0}.lesson-module-nav-badge{flex-shrink:0;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:1.25rem;height:1.25rem;padding:0 .4rem;border-radius:.625rem;background:var(--surface-secondary);border:1px solid var(--border);color:var(--text-muted);font-size:.625rem;font-weight:600;line-height:1}.mobile-menu-toggle{display:none;position:fixed;bottom:1.25rem;right:1.25rem;z-index:1000;width:3rem;height:3rem;border-radius:50%;border:none;background:var(--accent);color:var(--accent-on);cursor:pointer;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.2);transition:background-color .15s}.mobile-menu-toggle:hover{background:var(--accent-hover)}.sidebar-overlay{display:none;position:fixed;inset:0;z-index:998;background:rgba(0,0,0,.5)}.scroll-to-top{position:fixed;bottom:1.25rem;right:4.75rem;z-index:900;width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid var(--border);background:var(--surface-primary);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.1);opacity:0;pointer-events:none;transform:translateY(.5rem);transition:opacity .2s,transform .2s,background-color .15s,color .15s}.scroll-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.scroll-to-top:hover{background:var(--accent);color:var(--accent-on);border-color:var(--accent)}.scroll-to-top:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skeleton{background:var(--surface-hover);border-radius:var(--radius-sm);animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-breadcrumb{height:1rem;width:16rem;max-width:100%}.skeleton-title{height:2rem;width:60%;margin-bottom:.75rem}.skeleton-subtitle{height:1rem;width:40%;margin-bottom:1.5rem}.skeleton-content{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.skeleton-line{height:1rem}.skeleton-line-full{width:100%}.skeleton-line-3q{width:75%}.skeleton-line-half{width:50%}.skeleton-section-title{height:1.5rem;width:10rem;margin-bottom:1rem}.skeleton-card{height:8rem;border-radius:var(--radius-md);margin-bottom:1rem}.skeleton-exercises{margin-top:2rem}.skeleton-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1rem;gap:1rem;margin-bottom:2rem}.skeleton-stat-card{height:5rem;border-radius:var(--radius-md)}.skeleton-module{height:3.5rem;border-radius:var(--radius-md);margin-bottom:.5rem}.keyboard-help-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5)}.keyboard-help-panel{background:var(--surface-primary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;max-width:400px;width:calc(100% - 2rem);max-height:calc(100dvh - 4rem);overflow-y:auto;box-shadow:0 8px 30px rgba(0,0,0,.15)}.keyboard-help-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.keyboard-help-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.keyboard-help-close{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;background:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer}.keyboard-help-close:hover{background:var(--surface-hover);color:var(--text-primary)}.keyboard-help-close:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.keyboard-help-group{margin-bottom:1rem}.keyboard-help-group:last-child{margin-bottom:0}.keyboard-help-group-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.5rem}.keyboard-help-list{display:flex;flex-direction:column;gap:.375rem}.keyboard-help-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.keyboard-help-keys{display:flex;gap:.25rem;flex-shrink:0}.keyboard-help-kbd{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .375rem;font-size:.75rem;font-family:var(--font-sans);font-weight:500;color:var(--text-secondary);background:var(--surface-secondary);border:1px solid var(--border);border-radius:var(--radius-sm)}.keyboard-help-desc{font-size:.8125rem;color:var(--text-secondary)}@media (max-width:768px){.sidebar{position:fixed;inset:0;z-index:999;width:280px;transform:translateX(-100%);transition:transform .25s ease-in-out}.sidebar.open{transform:translateX(0)}.sidebar-overlay.open{display:block}.mobile-menu-toggle{display:flex}.content-body{padding:1rem}.content-header{padding:.75rem 1rem}.card-grid{grid-template-columns:1fr}.lesson-nav-inner{flex-direction:column}.lesson-nav-link{max-width:100%}.lesson-nav-next{align-items:flex-end}.module-section-header-content{flex-direction:column;gap:.25rem}.page-title{font-size:1.25rem}.page-subtitle{font-size:.8125rem;margin-bottom:1rem}.course-stats-grid{gap:1rem}.course-stat-card{padding:0}.course-stat-value{font-size:1rem}.course-stat-label{font-size:.8125rem}.course-search-count{right:2.25rem;font-size:.6875rem}.exercise-card{padding:1rem}.exercises-header{flex-direction:column;align-items:flex-start;gap:.5rem;padding:.5rem 0}.exercise-stem{font-size:.9375rem}.alternative{padding:.625rem .75rem;font-size:.875rem;gap:.5rem}.alt-letter{width:1.5rem;height:1.5rem;font-size:.75rem}.exercise-number{font-size:.6875rem}.exercises-summary-score{font-size:1.5rem}.content-placeholder{font-size:.8125rem;padding:.75rem}.breadcrumbs{font-size:.75rem}.lesson-complete-banner{flex-direction:column;text-align:center}.lesson-complete-next{width:100%;justify-content:center;white-space:normal}}@media (max-width:480px){.course-stats-grid{gap:.75rem 1.25rem}.course-stat-card{flex-direction:row;gap:.4rem;padding:0}.course-stat-icon{margin-bottom:0}.course-stat-value{font-size:1.125rem}.course-stat-label{font-size:.75rem;text-transform:none;letter-spacing:normal}.lesson-item{padding:.5rem .625rem;gap:.5rem}.lesson-number{width:1.375rem;height:1.375rem;font-size:.6875rem}.module-section>summary{padding:.75rem 1rem}.module-section-title{font-size:.9375rem}.card-stats{gap:.5rem}.card-stat{font-size:.75rem}}@keyframes slide-in{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes pop-in{0%{opacity:0;transform:scale(.8)}60%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes alt-reveal{0%{transform:scale(1)}40%{transform:scale(1.01)}to{transform:scale(1)}}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:1.5rem;gap:1.5rem}.dash-section{background:var(--surface-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem}.dash-section--wide{grid-column:1/-1}.dash-section-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem;padding-left:.6rem;border-left:3px solid var(--accent);line-height:1.2}.dash-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.dash-section-header .dash-section-title{margin-bottom:0}.dash-section-link{font-size:.8125rem;color:var(--accent-fg);text-decoration:none;font-weight:500}.dash-section-link:hover{text-decoration:underline;text-underline-offset:2px}.dash-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));grid-gap:1rem;gap:1rem;text-align:center}.dash-stat{display:flex;flex-direction:column;gap:.25rem;padding:.85rem .5rem;background:var(--accent-light);border-radius:var(--radius-md)}.dash-stat-value{font-size:1.75rem;font-weight:700;color:var(--accent-fg);line-height:1}.dash-stat-label{font-size:.8125rem;color:var(--text-secondary)}.dash-empty{color:var(--text-muted);font-size:.875rem;padding:1rem 0}.dash-error{color:var(--error-fg);font-size:.875rem}.dash-plan-progress{display:flex;flex-direction:column;gap:.5rem}.dash-plan-progress-header{display:flex;justify-content:space-between;align-items:baseline}.dash-plan-name{font-size:.875rem;font-weight:500;color:var(--text-primary)}.dash-plan-percent{font-size:.875rem;font-weight:600;color:var(--accent-fg)}.dash-plan-bar{height:8px;background:var(--border);border-radius:4px;overflow:hidden}.dash-plan-bar-fill{height:100%;background:var(--accent);border-radius:4px;transition:width .3s ease}.dash-plan-meta{display:flex;justify-content:space-between;font-size:.8125rem;color:var(--text-secondary)}.dash-plan-overdue{color:var(--warning-fg);font-weight:500}.dash-plan-today{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border)}.dash-plan-today-title{font-size:.8125rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.dash-plan-today-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.375rem}.dash-plan-today-item{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-primary)}.dash-plan-today-item.done{color:var(--text-muted)}.dash-plan-today-item.done .dash-plan-today-text{text-decoration:line-through}.dash-plan-today-check{flex-shrink:0;width:1rem;text-align:center;font-size:.75rem}.dash-plan-today-item.done .dash-plan-today-check{color:var(--success-fg)}.dash-skeleton{display:flex;flex-direction:column;gap:.75rem}.dash-skeleton-line{height:.75rem;background:var(--border);border-radius:var(--radius-sm);animation:skeleton-pulse 1.5s ease-in-out infinite}.dash-skeleton-line--short{width:40%}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.dash-skeleton-line{animation:none}.dash-plan-bar-fill{transition:none}.alternative.correct,.alternative.incorrect,.exercise-explanation,.exercise-result-badge{animation:none}.alternative,.card{transition:none}.card{transform:none}.exercise-dot,.exercises-summary-bar-fill,.lesson-complete-next,.lesson-module-nav-chevron,.reading-progress-bar,.scroll-to-top,.skip-nav-link,.theme-toggle{transition:none}.skeleton{animation:none}}.auth-layout{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:2rem 1rem;background:var(--surface-secondary)}.auth-layout__theme-toggle{position:fixed;top:1rem;right:1rem;z-index:10}.auth-layout__card{width:100%;max-width:26rem;background:var(--surface-primary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.5rem 2rem;box-shadow:0 1px 3px rgba(0,0,0,.06)}.auth-layout__logo{gap:.75rem;margin-bottom:2rem}.auth-layout__logo,.auth-layout__logo-mark{display:flex;align-items:center;justify-content:center}.auth-layout__logo-mark{width:2.5rem;height:2.5rem;border-radius:var(--radius-md);background:var(--accent);color:var(--accent-on);font-weight:700;font-size:1.25rem}.auth-layout__logo-text{font-weight:600;font-size:1.25rem;color:var(--text-primary)}.auth-layout__footer{margin-top:2rem;font-size:.8125rem;color:var(--text-muted)}.auth-heading{font-size:1.5rem;font-weight:600;color:var(--text-primary);text-align:center;margin-bottom:.25rem}.auth-subheading{font-size:.875rem;color:var(--text-secondary);text-align:center;margin-bottom:1.5rem}.auth-form{gap:1.25rem}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:.375rem}.auth-label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.auth-label-row{display:flex;align-items:center;justify-content:space-between}.auth-input-wrapper{position:relative}.auth-input{width:100%;padding:.625rem .875rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--text-primary);background:var(--surface-primary);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .15s ease}.auth-input-wrapper .auth-input{padding-right:2.75rem}.auth-input::placeholder{color:var(--text-muted)}.auth-input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--border-focus) 15%,transparent)}.auth-input--error{border-color:var(--error)}.auth-input--error:focus{box-shadow:0 0 0 3px rgba(220,38,38,.15)}.auth-input:disabled{opacity:.6;cursor:not-allowed}.auth-toggle-password{position:absolute;top:50%;right:.625rem;transform:translateY(-50%);padding:.25rem;background:none;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.auth-toggle-password:hover{color:var(--text-secondary)}.auth-toggle-password:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.auth-toggle-password svg{width:1.25rem;height:1.25rem}.auth-field-error{font-size:.8125rem;color:var(--error-fg)}.auth-button{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:.75rem 1.25rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--accent-on);background:var(--accent);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color .15s ease;margin-top:.5rem;text-decoration:none;text-align:center}.auth-button:hover:not(:disabled){background:var(--accent-hover)}.auth-button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-button--link{display:block}.auth-button--secondary{background:var(--surface-secondary);color:var(--text-primary);border:1px solid var(--border)}.auth-button--secondary:hover:not(:disabled){background:var(--surface-hover)}.auth-link{color:var(--accent-fg);font-weight:500}.auth-link:hover{text-decoration:underline}.auth-link--small{font-size:.8125rem}.auth-footer-text{text-align:center;font-size:.875rem;color:var(--text-secondary);margin-top:1.5rem}.auth-alert{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.875rem;margin-bottom:1rem}.auth-alert--error{background:var(--surface-error);color:var(--surface-error-fg);border:1px solid var(--surface-error-border)}.auth-alert--warning{background:color-mix(in srgb,var(--warning) 12%,transparent);color:var(--warning-fg);border:1px solid color-mix(in srgb,var(--warning) 30%,transparent)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .auth-alert--warning{background:color-mix(in srgb,var(--warning) 10%,transparent);color:var(--warning);border-color:color-mix(in srgb,var(--warning) 30%,transparent)}}:root[data-theme=dark] .auth-alert--warning{background:color-mix(in srgb,var(--warning) 10%,transparent);color:var(--warning);border-color:color-mix(in srgb,var(--warning) 30%,transparent)}.auth-alert__icon{width:1.25rem;height:1.25rem;flex-shrink:0;margin-top:.0625rem}.auth-password-rules{list-style:none;display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem}.auth-password-rule{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-muted);transition:color .15s ease}.auth-password-rule--pass{color:var(--success-fg)}.auth-password-rule__icon{font-size:.75rem;width:1rem;text-align:center}.auth-success-icon{display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.auth-success-icon svg{width:3rem;height:3rem;color:var(--success)}@media (max-width:480px){.auth-layout{padding:1rem .75rem}.auth-layout__card{padding:2rem 1.25rem;border-radius:var(--radius-md)}.auth-heading{font-size:1.25rem}}.admin-page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.admin-back{display:inline-block;margin-bottom:.75rem;color:var(--text-secondary);text-decoration:none}.admin-back:hover{color:var(--text-primary)}.admin-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.admin-list-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1rem;background:var(--surface-primary);border:1px solid var(--border);border-radius:var(--radius-md)}.admin-list-link{display:flex;flex-direction:column;gap:.125rem;text-decoration:none;flex:1 1}.admin-list-title{color:var(--text-primary);font-weight:600}.admin-list-slug{color:var(--text-muted);font-size:.85rem}.admin-coverage{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-secondary);margin-top:.15rem}.admin-coverage-gap{font-weight:600;color:var(--warning-fg,var(--text-primary))}.admin-list-link:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.admin-badge{font-size:.8rem;font-weight:600;padding:.2rem .6rem;border-radius:var(--radius-sm);white-space:nowrap}.admin-badge--published{background:var(--surface-success);color:var(--success-fg)}.admin-badge--draft{color:var(--warning-fg)}.admin-badge--draft,.admin-badge--neutral{background:var(--surface-secondary);border:1px solid var(--border)}.admin-badge--neutral{color:var(--text-secondary)}.admin-actions{display:flex;gap:.75rem;margin-top:1.5rem}.admin-actions,.admin-confirm{align-items:center;flex-wrap:wrap}.admin-confirm{display:inline-flex;gap:.5rem}.admin-form-ok{color:var(--success-fg);font-size:.9rem;margin:.25rem 0}.auth-label-hint{color:var(--text-muted);font-weight:400;font-size:.85rem}.admin-form-note{background:var(--surface-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem 1rem;color:var(--text-secondary);margin:0 0 1rem}.admin-readonly-fields{display:grid;grid-template-columns:max-content 1fr;grid-gap:.5rem 1rem;gap:.5rem 1rem;margin:0}.admin-readonly-fields dt{color:var(--text-muted);font-weight:600}.admin-readonly-fields dd{color:var(--text-primary);margin:0}.admin-section{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.admin-section-title{font-size:1.15rem;font-weight:600;color:var(--text-primary);margin:0}.admin-block-list{list-style:none;padding:0;margin:0 0 2rem;display:flex;flex-direction:column;gap:1rem}.admin-block-item{border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem;background:var(--surface-secondary)}.admin-block-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.admin-block-preview{background:var(--surface-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem;margin:0;max-height:12rem;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:.85rem;color:var(--text-primary)}.admin-block-textarea{font-family:var(--font-mono,monospace);resize:vertical}.admin-block-add,.admin-block-edit{display:flex;flex-direction:column;gap:.5rem}.admin-block-add{border-top:1px solid var(--border);padding-top:1.5rem}.admin-live-preview{border:1px dashed var(--border);border-radius:var(--radius-md);padding:1.5rem;background:var(--surface-primary)}.admin-exercise-list,.admin-live-preview{display:flex;flex-direction:column;gap:1rem}.admin-exercise-list{list-style:none;padding:0;margin:1rem 0 0}.admin-exercise-item{border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem;background:var(--surface-secondary)}.admin-alt-list{list-style:none;padding:0;margin:.75rem 0 0;display:flex;flex-direction:column;gap:.35rem}.admin-alt{display:flex;align-items:baseline;gap:.5rem;color:var(--text-secondary)}.admin-alt--correct{color:var(--text-primary);font-weight:600}.admin-alt-marker{flex:none;width:1.2rem;text-align:center}.admin-alt--correct .admin-alt-marker{color:var(--success-fg)}.admin-alt-text{flex:1 1}.admin-alt-tag{flex:none;font-size:.75rem;font-weight:600;color:var(--success-fg);background:var(--surface-success);border-radius:var(--radius-sm);padding:.1rem .45rem}.admin-explanation{margin-top:.75rem;border-top:1px dashed var(--border);padding-top:.5rem}.admin-explanation summary{cursor:pointer;font-weight:600;color:var(--text-secondary)}.admin-tree,.admin-tree-modules{display:flex;flex-direction:column;gap:.75rem}.admin-tree-modules{list-style:none;padding:0;margin:0}.admin-tree-module{background:var(--surface-primary);border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem}.admin-tree-module-head{display:flex;align-items:center;gap:.5rem}.admin-tree-lessons{list-style:none;padding:0;margin:.5rem 0 0 1.75rem;display:flex;flex-direction:column;gap:.375rem;min-height:2.5rem;border-radius:var(--radius-sm);transition:background-color .1s ease}.admin-tree-lessons--over{background:var(--surface-secondary);outline:2px dashed var(--border-focus);outline-offset:2px}.admin-tree-lesson{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--surface-secondary);border:1px solid var(--border);border-radius:var(--radius-sm)}.admin-tree-lesson-empty{padding:.5rem .75rem;color:var(--text-muted);font-size:.85rem;font-style:italic}.admin-drag-handle{cursor:-webkit-grab;cursor:grab;background:transparent;border:none;color:var(--text-muted);font-size:1.1rem;line-height:1;padding:.25rem .4rem;touch-action:none}.admin-drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.admin-drag-handle:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.admin-tree-drag-overlay{padding:.5rem .9rem;background:var(--surface-primary);border:1px solid var(--border-focus);border-radius:var(--radius-sm);box-shadow:0 4px 12px rgba(0,0,0,.15);font-weight:600}.admin-conflict-banner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--surface-secondary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--warning-fg,var(--text-primary))}.inline-rename{display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap}.inline-rename-pencil{cursor:pointer;background:transparent;border:none;color:var(--text-muted);padding:.2rem;line-height:1;border-radius:var(--radius-sm)}.inline-rename-pencil:hover:not(:disabled){color:var(--text-primary);background:var(--surface-secondary)}.inline-rename-pencil:disabled{cursor:not-allowed;opacity:.4}.inline-rename-pencil:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.inline-rename-input{font:inherit;font-weight:600;padding:.2rem .4rem;border:1px solid var(--border-focus);border-radius:var(--radius-sm);background:var(--surface-primary);color:var(--text-primary);min-width:10rem}.inline-rename-conflict{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--warning-fg,var(--text-primary))}.admin-list-main{display:flex;flex-direction:column;gap:.125rem;flex:1 1}.admin-list-sublink{display:flex;flex-direction:column;gap:.125rem;text-decoration:none}.admin-list-sublink:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.lesson-move-menu-wrapper{position:relative;flex:none}.lesson-move-trigger{cursor:pointer;background:transparent;border:none;color:var(--text-muted);padding:.3rem .4rem;line-height:1;border-radius:var(--radius-sm)}.lesson-move-trigger:hover:not(:disabled){color:var(--text-primary);background:var(--surface-secondary)}.lesson-move-trigger:disabled{cursor:not-allowed;opacity:.4}.lesson-move-trigger:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.lesson-move-menu{position:absolute;top:100%;right:0;z-index:20;display:flex;flex-direction:column;min-width:12rem;background:var(--surface-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 4px 12px rgba(0,0,0,.15);padding:.25rem}.lesson-move-menu-item,.lesson-move-submenu-item{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text-primary);padding:.5rem .65rem;border-radius:var(--radius-sm);cursor:pointer;font:inherit}.lesson-move-menu-item:focus-visible,.lesson-move-menu-item:hover:not(:disabled),.lesson-move-submenu-item:focus-visible,.lesson-move-submenu-item:hover{background:var(--surface-secondary);outline:none}.lesson-move-menu-item:disabled{cursor:not-allowed;color:var(--text-muted)}.lesson-move-submenu{display:flex;flex-direction:column;margin-top:.15rem;padding-top:.15rem;border-top:1px solid var(--border)}.admin-error{padding:.75rem 1rem;background:var(--surface-error);border:1px solid var(--surface-error-border);color:var(--surface-error-fg)}.admin-error,.admin-flash:not(:empty){border-radius:var(--radius-md);margin-bottom:1rem}.admin-flash:not(:empty){padding:.6rem .9rem;background:var(--accent-light);color:var(--text-primary);border:1px solid var(--border)}.admin-grant-form{display:flex;flex-direction:column;gap:.85rem;max-width:32rem;padding:1.25rem;margin-bottom:2rem;background:var(--surface-primary);border:1px solid var(--border);border-radius:var(--radius-md)}.admin-fieldset{display:flex;flex-wrap:wrap;gap:1rem;border:none;padding:0;margin:0}.admin-legend{font-size:.8rem;font-weight:600;color:var(--text-secondary);padding:0;margin-bottom:.4rem}.admin-radio{display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem;color:var(--text-primary);cursor:pointer}.admin-field{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;font-weight:600;color:var(--text-secondary)}.admin-field input,.admin-field select{padding:.5rem .7rem;font-size:.9rem;font-weight:400;font-family:inherit;color:var(--text-primary);background:var(--surface-primary);border:1px solid var(--border);border-radius:var(--radius-md)}.admin-field input:focus-visible,.admin-field select:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.admin-student-name{font-weight:600;color:var(--text-primary)}.admin-entitlement-list{list-style:none;padding:0;margin:.4rem 0 0;display:flex;flex-direction:column;gap:.4rem}.admin-entitlement{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.admin-entitlement-origin{font-size:.75rem;color:var(--text-secondary)}.btn-danger{background:var(--error);color:var(--error-on)}.btn-danger:hover:not(:disabled){background:var(--error-fg)}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover)}