:root{--font-serif: "Newsreader", Georgia, "Times New Roman", serif;--font-sans: "Public Sans", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--u: 1;--fs: 1;--accent: #9c6a39;--accent-2: #b6814d;--on-accent: #fffdf8}:root,[data-theme=light]{--bg: #f1ece2;--surface: #f7f3ec;--card: #fffdf8;--card-2: #faf6ee;--ink: #2b2722;--ink-soft: #6c655a;--ink-faint: #9a9183;--border: #e4ddcf;--border-soft: #ece5d8;--border-strong: #d6cdba;--accent-tint: color-mix(in srgb, var(--accent) 12%, var(--card));--accent-tint-2: color-mix(in srgb, var(--accent) 18%, var(--card));--accent-line: color-mix(in srgb, var(--accent) 32%, var(--border));--shadow-sm: 0 1px 2px rgba(43,39,34,.05), 0 1px 3px rgba(43,39,34,.04);--shadow-md: 0 2px 6px rgba(43,39,34,.06), 0 8px 24px rgba(43,39,34,.07);--shadow-lg: 0 8px 24px rgba(43,39,34,.1), 0 24px 60px rgba(43,39,34,.12);--good: #4f7d52;--warn: #b07a2b;--info: #4a6c8f;--pink: #a85c6b;--shade: rgba(43,39,34,.04);--shade-2: rgba(43,39,34,.07)}[data-theme=dark]{--bg: #1a1813;--surface: #211e18;--card: #27231b;--card-2: #2d281f;--ink: #ece5d7;--ink-soft: #a79d8c;--ink-faint: #7b7263;--border: #36312a;--border-soft: #2f2a23;--border-strong: #453f35;--accent: #c69257;--accent-2: #d8a868;--on-accent: #241c10;--accent-tint: color-mix(in srgb, var(--accent) 16%, var(--card));--accent-tint-2: color-mix(in srgb, var(--accent) 24%, var(--card));--accent-line: color-mix(in srgb, var(--accent) 38%, var(--border));--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 2px 8px rgba(0,0,0,.32), 0 12px 32px rgba(0,0,0,.34);--shadow-lg: 0 12px 36px rgba(0,0,0,.45), 0 32px 70px rgba(0,0,0,.5);--good: #79a87c;--warn: #d6a44e;--info: #7ca0c4;--pink: #cf8c9b;--shade: rgba(255,255,255,.035);--shade-2: rgba(255,255,255,.06)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);font-size:calc(14px * var(--fs));line-height:1.55;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5{font-family:var(--font-serif);font-weight:560;margin:0;line-height:1.15;letter-spacing:-.01em;color:var(--ink)}p{margin:0}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}a{color:inherit;text-decoration:none}::selection{background:var(--accent-tint-2)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ink) 16%,transparent);border-radius:10px;border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--ink) 28%,transparent);background-clip:content-box}.app{display:grid;grid-template-columns:auto 1fr;height:100vh;overflow:hidden}.side{width:calc(248px * var(--u));background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:width .28s cubic-bezier(.3,.7,.4,1);overflow:hidden}[data-rail="1"] .side{width:68px}.side-top{padding:calc(18px*var(--u)) calc(16px*var(--u)) calc(10px*var(--u))}.brand{display:flex;align-items:center;gap:10px;padding:4px 6px;border-radius:10px}.brand-mark{width:30px;height:30px;flex:none;border-radius:9px;background:radial-gradient(circle at 32% 28%,var(--accent-2),var(--accent) 70%);display:grid;place-items:center;color:var(--on-accent);box-shadow:var(--shadow-sm)}.brand-mark svg{width:18px;height:18px}.brand-name{font-family:var(--font-serif);font-size:calc(20px*var(--fs));font-weight:600;letter-spacing:-.02em;white-space:nowrap}.brand-sub{font-size:10.5px;color:var(--ink-faint);letter-spacing:.14em;text-transform:uppercase;margin-top:-2px;white-space:nowrap}[data-rail="1"] .brand-name,[data-rail="1"] .brand-sub,[data-rail="1"] .nav-label,[data-rail="1"] .side-foot .uchip-meta,[data-rail="1"] .nav-sect{display:none}[data-rail="1"] .brand{justify-content:center;padding:4px 0}.nav{padding:calc(8px*var(--u)) calc(12px*var(--u));display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1}.nav-sect{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);padding:calc(14px*var(--u)) 10px 6px;font-weight:600}.nav-item{display:flex;align-items:center;gap:11px;padding:calc(8px*var(--u)) 10px;border-radius:9px;color:var(--ink-soft);font-size:calc(13.5px*var(--fs));font-weight:500;border:1px solid transparent;white-space:nowrap;position:relative}[data-rail="1"] .nav-item{justify-content:center;padding:9px 0}.nav-item svg{width:18px;height:18px;flex:none;opacity:.82}.nav-item:hover{background:var(--shade);color:var(--ink)}.nav-item.active{background:var(--accent-tint);color:var(--accent);border-color:var(--accent-line);font-weight:600}.nav-item.active svg{opacity:1}.nav-badge{margin-left:auto;font-size:10.5px;background:var(--accent);color:var(--on-accent);border-radius:20px;padding:1px 7px;font-weight:600}[data-rail="1"] .nav-badge{position:absolute;top:4px;right:8px;padding:0 5px}.side-foot{padding:calc(10px*var(--u)) calc(12px*var(--u)) calc(14px*var(--u));border-top:1px solid var(--border)}.uchip{display:flex;align-items:center;gap:10px;padding:8px;border-radius:11px}.uchip:hover{background:var(--shade)}.avatar{width:32px;height:32px;border-radius:50%;flex:none;display:grid;place-items:center;font-weight:600;font-size:13px;color:#fff}.uchip-meta{min-width:0}.uchip-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.uchip-sub{font-size:11px;color:var(--ink-faint);white-space:nowrap}.main{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg)}.topbar{height:calc(58px*var(--u));flex:none;display:flex;align-items:center;gap:14px;padding:0 calc(26px*var(--u));border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:relative;z-index:5}.search{flex:1;max-width:460px;display:flex;align-items:center;gap:9px;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:8px 12px;color:var(--ink-faint)}.search:focus-within{border-color:var(--accent-line)}.search svg{width:16px;height:16px;flex:none}.search input{border:0;background:transparent;outline:none;color:var(--ink);width:100%;font-size:calc(13.5px*var(--fs))}.search input::placeholder{color:var(--ink-faint)}.topbar-spacer{flex:1}.icon-btn{width:36px;height:36px;border-radius:9px;border:1px solid transparent;background:transparent;color:var(--ink-soft);display:grid;place-items:center}.icon-btn:hover{background:var(--shade-2);color:var(--ink)}.icon-btn svg{width:18px;height:18px}.content{flex:1;min-height:0;overflow-y:auto}.wrap{max-width:1080px;margin:0 auto;padding:calc(34px*var(--u)) calc(40px*var(--u)) calc(80px*var(--u))}.wrap-wide{max-width:1280px}.btn{display:inline-flex;align-items:center;gap:8px;border-radius:10px;border:1px solid var(--border-strong);background:var(--card);color:var(--ink);padding:calc(8px*var(--u)) calc(15px*var(--u));font-size:calc(13px*var(--fs));font-weight:600;white-space:nowrap;transition:background .15s,border-color .15s,transform .08s}.btn:hover{background:var(--card-2);border-color:var(--ink-faint)}.btn:active{transform:translateY(1px)}.btn svg{width:16px;height:16px}.btn-primary{background:var(--accent);color:var(--on-accent);border-color:transparent;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--accent-2);border-color:transparent}.btn-ghost{background:transparent;border-color:transparent;color:var(--ink-soft)}.btn-ghost:hover{background:var(--shade-2);color:var(--ink)}.btn-sm{padding:5px 11px;font-size:12px;border-radius:8px}.btn-lg{padding:11px 20px;font-size:14.5px}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:calc(11.5px*var(--fs));font-weight:600;background:var(--shade-2);color:var(--ink-soft);white-space:nowrap}.chip-accent{background:var(--accent-tint);color:var(--accent)}.chip-outline{background:transparent;border:1px solid var(--border-strong)}.chip-tag{background:transparent;border:1px solid var(--border);color:var(--ink-soft);font-weight:500}.chip-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-sm)}.card-pad{padding:calc(20px*var(--u))}.hoverable{transition:transform .16s cubic-bezier(.3,.7,.4,1),box-shadow .16s,border-color .16s}.hoverable:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.divider{height:1px;background:var(--border);margin:calc(18px*var(--u)) 0}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:calc(24px*var(--u));flex-wrap:wrap}.page-head>:first-child{flex:1 1 auto;min-width:0}.page-title{font-size:calc(30px*var(--fs));letter-spacing:-.02em}.page-sub{color:var(--ink-soft);font-size:calc(14px*var(--fs));margin-top:6px;max-width:60ch}.eyebrow{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:9px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:calc(22px*var(--u));overflow-x:auto}.tab{padding:10px 15px;font-size:13.5px;font-weight:600;color:var(--ink-soft);border:0;background:transparent;position:relative;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}.tab:hover{color:var(--ink)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.bar{height:7px;background:var(--shade-2);border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:99px}.ftype{font-size:10px;font-weight:800;letter-spacing:.05em;padding:3px 6px;border-radius:5px;color:#fff}.ft-pdf{background:#c2553f}.ft-ppt{background:#cf7a35}.ft-doc{background:#3f74b0}.ft-md{background:#5a6b78}.ft-html{background:#b06a3f}.ft-txt{background:#8a8170}.meta{display:flex;align-items:center;gap:6px;color:var(--ink-faint);font-size:12px;white-space:nowrap}.meta .dot{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.6}.av{border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:600;flex:none}.grid{display:grid;gap:calc(18px*var(--u))}.g-2{grid-template-columns:repeat(2,1fr)}.g-3{grid-template-columns:repeat(3,1fr)}.g-4{grid-template-columns:repeat(4,1fr)}@media (max-width:1180px){.g-4{grid-template-columns:repeat(3,1fr)}}@media (max-width:900px){.g-3,.g-4{grid-template-columns:repeat(2,1fr)}}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}.serif{font-family:var(--font-serif)}.mono{font-family:var(--font-mono)}.hero{position:relative;overflow:hidden;border-radius:20px;padding:calc(30px*var(--u)) calc(34px*var(--u));background:radial-gradient(120% 140% at 88% -20%,var(--accent-tint-2),transparent 55%),linear-gradient(180deg,var(--card),var(--card-2));border:1px solid var(--border);box-shadow:var(--shadow-sm)}.hero h1{font-size:calc(28px*var(--fs));max-width:22ch}.hero-glyph{position:absolute;right:-30px;top:-30px;width:230px;height:230px;opacity:.1;color:var(--accent);pointer-events:none}.hero-glyph svg{width:100%;height:100%}.stat{padding:calc(16px*var(--u));border-radius:14px;background:var(--card);border:1px solid var(--border)}.stat-n{font-family:var(--font-serif);font-size:calc(26px*var(--fs));font-weight:600;letter-spacing:-.02em}.stat-l{font-size:12px;color:var(--ink-faint);margin-top:2px}.stat-ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--accent-tint);color:var(--accent);margin-bottom:10px}.stat-ic svg{width:16px;height:16px}.list-row{display:flex;align-items:center;gap:14px;padding:calc(13px*var(--u)) calc(6px*var(--u));border-bottom:1px solid var(--border-soft)}.list-row:last-child{border-bottom:0}.sec-h{display:flex;align-items:center;justify-content:space-between;margin:calc(30px*var(--u)) 0 calc(14px*var(--u))}.sec-h h2{font-size:calc(19px*var(--fs));white-space:nowrap}.sec-h a{white-space:nowrap}.ncard{display:flex;flex-direction:column;overflow:hidden}.ncard-top{height:92px;position:relative;display:flex;align-items:flex-end;padding:13px}.ncard-body{padding:calc(15px*var(--u));display:flex;flex-direction:column;gap:9px;flex:1}.ncard h3{font-size:calc(16px*var(--fs));line-height:1.25}.ncard-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px}.ncard-foot .faint{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.price{font-family:var(--font-serif);font-weight:600;font-size:calc(17px*var(--fs));white-space:nowrap}.price .cr{color:var(--accent)}.rating{display:inline-flex;align-items:center;gap:4px;color:var(--warn);font-weight:600;font-size:12.5px}.rating svg{width:13px;height:13px}.kitem{display:flex;gap:14px;padding:calc(15px*var(--u)) 0;border-bottom:1px solid var(--border-soft)}.kitem:last-child{border-bottom:0}.knum{width:26px;height:26px;border-radius:8px;flex:none;background:var(--accent-tint);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:12.5px;font-family:var(--font-mono)}.kitem h4{font-size:calc(15px*var(--fs));margin-bottom:4px}.kdef{color:var(--ink-soft);font-size:calc(13.5px*var(--fs))}.ktags{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.quiz-q{border:1px solid var(--border);border-radius:14px;padding:calc(18px*var(--u));background:var(--card);margin-bottom:16px}.opt{display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid var(--border);border-radius:10px;margin-top:9px;font-size:13.5px;transition:all .12s;background:var(--card)}.opt:hover{border-color:var(--accent-line);background:var(--accent-tint)}.opt .mk{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--border-strong);flex:none;display:grid;place-items:center;font-weight:700;font-size:11px;color:var(--ink-faint)}.opt.correct{border-color:var(--good);background:color-mix(in srgb,var(--good) 12%,var(--card))}.opt.correct .mk{border-color:var(--good);background:var(--good);color:#fff}.opt.wrong{border-color:var(--pink);background:color-mix(in srgb,var(--pink) 12%,var(--card))}.opt.wrong .mk{border-color:var(--pink);background:var(--pink);color:#fff}.graph-wrap{position:relative;border:1px solid var(--border);border-radius:16px;background:radial-gradient(circle at 50% 40%,var(--accent-tint),transparent 60%),var(--card);overflow:hidden}.gnode{position:absolute;transform:translate(-50%,-50%);background:var(--card);border:1px solid var(--border-strong);border-radius:11px;padding:8px 12px;font-size:12.5px;font-weight:600;box-shadow:var(--shadow-sm);white-space:nowrap;cursor:default;transition:transform .15s,box-shadow .15s}.gnode:hover{box-shadow:var(--shadow-md)}.gnode.root{background:var(--accent);color:var(--on-accent);border-color:transparent;font-family:var(--font-serif);font-size:14px;padding:10px 16px}.gnode.l1{border-color:var(--accent-line)}.exam-paper{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:calc(28px*var(--u));box-shadow:var(--shadow-sm)}.exam-head{text-align:center;border-bottom:2px solid var(--ink);padding-bottom:18px;margin-bottom:22px}.exam-sec{margin-bottom:24px}.exam-sec-h{font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid var(--border)}.exam-q{display:flex;gap:10px;margin-bottom:14px;font-size:14px}.exam-q b{color:var(--accent);font-family:var(--font-mono)}.create-step{display:flex;gap:16px;align-items:flex-start}.step-dot{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;font-weight:700;background:var(--accent-tint);color:var(--accent);font-size:13px}.gen-card{border:1px solid var(--border);border-radius:14px;padding:calc(18px*var(--u));background:var(--card);display:flex;gap:14px;align-items:flex-start;transition:all .15s}.gen-card:hover{border-color:var(--accent-line);box-shadow:var(--shadow-md);transform:translateY(-2px)}.gen-card.sel{border-color:var(--accent);background:var(--accent-tint);box-shadow:var(--shadow-sm)}.gen-ic{width:42px;height:42px;border-radius:11px;flex:none;display:grid;place-items:center;background:var(--accent-tint);color:var(--accent)}.gen-ic svg{width:21px;height:21px}.mat-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:16px;align-items:center;padding:calc(13px*var(--u)) calc(14px*var(--u));border-radius:12px;border:1px solid transparent}.mat-row:hover{background:var(--card);border-color:var(--border);box-shadow:var(--shadow-sm)}.mat-ic{width:40px;height:46px;border-radius:7px;flex:none;display:grid;place-items:center;position:relative;background:var(--shade-2);border:1px solid var(--border)}.post{display:flex;gap:15px;padding:calc(20px*var(--u));border-bottom:1px solid var(--border)}.post:hover{background:var(--card-2)}.post-actions{display:flex;gap:20px;margin-top:12px;color:var(--ink-faint);font-size:12.5px}.pa{display:inline-flex;align-items:center;gap:6px}.pa:hover{color:var(--accent)}.pa svg{width:16px;height:16px}.badge-tile{text-align:center;padding:calc(18px*var(--u)) calc(12px*var(--u));border-radius:14px;border:1px solid var(--border);background:var(--card)}.badge-medal{width:54px;height:54px;border-radius:50%;margin:0 auto 10px;display:grid;place-items:center;font-size:24px;background:radial-gradient(circle at 35% 30%,var(--accent-2),var(--accent));color:var(--on-accent);box-shadow:var(--shadow-sm)}.badge-tile.locked{opacity:.5}.badge-tile.locked .badge-medal{background:var(--shade-2);color:var(--ink-faint);box-shadow:none}.lvl-ring{--p:0;width:120px;height:120px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--p)*1%),var(--shade-2) 0)}.lvl-ring>div{width:96px;height:96px;border-radius:50%;background:var(--card);display:grid;place-items:center;flex-direction:column}.day-col{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px;min-height:120px}.task{font-size:12.5px;padding:8px 10px;border-radius:9px;border:1px solid var(--border);background:var(--card-2);margin-top:8px;border-left:3px solid var(--accent)}.task.done{opacity:.55;text-decoration:line-through}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#14110c73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:60;padding:24px;animation:fade .2s}@keyframes fade{0%{opacity:0}}.modal{width:min(560px,94vw);max-height:88vh;overflow:auto;background:var(--card);border:1px solid var(--border-strong);border-radius:18px;box-shadow:var(--shadow-lg);animation:pop .22s cubic-bezier(.3,.8,.4,1)}@keyframes pop{0%{transform:translateY(12px) scale(.98);opacity:0}}.modal-pad{padding:calc(26px*var(--u))}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--bg);padding:11px 18px;border-radius:11px;font-size:13px;font-weight:600;box-shadow:var(--shadow-lg);z-index:90;display:flex;align-items:center;gap:9px;animation:pop .2s}.toast svg{width:16px;height:16px;color:var(--accent-2)}.view-enter{animation:viewin .3s cubic-bezier(.2,.7,.3,1)}@keyframes viewin{0%{transform:translateY(8px)}}.row{display:flex;align-items:center;gap:10px}.col{display:flex;flex-direction:column}.between{justify-content:space-between}.wrap-flex{flex-wrap:wrap}.gap-6{gap:6px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-20{gap:20px}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.fill{flex:1}.nowrap{white-space:nowrap}.center{text-align:center}#root{min-height:100vh}.courses-root{color:var(--ink);font-family:var(--font-sans);font-size:calc(14px * var(--fs))}.courses-root :is(button,input,textarea,select):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.courses-root :is(button,input,textarea,select):disabled{cursor:not-allowed;opacity:.52}.course-empty{padding:calc(48px * var(--u)) calc(24px * var(--u));text-align:center;border:1px dashed var(--border-strong);border-radius:16px;background:var(--card);box-shadow:var(--shadow-sm)}.course-empty-icon{width:54px;height:54px;margin:0 auto 16px;border-radius:14px;display:grid;place-items:center;background:var(--accent-tint);color:var(--accent);font-family:var(--font-serif);font-size:calc(24px * var(--fs));font-weight:600}.course-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(18px * var(--u));margin-top:calc(20px * var(--u))}.course-choice{position:relative;min-height:164px;padding:calc(20px * var(--u));text-align:left;border:1px solid var(--border);border-radius:16px;background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm);transition:transform .16s cubic-bezier(.3,.7,.4,1),box-shadow .16s,border-color .16s}.course-choice:not(:disabled):hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.course-choice-icon{margin-bottom:10px;color:var(--accent);font-family:var(--font-serif);font-size:calc(24px * var(--fs))}.course-form-field{width:100%;min-height:38px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--ink);font:inherit;font-size:calc(13.5px * var(--fs));line-height:1.45;outline:none;transition:background .15s,border-color .15s,box-shadow .15s}.course-form-field::placeholder{color:var(--ink-faint)}.course-form-field:hover{border-color:var(--border-strong)}.course-form-field:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-tint)}.course-label{display:block;margin:12px 0 6px;color:var(--ink-soft);font-size:calc(12px * var(--fs));font-weight:600}.course-paste{min-height:190px;resize:vertical;font-family:var(--font-mono);font-size:calc(13px * var(--fs));line-height:1.7}.course-document-paste{min-height:390px}.course-errors{margin-top:10px;padding:10px;border:1px solid color-mix(in srgb,var(--pink) 45%,var(--border));border-radius:11px;background:color-mix(in srgb,var(--pink) 8%,var(--card))}.course-error-line{display:grid;grid-template-columns:54px 1fr;gap:8px;padding:4px 0;color:var(--ink-soft);font-family:var(--font-mono);font-size:calc(12px * var(--fs))}.course-error-line mark{border-bottom:2px solid var(--pink);background:color-mix(in srgb,var(--pink) 28%,transparent);color:var(--pink)}.course-editor-unit{margin:calc(18px * var(--u)) 0;padding:calc(20px * var(--u));border:1px solid var(--border);border-radius:16px;background:var(--card);box-shadow:var(--shadow-sm)}.course-word-row{display:grid;grid-template-columns:34px minmax(130px,1.2fr) minmax(100px,.7fr) minmax(180px,1.5fr) auto;gap:8px;align-items:center;margin-top:8px;padding:8px;border:1px solid var(--border-soft);border-radius:11px;background:var(--card-2)}.course-word-row.is-dragging{opacity:.5;box-shadow:var(--shadow-md)}.course-drag{border:0;background:transparent;color:var(--ink-faint);font-size:18px;touch-action:none}.course-icon-actions{display:flex;gap:4px}.course-translations{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px;min-width:0}.course-translation-item{display:grid;grid-template-columns:minmax(0,1fr) 30px;min-width:0}.course-translation-item .course-form-field{border-radius:10px 0 0 10px}.course-translation-item button,.course-translation-add{border:1px solid var(--border-strong);background:var(--card);color:var(--ink-soft)}.course-translation-item button{border-left:0;border-radius:0 10px 10px 0}.course-translation-add{min-height:38px;padding:7px 10px;border-style:dashed;border-radius:10px;font-size:calc(12px * var(--fs))}.course-translation-item button:hover,.course-translation-add:hover{background:var(--card-2);color:var(--ink)}.course-bulk-paste{padding:calc(16px * var(--u));border:1px solid var(--border);border-radius:12px;background:var(--card-2)}.course-bulk-paste .course-paste{min-height:170px;background:var(--card)}.course-icon-actions button{width:30px;height:30px;border:1px solid var(--border-strong);border-radius:8px;background:var(--card);color:var(--ink-soft)}.course-icon-actions button:hover{background:var(--card-2);color:var(--ink)}.course-list,.course-market-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(18px * var(--u))}.course-card{min-height:230px;padding:calc(20px * var(--u));display:flex;flex-direction:column}.course-card-progress{margin:14px 0;padding:10px;border:1px solid transparent;border-radius:10px;background:var(--card-2);cursor:pointer}.course-card-progress:hover{border-color:var(--border)}.course-card-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto}.course-session{max-width:850px;margin:0 auto}.course-stage-track{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:20px}.course-stage-step{padding:7px;border-radius:8px;background:var(--shade-2);color:var(--ink-faint);font-size:calc(11px * var(--fs));text-align:center}.course-stage-step.active{background:var(--accent-tint);color:var(--accent);font-weight:700}.course-study-card{min-height:360px;padding:calc(30px * var(--u));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.course-term{font-family:var(--font-serif);font-size:calc(42px * var(--fs));line-height:1.15}.course-ipa{margin-top:8px;color:var(--accent);font-family:var(--font-mono)}.course-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;margin-top:20px}.course-option{padding:11px 13px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--ink);font:inherit;font-size:calc(13.5px * var(--fs));text-align:left;transition:background .15s,border-color .15s}.course-option:hover{border-color:var(--accent-line);background:var(--accent-tint)}.course-option.selected{border-color:var(--accent);background:var(--accent-tint)}.course-option.picked-correct{border-color:color-mix(in srgb,var(--good) 58%,var(--border));background:color-mix(in srgb,var(--good) 12%,var(--card));color:var(--good);animation:course-correct-pulse .36s cubic-bezier(.2,.8,.2,1)}.course-match{display:grid;grid-template-columns:1fr 1fr;gap:18px;width:100%;margin-top:22px;text-align:left}.course-match button{width:100%;margin-bottom:8px;justify-content:center}.course-match button.active,.course-match button.selected{border-color:var(--accent);background:var(--accent-tint)}.course-option.is-correct,.course-match button.is-correct,.course-spelling-answer.is-correct{border-color:var(--good);background:color-mix(in srgb,var(--good) 16%,var(--card));color:var(--good);animation:course-correct-pulse .52s cubic-bezier(.2,.8,.2,1)}.course-option.is-wrong,.course-match button.is-wrong,.course-spelling-answer.is-wrong{border-color:var(--pink);background:color-mix(in srgb,var(--pink) 14%,var(--card));color:var(--pink);animation:course-wrong-shake .48s ease-in-out}@keyframes course-correct-pulse{0%{transform:scale(1);box-shadow:0 0 color-mix(in srgb,var(--good) 35%,transparent)}45%{transform:scale(1.025);box-shadow:0 0 0 7px color-mix(in srgb,var(--good) 0%,transparent)}to{transform:scale(1);box-shadow:none}}@keyframes course-wrong-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.course-feedback{width:100%;margin-top:16px;padding:13px;border:1px solid var(--accent-line);border-radius:11px;background:var(--accent-tint)}.course-feedback.wrong{border-color:color-mix(in srgb,var(--pink) 35%,var(--border));background:color-mix(in srgb,var(--pink) 12%,var(--card));color:var(--pink)}.course-feedback.is-correct{border-color:color-mix(in srgb,var(--good) 42%,var(--border));background:color-mix(in srgb,var(--good) 12%,var(--card));color:var(--good)}.course-spelling-settings{margin:0;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--card-2)}.course-spelling-settings legend{padding:0 6px;color:var(--ink-soft);font-size:calc(12px * var(--fs));font-weight:700}.course-setting-row,.course-setting-detail{display:flex;align-items:center;gap:9px;color:var(--ink);font-size:calc(13px * var(--fs))}.course-setting-row+.course-setting-row,.course-setting-detail+.course-setting-row{margin-top:10px}.course-setting-detail{margin:10px 0 10px 24px;color:var(--ink-soft)}.course-setting-detail .course-form-field{width:92px}.course-spelling-gate{display:flex;width:100%;flex-direction:column;align-items:center}.course-spelling-timer{display:grid;width:min(100%,420px);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin-bottom:20px;padding:11px 14px;border:1px solid var(--accent-line);border-radius:10px;background:var(--accent-tint);color:var(--accent)}.course-spelling-timer b{min-width:3ch;font-size:calc(19px * var(--fs));line-height:1;text-align:right}.course-spelling-timer small{grid-column:1 / -1;margin-top:-10px;color:var(--ink-soft)}.course-spelling-timer.waiting{border-color:var(--border);background:var(--panel);color:var(--ink)}.course-spelling-timer.urgent{border-color:color-mix(in srgb,var(--pink) 45%,var(--border));background:color-mix(in srgb,var(--pink) 10%,var(--card));color:var(--pink)}.course-spelling-untimed{margin-bottom:20px;color:var(--ink-soft);font-size:calc(13px * var(--fs))}.course-spelling-result{width:100%;color:var(--ink)}.course-result-note{display:grid;grid-template-columns:minmax(110px,auto) minmax(0,1fr);gap:5px 12px;padding:8px 0;text-align:left}.course-result-note small{grid-column:2;color:var(--ink-soft)}.course-result-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:10px;margin-top:8px}.course-result-grid>div{display:flex;min-height:72px;flex-direction:column;align-items:flex-start;gap:7px;padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--card);text-align:left}.course-result-grid>div>span{color:var(--ink-faint);font-size:calc(11px * var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.04em}.course-result-translations{display:flex;flex-wrap:wrap;gap:6px}.course-result-translations em{padding:4px 8px;border-radius:8px;background:var(--shade-2);color:var(--ink);font-style:normal}.course-diff-bad{background:color-mix(in srgb,var(--pink) 25%,transparent);color:var(--pink);text-decoration:underline}.course-phonemes{display:flex;gap:5px;flex-wrap:wrap;justify-content:center;margin-top:10px}.course-phoneme{padding:4px 7px;border-radius:7px;background:var(--shade-2);font-family:var(--font-mono)}.course-phoneme.bad{background:color-mix(in srgb,var(--pink) 16%,var(--card));color:var(--pink)}.course-public-page{min-height:100vh;padding:40px;background:var(--bg);color:var(--ink)}.course-public-inner{max-width:900px;margin:auto}@media (max-width: 900px){.course-list,.course-market-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-word-row{grid-template-columns:30px 1fr 1fr}.course-word-row .course-translations,.course-word-row .course-icon-actions{grid-column:2 / 4}}@media (max-width: 700px){.course-category-grid,.course-list,.course-market-grid,.course-options,.course-match{grid-template-columns:1fr}.course-word-row{grid-template-columns:28px minmax(0,1fr)}.course-word-row>*{grid-column:2}.course-word-row>.course-drag{grid-column:1;grid-row:1 / 6}.course-translations{grid-template-columns:1fr}.course-document-paste{min-height:330px}.course-stage-track{grid-template-columns:repeat(2,1fr)}.course-study-card{min-height:320px;padding:24px 18px}.course-public-page{padding:20px}.course-public-page .list-row{align-items:flex-start;flex-direction:column;gap:4px}.courses-root .page-head>.row{width:100%;flex-wrap:wrap}.course-result-grid,.course-result-note{grid-template-columns:1fr}.course-result-note small{grid-column:1}}@media (prefers-reduced-motion: reduce){.course-choice,.course-word-row{transition:none}.course-option.picked-correct,.course-option.is-correct,.course-option.is-wrong,.course-match button.is-correct,.course-match button.is-wrong,.course-spelling-answer.is-correct,.course-spelling-answer.is-wrong{animation:none}}
