:root{--bg:#070b16;--bg-2:#0b1120;--surface:rgba(255,255,255,0.032);--surface-2:rgba(255,255,255,0.05);--surface-solid:#121a2b;--input-bg:rgba(255,255,255,0.028);--text:#eef2fb;--text-soft:#c3ccdd;--muted:#8794ad;--faint:#5c6883;--accent:#7c86ff;--accent-strong:#6366f1;--accent-2:#22d3ee;--violet:#a78bfa;--grad:linear-gradient(135deg,#6366f1,#8b5cf6 45%,#22d3ee 110%);--grad-soft:linear-gradient(135deg,rgba(99,102,241,0.18),rgba(34,211,238,0.12));--success:#34d399;--danger:#fb7185;--warn:#fbbf24;--border:rgba(255,255,255,0.09);--border-strong:rgba(255,255,255,0.16);--ring:rgba(124,134,255,0.45);--shadow-sm:0 1px 2px rgba(0,0,0,0.35);--shadow:0 18px 40px -22px rgba(0,0,0,0.85);--shadow-lg:0 40px 80px -32px rgba(3,6,18,0.9);--r-sm:10px;--r:14px;--r-lg:20px;--r-xl:28px;--font:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;--mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;color:var(--text);font-family:var(--font);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:var(--bg)}body{position:relative;background:radial-gradient(900px 620px at 8% -8%,rgba(99,102,241,.22),transparent 60%),radial-gradient(820px 560px at 100% 0,rgba(34,211,238,.14),transparent 55%),radial-gradient(1000px 700px at 50% 120%,rgba(139,92,246,.14),transparent 60%),linear-gradient(180deg,var(--bg),var(--bg-2));background-attachment:fixed}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.035) 1px,transparent 0);background-size:42px 42px;-webkit-mask-image:radial-gradient(circle at 50% 30%,#000 0,transparent 75%);mask-image:radial-gradient(circle at 50% 30%,#000 0,transparent 75%);opacity:.6}a{color:var(--accent);text-decoration:none;transition:color .15s ease}a:hover{color:#a5adff}button,input,select,textarea{font:inherit;color:inherit}::selection{background:rgba(124,134,255,.35);color:#fff}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:999px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.24);background-clip:padding-box}.app-shell{min-height:100vh;display:flex;flex-direction:column}.container{flex:1 1;width:100%;max-width:1160px;margin:0 auto;padding:2rem 1.5rem 4rem;animation:page-in .45s ease both}.container,.site-footer{position:relative;z-index:1}.site-footer{margin-top:auto;border-top:1px solid var(--border);background:rgba(9,13,24,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.site-footer-inner{max-width:1160px;margin:0 auto;padding:1rem 1.5rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.55rem;color:var(--muted);font-size:.82rem;letter-spacing:.02em}.site-footer-sep{opacity:.45;-webkit-user-select:none;-moz-user-select:none;user-select:none}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;display:flex;gap:1rem;justify-content:space-between;padding:.85rem 1.5rem;border-bottom:1px solid var(--border);background:rgba(9,13,24,.72);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4)}.brand,.nav{align-items:center}.brand{display:inline-flex;gap:.6rem;font-weight:700;font-size:1.05rem;letter-spacing:-.01em}.brand,.brand:hover{color:var(--text)}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;overflow:hidden;background:#0a1020;box-shadow:0 8px 22px -8px rgba(34,211,238,.55),0 0 0 1px rgba(255,255,255,.08);flex-shrink:0}.brand-mark img{width:100%;height:100%}.brand-mark img,.hero-logo{object-fit:cover;display:block}.hero-logo{width:96px;height:96px;border-radius:22px;margin:0 auto 1.25rem;box-shadow:0 20px 50px -18px rgba(34,211,238,.55),0 0 0 1px rgba(255,255,255,.08);animation:logo-in .7s ease both}@keyframes logo-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}.auth-logo{width:88px;height:88px;border-radius:20px;object-fit:cover;display:block;box-shadow:0 16px 40px -14px rgba(168,85,247,.45),0 0 0 1px rgba(255,255,255,.08)}.brand-text b{font-weight:700}.brand-text span{color:var(--muted);font-weight:500}.nav-links{display:flex;gap:.25rem;flex-wrap:wrap;align-items:center}.nav-toggle{display:none}.nav-link{position:relative;display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .8rem;border-radius:10px;color:var(--text-soft);font-weight:500;font-size:.92rem;transition:background .15s ease,color .15s ease}.nav-link svg{width:16px;height:16px;opacity:.8}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link.active{background:var(--grad-soft);color:#fff}.nav-link.active:after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:2px;height:2px;border-radius:2px;background:var(--grad)}.nav-user{display:inline-flex;align-items:center;gap:.55rem;padding-left:.6rem;margin-left:.35rem;border-left:1px solid var(--border)}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-size:.8rem;font-weight:700;color:#fff;background:var(--grad);box-shadow:inset 0 1px 0 rgba(255,255,255,.3);flex-shrink:0}.nav-user-name{font-size:.88rem;color:var(--text-soft);font-weight:500}.card,.panel{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.5rem;margin-bottom:1.25rem;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow)}.card:before,.panel:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(160deg,rgba(255,255,255,.14),transparent 40%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.7}.card-hover{transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s ease,border-color .22s ease}.card-hover:hover{transform:translateY(-4px);border-color:var(--border-strong);box-shadow:var(--shadow-lg)}.card-title{display:flex;align-items:center;gap:.55rem;margin:0 0 .9rem;font-size:1.15rem;font-weight:650;letter-spacing:-.01em}.card-title svg{width:18px;height:18px;color:var(--accent)}.grid{display:grid;grid-gap:1.25rem;gap:1.25rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}h1{font-size:2rem;font-weight:720;letter-spacing:-.025em;margin:0 0 .4rem;line-height:1.15}h2{font-size:1.2rem;font-weight:650;letter-spacing:-.015em;margin:0 0 .85rem}h3{font-size:1.02rem;font-weight:620;margin:0 0 .5rem}.page-head{margin-bottom:1.6rem}.page-head h1{margin-bottom:.25rem}.page-head .sub{color:var(--muted);font-size:.98rem}.gradient-text{background:linear-gradient(120deg,#a5b4fc,#c4b5fd 40%,#67e8f9);-webkit-background-clip:text;background-clip:text;color:transparent}.eyebrow{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .75rem;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-soft);font-size:.78rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px rgba(52,211,153,.2)}.muted{color:var(--muted)}.text-soft{color:var(--text-soft)}.faint{color:var(--faint)}.error{color:var(--danger)}.success{color:var(--success)}.alert{display:flex;align-items:flex-start;gap:.6rem;padding:.75rem 1rem;border-radius:var(--r);border:1px solid var(--border);margin-bottom:1rem;font-size:.92rem}.alert svg{width:17px;height:17px;flex-shrink:0;margin-top:2px}.alert-error{background:rgba(251,113,133,.1);border-color:rgba(251,113,133,.35);color:#fecdd3}.alert-success{background:rgba(52,211,153,.1);border-color:rgba(52,211,153,.35);color:#bbf7d0}.alert-info{background:rgba(124,134,255,.1);border-color:rgba(124,134,255,.32);color:#dbdefe}label{display:block;font-size:.82rem;font-weight:550;color:var(--text-soft);margin-bottom:.4rem}label.check{display:flex;align-items:center;gap:.55rem;font-weight:500;color:var(--text);cursor:pointer;padding:.15rem 0}input,select,textarea{width:100%;background:var(--input-bg);border:1px solid var(--border);color:var(--text);border-radius:var(--r-sm);padding:.7rem .85rem;margin-bottom:.9rem;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}input::placeholder,textarea::placeholder{color:var(--faint)}input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);background:rgba(124,134,255,.06);box-shadow:0 0 0 4px var(--ring)}textarea{resize:vertical;min-height:90px;line-height:1.55}input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--accent-strong);cursor:pointer}input[type=file]{padding:.6rem;cursor:pointer}input[type=file]::-webkit-file-upload-button{margin-right:.75rem;padding:.4rem .8rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);cursor:pointer;-webkit-transition:background .15s ease;transition:background .15s ease}input[type=file]::file-selector-button{margin-right:.75rem;padding:.4rem .8rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);cursor:pointer;transition:background .15s ease}input[type=file]::-webkit-file-upload-button:hover{background:var(--surface-solid)}input[type=file]::file-selector-button:hover{background:var(--surface-solid)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238794ad' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;padding-right:2.2rem}select option{background:var(--surface-solid);color:var(--text)}.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;background:var(--grad);background-size:160% 160%;color:#fff;border:none;border-radius:var(--r-sm);padding:.65rem 1.15rem;font-weight:600;font-size:.92rem;cursor:pointer;transition:transform .12s ease,box-shadow .18s ease,background-position .4s ease,opacity .15s ease,filter .15s ease;box-shadow:0 12px 26px -12px rgba(99,102,241,.85),inset 0 1px 0 rgba(255,255,255,.25)}.btn svg,button svg{width:16px;height:16px}.btn:hover,button:hover{background-position:100% 0;transform:translateY(-1px);box-shadow:0 16px 34px -12px rgba(99,102,241,.95),inset 0 1px 0 rgba(255,255,255,.3)}.btn:active,button:active{transform:translateY(0)}.btn:disabled,button:disabled{opacity:.5;cursor:not-allowed;transform:none;filter:grayscale(.3);box-shadow:none}.btn.secondary,button.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border);box-shadow:none}.btn.secondary:hover,button.secondary:hover{background:var(--surface-solid);border-color:var(--border-strong);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn.ghost,button.ghost{background:transparent;box-shadow:none;color:var(--text-soft);padding:.5rem .7rem}.btn.ghost:hover,button.ghost:hover{background:var(--surface-2);color:var(--text);transform:none;box-shadow:none}.btn.danger,button.danger{background:linear-gradient(135deg,#f43f5e,#fb7185);box-shadow:0 12px 26px -14px rgba(244,63,94,.9)}button.icon-btn{padding:.4rem;width:34px;height:34px;background:var(--surface-2);color:var(--text-soft);border:1px solid var(--border);box-shadow:none}button.icon-btn:hover{background:var(--surface-solid);color:var(--text);transform:none}.btn-block{width:100%}.btn-sm{padding:.45rem .8rem;font-size:.85rem}.btn-lg{padding:.85rem 1.5rem;font-size:1rem}.btn-row{display:flex;gap:.6rem;flex-wrap:wrap}.badge,.btn-row{align-items:center}.badge{display:inline-flex;gap:.35rem;padding:.22rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;border:1px solid var(--border);background:var(--surface-2);color:var(--text-soft);letter-spacing:.01em}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge.indigo{background:rgba(99,102,241,.16);border-color:rgba(99,102,241,.4);color:#c7d0ff}.badge.cyan{background:rgba(34,211,238,.14);border-color:rgba(34,211,238,.38);color:#a5f3fc}.badge.violet{background:rgba(167,139,250,.16);border-color:rgba(167,139,250,.4);color:#ddd6fe}.badge.green{background:rgba(52,211,153,.14);border-color:rgba(52,211,153,.4);color:#bbf7d0}.badge.amber{background:rgba(251,191,36,.14);border-color:rgba(251,191,36,.4);color:#fde68a}.badge.red{background:rgba(251,113,133,.14);border-color:rgba(251,113,133,.4);color:#fecdd3}.badge.gray{background:var(--surface-2)}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1.5rem}.stat-card,.stat-chip{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:1.1rem 1.15rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .2s ease,border-color .2s ease}.stat-card:hover,.stat-chip:hover{transform:translateY(-3px);border-color:var(--border-strong)}.stat-card:after,.stat-chip:after{content:"";position:absolute;top:-40%;right:-20%;width:120px;height:120px;background:radial-gradient(circle,rgba(124,134,255,.22),transparent 70%);pointer-events:none}.stat-card .value,.stat-chip strong{display:block;font-size:1.7rem;font-weight:720;letter-spacing:-.02em;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-card .label,.stat-chip span{color:var(--muted);font-size:.82rem;font-weight:500}.stat-card .stat-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--grad-soft);border:1px solid var(--border);color:var(--accent);margin-bottom:.75rem}.stat-card .stat-ico svg{width:18px;height:18px}.progress-bar{height:8px;background:rgba(255,255,255,.07);border-radius:999px;overflow:hidden;margin:.5rem 0 .85rem}.progress-bar>span{display:block;height:100%;border-radius:999px;background:var(--grad);box-shadow:0 0 12px rgba(124,134,255,.6);transition:width .6s cubic-bezier(.2,.7,.2,1)}.clean-list{list-style:none;padding:0;margin:0}.list-item{display:flex;align-items:center;gap:.65rem;padding:.7rem .85rem;border-radius:var(--r-sm);border:1px solid transparent;transition:background .15s ease,border-color .15s ease}.list-item+.list-item{margin-top:.3rem}.list-item:hover{background:var(--surface-2);border-color:var(--border)}.table-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--border)}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th{text-align:left;font-size:.76rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:rgba(255,255,255,.03);white-space:nowrap}.table td,.table th{padding:.75rem .9rem;border-bottom:1px solid var(--border)}.table td{vertical-align:middle}.table tbody tr{transition:background .12s ease}.table tbody tr:hover{background:rgba(255,255,255,.028)}.table tbody tr:last-child td{border-bottom:none}.empty{text-align:center;padding:2rem 1rem;color:var(--muted)}.empty svg{width:34px;height:34px;opacity:.4;margin-bottom:.6rem}.chat{display:flex;flex-direction:column;gap:1rem;max-height:480px;overflow-y:auto;padding:.5rem .25rem}.chat-msg{display:flex;gap:.7rem;max-width:82%;animation:bubble-in .3s ease both}@keyframes bubble-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.chat-msg.mine{align-self:flex-end;flex-direction:row-reverse}.chat-ava{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:50%;font-size:.72rem;font-weight:700;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}.chat-ava.ai{background:linear-gradient(135deg,#22d3ee,#6366f1)}.chat-ava.student{background:linear-gradient(135deg,#8b5cf6,#ec4899)}.chat-ava.system{background:linear-gradient(135deg,#f43f5e,#fb7185)}.bubble{padding:.75rem 1rem;border-radius:16px;border:1px solid var(--border);background:var(--surface-2);white-space:pre-wrap;word-break:break-word;box-shadow:var(--shadow-sm)}.bubble .role-tag{font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem;opacity:.75}.chat-msg .bubble{border-bottom-left-radius:5px}.chat-msg.mine .bubble{border-bottom-left-radius:16px;border-bottom-right-radius:5px;background:rgba(124,134,255,.14);border-color:rgba(124,134,255,.32)}.bubble.ai{background:rgba(34,211,238,.07);border-color:rgba(34,211,238,.22)}.bubble.system{background:rgba(251,113,133,.09);border-color:rgba(251,113,133,.3);color:#fecdd3}.chat-photo{display:block;max-width:min(100%,420px);max-height:360px;width:auto;height:auto;border-radius:12px;margin:.35rem 0;border:1px solid var(--border)}.status-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .9rem;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);font-size:.88rem;color:var(--text-soft)}.status-pill.err{background:rgba(251,113,133,.1);border-color:rgba(251,113,133,.35);color:#fecdd3}.spinner{width:15px;height:15px;border-radius:50%;border:2px solid rgba(255,255,255,.25);border-top:2px solid var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.math-toolbar{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}.math-toolbar button{padding:.35rem .6rem;font-size:.82rem;font-family:var(--mono)}.math-split{display:grid;grid-template-columns:1fr 1fr;grid-gap:.85rem;gap:.85rem}.math-split textarea{margin-bottom:0;min-height:190px;font-family:var(--mono);font-size:.88rem}.math-preview{margin-bottom:0;min-height:190px;overflow:auto;background:rgba(255,255,255,.02);border:1px solid var(--border);border-radius:var(--r-sm);padding:.9rem}.math-md p{margin:.4rem 0}.math-md .katex-display{margin:.75rem 0;overflow-x:auto;overflow-y:hidden}.ai-preview{font-family:var(--mono);font-size:.8rem;line-height:1.55;white-space:pre-wrap;background:#0a0f1c;border:1px solid var(--border);border-radius:var(--r-sm);padding:1rem;max-height:300px;overflow:auto;color:var(--text-soft)}.course-layout{display:grid;grid-template-columns:minmax(220px,260px) 1fr;grid-gap:1.25rem;gap:1.25rem;align-items:start}.lesson-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.35rem}.lesson-list li{display:flex;align-items:center;gap:.3rem}.lesson-list .lesson-name{flex:1 1;text-align:left;background:transparent;border:1px solid transparent;color:var(--text-soft);box-shadow:none;font-weight:500;padding:.55rem .7rem}.lesson-list .lesson-name:hover{background:var(--surface-2);color:var(--text);transform:none;box-shadow:none}.lesson-list .lesson-name.active{background:var(--grad-soft);border-color:rgba(124,134,255,.4);color:#fff}.hero{position:relative;text-align:center;padding:4.5rem 1.5rem 3rem;overflow:hidden}.hero h1{font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.08;margin:1.25rem auto 1rem;max-width:15ch}.hero p.lead{font-size:1.12rem;color:var(--text-soft);max-width:58ch;margin:0 auto 2rem}.hero-cta{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:1.25rem;gap:1.25rem;margin-top:1rem}.feature .f-ico{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--grad-soft);border:1px solid var(--border);color:var(--accent);margin-bottom:.9rem}.feature .f-ico svg{width:22px;height:22px}.auth-wrap{display:grid;grid-template-columns:1.05fr 1fr;grid-gap:1.5rem;gap:1.5rem;align-items:stretch;max-width:940px;margin:1.5rem auto}.auth-brand{position:relative;overflow:hidden;border-radius:var(--r-xl);padding:2.5rem;border:1px solid var(--border);background:radial-gradient(500px 300px at 20% 10%,rgba(99,102,241,.35),transparent 60%),radial-gradient(500px 400px at 100% 100%,rgba(34,211,238,.22),transparent 60%),var(--surface);display:flex;flex-direction:column;justify-content:space-between}.auth-brand h2{font-size:1.9rem;letter-spacing:-.02em}.auth-feature{display:flex;gap:.7rem;align-items:flex-start;margin-top:1rem}.auth-feature .tick{display:grid;place-items:center;width:26px;height:26px;flex-shrink:0;border-radius:8px;background:rgba(52,211,153,.15);border:1px solid rgba(52,211,153,.35);color:var(--success)}.auth-feature .tick svg{width:15px;height:15px}.price-card{border:1px solid var(--border);border-radius:var(--r-lg);padding:1.4rem;background:var(--surface);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.price-card:hover{transform:translateY(-4px);border-color:rgba(124,134,255,.45);box-shadow:var(--shadow-lg)}.price-card .amount{font-size:2rem;font-weight:720;letter-spacing:-.02em}.price-card .amount small{font-size:.9rem;font-weight:500;color:var(--muted)}.qr-box{width:180px;height:180px;border-radius:var(--r);border:2px dashed var(--border-strong);display:grid;place-items:center;color:var(--muted);font-weight:600;background:repeating-linear-gradient(45deg,rgba(255,255,255,.02),rgba(255,255,255,.02) 8px,rgba(255,255,255,.05) 0,rgba(255,255,255,.05) 16px)}.stack{flex-direction:column}.row,.stack{display:flex;gap:.75rem}.row{flex-wrap:wrap}.between,.row{align-items:center}.between{display:flex;justify-content:space-between;gap:1rem}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.divider{height:1px;background:var(--border);border:none;margin:1.25rem 0}.back-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.9rem;margin-bottom:1rem}.back-link:hover{color:var(--text)}@media (max-width:900px){.auth-wrap,.course-layout,.math-split{grid-template-columns:1fr}.auth-brand{display:none}}@media (max-width:860px){.nav{flex-wrap:wrap}.nav-toggle{display:inline-flex}.nav-links{display:none;flex-basis:100%;width:100%;flex-direction:column;align-items:stretch;gap:.25rem;padding-top:.5rem;margin-top:.25rem;border-top:1px solid var(--border);animation:menu-in .2s ease both}.nav-links.open{display:flex}.nav-link{padding:.7rem .85rem;font-size:.98rem}.nav-link.active:after{display:none}.nav-user{margin:.35rem 0 0;padding:.7rem .85rem 0;border-left:none;border-top:1px solid var(--border)}.nav-user-name{flex:1 1}}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media (max-width:640px){.container{padding:1.25rem 1rem 3rem}h1{font-size:1.6rem}.chat-msg{max-width:92%}}