@charset "UTF-8";@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/newsreader-vietnamese-400-normal-DdKr49mV.woff2) format("woff2"),url(/assets/newsreader-vietnamese-400-normal-BekUZro8.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/newsreader-latin-ext-400-normal-svq1FPys.woff2) format("woff2"),url(/assets/newsreader-latin-ext-400-normal-DYA1XoQK.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/newsreader-latin-400-normal-BFBkh4jY.woff2) format("woff2"),url(/assets/newsreader-latin-400-normal-gRTjlS2D.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/newsreader-vietnamese-600-normal-CaH84vfx.woff2) format("woff2"),url(/assets/newsreader-vietnamese-600-normal-CVAR0otO.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/newsreader-latin-ext-600-normal-BXv5iMHi.woff2) format("woff2"),url(/assets/newsreader-latin-ext-600-normal-BrbfzHZ5.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/newsreader-latin-600-normal-30OJ_TG_.woff2) format("woff2"),url(/assets/newsreader-latin-600-normal-DUnT2r2g.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--brand: #1a1a1a;--accent: #c8102e;--accent-dark: #9c0a1e;--accent-light: #fdecec;--accent-blue: #1a3a6e;--accent-blue-dark: #0f2547;--accent-blue-light: #e8edf7;--text-on-accent: #ffffff;--overlay: rgba(0, 0, 0, .4);--today-accent: #2563eb;--today-accent-text: #ffffff;--bg: #fafafa;--text: #1a1a1a;--muted: #5b6169;--border: #e3e3e3;--surface: #ffffff;--surface-hover: #f4f4f5;--surface-sunken: #f0f0f1;--border-strong: #cfcfcf;--success: #166534;--success-bg: #ecfdf3;--success-border: #bbf0cf;--warning: #92400e;--warning-bg: #fef3c7;--warning-border: #fde68a;--danger: #7a0d1c;--danger-bg: #fdecec;--danger-border: #f3c6c6;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(20, 20, 20, .05), 0 1px 1px rgba(20, 20, 20, .03);--shadow-md: 0 2px 4px rgba(20, 20, 20, .04), 0 8px 16px rgba(20, 20, 20, .08);--shadow-lg: 0 4px 8px rgba(20, 20, 20, .05), 0 16px 40px rgba(20, 20, 20, .14);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-serif: "Newsreader", Georgia, serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.35rem;--text-2xl: 1.75rem;--text-3xl: 2.5rem;--touch-target-min: 44px;--topbar-height: 64px;--tabbar-height: 56px;--offline-banner-height: 32px;--sidebar-width: 220px;--study-index-width: 320px;--study-content-max-width: 1680px;--study-sticky-top: calc(var(--topbar-height) + env(safe-area-inset-top) + var(--space-5));--lesson-subnav-height: calc(var(--touch-target-min) + var(--space-2) * 2);--avatar-size-sm: 32px;--avatar-size-md: 48px;--avatar-size-lg: 96px;--avatar-size-xl: 140px;--transition-fast: .12s ease;--transition-base: .2s ease;--transition-slow: .32s ease;--ease-fluid: cubic-bezier(.22, 1, .36, 1);--ease-standard: cubic-bezier(.4, 0, .2, 1);--z-sticky: 10;--z-nav: 20;--z-dropdown: 30;--z-modal: 50;--z-toast: 60}*{box-sizing:border-box}body{margin:0;min-height:100vh;overflow-x:hidden;background:var(--bg);color:var(--text);font-family:var(--font-sans)}body:before{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--accent),var(--accent-blue))}a{color:var(--accent-blue)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 4px var(--accent-light)}h1,h2,h3,h4{font-weight:600}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3,h4{font-size:var(--text-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.6rem 1.1rem;border-radius:var(--radius-sm);font-size:var(--text-base);font-family:inherit;cursor:pointer;text-decoration:none;min-height:var(--touch-target-min);transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.btn:hover:not(:disabled){background:var(--surface-hover)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}.btn-secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover)}.btn-danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-border)}.btn-sm{padding:.4rem .75rem;font-size:var(--text-sm);min-height:36px}.btn-large{padding:.85rem 1.75rem;font-size:var(--text-lg)}.btn:disabled{opacity:.6;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.card-padded{padding:var(--space-5)}.card-lg{border-radius:var(--radius-lg)}.card-interactive{transition:box-shadow var(--transition-fast) var(--ease-fluid),transform var(--transition-fast) var(--ease-fluid)}.card-interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-title{margin:0 0 .4rem;color:var(--brand)}.card-desc{margin:0;color:var(--muted);font-size:var(--text-sm)}.grid-auto-fit{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--grid-min, 220px),1fr));gap:var(--space-4)}.icon-button-sm{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--muted);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.icon-button-sm:hover{color:var(--accent);border-color:var(--accent)}.dropzone-dashed{border:2px dashed var(--border);border-radius:var(--radius-md);color:var(--muted);transition:border-color var(--transition-fast),color var(--transition-fast)}.dropzone-dashed:hover,.dropzone-dashed:focus-within{border-color:var(--accent);color:var(--accent)}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-5)}.page-header-title{margin:0;font-size:var(--text-xl);color:var(--brand)}.page-header-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.favorite-button{display:inline-flex;align-items:center;justify-content:center;width:var(--touch-target-min);height:var(--touch-target-min);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--muted);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.favorite-button:hover{color:var(--accent);border-color:var(--accent)}.favorite-button-active,.favorite-button-active:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-light)}.favorite-button-overlay{position:absolute;top:var(--space-3);right:var(--space-3);z-index:2}.download-button{display:inline-flex;align-items:center;justify-content:center;width:var(--touch-target-min);height:var(--touch-target-min);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--muted);cursor:pointer;flex-shrink:0;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.download-button:hover{color:var(--accent-blue);border-color:var(--accent-blue)}.download-button:disabled{cursor:not-allowed;opacity:.5}.download-button-active,.download-button-active:hover{color:var(--accent-blue-dark);border-color:var(--accent-blue);background:var(--accent-blue-light)}.download-button-complete{position:relative;display:inline-flex}.download-button-complete>svg:last-child{position:absolute;top:-4px;right:-5px;border-radius:var(--radius-full);background:var(--accent-blue-light);stroke-width:3}.u-touch-target{min-height:var(--touch-target-min)}.stack-form{display:flex;flex-direction:column;gap:var(--space-4)}.field{display:flex;flex-direction:column;gap:.35rem;font-size:var(--text-sm);color:var(--muted)}.field input,.field select,.field textarea{font-size:var(--text-base);padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;min-height:var(--touch-target-min);background:var(--surface);color:var(--text);transition:border-color var(--transition-fast)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.field textarea{min-height:88px;resize:vertical}.field-error{color:var(--danger);font-size:var(--text-xs)}.field-hint{align-self:flex-end;color:var(--muted);font-size:var(--text-xs)}.field-input-icon{display:flex;align-items:center;gap:var(--space-2)}.field-input-icon input{flex:1}.badge{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--text-xs);padding:.15rem .55rem;border-radius:var(--radius-full);border:1px solid var(--border);color:var(--muted);white-space:nowrap}.badge-accent{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.badge-info{background:var(--accent-blue-light);border-color:var(--accent-blue-light);color:var(--accent-blue-dark)}.badge-success{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.badge-warning{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning)}.badge-danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);color:var(--muted)}.empty-state svg{color:var(--border)}.empty-state-title{color:var(--text);font-weight:600;margin:0}.empty-state-desc{margin:0;font-size:var(--text-sm)}.spinner{display:inline-block;width:1.25em;height:1.25em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--surface-hover) 25%,var(--border) 37%,var(--surface-hover) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.tabs-list{display:flex;gap:var(--space-2);border-bottom:1px solid var(--border);margin-bottom:var(--space-4);overflow-x:auto}.tabs-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;border-bottom:2px solid transparent;font:inherit;font-size:var(--text-sm);font-weight:600;color:var(--muted);padding:var(--space-3) var(--space-2);min-height:var(--touch-target-min);white-space:nowrap;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.tabs-tab-active{color:var(--accent);border-bottom-color:var(--accent)}@media (max-width: 1023px){.tabs-panel-swipe{touch-action:pan-y;display:grid;overflow:hidden}.tabs-panel-swipe>.tabs-panel-current,.tabs-panel-neighbor{grid-area:1 / 1;min-width:0}.tabs-panel-neighbor{width:100%;pointer-events:none}.tabs-panel-animating{transition:transform var(--transition-base)}}@media (prefers-reduced-motion: reduce){.tabs-panel-animating{transition:none}}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-light);color:var(--accent-dark);font-weight:600;overflow:hidden;flex-shrink:0;object-fit:cover}.avatar-sm{width:var(--avatar-size-sm);height:var(--avatar-size-sm);font-size:var(--text-xs)}.avatar-md{width:var(--avatar-size-md);height:var(--avatar-size-md);font-size:var(--text-base)}.avatar-lg{width:var(--avatar-size-lg);height:var(--avatar-size-lg);font-size:var(--text-2xl)}.avatar-xl{width:var(--avatar-size-xl);height:var(--avatar-size-xl);font-size:var(--text-2xl)}.avatar-upload{position:relative;width:fit-content}.avatar-upload-trigger{position:absolute;right:0;bottom:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:2px solid var(--surface);background:var(--accent);color:var(--surface);cursor:pointer;transition:background var(--transition-fast)}.avatar-upload-trigger:hover{background:var(--accent-dark)}.language-level-editor{display:flex;flex-direction:column;gap:var(--space-2)}.language-level-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.language-level-row{display:flex;align-items:center;gap:var(--space-2)}.language-level-name{flex:1;font-size:var(--text-sm);color:var(--text)}.language-level-row select{font-size:var(--text-base);padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius-sm);min-height:var(--touch-target-min);background:var(--surface);color:var(--text)}.language-level-remove{display:inline-flex;align-items:center;justify-content:center;width:var(--touch-target-min);height:var(--touch-target-min);border:none;background:none;color:var(--danger);cursor:pointer}.language-level-add{font-size:var(--text-base);padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius-sm);min-height:var(--touch-target-min);background:var(--surface);color:var(--text);align-self:flex-start}.rating-star{color:var(--warning);fill:var(--warning);vertical-align:-2px}.rating-star-empty{color:var(--border-strong);fill:none}.review-section+.review-section{margin-top:var(--space-6)}.form-hint{color:var(--muted);font-size:var(--text-sm)}.star-rating-input{display:inline-flex;gap:.15rem}.star-rating-input-star{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;padding:0;cursor:pointer;color:var(--warning)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:var(--z-modal)}.modal-panel{width:min(420px,100%);max-height:85vh;overflow-y:auto;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-5)}.modal-title{margin:0 0 var(--space-2);color:var(--brand)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-5)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:var(--z-modal);display:flex;align-items:flex-end}.drawer-panel{width:100%;max-height:80vh;overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-lg);padding:var(--space-5);padding-bottom:max(var(--space-5),env(safe-area-inset-bottom))}.drawer-title{margin:0 0 var(--space-3);color:var(--brand)}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.drawer-header .drawer-title{margin:0}.drawer-header>button{margin-left:auto;flex-shrink:0}@media (min-width: 1024px){.drawer-backdrop{display:none}}.form-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:var(--text-sm);margin:0}.form-success{color:var(--success);background:var(--success-bg);border:1px solid var(--success-border);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:var(--text-sm);margin:0}.loading{text-align:center;padding:var(--space-6);color:var(--muted)}.search-box{position:relative;margin-bottom:var(--space-4)}.search-box-icon{position:absolute;top:50%;left:.75rem;transform:translateY(-50%);color:var(--muted);pointer-events:none}.search-input{width:100%;font-size:var(--text-base);padding:.6rem .75rem .6rem 2.5rem;border:1px solid var(--border);border-radius:var(--radius-md);min-height:var(--touch-target-min);background:var(--surface);color:var(--text);transition:border-color var(--transition-fast)}.search-input:focus-visible{border-color:var(--accent)}.search-filters{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.search-filters select,.search-filters input[type=number]{font-size:var(--text-sm);padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius-md);min-height:var(--touch-target-min);background:var(--surface);color:var(--text)}.search-filters input[type=number]{width:7rem}.search-filters-price{display:flex;align-items:center;gap:var(--space-1);padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-height:var(--touch-target-min);color:var(--muted);font-size:var(--text-sm)}.search-filters-price-sep{color:var(--border-strong)}.search-filters-price input[type=number]{border:none;min-height:auto;width:4rem;padding:.5rem .15rem;background:transparent}.lesson-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.lesson-list-row{display:flex;align-items:center;gap:var(--space-2)}.lesson-list-item{flex:1;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3) var(--space-4);text-decoration:none;color:var(--text);cursor:pointer;min-height:var(--touch-target-min);transition:border-color var(--transition-fast)}.lesson-list-item strong{min-width:0;overflow-wrap:anywhere}.lesson-list-item-active{border-color:var(--accent)}.lesson-list-item-locked{cursor:default}.lesson-access-note{color:var(--muted);font-size:var(--text-sm)}.lesson-list-row .favorite-button{flex-shrink:0}.lesson-list-row.card{padding:var(--space-3) var(--space-4);min-height:var(--touch-target-min);transition:border-color var(--transition-fast)}.lesson-list-row.card .lesson-list-item{padding:0;min-height:auto}.lesson-preview-link{font-size:var(--text-sm);white-space:nowrap}.lesson-list-actions{display:flex;gap:var(--space-2);flex-shrink:0}.lesson-list-actions .icon-button-sm{width:32px;height:32px;border:none}.lesson-row-handle{background:none;border:none;cursor:grab;color:var(--muted);padding:var(--space-1);touch-action:none;flex-shrink:0}.lesson-list-badges{display:flex;gap:var(--space-2);flex-shrink:0}.creator-chip{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0;font-size:var(--text-sm);text-decoration:none;max-width:9rem}.creator-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagination-bar{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-top:var(--space-4)}.pagination-status{font-size:var(--text-sm);color:var(--muted)}.back-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);margin-bottom:var(--space-2);transition:gap var(--transition-fast) var(--ease-fluid)}.back-link:hover{gap:calc(var(--space-2) + 2px)}.booking-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.booking-item{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.booking-item-time{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text)}.booking-item-person{display:inline-flex;align-items:center;gap:var(--space-2);background:none;border:none;padding:0;font:inherit;color:var(--accent-blue);cursor:pointer}.booking-item-time svg{color:var(--muted);flex-shrink:0}.booking-actions{display:flex;gap:var(--space-2)}.rbc-btn{color:inherit;font:inherit;margin:0}button.rbc-btn{overflow:visible;text-transform:none;-webkit-appearance:button;-moz-appearance:button;appearance:button;cursor:pointer}button[disabled].rbc-btn{cursor:not-allowed}button.rbc-input::-moz-focus-inner{border:0;padding:0}.rbc-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:10px;font-size:16px}.rbc-toolbar .rbc-toolbar-label{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:0 10px;text-align:center}.rbc-toolbar button{color:#373a3c;display:inline-block;margin:0;text-align:center;vertical-align:middle;background:none;background-image:none;border:1px solid #ccc;padding:.375rem 1rem;border-radius:4px;line-height:normal;white-space:nowrap}.rbc-toolbar button:active,.rbc-toolbar button.rbc-active{background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px #00000020;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:active:hover,.rbc-toolbar button:active:focus,.rbc-toolbar button.rbc-active:hover,.rbc-toolbar button.rbc-active:focus{color:#373a3c;background-color:#d4d4d4;border-color:#8c8c8c}.rbc-toolbar button:focus{color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:hover{color:#373a3c;cursor:pointer;background-color:#e6e6e6;border-color:#adadad}.rbc-btn-group{display:inline-block;white-space:nowrap}.rbc-btn-group>button:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.rbc-btn-group>button:last-child:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.rbc-rtl .rbc-btn-group>button:first-child:not(:last-child){border-radius:0 4px 4px 0}.rbc-rtl .rbc-btn-group>button:last-child:not(:first-child){border-radius:4px 0 0 4px}.rbc-btn-group>button:not(:first-child):not(:last-child){border-radius:0}.rbc-btn-group button+button{margin-left:-1px}.rbc-rtl .rbc-btn-group button+button{margin-left:0;margin-right:-1px}.rbc-btn-group+.rbc-btn-group,.rbc-btn-group+button{margin-left:10px}@media (max-width: 767px){.rbc-toolbar{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.rbc-event{border:none;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;margin:0;padding:2px 5px;background-color:#3174ad;border-radius:5px;color:#fff;cursor:pointer;width:100%;text-align:left}.rbc-slot-selecting .rbc-event{cursor:inherit;pointer-events:none}.rbc-event.rbc-selected{background-color:#265985}.rbc-event:focus{outline:5px auto #3b99fc}.rbc-event-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:80%}.rbc-event-overlaps{-webkit-box-shadow:-1px 1px 5px 0px rgba(51,51,51,.5);box-shadow:-1px 1px 5px #33333380}.rbc-event-continues-prior{border-top-left-radius:0;border-bottom-left-radius:0}.rbc-event-continues-after{border-top-right-radius:0;border-bottom-right-radius:0}.rbc-event-continues-earlier{border-top-left-radius:0;border-top-right-radius:0}.rbc-event-continues-later{border-bottom-left-radius:0;border-bottom-right-radius:0}.rbc-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-row-segment{padding:0 1px 1px}.rbc-row-segment .rbc-event-content{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rbc-selected-cell{background-color:#0000001a}.rbc-show-more{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#ffffff4d;z-index:4;font-weight:700;font-size:85%;height:auto;line-height:normal;color:#3174ad}.rbc-show-more:hover,.rbc-show-more:focus{color:#265985}.rbc-month-view{position:relative;border:1px solid #ddd;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;width:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;height:100%}.rbc-month-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-month-row{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;-ms-flex-preferred-size:0px;flex-basis:0px;overflow:hidden;height:100%}.rbc-month-row+.rbc-month-row{border-top:1px solid #ddd}.rbc-date-cell{-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;min-width:0;padding-right:5px;text-align:right}.rbc-date-cell.rbc-now{font-weight:700}.rbc-date-cell>a,.rbc-date-cell>a:active,.rbc-date-cell>a:visited{color:inherit;text-decoration:none}.rbc-row-bg{position:absolute;top:0;left:0;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;overflow:hidden;right:1px}.rbc-day-bg{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.rbc-day-bg+.rbc-day-bg{border-left:1px solid #ddd}.rbc-rtl .rbc-day-bg+.rbc-day-bg{border-left-width:0;border-right:1px solid #ddd}.rbc-overlay{position:absolute;z-index:5;border:1px solid #e5e5e5;background-color:#fff;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.25);box-shadow:0 5px 15px #00000040;padding:10px}.rbc-overlay>*+*{margin-top:1px}.rbc-overlay-header{border-bottom:1px solid #e5e5e5;margin:-10px -10px 5px;padding:2px 10px}.rbc-agenda-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;overflow:auto}.rbc-agenda-view table.rbc-agenda-table{width:100%;border:1px solid #ddd;border-spacing:0;border-collapse:collapse}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td{padding:5px 10px;vertical-align:top}.rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell{padding-left:15px;padding-right:15px;text-transform:lowercase}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left-width:0;border-right:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table tbody>tr+tr{border-top:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table thead>tr>th{padding:3px 5px;text-align:left;border-bottom:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead>tr>th{text-align:right}.rbc-agenda-time-cell{text-transform:lowercase}.rbc-agenda-time-cell .rbc-continues-after:after{content:" »"}.rbc-agenda-time-cell .rbc-continues-prior:before{content:"« "}.rbc-agenda-date-cell,.rbc-agenda-time-cell{white-space:nowrap}.rbc-agenda-event-cell{width:100%}.rbc-time-column{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100%}.rbc-time-column .rbc-timeslot-group{-webkit-box-flex:1;-ms-flex:1;flex:1}.rbc-timeslot-group{border-bottom:1px solid #ddd;min-height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.rbc-time-gutter,.rbc-header-gutter{-webkit-box-flex:0;-ms-flex:none;flex:none}.rbc-label{padding:0 5px}.rbc-day-slot{position:relative}.rbc-day-slot .rbc-events-container{bottom:0;left:0;position:absolute;right:0;margin-right:10px;top:0}.rbc-day-slot .rbc-events-container.rbc-rtl{left:10px;right:0}.rbc-day-slot .rbc-event,.rbc-day-slot .rbc-background-event{border:1px solid rgb(37.7432432432,89.3513513514,133.2567567568);display:-webkit-box;display:-ms-flexbox;display:flex;max-height:100%;min-height:20px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column wrap;flex-flow:column wrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;overflow:hidden;position:absolute}.rbc-day-slot .rbc-background-event{opacity:.75}.rbc-day-slot .rbc-event-label{-webkit-box-flex:0;-ms-flex:none;flex:none;padding-right:5px;width:auto}.rbc-day-slot .rbc-event-content{width:100%;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;word-wrap:break-word;line-height:1;height:100%;min-height:1em}.rbc-day-slot .rbc-time-slot{border-top:1px solid rgb(246.5,246.5,246.5)}.rbc-time-view-resources .rbc-time-gutter,.rbc-time-view-resources .rbc-time-header-gutter{position:sticky;left:0;background-color:#fff;border-right:1px solid #ddd;z-index:10;margin-right:-1px}.rbc-time-view-resources .rbc-time-header{overflow:hidden}.rbc-time-view-resources .rbc-time-header-content{min-width:auto;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;-ms-flex-preferred-size:0px;flex-basis:0px}.rbc-time-view-resources .rbc-time-header-cell-single-day{display:none}.rbc-time-view-resources .rbc-day-slot{min-width:140px}.rbc-time-view-resources .rbc-header,.rbc-time-view-resources .rbc-day-bg{width:140px;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;-ms-flex-preferred-size:0px;flex-basis:0px}.rbc-time-header-content+.rbc-time-header-content{margin-left:-1px}.rbc-time-slot{-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0}.rbc-time-slot.rbc-now{font-weight:700}.rbc-day-header{text-align:center}.rbc-slot-selection{z-index:10;position:absolute;background-color:#00000080;color:#fff;font-size:75%;width:100%;padding:3px}.rbc-slot-selecting{cursor:move}.rbc-time-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;border:1px solid #ddd;min-height:0}.rbc-time-view .rbc-time-gutter{white-space:nowrap;text-align:right}.rbc-time-view .rbc-allday-cell{-webkit-box-sizing:content-box;box-sizing:content-box;width:100%;height:100%;position:relative}.rbc-time-view .rbc-allday-cell+.rbc-allday-cell{border-left:1px solid #ddd}.rbc-time-view .rbc-allday-events{position:relative;z-index:4}.rbc-time-view .rbc-row{-webkit-box-sizing:border-box;box-sizing:border-box;min-height:20px}.rbc-time-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-time-header.rbc-overflowing{border-right:1px solid #ddd}.rbc-rtl .rbc-time-header.rbc-overflowing{border-right-width:0;border-left:1px solid #ddd}.rbc-time-header>.rbc-row:first-child{border-bottom:1px solid #ddd}.rbc-time-header>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd}.rbc-time-header-cell-single-day{display:none}.rbc-time-header-content{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;min-width:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border-left:1px solid #ddd}.rbc-rtl .rbc-time-header-content{border-left-width:0;border-right:1px solid #ddd}.rbc-time-header-content>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd;-ms-flex-negative:0;flex-shrink:0}.rbc-time-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;width:100%;border-top:2px solid #ddd;overflow-y:auto;position:relative}.rbc-time-content>.rbc-time-gutter{-webkit-box-flex:0;-ms-flex:none;flex:none}.rbc-time-content>*+*>*{border-left:1px solid #ddd}.rbc-rtl .rbc-time-content>*+*>*{border-left-width:0;border-right:1px solid #ddd}.rbc-time-content>.rbc-day-slot{width:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.rbc-current-time-indicator{position:absolute;z-index:3;left:0;right:0;height:1px;background-color:#74ad31;pointer-events:none}.rbc-resource-grouping.rbc-time-header-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.rbc-resource-grouping .rbc-row .rbc-header{width:141px}.rbc-calendar{-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.rbc-m-b-negative-3{margin-bottom:-3px}.rbc-h-full{height:100%}.rbc-calendar *,.rbc-calendar *:before,.rbc-calendar *:after{-webkit-box-sizing:inherit;box-sizing:inherit}.rbc-abs-full{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.rbc-ellipsis{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rbc-rtl{direction:rtl}.rbc-off-range{color:#999}.rbc-off-range-bg{background:#e6e6e6}.rbc-header{overflow:hidden;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;text-overflow:ellipsis;white-space:nowrap;padding:0 3px;text-align:center;vertical-align:middle;font-weight:700;font-size:90%;min-height:0;border-bottom:1px solid #ddd}.rbc-header+.rbc-header{border-left:1px solid #ddd}.rbc-rtl .rbc-header+.rbc-header{border-left-width:0;border-right:1px solid #ddd}.rbc-header>a,.rbc-header>a:active,.rbc-header>a:visited{color:inherit;text-decoration:none}.rbc-button-link{color:inherit;background:none;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.rbc-row-content{position:relative;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;z-index:4}.rbc-row-content-scrollable{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.rbc-row-content-scrollable .rbc-row-content-scroll-container{height:100%;overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none}.rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar{display:none}.rbc-today{background-color:#eaf6ff}.agenda-calendar{padding:var(--space-4);margin-bottom:var(--space-4)}.week-calendar-tz-note{margin:0 0 var(--space-3);font-size:var(--text-xs);color:var(--muted)}.week-calendar-hint{color:var(--muted);font-size:var(--text-sm)}.calendar-scroll-wrapper{overflow-x:auto}@media (max-width: 1023px){.agenda-rbc--week{min-width:800px}}.agenda-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.agenda-toolbar-nav{display:flex;align-items:center;gap:var(--space-2)}.agenda-toolbar-label{color:var(--brand);text-transform:capitalize;min-width:0}.agenda-toolbar-actions{display:flex;align-items:center;gap:var(--space-3)}.agenda-view-toggle{display:flex;gap:var(--space-1)}.agenda-event-content{display:flex;flex-direction:column;gap:1px;line-height:1.2}.agenda-event-time{font-weight:600;font-size:var(--text-xs)}.agenda-event-title{font-size:var(--text-xs)}.rbc-time-content,.rbc-time-header-content,.rbc-timeslot-group,.rbc-time-header.rbc-overflowing{border-color:var(--border)}.rbc-time-gutter .rbc-label,.rbc-label{color:var(--muted);font-size:var(--text-xs);font-family:var(--font-sans)}.rbc-header{color:var(--brand);font-family:var(--font-sans);font-size:var(--text-sm);border-color:var(--border);text-transform:capitalize;overflow:visible;white-space:normal;min-height:44px}.rbc-time-header,.rbc-time-header-content,.rbc-time-header-content>.rbc-row{flex-shrink:0}.rbc-time-header-content .rbc-allday-cell{display:none}.agenda-header-cell{display:flex;flex-direction:column;align-items:center;gap:2px;padding:2px 0;flex-shrink:0}.agenda-header-weekday{text-transform:capitalize}.agenda-header-weekday-short{display:none}.agenda-header-daynum{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 4px;border-radius:var(--radius-full);font-weight:600}.agenda-header-daynum.agenda-header-today{background-color:var(--today-accent);color:var(--today-accent-text)}.rbc-slot-selection,.rbc-slot-selecting .rbc-day-slot{background-color:var(--accent-light);border:1px solid var(--accent)}.rbc-event:focus{outline:none}.rbc-event{border-radius:var(--radius-sm);font-size:var(--text-xs);padding:2px 4px}.rbc-event--free{background-color:var(--success-bg);border:1px solid var(--success-border);color:var(--success)}.rbc-event--pending{background-color:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning)}.rbc-event--accepted{background-color:var(--success-bg);border:1px solid var(--success-border);color:var(--success)}.rbc-event--blocked{background-color:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger)}.rbc-current-time-indicator{display:none}.release-repeat-toggle{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text)}.slot-action-modal{display:flex;flex-direction:column;gap:var(--space-3);min-width:260px}.slot-action-choice-group{display:flex;flex-direction:column;gap:var(--space-3)}.slot-action-choice{display:flex;flex-direction:column;gap:var(--space-1);align-items:flex-start}.slot-time-options{display:flex;flex-direction:column;gap:var(--space-2);max-height:280px;overflow-y:auto}.slot-time-option{min-height:var(--touch-target-min);padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.slot-time-option:hover{background:var(--surface-hover)}@media (max-width: 1023px){.agenda-calendar{padding:var(--space-2)}.agenda-toolbar-nav{display:grid;grid-template-columns:var(--touch-target-min) minmax(0,1fr) var(--touch-target-min);width:100%}.agenda-toolbar-nav>.btn{width:var(--touch-target-min);min-height:var(--touch-target-min);padding:0}.agenda-toolbar-label{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.agenda-toolbar-actions{width:100%;justify-content:space-between}.agenda-rbc .rbc-header{padding-inline:0}.agenda-header-weekday{display:none}.agenda-header-weekday-short{display:inline}.agenda-rbc .rbc-event{overflow:hidden}.agenda-event-time,.agenda-event-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.dash-shell{min-height:100vh;display:flex;flex-direction:column}.dash-topbar{position:sticky;top:0;z-index:var(--z-nav);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);padding-top:max(var(--space-3),env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border)}.dash-brand{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:600;color:var(--brand);text-decoration:none;white-space:nowrap}.dash-brand-text{display:none}.dash-user{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2)}.dash-logout{display:inline-flex;align-items:center;gap:var(--space-2);background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.4rem .75rem;font-size:var(--text-sm);white-space:nowrap;cursor:pointer;min-height:var(--touch-target-min);flex-shrink:0}.dash-settings-link{display:inline-flex;align-items:center;justify-content:center;color:var(--text);background:none;border:1px solid var(--border);border-radius:var(--radius-sm);width:var(--touch-target-min);height:var(--touch-target-min);text-decoration:none;flex-shrink:0}.dash-settings-link:hover{color:var(--accent-blue);border-color:var(--accent-blue)}.dash-tabbar{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-nav);display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);box-shadow:var(--shadow-md)}.dash-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--touch-target-min);padding:var(--space-2) var(--space-1);color:var(--muted);text-decoration:none;font-size:var(--text-xs);transition:color var(--transition-fast)}.dash-tab:hover{color:var(--text)}.dash-tab-active,.dash-tab-active:hover{color:var(--accent-blue)}.dash-tab-label{line-height:1;white-space:nowrap}.offline-banner{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom));z-index:var(--z-dropdown);display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--offline-banner-height);padding:var(--space-1) var(--space-3);border-top:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger);font-size:var(--text-xs)}.dash-content{flex:1;width:100%;max-width:720px;margin:0 auto;padding:0 var(--space-4) calc(var(--space-7) + var(--tabbar-height) + env(safe-area-inset-bottom))}.dash-content-offline{padding-bottom:calc(var(--space-7) + var(--tabbar-height) + var(--offline-banner-height) + env(safe-area-inset-bottom))}.dash-content-body{padding-top:var(--space-5)}@media (min-width: 1024px){.dash-shell{flex-direction:row}.dash-brand-text{display:inline}.dash-topbar{position:fixed;top:0;left:0;right:0}.dash-tabbar{top:var(--topbar-height);left:0;right:auto;bottom:0;width:var(--sidebar-width);flex-direction:column;border-top:none;border-right:1px solid var(--border);padding:var(--space-4) var(--space-3);padding-bottom:var(--space-3);box-shadow:none}.dash-tab{flex:none;flex-direction:row;justify-content:flex-start;gap:var(--space-2);font-size:var(--text-sm);border-radius:var(--radius-sm);padding:.5rem .85rem}.dash-tab-label{white-space:nowrap}.dash-tab-active,.dash-tab-active:hover{background:var(--accent-blue-light);color:var(--accent-blue-dark)}.dash-content{margin:0 auto;max-width:calc(1100px + var(--sidebar-width));padding:var(--topbar-height) var(--space-6) var(--space-7);padding-left:calc(var(--sidebar-width) + var(--space-6))}.dash-content-with-subnav{padding-top:calc(var(--topbar-height) + var(--lesson-subnav-height))}.dash-content-offline{padding-bottom:calc(var(--space-7) + var(--offline-banner-height) + env(safe-area-inset-bottom))}.dash-content-body{padding-top:var(--space-6)}.offline-banner{left:var(--sidebar-width);bottom:0;padding-bottom:calc(var(--space-1) + env(safe-area-inset-bottom))}}.quick-link-card{display:block;padding:var(--space-5);text-decoration:none;color:var(--text)}.quick-link-card svg{color:var(--accent);margin-bottom:var(--space-3)}@media (min-width: 1024px){.dash-shell-study .dash-content{max-width:var(--study-content-max-width);padding-top:calc(var(--topbar-height) + env(safe-area-inset-top))}}.navbar{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2rem;max-width:1080px;margin:0 auto}.navbar .brand{font-size:var(--text-lg);font-weight:600;color:var(--brand)}.navbar-links{display:flex;align-items:center;gap:1.25rem}.hero{max-width:720px;margin:0 auto;padding:var(--space-8) var(--space-4) var(--space-6);text-align:center}.hero h1{font-size:var(--text-3xl);color:var(--brand);margin-bottom:var(--space-4)}.hero p{font-size:var(--text-lg);color:var(--muted);margin-bottom:var(--space-5)}.features{max-width:1080px;margin:0 auto;padding:var(--space-4) var(--space-4) var(--space-8)}.feature{padding:var(--space-5)}.feature svg{color:var(--accent);margin-bottom:var(--space-2)}.footer{text-align:center;color:var(--muted);padding:var(--space-5) var(--space-4);font-size:var(--text-sm)}.auth-page{max-width:420px;margin:0 auto;padding:var(--space-8) var(--space-4)}.auth-form-inline{max-width:480px;margin:0 auto}.auth-switch{font-size:var(--text-sm);color:var(--muted);margin:0}.teacher-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.teacher-list-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.teacher-list-item div{display:flex;flex-direction:column;min-width:0}.notif-bell{flex-shrink:0}.notif-bell-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;background:none;border:none;font-size:var(--text-lg);color:var(--text);cursor:pointer;min-width:var(--touch-target-min);min-height:var(--touch-target-min)}.notif-badge{position:absolute;top:2px;right:2px;background:var(--accent);color:var(--text-on-accent);font-size:.65rem;min-width:16px;height:16px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 3px}.notif-dropdown{position:absolute;right:0;top:calc(100% + .5rem);width:min(320px,90vw);max-height:60vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown)}.notif-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem;border-bottom:1px solid var(--border)}.notif-mark-all{background:none;border:none;color:var(--accent-blue-dark);font-size:var(--text-xs);cursor:pointer}.notif-empty{padding:var(--space-4);color:var(--muted);font-size:var(--text-sm);margin:0}.notif-list{list-style:none;margin:0;padding:0}.notif-item{display:flex;align-items:flex-start;gap:var(--space-2);padding:.75rem;border-bottom:1px solid var(--border);cursor:pointer}.notif-item-body{flex:1;min-width:0}.notif-item-body p{margin:.25rem 0 0;font-size:var(--text-sm);color:var(--muted)}.notif-item-unread{background:var(--accent-light)}.notif-load-more{width:100%;padding:var(--space-2) var(--space-3);border:none;border-top:1px solid var(--border);background:transparent;color:var(--accent-blue-dark);font-size:var(--text-sm);cursor:pointer}.notif-load-more:disabled{color:var(--muted);cursor:default}.teacher-cards{list-style:none;padding:0}.teacher-card{position:relative}.teacher-card a{display:block;padding:var(--space-5);color:var(--text);text-decoration:none}.teacher-card-top{display:flex;align-items:center;gap:var(--space-3);margin-bottom:.35rem}.teacher-card-bio{color:var(--muted);font-size:var(--text-sm)}.teacher-card-rating{font-size:var(--text-sm);color:var(--muted)}.teacher-card-price{font-size:var(--text-sm);color:var(--brand);font-weight:600;margin:0 0 .35rem}.teacher-language-badges{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 .5rem}.teacher-profile-header{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-4);padding:var(--space-5);margin-bottom:var(--space-5)}.teacher-profile-header h2{margin:0 0 .25rem;color:var(--brand)}.teacher-profile-header .teacher-language-badges{justify-content:center}@media (min-width: 1024px){.teacher-profile-header{max-width:640px;margin:0 auto var(--space-5)}}.profile-avatar-section{display:flex;justify-content:center;margin-bottom:var(--space-5)}.student-contact{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border)}.student-contact-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--accent-blue);text-decoration:none;font-weight:500}.student-contact-link:hover{text-decoration:underline}.student-contact-email{margin:0;color:var(--muted);font-size:var(--text-sm)}.lesson-authoring section{margin-bottom:var(--space-6)}.lesson-authoring h2{font-size:var(--text-xl);color:var(--brand);margin:var(--space-4) 0 0}.lesson-details{padding:var(--space-5)}.section-header-row{display:flex;align-items:center;gap:var(--space-3);padding-bottom:var(--space-3);margin-bottom:var(--space-4);border-bottom:1px solid var(--border);flex-wrap:wrap}.section-header-row .search-box{flex:1;min-width:200px;margin-bottom:0}.section-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-4)}.section-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4)}.section-subtitle{color:var(--muted);font-size:var(--text-sm);margin-top:-.5rem}.grant-panel{margin-top:var(--space-5);border-left:3px solid var(--accent);border-radius:var(--radius-lg);padding:var(--space-5)}.lesson-viewer-section{margin-bottom:var(--space-5)}.lesson-viewer-block{margin-bottom:var(--space-4)}.block-video iframe{width:100%;aspect-ratio:16 / 9;border:none;border-radius:var(--radius-md)}.block-video-offline{display:flex;align-items:center;justify-content:center;gap:var(--space-2);aspect-ratio:16 / 9;border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--muted);font-size:var(--text-sm)}.block-image{max-width:100%;border-radius:var(--radius-md)}.block-audio audio{width:100%}.block-transcript{color:var(--muted);font-size:var(--text-sm);margin-top:.5rem}.comment-section-widget{margin-top:var(--space-3)}.comment-toggle,.comment-inbox-toggle{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--muted);font-size:var(--text-sm);cursor:pointer}.comment-inbox{margin-bottom:var(--space-5)}.comment-inbox-toggle{width:100%;justify-content:flex-start}.comment-thread-view{margin-top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.comment-thread{display:flex;flex-direction:column;gap:var(--space-2)}.comment-thread-error{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.comment-bubble{max-width:80%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);background:var(--surface-sunken)}.comment-bubble p{margin:0}.comment-bubble-self{align-self:flex-end;background:var(--accent);color:var(--text-on-accent)}.comment-bubble-other{align-self:flex-start;box-shadow:var(--shadow-sm)}.comment-bubble-meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);opacity:.75;margin-top:var(--space-1)}.comment-bubble-actions{display:inline-flex;gap:var(--space-1)}.comment-bubble-actions button{border:none;background:transparent;color:inherit;cursor:pointer;display:inline-flex;padding:2px}.comment-edit-form textarea{width:100%;background:var(--surface);color:var(--text)}.comment-edit-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.comment-form textarea{min-height:64px}.comment-inbox-list{list-style:none;margin:var(--space-3) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.comment-inbox-item{width:100%;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-md);background:transparent;text-align:left;cursor:pointer}.comment-inbox-item:hover,.comment-inbox-item-active{background:var(--surface-hover)}.comment-inbox-item-body{display:flex;flex-direction:column;min-width:0}.comment-inbox-section{font-size:var(--text-xs);color:var(--muted)}.comment-inbox-preview{font-size:var(--text-sm);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.review-stars{display:inline-flex;gap:2px}.review-list li{padding:var(--space-3) var(--space-4);display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3)}.review-content{flex:1 1 180px;min-width:0}.review-content p{overflow-wrap:anywhere}.review-author{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);margin-left:auto;font-size:var(--text-sm);font-weight:600;text-align:right}.slot-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.continue-section{margin-bottom:var(--space-6)}.continue-section-title{font-size:var(--text-lg);color:var(--brand);margin:0 0 var(--space-4)}.continue-card{display:grid;align-content:start;justify-items:start;gap:var(--space-3);padding:var(--space-5);text-decoration:none;color:var(--text)}.continue-card-desc{margin-bottom:0}.continue-card .card-title{margin:0}.stat-tile{padding:var(--space-5);text-align:center}.stat-tile-value{display:block;font-size:var(--text-xl);color:var(--brand);font-weight:600}.stat-tile-label{font-size:var(--text-sm);color:var(--muted)}.section-link{display:inline-block;margin-top:var(--space-2);color:var(--accent-blue);font-size:var(--text-sm);text-decoration:none}.section-link:hover{text-decoration:underline}.lesson-step-progress{margin:var(--space-5) 0}.lesson-step-progress p{margin:0 0 var(--space-2);color:var(--muted)}.lesson-step-kicker{color:var(--accent-blue);font-size:var(--text-sm);font-weight:600}.lesson-toc-toggle{margin:var(--space-4) 0}.lesson-toc-toggle summary{color:var(--accent-blue);cursor:pointer;min-height:var(--touch-target-min);display:flex;align-items:center}.booking-groups{display:grid;gap:var(--space-6)}.booking-groups>section{min-width:0}.student-home-intro{margin-bottom:var(--space-6)}.student-home-intro h1{margin:var(--space-2) 0;font-family:var(--font-serif);font-size:var(--text-3xl)}.student-home-intro p:last-child{color:var(--muted)}.teacher-shortcuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3)}.teacher-shortcuts a{display:flex;align-items:center;min-height:var(--touch-target-min);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--accent-blue);font-weight:600}.teacher-shortcuts a:hover{background:var(--accent-blue-light)}.lesson-toc button:disabled{color:var(--muted);opacity:.6;cursor:not-allowed}.landing{background:var(--bg)}.landing-skip{position:absolute;left:var(--space-3);top:-100px;z-index:var(--z-toast);padding:var(--space-2) var(--space-3);background:var(--surface);color:var(--accent-blue)}.landing-skip:focus{top:var(--space-3)}.navbar{padding-top:calc(var(--space-4) + env(safe-area-inset-top))}.navbar .brand{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--accent)}.landing-hero{max-width:1180px;margin:0 auto;padding:var(--space-8) var(--space-4);display:grid;gap:var(--space-7);align-items:center}.landing-eyebrow{color:var(--accent-blue);font-size:var(--text-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.landing-hero h1,.landing-section-heading h2,.landing-final-cta h2{font-family:var(--font-serif);line-height:1.12;color:var(--brand)}.landing-hero h1{font-size:clamp(2.7rem,7vw,5rem);margin:var(--space-3) 0 var(--space-5)}.landing-hero-copy>p:not(.landing-eyebrow){max-width:38rem;color:var(--muted);font-size:var(--text-lg);line-height:1.7}.landing-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-5)}.landing-actions .btn,.landing-final-cta .btn{display:inline-flex;align-items:center;gap:var(--space-2)}.landing-text-link{color:var(--accent-blue);font-weight:600}.landing-lesson-preview{min-width:0;padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg)}.landing-preview-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);color:var(--accent-blue);font-weight:600}.landing-preview-label{margin-top:var(--space-6);color:var(--accent);font-size:var(--text-xs);font-weight:600;letter-spacing:.08em}.landing-lesson-preview h2{font-family:var(--font-serif);font-size:var(--text-2xl);margin:var(--space-2) 0}.landing-lesson-preview>p:not(.landing-preview-label){color:var(--muted);line-height:1.6}.landing-preview-step{display:flex;align-items:flex-start;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--radius-md);background:var(--accent-blue-light);color:var(--accent-blue-dark)}.landing-preview-step div{display:grid;gap:var(--space-1)}.landing-preview-step span{font-size:var(--text-sm)}.landing-method{padding:var(--space-8) var(--space-4);background:var(--surface)}.landing-section-heading{max-width:700px;margin:0 auto;text-align:center}.landing-section-heading h2,.landing-final-cta h2{font-size:clamp(2rem,5vw,var(--text-3xl));margin:var(--space-2) 0}.landing-section-heading>p:last-child,.landing-final-cta>p:not(.landing-eyebrow){color:var(--muted);line-height:1.6}.landing-final-cta{padding:var(--space-8) var(--space-4);text-align:center;background:var(--accent-blue-light)}.landing-final-cta .btn{margin-top:var(--space-4)}@media (min-width: 1024px){.landing-hero{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}@media (max-width: 600px){.navbar{padding-inline:var(--space-4)}.navbar-links{gap:var(--space-2)}.navbar-links a[href="#metodo"]{display:none}.landing-lesson-preview{padding:var(--space-5)}}.teacher-students-list{display:grid;gap:var(--space-3);padding:0;margin:var(--space-5) 0;list-style:none}.teacher-student-card{display:flex;align-items:center;gap:var(--space-4);width:100%;text-align:left;color:var(--text);cursor:pointer}.teacher-student-card span{display:grid;gap:var(--space-1)}.teacher-student-card small{color:var(--muted)}.learning-item-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4);margin-top:var(--space-4)}.learning-explore-links{display:flex;flex-wrap:wrap;gap:var(--space-4)}.learning-item{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);min-width:0;color:var(--brand);text-decoration:none}.learning-item svg{color:var(--accent)}.learning-item span{color:var(--muted)}.continue-card progress{width:100%;height:var(--space-2);accent-color:var(--accent)}.student-saved-card-link{display:grid;gap:var(--space-2);color:var(--brand);text-decoration:none;overflow-wrap:anywhere}.student-saved-card-actions{display:flex;align-items:center;gap:var(--space-2);margin-top:auto}.admin-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--space-4)}.admin-overview-card{display:grid;justify-items:start;gap:var(--space-3);color:var(--text);text-decoration:none}.admin-overview-card svg{color:var(--accent)}.admin-overview-card span{color:var(--muted)}.auth-password-input{position:relative}.auth-password-input input{box-sizing:border-box;width:100%;padding-right:calc(var(--touch-target-min) + var(--space-3))}.auth-password-toggle{position:absolute;top:50%;right:0;transform:translateY(-50%);display:grid;place-items:center;width:var(--touch-target-min);height:var(--touch-target-min);border:0;padding:0;background:none;color:var(--muted);cursor:pointer}.auth-password-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius-sm)}.entity-actions-menu{position:relative}.entity-actions-menu summary{display:grid;place-items:center;min-width:var(--touch-target-min);min-height:var(--touch-target-min);cursor:pointer;list-style:none}.entity-actions-menu summary::-webkit-details-marker{display:none}.entity-actions-menu>div{position:absolute;z-index:var(--z-dropdown);right:0;min-width:150px;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md)}.entity-actions-menu a,.entity-actions-menu button{display:block;width:100%;padding:var(--space-2);border:0;background:transparent;color:var(--text);text-align:left;text-decoration:none;cursor:pointer}.entity-actions-menu a:hover,.entity-actions-menu button:hover{background:var(--surface-hover)}.landing-teacher-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4);max-width:1100px;margin:var(--space-6) auto 0}.landing-teacher-card{display:grid;justify-items:start;align-content:start;gap:var(--space-3);color:var(--text);text-decoration:none}.landing-teacher-card p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;margin:0;color:var(--muted)}.teacher-intro-cover{position:relative;display:grid;place-items:center;width:min(100%,480px);aspect-ratio:16 / 9;overflow:hidden;border:0;border-radius:var(--radius-lg);background:var(--accent-blue-dark);color:var(--text-on-accent);cursor:pointer}.teacher-intro-cover img{position:absolute;width:100%;height:100%;object-fit:cover}.teacher-intro-cover svg{position:relative;padding:var(--space-3);box-sizing:content-box;border-radius:var(--radius-full);background:var(--accent)}.teacher-intro-video{max-width:480px}.teacher-profile-tabs .tabs-list{justify-content:safe center}.teacher-profile-tab{max-width:640px;margin-inline:auto;text-align:center}.teacher-intro-cover,.teacher-intro-video{margin-inline:auto}.media-load-error{padding:var(--space-4);border:1px solid var(--danger-border);border-radius:var(--radius-md);background:var(--danger-bg)}.media-load-error p{margin:0 0 var(--space-2)}.block-audio details.block-transcript summary{cursor:pointer;color:var(--accent-blue)}.course-overview-details{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.course-overview-description{margin-bottom:var(--space-4);white-space:pre-wrap}.course-overview-progress{color:var(--muted);margin-bottom:var(--space-4)}.course-overview-resume{margin-bottom:var(--space-6)}.course-overview-heading{margin:var(--space-4) 0}.study-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-5);font-size:var(--text-sm)}.study-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);min-width:0;overflow-wrap:anywhere;color:var(--muted)}.study-breadcrumbs a{color:var(--accent-blue)}.study-breadcrumbs [aria-current]{color:var(--text);font-weight:600}.study-toolbar .study-desktop-toggle,.study-index{display:none}.study-layout{min-width:0}.study-article{min-width:0;overflow-wrap:anywhere}.study-article .lesson-step-progress .reading-progress-track{position:static;height:var(--space-1);background:var(--surface-sunken);border-radius:var(--radius-full);overflow:hidden}.study-lesson-navigation{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-4);margin:var(--space-5) 0;font-family:var(--font-sans);font-size:var(--text-sm)}.study-lesson-navigation a{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch-target-min);color:var(--accent-blue)}.study-lesson-navigation svg{flex-shrink:0}.study-outline{font-family:var(--font-sans)}.study-outline-lessons,.study-outline-sections{list-style:none;margin:0;padding:0}.study-outline-lesson{border-bottom:1px solid var(--border);padding:var(--space-2) 0}.study-outline-heading,.study-outline-section{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--touch-target-min);padding:var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--accent-blue);font:inherit;font-size:var(--text-sm);text-align:left;text-decoration:none;cursor:pointer}.study-outline-heading{font-weight:600}.study-outline-heading>span{flex:1;min-width:0;overflow-wrap:anywhere}.study-outline svg{flex-shrink:0}.study-outline-heading:hover,.study-outline-section:hover{background:var(--surface-hover)}.study-outline-chevron-open{transform:rotate(180deg)}.study-outline-section{align-items:flex-start}.study-outline-section>svg{margin-top:var(--space-1)}.study-outline-section>span{min-width:0;overflow-wrap:anywhere}.study-outline-section small{display:block;margin-top:var(--space-1);color:var(--muted);font-size:var(--text-xs);font-weight:400}.study-outline-section[aria-current=step]{color:var(--accent-blue-dark);background:var(--accent-blue-light);font-weight:600}.study-outline-section:disabled{color:var(--muted);background:transparent;cursor:not-allowed}.study-outline-message{padding:var(--space-3);color:var(--muted);font-size:var(--text-sm)}.study-outline-message a{color:var(--accent-blue)}@media (min-width: 1024px){.study-toolbar{flex-wrap:nowrap}.study-toolbar .study-mobile-toggle{display:none}.study-toolbar .study-desktop-toggle{display:inline-flex;flex-shrink:0}.study-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6);align-items:start}.study-layout-with-index{grid-template-columns:minmax(0,1fr) var(--study-index-width)}.study-index:not([hidden]){display:block;position:sticky;top:var(--study-sticky-top);max-height:calc(100dvh - var(--study-sticky-top) - var(--space-5) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.dash-content-offline .study-index{max-height:calc(100dvh - var(--study-sticky-top) - var(--offline-banner-height) - var(--space-5) - env(safe-area-inset-bottom))}.study-index>h2{margin:0 0 var(--space-3);font-size:var(--text-base)}}.rich-text-content .ProseMirror{outline:none;font-size:var(--text-lg);line-height:1.7}.rich-text-content p{margin:0 0 .5em}.rich-text-content ul,.rich-text-content ol{margin:0 0 .5em;padding-left:1.5em}.rich-text-content hr,.prose hr{margin:1em 0;border:none;border-top:1px solid var(--border)}@keyframes menu-pop-in{0%{opacity:0;transform:translateY(-2px) scale(.98)}to{opacity:1;transform:none}}.bubble-menu{display:flex;gap:2px;padding:var(--space-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);animation:menu-pop-in .14s var(--ease-fluid)}.bubble-menu button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;border-radius:var(--radius-sm);color:var(--text);cursor:pointer}.bubble-menu button:hover{background:var(--surface-hover)}.bubble-menu button.active{background:var(--accent-light);color:var(--accent-dark)}.bubble-menu-link-form input{padding:.3rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;min-width:220px;background:var(--surface);color:var(--text)}.bubble-menu-color-form{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-1)}.bubble-menu-color-form button{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text);font-size:11px;line-height:1;cursor:pointer}.bubble-menu-color-form button.active{box-shadow:0 0 0 2px var(--accent-light),0 0 0 3px var(--accent)}.upload-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-5);text-align:center;cursor:pointer}.upload-dropzone:hover,.upload-dropzone-over{background:var(--accent-light)}.upload-dropzone-preview{max-width:100%;max-height:160px;border-radius:var(--radius-sm)}.upload-dropzone-progress{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.section-editor-list{display:flex;flex-direction:column;gap:var(--space-6)}.section-editor{position:relative;padding-left:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.section-editor:last-child{border-bottom:none}.section-editor-handle,.block-row-handle,.section-editor-actions,.block-row-actions{opacity:0;transform:scale(.92);transition:opacity var(--transition-fast) var(--ease-fluid),transform var(--transition-fast) var(--ease-fluid)}.section-editor:hover .section-editor-handle,.section-editor-handle:focus-visible,.block-row:hover .block-row-handle,.block-row-handle:focus-visible,.section-editor:hover .section-editor-actions,.section-editor-actions:focus-within,.block-row:hover .block-row-actions,.block-row-actions:focus-within{opacity:1;transform:scale(1)}.section-editor-handle,.block-row-handle{position:absolute;left:0;top:.3rem;background:none;border:none;cursor:grab;color:var(--muted);padding:var(--space-1);touch-action:none}.section-editor-header{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.section-title-input{flex:1;min-width:200px;border:none;background:none;padding:.2rem 0;font-family:inherit;font-size:var(--text-2xl);font-weight:600;color:var(--brand)}.section-subtitle-input{flex:1;min-width:160px;border:none;background:none;padding:.2rem 0;font-family:inherit;color:var(--muted)}.section-title-input:hover,.section-title-input:focus,.section-subtitle-input:hover,.section-subtitle-input:focus{outline:none;border-bottom:1px solid var(--border)}.section-editor-actions{display:flex;align-items:center;gap:var(--space-2)}.block-editor-list{display:flex;flex-direction:column}.block-row{position:relative;padding:var(--space-1) var(--space-8) var(--space-1) var(--space-6)}.block-row-actions{position:absolute;right:0;top:0;display:flex;gap:var(--space-1)}.block-video-input{width:100%;padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;background:var(--surface);color:var(--text)}.block-transcript{margin-top:var(--space-2)}.block-transcript-toggle{background:none;border:none;color:var(--muted);font-size:var(--text-sm);cursor:pointer;padding:0}.block-transcript textarea{display:block;width:100%;margin-top:var(--space-1);padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;background:var(--surface);color:var(--text)}.insert-gap{position:relative;display:flex;align-items:center;height:24px}.insert-gap-button{z-index:1;width:32px;height:32px;border:none;opacity:.55;transform:scale(.92);transition:opacity var(--transition-fast) var(--ease-fluid),transform var(--transition-fast) var(--ease-fluid),color var(--transition-fast),border-color var(--transition-fast)}.insert-gap-line{flex:1;height:1px;background:transparent}.insert-gap:hover .insert-gap-button,.insert-gap-button:focus-visible{opacity:1;transform:scale(1)}.insert-gap:hover .insert-gap-line{background:var(--border)}.insert-gap-labeled{display:inline-flex;align-items:center;gap:var(--space-2);background:none;cursor:pointer;font-family:inherit;padding:var(--space-3) var(--space-4);width:100%}.insert-menu{position:fixed;z-index:var(--z-modal);display:flex;flex-direction:column;min-width:180px;max-width:220px;padding:var(--space-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);animation:menu-pop-in .14s var(--ease-fluid)}.insert-menu-option{display:flex;align-items:center;gap:var(--space-2);padding:.5rem .6rem;background:none;border:none;border-radius:var(--radius-sm);text-align:left;color:var(--text);cursor:pointer;font-family:inherit}.insert-menu-option:hover{background:var(--surface-hover)}.draft-block{padding-top:var(--space-1)}.draft-media-block{position:relative}.draft-media-cancel{position:absolute;top:var(--space-1);right:var(--space-1)}.draft-section-ghost{display:inline-flex;align-items:center;gap:var(--space-3);margin-top:var(--space-4);background:none;border:none;color:var(--muted);cursor:pointer;font-family:inherit;font-size:var(--text-base);padding:var(--space-2) 0;transition:color var(--transition-fast)}.draft-section-ghost:hover{color:var(--text)}.draft-section-row{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-4)}.draft-section-title{border:none;background:none;font-family:inherit;font-size:var(--text-2xl);font-weight:600;color:var(--brand);padding:.2rem 0;border-bottom:1px solid var(--border)}.draft-section-subtitle{border:none;background:none;font-family:inherit;color:var(--muted);padding:.2rem 0;border-bottom:1px solid var(--border)}.autosave-status{display:inline-flex;align-items:center;gap:var(--space-1);min-width:90px;font-size:var(--text-sm);color:var(--muted)}.autosave-status-saved{color:var(--success)}.autosave-status-error{color:var(--danger)}.autosave-retry{background:none;border:none;text-decoration:underline;color:inherit;cursor:pointer;padding:0;font-family:inherit;font-size:inherit}.autosave-spin{animation:autosave-spin .8s linear infinite}@keyframes autosave-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.reading-progress-track{position:fixed;top:0;left:0;right:0;height:3px;background:transparent;z-index:var(--z-sticky)}.reading-progress-fill{height:100%;background:var(--accent);transition:width .1s ease-out}.lesson-article{font-family:var(--font-serif)}.lesson-article-description{font-size:var(--text-lg);color:var(--muted);margin-bottom:var(--space-5)}.lesson-article-header{display:flex;justify-content:flex-end;gap:var(--space-2);margin-bottom:var(--space-3)}.lesson-subnav{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--space-2);background:var(--surface);border-bottom:1px solid var(--border);padding:var(--space-2) var(--space-3)}.lesson-subnav-arrow{display:inline-flex;align-items:center;justify-content:center;width:var(--touch-target-min);height:var(--touch-target-min);flex-shrink:0;color:var(--text);text-decoration:none;border-radius:var(--radius-sm)}.lesson-subnav-arrow:hover{background:var(--surface-hover)}.lesson-subnav-arrow-disabled{color:var(--border-strong);pointer-events:none}.lesson-subnav-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;border:none;font:inherit;font-weight:600;color:var(--brand);text-align:center;cursor:pointer;padding:var(--space-2)}@media (min-width: 1024px){.lesson-subnav{position:fixed;top:var(--topbar-height);left:var(--sidebar-width);right:0}.lesson-subnav-title{pointer-events:none;cursor:default}}.lesson-viewer-layout{display:block}.lesson-course-nav{display:none}@media (min-width: 1024px){.lesson-viewer-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--space-6);align-items:start}.lesson-course-nav{display:block;position:sticky;top:calc(var(--topbar-height) + var(--space-6) + var(--lesson-subnav-height))}}.lesson-course-nav-title{display:block;font-size:var(--text-sm);font-weight:600;color:var(--brand);text-decoration:none;margin-bottom:var(--space-3)}.lesson-course-nav-title:hover{text-decoration:underline}.lesson-toc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-6);font-family:var(--font-sans)}.lesson-toc strong{color:var(--brand)}.lesson-toc ol{margin:var(--space-2) 0 0;padding-left:var(--space-5)}.lesson-toc button{background:none;border:none;color:var(--accent-blue);cursor:pointer;font-size:var(--text-sm);padding:.15rem 0;text-align:left;font-family:inherit}.lesson-viewer-section h2{font-family:var(--font-serif);color:var(--brand);font-size:var(--text-2xl)}.lesson-toc-active{color:var(--accent)!important;font-weight:600}.lesson-resume-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);background:var(--accent-light);border:1px solid var(--accent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-5);font-family:var(--font-sans);font-size:var(--text-sm)}.lesson-resume-banner button{background:var(--accent);color:var(--text-on-accent);border:none;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);cursor:pointer;white-space:nowrap}.lesson-section-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin:var(--space-5) 0 var(--space-7);padding-top:var(--space-4);border-top:1px solid var(--border);font-family:var(--font-sans)}.lesson-section-nav-prev{color:var(--accent-blue)}.lesson-section-nav-next{margin-left:auto}@media (max-width: 600px){.lesson-section-nav .btn{width:100%}}.prose{font-size:var(--text-lg);line-height:1.7;color:var(--text)}.prose p{margin:0 0 1em}.prose ul,.prose ol{margin:0 0 1em;padding-left:1.5em}.prose a{color:var(--accent-blue)}.focused-editor{display:grid;gap:var(--space-5);min-width:0}.focused-editor-sidebar,.focused-editor-main{min-width:0}.focused-editor-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.focused-editor-sections{list-style:none;padding:0;margin:0 0 var(--space-4)}.focused-editor-sections li{display:flex;align-items:center;gap:var(--space-2);border-radius:var(--radius-md)}.focused-editor-sections li.focused-editor-selected{background:var(--accent-blue-light)}.focused-editor-sections li>button{flex:1;min-width:0;text-align:left;padding:var(--space-3);border:0;background:transparent;color:var(--accent-blue);cursor:pointer}.focused-editor-order{display:flex}.focused-editor-order button{min-width:var(--touch-target-min);min-height:var(--touch-target-min);border:0;background:transparent;color:var(--accent-blue);cursor:pointer}.focused-editor-order button:disabled{opacity:.35;cursor:default}@media (min-width: 1024px){.focused-editor{grid-template-columns:250px minmax(0,1fr)}.focused-editor-sidebar{align-self:start;position:sticky;top:calc(var(--topbar-height) + var(--space-4))}}.editor-preview-area{display:grid;justify-items:center;gap:var(--space-4)}.editor-preview-switch{display:flex;gap:var(--space-2)}.editor-preview-switch button[aria-pressed=true]{color:var(--accent-blue);font-weight:700}.editor-preview-desktop{width:100%}.editor-preview-mobile{width:min(100%,360px);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg)}.grant-student-list{display:grid;gap:var(--space-2);max-height:240px;overflow:auto;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md)}.grant-student-list label{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-target-min);cursor:pointer}
