@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,400;1,500&family=Golos+Text:wght@400;500;600;700&family=Manrope:wght@800&display=swap";@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,400;1,500&family=Golos+Text:wght@400;500;600;700&family=Manrope:wght@800&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--primary:#e3702b;--primary-hover:#c75e20;--primary-light:#fbe9dc;--bg:#f2f1ed;--bg-alt:#eceae3;--surface:#fff;--soft:#f0eee9;--border:#e7e5de;--line:#edebe5;--text:#2b2a26;--text-muted:#6f6c64;--text-heading:#1c1b18;--danger:#c94f35;--success:#4e7563;--cool:#7a9286;--cool-soft:#e1e8e2;--accent-ink:#a85114;--ok:#5e8c6a;--ok-soft:#e4eee5;--ok-glow:#5e8c6a6b;--bad:#c24a38;--bad-soft:#f8e1db;--bad-glow:#c24a3861;--field:#211f1b;--field-tx:#f4f2ee;--field-mute:#9a968d;--field-line:#ffffff1a;--ink-bg:#1c1b18;--ink-tx:#f4f2ee;--ink-mute:#97948d;--ink-line:#f4f2ee1a;--ink-hl:#ffffff0f;--ink-hl-2:#ffffff1a;--ink-hl-3:#ffffff29;--radius:14px;--r-lg:21px;--shadow:0 1px 2px #00000008, 0 6px 20px #0000000a;--hover:#1c1b180a;--ease:cubic-bezier(.22, 1, .36, 1)}[data-theme=dark]{--primary:#e88149;--primary-hover:#dd7438;--primary-light:#e8814929;--bg:#15140f;--bg-alt:#100f0b;--surface:#1f1d1a;--soft:#26241f;--border:#dcd7cc1a;--line:#dcd7cc12;--text:#c8c3b7;--text-muted:#8c8880;--text-heading:#dcd7cc;--danger:#e06b52;--success:#93aaa0;--cool:#93aaa0;--cool-soft:#93aaa024;--accent-ink:var(--primary);--ok:#8fb89a;--ok-soft:#8fb89a29;--ok-glow:#8fb89a61;--bad:#dd8068;--bad-soft:#dd80682e;--bad-glow:#dd80685c;--field:#2b2924;--field-tx:#ece7dc;--field-mute:#9a968d;--field-line:#ffffff14;--ink-bg:#26241f;--ink-tx:#dcd7cc;--ink-mute:#8c8880;--ink-line:#dcd7cc14;--ink-hl:#ffffff0a;--ink-hl-2:#ffffff12;--ink-hl-3:#ffffff24;--shadow:0 1px 3px #0006, 0 8px 24px #0000004d;--hover:#ffffff0d}.solve-page{max-width:760px}.solve-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);transition:border-color .35s var(--ease), box-shadow .35s var(--ease), transform .2s var(--ease);padding:26px 28px;position:relative}.solve-edge{background:var(--border);width:3px;transition:background .35s var(--ease), box-shadow .35s var(--ease);border-radius:999px;position:absolute;top:24px;bottom:24px;left:0}.solve-card.is-active{border-color:color-mix(in srgb, var(--primary) 45%, transparent);box-shadow:0 1px 2px #0000000a,0 14px 32px #e3702b1a}.solve-card.is-active .solve-edge{background:var(--primary)}.solve-card.is-correct{border-color:color-mix(in srgb, var(--ok) 45%, transparent)}.solve-card.is-correct .solve-edge{background:var(--ok);box-shadow:0 0 18px var(--ok-glow)}.solve-card.is-err{border-color:color-mix(in srgb, var(--bad) 50%, transparent)}.solve-card.is-err .solve-edge{background:var(--bad)}.solve-card.is-wrong{animation:solve-shake .42s var(--ease)}@keyframes solve-shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}@media (prefers-reduced-motion:reduce){.solve-card.is-wrong{animation:none}}.solve-answer{background:var(--field);border:1px solid var(--field-line);transition:box-shadow .3s var(--ease), border-color .3s var(--ease);border-radius:14px;align-items:center;gap:10px;padding:5px 5px 5px 16px;display:flex}.solve-answer:focus-within{border-color:color-mix(in srgb, var(--primary) 60%, transparent);box-shadow:0 0 0 4px var(--primary-light)}.solve-answer input{min-width:0;color:var(--field-tx);background:0 0;border:0;outline:none;flex:1;padding:12px 0;font-family:inherit;font-size:15px;font-weight:500}.solve-answer input::placeholder{color:var(--field-mute)}.solve-answer input:read-only{color:var(--ok)}[data-theme=dark] .solve-answer input{background:0 0;border:0}.solve-check{background:var(--primary);color:#fff;cursor:pointer;white-space:nowrap;transition:filter .25s ease, transform .2s var(--ease);border:0;border-radius:11px;align-items:center;gap:7px;padding:11px 18px;font-family:inherit;font-size:14px;font-weight:600;display:inline-flex;box-shadow:0 6px 16px #e3702b47}.solve-check:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.solve-check:disabled{opacity:.5;cursor:not-allowed}.solve-check.is-done{background:var(--ok);box-shadow:0 6px 16px var(--ok-glow);cursor:default}.solve-check.is-done:hover{filter:none;transform:none}.solve-feedback{align-items:center;gap:9px;font-size:14px;font-weight:600;display:flex}.solve-feedback.ok{color:var(--ok)}.solve-feedback.bad{color:var(--bad)}.solve-feedback .fb-ico{border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.solve-feedback.ok .fb-ico{background:var(--ok-soft)}.solve-feedback.bad .fb-ico{background:var(--bad-soft)}.solve-accordion{border-top:1px dashed var(--border);margin-top:16px}.solve-accordion-head{color:var(--accent-ink);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:8px;width:100%;padding-top:14px;font-family:inherit;font-size:13px;font-weight:600;display:flex}.solve-accordion-head .chev{transition:transform .3s var(--ease);display:inline-flex}.solve-accordion.open .solve-accordion-head .chev{transform:rotate(90deg)}.solve-accordion-body{opacity:0;max-height:0;transition:max-height .45s var(--ease), opacity .3s ease, margin-top .3s ease;overflow:hidden}.solve-accordion.open .solve-accordion-body{opacity:1;max-height:1600px;margin-top:14px}.tag-chip.is-on{background:var(--primary);color:#fff;border-color:#0000}.dash-quick-row{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:28px;display:grid}.dash-quick-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);color:var(--text-heading);transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);align-items:center;gap:14px;padding:16px 18px;text-decoration:none;display:flex;position:relative}.dash-quick-card:hover{border-color:color-mix(in srgb, var(--primary) 35%, var(--border));transform:translateY(-2px);box-shadow:0 1px 2px #0000000a,0 14px 30px #1a171412}.dash-quick-ico{background:var(--soft);width:42px;height:42px;color:var(--primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.dash-quick-body{flex-direction:column;gap:2px;min-width:0;display:flex}.dash-quick-label{font-size:15px;font-weight:600}.dash-quick-meta{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.dash-quick-badge{background:var(--primary);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex;position:absolute;top:12px;right:14px}.dash-review-list{flex-direction:column;gap:8px;display:flex}.dash-review-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-heading);transition:background .2s var(--ease), border-color .2s var(--ease);align-items:center;gap:14px;padding:14px 16px;text-decoration:none;display:flex}.dash-review-item:hover{background:var(--soft);border-color:color-mix(in srgb, var(--primary) 30%, var(--border))}.dash-review-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.dash-review-title{font-size:14.5px;font-weight:600}.dash-review-meta{color:var(--text-muted);font-size:12.5px}.dash-review-cta{color:var(--accent-ink);flex-shrink:0;font-size:13px;font-weight:600}*{scrollbar-width:thin;scrollbar-color:#cfcbc0 #edebe5}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#edebe5;border-radius:3px}::-webkit-scrollbar-thumb{background:#cfcbc0;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#b5b0a4}::-webkit-scrollbar-corner{background:#edebe5}[data-theme=dark] *{scrollbar-width:thin;scrollbar-color:#3a372f #1f1d1a}[data-theme=dark] ::-webkit-scrollbar{width:6px;height:6px}[data-theme=dark] ::-webkit-scrollbar-track{background:#1f1d1a;border-radius:3px}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#3a372f;border-radius:3px}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#4a463c}[data-theme=dark] ::-webkit-scrollbar-corner{background:#1f1d1a}[data-theme=dark] .level-beginner{color:#a9bfb4;background:#93aaa024}[data-theme=dark] .level-intermediate{color:#d8b47c;background:#d8a44a24}[data-theme=dark] .level-advanced{color:#e89a6e;background:#e8814929}[data-theme=dark] .pub-yes{color:#a9bfb4;background:#93aaa029}[data-theme=dark] .pub-no{color:#d8b47c;background:#d8a44a24}[data-theme=dark] .status-badge.published{color:#a9bfb4;background:#93aaa029}[data-theme=dark] .status-badge.draft{color:#d8b47c;background:#d8a44a24}[data-theme=dark] input,[data-theme=dark] textarea,[data-theme=dark] select{background:var(--surface);color:var(--text);border-color:var(--border);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] input::-moz-placeholder{color:var(--text-muted)}[data-theme=dark] textarea::-moz-placeholder{color:var(--text-muted)}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:var(--text-muted)}[data-theme=dark] .card,[data-theme=dark] .dash-stat,[data-theme=dark] .player-module{background:var(--surface);border-color:var(--border)}[data-theme=dark] .dash-hero{background:var(--ink-bg)}[data-theme=dark] .result-correct{background:#8fb5a014;border-color:#8fb5a04d}[data-theme=dark] .result-wrong{background:#e06b5214;border-color:#e06b524d}[data-theme=dark] .variant-nav-btn.answered{color:#a9cdb8;background:#8fb5a026;border-color:#8fb5a066}[data-theme=dark] .dash-search-input{background:var(--surface);color:var(--text);border-color:var(--border)}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Golos Text,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.6;transition:background-color .35s,color .35s}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.navbar,.card,.player-sidebar,.player-module,.player-module-header,.player-lesson-btn,.player-main,.btn,input,textarea,select{transition:background-color .35s,border-color .35s,color .35s}.navbar{z-index:100;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:18px 32px 10px;display:flex;position:sticky;top:0}.navbar:before{content:"";background:linear-gradient(180deg, var(--bg) 62%, transparent);pointer-events:none;z-index:-1;transition:background-color .35s;position:absolute;inset:0}.pill-nav{background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;padding:5px;transition:background-color .35s,border-color .35s;display:inline-flex;box-shadow:0 1px 2px #00000008,0 8px 24px #0000000d}.nav-item{color:var(--text);white-space:nowrap;cursor:pointer;transition:background .25s var(--ease), color .25s var(--ease);border-radius:999px;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none}.nav-item:hover{background:var(--soft);color:var(--text);text-decoration:none}.nav-item.active{background:var(--ink-bg);color:var(--ink-tx)}.navbar-logo{color:var(--text-heading);gap:8px;padding:8px 18px 8px 14px;text-decoration:none}.navbar-logo:hover{text-decoration:none}.navbar-logo-mark{transition:transform .4s var(--ease);flex-shrink:0}.navbar-logo:hover .navbar-logo-mark{transform:rotate(-12deg)}.navbar-logo-word{letter-spacing:-.02em;font-family:Manrope,Golos Text,system-ui,sans-serif;font-size:16px;font-weight:800}.navbar-center{scrollbar-width:none;flex-shrink:1;overflow-x:auto}.navbar-center::-webkit-scrollbar{display:none}.navbar-side{align-items:center;gap:10px;display:flex}.tt-btn{background:var(--surface);border:1px solid var(--border);cursor:pointer;width:40px;height:40px;color:var(--text);border-radius:999px;justify-content:center;align-items:center;transition:background .25s,border-color .25s;display:inline-flex;position:relative;overflow:hidden}.tt-btn:hover{background:var(--soft)}.tt-btn .tt-sun,.tt-btn .tt-moon{transition:transform .45s var(--ease), opacity .35s ease;position:absolute}.tt-btn .tt-sun{opacity:1;transform:rotate(0)scale(1)}.tt-btn .tt-moon{opacity:0;transform:rotate(-90deg)scale(.6)}[data-theme=dark] .tt-btn .tt-sun{opacity:0;transform:rotate(90deg)scale(.6)}[data-theme=dark] .tt-btn .tt-moon{opacity:1;transform:rotate(0)scale(1)}.btn-primary-sm{background:var(--primary);transition:background .15s, box-shadow .25s var(--ease);border-radius:999px;align-items:center;padding:9px 18px;font-size:.88rem;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 1px 2px #0000000f,0 8px 20px #e3702b38;color:#fff!important}.btn-primary-sm:hover{background:var(--primary-hover);text-decoration:none!important}.auth-shell{background:var(--bg);grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:100vh;display:grid}.auth-hero{background:radial-gradient(120% 80% at 0% 0%, #e3702b8c 0%, transparent 55%), radial-gradient(100% 80% at 100% 100%, #38bdf859 0%, transparent 55%), linear-gradient(135deg, var(--primary) 0%, var(--primary) 55%, #3a1f0c 100%);color:#fff;align-items:center;padding:56px 56px 48px;display:flex;position:relative;overflow:hidden}[data-theme=dark] .auth-hero{background:radial-gradient(120% 80% at 0% 0%, #e8814959 0%, transparent 55%), radial-gradient(100% 80% at 100% 100%, #38bdf840 0%, transparent 55%), linear-gradient(135deg, #3a1f0c 0%, var(--primary-hover) 55%, #1c1b18 100%)}.auth-hero-glow{pointer-events:none;filter:blur(20px);background:radial-gradient(circle,#ffffff2e 0%,#0000 65%);width:520px;height:520px;position:absolute;inset:-20% -20% auto auto}.auth-hero-inner{width:100%;max-width:480px;margin:0 auto;position:relative}.auth-brand{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1f;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:10px;margin-bottom:40px;padding:8px 14px;font-weight:600;display:inline-flex}.auth-brand-icon{font-size:1.15rem}.auth-brand-name{letter-spacing:.01em;font-size:.95rem}.auth-hero-title{letter-spacing:-.01em;color:#fff;margin:0 0 20px;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.2rem,3.8vw,3.4rem);font-weight:600;line-height:1.05}.auth-hero-accent{background:linear-gradient(90deg,#fde68a 0%,#f5c49e 55%,#f9a8d4 100%);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:italic;font-weight:500}.auth-hero-sub{color:#ffffffd1;max-width:420px;margin:0 0 36px;font-size:1.05rem;line-height:1.55}.auth-hero-features{grid-template-columns:1fr 1fr;gap:12px 18px;margin:0;padding:0;list-style:none;display:grid}.auth-hero-features li{color:#ffffffeb;align-items:center;gap:10px;font-size:.95rem;display:flex}.ahf-icon{background:#ffffff24;border:1px solid #fff3;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;display:inline-flex}.auth-main{background:var(--surface);justify-content:center;align-items:center;padding:48px 24px;display:flex}.auth-form-wrap{width:100%;max-width:420px}.auth-form-head{margin-bottom:28px}.auth-form-head h2{letter-spacing:-.01em;color:var(--text-heading);margin:0 0 6px;font-size:1.85rem;font-weight:700}.auth-form-head p{color:var(--text-muted);margin:0;font-size:.95rem}.auth-submit{box-shadow:0 6px 20px -8px var(--primary);margin-top:6px;transition:transform .15s,box-shadow .2s;padding:13px!important;font-size:1rem!important;font-weight:600!important}.auth-submit:hover:not(:disabled){box-shadow:0 10px 24px -8px var(--primary);transform:translateY(-1px)}.form-hint{color:var(--text-muted);margin-top:2px;font-size:.8rem}@media (width<=900px){.auth-shell{grid-template-columns:1fr}.auth-hero{min-height:auto;padding:40px 28px 32px}.auth-hero-title{font-size:clamp(1.6rem,6vw,2.2rem)}.auth-hero-sub{margin-bottom:24px}.auth-hero-features{grid-template-columns:1fr 1fr;gap:10px}.auth-main{padding:36px 20px}}@media (width<=520px){.auth-hero-features{grid-template-columns:1fr}}.auth-form{flex-direction:column;gap:16px;display:flex}.password-wrap{display:flex;position:relative}.password-wrap input{flex:1;padding-right:42px!important}.eye-btn{cursor:pointer;width:40px;color:var(--text-muted);background:0 0;border:none;border-radius:0 8px 8px 0;justify-content:center;align-items:center;font-size:1rem;transition:color .15s;display:flex;position:absolute;top:0;bottom:0;right:0}.eye-btn:hover{color:var(--text)}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text);font-size:.875rem;font-weight:600}.form-group input,.form-group textarea{border:1.5px solid var(--border);color:var(--text-heading);background:var(--bg);resize:vertical;border-radius:8px;padding:10px 14px;font-family:inherit;font-size:.95rem;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary);background:var(--surface);outline:none}.auth-footer{text-align:center;color:var(--text-muted);margin-top:20px;font-size:.9rem}.error-box{color:var(--danger);background:#faf0ec;border:1px solid #fecaca;border-radius:8px;padding:10px 14px;font-size:.875rem}.success-box{color:#4e7563;background:#edf2ec;border:1px solid #d2e0d6;border-radius:8px;padding:10px 14px;font-size:.875rem}.auth-forgot-row{justify-content:flex-end;margin-top:6px;display:flex}.auth-forgot-link{color:var(--text-muted);font-size:.85rem;text-decoration:none}.auth-forgot-link:hover{color:var(--primary);text-decoration:underline}.auth-hint{color:var(--text-muted);text-align:center;margin-top:12px;font-size:.85rem}.page{max-width:1100px;margin:0 auto;padding:32px 24px}.dash-hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;padding:4px 0 0;display:flex}.dash-hero-eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--text-muted);margin-bottom:8px;font-size:11px;font-weight:500}.dash-hero-greeting{letter-spacing:-.02em;color:var(--text-heading);font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:600;line-height:1.05}.dash-hero-sub{color:var(--text-muted);max-width:520px;margin-top:8px;font-size:1rem;line-height:1.6}.dash-hero-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:10px;padding-bottom:4px;display:flex}.dash-hero-role{background:var(--soft);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:7px 16px;font-size:.85rem;font-weight:600;display:inline-flex}.dash-hero-cta{background:var(--primary);transition:transform .15s var(--ease), box-shadow .2s var(--ease), filter .2s ease;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;gap:8px;max-width:320px;padding:11px 22px;font-size:.9rem;font-weight:600;display:inline-flex;overflow:hidden;box-shadow:0 4px 16px -6px #e3702b66;color:#fff!important;text-decoration:none!important}.dash-hero-cta:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 8px 24px -6px #e3702b73}.dash-stats{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px;display:grid}.dash-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);transition:box-shadow .2s var(--ease), transform .2s var(--ease);flex-direction:column;padding:20px;display:flex}.dash-stat:hover{transform:translateY(-1px);box-shadow:0 8px 28px -8px #00000014}.dash-stat-icon{background:var(--soft);width:36px;height:36px;color:var(--primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;margin-bottom:14px;display:inline-flex}.dash-stat-body{min-width:0}.dash-stat-val{letter-spacing:-.01em;color:var(--text-heading);font-family:Cormorant Garamond,Georgia,serif;font-size:2rem;font-weight:600;line-height:1}.dash-stat-lbl{color:var(--text-muted);margin-top:5px;font-size:.8rem}@media (width<=900px){.dash-stats{grid-template-columns:repeat(2,1fr)}.dash-hero{flex-direction:column;align-items:flex-start}.dash-hero-actions{align-items:flex-start;width:100%}}.dash-section{margin-bottom:28px}.dash-section-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.dash-section-head h2{color:var(--text-heading);letter-spacing:-.01em;font-size:1.1rem;font-weight:600}.dash-section-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:3px;font-size:10px;font-weight:500}.hero{background:linear-gradient(135deg,var(--primary) 0%,var(--primary) 100%);border-radius:var(--radius);color:#fff;justify-content:space-between;align-items:center;margin-bottom:24px;padding:32px 40px;display:flex}.hero-text h1{margin-bottom:6px;font-size:1.75rem;font-weight:700}.hero-text p{opacity:.85;font-size:1rem}.hero-badge{background:#fff3;border-radius:20px;padding:8px 18px;font-size:.95rem;font-weight:600}.stats-row{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:32px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:4px;padding:20px 24px;display:flex}.stat-number{color:var(--primary);font-size:2rem;font-weight:700}.stat-label{color:var(--text-muted);font-size:.875rem}.section{margin-bottom:32px}.section-header{align-items:center;gap:12px;margin-bottom:20px;display:flex}.section-header h2{color:var(--text-heading);font-size:1.35rem;font-weight:700}.badge-coming-soon{color:#a87623;background:#f4e8d2;border-radius:20px;padding:3px 10px;font-size:.75rem;font-weight:600}.courses-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.course-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);transition:box-shadow .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);height:100%;box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:20px;display:flex}.course-card-link:hover .course-card,.course-card:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 8px 28px -8px #00000014}.card-enrolled{border-color:var(--primary)}.course-card-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.course-card-title{color:var(--text-heading);margin:0;font-size:1rem;font-weight:600}.course-card-footer{gap:8px;width:100%;margin-top:auto;display:flex}.course-card-footer>*{text-align:center;flex:1 1 0;justify-content:center;min-width:0}.course-card-cta{color:var(--primary);margin-top:auto;font-size:.85rem;font-weight:500}.level-badge{white-space:nowrap;border-radius:20px;width:fit-content;padding:2px 9px;font-size:.72rem;font-weight:600}.level-beginner{color:#4e6b5e;background:#e1e8e2}.level-intermediate{color:#8f641e;background:#f4e8d2}.level-advanced{color:#9d174d;background:#fce7f3}.pub-badge{white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:.7rem;font-weight:600}.pub-yes{color:#395546;background:#e1e8e2}.pub-no{color:#854d0e;background:#fef9c3}.course-category{color:var(--primary);background:var(--primary-light);border-radius:20px;width:fit-content;padding:2px 9px;font-size:.72rem;font-weight:600}.course-card h3{color:var(--text-heading);flex:1;font-size:1rem;font-weight:600}.course-meta{color:var(--text-muted);gap:16px;font-size:.8rem;display:flex}.profile-hint{background:var(--primary-light);color:var(--primary);border-radius:8px;align-items:center;gap:10px;padding:14px 20px;font-size:.9rem;display:flex}.profile-page{grid-template-columns:280px 1fr;align-items:start;gap:32px;display:grid}.profile-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);padding:32px 24px}.avatar-circle{background:linear-gradient(135deg, var(--primary), var(--primary));border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;margin:0 auto 16px;display:flex;overflow:hidden}.avatar-img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.avatar-initials{color:#fff;font-size:2rem;font-weight:700}.profile-sidebar h2{color:var(--text-heading);font-size:1.2rem;font-weight:700}.profile-email{color:var(--text-muted);margin-top:4px;font-size:.875rem}.role-badge{background:var(--primary-light);color:var(--primary);border-radius:20px;margin-top:12px;padding:4px 14px;font-size:.8rem;font-weight:700;display:inline-block}.profile-since{color:var(--text-muted);margin-top:16px;font-size:.8rem}.profile-form-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px}.profile-form-section h2{color:var(--text-heading);margin-bottom:24px;font-size:1.35rem;font-weight:700}.spinner-center{justify-content:center;align-items:center;height:calc(100vh - 64px);display:flex}.spinner{border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.course-card-link{color:inherit;text-decoration:none;display:block}.course-card-link:hover .course-card{border-color:var(--primary);box-shadow:0 4px 20px #e3702b26}.course-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:.875rem;display:-webkit-box;overflow:hidden}.course-footer{margin-top:auto;padding-top:8px}.btn-outline-sm{color:var(--primary);font-size:.8rem;font-weight:600}.empty-state{color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:center;gap:8px;padding:48px;font-size:1rem;display:flex}.empty-state span{font-size:2.5rem}.course-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:32px;display:flex}.course-header h1{color:var(--text-heading);margin:8px 0;font-size:2rem;font-weight:700}.course-description{color:var(--text-muted);max-width:640px;font-size:1rem}.course-meta-row{align-items:center;gap:12px;margin-top:12px;display:flex}.status-badge{border-radius:20px;padding:4px 12px;font-size:.8rem;font-weight:600}.status-badge.published{color:#4e7563;background:#edf2ec}.status-badge.draft{color:#a87623;background:#fefce8}.course-actions{flex-shrink:0;gap:8px;display:flex}.back-link{color:var(--text-muted);font-size:.875rem}.modules-list h2{color:var(--text-heading);margin-bottom:16px;font-size:1.35rem;font-weight:700}.module-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:8px;overflow:hidden}.module-header{cursor:pointer;width:100%;color:var(--text-heading);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:16px 20px;font-size:1rem;font-weight:600;transition:background .15s;display:flex}.module-header:hover{background:var(--bg)}.module-toggle{color:var(--text-muted);font-size:.8rem}.lessons-list{border-top:1px solid var(--border)}.lesson-item{color:var(--text);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 20px 12px 32px;font-size:.9rem;text-decoration:none;transition:background .15s;display:flex}.lesson-item:last-child{border-bottom:none}.lesson-item:hover:not(.muted){background:var(--primary-light);color:var(--primary)}.lesson-item.muted{color:var(--text-muted);cursor:default;font-style:italic}.lesson-duration{color:var(--text-muted);white-space:nowrap;font-size:.8rem}.lesson-page .lesson-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:16px;padding:40px}.lesson-header{align-items:center;gap:12px;margin-bottom:8px;display:flex}.lesson-type-badge{background:var(--primary-light);color:var(--primary);border-radius:20px;padding:4px 12px;font-size:.8rem;font-weight:600}.lesson-page h1{color:var(--text-heading);margin-bottom:24px;font-size:1.75rem;font-weight:700}.video-wrapper{border-radius:8px;margin-bottom:24px;overflow:hidden}.markdown-content{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:24px;font-size:.95rem;line-height:1.8}.progress-bar-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:24px;padding:16px 20px}.progress-bar-label{color:var(--text-muted);justify-content:space-between;margin-bottom:8px;font-size:.875rem;font-weight:600;display:flex}.progress-bar-track{background:var(--line);border-radius:999px;height:10px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--primary), var(--primary));border-radius:999px;height:100%;transition:width .4s}.enrolled-card{border-left:3px solid var(--primary)}.mini-progress{margin-top:12px}.mini-progress-track{background:var(--line);border-radius:999px;height:6px;margin-bottom:4px;overflow:hidden}.mini-progress-fill{background:linear-gradient(90deg, var(--primary), var(--primary));border-radius:999px;height:100%;transition:width .4s}.mini-progress-label{color:var(--text-muted);font-size:.78rem}.lesson-item.completed{color:var(--success)}.lesson-item.completed span{opacity:.7;text-decoration:line-through}.lesson-complete-section{margin-top:24px}.btn-success{background:var(--success);color:#fff;cursor:default;border:none;border-radius:8px;padding:10px 24px;font-size:.95rem;font-weight:600}.lesson-assessments{border-top:1px solid var(--border);margin-top:32px;padding-top:24px}.lesson-assessments h3{color:var(--text-heading);margin-bottom:16px;font-size:1.1rem;font-weight:700}.assessment-links{flex-wrap:wrap;gap:16px;display:flex}.assessment-card{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:200px;color:var(--text);flex:1;align-items:center;gap:16px;padding:16px 20px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.assessment-card:hover{border-color:var(--primary);box-shadow:var(--shadow);text-decoration:none}.challenge-card:hover{border-color:var(--primary)}.assessment-icon{font-size:2rem}.assessment-title{color:var(--text-heading);font-size:1rem;font-weight:700}.assessment-desc{color:var(--text-muted);margin-top:2px;font-size:.85rem}.quiz-page{max-width:780px}.quiz-title{color:var(--text-heading);margin-bottom:4px;font-size:1.8rem;font-weight:800}.quiz-meta{color:var(--text-muted);margin-bottom:28px;font-size:.9rem}.questions-list{flex-direction:column;gap:20px;display:flex}.question-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.question-header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.question-num{color:var(--text-muted);font-size:.85rem;font-weight:700}.question-type-badge{background:var(--primary-light);color:var(--primary);border-radius:20px;padding:2px 10px;font-size:.75rem;font-weight:600}.question-text{color:var(--text-heading);margin-bottom:16px;font-size:1rem;font-weight:500}.options-list{flex-direction:column;gap:8px;display:flex}.option-btn{border:2px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text);text-align:left;border-radius:8px;align-items:center;gap:12px;padding:12px 16px;font-size:.95rem;transition:border-color .12s,background .12s;display:flex}.option-btn:hover{border-color:var(--primary);background:var(--primary-light)}.option-btn.selected{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:600}.option-indicator{min-width:18px;color:var(--primary);font-size:1rem}.text-answer-input{border:2px solid var(--border);border-radius:8px;width:100%;padding:12px 14px;font-family:inherit;font-size:.95rem;transition:border-color .12s}.text-answer-input:focus{border-color:var(--primary);outline:none}.quiz-actions{justify-content:center;margin-top:28px;display:flex}.btn-lg{padding:14px 40px;font-size:1rem}.catalog-filters{flex-wrap:wrap;gap:12px;margin-bottom:20px;display:flex}.catalog-search{border:1.5px solid var(--border);background:var(--surface);min-width:200px;color:var(--text);border-radius:8px;flex:1;padding:9px 14px;font-family:inherit;font-size:.9rem;transition:border-color .15s,background .35s,color .35s}.catalog-level-filter{width:160px}.markdown-content h1{color:var(--text-heading);margin:1em 0 .5em;font-size:1.5rem;font-weight:700}.markdown-content h2{color:var(--text-heading);margin:1em 0 .4em;font-size:1.2rem;font-weight:700}.markdown-content h3{color:var(--text-heading);margin:.8em 0 .4em;font-size:1rem;font-weight:700}.markdown-content p{margin-bottom:.8em;line-height:1.7}.markdown-content li{margin-bottom:.3em;line-height:1.6}.markdown-content code{background:var(--soft);border-radius:4px;padding:2px 6px;font-family:Cascadia Code,Fira Code,Courier New,monospace;font-size:.85em}.markdown-content pre{background:var(--ink-bg);color:var(--line);border-radius:8px;margin-bottom:.8em;padding:16px;overflow-x:auto}.markdown-content pre code{background:0 0;padding:0;font-size:.85rem}.markdown-content blockquote{border-left:4px solid var(--primary);color:var(--text-muted);margin:.8em 0;padding-left:16px;font-style:italic}.markdown-content strong{color:var(--text-heading);font-weight:700}.markdown-content hr{border:none;border-top:1px solid var(--border);margin:1.2em 0}.quiz-result-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);max-width:500px;margin:0 auto;padding:48px}.result-icon{border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 20px;font-size:2.2rem;font-weight:900;display:flex}.result-icon.pass{color:var(--success);background:#e1e8e2}.result-icon.fail{color:var(--danger);background:#f7e3dc}.quiz-result-card h2{color:var(--text-heading);margin-bottom:24px;font-size:1.5rem;font-weight:800}.score-circle{margin-bottom:28px}.score-number{color:var(--primary);font-size:3rem;font-weight:900;display:block}.score-label{color:var(--text-muted);font-size:.9rem}.quiz-breakdown{text-align:left;flex-direction:column;gap:10px;margin-top:24px;display:flex}.qr-item{border:1.5px solid var(--border);border-radius:10px;padding:14px 16px}.qr-item.correct{background:#edf2ec;border-color:#a9cdb8}.qr-item.wrong{background:#faf0ec;border-color:#e8a18d}.qr-header{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.qr-indicator{font-size:1rem;font-weight:800}.qr-item.correct .qr-indicator{color:var(--success)}.qr-item.wrong .qr-indicator{color:var(--danger)}.qr-num{color:var(--text-muted);white-space:nowrap;padding-top:2px;font-size:.78rem;font-weight:700}.qr-text{color:var(--text-heading);flex:1;font-size:.875rem;font-weight:500}.qr-details{flex-direction:column;gap:6px;margin-top:10px;padding-left:26px;display:flex}.qr-correct,.qr-selected{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.qr-label{color:var(--text-muted);white-space:nowrap;font-size:.75rem;font-weight:700}.qr-answer{border-radius:20px;padding:3px 10px;font-size:.8rem;font-weight:500}.correct-answer{color:#43654f;background:#e1e8e2}.wrong-answer{color:#9e3a26;background:#f7e3dc}.challenge-page{max-width:900px}.challenge-header{margin-bottom:20px}.challenge-header h1{color:var(--text-heading);margin-bottom:8px;font-size:1.8rem;font-weight:800}.challenge-meta{flex-wrap:wrap;gap:10px;display:flex}.lang-badge,.limit-badge{background:var(--primary-light);color:var(--primary);border-radius:20px;padding:4px 14px;font-size:.8rem;font-weight:600}.limit-badge{background:var(--soft);color:var(--text-muted)}.challenge-description{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:20px;font-size:.95rem;line-height:1.7}.test-cases-section{margin-bottom:24px}.test-cases-section h3{color:var(--text-heading);margin-bottom:12px;font-size:1rem;font-weight:700}.test-case{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:8px;padding:12px 16px;display:flex}.tc-num{color:var(--text-muted);font-size:.85rem;font-weight:700}.tc-row{font-size:.875rem}.tc-row code{background:var(--soft);border-radius:4px;padding:2px 8px;font-size:.85rem}.tc-pts{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:.8rem}.code-editor-section{margin-bottom:20px}.editor-toolbar{color:#a3a098;border-radius:var(--radius) var(--radius) 0 0;background:#26241f;justify-content:space-between;align-items:center;padding:8px 16px;font-size:.85rem;display:flex}.editor-label{font-weight:600}.editor-toolbar .btn-sm{color:var(--line);cursor:pointer;background:#3a372f;border:none;border-radius:6px;padding:4px 12px;font-size:.8rem}.editor-toolbar .btn-sm:hover{background:#475569}.code-editor{background:var(--ink-bg);width:100%;color:var(--line);border-radius:0 0 var(--radius) var(--radius);resize:vertical;tab-size:4;border:none;padding:16px;font-family:Cascadia Code,Fira Code,Courier New,monospace;font-size:.9rem;line-height:1.6}.code-editor:focus{outline:none}.challenge-actions{justify-content:flex-start;margin-bottom:24px;display:flex}.submission-result{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.result-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.result-header h3{color:var(--text-heading);font-size:1.1rem;font-weight:700}.score-badge{border-radius:20px;padding:4px 16px;font-size:1rem;font-weight:700}.score-badge.pass{color:var(--success);background:#e1e8e2}.score-badge.fail{color:var(--danger);background:#f7e3dc}.tc-results{flex-direction:column;gap:8px;display:flex}.tc-result{border-radius:8px;padding:10px 14px;font-size:.9rem;font-weight:600}.tc-result.pass{color:#43654f;background:#e1e8e2}.tc-result.fail{color:#9e3a26;background:#f7e3dc}.actual-output{margin-top:6px;font-size:.85rem;font-weight:400}.actual-output code{background:#0000001a;border-radius:4px;padding:2px 8px}.muted{color:var(--text-muted);font-size:.9rem}.landing{overflow-x:hidden}.navbar-landing{background:0 0;border-bottom-color:#ffffff1f;width:100%;position:absolute}.navbar-landing .navbar-brand{color:#fff}.navbar-landing .navbar-brand-text,.navbar-auth .navbar-brand-text{-webkit-text-fill-color:#fff;color:#fff;background:0 0}.navbar-landing .navbar-brand-icon,.navbar-auth .navbar-brand-icon{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:none;background:#ffffff2e;border:1px solid #ffffff40}.navbar-auth{z-index:10;background:0 0;border-bottom:none;width:100%;position:absolute}.navbar-auth .theme-toggle{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff14;border-color:#ffffff40}.navbar-auth .theme-toggle .theme-toggle-icon{color:#ffffffe6}.navbar-landing-link{color:#ffffffe6!important}.navbar-landing-link:hover{color:#fff!important}.landing-hero{background:linear-gradient(135deg, #8a4216 0%, var(--primary) 40%, var(--primary) 100%);flex-wrap:wrap;justify-content:center;align-items:center;gap:60px;min-height:100vh;padding:100px 40px 80px;display:flex;position:relative;overflow:hidden}.landing-hero:before{content:"";pointer-events:none;background:radial-gradient(at 20% 80%,#e3702b66 0%,#0000 50%),radial-gradient(at 80% 20%,#e3702b4d 0%,#0000 50%);position:absolute;inset:0}.landing-hero:after{content:"";background:linear-gradient(to bottom, transparent 0%, var(--surface) 100%);pointer-events:none;z-index:0;height:160px;position:absolute;bottom:0;left:0;right:0}.landing-hero-content{z-index:1;max-width:560px;position:relative}.landing-badge{color:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff26;border:1px solid #ffffff40;border-radius:999px;margin-bottom:24px;padding:6px 16px;font-size:.85rem;font-weight:600;display:inline-block}.landing-h1{color:#fff;letter-spacing:-.02em;margin-bottom:24px;font-size:clamp(2.6rem,6vw,4rem);font-weight:900;line-height:1.1}.landing-h1-accent{background:linear-gradient(90deg,#a5f3fc,#c4b5fd);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.landing-subtitle{color:#fffc;max-width:480px;margin-bottom:40px;font-size:1.1rem;line-height:1.7}.landing-cta{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.landing-social-proof{color:#ffffffd9;align-items:center;gap:14px;margin-top:28px;font-size:.9rem;display:flex}.lsp-avatars{display:inline-flex}.lsp-avatars span{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff2e;border:2px solid #ffffffb3;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin-left:-8px;font-size:.95rem;display:inline-flex}.lsp-avatars span:first-child{margin-left:0}.lsp-text strong{color:#fde68a;letter-spacing:.04em;font-weight:700}.landing-btn-primary{background:#fff;border-radius:12px;padding:14px 32px;font-size:1rem;font-weight:700;transition:transform .15s,box-shadow .15s;display:inline-block;box-shadow:0 4px 20px #0003;color:var(--primary)!important;text-decoration:none!important}.landing-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #00000040}.landing-btn-ghost{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1f;border:1.5px solid #ffffff4d;border-radius:12px;padding:14px 28px;font-size:1rem;font-weight:600;transition:background .15s,border-color .15s;display:inline-block;color:#fffffff2!important;text-decoration:none!important}.landing-btn-ghost:hover{background:#fff3;border-color:#ffffff80}.landing-hero-visual{z-index:1;flex-shrink:0;width:380px;height:440px;position:relative}.hero-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff7;border-radius:16px;padding:18px 20px;position:absolute;box-shadow:0 20px 60px #00000040}.hero-card-1{width:320px;animation:4s ease-in-out infinite float1;top:0;left:0}.hc-header{align-items:center;gap:6px;margin-bottom:12px;display:flex}.hc-dot{border-radius:50%;width:10px;height:10px}.hc-dot.red{background:#ff5f57}.hc-dot.yellow{background:#ffbd2e}.hc-dot.green{background:#28ca41}.hc-title{color:#a3a098;margin-left:4px;font-family:monospace;font-size:.75rem}.hc-code{color:#26241f;background:var(--soft);white-space:pre;border-radius:8px;margin-bottom:10px;padding:12px;font-family:Cascadia Code,Fira Code,Courier New,monospace;font-size:.72rem;line-height:1.6}.hc-result{color:#4e7563;background:#edf2ec;border-radius:6px;padding:6px 10px;font-size:.75rem;font-weight:700}.hero-card-2{width:240px;animation:4.5s ease-in-out infinite float2;bottom:40px;right:0}.hc-quiz-title{color:var(--text-muted);margin-bottom:8px;font-size:.72rem;font-weight:700}.hc-quiz-q{color:var(--ink-bg);margin-bottom:10px;font-size:.8rem;font-weight:600;line-height:1.4}.hc-opt{color:#3a372f;border:1.5px solid var(--line);border-radius:6px;margin-bottom:6px;padding:6px 10px;font-size:.75rem}.hc-opt.selected{border-color:var(--primary);color:var(--primary);background:#fbe9dc;font-weight:600}.hc-progress-bar{background:var(--line);border-radius:999px;height:4px;margin:10px 0 4px;overflow:hidden}.hc-progress-fill{background:var(--primary);border-radius:999px;height:100%}.hc-progress-label{color:#a3a098;font-size:.7rem}.hero-card-3{width:200px;animation:5s ease-in-out infinite float3;top:120px;right:20px}.hc-course-title{color:var(--ink-bg);margin-bottom:10px;font-size:.8rem;font-weight:700}.hc-lessons{flex-direction:column;gap:5px;margin-bottom:10px;display:flex}.hc-lesson{color:var(--text-muted);border-radius:4px;padding:4px 6px;font-size:.72rem}.hc-lesson.done{color:#4e7563}.hc-lesson.active{color:var(--primary);background:#fbe9dc;font-weight:700}.hc-course-bar{background:var(--line);border-radius:999px;height:5px;margin-bottom:4px;overflow:hidden}.hc-course-bar div{background:linear-gradient(90deg, var(--primary), var(--primary));border-radius:999px;height:100%}.hc-course-pct{color:#a3a098;font-size:.7rem}@keyframes float1{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes float2{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}@keyframes float3{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.landing-section{background:#fff;padding:96px 40px}.landing-section-alt{background:var(--bg-alt);border-top:1px solid var(--border)}[data-theme=dark] .landing-section{background:var(--surface)}[data-theme=dark] .landing-section-alt{background:var(--bg-alt)}.landing-container{max-width:1100px;margin:0 auto}.landing-section-head{text-align:center;margin-bottom:56px}.landing-section-head h2{color:var(--text-heading);letter-spacing:-.02em;margin-bottom:12px;font-size:clamp(1.75rem,3.5vw,2.4rem);font-weight:800}.landing-section-head p{color:var(--text-muted);font-size:1.05rem}.features-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:24px;display:grid}.feature-card{background:var(--bg);border:1px solid var(--border);border-radius:16px;padding:28px 24px;transition:box-shadow .2s,transform .2s,border-color .2s}.feature-card:hover{border-color:var(--primary);transform:translateY(-4px);box-shadow:0 8px 30px #e3702b1f}.feature-icon-wrap{border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:18px;display:inline-flex;box-shadow:0 8px 20px -8px}.feature-icon{font-size:1.7rem;line-height:1}.feature-card h3{color:var(--text-heading);margin-bottom:8px;font-size:1.05rem;font-weight:700}.feature-card p{color:var(--text-muted);font-size:.9rem;line-height:1.6}.feature-from-indigo .feature-icon-wrap{background:linear-gradient(135deg, var(--primary), var(--primary));color:var(--primary)}.feature-from-pink .feature-icon-wrap{color:#ec4899;background:linear-gradient(135deg,#ec4899,#f43f5e)}.feature-from-cyan .feature-icon-wrap{color:#06b6d4;background:linear-gradient(135deg,#06b6d4,#3b82f6)}.feature-from-emerald .feature-icon-wrap{color:#10b981;background:linear-gradient(135deg,#10b981,#14b8a6)}.feature-from-amber .feature-icon-wrap{color:#c28b2d;background:linear-gradient(135deg,#c28b2d,#f97316)}.feature-from-fuchsia .feature-icon-wrap{color:#d946ef;background:linear-gradient(135deg,#d946ef,#a855f7)}.section-eyebrow{background:var(--primary-light);color:var(--primary);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;margin-bottom:16px;padding:4px 12px;font-size:.8rem;font-weight:700;display:inline-block}.steps-row{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:8px;display:flex}.step-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:16px;flex:1;min-width:220px;max-width:300px;padding:32px 24px;position:relative}.step-num{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:16px;font-size:1.1rem;font-weight:800;display:inline-flex}.step-card h3{color:var(--text-heading);margin-bottom:8px;font-size:1rem;font-weight:700}.step-card p{color:var(--text-muted);font-size:.875rem;line-height:1.6}.step-arrow{color:var(--border);z-index:1;font-size:1.5rem;position:absolute;top:50%;right:-20px;transform:translateY(-50%)}.landing-footer{background:#0b1224;padding:24px 40px}[data-theme=dark] .landing-footer{background:#060b18}.landing-footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.landing-brand{color:#fff;font-size:1.1rem;font-weight:700}.landing-footer-copy{color:var(--text-muted);font-size:.82rem}@media (width<=900px){.landing-hero{padding:100px 24px 60px}.landing-hero-visual,.step-arrow{display:none}.steps-row{flex-direction:column;align-items:center}.step-card{width:100%;max-width:100%}}@media (width<=560px){.landing-social-proof{flex-direction:column;align-items:flex-start;gap:10px}}.edit-course-page{max-width:860px}.edit-course-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.edit-course-actions{gap:8px;display:flex}.btn{cursor:pointer;box-sizing:border-box;white-space:nowrap;border:none;border-radius:12px;justify-content:center;align-items:center;width:auto;padding:8px 18px;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px #0000000f,0 8px 20px #e3702b38}.btn.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 1px 2px #0000000f,0 12px 28px #e3702b4d}.btn.btn-ghost{color:var(--text-muted);border:1px solid var(--border);background:0 0}.btn.btn-ghost:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn.btn-danger{background:var(--danger);color:#fff;border:none}.btn.btn-danger:hover:not(:disabled){background:#b5432c}.btn.btn-success{color:#fff;background:#4e7563;border:none}.btn.btn-success:hover:not(:disabled){background:#43654f}.btn.btn-sm{padding:6px 14px;font-size:.82rem}.btn.btn-sm-action{padding:7px 16px;font-size:.875rem}.btn.btn-lg{padding:13px 32px;font-size:1rem}.btn.btn-block{width:100%;padding:12px;font-size:1rem}.edit-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;padding:24px}.edit-section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.edit-section-header h2{color:var(--text-heading);font-size:1.15rem;font-weight:700}.btn-icon{cursor:pointer;color:var(--primary);background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:.875rem;font-weight:600;transition:background .15s}.btn-icon:hover{background:var(--primary-light)}.btn-icon-sm{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:.85rem;transition:all .15s}.btn-icon-sm:hover{color:var(--primary);background:var(--primary-light)}.btn-icon-sm.danger:hover{color:var(--danger);background:#f7e3dc}.edit-form{flex-direction:column;gap:14px;display:flex}.form-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.form-input{border:1.5px solid var(--border);color:var(--text);background:var(--surface);border-radius:8px;width:100%;padding:9px 12px;font-family:inherit;font-size:.9rem;transition:border-color .15s,background .15s}.form-input:focus{border-color:var(--primary);background:var(--surface);outline:none}.form-select{appearance:none;cursor:pointer}.form-row-2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-row-3{grid-template-columns:1fr 1fr 1fr;gap:14px;display:grid}.inline-actions{gap:8px;margin-top:4px;display:flex}.btn-sm-action{padding:7px 16px;font-size:.875rem}.course-meta-preview{flex-direction:column;gap:8px;display:flex}.meta-row{color:var(--text);flex-wrap:wrap;align-items:center;gap:8px;font-size:.9rem;display:flex}.meta-key{color:var(--text-muted);min-width:80px;font-size:.8rem;font-weight:600}.empty-hint{text-align:center;color:var(--text-muted);background:var(--bg);border-radius:8px;padding:20px;font-size:.9rem}.edit-module{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin-bottom:10px;overflow:hidden}.edit-module-header{background:var(--soft);justify-content:space-between;align-items:center;padding:4px 4px 4px 0;display:flex}.module-toggle-btn{cursor:pointer;color:var(--text-heading);text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:10px;padding:12px 16px;font-size:.95rem;font-weight:600;display:flex}.toggle-arrow{color:var(--text-muted);font-size:.75rem}.mod-title{flex:1}.mod-actions{gap:4px;padding-right:8px;display:flex}.inline-input{border:1.5px solid var(--primary);color:var(--text-heading);background:var(--surface);border-radius:6px;flex:1;padding:4px 10px;font-size:.95rem;font-weight:600}.edit-lessons{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding:8px;display:flex}.edit-lesson{background:var(--bg);border:1px solid var(--border);border-radius:8px;overflow:hidden}.lesson-row{justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.lesson-row-info{flex-wrap:wrap;flex:1;align-items:center;gap:10px;display:flex}.lesson-type-icon{font-size:1rem}.lesson-row-title{color:var(--text-heading);font-size:.9rem;font-weight:500}.lesson-row-dur{color:var(--text-muted);font-size:.78rem}.lesson-row-actions{flex-shrink:0;gap:4px;display:flex}.lesson-assess-badges{gap:6px;display:flex}.assess-badge{white-space:nowrap;border-radius:20px;padding:2px 10px;font-size:.75rem;font-weight:600}.assess-badge.has{color:#4e7563;background:#edf2ec}.assess-badge.add{background:var(--primary-light);color:var(--primary);text-decoration:none;transition:background .15s}.assess-badge.add:hover{background:var(--primary-light);text-decoration:none}.assess-badge-del{cursor:pointer;color:var(--danger);background:#f7e3dc;border:none;border-radius:20px;padding:3px 8px;font-size:.75rem;font-weight:600;transition:background .15s}.assess-badge-del:hover{background:#e8a18d}.lesson-edit-form{flex-direction:column;gap:12px;padding:14px;display:flex}.add-lesson-btn,.add-mod-btn{border:2px dashed var(--border);width:100%;color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;border-radius:8px;padding:10px;font-size:.875rem;transition:all .15s;display:block}.add-lesson-btn:hover,.add-mod-btn:hover{border-color:var(--primary);color:var(--primary)}.add-mod-btn{margin-top:10px}.add-lesson-form,.add-mod-form{background:var(--bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:12px;padding:14px;display:flex}.add-content-block{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;padding:16px;display:flex}.add-content-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.82rem;font-weight:600}.content-type-picker{flex-wrap:wrap;gap:10px;display:flex}.content-type-btn{background:var(--bg);border:1.5px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:4px;min-width:80px;padding:12px 20px;transition:border-color .15s,background .15s,transform .15s;display:flex}.content-type-btn:hover{border-color:var(--primary);background:var(--primary-light,#fbe9dc);transform:translateY(-2px)}.ct-icon{font-size:1.4rem;line-height:1}.ct-label{color:var(--text-muted);font-size:.78rem;font-weight:600}.content-type-btn:hover .ct-label{color:var(--primary)}.cancel-add-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:.85rem}.cancel-add-btn:hover{color:var(--text)}.add-type-header{align-items:center;gap:10px;margin-bottom:4px;display:flex}.back-type-btn{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem}.back-type-btn:hover{text-decoration:underline}.add-type-label{font-size:.95rem;font-weight:600}.add-content-hint{color:var(--text-muted);font-size:.82rem;font-style:italic}.quiz-builder-page{max-width:860px}.page-title{letter-spacing:-.02em;color:var(--text-heading);margin-bottom:24px;font-family:Cormorant Garamond,Georgia,serif;font-size:2.4rem;font-weight:600;line-height:1.05}.question-builder{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:20px}.qb-header{align-items:center;gap:10px;margin-bottom:14px;display:flex}.qb-num{color:var(--text-muted);font-size:.875rem;font-weight:700}.qb-type-select{flex-shrink:0;width:auto}.options-builder{flex-direction:column;gap:8px;display:flex}.option-builder-row{align-items:center;gap:10px;display:flex}.opt-radio{cursor:pointer;flex-shrink:0;width:16px;height:16px}.opt-text{flex:1}.add-option-btn{border:1px dashed var(--border);color:var(--primary);cursor:pointer;background:0 0;border-radius:8px;margin-top:4px;padding:8px 16px;font-size:.875rem;font-weight:600;transition:all .15s}.add-option-btn:hover{border-color:var(--primary);background:var(--primary-light)}.add-question-btn{border:2px dashed var(--border);border-radius:var(--radius);width:100%;color:var(--primary);cursor:pointer;background:0 0;margin-bottom:16px;padding:12px;font-size:.9rem;font-weight:600;transition:all .15s;display:block}.add-question-btn:hover{border-color:var(--primary);background:var(--primary-light)}.form-actions{justify-content:flex-start;display:flex}.challenge-builder-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}.cb-section-header{border-bottom:1px solid var(--border);background:var(--soft);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.cb-section-title{color:var(--text-heading);font-size:.95rem;font-weight:700}.cb-section-hint{color:var(--text-muted);font-size:.8rem}.challenge-builder-section .editor-toolbar,.challenge-builder-section .code-editor{border-radius:0}.tc-builder{border-bottom:1px solid var(--border);padding:16px 20px}.tc-builder:last-of-type{border-bottom:none}.tc-builder-header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.tc-builder-num{color:var(--text-muted);font-size:.85rem;font-weight:700}.tc-hidden-label{color:var(--text-muted);cursor:pointer;align-items:center;gap:6px;font-size:.85rem;display:flex}.tc-points-group{align-items:center;gap:6px;margin:0;display:flex}.tc-pts-label{color:var(--text-muted);font-size:.85rem}.tc-io{font-family:Cascadia Code,Fira Code,Courier New,monospace;font-size:.85rem}.challenge-builder-section .add-option-btn{margin:12px 20px 16px}.navbar-brand-group{align-items:center;gap:10px;display:flex}.theme-toggle{border:1.5px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;padding:4px 8px;font-size:.95rem;line-height:1;transition:border-color .2s,background .2s}.theme-toggle:hover{border-color:var(--primary);background:var(--hover)}.theme-toggle-icon{color:var(--text-muted);justify-content:center;align-items:center;transition:transform .4s,color .2s;display:flex}.theme-toggle:hover .theme-toggle-icon{color:var(--text)}.theme-toggle:active .theme-toggle-icon{transform:rotate(25deg)}.navbar-links .teacher-link{background:var(--primary);border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:.85rem;display:flex;color:#fff!important}.navbar-links .teacher-link:hover{background:var(--primary-hover);text-decoration:none!important}.lesson-nav-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.lesson-prev-next{align-items:center;gap:10px;display:flex}.btn-pn{background:var(--surface);border:1.5px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;padding:6px 14px;font-size:.875rem;font-weight:600;transition:all .15s}.btn-pn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn-pn:disabled{opacity:.35;cursor:not-allowed}.lesson-counter{color:var(--text-muted);font-size:.85rem}.btn-outline-next{border:1.5px solid var(--primary);color:var(--primary);cursor:pointer;background:0 0;border-radius:8px;padding:10px 20px;font-size:.9rem;font-weight:600;transition:all .15s}.btn-outline-next:hover{background:var(--primary);color:#fff}.admin-page{max-width:900px}.admin-table-wrap{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);overflow-x:auto}.admin-table{border-collapse:collapse;background:var(--surface);width:100%;font-size:.9rem}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--soft);border-bottom:1px solid var(--border);padding:12px 16px;font-size:.78rem;font-weight:700}.admin-table td{border-bottom:1px solid var(--border);padding:12px 16px}.admin-table tr:last-child td{border-bottom:none}.admin-table-self{background:var(--primary-light)}.admin-table-self td{font-weight:500}.role-chip{text-transform:uppercase;border-radius:20px;padding:3px 10px;font-size:.75rem;font-weight:700}.role-chip.role-student{background:var(--soft);color:var(--text-muted)}.role-chip.role-teacher{color:#a87623;background:#f4e8d2}.role-chip.role-admin{color:var(--danger);background:#f7e3dc}.admin-role-select{width:auto;padding:4px 8px;font-size:.85rem}.calendar-page{flex-direction:column;max-width:100%;height:calc(100vh - 132px);padding:20px 24px 0;display:flex;overflow:hidden}.cal-topbar{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.cal-nav{align-items:center;gap:8px;display:flex}.cal-week-label{text-align:center;min-width:220px;font-size:.95rem;font-weight:600}.cal-content-area{flex-direction:column;flex:1;gap:20px;min-height:0;padding-bottom:24px;display:flex;overflow-y:auto}.cal-grid-wrap{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.cal-day-header{border-left:1px solid var(--border);background:0 0;flex-direction:column;flex:1;align-items:center;padding:10px 4px;display:flex}.cal-day-header.cal-today{background:var(--primary-light)}.cal-day-name{color:var(--text-muted);text-transform:uppercase;font-size:.75rem;font-weight:600}.cal-day-num{color:var(--text);font-size:1.3rem;font-weight:700;line-height:1}.cal-today .cal-day-num{color:var(--primary)}.cal-drop-over{outline:2px dashed var(--primary);outline-offset:-2px;background:var(--primary-light)!important}.cal-event{cursor:grab;border-left:3px solid #0000;border-radius:6px;margin-bottom:3px;padding:4px 6px;font-size:.78rem;transition:opacity .15s}.cal-event:active{cursor:grabbing}.cal-event-dragging{opacity:.35}.cal-event.status-scheduled{background:#e0f2fe;border-left-color:#0ea5e9}.cal-event.status-completed{background:#d1fae5;border-left-color:#10b981}.cal-event.status-cancelled{background:var(--soft);opacity:.6;border-left-color:#a3a098}.cal-event-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.cal-event-meta{color:var(--text-muted);font-size:.72rem}.cal-event-status{color:var(--text-muted);align-items:center;gap:4px;margin-top:2px;font-size:.7rem;display:flex}.ses-status-dot{border-radius:50%;width:6px;height:6px;display:inline-block}.ses-status-dot.status-scheduled{background:#0ea5e9}.ses-status-dot.status-completed{background:#10b981}.ses-status-dot.status-cancelled{background:#a3a098}.cal-quick-done{cursor:pointer;color:#10b981;background:0 0;border:none;margin-left:auto;padding:0 2px;font-size:.85rem}.cal-quick-done:hover{transform:scale(1.2)}.cal-loading{text-align:center;color:var(--text-muted);padding:16px;font-size:.875rem}[data-theme=dark] .cal-drop-over{outline-color:var(--primary);background:var(--primary-light)!important}[data-theme=dark] .cal-event.status-scheduled{background:#0ea5e926;border-left-color:#38bdf8}[data-theme=dark] .cal-event.status-scheduled .cal-event-title{color:#e0f2fe}[data-theme=dark] .cal-event.status-completed{background:#10b98121;border-left-color:#34d399}[data-theme=dark] .cal-event.status-completed .cal-event-title{color:#d1fae5}[data-theme=dark] .cal-event.status-cancelled{background:#a3a09814;border-left-color:#475569}[data-theme=dark] .ses-status-dot.status-scheduled{background:#38bdf8}[data-theme=dark] .ses-status-dot.status-completed{background:#34d399}[data-theme=dark] .students-table th{background:var(--ink-bg)}.lookup-row{gap:8px;display:flex}.lookup-row .form-input{flex:1}.add-mode-tabs{background:var(--bg);border:1px solid var(--border);border-radius:10px;gap:6px;margin-bottom:18px;padding:4px;display:flex}.add-mode-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:7px;flex:1;padding:8px 12px;font-size:.88rem;font-weight:500;transition:background .15s,color .15s}.add-mode-tab:hover{background:var(--surface);color:var(--text)}.add-mode-tab.active{background:var(--primary);color:#fff}.add-mode-hint{color:var(--text-muted);margin-bottom:14px;font-size:.85rem;line-height:1.5}.student-email{color:var(--text-muted);font-size:.85rem}.students-table-wrap{border-radius:var(--radius);border:1px solid var(--border);overflow-x:auto}.students-table{border-collapse:collapse;background:var(--surface);width:100%;font-size:.9rem}.students-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--soft);border-bottom:1px solid var(--border);padding:10px 14px;font-size:.75rem;font-weight:700}.students-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 14px}.students-table tr:last-child td{border-bottom:none}.student-name{color:var(--text);font-weight:600}.student-contacts{color:var(--text-muted);flex-direction:column;gap:2px;font-size:.82rem;display:flex}.price-cell{color:var(--primary);white-space:nowrap;font-weight:600}.notes-cell{text-overflow:ellipsis;white-space:nowrap;max-width:200px;color:var(--text-muted);font-size:.85rem;overflow:hidden}.row-actions{justify-content:flex-end;gap:6px;display:flex}.format-chip{border-radius:20px;padding:3px 10px;font-size:.75rem;font-weight:600}.format-chip.format-individual{color:#0369a1;background:#e0f2fe}.format-chip.format-group{color:#a87623;background:#f4e8d2}.format-chip.format-online{color:#047857;background:#d1fae5}.format-chip.format-offline{background:var(--soft);color:var(--text-muted)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a99;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border-radius:16px;width:100%;max-width:520px;max-height:90vh;padding:28px;overflow-y:auto;box-shadow:0 25px 80px #00000059}.modal-title{margin-bottom:20px;font-size:1.2rem;font-weight:700}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.session-modal{border:1px solid var(--border);max-width:560px;padding:0;overflow:hidden}.sm-header{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#e3702b14 0%,#e3702b0f 100%);align-items:flex-start;gap:16px;padding:24px 28px 20px;display:flex;position:relative}.sm-header-icon{background:linear-gradient(135deg, var(--primary) 0%, var(--primary) 100%);width:48px;height:48px;box-shadow:0 6px 18px -6px var(--primary);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.4rem;display:inline-flex}.sm-header-text{flex:1;min-width:0;padding-top:4px}.sm-title{letter-spacing:-.01em;color:var(--text-heading);margin:0 0 4px;font-size:1.25rem;font-weight:800}.sm-subtitle{color:var(--text-muted);margin:0;font-size:.88rem}.sm-close{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;font-size:1rem;transition:background .15s,color .15s;position:absolute;top:18px;right:20px}.sm-close:hover{background:var(--bg);color:var(--text-heading)}.sm-body{flex-direction:column;gap:14px;padding:22px 28px;display:flex}.sm-body .form-label{text-transform:none;letter-spacing:0;color:var(--text);align-items:center;gap:6px;font-size:.875rem;font-weight:600;display:inline-flex}.sm-label-ico{opacity:.9;font-size:.95rem}.sm-unit{color:var(--text-muted);font-size:.8rem;font-weight:500}.sm-req{color:var(--danger);margin-left:2px}.sm-divider{background:var(--border);height:1px;margin:6px 0}.sm-footer{background:var(--bg);border-top:1px solid var(--border);align-items:center;gap:10px;padding:18px 28px;display:flex}.sm-delete{margin-right:auto}.sm-save{min-width:160px;box-shadow:0 6px 18px -8px var(--primary);font-weight:600}.sm-save:hover:not(:disabled){box-shadow:0 10px 22px -8px var(--primary)}@media (width<=560px){.sm-header{gap:12px;padding:20px 20px 16px}.sm-header-icon{width:40px;height:40px;font-size:1.2rem}.sm-body{padding:18px 20px}.sm-footer{flex-wrap:wrap;padding:14px 20px}.sm-save{order:3;width:100%}.sm-delete{order:4;width:100%;margin-right:0}}.upcoming-sessions{flex-direction:column;gap:8px;display:flex}.upcoming-session-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:background .2s var(--ease), border-color .2s var(--ease);align-items:center;gap:16px;padding:14px 18px;display:flex}.upcoming-session-card:hover{background:var(--soft);border-color:#0000}.usc-date{background:var(--primary-light);border-radius:10px;flex-direction:column;align-items:center;min-width:46px;padding:8px 6px;display:flex}.usc-day{color:var(--primary);font-family:Cormorant Garamond,Georgia,serif;font-size:1.5rem;font-weight:600;line-height:1}.usc-month{color:var(--primary);text-transform:uppercase;font-size:.68rem;font-weight:600}.usc-time{color:var(--text-muted);margin-top:2px;font-size:.72rem}.usc-body{flex:1;min-width:0}.usc-title{color:var(--text);margin-bottom:2px;font-size:.95rem;font-weight:600}.usc-meta{color:var(--text-muted);font-size:.8rem}.usc-status-badge{border-radius:20px;margin-top:5px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-block}.usc-status-badge.done{color:#4e7563;background:#5e8a7426}.usc-status-badge.cancelled{color:#b5432c;background:#c94f351f}.upcoming-session-card.usc-done{opacity:.75}.upcoming-session-card.usc-cancelled{opacity:.55}.usc-actions{flex-direction:column;flex-shrink:0;gap:5px;display:flex}.usc-action-btn{border:1.5px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--text-muted);background:0 0;border-radius:8px;justify-content:center;align-items:center;font-size:.85rem;transition:color .15s,background .15s,border-color .15s;display:flex}.usc-action-btn:hover{border-color:currentColor}.usc-action-btn.complete:hover{color:#4e7563;background:#5e8a741a}.usc-action-btn.complete.active{color:#fff;background:#5e8a74;border-color:#5e8a74}.usc-action-btn.reschedule:hover{color:var(--primary);background:var(--primary-light)}.usc-action-btn.cancel:hover{color:#b5432c;background:#c94f351a}.usc-action-btn.cancel.active{color:#fff;background:#c94f35;border-color:#c94f35}.dashboard-with-sidebar{grid-template-columns:1fr 300px;align-items:start;gap:28px;display:grid}.dash-main{min-width:0}.dash-cal-sidebar{position:sticky;top:80px}@media (width<=900px){.dashboard-with-sidebar{grid-template-columns:1fr}.dash-cal-sidebar{position:static}}.mini-cal-widget{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.mini-cal-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.mini-cal-month-label{color:var(--text-heading);font-size:.9rem;font-weight:700}.mini-cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.mini-cal-dayname{text-align:center;color:var(--text-muted);text-transform:uppercase;padding:4px 0 8px;font-size:.65rem;font-weight:600}.mini-cal-day{aspect-ratio:1;cursor:pointer;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;transition:background .12s;display:flex}.mini-cal-day:hover{background:var(--hover)}.mini-cal-day-num{color:var(--text);font-size:.82rem;line-height:1}.mini-cal-day.other-month .mini-cal-day-num{color:var(--text-muted);opacity:.35}.mini-cal-day.today{background:var(--primary-light)}.mini-cal-day.today .mini-cal-day-num{color:var(--primary);font-weight:700}.mini-cal-day.selected{background:var(--primary)}.mini-cal-day.selected .mini-cal-day-num{color:#fff;font-weight:700}.mini-cal-dot{background:var(--primary);border-radius:50%;width:4px;height:4px;margin-top:2px}.mini-cal-day.selected .mini-cal-dot{background:#ffffffbf}.mini-cal-day.other-month .mini-cal-dot{opacity:.3}.mini-cal-sessions{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;display:flex}.mini-cal-session-item{background:var(--bg);border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:.8rem;display:flex}.mini-cal-session-time{color:var(--primary);min-width:38px;font-weight:700}.mini-cal-session-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.mini-cal-session-student{color:var(--text-muted);white-space:nowrap;font-size:.75rem}.mini-cal-empty{border-top:1px solid var(--border);color:var(--text-muted);text-align:center;margin-top:12px;padding-top:10px;font-size:.82rem}.page-topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:24px;display:flex}.course-complete-banner{border-radius:var(--radius);background:linear-gradient(135deg,#d1fae5 0%,#a7f3d0 100%);border:1.5px solid #6ee7b7;align-items:center;gap:16px;margin-bottom:24px;padding:20px 24px;display:flex}.ccb-icon{font-size:2.5rem;line-height:1}.ccb-title{color:#065f46;margin-bottom:2px;font-size:1.1rem;font-weight:700}.ccb-sub{color:#047857;font-size:.875rem}.profile-stats{grid-template-columns:1fr 1fr;gap:10px;width:100%;margin-top:16px;display:grid}.profile-stat{background:var(--bg);border:1px solid var(--border);border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:12px 10px;display:flex}.profile-stat-value{color:var(--primary);font-size:1.4rem;font-weight:700}.profile-stat-label{color:var(--text-muted);text-align:center;font-size:.72rem}.task-bank-layout{grid-template-columns:220px 1fr;align-items:start;gap:24px;margin-top:20px;display:grid}@keyframes slideInLeft{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:translate(0)}}.task-types-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:5px;padding:10px 8px;display:flex;position:sticky;top:80px}.task-types-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:2px 6px 8px;font-size:.7rem;font-weight:800}.task-type-item{text-align:left;background:var(--bg);border:1.5px solid var(--border);cursor:pointer;width:100%;color:var(--text);animation:.35s both slideInLeft;animation-delay:calc(var(--i,0) * 30ms);border-radius:9px;align-items:center;gap:8px;padding:8px 10px;font-size:.8rem;line-height:1.3;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s,border-color .18s,background .18s,color .18s;display:flex;position:relative;overflow:hidden}.task-type-item:before{content:"";background:var(--primary);opacity:0;border-radius:9px 0 0 9px;width:3px;transition:opacity .18s;position:absolute;top:0;bottom:0;left:0}.task-type-item:hover{border-color:var(--primary);background:var(--surface);color:var(--primary);transform:translateY(-2px)translate(2px);box-shadow:0 4px 16px #e3702b26}.task-type-item:hover:before{opacity:1}.task-type-item.active{background:linear-gradient(135deg, var(--primary) 0%, var(--primary) 100%);border-color:var(--primary);color:#fff;font-weight:600;transform:translate(3px);box-shadow:0 4px 20px #e3702b59}.task-type-item.active:before{opacity:0}.task-type-item.active .ttype-num{color:#ffffffbf}.task-type-item:active{transform:scale(.97)}.ttype-num{min-width:24px;color:var(--primary);background:var(--primary-light,#fbe9dc);text-align:center;border-radius:4px;flex-shrink:0;padding:1px 4px;font-size:.72rem;font-weight:800;transition:color .18s,background .18s}.task-type-item.active .ttype-num{color:#fff;background:#fff3}.task-type-item:hover:not(.active) .ttype-num{background:#e3702b26}.ttype-name{color:inherit;flex:1}.ttype-all-icon{flex-shrink:0;font-size:.9rem;transition:transform .2s}.task-type-item:hover .ttype-all-icon{transform:rotate(20deg)scale(1.2)}.task-list-area{min-width:0}.task-filters{gap:10px;margin-bottom:16px;display:flex}.catalog-search{border:1.5px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;flex:1;padding:8px 14px;font-size:.9rem}.catalog-search:focus{border-color:var(--primary);outline:none}.catalog-level-filter{min-width:140px}.task-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);flex-direction:column;gap:8px;padding:16px;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:flex}.task-card:hover{border-color:var(--primary);box-shadow:0 2px 12px #e3702b1f}.task-card-header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.task-type-badge{background:var(--primary-light,#fbe9dc);color:var(--primary);border-radius:20px;padding:2px 8px;font-size:.75rem;font-weight:600}.task-card-title{font-size:.92rem;font-weight:600;line-height:1.4}.task-card-meta{flex-wrap:wrap;gap:8px;display:flex}.task-meta-tag{color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-size:.75rem}.diff-badge{border-radius:20px;padding:2px 8px;font-size:.72rem;font-weight:700}.diff-easy{color:#4e7563;background:#e1e8e2}.diff-medium{color:#8f641e;background:#fef9c3}.diff-hard{color:#b5432c;background:#f7e3dc}.task-bank-sidebar-filters{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:8px 10px;display:flex}.task-bank-sidebar-search{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);box-sizing:border-box;border-radius:6px;padding:6px 10px;font-size:.82rem}.task-bank-sidebar-search:focus{border-color:var(--primary);outline:none}.task-bank-sidebar-diff{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:6px;padding:5px 8px;font-size:.82rem}.task-bank-type-num{color:var(--primary);background:var(--primary-light,#fbe9dc);border-radius:4px;flex-shrink:0;margin-right:4px;padding:0 4px;font-size:.68rem;font-weight:700}.task-bank-type-loading,.task-bank-type-empty{color:var(--text-muted);padding:8px 16px;font-size:.8rem;font-style:italic}.task-diff-dot{background:0 0!important;font-size:.55rem!important}.task-diff-dot.diff-easy{color:#4e7563}.task-diff-dot.diff-medium{color:#8f641e}.task-diff-dot.diff-hard{color:#b5432c}.task-solve-page{max-width:800px}.task-solve-header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.back-link{color:var(--text-muted);font-size:.875rem;text-decoration:none}.back-link:hover{color:var(--primary)}.task-solve-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.task-topic-label{color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-size:.8rem}.task-solve-title{margin-bottom:16px;font-size:1.3rem;font-weight:700}.task-content-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:24px}.markdown-content{font-size:.95rem;line-height:1.7}.markdown-content p{margin:0 0 12px}.markdown-content ul,.markdown-content ol{margin-bottom:12px;padding-left:20px}.markdown-content code{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-family:monospace;font-size:.88em}.markdown-content pre{background:var(--bg);border:1px solid var(--border);border-radius:8px;margin-bottom:12px;padding:16px;overflow-x:auto}.markdown-content pre code{background:0 0;border:none;padding:0}.task-files-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.task-file-link{border:1px solid var(--primary);color:var(--primary);border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s;display:inline-flex}.task-file-link:hover{background:var(--primary);color:#fff}.task-answer-section{flex-direction:column;gap:12px;display:flex}.task-answer-row{gap:10px;display:flex}.task-answer-input{flex:1}.task-help-row{flex-wrap:wrap;gap:10px;display:flex}.task-help-btn{border:1.5px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:6px 14px;font-size:.875rem;transition:border-color .15s}.task-help-btn:hover{border-color:var(--primary);color:var(--primary)}.task-hint-box{background:#fefce8;border:1.5px solid #fde047;border-radius:10px;padding:14px 18px}.task-hint-box p{margin:6px 0 0;font-size:.9rem}.task-solution-box{background:var(--surface);border:1.5px solid var(--border);border-radius:10px;padding:16px 20px}.task-result-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:12px;padding:24px;display:flex}.result-correct{background:#edf2ec;border-color:#a9cdb8}.result-wrong{background:#fff5f5;border-color:#e8a18d}.result-icon{font-size:2rem}.result-title{font-size:1.1rem;font-weight:700}.result-answer{color:var(--text-muted);margin-top:4px;font-size:.9rem}.result-actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.recs-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:28px;padding:20px}.recs-title{margin-bottom:12px;font-weight:700}.recs-list{flex-direction:column;gap:8px;display:flex}.rec-card{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;flex-direction:column;gap:2px;padding:10px 14px;text-decoration:none;transition:border-color .15s;display:flex}.rec-card:hover{border-color:var(--primary)}.rec-type{color:var(--text-muted);font-size:.75rem}.rec-title{font-size:.9rem;font-weight:600}.task-editor-form{flex-direction:column;gap:18px;margin-top:16px;display:flex}.task-content-area{resize:vertical;min-height:180px;font-family:monospace;font-size:.88rem}.form-hint{color:var(--text-muted);font-size:.78rem;font-weight:400}.form-check-row{align-items:center;display:flex}.form-check-label{cursor:pointer;align-items:center;gap:8px;font-size:.9rem;display:flex}.form-check-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}.form-error{color:#b5432c;background:#f7e3dc;border:1px solid #e8a18d;border-radius:8px;padding:10px 14px;font-size:.875rem}.form-actions{justify-content:flex-end;gap:10px;display:flex}.variants-list{flex-direction:column;gap:12px;display:flex}.variant-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.variant-card-info{flex:1;min-width:0}.variant-card-title{margin-bottom:4px;font-size:1rem;font-weight:600}.variant-card-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.82rem;display:flex}.variant-score{color:#4e7563;font-weight:600}.variant-in-progress{color:var(--primary);font-weight:600}.variant-solve-page{max-width:1100px}.variant-header{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:20px;display:flex}.variant-title{flex:1;font-size:1.2rem;font-weight:700}.variant-progress-label{color:var(--text-muted);white-space:nowrap;font-size:.875rem}.variant-layout{grid-template-columns:200px 1fr;align-items:start;gap:24px;display:grid}.variant-nav{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;position:sticky;top:80px}.variant-nav-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:12px;font-size:.75rem;font-weight:700}.variant-nav-grid{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.variant-nav-btn{aspect-ratio:1;border:1.5px solid var(--border);cursor:pointer;color:var(--text-muted);background:0 0;border-radius:6px;font-size:.8rem;font-weight:600;transition:all .15s}.variant-nav-btn:hover{border-color:var(--primary);color:var(--primary)}.variant-nav-btn.answered{color:#4e7563;background:#e1e8e2;border-color:#a9cdb8}.variant-nav-btn.active,.variant-nav-btn.active.answered{background:var(--primary);border-color:var(--primary);color:#fff}.variant-task-area{min-width:0}.variant-task-meta{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.variant-task-title{margin-bottom:14px;font-size:1.1rem;font-weight:700}.variant-task-nav{justify-content:space-between;margin-top:20px;display:flex}.variant-results-header{text-align:center;padding:32px 0 24px}.variant-results-header h1{margin-bottom:16px;font-size:1.3rem;font-weight:700}.variant-score-big{justify-content:center;align-items:baseline;gap:6px;display:flex}.score-number{color:var(--primary);font-size:3rem;font-weight:800}.score-sep{color:var(--text-muted);font-size:2rem}.score-max{color:var(--text-muted);font-size:1.8rem;font-weight:700}.score-pct{color:var(--text-muted);margin-left:4px;font-size:1.1rem}.variant-results-list{flex-direction:column;gap:8px;margin:24px 0;display:flex}.variant-result-row{background:var(--surface);border:1.5px solid var(--border);border-radius:10px;grid-template-columns:140px 1fr auto 48px;align-items:center;gap:12px;padding:12px 16px;display:grid}.row-correct{border-color:#a9cdb8}.row-wrong{border-color:#e8a18d}.vr-num{align-items:center;gap:6px;display:flex}.vr-icon{font-size:1.1rem}.vr-type{color:var(--text-muted);font-size:.8rem;font-weight:600}.vr-title{font-size:.88rem;font-weight:600}.vr-answers{flex-direction:column;gap:2px;font-size:.8rem;display:flex}.vr-your{color:var(--text-muted)}.vr-correct{color:#4e7563;font-weight:600}.vr-score{color:var(--primary);text-align:right;font-size:.9rem;font-weight:700}.variant-results-actions{flex-wrap:wrap;justify-content:center;gap:10px;padding:16px 0 40px;display:flex}.stats-summary-row{grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0;display:grid}.stats-summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:20px 16px}.stats-sum-value{color:var(--primary);margin-bottom:6px;font-size:1.8rem;font-weight:800;line-height:1}.stats-sum-value span{color:var(--text-muted);font-size:1.1rem;font-weight:500}.stats-sum-label{color:var(--text-muted);font-size:.8rem}.stats-layout{grid-template-columns:1fr 280px;align-items:start;gap:24px;display:grid}.stats-main{min-width:0}.stats-type-list{flex-direction:column;gap:6px;display:flex}.stats-type-row{background:var(--surface);border:1px solid var(--border);border-radius:8px;grid-template-columns:36px 1fr 60px 80px;align-items:center;gap:10px;padding:10px 12px;display:grid}.stats-type-num{color:var(--primary);font-size:.8rem;font-weight:700}.stats-type-info{min-width:0}.stats-type-topic{white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:.82rem;font-weight:600;overflow:hidden}.stats-bar-wrap{align-items:center;gap:8px;display:flex}.stats-bar-track{background:var(--bg);border-radius:3px;flex:1;height:6px;overflow:hidden}.stats-bar-fill{border-radius:3px;height:100%;transition:width .4s}.stats-bar-label{text-align:right;min-width:32px;font-size:.75rem;font-weight:700}.stats-type-counts{color:var(--text-muted);text-align:right;font-size:.8rem}.stats-not-started{color:var(--border)}.stats-type-link{color:var(--primary);white-space:nowrap;font-size:.75rem;text-decoration:none}.stats-type-link:hover{text-decoration:underline}.stats-sidebar{position:sticky;top:20px}.stats-recs-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:16px}.stats-recs-title{margin-bottom:12px;font-size:.85rem;font-weight:700}.stats-weak-item{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:6px 0;font-size:.83rem;display:flex}.stats-weak-item:last-child{border-bottom:none}.stats-weak-num{color:var(--primary);min-width:28px;font-weight:700}.stats-weak-name{color:var(--text-muted);flex:1}.stats-weak-rate{font-weight:700}.stats-rec-card{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;flex-direction:column;gap:2px;margin-bottom:8px;padding:10px 12px;text-decoration:none;transition:border-color .15s;display:flex}.stats-rec-card:hover{border-color:var(--primary)}.stats-rec-card:last-child{margin-bottom:0}.stats-rec-type{color:var(--text-muted);font-size:.73rem}.stats-rec-title{font-size:.85rem;font-weight:600;line-height:1.3}.subjects-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:8px;display:grid}.subject-card{background:var(--surface);border:1px solid var(--border);color:inherit;animation:.35s both fadeUp;animation-delay:calc(var(--i,0) * 50ms);border-radius:14px;align-items:center;gap:16px;padding:20px;text-decoration:none;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s,border-color .18s;display:flex;position:relative;overflow:hidden}.subject-card:before{content:"";opacity:0;background:linear-gradient(135deg,#e3702b0f 0%,#0000 60%);transition:opacity .2s;position:absolute;inset:0}.subject-card:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:0 8px 24px #e3702b1f}.subject-card:hover:before{opacity:1}.subject-card-icon{flex-shrink:0;font-size:2.4rem;line-height:1}.subject-card-body{flex:1;min-width:0}.subject-card-name{color:var(--text);font-size:1.05rem;font-weight:700}.subject-card-desc{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:.85rem;overflow:hidden}.subject-card-meta{color:var(--text-muted);margin-top:6px;font-size:.78rem}.subject-card-arrow{color:var(--primary);opacity:0;font-size:1.1rem;transition:opacity .18s,transform .18s}.subject-card:hover .subject-card-arrow{opacity:1;transform:translate(3px)}.admin-form-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:28px;padding:20px 24px}.admin-form-title{margin-bottom:16px;font-size:1rem;font-weight:600}.admin-subjects-list{flex-direction:column;gap:10px;margin-top:8px;display:flex}.admin-subject-row{background:var(--surface);border:1px solid var(--border);animation:.3s both fadeUp;animation-delay:calc(var(--i,0) * 40ms);border-radius:12px;align-items:center;gap:14px;padding:16px 20px;display:flex}.admin-subj-icon{flex-shrink:0;font-size:1.8rem}.admin-subj-info{flex:1;min-width:0}.admin-subj-name{font-size:1rem;font-weight:600}.admin-subj-meta{align-items:center;gap:4px;margin-top:2px;font-size:.82rem;display:flex}.admin-subj-slug{background:var(--surface-2);color:var(--text-muted);border-radius:4px;padding:1px 6px;font-family:monospace;font-size:.8rem}.types-table{flex-direction:column;gap:6px;display:flex}.types-table-head{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:12px;padding:6px 14px;font-size:.78rem;font-weight:600;display:flex}.types-table-row{background:var(--surface);border:1px solid var(--border);border-radius:10px;align-items:center;gap:12px;padding:12px 14px;transition:border-color .15s;display:flex}.types-table-row:hover{border-color:var(--primary)}.types-order-num{width:48px;color:var(--primary);flex-shrink:0;font-size:.85rem;font-weight:700}.types-name{font-size:.95rem;font-weight:600}.types-topic{color:var(--text-muted);margin-top:1px;font-size:.8rem}.types-score{text-align:center;width:60px;color:var(--text-muted);flex-shrink:0;font-weight:600}.types-actions{flex-shrink:0;justify-content:flex-end;gap:6px;width:120px;display:flex}.error-boundary-wrap{justify-content:center;align-items:center;min-height:calc(100vh - 64px);padding:24px;display:flex}.error-boundary-card{background:var(--surface);border:1px solid var(--border);text-align:center;width:100%;max-width:440px;box-shadow:var(--shadow);border-radius:16px;padding:48px 40px}.error-boundary-icon{margin-bottom:16px;font-size:3rem}.error-boundary-title{color:var(--text-heading);margin-bottom:8px;font-size:1.3rem;font-weight:700}.error-boundary-msg{color:var(--text-muted);margin-bottom:24px;font-family:monospace;font-size:.9rem}.player-layout{height:calc(100vh - 132px);display:flex;overflow:hidden}.player-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;width:280px;min-width:280px;display:flex;overflow:hidden}.player-sidebar-head{border-bottom:1px solid var(--border);flex-shrink:0;padding:16px}.player-back{color:var(--text-muted);margin-bottom:8px;font-size:.8rem;text-decoration:none;display:block}.player-back:hover{color:var(--primary)}.player-course-title{color:var(--text);font-size:.9rem;font-weight:600;line-height:1.4}.player-course-title-link{color:var(--text);font-size:.95rem;font-weight:700;line-height:1.4;text-decoration:none;transition:color .15s;display:block}.player-course-title-link:hover{color:var(--primary)}.player-progress{border-bottom:1px solid var(--border);flex-shrink:0;padding:10px 16px}.player-progress-text{color:var(--text-muted);margin-bottom:5px;font-size:.75rem}.player-nav{flex:1;padding:4px 0 16px;overflow-y:auto}.player-nav .player-module:last-child{margin-bottom:4px}.player-empty-nav{color:var(--text-muted);padding:24px 16px;font-size:.875rem}.player-module-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:12px 16px 4px;font-size:.68rem;font-weight:700}.player-module{border:1.5px solid var(--border);background:var(--surface);border-radius:10px;margin:8px 10px 0;overflow:hidden}.player-module-header{cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;padding:11px 14px;font-size:.85rem;font-weight:600;transition:background .12s;display:flex}.player-module-header:hover{background:var(--hover)}.player-module-header.open{background:var(--hover);border-radius:10px 10px 0 0}.pmh-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.pmh-meta{color:var(--text-muted);flex-shrink:0;font-size:.75rem;font-weight:400}.pmh-arrow{color:var(--text-muted);flex-shrink:0;font-size:.65rem}.player-module-lessons{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid}.player-module-lessons.open{grid-template-rows:1fr}.player-module-lessons-inner{border-top:1.5px solid var(--border);min-height:0;overflow:hidden}.player-lesson-btn{cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:none;border-left:3px solid #0000;align-items:center;gap:8px;padding:9px 14px;font-size:.84rem;text-decoration:none;transition:background .12s;display:flex}.player-lesson-btn:hover{background:var(--hover)}.player-lesson-btn:last-child{border-radius:0 0 8px 8px}.player-lesson-btn.active{background:var(--primary-light);border-left-color:var(--primary);color:var(--primary);font-weight:600}.player-lesson-btn.done{color:var(--text-muted)}.player-lesson-btn.done .pli-icon{color:#4e7563;font-weight:700}.pli-icon{text-align:center;flex-shrink:0;width:18px;font-size:.75rem}.pli-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.pli-dur{color:var(--text-muted);flex-shrink:0;font-size:.72rem}.player-main{background:var(--bg);flex:1;min-width:0;overflow-y:auto}.player-content,.player-course-overview{max-width:780px;margin:0 auto;padding:36px 40px 60px}.player-course-overview h1{letter-spacing:-.02em;color:var(--text-heading);font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:600;line-height:1.1}.player-overview-meta{align-items:center;gap:10px;margin-bottom:16px;display:flex}.player-overview-desc{color:var(--text-muted);margin-bottom:28px;font-size:.95rem;line-height:1.7}.player-overview-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:32px;display:flex}.player-complete-banner{background:var(--cool-soft);border:1px solid var(--border);border-radius:var(--radius);color:var(--cool);align-items:center;gap:16px;margin-bottom:24px;padding:20px 24px;display:flex}.player-nav-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-top:40px;padding-top:24px;display:flex}.tag-chip{background:var(--primary-light);color:var(--primary);border:1px solid #e3702b40;border-radius:20px;align-items:center;gap:4px;padding:2px 10px;font-size:.75rem;font-weight:500;display:inline-flex}.tag-chip-sm{padding:1px 7px;font-size:.7rem}.tag-chip-removable{padding-right:4px}.tag-remove{cursor:pointer;color:var(--primary);opacity:.6;background:0 0;border:none;padding:0 2px;font-size:.9rem;line-height:1}.tag-remove:hover{opacity:1}.tag-input-wrap{border:1px solid var(--border);background:var(--bg);cursor:text;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;min-height:42px;padding:6px 10px;transition:border-color .15s;display:flex}.tag-input-wrap:focus-within{border-color:var(--primary)}.tag-input-field{min-width:120px;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:.95rem}.task-card-tags{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.modal-overlay{z-index:2000;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-box{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;width:100%;max-width:680px;max-height:90vh;display:flex}.import-modal{max-width:760px}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-title{color:var(--text-heading);font-size:1.1rem;font-weight:700}.modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0 4px;font-size:1.4rem;line-height:1}.modal-close:hover{color:var(--text)}.modal-footer{border-top:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:16px 24px;display:flex}.import-dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;flex-direction:column;align-items:center;gap:8px;margin:20px 24px 0;padding:32px 24px;transition:border-color .15s,background .15s;display:flex}.import-dropzone:hover,.import-dropzone.dragging{border-color:var(--primary);background:var(--primary-light)}.import-dropzone.has-file{border-color:var(--success);border-style:solid}.import-summary{gap:16px;padding:10px 24px 0;font-size:.875rem;display:flex}.import-ok{color:var(--success);font-weight:600}.import-warn{color:#c28b2d;font-weight:600}.import-preview-wrap{border:1px solid var(--border);border-radius:8px;flex:1;margin:10px 24px 0;overflow-y:auto}.import-table{border-collapse:collapse;width:100%;font-size:.85rem}.import-table th{background:var(--bg);text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:8px 10px;font-size:.75rem;font-weight:600;position:sticky;top:0}.import-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:7px 10px}.import-table tr:last-child td{border-bottom:none}.import-row-err td{background:#c94f350a}.import-title-cell{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.import-format-hint{color:var(--primary);font-size:.8rem}.import-result{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:40px 24px;display:flex}.import-result-icon{font-size:3rem}.import-result h3{font-size:1.2rem;font-weight:700}.import-errors{text-align:left;border:1px solid var(--border);border-radius:8px;width:100%;max-height:200px;margin-top:8px;padding:8px 12px;overflow-y:auto}.import-error-line{color:var(--danger);padding:3px 0;font-family:monospace;font-size:.8rem}.account-switcher{position:relative}.account-switcher-btn{background:var(--hover);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:20px;align-items:center;gap:8px;padding:5px 10px 5px 6px;font-size:.875rem;transition:background .15s;display:flex}.account-switcher-btn:hover{background:var(--primary-light);border-color:var(--primary)}.account-avatar-mini{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:.7rem;font-weight:700;display:flex}.account-email-mini{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.account-avatar-img{-o-object-fit:cover;object-fit:cover;border-radius:50%}.account-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .2s}.account-chevron.open{transform:rotate(180deg)}.account-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:260px;box-shadow:var(--shadow);z-index:1000;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.account-dropdown-section{flex-direction:column;gap:2px;padding:6px;display:flex}.account-dropdown-divider{background:var(--border);height:1px}.account-dropdown-actions{flex-direction:column;gap:2px;padding:6px;display:flex}.account-item{text-align:left;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.account-item-active{background:var(--primary-light)}.account-item-btn{cursor:pointer;width:100%;color:var(--text);background:0 0;border:none}.account-item-btn:hover:not(:disabled){background:var(--hover)}.account-item-btn:disabled{opacity:.6;cursor:default}.account-avatar{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.8rem;font-weight:700;display:flex}.account-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.account-name{color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.account-email{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.account-role{color:var(--primary);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:600}.account-check{color:var(--primary);flex-shrink:0;font-weight:700}.account-remove{border:1px solid var(--border);width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:background .15s,color .15s;display:flex}.account-remove:hover{background:var(--danger);border-color:var(--danger);color:#fff}.account-spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.6s linear infinite spin}.account-action-btn{cursor:pointer;width:100%;color:var(--text);text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:.875rem;transition:background .15s;display:flex}.account-action-btn:hover{background:var(--hover)}.account-action-logout{color:var(--danger)}.account-action-logout:hover{background:#c94f3514}.account-add-form{flex-direction:column;gap:8px;padding:10px 12px 12px;display:flex}.account-add-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.account-add-form input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;width:100%;padding:7px 10px;font-size:.875rem}.account-add-form input:focus{border-color:var(--primary);outline:none}.account-add-error{color:var(--danger);font-size:.8rem}.account-add-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.bank-subject-chips-wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.bank-subject-chips{flex-wrap:wrap;flex:1;gap:6px;display:flex}.bank-subject-chip{border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:7px 14px;font-size:.875rem;font-weight:500;transition:all .13s;display:inline-flex}.bank-subject-chip:hover{border-color:var(--primary);color:var(--primary)}.bank-subject-chip.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.bank-chip-badge{color:inherit;letter-spacing:.02em;background:#00000014;border-radius:6px;padding:1px 5px;font-size:.68rem;font-weight:700}.bank-subject-chip.active .bank-chip-badge{background:#ffffff40}.bank-chip-configure{color:var(--text-muted);border-style:dashed}.bank-chip-configure:hover{border-color:var(--primary);color:var(--primary);border-style:solid}.bank-chip-toggle{background:var(--bg);border:1.5px solid var(--border);border-radius:20px;flex-shrink:0;gap:3px;padding:3px;display:flex}.bank-no-subject{color:var(--text-muted);flex-direction:column;align-items:center;gap:8px;padding:48px 24px;display:flex}.bank-no-subject span{font-size:2rem}.bank-no-subject p{font-size:.95rem}.bank-exam-tabs{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.bank-exam-tab{border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:20px;padding:6px 16px;font-size:.875rem;font-weight:500;transition:all .15s}.bank-exam-tab:hover{border-color:var(--primary);color:var(--primary)}.bank-exam-tab.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.bank-subjects-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.bank-subject-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;width:100%;animation:.3s both fadeInUp;animation-delay:calc(var(--i,0) * 40ms);align-items:center;gap:14px;padding:16px 14px 16px 16px;transition:border-color .15s,box-shadow .15s,transform .12s;display:flex}.bank-subject-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 20px #e3702b1f}.bank-subject-icon{flex-shrink:0;font-size:1.8rem;line-height:1}.bank-subject-body{flex:1;min-width:0}.bank-subject-name{color:var(--text-heading);font-size:.95rem;font-weight:600}.bank-subject-desc{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.8rem;overflow:hidden}.bank-subject-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.bank-subject-meta span{color:var(--text-muted);font-size:.78rem}.bank-subject-arrow{color:var(--text-muted);flex-shrink:0;font-size:1.1rem;transition:transform .15s}.bank-subject-card:hover .bank-subject-arrow{color:var(--primary);transform:translate(3px)}.teacher-subject-row{cursor:pointer;border-radius:8px;align-items:center;gap:10px;margin-bottom:2px;padding:8px 10px;transition:background .13s;display:flex}.teacher-subject-row:hover{background:var(--hover)}.teacher-subject-check{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.teacher-subject-icon{flex-shrink:0;font-size:1.2rem}.teacher-subject-name{color:var(--text-heading);flex:1;font-size:.9rem;font-weight:500}.teacher-subject-count{color:var(--text-muted);flex-shrink:0;font-size:.78rem}.bank-teacher-strip{background:var(--surface);border:1.5px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;padding:8px 12px;display:flex}.bank-teacher-strip-left{align-items:center;gap:4px;display:flex}.bank-teacher-configure{color:var(--primary);background:var(--primary-light);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:5px 12px;font-size:.82rem;font-weight:500;transition:opacity .15s}.bank-teacher-configure:hover{opacity:.8}.bank-filter-bar{background:var(--bg);border:1.5px solid var(--border);border-radius:20px;gap:4px;width:fit-content;margin-bottom:12px;padding:3px;display:flex}.bank-filter-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:16px;padding:4px 16px;font-size:.85rem;font-weight:500;transition:all .13s}.bank-filter-toggle.active{background:var(--surface);color:var(--text-heading);font-weight:600;box-shadow:0 1px 4px #00000014}.exam-badge{background:var(--primary-light);color:var(--primary);letter-spacing:.02em;border-radius:10px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-block}[data-theme=dark] .exam-badge{color:#e89a6e;background:#e881492e}.bank-subject-header{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.bank-type-chips{flex-wrap:wrap;gap:6px;display:flex}.bank-type-chip{border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:16px;padding:5px 13px;font-size:.82rem;font-weight:500;transition:all .13s}.bank-type-chip:hover{border-color:var(--primary);color:var(--primary)}.bank-type-chip.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.bank-proto-btn{width:100%;color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:6px 16px 6px 20px;font-size:.82rem;transition:color .15s,background .15s;display:flex}.bank-proto-btn:before{content:"•";flex-shrink:0;font-size:.6rem}.bank-proto-btn:hover{color:var(--text);background:var(--hover)}.bank-proto-btn.active{color:var(--primary);font-weight:600}.bank-proto-count{color:var(--text-muted);flex-shrink:0;margin-left:auto;font-size:.72rem}.bank-type-active.player-module-header{border-color:var(--primary)}.bank-sidebar-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);opacity:.7;padding:8px 16px 3px 20px;font-size:.68rem;font-weight:600}.bank-tag-btn:before{display:none}.bank-tag-dot{background:var(--primary);opacity:.6;border-radius:50%;flex-shrink:0;width:6px;height:6px}.bank-tag-btn.active .bank-tag-dot{opacity:1}.bank-tag-btn{font-size:.78rem}.bank-tag-btn.active{color:var(--primary);font-weight:600}.bank-task-code{color:var(--primary);background:var(--primary-light,#fbe9dc);letter-spacing:.02em;border-radius:5px;padding:2px 7px;font-family:SF Mono,Fira Code,monospace;font-size:.78rem;font-weight:700}.bank-source-badge{color:var(--primary);background:#ede9fe;border-radius:12px;padding:2px 8px;font-size:.72rem;font-weight:600}[data-theme=dark] .bank-source-badge{color:#c4b5fd;background:#2e1065}.bank-source-chips{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.bank-source-chip{border:1.5px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:14px;padding:3px 12px;font-size:.78rem;font-weight:500;transition:all .13s}.bank-source-chip:hover{border-color:var(--primary);color:var(--primary)}.bank-source-chip.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.bank-source-chip.disabled{opacity:.38;cursor:default}.bank-source-chip.disabled:hover{border-color:var(--border);color:var(--text-muted)}.attempt-badge{vertical-align:middle;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex;position:relative;top:-1px}.attempt-wrong:before{content:"";background:currentColor;border-radius:1px;width:8px;height:2px;display:block}.attempt-correct{color:#43654f;background:#5e8a7426;border:1.5px solid #43654f}.attempt-wrong{color:#475569;background:#64748b26;border:1.5px solid #475569}[data-theme=dark] .attempt-correct{color:#8fb5a0;background:#5e8a7433;border-color:#8fb5a0}[data-theme=dark] .attempt-wrong{color:#a3a098;background:#a3a09826;border-color:#a3a098}.bank-code-search-wrap{align-items:center;margin-bottom:4px;display:inline-flex;position:relative}.bank-code-search{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;outline:none;width:210px;padding:5px 28px 5px 10px;font-size:.82rem;transition:border-color .15s}.bank-code-search:focus{border-color:var(--primary)}.bank-code-search::placeholder{color:var(--text-muted)}.bank-code-search-clear{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0;font-size:1rem;line-height:1;position:absolute;right:6px}.bank-code-search-clear:hover{color:var(--text)}.tag-active-chip{align-items:center;gap:4px;padding-right:6px;display:inline-flex}.tag-active-chip-clear{cursor:pointer;color:#fff;opacity:.8;background:0 0;border:none;padding:0 2px;font-size:1rem;line-height:1}.tag-active-chip-clear:hover{opacity:1}.tag-chip-custom{color:#059669;background:#10b9811f}[data-theme=dark] .tag-chip-custom{color:#34d399;background:#10b9812e}.tag-chip-clickable{cursor:pointer;transition:filter .12s}.tag-chip-clickable:hover{filter:brightness(1.15)}.tag-chip-active{outline:2px solid var(--primary);outline-offset:1px}.tag-chip-edit{gap:4px;padding-right:4px}.tag-chip-remove{cursor:pointer;color:var(--primary);opacity:.7;background:0 0;border:none;padding:0 1px;font-size:.85rem;line-height:1}.tag-chip-remove:hover{opacity:1}.tag-chip-add-wrap{align-items:center;gap:4px;display:inline-flex}.tag-chip-input{border:1px solid var(--primary);background:var(--surface);color:var(--text);border-radius:20px;outline:none;width:120px;padding:2px 10px;font-size:.75rem}.tag-chip-add-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.85rem;display:inline-flex}.tag-chip-add-btn:disabled{opacity:.4;cursor:default}.tag-edit-toggle{border:1px solid var(--border);cursor:pointer;color:var(--text-muted);background:0 0;border-radius:6px;padding:2px 6px;font-size:.75rem;transition:all .12s}.tag-edit-toggle:hover{border-color:var(--primary);color:var(--primary)}.tag-edit-toggle.active{border-color:var(--success);color:var(--success)}.bank-task-feed{padding:24px 28px}.bank-feed-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:18px;display:flex}.bank-feed-list{flex-direction:column;gap:14px;display:flex}.bank-feed-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .2s,box-shadow .2s;overflow:hidden}.bank-feed-card:hover{border-color:var(--primary);box-shadow:0 2px 12px #e3702b1a}.bank-feed-card-top{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;display:flex}.bank-feed-solve-btn{flex-shrink:0}.bank-feed-card-content{padding:14px 16px}.bank-feed-card-content .markdown-content{font-size:.9rem;line-height:1.65}.bank-task-detail{max-width:860px;padding:28px 36px}.bank-task-detail-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.bank-task-detail-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bank-task-title{margin:0 0 16px;font-size:1.15rem;font-weight:700;line-height:1.4}.bank-sidebar-icon-btn{width:28px;height:28px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;font-size:.95rem;text-decoration:none;transition:color .15s,background .15s;display:flex}.bank-sidebar-icon-btn:hover{color:var(--primary);background:var(--hover)}.bank-sidebar-toggle{gap:4px;margin-bottom:2px;display:flex}.bank-sidebar-toggle-btn{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;border-radius:6px;flex:1;padding:4px 8px;font-size:.78rem;font-weight:500;transition:all .13s}.bank-sidebar-toggle-btn.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.bank-main-content{padding:28px 32px}.bank-main-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.cal-drawer-backdrop{z-index:199;opacity:0;pointer-events:none;background:#00000059;transition:opacity .3s;position:fixed;inset:0}.cal-drawer-backdrop.open{opacity:1;pointer-events:auto}.cal-drawer-panel{background:var(--bg);z-index:200;transform-origin:100% 0;opacity:0;pointer-events:none;border-radius:12px 0 0 12px;width:min(92vw,1280px);transition:transform .38s cubic-bezier(.34,1.2,.64,1),opacity .22s;position:fixed;top:64px;bottom:0;right:0;overflow:hidden;transform:scale(.04);box-shadow:-8px 0 48px #00000059}.cal-drawer-panel.open{opacity:1;pointer-events:auto;transform:scale(1)}.cal-drawer-panel .page.calendar-page{height:100%}.cal2-scroll-container{flex:1;min-height:0;overflow-y:auto}.cal2-header{z-index:2;border-bottom:1px solid var(--border);background:var(--bg);display:flex;position:sticky;top:0}.cal2-time-gutter{background:var(--bg);flex-shrink:0;width:56px}.cal2-time-mark{height:56px;color:var(--text-muted);text-align:right;border-top:1px solid var(--border);box-sizing:border-box;padding:4px 6px 0;font-size:.72rem}.cal2-time-mark-end{color:var(--text-muted);text-align:right;border-top:1px solid var(--border);padding:4px 6px 0;font-size:.72rem}.cal2-body{display:flex}.cal2-day-col{border-left:1px solid var(--border);cursor:pointer;background:var(--surface);flex:1;position:relative}.cal2-day-col:hover{background:color-mix(in srgb, var(--primary) 3%, var(--surface))}.cal2-day-col.cal-today{background:color-mix(in srgb, var(--primary) 6%, var(--surface))}.cal2-hour-line{border-top:1px solid var(--border);pointer-events:none;position:absolute;left:0;right:0}.cal2-half-line{border-top:1px dashed var(--border);opacity:.45;pointer-events:none;position:absolute;left:0;right:0}.cal2-drop-line{background:var(--primary);pointer-events:none;z-index:3;height:2px;position:absolute;left:0;right:0}.cal2-drop-time{color:var(--primary);background:var(--surface);border:1px solid var(--primary);pointer-events:none;z-index:4;border-radius:4px;padding:1px 5px;font-size:.68rem;font-weight:700;position:absolute;left:4px}[data-theme=dark] .cal2-scroll-container,[data-theme=dark] .cal2-time-gutter,[data-theme=dark] .cal2-header{background:var(--ink-bg)}[data-theme=dark] .cal2-day-col{background:#26241f}[data-theme=dark] .cal2-day-col:hover{background:#ffffff0a}[data-theme=dark] .cal2-day-col.cal-today{background:#e3702b1f}.cal-todo-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-shrink:0;padding:16px 18px 18px}.cal-todo-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.cal-todo-title{color:var(--text-heading);font-size:.95rem;font-weight:700}.cal-todo-count{color:var(--text-muted);font-size:.78rem}.cal-todo-add{gap:8px;margin-bottom:12px;display:flex}.cal-todo-input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;outline:none;flex:1;padding:7px 12px;font-size:.88rem;transition:border-color .15s}.cal-todo-input:focus{border-color:var(--primary)}.cal-todo-add-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;font-size:1.2rem;transition:opacity .15s;display:flex}.cal-todo-add-btn:disabled{opacity:.35;cursor:default}.cal-todo-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.cal-todo-item{background:var(--bg);border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:6px 8px;transition:opacity .2s;display:flex}.cal-todo-item.done{opacity:.55}.cal-todo-check{border:2px solid var(--border);cursor:pointer;width:20px;height:20px;color:var(--primary);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;transition:border-color .15s,background .15s;display:flex}.cal-todo-item.done .cal-todo-check{background:var(--primary);border-color:var(--primary);color:#fff}.cal-todo-text{color:var(--text);flex:1;font-size:.88rem;text-decoration:none}.cal-todo-item.done .cal-todo-text{color:var(--text-muted);text-decoration:line-through}.cal-todo-del{cursor:pointer;width:22px;height:22px;color:var(--text-muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;transition:color .15s,background .15s;display:flex}.cal-todo-del:hover{color:var(--danger,#c94f35);background:#c94f351a}.player-sidebar-tree{flex:1;padding:8px 12px 20px;overflow-y:auto}.sec-tree{flex-direction:column;gap:2px;display:flex}.sec-branch{flex-direction:column;display:flex}.sec-row{border:1px solid #0000;border-radius:6px;align-items:center;gap:4px;padding:4px 6px;transition:background .15s,border-color .15s,opacity .15s;display:flex;position:relative}.sec-row:hover{background:var(--primary-light)}.sec-row.active{background:var(--primary-light);border-color:var(--primary)}.sec-row.dragging{opacity:.4}.sec-row.drop-inside{background:var(--primary-light);outline:2px dashed var(--primary);outline-offset:-2px}.sec-row.drop-before:before,.sec-row.drop-after:after{content:"";background:var(--primary);pointer-events:none;border-radius:2px;height:3px;position:absolute;left:0;right:0}.sec-row.drop-before:before{top:-2px}.sec-row.drop-after:after{bottom:-2px}.sec-row-root{font-weight:600}.sec-row-toggle{cursor:pointer;width:18px;height:22px;color:var(--text-muted);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;display:flex}.sec-row-toggle:disabled{cursor:default;opacity:.35}.sec-chevron{transition:transform .2s;display:inline-block}.sec-row-toggle.open .sec-chevron{transform:rotate(90deg)}.sec-row-label{text-align:left;cursor:pointer;min-width:0;color:var(--text);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;flex:1;padding:4px;font-size:.9rem;overflow:hidden}.sec-row.active .sec-row-label{color:var(--primary)}.sec-row-actions{flex-shrink:0;gap:2px;display:none}.sec-row:hover .sec-row-actions,.sec-row.active .sec-row-actions{display:flex}.sec-mini-btn{cursor:pointer;width:22px;height:22px;color:var(--text-muted);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:.8rem;display:flex}.sec-mini-btn:hover{background:var(--surface);color:var(--primary)}.sec-mini-btn.danger:hover{color:var(--danger,#c94f35)}.sec-children-wrap{grid-template-rows:0fr;transition:grid-template-rows .22s;display:grid}.sec-children-wrap.open{grid-template-rows:1fr}.sec-children-inner{min-height:0;overflow:hidden}.sec-children{border-left:1px solid var(--border);margin-left:15px;padding-left:8px}.sec-tree-add-root{border:1.5px dashed var(--border);cursor:pointer;color:var(--text-muted);background:0 0;border-radius:8px;margin-top:10px;padding:8px 12px;font-size:.88rem}.sec-tree-add-root:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.sec-tree-dropzone{border-radius:8px;transition:background .15s}.sec-tree-dropzone.hover{background:var(--primary-light);outline:2px dashed var(--primary);outline-offset:-2px}.bn-suggestion-menu{max-height:min(70vh,540px)!important;overflow-y:auto!important}.bn-wrapper .ProseMirror p,.bn-wrapper .ProseMirror li,.bn-wrapper .ProseMirror blockquote,.bn-wrapper .rte-rendered p,.bn-wrapper .rte-rendered li{font-size:var(--bn-editor-font-size,16px)}.bn-fontsize-bar{border-bottom:1px solid var(--border);background:var(--bg,transparent);color:var(--text-muted);border-radius:8px 8px 0 0;align-items:center;gap:6px;margin-bottom:4px;padding:6px 10px;font-size:.85rem;display:flex}.bn-fontsize-label{margin-right:4px}.bn-fontsize-btn{border:1px solid var(--border);cursor:pointer;width:28px;height:28px;color:var(--text);background:0 0;border-radius:6px;justify-content:center;align-items:center;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.bn-fontsize-btn:hover{background:var(--primary-light);border-color:var(--primary)}.bn-fontsize-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.bn-fontsize-btn.bn-fontsize-sm{font-size:.75rem}.bn-fontsize-btn.bn-fontsize-md{font-size:.95rem}.bn-fontsize-btn.bn-fontsize-lg{font-size:1.15rem}.bn-wrapper .bn-block-content:has(>.task-block){width:100%;max-width:100%;display:block}.task-block{border:1px solid var(--border);background:var(--surface);border-radius:10px;width:100%;margin:6px 0;padding:14px 16px}.task-block-loading,.task-block-empty,.task-block-error{color:var(--text-muted);padding:16px;font-style:italic}.task-block-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:10px;padding-bottom:10px;display:flex}.task-block-badge{background:var(--primary-light);min-width:36px;height:24px;color:var(--primary);border-radius:12px;justify-content:center;align-items:center;padding:0 8px;font-size:.82rem;font-weight:700;display:inline-flex}.task-block-title{flex:1;min-width:0;font-weight:600}.task-block-open{color:var(--primary);background:var(--primary-light);white-space:nowrap;border-radius:6px;padding:4px 10px;font-size:.85rem;text-decoration:none}.task-block-content{color:var(--text);font-size:.92rem;line-height:1.6}.task-block-content .markdown-content>:last-child{margin-bottom:0}.task-block-files{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:10px;display:flex}.task-block-file-btn{background:var(--primary-light);color:var(--primary);border:1px solid var(--primary);border-radius:8px;align-items:center;gap:8px;padding:8px 14px;font-size:.88rem;font-weight:600;text-decoration:none;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.task-block-file-btn:hover{background:var(--primary);color:#fff;transform:translateY(-1px);box-shadow:0 4px 10px #e3702b40}.task-block-file-icon{font-size:1rem}.dialog-overlay{z-index:1200;background:#00000080;justify-content:center;align-items:center;padding:20px;animation:.15s dialog-fade;display:flex;position:fixed;inset:0}.dialog-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;padding:18px 20px;animation:.18s dialog-pop;box-shadow:0 20px 60px #0000004d}@keyframes dialog-fade{0%{opacity:0}to{opacity:1}}@keyframes dialog-pop{0%{opacity:0;transform:scale(.96)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.dialog-header{color:var(--text-heading);margin-bottom:14px;font-size:1.05rem;font-weight:700}.dialog-body{flex-direction:column;gap:8px;display:flex}.dialog-message{color:var(--text);line-height:1.5}.dialog-footer{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.bn-wrapper .bn-block-content:has(>.quiz-card){width:100%;max-width:100%;display:block}.quiz-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;gap:10px;width:100%;margin:6px 0;padding:12px 14px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.quiz-card:hover{border-color:color-mix(in srgb, var(--primary) 40%, var(--border))}.quiz-card-empty{color:var(--text-muted);padding:16px;font-style:italic}.bn-block-outer:has(>.bn-block>.react-renderer>.bn-block-content>.quiz-card)+.bn-block-outer:has(>.bn-block>.react-renderer>.bn-block-content>.quiz-card){margin-top:-1px}.bn-block-outer:has(>.bn-block>.react-renderer>.bn-block-content>.quiz-card)+.bn-block-outer:has(>.bn-block>.react-renderer>.bn-block-content>.quiz-card) .bn-block-content{padding-top:0}.bn-block-outer:has(>.bn-block>.react-renderer>.bn-block-content>.quiz-card)+.bn-block-outer:has(>.bn-block>.react-renderer>.bn-block-content>.quiz-card) .quiz-card{border-top-left-radius:0;border-top-right-radius:0;margin-top:0}.bn-block-outer:has(>.bn-block>.react-renderer>.bn-block-content>.quiz-card):has(+.bn-block-outer>.bn-block>.react-renderer>.bn-block-content>.quiz-card) .bn-block-content{padding-bottom:0}.bn-block-outer:has(>.bn-block>.react-renderer>.bn-block-content>.quiz-card):has(+.bn-block-outer>.bn-block>.react-renderer>.bn-block-content>.quiz-card) .quiz-card{border-bottom-right-radius:0;border-bottom-left-radius:0;margin-bottom:0}.quiz-card-head{border-bottom:1px dashed var(--border);align-items:center;gap:8px;padding-bottom:8px;display:flex}.quiz-card-emoji{font-size:1rem;line-height:1}.quiz-card-title-input{min-width:0;color:var(--text);background:0 0;border:none;border-radius:6px;outline:none;flex:1;padding:2px 4px;font-size:.92rem;font-weight:600;transition:background .12s}.quiz-card-title-input::placeholder{color:var(--text-muted);font-weight:600}.quiz-card-title-input:hover{background:color-mix(in srgb, var(--primary) 6%, transparent)}.quiz-card-title-input:focus{background:color-mix(in srgb, var(--primary) 10%, transparent)}.quiz-card-head-reader{border-bottom-style:solid}.quiz-card-title-text{color:var(--text);font-size:.92rem;font-weight:600}.quiz-card-question{resize:vertical;width:100%;min-height:56px;color:var(--text);background:0 0;border:1px solid #0000;border-radius:8px;padding:6px 8px;font-family:inherit;font-size:.95rem;line-height:1.5;transition:border-color .12s,background .12s}.quiz-card-question::placeholder{color:var(--text-muted)}.quiz-card-question:hover{background:color-mix(in srgb, var(--primary) 4%, transparent)}.quiz-card-question:focus{border-color:color-mix(in srgb, var(--primary) 50%, var(--border));background:color-mix(in srgb, var(--primary) 6%, transparent);outline:none}.quiz-card-row{flex-direction:column;gap:8px;display:flex}.quiz-card-field{background:color-mix(in srgb, var(--primary) 5%, transparent);border:1px solid var(--border);border-radius:8px;align-items:center;gap:6px;padding:4px 8px;transition:border-color .12s,background .12s;display:flex}.quiz-card-field:focus-within{border-color:color-mix(in srgb, var(--primary) 50%, var(--border));background:color-mix(in srgb, var(--primary) 10%, transparent)}.quiz-card-field-icon{color:var(--primary);flex-shrink:0;font-size:.85rem;font-weight:700}.quiz-card-input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:2px 0;font-size:.9rem}.quiz-card-input::placeholder{color:var(--text-muted)}.quiz-card-field-multiline{align-items:flex-start;padding-top:6px;padding-bottom:6px}.quiz-card-field-multiline .quiz-card-field-icon{margin-top:2px}.quiz-card-textarea{resize:none;white-space:pre-wrap;tab-size:4;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;line-height:1.45;overflow:hidden}.quiz-card-foot{justify-content:flex-start;display:flex}.quiz-card-files-toggle{color:var(--text-muted);border:1px dashed var(--border);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:6px;padding:4px 10px;font-size:.82rem;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.quiz-card-files-toggle:hover{background:color-mix(in srgb, var(--primary) 6%, transparent);color:var(--primary);border-color:color-mix(in srgb, var(--primary) 40%, var(--border))}.quiz-card-caret{opacity:.7;font-size:.7rem}.quiz-card-files{background:color-mix(in srgb, var(--primary) 4%, transparent);border:1px dashed var(--border);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.quiz-card-files-list{flex-direction:column;gap:4px;display:flex}.quiz-card-file-row{background:var(--surface);border:1px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;padding:4px 8px;font-size:.85rem;display:flex}.quiz-card-file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.quiz-card-file-remove{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0 4px;font-size:.85rem}.quiz-card-file-remove:hover{color:#b5432c}.quiz-card-file-thumb{-o-object-fit:contain;object-fit:contain;border-radius:4px;max-width:100%;max-height:120px;margin-bottom:4px;display:block}.quiz-card-paste-hint{color:var(--text-muted);margin-top:6px;font-size:.75rem}.quiz-card-question-text{color:var(--text);white-space:pre-wrap;word-break:break-word;font-size:1rem;line-height:1.55}.quiz-card-files-readonly{flex-wrap:wrap;gap:8px;display:flex}.quiz-card-file-link{background:var(--primary-light);color:var(--primary);border:1px solid var(--primary);border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .15s,transform .12s;display:inline-flex}.quiz-card-file-link:hover{background:var(--primary);color:#fff;transform:translateY(-1px)}.quiz-card-img{border-radius:6px;max-width:100%;margin-bottom:10px;display:block}.quiz-card-input-row{align-items:center;gap:8px;display:flex}.quiz-card-input-row .quiz-card-input{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex:1;padding:8px 12px}.quiz-card-input-row .quiz-card-input:focus{border-color:var(--primary);outline:none}.quiz-card-feedback{border-radius:8px;padding:8px 12px;font-size:.92rem;font-weight:600}.quiz-card-feedback.ok{color:#4e7563;background:#5e8a741f;border:1px solid #5e8a744d}.quiz-card-feedback.bad{color:#b5432c;background:#c94f351f;border:1px solid #c94f354d}.quiz-card.quiz-correct{border-color:#5e8a7480}.quiz-card.quiz-wrong{border-color:#c94f3580}.quiz-card-correct-hint{background:#5e8a741a;border:1px solid #5e8a7459;border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:6px 8px;padding:8px 12px;font-size:.9rem;display:flex}.quiz-card-correct-hint-label{color:#43654f;flex-shrink:0;font-weight:700}.quiz-card-correct-hint-value{color:var(--text);word-break:break-word;background:#5e8a742e;border-radius:5px;padding:2px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600}[data-theme=dark] .quiz-card-correct-hint-label{color:#8fb5a0}.quiz-card-explanation{background:color-mix(in srgb, var(--primary) 5%, transparent);border:1px solid var(--border);border-left:3px solid var(--primary);color:var(--text);white-space:pre-wrap;word-break:break-word;box-sizing:border-box;border-radius:6px;max-width:100%;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;line-height:1.5;overflow-x:auto}.task-picker-overlay{z-index:1100;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.task-picker{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:12px;width:100%;max-width:880px;max-height:85vh;padding:18px;display:flex;box-shadow:0 20px 60px #0000004d}.task-picker-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding-bottom:10px;display:flex}.task-picker-head h3{color:var(--text-heading);margin:0;font-size:1.1rem}.task-picker-filters{grid-template-columns:1fr 1fr 1.5fr;gap:8px;display:grid}.task-picker-list{flex-direction:column;flex:1;gap:8px;padding-right:4px;display:flex;overflow-y:auto}.task-picker-item{text-align:left;background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;gap:6px;padding:12px 14px;transition:border-color .15s,transform .1s;display:flex}.task-picker-item:hover{border-color:var(--primary);transform:translateY(-1px)}.task-picker-item-head{align-items:center;gap:10px;display:flex}.task-picker-num{background:var(--primary-light);min-width:36px;height:22px;color:var(--primary);border-radius:11px;justify-content:center;align-items:center;padding:0 6px;font-size:.78rem;font-weight:700;display:inline-flex}.task-picker-title{flex:1;font-weight:600}.task-picker-preview{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;line-height:1.45;display:-webkit-box;overflow:hidden}@media (width<=720px){.task-picker-filters{grid-template-columns:1fr}}.bn-wrapper{width:100%;position:relative}.bn-wrapper .bn-container{background:0 0}.bn-editable .bn-container{min-height:400px}.bn-readonly .bn-container{min-height:auto}.bn-readonly .bn-side-menu,.bn-readonly .bn-add-block-button{display:none!important}.bn-wrapper .bn-toolbar.bn-formatting-toolbar{pointer-events:none;gap:6px;padding:6px}.bn-wrapper .bn-toolbar.bn-formatting-toolbar>*{pointer-events:auto}.bn-wrapper .bn-block-content[data-content-type=codeBlock]{box-sizing:border-box;border-radius:12px;max-width:100%;margin:6px 0;position:relative;overflow:hidden;background:#1e1f24!important;flex-direction:column!important;display:flex!important}[data-theme=light] .bn-wrapper .bn-block-content[data-content-type=codeBlock]{border:1px solid var(--border);background:#f4f4f7!important}.bn-wrapper .bn-block-content[data-content-type=codeBlock]>div{box-sizing:border-box;background:#00000047;border-bottom:1px solid #ffffff0f;flex:0 0 34px;align-items:center;width:100%;height:34px;padding:0 8px 0 10px;display:flex}[data-theme=light] .bn-wrapper .bn-block-content[data-content-type=codeBlock]>div{border-bottom:1px solid var(--border);background:#0000000a}.bn-wrapper .bn-block-content[data-content-type=codeBlock]>div>select{appearance:auto;z-index:2;position:relative;opacity:1!important;text-transform:uppercase!important;letter-spacing:.04em!important;color:#c8c3b7!important;cursor:pointer!important;background-color:#0000!important;border:1px solid #0000!important;border-radius:5px!important;outline:none!important;padding:4px 8px!important;font-size:.74rem!important;font-weight:600!important;transition:background-color .15s,border-color .15s!important}.bn-wrapper .bn-block-content[data-content-type=codeBlock]>div>select:hover{background-color:#ffffff1a!important;border-color:#ffffff1f!important}.bn-wrapper .bn-block-content[data-content-type=codeBlock]>div>select:focus{background-color:#ffffff1f!important;border-color:#e8814980!important}[data-theme=light] .bn-wrapper .bn-block-content[data-content-type=codeBlock]>div>select{color:#475569!important}[data-theme=light] .bn-wrapper .bn-block-content[data-content-type=codeBlock]>div>select:hover{background-color:#0000000f!important;border-color:#0000001a!important}.bn-wrapper.bn-readonly .bn-block-content[data-content-type=codeBlock]>div[contenteditable=false]{display:none!important}.bn-wrapper.bn-readonly .bn-block-content[data-content-type=codeBlock][data-language]:before{content:attr(data-language);color:#a3a098;text-transform:uppercase;letter-spacing:.06em;box-sizing:border-box;z-index:1;pointer-events:none;background:#00000059;border-bottom:1px solid #ffffff0f;align-items:center;height:34px;padding:0 14px;font-size:.72rem;font-weight:700;display:flex;position:absolute;top:0;left:0;right:0}[data-theme=light] .bn-wrapper.bn-readonly .bn-block-content[data-content-type=codeBlock][data-language]:before{color:#475569;border-bottom:1px solid var(--border);background:#0000000a}.bn-wrapper.bn-readonly .bn-block-content[data-content-type=codeBlock][data-language]>pre{padding-top:44px!important}.bn-wrapper .bn-block-content[data-content-type=codeBlock]>pre,.bn-wrapper pre{box-sizing:border-box;white-space:pre;word-wrap:normal;width:100%;max-width:100%;font-size:.88rem;line-height:1.55;overflow-x:auto;background:0 0!important;border:none!important;border-radius:0!important;margin:0!important;padding:12px 14px!important}.bn-wrapper.bn-readonly .bn-block-content[data-content-type=codeBlock]>pre{padding:14px!important}.bn-wrapper pre code{min-width:100%;display:inline-block}[data-theme=light] .bn-wrapper pre.shiki.github-dark{color:#1f2328!important;background-color:#f6f8fa!important}.code-copy-btn{color:#c8c3b7;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:3;text-transform:uppercase;letter-spacing:.03em;background:#ffffff14;border:1px solid #ffffff26;border-radius:5px;padding:3px 10px;font-size:.72rem;font-weight:600;transition:background .15s,color .15s;position:absolute;top:7px;right:8px}.bn-wrapper.bn-readonly .code-copy-btn{z-index:2;background:#ffffff1f;top:7px}.bn-wrapper.bn-readonly .bn-block-content[data-content-type=codeBlock]:not([data-language])>.code-copy-btn{top:10px}.code-copy-btn:hover{color:#fff;background:#ffffff2e}.code-copy-btn.done{color:#fff;background:#5e8a74;border-color:#5e8a74}[data-theme=light] .code-copy-btn{color:#475569;background:#0000000f;border-color:#0000001a}[data-theme=light] .code-copy-btn:hover{color:var(--ink-bg);background:#0000001f}[data-theme=dark] .bn-wrapper .bn-container[data-color-scheme=dark]{--bn-colors-editor-background:var(--surface);--bn-colors-editor-text:var(--text);--bn-colors-menu-background:var(--surface);--bn-colors-menu-text:var(--text);--bn-colors-tooltip-background:var(--bg);--bn-colors-tooltip-text:var(--text);--bn-colors-hovered-background:#e881491f;--bn-colors-hovered-text:var(--text);--bn-colors-selected-background:#e8814938;--bn-colors-selected-text:var(--text);--bn-colors-disabled-background:var(--bg);--bn-colors-disabled-text:var(--text-muted);--bn-colors-border:var(--border);--bn-colors-side-menu:var(--text-muted);--bn-colors-highlights-gray-background:#475569;background:var(--surface)}[data-theme=light] .bn-wrapper .bn-container[data-color-scheme=light]{--bn-colors-editor-background:var(--surface);--bn-colors-editor-text:var(--text);--bn-colors-menu-background:var(--surface);--bn-colors-menu-text:var(--text);--bn-colors-border:var(--border)}.bn-wrapper.bn-editable{border:1px solid var(--border);border-radius:12px;overflow:hidden}.bn-wrapper .ProseMirror{min-height:380px;padding:18px 24px}.bn-readonly .ProseMirror{min-height:auto;padding:0}.bn-readonly .bn-container{background:0 0!important}.rte{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.rte-toolbar{border-bottom:1px solid var(--border);background:var(--bg,#fafafa);z-index:1;flex-wrap:wrap;gap:2px;padding:8px;display:flex;position:sticky;top:0}.rte-btn{cursor:pointer;min-width:30px;height:30px;color:var(--text);background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0 8px;font-size:.9rem;font-weight:600;display:inline-flex}.rte-btn:hover{background:var(--primary-light)}.rte-btn.active{background:var(--primary-light);color:var(--primary);border-color:var(--primary)}.rte-btn:disabled{opacity:.35;cursor:not-allowed}.rte-sep{background:var(--border);align-self:stretch;width:1px;margin:4px;display:inline-block}.rte-content{min-height:400px;padding:20px 24px}.rte-content .ProseMirror{outline:none;min-height:400px;line-height:1.7}.rte-content .ProseMirror p{margin:.4em 0}.rte-content .ProseMirror h1{margin:.8em 0 .4em;font-size:1.6rem;font-weight:700}.rte-content .ProseMirror h2{margin:.7em 0 .35em;font-size:1.3rem;font-weight:700}.rte-content .ProseMirror h3{margin:.6em 0 .3em;font-size:1.1rem;font-weight:600}.rte-content .ProseMirror img{border-radius:8px;max-width:100%;height:auto;margin:.4em 0}.rte-content .ProseMirror blockquote{border-left:4px solid var(--primary);color:var(--text-muted);margin:.6em 0;padding-left:14px;font-style:italic}.rte-content .ProseMirror code{background:var(--bg,#f3f4f6);border-radius:4px;padding:2px 5px;font-family:Fira Code,Consolas,monospace;font-size:.9em}.rte-content .ProseMirror pre{color:#e4e4e7;background:#1e1e1e;border-radius:8px;margin:.6em 0;padding:14px 18px;overflow-x:auto}.rte-content .ProseMirror pre code{color:inherit;background:0 0;padding:0}.rte-content .ProseMirror a{color:var(--primary);text-decoration:underline}.rte-content .ProseMirror ul,.rte-content .ProseMirror ol{margin:.4em 0;padding-left:1.4em}.rte-content .ProseMirror table{border-collapse:collapse;width:100%;margin:.6em 0}.rte-content .ProseMirror th,.rte-content .ProseMirror td{border:1px solid var(--border);padding:6px 10px}.rte-content .ProseMirror th{background:var(--primary-light);font-weight:600}.rte-content .ProseMirror hr{border:none;border-top:1px solid var(--border);margin:1em 0}.rte-content .ProseMirror .rte-video{border-radius:8px;height:0;margin:.6em 0;padding-bottom:56.25%;position:relative;overflow:hidden}.rte-content .ProseMirror .rte-video iframe{border:none;width:100%;height:100%;position:absolute;top:0;left:0}.rte-content .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--text-muted);pointer-events:none;height:0}.rte-loading{text-align:center;color:var(--text-muted);padding:40px}.rte-rendered{color:var(--text);line-height:1.7}.rte-rendered h1{color:var(--text-heading);margin:1em 0 .5em;font-size:1.8rem;font-weight:700}.rte-rendered h2{color:var(--text-heading);margin:.9em 0 .45em;font-size:1.4rem;font-weight:700}.rte-rendered h3{color:var(--text-heading);margin:.8em 0 .4em;font-size:1.15rem;font-weight:600}.rte-rendered p{margin:.6em 0}.rte-rendered img{border-radius:8px;max-width:100%;height:auto}.rte-rendered blockquote{border-left:4px solid var(--primary);color:var(--text-muted);margin:.8em 0;padding-left:14px;font-style:italic}.rte-rendered code{background:var(--bg,#f3f4f6);border-radius:4px;padding:2px 5px;font-family:Fira Code,Consolas,monospace;font-size:.9em}.rte-rendered pre{color:#e4e4e7;background:#1e1e1e;border-radius:8px;padding:14px 18px;overflow-x:auto}.rte-rendered pre code{color:inherit;background:0 0;padding:0}.rte-rendered a{color:var(--primary);text-decoration:underline}.rte-rendered ul,.rte-rendered ol{padding-left:1.4em}.rte-rendered table{border-collapse:collapse;width:100%;margin:.8em 0}.rte-rendered th,.rte-rendered td{border:1px solid var(--border);padding:6px 10px}.rte-rendered th{background:var(--primary-light);font-weight:600}.rte-rendered hr{border:none;border-top:1px solid var(--border);margin:1.2em 0}.rte-rendered .rte-video{border-radius:8px;height:0;margin:.8em 0;padding-bottom:56.25%;position:relative;overflow:hidden}.rte-rendered .rte-video iframe{border:none;width:100%;height:100%;position:absolute;top:0;left:0}.ec-view-pane,.ec-edit-pane{flex-direction:column;gap:16px;animation:.25s ec-fade-in;display:flex}.ec-view-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;display:flex}.ec-view-header h1{color:var(--text-heading);margin:0;font-size:1.6rem}.ec-edit-header{align-items:center;gap:10px;display:flex}.ec-title-input{flex:1;font-size:1.15rem;font-weight:600}.ec-edit-actions{flex-shrink:0;gap:8px;display:flex}.edit-course-layout{grid-template-columns:320px 1fr;gap:24px;max-width:1600px;min-height:calc(100vh - 64px);margin:0 auto;padding:20px 24px;display:grid}.edit-course-sidebar{flex-direction:column;align-self:start;gap:16px;max-height:calc(100vh - 100px);display:flex;position:sticky;top:80px;overflow-y:auto}.edit-course-main{background:var(--surface);border:1px solid var(--border);border-radius:14px;min-height:400px;padding:24px}.ec-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.ec-overview-link{cursor:pointer;width:100%;color:var(--text);text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:.95rem;font-weight:600;transition:background .15s,border-color .15s;display:flex}.ec-overview-link:hover{background:color-mix(in srgb, var(--primary) 6%, transparent);border-color:color-mix(in srgb, var(--primary) 30%, var(--border))}.ec-overview-link.active{background:color-mix(in srgb, var(--primary) 14%, transparent);border-color:var(--primary);color:var(--primary)}.ec-overview-icon{font-size:1.1rem;line-height:1}.ec-overview-hint{color:var(--text-muted);background:color-mix(in srgb, var(--primary) 4%, transparent);border-left:3px solid var(--primary);border-radius:0 8px 8px 0;margin-bottom:12px;padding:10px 14px;font-size:.85rem;line-height:1.5}.player-overview-content{margin:16px 0}.player-overview-content .bn-wrapper{margin:0}.player-overview-content .ProseMirror{padding:0}.status-badge.public{color:#4e7563;background:#5e8a7424;border:1px solid #5e8a744d}.status-badge.private{color:#a87623;background:#c28b2d24;border:1px solid #c28b2d4d}[data-theme=dark] .status-badge.public{color:#8fb5a0}[data-theme=dark] .status-badge.private{color:#d8a44a}.invite-create{flex-direction:column;gap:6px;margin-top:4px;display:flex}.invite-create-row{align-items:center;gap:6px;display:flex}.invite-uses-input{text-align:center;width:80px}.invite-list{flex-direction:column;gap:6px;margin-top:6px;display:flex}.invite-row{background:var(--bg,color-mix(in srgb, var(--primary) 4%, transparent));border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:.88rem;transition:opacity .15s;display:flex}.invite-row.inactive{opacity:.55}.invite-row-meta{align-items:center;gap:8px;min-width:0;display:flex}.invite-row-count{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.invite-row-actions{gap:4px;display:flex}.invite-tag{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:2px 6px;font-size:.68rem;font-weight:700}.invite-tag.revoked{color:#b5432c;background:#c94f3524}.invite-tag.exhausted{color:var(--text-muted);background:#a3a0982e}.invite-page{justify-content:center;align-items:center;min-height:calc(100vh - 64px);padding:40px 20px;display:flex}.invite-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:16px;flex-direction:column;align-items:center;width:100%;max-width:480px;padding:32px 28px;display:flex;box-shadow:0 10px 40px #00000014}.invite-card-icon{margin-bottom:8px;font-size:3rem}.invite-card-title{color:var(--text-heading);margin:0 0 16px;font-size:1.4rem}.invite-course-name{color:var(--text);font-size:1.2rem;font-weight:700}.invite-course-desc{color:var(--text-muted);margin:12px 0 20px;font-size:.95rem;line-height:1.5}.invite-stats{background:color-mix(in srgb, var(--primary) 6%, transparent);border-radius:10px;gap:16px;margin:8px 0 24px;padding:12px 16px;display:flex}.invite-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.invite-stat-label{text-transform:uppercase;color:var(--text-muted);letter-spacing:.04em;font-size:.75rem}.invite-stat-value{color:var(--primary);font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:700}.invite-card .btn{min-width:220px}.ec-card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding-bottom:8px;display:flex}.ec-card-header h3{color:var(--text-heading);margin:0;font-size:.95rem;font-weight:700}.ec-meta{flex-direction:column;gap:8px;display:flex}.ec-title{color:var(--text);font-size:1.02rem;font-weight:600}.ec-desc{color:var(--text-muted);font-size:.85rem;line-height:1.4}.ec-tags{flex-wrap:wrap;gap:6px;display:flex}.ec-card-actions{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:8px;display:flex}.ec-mod-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.ec-mod-item{cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;transition:background .15s,border-color .15s;display:flex}.ec-mod-item:hover{background:var(--primary-light)}.ec-mod-item.active{background:var(--primary-light);border-color:var(--primary);font-weight:600}.ec-mod-num{background:var(--border);width:22px;height:22px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.ec-mod-item.active .ec-mod-num{background:var(--primary);color:#fff}.ec-mod-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.9rem;overflow:hidden}.ec-mod-count{color:var(--text-muted);background:var(--border);text-align:center;border-radius:8px;min-width:18px;padding:2px 6px;font-size:.75rem}.ec-empty{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;padding:80px 20px;display:flex}.ec-empty-icon{opacity:.6;margin-bottom:12px;font-size:3rem}.ec-empty-title{color:var(--text);margin-bottom:6px;font-size:1.1rem;font-weight:600}.ec-empty-sub{font-size:.9rem}.ec-module-pane{flex-direction:column;gap:20px;animation:.25s ec-fade-in;display:flex}@keyframes ec-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.ec-module-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;display:flex}.ec-module-header h2{color:var(--text-heading);margin:0;font-size:1.3rem}.ec-module-actions{flex-shrink:0;gap:6px;display:flex}.ec-mod-input{font-size:1.15rem;font-weight:600}.ec-lessons{flex-direction:column;gap:10px;display:flex}@media (width<=900px){.edit-course-layout{grid-template-columns:1fr;padding:12px}.edit-course-sidebar{max-height:none;position:static}}.lesson-blocks{flex-direction:column;gap:18px;display:flex}.lesson-block{line-height:1.6}.lesson-block-heading h1,.lesson-block-heading h2,.lesson-block-heading h3{color:var(--text-heading);margin:0}.lesson-block-heading h1{font-size:1.8rem;font-weight:700}.lesson-block-heading h2{font-size:1.35rem;font-weight:700}.lesson-block-heading h3{font-size:1.1rem;font-weight:600}.block-image{margin:0}.block-image img{border-radius:10px;max-width:100%;height:auto;display:block;box-shadow:0 2px 10px #0000000f}.block-image figcaption,.block-video figcaption{color:var(--text-muted);text-align:center;margin-top:8px;font-size:.88rem}.block-file{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;align-items:center;gap:14px;padding:14px 18px;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.block-file:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 4px 12px #0000000f}.block-file-icon{flex-shrink:0;font-size:1.6rem}.block-file-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.block-file-name{overflow-wrap:anywhere;font-weight:600}.block-file-size{color:var(--text-muted);font-size:.82rem}.block-file-action{color:var(--primary);background:var(--primary-light);border-radius:8px;flex-shrink:0;padding:6px 12px;font-size:.85rem;font-weight:600}.block-callout{border:1px solid #e3702b40;border-left:4px solid var(--primary);background:linear-gradient(#e3702b0d,#e3702b05);border-radius:10px;gap:14px;padding:16px 18px;display:flex}.callout-icon{flex-shrink:0;font-size:1.5rem;line-height:1}.callout-text{flex:1}.callout-text .markdown-content>:last-child{margin-bottom:0}.blocks-editor{flex-direction:column;gap:14px;display:flex}.blocks-editor-toolbar{background:var(--surface);border:1px solid var(--border);z-index:2;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.blocks-editor-title{font-size:1.05rem;font-weight:700}.blocks-editor-actions{gap:8px;display:flex}.block-editor-row{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:10px;padding:14px;display:flex}.block-editor-side{flex-direction:column;flex-shrink:0;gap:4px;display:flex}.block-editor-body{flex:1;min-width:0}.block-type-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;font-size:.82rem;font-weight:600}.code-input{font-family:Fira Code,Consolas,monospace;font-size:.88rem;line-height:1.5}.add-block-btn{border:1.5px dashed var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:10px;align-self:center;padding:8px 16px;font-size:.9rem;transition:border-color .15s,color .15s,background .15s}.add-block-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.block-picker{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.block-picker-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;margin-bottom:12px;display:grid}.block-picker-btn{background:var(--bg,#fff);border:1px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;transition:all .15s;display:flex}.block-picker-btn:hover{border-color:var(--primary);background:var(--primary-light)}.bp-icon{font-size:1.6rem}.bp-label{font-size:.85rem;font-weight:500}.block-image-preview{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.block-image-preview img{border:1px solid var(--border);border-radius:8px;max-width:100%;max-height:280px}.block-file-preview{background:var(--primary-light);border-radius:8px;align-items:center;gap:12px;padding:8px 12px;display:flex}.blocks-modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:flex-start;padding:24px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.blocks-modal{background:var(--bg,#f7f7fa);border-radius:14px;width:100%;max-width:1400px;padding:20px;box-shadow:0 20px 60px #00000040}.blocks-editor-split{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}.blocks-editor-pane{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:14px;max-height:calc(100vh - 180px);padding:16px;display:flex;overflow-y:auto}.blocks-editor-preview{background:var(--bg,#fff)}.pane-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);background:inherit;z-index:1;margin:-16px -16px 0;padding:12px 16px;font-size:.82rem;font-weight:700;position:sticky;top:0}@media (width<=1024px){.blocks-editor-split{grid-template-columns:1fr}.blocks-editor-pane{max-height:none}}@media (width<=768px){.player-layout{flex-direction:column;height:auto;overflow:visible}.player-sidebar{width:100%;min-width:unset;max-height:45vh}.player-content,.player-course-overview{padding:20px 16px 40px}.stats-row,.profile-page{grid-template-columns:1fr}.hero{text-align:center;flex-direction:column;gap:16px}.navbar{padding:0 16px}.page{padding:20px 16px}.assessment-links{flex-direction:column}.form-row-2,.form-row-3{grid-template-columns:1fr}.edit-course-topbar{flex-direction:column;align-items:flex-start}.lesson-row{flex-wrap:wrap}.task-bank-layout{grid-template-columns:1fr}.task-types-sidebar{position:static}.variant-layout{grid-template-columns:1fr}.variant-nav{position:static}.stats-summary-row{grid-template-columns:repeat(2,1fr)}.stats-layout{grid-template-columns:1fr}.stats-sidebar{position:static}.variant-result-row{grid-template-rows:auto auto;grid-template-columns:100px 1fr}.vr-score{grid-area:2/1}.variant-results-actions{flex-direction:column;align-items:stretch}}.hw-manage-page{max-width:860px;margin:0 auto}.hw-manage-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.hw-manage-head h1{margin:0 0 4px}.hw-form-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:14px;margin-bottom:24px;padding:20px;display:flex}.hw-form-card h3{margin:0}.hw-lookup-row{align-items:center;gap:8px;display:flex}.hw-lookup-row .form-input{flex:1}.hw-resolved{color:#4e7563;margin-top:6px;font-size:.9rem;font-weight:600}[data-theme=dark] .hw-resolved{color:#8fb5a0}.hw-picked-list{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.hw-picked-row{background:color-mix(in srgb, var(--primary) 5%, transparent);border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.hw-picked-num{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.75rem;font-weight:700;display:inline-flex}.hw-picked-title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;overflow:hidden}.hw-form-actions{justify-content:flex-end;gap:10px;display:flex}.hw-list{flex-direction:column;gap:10px;display:flex}.hw-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;transition:border-color .15s;display:flex}.hw-card:hover{border-color:color-mix(in srgb, var(--primary) 40%, var(--border))}.hw-card-main{flex:1;min-width:0}.hw-card-title{margin-bottom:4px;font-size:1rem;font-weight:600}.hw-card-meta{color:var(--text-muted);flex-wrap:wrap;gap:6px;font-size:.85rem;display:flex}.hw-card-side{flex-shrink:0;align-items:center;gap:10px;display:flex}.hw-score{font-variant-numeric:tabular-nums;color:var(--primary);font-weight:700}.status-badge.hw-status-submitted{color:#4e7563;background:#5e8a7424;border:1px solid #5e8a744d}.status-badge.hw-status-assigned{color:var(--primary);background:#e3702b24;border:1px solid #e3702b4d}.status-badge.hw-status-in_progress{color:#a87623;background:#c28b2d24;border:1px solid #c28b2d4d}.task-picker-item.picked{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, transparent)}.task-picker-check{color:var(--primary);white-space:nowrap;margin-left:auto;font-size:.78rem;font-weight:700}.hw-solve-page{max-width:760px;margin:0 auto}.hw-solve-head{align-items:baseline;gap:12px;margin:12px 0 20px;display:flex}.hw-solve-head h1{margin:0}.hw-solve-due{color:#a87623;font-size:.9rem;font-weight:600}.hw-solve-scorecard{background:color-mix(in srgb, var(--primary) 8%, transparent);border:1px solid var(--border);border-radius:14px;flex-direction:column;align-items:center;gap:4px;margin-bottom:20px;padding:20px;display:flex}.hw-solve-score-big{color:var(--primary);font-variant-numeric:tabular-nums;font-size:2.4rem;font-weight:800}.hw-solve-score-label{color:var(--text-muted)}.hw-solve-tasks{flex-direction:column;gap:16px;display:flex}.hw-solve-task{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;padding:16px 18px;display:flex}.hw-solve-task.correct{border-color:#5e8a7480}.hw-solve-task.wrong{border-color:#c94f3580}.hw-solve-task-head{align-items:center;gap:10px;display:flex}.hw-solve-task-num{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:.82rem;font-weight:700;display:inline-flex}.hw-solve-task-title{font-weight:600}.hw-solve-task-content{color:var(--text);line-height:1.6;overflow-x:auto}.hw-solve-input{width:100%}.hw-solve-verdict{flex-direction:column;gap:6px;display:flex}.hw-solve-answer-row{gap:8px;font-size:.92rem;display:flex}.hw-solve-answer-label{color:var(--text-muted);min-width:110px}.ans-ok{color:#4e7563;font-family:ui-monospace,monospace;font-weight:700}.ans-bad{color:#b5432c;font-family:ui-monospace,monospace;font-weight:700}[data-theme=dark] .ans-ok{color:#8fb5a0}.hw-solve-badge{border-radius:6px;align-self:flex-start;padding:4px 10px;font-size:.85rem;font-weight:700}.hw-solve-badge.ok{color:#4e7563;background:#5e8a7424}.hw-solve-badge.bad{color:#b5432c;background:#c94f3524}.hw-solve-submit-bar{background:linear-gradient(to top, var(--bg,var(--surface)) 60%, transparent);justify-content:center;margin-top:20px;padding:16px 0;display:flex;position:sticky;bottom:0}.hw-solve-submit-bar .btn{min-width:240px}.dash-hw-list{flex-direction:column;gap:10px;display:flex}.dash-hw-card{border-radius:var(--radius);transition:background .18s var(--ease);color:var(--text);justify-content:space-between;align-items:center;gap:16px;margin:0 -4px;padding:12px 14px;text-decoration:none;display:flex}.dash-hw-card:hover{background:var(--soft)}.dash-hw-main{min-width:0}.dash-hw-title{color:var(--text);margin-bottom:2px;font-weight:600}.dash-hw-meta{color:var(--text-muted);font-size:.85rem}.dash-hw-go{color:var(--primary);white-space:nowrap;font-weight:600}.dash-hw-score{color:var(--primary);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}html.vt-theme::view-transition-old(root){mix-blend-mode:normal;animation:none}html.vt-theme::view-transition-new(root){mix-blend-mode:normal;animation:none}html.vt-theme::view-transition-old(root){z-index:1}html.vt-theme::view-transition-new(root){z-index:2}@keyframes vt-page-out{to{opacity:0;transform:translateY(-10px)scale(.995)}}@keyframes vt-page-in{0%{opacity:0;transform:translateY(14px)scale(.995)}}html:not(.vt-theme)::view-transition-old(root){animation:.26s cubic-bezier(.22,1,.36,1) both vt-page-out}html:not(.vt-theme)::view-transition-new(root){animation:.34s cubic-bezier(.22,1,.36,1) both vt-page-in}::view-transition-group(navbar){animation:none}::view-transition-old(navbar){display:none}::view-transition-new(navbar){animation:none}html.vt-theme *{transition:none!important}::view-transition-group(*){animation-duration:.45s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-old(*){-o-object-fit:cover;object-fit:cover;height:100%}::view-transition-new(*){-o-object-fit:cover;object-fit:cover;height:100%}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}.serif-display{letter-spacing:-.02em;color:var(--text-heading);font-family:Cormorant Garamond,Georgia,serif;font-weight:500;line-height:1}.serif-accent{letter-spacing:-.01em;font-family:Cormorant Garamond,Georgia,serif;font-weight:500}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);font-size:11px;font-weight:500}.num{font-variant-numeric:tabular-nums;letter-spacing:0}.ink-card{background:var(--ink-bg);color:var(--ink-tx);border-radius:var(--r-lg);transition:background-color .35s,color .35s}.ink-card .eyebrow{color:inherit;opacity:.6}.chip{background:var(--soft);border:1px solid var(--border);color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:12px;font-weight:500;display:inline-flex}.chip-warm{background:var(--primary-light);color:var(--primary);border-color:#0000}.chip-cool{background:var(--cool-soft);color:var(--cool);border-color:#0000}.chip-dark{background:var(--ink-bg);color:var(--ink-tx);border-color:#0000}.chip-on-ink{background:var(--ink-hl-2);color:currentColor;border-color:#0000}.dot{border-radius:999px;flex-shrink:0;width:8px;height:8px;display:inline-block}.icon-btn{background:var(--surface);border:1px solid var(--border);cursor:pointer;width:40px;height:40px;color:var(--text);transition:background .25s var(--ease), border-color .25s var(--ease);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--soft)}.ava{color:#5a2a0c;border:2px solid var(--surface);width:40px;height:40px;box-shadow:0 0 0 1px var(--border);background:linear-gradient(135deg,#efd9c5,#d17b4a);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.ava-cool{color:#243b33;background:linear-gradient(135deg,#dde6e0,#7a9286)}.ava-ink{color:#fff;background:linear-gradient(135deg,#5c544c,#1a1714)}.ava-sand{color:#3d2a14;background:linear-gradient(135deg,#e8ddcb,#a88b66)}.ava-sm{width:32px;height:32px;font-size:11px}.ava-lg{width:56px;height:56px;font-size:18px}.row-hover{transition:background .2s var(--ease);border-radius:14px}.row-hover:hover{background:var(--hover)}.hover-lift{transition:transform .3s var(--ease), box-shadow .3s var(--ease)}.hover-lift:hover{transform:translateY(-1px)}.progress-track{background:var(--soft);border-radius:999px;height:6px;overflow:hidden}.progress-fill{background:var(--primary);height:100%;transition:width .8s var(--ease);border-radius:999px}.week-strip{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.day-slot{background:var(--soft);cursor:pointer;min-height:96px;color:var(--text);transition:background .2s var(--ease), color .2s var(--ease);border-radius:10px;flex-direction:column;gap:4px;padding:10px 8px;display:flex}.day-slot:hover{background:var(--primary-light)}.day-slot.today{background:var(--ink-bg);color:var(--ink-tx)}.day-slot.today .slot-tile{background:var(--ink-hl-2);color:var(--ink-tx);border-color:#0000}.slot-tile{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 6px;font-size:10px;font-weight:600}.slot-tile.busy{background:var(--primary);color:#fff;border-color:#0000}.slot-tile.cool{background:var(--cool);color:#fff;border-color:#0000}.enter{opacity:0;animation:enterUp .8s var(--ease) both;transform:translateY(12px)}.enter-1{animation-delay:40ms}.enter-2{animation-delay:.14s}.enter-3{animation-delay:.24s}.enter-4{animation-delay:.34s}.enter-5{animation-delay:.44s}.enter-6{animation-delay:.54s}@keyframes enterUp{to{opacity:1;transform:translateY(0)}}#ambient-layer{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.amb-blob{will-change:transform;--ty:0px;transform:translateY(var(--ty));border-radius:50%;position:absolute}.amb-blob-1{filter:blur(80px);background:radial-gradient(at 50% 30%,#2d160833 0%,#28140726 25%,#2211061a 45%,#1c0e050d 63%,#180c0405 80%,#0000 95%);width:1400px;height:1100px;margin-left:-560px;top:-380px;left:50%}.amb-blob-2{filter:blur(90px);background:radial-gradient(circle,#e3702b1f 0%,#e3702b14 35%,#e3702b08 60%,#e3702b03 78%,#0000 92%);width:820px;height:820px;top:-180px;right:-200px}.amb-blob-3{filter:blur(100px);background:radial-gradient(circle,#7a92861a 0%,#7a92860f 40%,#7a928606 65%,#0000 90%);width:720px;height:720px;top:280px;left:-240px}[data-theme=dark] .amb-blob-1{background:radial-gradient(at 50% 30%,#5a260a80 0%,#4e210961 25%,#401b0840 45%,#32150621 63%,#2811050d 80%,#0000 95%)}[data-theme=dark] .amb-blob-2{background:radial-gradient(circle,#e8814938 0%,#e8814921 35%,#e881490f 60%,#e8814905 78%,#0000 92%)}[data-theme=dark] .amb-blob-3{background:radial-gradient(circle,#93aaa026 0%,#93aaa017 40%,#93aaa009 65%,#0000 90%)}.navbar,.page{z-index:1;position:relative}@media (prefers-reduced-motion:reduce){.enter{opacity:1!important;animation:none!important;transform:none!important}.amb-blob{transition:none!important}}.container{width:100%}@media (width>=640px){.container{max-width:640px}}@media (width>=768px){.container{max-width:768px}}@media (width>=1024px){.container{max-width:1024px}}@media (width>=1280px){.container{max-width:1280px}}@media (width>=1536px){.container{max-width:1536px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-bottom-24{bottom:-6rem}.-bottom-28{bottom:-7rem}.-left-20{left:-5rem}.-left-24{left:-6rem}.-right-16{right:-4rem}.-right-20{right:-5rem}.-right-24{right:-6rem}.-top-16{top:-4rem}.-top-20{top:-5rem}.-top-24{top:-6rem}.right-2{right:.5rem}.top-2{top:.5rem}.z-10{z-index:10}.col-span-12{grid-column:span 12/span 12}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-mt-1{margin-top:-.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-7{margin-bottom:1.75rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-32{height:8rem}.h-44{height:11rem}.h-48{height:12rem}.h-64{height:16rem}.h-72{height:18rem}.h-80{height:20rem}.h-full{height:100%}.h-px{height:1px}.min-h-\[8rem\]{min-height:8rem}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-64{width:16rem}.w-72{width:18rem}.w-80{width:20rem}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0}.max-w-2xl{max-width:42rem}.max-w-\[1420px\]{max-width:1420px}.max-w-\[480px\]{max-width:480px}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-rotate-90{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(-.5rem * var(--tw-space-x-reverse));margin-left:calc(-.5rem * calc(1 - var(--tw-space-x-reverse)))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.break-all{word-break:break-all}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-xl{border-radius:.75rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.\!px-2{padding-left:.5rem!important;padding-right:.5rem!important}.\!px-4{padding-left:1rem!important;padding-right:1rem!important}.\!py-0\.5{padding-top:.125rem!important;padding-bottom:.125rem!important}.\!py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pl-4{padding-left:1rem}.pr-5{padding-right:1.25rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.\!text-\[10px\]{font-size:10px!important}.\!text-\[13px\]{font-size:13px!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-\[\.06em\]{letter-spacing:.06em}.tracking-\[\.07em\]{letter-spacing:.07em}.tracking-\[\.14em\]{letter-spacing:.14em}.tracking-\[\.16em\]{letter-spacing:.16em}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-\[var\(--ink-2\)\]{color:var(--ink-2)}.text-\[var\(--muted\)\]{color:var(--muted)}.text-\[var\(--tx-2\)\]{color:var(--tx-2)}.opacity-100{opacity:1}.opacity-60{opacity:.6}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.claria{--bg:#f2f1ed;--surface:#fff;--soft:#f0eee9;--tx:#1c1b18;--tx-2:#2b2a26;--muted:#6f6c64;--tx-3:#a3a098;--accent:#e3702b;--accent-soft:#fbe9dc;--accent-ink:#a85114;--accent-on:#fff;--cool:#7a9286;--cool-soft:#e1e8e2;--line:#edebe5;--border:#e7e5de;--inv-bg:#1c1b18;--inv-tx:#f4f2ee;--inv-mute:#97948d;--inv-line:#f4f2ee1a;--ink:#1c1b18;--ink-2:#2b2a26;--ink-hl:#ffffff0f;--ink-hl-2:#ffffff1a;--ink-hl-3:#ffffff29;--ok:#5e8c6a;--ok-soft:#e4eee5;--ok-glow:#5e8c6a6b;--bad:#c24a38;--bad-soft:#f8e1db;--bad-glow:#c24a3861;--field:#211f1b;--field-tx:#f4f2ee;--field-mute:#9a968d;--field-line:#ffffff1a;--r-sm:12px;--r-md:18px;--r-lg:21px;--ease:cubic-bezier(.22, 1, .36, 1)}[data-theme=dark] .claria{--bg:#15140f;--surface:#1f1d1a;--soft:#26241f;--tx:#dcd7cc;--tx-2:#c2bcad;--muted:#a6a196;--tx-3:#6b6760;--accent:#e88149;--accent-soft:#e8814929;--accent-ink:#e88149;--accent-on:#fff;--cool:#93aaa0;--cool-soft:#93aaa024;--line:#dcd7cc12;--border:#dcd7cc1a;--inv-bg:#26241f;--inv-tx:#dcd7cc;--inv-mute:#a6a196;--inv-line:#dcd7cc14;--ink:#dcd7cc;--ink-2:#b5afa0;--ink-hl:#ffffff0a;--ink-hl-2:#ffffff12;--ink-hl-3:#ffffff24;--ok:#8fb89a;--ok-soft:#8fb89a29;--ok-glow:#8fb89a61;--bad:#dd8068;--bad-soft:#dd80682e;--bad-glow:#dd80685c;--field:#2b2924;--field-tx:#ece7dc;--field-mute:#9a968d;--field-line:#ffffff14}.hover\:opacity-100:hover{opacity:1}@media (width>=640px){.sm\:block{display:block}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=768px){.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-6{grid-column:span 6/span 6}.md\:col-span-7{grid-column:span 7/span 7}.md\:col-span-9{grid-column:span 9/span 9}.md\:flex{display:flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:justify-end{justify-content:flex-end}.md\:p-7{padding:1.75rem}.md\:p-8{padding:2rem}.md\:text-6xl{font-size:3.75rem;line-height:1}}@media (width>=1024px){.lg\:col-span-10{grid-column:span 10/span 10}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:flex{display:flex}}:root{--cl-bg:#f2f1ed;--cl-surface:#fff;--cl-soft:#f0eee9;--cl-tx:#1c1b18;--cl-tx-2:#2b2a26;--cl-muted:#6f6c64;--cl-tx-3:#a3a098;--cl-accent:#e3702b;--cl-accent-soft:#fbe9dc;--cl-accent-on:#fff;--cl-cool:#7a9286;--cl-cool-soft:#e1e8e2;--cl-line:#edebe5;--cl-border:#e7e5de;--cl-inv-bg:#1c1b18;--cl-inv-tx:#f4f2ee;--cl-inv-mute:#97948d;--cl-inv-line:#f4f2ee1a;--cl-r-sm:12px;--cl-r-md:18px;--cl-r-lg:21px;--cl-ease:cubic-bezier(.22, 1, .36, 1)}[data-theme=dark]{--cl-bg:#15140f;--cl-surface:#1f1d1a;--cl-soft:#26241f;--cl-tx:#dcd7cc;--cl-tx-2:#b5afa0;--cl-muted:#8c8880;--cl-tx-3:#6b6760;--cl-accent:#e88149;--cl-accent-soft:#e8814929;--cl-accent-on:#fff;--cl-cool:#93aaa0;--cl-cool-soft:#93aaa024;--cl-line:#dcd7cc12;--cl-border:#dcd7cc1a;--cl-inv-bg:#26241f;--cl-inv-tx:#dcd7cc;--cl-inv-mute:#8c8880;--cl-inv-line:#dcd7cc14}.claria{background:var(--cl-bg);color:var(--cl-tx);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Golos Text,system-ui,sans-serif;font-size:16px;line-height:1.55;transition:background-color .35s,color .35s;position:relative;overflow-x:hidden}.claria p,.claria li{line-height:1.65}.claria a{color:inherit;text-decoration:none}.claria :focus{outline:none}.claria :focus-visible{outline:2px solid var(--cl-accent);outline-offset:3px;border-radius:6px}.cl-container{max-width:1280px;margin:0 auto}.cl-section{z-index:1;padding:80px 24px;position:relative}.cl-serif{letter-spacing:-.005em;font-family:Cormorant Garamond,Georgia,serif;font-weight:500}.cl-display{letter-spacing:-.015em;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(50px,8vw,104px);font-weight:500;line-height:.98}.cl-h-section{letter-spacing:-.01em;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(38px,5vw,62px);font-weight:500;line-height:1.02}.cl-stat-num{letter-spacing:-.01em;font-family:Cormorant Garamond,Georgia,serif;font-size:64px;font-weight:500;line-height:1}.cl-muted{color:var(--cl-muted)}.cl-mono{font-variant-numeric:tabular-nums}.cl-glow{filter:blur(90px);opacity:.42;pointer-events:none;border-radius:999px;position:absolute}.cl-underline-accent{background-image:linear-gradient(transparent 70%, var(--cl-accent-soft) 70%);background-repeat:no-repeat;background-size:100% 100%;padding:0 4px}.cl-card{background:var(--cl-surface);border:1px solid var(--cl-border);border-radius:var(--cl-r-lg);transition:background-color .35s ease, border-color .35s ease, transform .3s var(--cl-ease), box-shadow .3s var(--cl-ease);box-shadow:0 1px 2px #00000008,0 6px 20px #0000000a}.cl-ink-card{background:var(--cl-inv-bg);color:var(--cl-inv-tx);border-radius:var(--cl-r-lg);transition:background-color .35s ease, color .35s ease, transform .3s var(--cl-ease), box-shadow .3s var(--cl-ease)}.cl-hover-lift:hover{transform:translateY(-1px)}.cl-card.cl-hover-lift:hover{box-shadow:0 1px 2px #1a17140a,0 16px 32px #1a17140f}.cl-ink-card.cl-hover-lift:hover{box-shadow:0 20px 40px #1a17142e}.cl-preview{border-radius:var(--cl-r-lg);background:var(--cl-surface);border:1px solid var(--cl-border);position:relative;overflow:hidden;box-shadow:0 30px 80px #1a171414}.cl-pill-nav{background:var(--cl-surface);border:1px solid var(--cl-border);border-radius:999px;align-items:center;padding:6px;transition:background-color .35s,border-color .35s;display:inline-flex;box-shadow:0 1px 2px #00000008,0 8px 24px #0000000d}.cl-nav-item{color:var(--cl-tx-2);cursor:pointer;border-radius:999px;padding:9px 16px;font-size:14px;font-weight:500;transition:background .25s,color .25s}.cl-nav-item:hover{background:var(--cl-soft)}.cl-nav-item.active{background:var(--cl-inv-bg);color:var(--cl-inv-tx)}.cl-logo{align-items:center;gap:8px;display:inline-flex}.cl-logo-mark{color:var(--cl-tx);transition:color .35s ease, transform .4s var(--cl-ease);flex-shrink:0}.cl-logo:hover .cl-logo-mark{transform:rotate(-12deg)}.cl-logo-word{letter-spacing:-.02em;color:var(--cl-tx);font-family:Manrope,system-ui,sans-serif;font-size:18px;font-weight:800;transition:color .35s}.cl-theme-toggle{background:var(--cl-surface);border:1px solid var(--cl-border);cursor:pointer;width:40px;height:40px;color:var(--cl-tx-2);border-radius:999px;justify-content:center;align-items:center;transition:background .25s,border-color .25s;display:inline-flex;position:relative;overflow:hidden}.cl-theme-toggle:hover{background:var(--cl-soft)}.cl-theme-toggle .cl-icon-sun,.cl-theme-toggle .cl-icon-moon{transition:transform .45s var(--cl-ease), opacity .35s ease;position:absolute}.cl-theme-toggle .cl-icon-sun{opacity:1;transform:rotate(0)scale(1)}.cl-theme-toggle .cl-icon-moon{opacity:0;transform:rotate(-90deg)scale(.6)}[data-theme=dark] .cl-theme-toggle .cl-icon-sun{opacity:0;transform:rotate(90deg)scale(.6)}[data-theme=dark] .cl-theme-toggle .cl-icon-moon{opacity:1;transform:rotate(0)scale(1)}.cl-btn-primary{background:var(--cl-accent);color:var(--cl-accent-on);border-radius:var(--cl-r-sm);cursor:pointer;transition:transform .28s var(--cl-ease), box-shadow .28s ease, filter .25s ease;border:none;align-items:center;gap:8px;padding:13px 22px;font-family:inherit;font-size:15px;font-weight:600;display:inline-flex;box-shadow:0 1px 2px #0000000f,0 8px 20px #e3702b38}.cl-btn-primary:hover{filter:brightness(1.05);box-shadow:0 1px 2px #0000000f,0 12px 28px #e3702b52}.cl-btn-ghost{color:var(--cl-tx);border-radius:var(--cl-r-sm);border:1px solid var(--cl-border);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:13px 22px;font-family:inherit;font-size:15px;font-weight:600;transition:background .25s,border-color .25s;display:inline-flex}.cl-btn-ghost:hover{background:var(--cl-soft);border-color:var(--cl-tx-2)}.cl-btn-white{color:#000;border-radius:var(--cl-r-sm);cursor:pointer;background:#fff;align-items:center;gap:8px;padding:14px 20px;font-size:15px;font-weight:600;transition:background .25s;display:inline-flex}.cl-btn-white:hover{background:#f4efe6}.cl-chip{background:var(--cl-soft);border:1px solid var(--cl-border);color:var(--cl-tx-2);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;display:inline-flex}.cl-chip-dark{background:var(--cl-inv-bg);color:var(--cl-inv-tx);border-color:#0000}.cl-chip-on-ink{color:var(--cl-inv-tx);background:#ffffff14;border-color:#0000}[data-theme=dark] .cl-chip-on-ink{background:#00000014}.cl-dot{border-radius:999px;width:8px;height:8px;display:inline-block}.cl-grid-bento{grid-template-columns:repeat(12,1fr);gap:16px;display:grid}.cl-col-4{grid-column:span 4}.cl-col-5{grid-column:span 5}.cl-col-7{grid-column:span 7}.cl-col-12{grid-column:span 12}@media (width<=768px){.cl-col-4,.cl-col-5,.cl-col-7{grid-column:span 12}}.claria{--cl-note-ink:#a6511c}[data-theme=dark] .claria{--cl-note-ink:#ee9059}.cl-paper{pointer-events:none;background-image:linear-gradient(var(--cl-line) 1px, transparent 1px), linear-gradient(90deg, var(--cl-line) 1px, transparent 1px);background-size:34px 34px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#000 40%,#0000 95%);mask-image:linear-gradient(#000,#000 40%,#0000 95%)}.cl-note{color:var(--cl-note-ink);letter-spacing:.005em;font-family:Cormorant Garamond,Georgia,serif;font-size:19px;font-style:italic;font-weight:500;line-height:1.35}.cl-note-quiet{color:var(--cl-muted)}.cl-ruled{position:relative}.cl-margin-label{letter-spacing:.22em;text-transform:uppercase;color:var(--cl-tx-3);margin-bottom:18px;font-size:11px;font-weight:600;display:inline-block}@media (width>=1140px){.cl-ruled{padding-left:104px}.cl-ruled:before{content:"";background:color-mix(in srgb, var(--cl-accent) 36%, transparent);width:1px;position:absolute;top:6px;bottom:6px;left:44px}.cl-margin-label{writing-mode:vertical-rl;margin:0;position:absolute;top:0;left:23px;transform:rotate(180deg)}}.cl-scrap{background:var(--cl-surface);border:1px solid var(--cl-border);border-radius:10px;position:relative;box-shadow:0 2px 6px #1a17140d,0 14px 30px #1a171412}.cl-scrap:before{content:"";background:color-mix(in srgb, var(--cl-accent) 15%, transparent);border-radius:2px;width:54px;height:16px;position:absolute;top:-9px;left:50%;transform:translate(-50%)rotate(-2deg)}.cl-diptych{grid-template-columns:minmax(0,1fr) 72px minmax(0,1.1fr);align-items:stretch;gap:20px;display:grid}@media (width<=900px){.cl-diptych{grid-template-columns:minmax(0,1fr)}.cl-diptych-arrow{display:none}}.cl-hw-sheet{--cl-rule-h:38px;background:repeating-linear-gradient(180deg, transparent 0, transparent calc(var(--cl-rule-h) - 1px), var(--cl-line) calc(var(--cl-rule-h) - 1px), var(--cl-line) var(--cl-rule-h)), var(--cl-surface);border:1px solid var(--cl-border);border-radius:var(--cl-r-lg)}.cl-hand{font-family:Cormorant Garamond,Georgia,serif;font-size:22px;font-style:italic;font-weight:500;line-height:var(--cl-rule-h)}.cl-err{-webkit-text-decoration:underline wavy var(--cl-accent) 2px;-webkit-text-decoration:underline wavy var(--cl-accent) 2px;text-decoration:underline wavy var(--cl-accent) 2px;text-underline-offset:6px}.cl-hw-grid{grid-template-columns:minmax(0,1fr) 176px;display:grid}.cl-hw-margin{border-left:1px solid color-mix(in srgb, var(--cl-accent) 36%, transparent)}@media (width<=640px){.cl-hw-grid{grid-template-columns:minmax(0,1fr)}.cl-hw-margin{border-left:none;border-top:1px dashed color-mix(in srgb, var(--cl-accent) 40%, transparent)}}.cl-draw,.cl-draw-reveal{stroke-dasharray:1;stroke-dashoffset:1px}.cl-draw,.is-in .cl-draw-reveal{animation:cl-draw .7s var(--cl-ease) forwards;animation-delay:var(--d,0s)}@keyframes cl-draw{to{stroke-dashoffset:0}}.cl-enter{opacity:0;animation:cl-enter-up .85s var(--cl-ease) both;transform:translateY(14px)}.cl-enter-1{animation-delay:50ms}.cl-enter-2{animation-delay:.18s}.cl-enter-3{animation-delay:.32s}.cl-enter-4{animation-delay:.46s}.cl-enter-5{animation-delay:.62s}.cl-enter-6{animation-delay:.8s}@keyframes cl-enter-up{to{opacity:1;transform:translateY(0)}}[data-cl-reveal]{opacity:0;transition:opacity .8s var(--cl-ease), transform .8s var(--cl-ease);will-change:opacity, transform;transform:translateY(20px)}[data-cl-reveal].is-in{opacity:1;transform:translateY(0)}[data-cl-reveal-stagger]>*{opacity:0;transition:opacity .7s var(--cl-ease), transform .7s var(--cl-ease);transform:translateY(16px)}[data-cl-reveal-stagger].is-in>*{opacity:1;transform:translateY(0)}[data-cl-reveal-stagger].is-in>:first-child{transition-delay:0s}[data-cl-reveal-stagger].is-in>:nth-child(2){transition-delay:70ms}[data-cl-reveal-stagger].is-in>:nth-child(3){transition-delay:.14s}[data-cl-reveal-stagger].is-in>:nth-child(4){transition-delay:.21s}[data-cl-reveal-stagger].is-in>:nth-child(5){transition-delay:.28s}[data-cl-reveal-stagger].is-in>:nth-child(6){transition-delay:.35s}[data-cl-reveal-stagger].is-in>:nth-child(7){transition-delay:.42s}.cl-count-up{font-variant-numeric:tabular-nums;display:inline-block}@media (prefers-reduced-motion:reduce){.cl-enter,[data-cl-reveal],[data-cl-reveal-stagger]>*{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}.cl-draw,.cl-draw-reveal{stroke-dashoffset:0!important;animation:none!important}}.cl-shell{min-height:100vh}.cl-frame{z-index:1;max-width:1420px;margin:0 auto;padding:20px 24px 48px;position:relative}.cl-topbar{z-index:1;align-items:center;gap:16px;margin-bottom:28px;display:flex;position:relative}.cl-topbar .cl-logo{background:var(--cl-surface);border:1px solid var(--cl-border);border-radius:999px;padding:7px 18px 7px 16px;box-shadow:0 1px 2px #00000008,0 8px 24px #0000000d}.cl-topbar-actions{align-items:center;gap:12px;margin-left:auto;display:inline-flex}.cl-search{background:var(--cl-surface);border:1px solid var(--cl-border);max-width:480px;color:var(--cl-muted);border-radius:999px;flex:1;align-items:center;gap:8px;padding:8px 14px;display:none}.cl-search input{min-width:0;color:var(--cl-tx);background:0 0;border:0;outline:none;flex:1;font-family:inherit;font-size:13px}.cl-search input::placeholder{color:var(--cl-muted)}.cl-kbd{background:var(--cl-bg);border:1px solid var(--cl-border);color:var(--cl-muted);border-radius:6px;padding:2px 6px;font-family:ui-monospace,monospace;font-size:10px}@media (width>=1024px){.cl-search{display:flex}}.cl-icon-btn{background:var(--cl-surface);border:1px solid var(--cl-border);cursor:pointer;width:40px;height:40px;transition:background .25s var(--cl-ease);color:var(--cl-tx-2);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.cl-icon-btn:hover{background:var(--cl-soft)}.cl-noti{position:relative}.cl-noti-dot{background:var(--cl-accent);border-radius:999px;width:8px;height:8px;position:absolute;top:8px;right:8px}.cl-ava{color:#5a2a0c;cursor:pointer;border:2px solid var(--cl-surface);width:40px;height:40px;box-shadow:0 0 0 1px var(--cl-border);background:linear-gradient(135deg,#efd9c5,#d17b4a);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.cl-shell-grid{z-index:1;grid-template-columns:1fr;gap:20px;display:grid;position:relative}@media (width>=900px){.cl-shell-grid{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:24px}}.cl-shell-main{min-width:0}.cl-sidebar{flex-direction:column;display:flex}@media (width>=900px){.cl-sidebar{position:sticky;top:20px}}.cl-sidebar-card{-webkit-backdrop-filter:blur(24px)saturate(160%);backdrop-filter:blur(24px)saturate(160%);border-radius:var(--cl-r-lg);background:#161512b8;border:1px solid #ffffff12;padding:12px;box-shadow:0 20px 50px #00000047}.cl-sidenav{flex-direction:column;gap:4px;display:flex}.cl-side-link{cursor:pointer;transition:background .2s var(--cl-ease), color .2s var(--cl-ease);text-align:left;color:#f4f2eebd;background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;width:100%;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:500;text-decoration:none;display:flex;position:relative}.cl-side-link:hover{color:#fff;background:#ffffff0f}.cl-side-link.active{color:#fff;background:#ffffff1a}.cl-ico{color:#f4f2eebd;width:30px;height:30px;transition:background .2s var(--cl-ease), color .2s var(--cl-ease);background:#ffffff12;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.cl-side-link:hover .cl-ico,.cl-side-link.active .cl-ico{color:#fff;background:#ffffff24}.cl-side-trail{opacity:.7;margin-left:auto;font-size:10px}.cl-side-badge{color:#fff;background:#ffffff24;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:600}.cl-side-badge.warm{background:var(--cl-accent);color:#fff}.cl-side-divider{background:#ffffff14;height:1px;margin:10px 4px}.cl-streak{margin-top:16px;padding:20px}.cl-streak-label{text-transform:uppercase;letter-spacing:.07em;opacity:.6;font-size:11px;font-weight:500}.cl-streak-row{align-items:baseline;gap:8px;margin-top:8px;display:flex}.cl-streak-num{font-family:Cormorant Garamond,Georgia,serif;font-size:48px;font-weight:500;line-height:1}.cl-streak-unit{opacity:.8;font-size:16px}.cl-streak-bars{gap:6px;margin-top:16px;display:flex}.cl-streak-bars span{background:#ffffff17;border-radius:999px;flex:1;height:8px;box-shadow:inset 0 0 0 1px #ffffff38}.cl-streak-bars span.dim{box-shadow:none;background:#e8814973}.cl-streak-bars span.on{background:var(--cl-accent);box-shadow:none}.cl-streak-note{opacity:.8;margin-top:12px;font-size:11px;line-height:1.45}.cl-streak-note b{opacity:1;font-weight:600}@media (width<=899px){.cl-sidenav{flex-direction:row;gap:6px;padding-bottom:4px;overflow-x:auto}.cl-sidenav .cl-side-link{white-space:nowrap;width:auto}}
