.app-shell{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:.75rem;height:60px;padding:0 clamp(.75rem,.4rem + 1.5vw,1.5rem);padding-top:env(safe-area-inset-top);background:var(--brand-700);color:#fff;box-shadow:var(--shadow-md)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);font-size:1.4rem;color:#fff;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;touch-action:manipulation}.icon-btn:active{background:#ffffff26}.brand{display:flex;align-items:center;gap:.55rem;color:#fff;font-weight:800;letter-spacing:-.01em}.brand:hover{text-decoration:none}.brand-mark{display:inline-grid;place-items:center;min-width:38px;height:38px;padding:0 .4rem;background:#ffffff29;border-radius:10px;font-size:var(--fs-sm);letter-spacing:.05em}.brand-text{font-size:var(--fs-lg)}.topbar-spacer{flex:1}.who{display:flex;align-items:center;gap:.5rem;min-width:0;background:#ffffff1f;border:none;cursor:pointer;color:#fff;padding:.28rem .6rem .28rem .32rem;border-radius:999px;font-family:inherit}.who:hover{background:#ffffff38}.who-caret{font-size:.6rem;opacity:.85}.user-menu{position:relative}.user-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:transparent;border:none}.user-dropdown{position:absolute;right:0;top:calc(100% + .5rem);z-index:45;min-width:250px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden}.user-dd-head{display:flex;gap:.7rem;align-items:center;padding:.9rem 1rem;border-bottom:1px solid var(--border)}.avatar-lg{width:44px;height:44px;font-size:var(--fs-base);flex-shrink:0}.user-dd-id{display:flex;flex-direction:column;min-width:0}.user-dd-id strong{overflow:hidden;text-overflow:ellipsis}.user-dd-role{align-self:flex-start;margin-top:.25rem}.user-dd-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.85rem 1rem;border:none;background:transparent;cursor:pointer;font-family:inherit;font-weight:700;font-size:var(--fs-base);color:var(--text);text-align:left}.user-dd-item:hover{background:var(--surface-2)}.rail-toggle{display:none}.rail-collapse{margin-top:auto;display:flex;align-items:center;gap:.8rem;min-height:42px;padding:.55rem .9rem;border:none;border-top:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-family:inherit;font-weight:600;font-size:var(--fs-sm)}.rail-collapse:hover{background:var(--surface-2)}@media(min-width:821px){.rail-toggle{display:inline-flex}.railed .sidenav{width:78px;padding:.75rem .4rem}.railed .navitem.rail-item{flex-direction:column;gap:.15rem;padding:.5rem .2rem;min-height:56px;justify-content:center;text-align:center}.railed .rail-item .navitem-icon{width:auto;font-size:1.45rem}.railed .rail-label{font-size:.6rem;font-weight:700;line-height:1.05}.railed .rail-collapse{justify-content:center}.railed .rail-collapse-label{display:none}}.avatar{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--brand-300);color:var(--brand-900);font-weight:800;font-size:var(--fs-sm);flex-shrink:0}.who-name{font-weight:600;font-size:var(--fs-sm);max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout{flex:1;display:flex;min-height:0}.sidenav{display:flex;flex-direction:column;gap:.25rem;padding:1rem .75rem;width:264px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border)}.navitem{display:flex;align-items:center;gap:.8rem;min-height:var(--tap);padding:.55rem .9rem;border-radius:var(--radius-sm);color:var(--text);font-weight:600;font-size:var(--fs-base);background:transparent;border:none;cursor:pointer;text-align:left;width:100%;font-family:inherit;touch-action:manipulation}.navitem:hover{background:var(--surface-2);text-decoration:none}.navitem.active{background:var(--brand-100);color:var(--brand-900)}@media(prefers-color-scheme:dark){.navitem.active{background:#5eead41f;color:var(--brand-300)}}.navitem-icon{font-size:1.25rem;width:1.6rem;text-align:center;flex-shrink:0}.navitem.logout{margin-top:auto;color:var(--text-muted)}.navgroup{display:flex;flex-direction:column}.navgroup-head{display:flex;align-items:center;gap:.8rem;min-height:var(--tap);padding:.55rem .9rem;border-radius:var(--radius-sm);color:var(--text);font-weight:700;font-size:var(--fs-base);background:transparent;border:none;cursor:pointer;text-align:left;width:100%;font-family:inherit;touch-action:manipulation}.navgroup-head:hover{background:var(--surface-2)}.navgroup-head.has-active{color:var(--brand-900)}@media(prefers-color-scheme:dark){.navgroup-head.has-active{color:var(--brand-300)}}.navgroup-label{flex:1}.navgroup-caret{color:var(--text-faint);font-size:.8rem;transition:transform .15s ease}.navgroup.open .navgroup-caret{transform:rotate(180deg)}.navgroup-body{display:flex;flex-direction:column;gap:.15rem;margin:.1rem 0 .35rem .85rem;padding-left:.5rem;border-left:2px solid var(--border)}.navitem.navsub{min-height:40px;padding:.45rem .75rem;font-weight:600;font-size:var(--fs-sm);color:var(--text-muted)}.navitem.navsub .navitem-icon{font-size:1.05rem}.navitem.navsub:hover{color:var(--text)}.navitem.navsub.active{background:var(--brand-100);color:var(--brand-900);font-weight:700}@media(prefers-color-scheme:dark){.navitem.navsub.active{background:#5eead41f;color:var(--brand-300)}}.content{flex:1;min-width:0;padding:clamp(1rem,.5rem + 2vw,2rem) 0 4rem}.scrim{display:none}@media(max-width:820px){.sidenav{position:fixed;top:60px;bottom:0;left:0;z-index:25;width:min(78vw,320px);transform:translate(-105%);transition:transform .22s ease;box-shadow:var(--shadow-lg)}.menu-open .sidenav{transform:translate(0)}.scrim{display:block;position:fixed;top:60px;right:0;bottom:0;left:0;z-index:20;background:#0006;border:none}}@media(min-width:821px){.menu-toggle{display:none}}.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:1.5rem 1.1rem;background:radial-gradient(1200px 600px at 10% -10%,var(--brand-100),transparent 60%),var(--bg)}@media(prefers-color-scheme:dark){.auth-wrap{background:radial-gradient(1200px 600px at 10% -10%,rgba(15,118,110,.25),transparent 60%),var(--bg)}}.auth-card{width:100%;max-width:440px;padding:clamp(1.4rem,1rem + 2vw,2.2rem);display:flex;flex-direction:column;gap:1.2rem}.auth-brand{display:flex;align-items:center;gap:.9rem}.auth-mark{display:inline-grid;place-items:center;min-width:54px;height:54px;background:var(--brand-700);color:#fff;font-weight:800;border-radius:14px;letter-spacing:.04em}.auth-title{margin:0;font-size:var(--fs-xl)}.auth-sub{margin:.1rem 0 0;font-size:var(--fs-sm)}.tabs{display:flex;gap:.25rem;background:var(--surface-2);padding:.3rem;border-radius:var(--radius-sm)}.tab{flex:1;min-height:44px;border:none;background:transparent;border-radius:10px;font-weight:700;font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer;font-family:inherit}.tab.active{background:var(--surface);color:var(--brand-700);box-shadow:var(--shadow-sm)}.auth-foot{text-align:center}.linkish{background:none;border:none;color:var(--brand-600);font-weight:600;font-size:var(--fs-sm);cursor:pointer;font-family:inherit;padding:.5rem}.auth-note{margin:0;padding:.75rem .9rem;background:var(--surface-2);border-radius:var(--radius-sm)}.alert{padding:.7rem .9rem;border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:500}.alert-error{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(220,38,38,.3)}.alert-ok{background:#ecfdf5;color:#065f46;border:1px solid rgba(16,185,129,.3)}.alert-warn{background:#fffbeb;color:#92400e;border:1px solid rgba(217,119,6,.3)}.page-header{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;justify-content:space-between;margin-bottom:1.5rem}.page-title{margin:0}.page-sub{margin:.3rem 0 0;font-size:var(--fs-base)}.page-actions{display:flex;gap:.6rem;flex-wrap:wrap}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.6rem;padding:clamp(2rem,1rem + 4vw,3.5rem) 1.5rem}.empty-icon{font-size:2.6rem;line-height:1}.stat{display:flex;flex-direction:column;gap:.15rem}.stat-value{font-size:var(--fs-2xl);font-weight:800;line-height:1;letter-spacing:-.02em}.stat-label{font-weight:600;color:var(--text-muted);font-size:var(--fs-sm)}.stat-hint{font-size:var(--fs-xs);margin-top:.2rem}.stat-brand{border-top:3px solid var(--brand-500)}.stat-warn{border-top:3px solid var(--warning)}.loading-inline{display:flex;align-items:center;gap:.7rem;padding:1.5rem 0}.day-chip{display:flex;flex-direction:column;gap:.35rem;padding:.9rem 1rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.day-chip-title{font-size:var(--fs-base);line-height:1.25}.home-search{display:flex;gap:.5rem;align-items:center;padding-left:.9rem;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm)}.home-search input{flex:1;border:none;background:transparent;min-height:50px;font-size:var(--fs-base)}.home-search input:focus{outline:none;box-shadow:none}.home-search .btn{margin:.3rem}.home-start{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-radius:var(--radius);background:linear-gradient(135deg,var(--brand-700),var(--brand-600));color:#fff}.home-start:hover{text-decoration:none;filter:brightness(1.05)}.home-start>div{display:flex;flex-direction:column;gap:.25rem}.home-start .badge{align-self:flex-start;background:#fff3;color:#fff}.home-start strong{font-size:var(--fs-lg)}.home-start .faint{color:#fffc}.home-start-go{font-weight:800;font-size:var(--fs-lg);flex-shrink:0}.home-cycle{display:flex;flex-direction:column;gap:.9rem;border-left:4px solid var(--brand-500)}.home-cycle-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.home-cycle-head>div{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.home-cycle-sel{min-height:40px;padding:.35rem .6rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:inherit;font-weight:700;max-width:55vw}.home-days{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.home-day{display:flex;flex-direction:column;gap:.5rem;padding:.85rem .95rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.home-day-head{display:flex;align-items:flex-start;gap:.6rem}.home-day-num{display:inline-grid;place-items:center;min-width:44px;height:28px;border-radius:7px;background:var(--brand-700);color:#fff;font-weight:800;font-size:var(--fs-xs);flex-shrink:0}.home-day-titles{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}.home-day-mods{display:flex;flex-wrap:wrap;gap:.4rem}.home-chip{padding:.28rem .6rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;font-size:var(--fs-xs);font-weight:700;color:var(--text)}.home-chip:hover{text-decoration:none;border-color:var(--brand-300);color:var(--brand-900)}.home-h{margin:0 0 .75rem;font-size:var(--fs-lg)}.home-mods{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.home-mod{display:flex;flex-direction:column;gap:.25rem;padding:.7rem .85rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);box-shadow:var(--shadow-sm);transition:transform .08s ease,border-color .15s ease}.home-mod:hover{text-decoration:none;transform:translateY(-2px);border-color:var(--brand-300)}.home-mod-num{display:inline-grid;place-items:center;width:34px;height:24px;background:var(--brand-700);color:#fff;border-radius:6px;font-weight:800;font-size:var(--fs-xs)}.home-mod-title{font-weight:700;font-size:var(--fs-sm);line-height:1.25}.text-xs{font-size:var(--fs-xs)}.home-spec{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.15rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);box-shadow:var(--shadow-sm);transition:transform .08s ease,border-color .15s ease}.home-spec:hover{text-decoration:none;transform:translateY(-2px);border-color:var(--brand-300)}.home-spec .badge{align-self:flex-start}.home-spec strong{font-size:var(--fs-base)}.course-stats{gap:.5rem}.course-section-title{margin:0;font-size:var(--fs-lg);padding-bottom:.4rem;border-bottom:2px solid var(--border)}.module-card{display:flex;flex-direction:column;gap:.4rem;padding:1rem 1.15rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);box-shadow:var(--shadow-sm);transition:transform .08s ease,box-shadow .15s ease,border-color .15s ease;min-height:128px}.module-card:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--brand-300)}.module-num{display:inline-grid;place-items:center;min-width:40px;height:28px;padding:0 .5rem;background:var(--brand-700);color:#fff;border-radius:8px;font-weight:800;font-size:var(--fs-sm)}.module-title{font-size:var(--fs-base);line-height:1.25}.module-sub{flex:1}.module-foot{gap:.8rem;margin-top:.2rem;flex-wrap:wrap}.md2{max-width:860px}.md2-overview{display:flex;flex-direction:column;border-left:4px solid var(--brand-500)}.md2-lesson{display:flex;align-items:center;gap:1rem;padding:.9rem 1.1rem;color:var(--text);transition:transform .08s ease,box-shadow .15s ease,border-color .15s ease}.md2-lesson:hover{text-decoration:none;transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:var(--brand-300)}.md2-lesson-num{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--brand-100);color:var(--brand-900);font-weight:800;flex-shrink:0}@media(prefers-color-scheme:dark){.md2-lesson-num{background:#5eead426;color:var(--brand-300)}}.md2-lesson-body{display:flex;flex-direction:column;min-width:0;flex:1}.md2-lesson-sum{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.md2-teach{flex-shrink:0}@media(max-width:620px){.md2-teach{display:none}}.mvid-sec{overflow:hidden}.mvid-head{display:flex;align-items:center;gap:.65rem;padding:.85rem 1.1rem;cursor:pointer;list-style:none}.mvid-head::-webkit-details-marker{display:none}.mvid-head .sec-ico{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:color-mix(in srgb,#dc2626 16%,transparent);font-size:1.1rem}.mvid-head .sec-title{font-weight:800;color:#dc2626;flex:1}.mvid-head .sec-count{background:var(--surface-2);color:var(--text-muted);border-radius:999px;padding:.12rem .6rem;font-size:var(--fs-xs);font-weight:800}.mvid-head .sec-caret{color:var(--text-faint);transition:transform .15s ease}.mvid-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));padding:0 1.1rem 1.1rem}.mvid{display:flex;flex-direction:column;gap:.4rem}.mvid-frame{position:relative;aspect-ratio:16 / 9;background:#000;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.mvid-frame iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.mvid-play{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none;cursor:pointer;background-size:cover;background-position:center;display:grid;place-items:center}.mvid-play:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#00000040}.mvid-playbtn{position:relative;z-index:1;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#dc2626eb;color:#fff;font-size:1.2rem;padding-left:3px}.mvid-cap{display:flex;flex-direction:column;line-height:1.3}.mvid-cap strong{font-size:var(--fs-sm)}.ld{max-width:100%}.ld-summary{font-size:var(--fs-lg);line-height:1.55;color:var(--text-muted);max-width:70ch}mark.hl-crit,mark.hl-must,mark.hl-num,mark.hl-abbr{background:transparent;padding:0 .05em;border-radius:4px}mark.hl-crit{color:#b91c1c;font-weight:800;background:color-mix(in srgb,#dc2626 12%,transparent);padding:.02em .28em}mark.hl-must{color:#4338ca;font-weight:800;text-decoration:underline;text-decoration-color:color-mix(in srgb,#4338ca 45%,transparent);text-decoration-thickness:2px;text-underline-offset:2px}mark.hl-num{color:#0f766e;font-weight:800;font-variant-numeric:tabular-nums}mark.hl-abbr{color:#7c3aed;font-weight:800;background:color-mix(in srgb,#7c3aed 12%,transparent);padding:.02em .3em;letter-spacing:.01em}@media(prefers-color-scheme:dark){mark.hl-crit{color:#fca5a5;background:color-mix(in srgb,#dc2626 26%,transparent)}mark.hl-must{color:#a5b4fc;text-decoration-color:color-mix(in srgb,#a5b4fc 55%,transparent)}mark.hl-num{color:#5eead4}mark.hl-abbr{color:#c4b5fd;background:color-mix(in srgb,#7c3aed 28%,transparent)}}.pop-abbr{font:inherit;color:#7c3aed;font-weight:800;background:color-mix(in srgb,#7c3aed 12%,transparent);border:none;border-radius:4px;padding:.02em .32em;cursor:pointer;border-bottom:1.5px dotted currentColor;letter-spacing:.01em}.pop-abbr:hover{background:color-mix(in srgb,#7c3aed 22%,transparent)}@media(prefers-color-scheme:dark){.pop-abbr{color:#c4b5fd;background:color-mix(in srgb,#7c3aed 28%,transparent)}}.pop-link{font:inherit;color:var(--brand-600);background:none;border:none;cursor:pointer;padding:0;text-decoration:underline dotted;text-underline-offset:2px}.pop-mat{font:inherit;font-weight:700;color:#0369a1;background:color-mix(in srgb,#0369a1 10%,transparent);border:none;border-radius:4px;padding:.02em .3em;cursor:pointer;border-bottom:1.5px dotted currentColor}.pop-mat:before{content:"📎 ";font-size:.85em}.pop-mat:hover{background:color-mix(in srgb,#0369a1 20%,transparent)}@media(prefers-color-scheme:dark){.pop-mat{color:#7dd3fc;background:color-mix(in srgb,#0369a1 30%,transparent)}}.pop-page{margin:.6rem 0 0;font-weight:700;color:#059669;font-size:var(--fs-sm)}.sec-mats{--acc: #0369a1}.mats{display:flex;flex-direction:column;gap:.4rem}.mat{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden}.mat-head{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;cursor:pointer;list-style:none;font-weight:700}.mat-head::-webkit-details-marker{display:none}.mat-name{flex:1;color:#0369a1}@media(prefers-color-scheme:dark){.mat-name{color:#7dd3fc}}.mat-page{font-size:var(--fs-sm);font-weight:700;color:#059669;flex-shrink:0}.mat-caret{color:var(--text-faint);transition:transform .15s ease}details[open] .mat-caret{transform:rotate(180deg)}.mat-body{padding:0 .9rem .85rem}.pop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#00000073;display:grid;place-items:center;padding:1rem;animation:pop-fade .12s ease}@keyframes pop-fade{0%{opacity:0}to{opacity:1}}.pop-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:440px;width:100%;box-shadow:var(--shadow-lg);overflow:hidden}.pop-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.7rem 1rem;background:var(--surface-2);border-bottom:1px solid var(--border)}.pop-head strong{font-size:var(--fs-lg);color:#7c3aed}@media(prefers-color-scheme:dark){.pop-head strong{color:#c4b5fd}}.pop-close{border:none;background:none;cursor:pointer;font-size:1rem;color:var(--text-muted);padding:.2rem .45rem;border-radius:6px}.pop-close:hover{background:var(--border)}.pop-body{padding:.9rem 1rem;line-height:1.6}.lead-label{font-weight:800;color:#4338ca;letter-spacing:.01em}@media(prefers-color-scheme:dark){.lead-label{color:#a5b4fc}}.teach-directive{display:flex;align-items:flex-start;gap:.6rem;margin:0;padding:.7rem .95rem;background:color-mix(in srgb,var(--brand-600) 10%,var(--surface));border-left:4px solid var(--brand-600);border-radius:var(--radius-sm);font-weight:600;line-height:1.5}.teach-directive-ico{color:var(--brand-600);font-weight:900;flex-shrink:0;margin-top:.05em}.dshs-ref{display:inline-flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.45rem .75rem;background:color-mix(in srgb,#059669 10%,var(--surface));border:1px solid color-mix(in srgb,#059669 30%,var(--border));border-radius:var(--radius-sm)}.dshs-badge{background:#059669;color:#fff;font-weight:800;border-radius:8px;padding:.2rem .6rem;font-size:var(--fs-sm)}.dshs-name{font-weight:600}.dshs-pages{color:var(--text-muted);font-size:var(--fs-sm);font-weight:600}.sec{--acc: var(--brand-600);background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--acc);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.sec-head{display:flex;align-items:center;gap:.65rem;padding:.8rem 1.1rem;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.sec-head::-webkit-details-marker{display:none}.sec-ico{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:color-mix(in srgb,var(--acc) 16%,transparent);font-size:1.1rem;flex-shrink:0}.sec-title{font-weight:800;color:var(--acc);flex:1;font-size:var(--fs-base)}.sec-count{background:var(--surface-2);color:var(--text-muted);border-radius:999px;padding:.12rem .6rem;font-size:var(--fs-xs);font-weight:800}.sec-caret{color:var(--text-faint);transition:transform .15s ease}details[open] .sec-caret{transform:rotate(180deg)}.sec-body{padding:.25rem 1.1rem 1.1rem}.sec-obj{--acc: #0d9488}.sec-points{--acc: #4f46e5}.sec-book{--acc: #059669}.sec-notes{--acc: #475569}.sec-terms{--acc: #be185d}.sec-act{--acc: #16a34a}.sec-disc{--acc: #7c3aed}.sec-watch{--acc: #d97706}.sec-comp{--acc: #0891b2}.sec-assess{--acc: #16a34a}.sec-cover{--acc: #0369a1}.sec-res{--acc: #dc2626}.sec-flow{--acc: #4338ca}.sec-wa{--acc: #15803d}.sec-tips{--acc: #b45309}.sec-plan{--acc: #0e7490}.sec-bg{--acc: #7c3aed}.sec-scn{--acc: #a21caf}.sec-faq{--acc: #0891b2}.bg-brief p{margin:0 0 .7rem;line-height:1.65}.bg-brief p:last-child{margin-bottom:0}.scn{display:grid;gap:.75rem;grid-template-columns:1fr}@media(min-width:820px){.scn{grid-template-columns:1fr 1fr}}.scn-card{padding:.9rem 1.05rem;background:var(--surface-2);border-radius:var(--radius-sm);border-left:4px solid #a21caf}.scn-title{display:block;margin-bottom:.35rem}.scn-sit{margin:0 0 .5rem;line-height:1.55}.scn-do{padding:.55rem .75rem;background:color-mix(in srgb,#16a34a 8%,var(--surface));border-left:3px solid #16a34a;border-radius:8px;line-height:1.5;font-size:var(--fs-sm)}.scn-do-lbl{display:block;font-weight:800;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;color:#15803d;margin-bottom:.15rem}.faq{display:flex;flex-direction:column;gap:.4rem}.faq-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden}.faq-q{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.65rem .85rem;cursor:pointer;list-style:none;font-weight:700}.faq-q::-webkit-details-marker{display:none}.faq-caret{color:var(--text-faint);transition:transform .15s ease}details[open] .faq-caret{transform:rotate(180deg)}.faq-a{padding:0 .85rem .8rem;line-height:1.6;color:var(--text-muted)}.lp-meta{display:flex;align-items:center;gap:.6rem}.lp{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.lp-seg{display:flex;gap:.85rem;align-items:flex-start;padding:.7rem .8rem;background:var(--surface-2);border-radius:10px;border-left:3px solid #0e7490}.lp-seg.lp-break{border-left-color:#b45309;opacity:.9}.lp-seg.lp-activity,.lp-seg.lp-roleplay,.lp-seg.lp-practice{border-left-color:#16a34a}.lp-seg.lp-assessment{border-left-color:#dc2626}.lp-time{display:flex;flex-direction:column;align-items:center;flex-shrink:0;min-width:46px}.lp-min{font-weight:800;color:#0e7490;font-variant-numeric:tabular-nums}.lp-clock{font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.lp-body{flex:1;min-width:0}.lp-seg-head{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin-bottom:.25rem}.lp-type{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--text-faint);background:var(--surface);border-radius:999px;padding:.05rem .5rem}.lp-detail{margin:0;line-height:1.55}.lp-example{margin-top:.45rem;padding:.5rem .7rem;background:color-mix(in srgb,#15803d 8%,var(--surface));border-left:3px solid #15803d;border-radius:8px;line-height:1.5;font-size:var(--fs-sm)}.lp-materials{margin-top:.35rem}.lp-scenarios{display:grid;gap:.6rem;grid-template-columns:1fr}@media(min-width:820px){.lp-scenarios{grid-template-columns:1fr 1fr}}.lp-scenario{padding:.75rem .9rem;background:color-mix(in srgb,#7c3aed 7%,var(--surface));border:1px solid color-mix(in srgb,#7c3aed 25%,var(--border));border-radius:var(--radius-sm);line-height:1.5}.story{display:flex;gap:.85rem;align-items:flex-start;padding:1rem 1.15rem;background:linear-gradient(135deg,color-mix(in srgb,#7c3aed 12%,var(--surface)),color-mix(in srgb,#4338ca 10%,var(--surface)));border:1px solid color-mix(in srgb,#7c3aed 30%,var(--border));border-radius:var(--radius)}.story-ico{font-size:1.5rem;line-height:1.2;flex-shrink:0}.story-text{margin:0;font-size:1.05em;line-height:1.6;font-style:italic}.flow{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.flow li{display:flex;gap:.75rem;align-items:flex-start;line-height:1.55;padding:.55rem .7rem .55rem .55rem;background:var(--surface-2);border-radius:10px;border-left:3px solid #4338ca}.flow-num{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:50%;background:#4338ca;color:#fff;font-weight:800;font-size:var(--fs-sm);flex-shrink:0;margin-top:1px}.flow-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.3rem}.flow-phase{align-self:flex-start;font-size:var(--fs-xs);font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:.05rem .55rem;border-radius:999px;color:#fff}.fp-open{background:#0891b2}.fp-teach{background:#4338ca}.fp-show{background:#7c3aed}.fp-do{background:#16a34a}.fp-discuss{background:#a21caf}.fp-check{background:#dc2626}.fp-close{background:#475569}.fp-break{background:#b45309}.fp-step{background:#64748b}.tfs-step-body .flow li{padding:.7rem .9rem}.wasp{display:grid;gap:.75rem;grid-template-columns:1fr}@media(min-width:820px){.wasp{grid-template-columns:1fr 1fr}}.wasp-card{margin:0;padding:.9rem 1.05rem;background:color-mix(in srgb,#15803d 8%,var(--surface));border:1px solid color-mix(in srgb,#15803d 28%,var(--border));border-radius:var(--radius-sm);border-left:4px solid #15803d}.wasp-text{margin:0 0 .5rem;line-height:1.55}.wasp-src{font-size:var(--fs-sm);font-weight:700}.wasp-src a{color:#15803d;word-break:break-word}@media(prefers-color-scheme:dark){.wasp-src a{color:#86efac}}.bul-tips li::marker{color:#b45309}.rvids{display:grid;gap:1rem;grid-template-columns:1fr}@media(min-width:820px){.rvids{grid-template-columns:1fr 1fr}}.rvid{margin:0}.rvid-frame{position:relative;aspect-ratio:16 / 9;background:#000;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.rvid-frame iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.rvid figcaption{margin-top:.45rem;line-height:1.4}.rlinks{display:flex;flex-direction:column;gap:.5rem}.rlink{display:flex;align-items:center;gap:.75rem;padding:.7rem .9rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text)}.rlink:hover{text-decoration:none;border-color:var(--brand-300);background:var(--surface)}.rlink-ico{font-size:1.3rem;flex-shrink:0}.rlink-body{display:flex;flex-direction:column;min-width:0;flex:1}.rlink-body strong{overflow:hidden;text-overflow:ellipsis}.rlink-open{color:var(--brand-600);font-weight:800;flex-shrink:0}.rlink-noext{opacity:.75;cursor:default}.sec-ask{--acc: #7c3aed}.qt-recall{background:#e0f2fe;color:#075985}.qt-understand{background:#ede9fe;color:#5b21b6}.qt-scenario{background:#fef3c7;color:#92400e}.qt-discuss{background:#dcfce7;color:#166534}@media(prefers-color-scheme:dark){.qt-recall{background:#0369a14d;color:#7dd3fc}.qt-understand{background:#7c3aed4d;color:#c4b5fd}.qt-scenario{background:#d977064d;color:#fcd34d}.qt-discuss{background:#16a34a4d;color:#86efac}}.qlist{display:flex;flex-direction:column;gap:.7rem}.qcard{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.85rem 1rem}.qcard-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.qcard-q{margin:0;font-weight:600;line-height:1.5}.qcard-opts{margin:.5rem 0 0;padding-left:1.4rem;display:flex;flex-direction:column;gap:.3rem;color:var(--text-muted)}.qcard-opts li.correct{color:var(--success);font-weight:700}.qcard-reveal{margin-top:.5rem;background:none;border:none;color:var(--brand-600);font-weight:700;cursor:pointer;font-family:inherit;font-size:var(--fs-sm);padding:.2rem 0}.qcard-answer{margin-top:.4rem;padding:.6rem .8rem;background:color-mix(in srgb,#16a34a 8%,var(--surface));border-left:3px solid #16a34a;border-radius:8px;line-height:1.5}@media(min-width:820px){.sec-ask .qlist{column-count:2;column-gap:1.5rem}.sec-ask .qcard{break-inside:avoid;margin-bottom:.7rem}}.askclass{display:flex;flex-direction:column;gap:1.1rem;max-width:760px}.askclass-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.askclass-q{margin:0;font-size:1.15em;font-weight:700;line-height:1.5}.askclass-opts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.askclass-opts li{display:flex;align-items:center;gap:.7rem;padding:.7rem .9rem;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-sm)}.askclass-opts li.correct{border-color:#16a34a;background:color-mix(in srgb,#16a34a 12%,var(--surface));font-weight:700}.askclass-letter{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--brand-100);color:var(--brand-900);font-weight:800;flex-shrink:0}.askclass-tick{margin-left:auto;color:#16a34a;font-weight:800}.askclass-answer{padding:.9rem 1.1rem;background:color-mix(in srgb,#16a34a 10%,var(--surface));border-left:4px solid #16a34a;border-radius:var(--radius-sm);line-height:1.55}.askclass-nav{display:flex;justify-content:space-between;gap:.75rem;margin-top:.3rem}.cov-gate{display:flex;gap:.9rem;align-items:flex-start;padding:1rem 1.15rem;background:color-mix(in srgb,#0369a1 8%,var(--surface));border:1px dashed color-mix(in srgb,#0369a1 40%,var(--border));border-radius:var(--radius-sm)}.cov-gate-ico{font-size:1.6rem;line-height:1}.cov{display:flex;flex-direction:column;gap:.7rem}.cov-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.cov-recording{font-size:var(--fs-sm);color:var(--text-muted)}.cov-skipped{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.6rem .85rem;background:color-mix(in srgb,#d97706 12%,var(--surface));border-left:4px solid #d97706;border-radius:8px;font-size:var(--fs-sm)}.cov-topics{display:flex;flex-direction:column;gap:.25rem}@media(min-width:900px){.cov-topics{column-count:2;column-gap:1.75rem}.cov-group,.cov-topics>.cov-lead{break-inside:avoid}}.cov-group{margin-bottom:.35rem}.cov-item{display:flex;align-items:flex-start;gap:.55rem;padding:.32rem .4rem;border-radius:8px;cursor:pointer;line-height:1.4}.cov-item:hover{background:var(--surface-2)}.cov-item input[type=checkbox]{width:20px;height:20px;min-height:auto;margin:1px 0 0;flex-shrink:0;accent-color:#16a34a;cursor:pointer}.cov-lead{font-weight:700}.cov-label{flex:1}.cov-count{font-size:var(--fs-xs);font-weight:700;color:var(--text-faint);background:var(--surface-2);border-radius:999px;padding:.05rem .45rem;flex-shrink:0}.cov-page{color:var(--text-faint);font-size:var(--fs-sm);font-weight:700;flex-shrink:0}.cov-subs{margin-left:1.6rem;border-left:2px solid var(--border);padding-left:.35rem}.cov-sub{font-size:var(--fs-sm);color:var(--text-muted)}.cov-sub-label{flex:1}.cov-by{font-size:var(--fs-xs);font-weight:700;color:#16a34a;flex-shrink:0;white-space:nowrap}.cov-item.ck>.cov-label,.cov-item.ck>.cov-sub-label{color:var(--text-faint)}.cov-actions{display:flex;flex-wrap:wrap;gap:.5rem;padding-top:.35rem;border-top:1px solid var(--border)}.cov-notes{display:flex;flex-direction:column;gap:.3rem}.cov-notes textarea{width:100%;resize:vertical;font-family:inherit;font-size:var(--fs-sm);padding:.5rem .65rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}.cov-note-other{font-size:var(--fs-sm);color:var(--text-muted);padding:.4rem .6rem;background:var(--surface-2);border-radius:8px;line-height:1.4}.chk{display:block}.chk-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.chk-topic{margin-bottom:.35rem}.chk-item{display:flex;align-items:flex-start;gap:.6rem;padding:.3rem .4rem;border-radius:8px;cursor:pointer;line-height:1.45}.chk-item:hover{background:var(--surface-2)}.chk-item input[type=checkbox]{width:20px;height:20px;min-height:auto;margin:2px 0 0;flex-shrink:0;accent-color:#0369a1;cursor:pointer}.chk-head{font-weight:700}.chk-head .chk-label{flex:1}.chk-page{color:var(--text-faint);font-size:var(--fs-sm);font-weight:700;flex-shrink:0}.chk-subs{margin-left:1.7rem;border-left:2px solid var(--border);padding-left:.35rem}.chk-sub{font-size:var(--fs-sm);color:var(--text-muted)}.chk-item.ck>span{text-decoration:line-through;opacity:.55}@media(min-width:820px){.sec-cover .chk{column-count:2;column-gap:2rem}.sec-cover .chk-topic{break-inside:avoid}.sec-cover .chk-meta{column-span:all}}.pts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.8rem}.pts li{display:flex;gap:.75rem;align-items:flex-start;line-height:1.55}.pts-num{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:50%;background:var(--acc, var(--brand-600));color:#fff;font-weight:800;font-size:var(--fs-sm);flex-shrink:0;margin-top:1px}.kp-deck{display:flex;flex-direction:column;gap:.7rem}.kp-deck-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.kp-count{font-weight:800;font-size:var(--fs-lg);color:var(--brand-700);font-variant-numeric:tabular-nums}@media(prefers-color-scheme:dark){.kp-count{color:var(--brand-300)}}.kp-reviewed{font-size:var(--fs-xs);font-weight:800;color:var(--text-faint);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.12rem .6rem}.kp-reviewed.ok{color:#16a34a;border-color:color-mix(in srgb,#16a34a 40%,var(--border));background:color-mix(in srgb,#16a34a 10%,var(--surface))}.kp-toggle{background:none;border:1px solid var(--border);border-radius:999px;padding:.25rem .8rem;cursor:pointer;font-family:inherit;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted)}.kp-toggle:hover{background:var(--surface-2)}.kp-card{display:flex;gap:1rem;align-items:flex-start;padding:1.15rem 1.25rem;background:var(--surface-2);border-radius:var(--radius);border-left:4px solid #4f46e5;min-height:120px}.kp-num{display:inline-grid;place-items:center;min-width:38px;height:38px;border-radius:50%;background:#4f46e5;color:#fff;font-weight:800;flex-shrink:0}.kp-text{font-size:1.1em;line-height:1.6;align-self:center}.kp-nav{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.kp-btn{flex-shrink:0;min-width:92px}.kp-dots{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:center;flex:1}.kp-dot{width:10px;height:10px;border-radius:50%;border:none;background:var(--border);cursor:pointer;padding:0;transition:transform .1s ease,background .1s ease}.kp-dot.active{background:#4f46e5;transform:scale(1.35)}.kp-dot.done{background:var(--brand-300)}.kp-done-badge{color:#16a34a;font-weight:800;flex-shrink:0;min-width:92px;text-align:center}.tfs-step-body .kp-card{min-height:160px;padding:1.5rem 1.6rem}.bul{margin:0;padding-left:1.4rem;line-height:1.55}.bul li{margin-bottom:.55rem}.bul li::marker{color:var(--brand-600);font-weight:700}.teach-2col{display:grid;gap:1.75rem;grid-template-columns:1fr}@media(min-width:820px){.teach-2col{grid-template-columns:1fr 1fr}.tfs-step-body .pts{display:block;column-count:2;column-gap:2.5rem}.tfs-step-body .pts li{break-inside:avoid;margin-bottom:.85rem}.sec-points .pts{display:block;column-count:2;column-gap:2rem}.sec-points .pts li{break-inside:avoid;margin-bottom:.7rem}.sec-obj .bul,.sec-comp .bul{column-count:2;column-gap:2rem}.sec-obj .bul li,.sec-comp .bul li{break-inside:avoid}.sec-terms .terms{column-count:2;column-gap:2rem}.sec-terms .term{break-inside:avoid}}@media(min-width:1200px){.tfs-step-body .pts,.sec-points .pts,.sec-cover .chk,.sec-ask .qlist{column-count:3}}.bul-obj li::marker{color:#0d9488}.bul-act li::marker{color:#16a34a}.bul-disc li::marker{color:#7c3aed}.bul-watch li::marker{color:#d97706}.bul-comp li::marker{color:#0891b2}.terms{margin:0;display:flex;flex-direction:column;gap:.75rem}.term dt{font-weight:800}.term dt a{color:#be185d}.term dd{margin:.15rem 0 0;color:var(--text-muted);line-height:1.5}.quotes{display:flex;flex-direction:column;gap:.8rem}.quote{margin:0;background:color-mix(in srgb,#059669 8%,var(--surface));border:1px solid color-mix(in srgb,#059669 25%,var(--border));border-radius:var(--radius-sm);padding:.9rem 1.1rem}.quote blockquote{margin:0;font-style:italic;line-height:1.55}.quote blockquote:before{content:"“";color:#059669;font-weight:800;font-size:1.2em}.quote blockquote:after{content:"”";color:#059669;font-weight:800;font-size:1.2em}.quote figcaption{display:flex;align-items:center;gap:.5rem;margin-top:.55rem}.quote-label{background:#059669;color:#fff;border-radius:999px;padding:.12rem .6rem;font-size:var(--fs-xs);font-weight:800}.quote-page{color:var(--text-faint);font-size:var(--fs-sm);font-weight:700}.callout{padding:1rem 1.15rem;border-radius:var(--radius-sm);line-height:1.6}.callout-note{background:var(--surface-2);border-left:4px solid #475569}.callout-ok{background:color-mix(in srgb,#16a34a 8%,var(--surface));border-left:4px solid #16a34a}.ld-source{padding:.75rem .9rem;background:var(--surface-2);border-radius:var(--radius-sm);line-height:1.5}.ld-pager{display:flex;justify-content:space-between;gap:.75rem;margin-top:.5rem}.ld-pager .btn{max-width:48%;overflow:hidden;white-space:nowrap}body.teaching-active{overflow:hidden}.teachfs{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--bg);display:flex;flex-direction:column}.tfs-top{display:flex;align-items:center;gap:1rem;padding:.6rem clamp(.75rem,.4rem + 1.5vw,1.5rem);padding-top:max(.6rem,env(safe-area-inset-top));background:var(--brand-700);color:#fff;flex-shrink:0}.tfs-top .btn{background:#ffffff29;color:#fff;border:none}.tfs-top .btn:hover{background:#ffffff47}.tfs-title{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}.tfs-title .faint{color:#ffffffc7;font-size:var(--fs-xs)}.tfs-title strong{font-size:var(--fs-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tfs-count{font-weight:800;font-variant-numeric:tabular-nums;flex-shrink:0}.tfs-progress{flex-shrink:0}.tfs-progress .progress{height:6px;border-radius:0;background:var(--brand-900)}.tfs-main{flex:1;min-height:0;overflow-y:auto;display:flex;justify-content:center;padding:clamp(1.1rem,.5rem + 2vw,2rem) clamp(1rem,.5rem + 1.5vw,2rem) 2.5rem}.tfs-content{width:100%;max-width:1400px}.tfs-step-title{display:flex;align-items:center;gap:.6rem;margin:0 0 1.5rem;font-size:var(--fs-2xl);color:var(--brand-700)}@media(prefers-color-scheme:dark){.tfs-step-title{color:var(--brand-300)}}.tfs-step-body{font-size:clamp(1.05rem,.95rem + .5vw,1.35rem);line-height:1.6}.tfs-step-body h4{font-size:var(--fs-lg);color:var(--text);margin:0 0 .6rem}.teach-lead{font-size:1.1em;line-height:1.55;margin:0}.tfs-gate-hint{text-align:center;font-size:var(--fs-sm);font-weight:700;color:#b45309;background:color-mix(in srgb,#d97706 12%,var(--surface));border-top:1px solid color-mix(in srgb,#d97706 30%,var(--border));padding:.4rem 1rem;flex-shrink:0}.tfs-nav{display:flex;align-items:center;gap:.75rem;padding:.75rem clamp(.75rem,.4rem + 1.5vw,1.5rem);padding-bottom:max(.75rem,env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}.tfs-back,.tfs-next{flex-shrink:0;min-width:108px}.tfs-dots{flex:1;display:flex;gap:.4rem;overflow-x:auto;justify-content:center;padding:.15rem;scrollbar-width:none}.tfs-dots::-webkit-scrollbar{display:none}.tfs-dot{display:inline-flex;align-items:center;gap:.35rem;min-height:40px;padding:.3rem .7rem;border:1.5px solid var(--border);background:var(--surface);border-radius:999px;font-family:inherit;font-weight:700;font-size:var(--fs-xs);color:var(--text-muted);cursor:pointer;white-space:nowrap;flex-shrink:0}.tfs-dot.active{background:var(--brand-700);color:#fff;border-color:var(--brand-700)}.tfs-dot.done{border-color:var(--brand-300);color:var(--brand-700)}.tfs-dot-ico{font-size:1rem}@media(max-width:760px){.tfs-dot-label{display:none}.tfs-dot{padding:.3rem .5rem}.tfs-back,.tfs-next{min-width:84px}}.gl-search{display:flex;align-items:center;gap:.6rem;padding:0 .9rem;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm)}.gl-search input{border:none;background:transparent}.gl-search input:focus{outline:none;box-shadow:none}.gl-card{padding:.9rem 1.1rem}.gl-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;background:none;border:none;cursor:pointer;font-family:inherit;color:var(--text);text-align:left;padding:0}.gl-term{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-size:var(--fs-lg)}.gl-caret{color:var(--text-faint);font-size:.7rem;flex-shrink:0}.gl-def{margin:.4rem 0 0;color:var(--text-muted);line-height:1.5}.gl-detail{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.gl-expanded{margin:0 0 .75rem;line-height:1.6}.gl-syn{margin:-.4rem 0 .6rem}.gl-deep p{margin:0 0 .6rem;line-height:1.6}.gl-block{margin-bottom:.6rem;padding:.6rem .85rem;border-radius:var(--radius-sm);border-left:3px solid var(--border);background:var(--surface-2)}.gl-block-lbl{display:block;font-weight:800;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.3rem}.gl-block ol,.gl-block ul{margin:0;padding-left:1.3rem;line-height:1.5}.gl-block li{margin-bottom:.25rem}.gl-block p{margin:0;line-height:1.5}.gl-steps{border-left-color:#0e7490}.gl-steps .gl-block-lbl{color:#0e7490}.gl-flags{border-left-color:#dc2626;background:color-mix(in srgb,#dc2626 8%,var(--surface))}.gl-flags .gl-block-lbl{color:#b91c1c}.gl-warule{border-left-color:#4338ca}.gl-warule .gl-block-lbl{color:#4338ca}.gl-mistakes{border-left-color:#d97706}.gl-mistakes .gl-block-lbl{color:#b45309}.gl-check{margin-bottom:.6rem}.gl-check summary{cursor:pointer;font-weight:700;color:#16a34a;line-height:1.4}.gl-check p{margin:.4rem 0 0;padding-left:.6rem;border-left:2px solid #16a34a;color:var(--text-muted);line-height:1.5}@media(prefers-color-scheme:dark){.gl-flags .gl-block-lbl{color:#fca5a5}.gl-warule .gl-block-lbl{color:#a5b4fc}.gl-mistakes .gl-block-lbl{color:#fcd34d}.gl-steps .gl-block-lbl{color:#67e8f9}}.gl-facets{display:grid;gap:.6rem;grid-template-columns:1fr;margin-bottom:.6rem}@media(min-width:700px){.gl-facets{grid-template-columns:1fr 1fr}}.gl-facet{padding:.6rem .8rem;border-radius:var(--radius-sm);border-left:3px solid var(--border);background:var(--surface-2);line-height:1.5}.gl-facet p{margin:.2rem 0 0;font-size:var(--fs-sm)}.gl-facet-lbl{display:inline-block;font-weight:800;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.15rem}.gl-why{border-left-color:#0d9488}.gl-ex{border-left-color:#15803d}.gl-teach{border-left-color:#4338ca}.gl-mis{border-left-color:#d97706}.gl-why .gl-facet-lbl{color:#0d9488}.gl-ex .gl-facet-lbl{color:#15803d}.gl-teach .gl-facet-lbl{color:#4338ca}.gl-mis .gl-facet-lbl{color:#b45309}@media(prefers-color-scheme:dark){.gl-why .gl-facet-lbl{color:#5eead4}.gl-ex .gl-facet-lbl{color:#86efac}.gl-teach .gl-facet-lbl{color:#a5b4fc}.gl-mis .gl-facet-lbl{color:#fcd34d}}.gl-related{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-bottom:.6rem}.gl-related-chip{border:none;cursor:pointer;font-family:inherit;background:var(--brand-100);color:var(--brand-900)}.gl-related-chip:hover{filter:brightness(.95)}@media(prefers-color-scheme:dark){.gl-related-chip{background:#5eead426;color:var(--brand-300)}}.gl-alts{margin-bottom:.5rem}.gl-links{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.gl-lesson-link:hover{background:var(--brand-100);text-decoration:none}.ask{max-width:820px}.ask-bar{display:flex;gap:.5rem}.ask-bar input{flex:1;min-height:52px;font-size:var(--fs-lg)}.ask-suggest{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.ask-chip{cursor:pointer;border:none;font-family:inherit;font-size:var(--fs-sm);padding:.4rem .8rem}.ask-chip:hover{background:var(--brand-100)}.ask-concept{display:flex;flex-direction:column;gap:.15rem;padding:.6rem .9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);max-width:320px}.ask-concept:hover{text-decoration:none;border-color:var(--brand-300)}.ask-result{display:flex;flex-direction:column;gap:.3rem;color:var(--text);transition:transform .08s ease,box-shadow .15s ease,border-color .15s ease}.ask-result:hover{text-decoration:none;transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:var(--brand-300)}.ask-snippet{margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.45}.ask-open{color:var(--brand-600);font-weight:700;margin-left:auto}.dropzone{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:clamp(1.75rem,1rem + 4vw,3rem);border:2.5px dashed var(--border);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;text-align:center;transition:border-color .15s ease,background .15s ease}.dropzone:hover,.dropzone:focus-visible{border-color:var(--brand-500);outline:none}.dropzone.dragging{border-color:var(--brand-600);background:var(--brand-100)}@media(prefers-color-scheme:dark){.dropzone.dragging{background:#5eead414}}.dropzone-icon{font-size:2.4rem}.book-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.85rem 1rem}.book-main{display:flex;align-items:center;gap:.85rem;min-width:0;flex:1}.book-icon{font-size:1.6rem;flex-shrink:0}.book-meta{display:flex;flex-direction:column;gap:.15rem;min-width:0}.book-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.book-actions{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.btn-sm{min-height:38px;padding:.35rem .75rem;font-size:var(--fs-sm)}.spinner-xs{width:13px;height:13px;border-width:2px;display:inline-block;vertical-align:-2px}.cycle-card{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);box-shadow:var(--shadow-sm);transition:transform .08s ease,box-shadow .15s ease,border-color .15s ease}.cycle-card:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--brand-300)}.cd-head{justify-content:space-between;align-items:flex-end;gap:1rem}.cd-days{gap:.75rem}.cd-day{padding:1rem 1.15rem;display:flex;flex-direction:column;gap:.9rem}.cd-done{border-color:var(--brand-300);background:linear-gradient(0deg,var(--surface),var(--surface)),var(--brand-100)}.cd-day-head{display:flex;align-items:center;gap:.9rem}.cd-daynum{display:inline-grid;place-items:center;min-width:62px;height:46px;border-radius:var(--radius-sm);background:var(--brand-700);color:#fff;font-weight:800;font-size:var(--fs-sm);flex-shrink:0;text-align:center;line-height:1.1}.cd-day-titles{display:flex;flex-direction:column;min-width:0;flex:1}.cd-note.alert-info{background:color-mix(in srgb,var(--brand-500) 10%,var(--surface));color:var(--text);border:1px solid color-mix(in srgb,var(--brand-500) 30%,var(--border));line-height:1.5}.cd-day-plan{display:flex;flex-direction:column;gap:.5rem;padding:.6rem .7rem;background:var(--surface-2);border-radius:var(--radius-sm)}.cd-chip-sel{display:inline-flex;align-items:center;gap:.35rem;padding-right:.35rem}.cd-chip-sel a{color:inherit}.cd-chip-x{border:none;background:transparent;color:var(--text-faint);cursor:pointer;font-size:.85rem;line-height:1;padding:0 .15rem;font-family:inherit}.cd-chip-x:hover{color:var(--danger, #dc2626)}.cd-addmod{min-height:32px;padding:.2rem .5rem;border-radius:999px;border:1px dashed var(--border);background:var(--surface);color:var(--text-muted);font-family:inherit;font-size:var(--fs-xs);font-weight:700;cursor:pointer}.cd-day-mods{display:flex;flex-wrap:wrap;gap:.4rem}.cd-chip{padding:.28rem .65rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;font-size:var(--fs-xs);font-weight:700;color:var(--text)}.cd-chip:hover{text-decoration:none;border-color:var(--brand-300);color:var(--brand-900)}.cd-day-cov{display:flex;align-items:center;gap:.6rem}.cd-day-cov .progress{flex:1}.cd-day-controls{display:grid;grid-template-columns:1fr;gap:.75rem}@media(min-width:620px){.cd-day-controls{grid-template-columns:2fr 1.3fr 1.3fr}}.cd-field label{margin-bottom:.25rem}.recap{display:flex;flex-direction:column;gap:.9rem;border-left:4px solid #0e7490}.recap-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.recap-preview{display:grid;gap:.9rem;grid-template-columns:1fr;padding:.85rem 1rem;background:var(--surface-2);border-radius:var(--radius-sm)}@media(min-width:620px){.recap-preview{grid-template-columns:2fr 1fr}}.recap-lbl{display:block;font-weight:800;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.recap-list{margin:.3rem 0 0;padding-left:1.2rem;line-height:1.5}.recap-list li{margin-bottom:.15rem}.recap-roster{display:flex;flex-direction:column;gap:.6rem}.recap-students{display:flex;flex-wrap:wrap;gap:.4rem}.recap-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .4rem .22rem .45rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;font-size:var(--fs-sm);font-weight:600}.recap-chip.inactive{opacity:.6;text-decoration:line-through}.recap-chip-toggle{border:none;background:transparent;cursor:pointer;font-size:.62rem;line-height:1;padding:0;font-family:inherit}.recap-chip-x{border:none;background:transparent;color:var(--text-faint);cursor:pointer;font-size:.8rem;padding:0 .15rem;font-family:inherit}.recap-chip-x:hover{color:var(--danger, #dc2626)}.recap-add{display:grid;gap:.5rem;grid-template-columns:1fr}@media(min-width:620px){.recap-add{grid-template-columns:1fr 1.3fr auto;align-items:end}}.recap-add input{min-height:var(--tap)}.recap-actions{display:flex;flex-wrap:wrap;gap:.5rem}.cov-topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.cov-topbar-actions{display:flex;align-items:center;gap:.6rem}.cov-cyc{min-height:var(--tap);padding:.4rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:inherit;font-weight:600;max-width:60vw}.cov-hero{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;border-left:4px solid var(--brand-500)}.cov-hero-body{flex:1;min-width:240px}.cov-ring{flex-shrink:0}.cov-ring-track{fill:none;stroke:var(--surface-2);stroke-width:12}.cov-ring-fill{fill:none;stroke:var(--brand-500);stroke-width:12;stroke-linecap:round;transition:stroke-dashoffset .5s ease}.cov-ring-fill.done{stroke:#16a34a}.cov-ring-pct{text-anchor:middle;font-size:1.7rem;font-weight:800;fill:var(--text)}.cov-ring-sub{text-anchor:middle;font-size:.7rem;fill:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.cov-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.cov-bar{display:flex;flex-direction:column;gap:.35rem;color:var(--text)}a.cov-bar:hover{text-decoration:none;border-color:var(--brand-300)}.cov-bar-top{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.cov-bar-label{font-weight:700}.cov-bar-pct{font-weight:800;color:var(--text-muted);flex-shrink:0}.cov-bar-pct.done{color:#16a34a}.cov-gap-row,.cov-skip-row{display:flex;align-items:center;gap:.9rem;color:var(--text)}.cov-gap-row:hover,.cov-skip-row:hover{text-decoration:none;border-color:var(--brand-300);transform:translateY(-1px)}.cov-gap-day{display:inline-grid;place-items:center;min-width:40px;height:40px;border-radius:10px;background:var(--brand-100);color:var(--brand-900);font-weight:800;flex-shrink:0}.cov-gap-day.none{background:var(--surface-2);color:var(--text-faint)}@media(prefers-color-scheme:dark){.cov-gap-day{background:#5eead426;color:var(--brand-300)}}.cov-gap-body{display:flex;flex-direction:column;min-width:0;flex:1}.cov-gap-remain{flex-shrink:0;color:var(--text-muted);font-size:var(--fs-sm)}.cov-gap-remain strong{color:#d97706;font-size:1.05rem}.cov-alldone{text-align:center;font-weight:600;color:#16a34a}.cov-print-head{display:none}@media print{.topbar,.sidenav,.scrim,.cov-noprint{display:none!important}.content{padding:0!important}.layout{display:block!important}.cov-print-head{display:block;margin-bottom:.5rem}.card{box-shadow:none!important;border:1px solid #ccc!important;break-inside:avoid}.cov-grid{grid-template-columns:repeat(2,1fr)}}.exam-tabs{display:flex;flex-wrap:wrap;gap:.4rem}.exam-tab{min-height:44px;padding:.5rem 1rem;border:1.5px solid var(--border);background:var(--surface);border-radius:999px;font-weight:600;font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer;font-family:inherit}.exam-tab.active{background:var(--brand-700);color:#fff;border-color:var(--brand-700)}.switch{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text-muted);margin:0;cursor:pointer}.switch input{width:auto;min-height:auto;width:20px;height:20px}.exam-sheet{padding:clamp(1.25rem,.8rem + 2vw,2.5rem);max-width:820px;margin-inline:auto}.exam-header{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;border-bottom:2px solid var(--text);padding-bottom:1rem;margin-bottom:1.25rem}.exam-title{margin:0;font-size:var(--fs-xl)}.exam-subtitle{margin:.25rem 0 0;font-size:var(--fs-sm)}.exam-namebox{font-size:var(--fs-sm);display:flex;flex-direction:column;gap:.6rem;white-space:nowrap}.exam-instructions{padding:.75rem 1rem;background:var(--surface-2);border-radius:var(--radius-sm);font-size:var(--fs-sm)}.exam-questions{display:flex;flex-direction:column;gap:1.5rem;padding-left:1.4rem;margin:1rem 0 0}.exam-q{break-inside:avoid}.exam-q-prompt{font-weight:600;margin-bottom:.6rem}.exam-points{color:var(--text-faint);font-weight:500;margin-left:.4rem;font-size:var(--fs-sm)}.exam-options{display:flex;flex-direction:column;gap:.4rem;margin:0;padding-left:1.4rem}.exam-options li.correct,.exam-tf .correct,.exam-answer{color:var(--success);font-weight:700}.exam-tf{display:flex;gap:2rem}.exam-lines{display:flex;flex-direction:column;gap:1.1rem;margin-top:.5rem}.exam-line{display:block;border-bottom:1px solid var(--text-faint);height:1px}.exam-answer{margin-top:.5rem}.exam-source{margin-top:.4rem;font-size:var(--fs-xs);color:var(--text-faint)}@media print{.no-print,.topbar,.sidenav,.scrim{display:none!important}.exam-source{display:none}body{background:#fff;color:#000}.exam-sheet{box-shadow:none;border:none;max-width:100%;padding:0;color:#000}.exam-options li.correct,.exam-tf .correct,.exam-answer{color:#000;text-decoration:underline}}.tutor-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.85rem 1.1rem}.tutor-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.tutor-info strong{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.tutor-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.tutor-actions select{width:auto;min-width:110px}.invite-box{border-left:4px solid var(--brand-500)}.invite-form{display:grid;gap:.6rem;grid-template-columns:1fr}@media(min-width:620px){.invite-form{grid-template-columns:1.4fr 1fr auto;align-items:end}}.invite-form input{min-height:var(--tap)}.invite-out{display:flex;flex-direction:column;gap:.6rem}.invite-preview{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden}.invite-preview-lbl{display:block;padding:.4rem .85rem;font-size:var(--fs-xs);font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:color-mix(in srgb,var(--brand-500) 8%,var(--surface));border-bottom:1px solid var(--border)}.invite-msg{margin:0;padding:.9rem 1rem;white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:var(--fs-sm);line-height:1.55;color:var(--text);max-height:340px;overflow-y:auto}.invite-actions{display:flex;flex-wrap:wrap;gap:.5rem}.invite-actions a.btn{text-decoration:none}:root{--brand-900: #134e4a;--brand-700: #0f766e;--brand-600: #0d9488;--brand-500: #14b8a6;--brand-300: #5eead4;--brand-100: #ccfbf1;--accent: #f59e0b;--danger: #dc2626;--danger-bg: #fef2f2;--success: #16a34a;--warning: #d97706;--bg: #f6f8f8;--surface: #ffffff;--surface-2: #f0f4f4;--border: #dde5e5;--text: #0f1e1c;--text-muted: #5b6b69;--text-faint: #8a9997;--shadow-sm: 0 1px 2px rgba(16, 40, 37, .06), 0 1px 3px rgba(16, 40, 37, .08);--shadow-md: 0 4px 12px rgba(16, 40, 37, .08), 0 2px 6px rgba(16, 40, 37, .06);--shadow-lg: 0 12px 32px rgba(16, 40, 37, .14);--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--fs-xs: clamp(.75rem, .72rem + .15vw, .82rem);--fs-sm: clamp(.85rem, .82rem + .2vw, .94rem);--fs-base: clamp(.97rem, .93rem + .3vw, 1.06rem);--fs-lg: clamp(1.1rem, 1.02rem + .5vw, 1.3rem);--fs-xl: clamp(1.35rem, 1.2rem + .9vw, 1.85rem);--fs-2xl: clamp(1.7rem, 1.4rem + 1.6vw, 2.6rem);--tap: 46px;--maxw: 1320px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #0b1413;--surface: #10201e;--surface-2: #17302d;--border: #234642;--text: #e7f0ee;--text-muted: #9db4b0;--text-faint: #6c8480;--danger-bg: #2a1414;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 14px rgba(0, 0, 0, .4);--shadow-lg: 0 14px 36px rgba(0, 0, 0, .5)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;font-size:var(--fs-base);line-height:1.55;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{line-height:1.2;margin:0 0 .4em;font-weight:700;letter-spacing:-.01em}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}p{margin:0 0 .8em}a{color:var(--brand-600);text-decoration:none}a:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:var(--tap);padding:.6rem 1.15rem;font-size:var(--fs-base);font-weight:600;font-family:inherit;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--surface-2);color:var(--text);cursor:pointer;transition:transform .06s ease,background .15s ease,box-shadow .15s ease,border-color .15s ease;-webkit-user-select:none;user-select:none;touch-action:manipulation}.btn:hover{background:var(--border)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:3px solid var(--brand-300);outline-offset:2px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand-700);color:#fff;border-color:var(--brand-700)}.btn-primary:hover{background:var(--brand-600)}.btn-ghost{background:transparent;border-color:var(--border)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-block{width:100%}.btn-lg{min-height:54px;font-size:var(--fs-lg);padding:.75rem 1.5rem}label{display:block;font-size:var(--fs-sm);font-weight:600;color:var(--text-muted);margin-bottom:.35rem}input,select,textarea{width:100%;min-height:var(--tap);padding:.6rem .8rem;font-size:var(--fs-base);font-family:inherit;color:var(--text);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}@media(prefers-color-scheme:dark){input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px #14b8a640}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:clamp(1rem,.6rem + 1.5vw,1.6rem)}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(1rem,.5rem + 2vw,2rem)}.alert-info{padding:.7rem .95rem;border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:500;line-height:1.5;background:color-mix(in srgb,var(--brand-500) 10%,var(--surface));color:var(--text);border:1px solid color-mix(in srgb,var(--brand-500) 30%,var(--border))}.stack{display:flex;flex-direction:column;gap:1rem}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.grid{display:grid;gap:1rem;grid-template-columns:1fr}@media(min-width:640px){.grid-sm-2{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.grid-md-2{grid-template-columns:repeat(2,1fr)}.grid-md-3{grid-template-columns:repeat(3,1fr)}}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;font-size:var(--fs-xs);font-weight:700;border-radius:999px;background:var(--surface-2);color:var(--text-muted);white-space:nowrap}.badge-brand{background:var(--brand-100);color:var(--brand-900)}.badge-success{background:#dcfce7;color:#14532d}.badge-warn{background:#fef3c7;color:#78350f}.badge-danger{background:var(--danger-bg);color:var(--danger)}@media(prefers-color-scheme:dark){.badge-brand{background:#5eead426;color:var(--brand-300)}.badge-success{background:#16a34a2e;color:#86efac}.badge-warn{background:#d9770633;color:#fcd34d}}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.text-sm{font-size:var(--fs-sm)}.text-center{text-align:center}.progress{height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--brand-600),var(--brand-400, var(--brand-500)));border-radius:999px;transition:width .4s ease}.spinner{width:22px;height:22px;border:3px solid var(--border);border-top-color:var(--brand-600);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}
