:root{color-scheme:light;--bg: #f4f6fa;--card: #ffffff;--line: #e3e7ee;--text: #1b1f27;--muted: #67707e;--accent: #2563eb;--accent-dark: #1d4ed8;--green-bg: #d9f2e2;--green-tx: #12633a;--red-bg: #fde2e1;--red-tx: #a4120c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:url(/formulas.svg) repeat;background-size:640px 640px;opacity:.62;pointer-events:none;z-index:-1}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:28px;margin:0}h2{font-size:20px;margin:0 0 12px}h3{font-size:18px;margin:0 0 6px}.container{max-width:960px;margin:0 auto;padding:24px 16px 72px}.container.no-nav{padding-top:30px}#root{min-height:100vh;display:flex;flex-direction:column}#root>main{flex:1 0 auto;width:100%}@supports (min-height: 100dvh){#root{min-height:100dvh}}.navbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:24px;padding:8px 24px;background:#ffffffeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);flex-wrap:wrap}.navbar .brand{display:flex;align-items:center;flex-shrink:0}.navbar .brand:hover{text-decoration:none}.navbar .brand img{height:48px;width:auto;display:block}.navbar nav{display:flex;align-items:center;gap:4px;flex:1;flex-wrap:wrap}.navbar nav a{color:var(--muted);padding:7px 12px;border-radius:9px;font-size:15px;font-weight:500;transition:background .15s ease,color .15s ease}.navbar nav a:hover{background:#eef2f8;color:var(--text);text-decoration:none}.navbar nav a.active{background:#e8efff;color:var(--accent);font-weight:600}.nav-right{display:flex;align-items:center;gap:10px}.nav-right .badge{background:#e8efff;color:var(--accent-dark);max-width:220px;overflow:hidden;text-overflow:ellipsis}.nav-right .btn{white-space:nowrap}@media (max-width: 720px){.navbar{padding:8px 14px;gap:12px}.navbar .brand img{height:40px}.navbar nav{order:3;width:100%}}.hero{position:relative;overflow:hidden;text-align:center;padding:64px 24px 52px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(160deg,#eef4ffe6,#f7f9ffe0 48%,#fff6eae6);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);animation:hero-in .7s cubic-bezier(.22,1,.36,1) both}.hero-inner{position:relative;z-index:2}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.blob{position:absolute;border-radius:50%;filter:blur(55px);opacity:.5;animation:floaty 11s ease-in-out infinite}.b1{width:300px;height:300px;background:#93c5fd;top:-90px;left:-70px}.b2{width:260px;height:260px;background:#fdba74;bottom:-100px;right:6%;animation-delay:-4s}.b3{width:240px;height:240px;background:#c7d2fe;top:30%;right:-80px;animation-delay:-7s}.chip{position:absolute;padding:6px 13px;border-radius:999px;background:#fffc;border:1px solid rgba(37,99,235,.2);box-shadow:0 6px 18px #14204014;color:#2b4a8f;font-weight:600;font-size:14px;animation:floaty 7s ease-in-out infinite}.c1{top:16%;left:5%;--r: -7deg;animation-delay:0s}.c2{top:58%;left:9%;--r: 5deg;animation-delay:-1.6s}.c3{top:12%;right:7%;--r: 6deg;animation-delay:-3.2s}.c4{top:52%;right:5%;--r: -5deg;animation-delay:-2.2s}.c5{bottom:10%;left:24%;--r: 8deg;animation-delay:-4.4s}.c6{bottom:14%;right:26%;--r: -9deg;animation-delay:-5.6s}.hero-tag{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:0 4px 14px #1420400f;color:var(--muted);font-size:13px;animation:fade-down .6s ease both}.hero-tag:before{content:"";width:8px;height:8px;border-radius:50%;background:#22c55e;animation:pulse 2s ease-out infinite}.hero-title{font-size:clamp(40px,7vw,62px);line-height:1.05;margin:16px 0 14px;background:linear-gradient(90deg,#1d4ed8,#2563eb,#f97316,#1d4ed8);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:gradient-flow 9s linear infinite,fade-up .7s ease both .05s}.hero .lead{max-width:720px;margin:0 auto 24px;font-size:18px;line-height:1.6;animation:fade-up .7s ease both .15s}.hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;animation:fade-up .7s ease both .25s}.btn.lg{padding:12px 24px}.hero-stats{display:flex;justify-content:center;gap:44px;flex-wrap:wrap;margin-top:34px;padding-top:26px;border-top:1px dashed rgba(37,99,235,.25);animation:fade-up .7s ease both .35s}.hero-stats div{display:flex;flex-direction:column;gap:2px}.hero-stats b{font-size:26px;color:var(--accent-dark)}.hero-stats span{font-size:13px;color:var(--muted)}.block{margin-top:40px;padding:26px 24px 30px;background:#ffffffc7;border:1px solid rgba(255,255,255,.85);border-radius:24px;box-shadow:0 10px 34px #0f172a0f;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.block>h2{margin-bottom:16px}.section-sub{margin:-8px 0 18px;max-width:640px}.muted.section-sub,.hero .lead{color:#465062}@media (max-width: 720px){.block{padding:20px 14px 24px;border-radius:18px;margin-top:24px}}[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .6s ease var(--d, 0s),transform .6s ease var(--d, 0s)}[data-reveal].is-visible{opacity:1;transform:none}.topics{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.topic{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.topic:hover{transform:translateY(-6px);box-shadow:0 16px 32px #1420401a;border-color:#c9d8ff}.topic-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:13px;background:linear-gradient(135deg,#e8efff,#fff2e2);color:var(--accent-dark);margin-bottom:12px}.topic h3{font-size:16px;margin-bottom:6px}.topic p{font-size:14px;line-height:1.55;margin:0}.topic{cursor:pointer}.topic:focus-visible{outline:3px solid #93c5fd;outline-offset:3px}.topic-open{display:inline-flex;align-items:center;gap:7px;margin-top:13px;font-size:13px;font-weight:600;color:var(--accent)}.mini-play{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#e8efff;color:var(--accent);flex:0 0 auto}.topic:hover .mini-play{background:var(--accent);color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px 16px;overflow-y:auto;background:#0d14249e;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in .2s ease both}.modal{width:100%;max-width:760px;margin:auto;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 30px 70px #02061773;animation:modal-in .28s cubic-bezier(.22,1,.36,1) both}.modal-head{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.modal-head .topic-icon{width:40px;height:40px;font-size:20px;margin:0;flex:0 0 auto}.modal-head h3{flex:1;margin:0;font-size:18px}.modal-close{flex:0 0 auto;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--muted);cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}.modal-close:hover{background:var(--red-bg);border-color:#f6b8b5;color:var(--red-tx);transform:scale(1.08)}.modal-video{aspect-ratio:16 / 9;background:#0b1220}.modal-video iframe{display:block;width:100%;height:100%;border:0;background:#0b1220}.ext-video-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;align-self:flex-start}.modal-video video{display:block;width:100%;height:100%;object-fit:contain;background:#0b1220}.video-missing{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:24px;color:#94a3b8;font-size:14px}.video-missing strong{color:#e2e8f0;font-size:16px}.play-badge{display:flex;align-items:center;justify-content:center;width:62px;height:62px;border-radius:50%;background:#ffffff1a;border:2px solid rgba(255,255,255,.35);color:#fff;padding-left:3px;margin-bottom:6px;transition:transform .2s ease,background .2s ease}.play-badge:hover{transform:scale(1.06);background:#ffffff29}.modal-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:14px}.modal-body p{margin:0;font-size:15px;line-height:1.6;color:var(--muted)}.modal-actions{display:flex;gap:10px;flex-wrap:wrap}@media (max-width: 560px){.modal-backdrop{padding:12px;align-items:flex-start}.modal{margin-top:24px}.modal-actions .btn{flex:1;text-align:center}}.pluses{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.plus{display:flex;align-items:flex-start;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;transition:border-color .25s ease,box-shadow .25s ease}.plus:hover{border-color:#bfe6d0;box-shadow:0 12px 26px #14204014}.plus .check{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#dcfce7;color:#15803d;font-weight:700;font-size:15px;animation:pop .45s cubic-bezier(.34,1.56,.64,1) both .35s}.plus h3{font-size:15.5px;margin:2px 0 4px}.plus p{font-size:14px;line-height:1.5;margin:0}.cta{margin-top:44px;padding:36px 24px;border-radius:20px;text-align:center;color:#fff;background:linear-gradient(120deg,#1d4ed8,#2563eb 55%,#f97316 165%);box-shadow:0 18px 40px #1d4ed840}.cta h2{color:#fff;font-size:26px;margin-bottom:8px}.cta p{color:#ffffffd9;margin:0 0 20px}.cta .btn{background:#fff;color:var(--accent-dark);font-weight:600;box-shadow:0 8px 20px #06123840}.cta .btn:hover{background:#f2f6ff}.cta .btn.ghost{background:transparent;color:#fff;border-color:#fff9}.cta .btn.ghost:hover{background:#ffffff24}@keyframes hero-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes fade-down{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}@keyframes floaty{0%,to{transform:translateY(0) rotate(var(--r, 0deg))}50%{transform:translateY(-18px) rotate(var(--r, 0deg))}}@keyframes gradient-flow{0%{background-position:0% 50%}to{background-position:300% 50%}}@keyframes pulse{0%{box-shadow:0 0 #22c55e8c}70%{box-shadow:0 0 0 9px #22c55e00}to{box-shadow:0 0 #22c55e00}}@keyframes pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}@media (max-width: 720px){.hero{padding:44px 16px 36px;border-radius:18px}.chip{display:none}.hero-stats{gap:24px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}[data-reveal]{opacity:1;transform:none}}.steps,.types{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.step{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}.step-num{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;background:var(--accent);color:#fff;border-radius:50%;font-weight:700;margin-bottom:10px}.card.type.free{border-top:3px solid #16a34a}.card.type.paid{border-top:3px solid #d97706}.card.type.closed{border-top:3px solid #6b7280}.badge.type-free{background:#d9f2e2;color:#12633a}.badge.type-paid{background:#fdecc8;color:#92400e}.badge.type-closed{background:#e5e7eb;color:#374151}.type-badge-row{margin-bottom:4px}.editor-topbar{align-items:flex-start;margin-top:4px}.editor-topbar h1{margin-bottom:6px}.editor-topbar .small{max-width:560px}.editor-buttons{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.editor-buttons.bottom{margin-top:18px}.editor-card{padding:18px 20px 20px}.editor-card>.page-head{margin-top:0;margin-bottom:6px}.editor-card code{background:#eef1f6;padding:1px 6px;border-radius:6px;font-size:13px}.editor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.editor-grid.four{grid-template-columns:170px 1fr;align-items:start}.editor-grid+label,.editor-item label+label{margin-top:12px}.editor-card label{margin-top:12px}.editor-card .editor-grid label{margin-top:0}.editor-card textarea{resize:vertical}.editor-item{border:1px solid var(--line);border-radius:12px;padding:12px 14px 14px;margin-top:12px;background:#fafbfd}.editor-item-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.editor-item-head strong{font-size:14px}.editor-item-title{display:inline-flex;align-items:center;gap:8px;color:var(--accent-dark)}.editor-item-buttons{display:flex;gap:6px}.chip-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--muted);font:inherit;font-size:14px;cursor:pointer;box-shadow:0 1px 2px #1018280d;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease,box-shadow .2s ease}.chip-btn:hover:not(:disabled){background:#eef2f8;color:var(--text);transform:translateY(-1px);box-shadow:0 4px 10px #10182814}.chip-btn:active:not(:disabled){transform:translateY(0) scale(.94)}.chip-btn:disabled{opacity:.4;cursor:default}.chip-btn.danger:hover{background:var(--red-bg);border-color:#f6b8b5;color:var(--red-tx)}.saved{background:var(--green-bg);color:var(--green-tx);padding:10px 12px;border-radius:8px;font-size:14px}.saved-inline{color:var(--green-tx);font-size:14px;font-weight:600}@media (max-width: 720px){.editor-topbar{flex-direction:column}.editor-grid.four{grid-template-columns:1fr}}.site-footer{margin-top:56px;background:linear-gradient(180deg,#111a2e,#0c1424);border-top:1px solid #1e293b;color:#cbd5e1}.site-footer .inner{max-width:960px;margin:0 auto;padding:40px 16px 0}.footer-grid{display:grid;grid-template-columns:1.8fr 1fr 1fr 1.2fr;gap:30px;padding-bottom:26px}.footer-logo{display:inline-block;background:#fff;padding:8px 12px;border-radius:12px;margin-bottom:14px;box-shadow:0 6px 18px #00000040}.footer-logo img{height:44px;width:auto;display:block}.footer-brand p{font-size:14px;line-height:1.6;color:#94a3b8;margin:0 0 14px;max-width:320px}.footer-tag{display:inline-block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#7dd3fc;border:1px solid rgba(125,211,252,.35);border-radius:999px;padding:5px 12px}.footer-col{display:flex;flex-direction:column}.footer-col h4{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#fff;margin:4px 0 14px;font-weight:600}.footer-col a,.footer-col button.flink{display:block;color:#94a3b8;font-size:14px;font-family:inherit;background:none;border:0;padding:5px 0;text-align:left;cursor:pointer;transition:color .18s ease,transform .18s ease}.footer-col a:hover,.footer-col button.flink:hover{color:#fff;transform:translate(4px);text-decoration:none}.footer-user{font-size:14px;color:#e2e8f0;padding:5px 0;overflow:hidden;text-overflow:ellipsis}.footer-note{font-size:13.5px;color:#64748b;line-height:1.55;padding:4px 0}.footer-bottom{border-top:1px solid #1e293b;padding:16px 0 20px;display:flex;justify-content:center;text-align:center;gap:10px;flex-wrap:wrap;font-size:13px;color:#64748b}.footer-bottom b{color:#e2e8f0;font-weight:600}@media (max-width: 860px){.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1 / -1}}@media (max-width: 520px){.footer-grid{grid-template-columns:1fr;gap:22px}}.to-top{position:fixed;right:22px;bottom:22px;z-index:90;width:48px;height:48px;display:grid;place-items:center;border:0;border-radius:50%;background:linear-gradient(180deg,#3b82f6 0%,var(--accent-dark) 100%);color:#fff;box-shadow:0 10px 26px #2563eb61;cursor:pointer;opacity:0;transform:translateY(18px) scale(.85);pointer-events:none;transition:opacity .25s ease,transform .25s ease,background .2s ease,color .2s ease,box-shadow .25s ease}.to-top.show{opacity:1;transform:none;pointer-events:auto}.to-top:hover{background:linear-gradient(180deg,#2563eb,#1741b8);color:#fff;box-shadow:0 14px 30px #2563eb73}.to-top.show:hover{transform:translateY(-3px)}.to-top:focus-visible{outline:3px solid rgba(37,99,235,.4);outline-offset:3px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;margin-top:18px}.card.narrow{max-width:460px;margin-left:auto;margin-right:auto;margin-top:40px}.narrow-form{max-width:560px}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}.inline-ico{vertical-align:-3px;margin-right:6px}.badge .inline-ico{margin-right:2px}.inline-ico-bare{vertical-align:-4px}.error{background:var(--red-bg);color:var(--red-tx);padding:10px 12px;border-radius:8px;font-size:14px}.badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.badge{background:var(--green-bg);color:var(--green-tx);padding:4px 10px;border-radius:999px;font-size:13px;white-space:nowrap}.badge.accent{background:#dbe7ff;color:var(--accent-dark)}button,input[type=submit],input[type=button]{font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border:1px solid transparent;border-radius:11px;background:linear-gradient(180deg,#3b82f6 0%,var(--accent) 55%,var(--accent-dark) 100%);color:#fff;font:inherit;font-weight:600;font-size:14px;line-height:1.25;text-decoration:none;cursor:pointer;box-shadow:0 6px 16px #2563eb42,inset 0 1px #fff3;transition:transform .16s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease,color .2s ease,filter .2s ease}.btn svg{flex:0 0 auto}.btn:hover{text-decoration:none;transform:translateY(-1px);filter:brightness(1.04);box-shadow:0 10px 22px #2563eb52,inset 0 1px #ffffff38}.btn:active{transform:translateY(0) scale(.98);box-shadow:0 3px 8px #2563eb3d}.btn:focus-visible{outline:3px solid rgba(37,99,235,.4);outline-offset:2px}.btn:disabled{opacity:.55;cursor:default;transform:none;filter:none;box-shadow:none}.btn.ghost{background:#fff;color:var(--accent-dark);border-color:#d5dceb;box-shadow:0 1px 2px #1018280d}.btn.ghost:hover{background:#f5f8ff;border-color:#b9cbf4;color:var(--accent-dark);filter:none;box-shadow:0 8px 16px #10182814}.btn.ghost:active{background:#eaefff}.btn.danger{background:#fff;color:var(--red-tx);border-color:#f0c5c2;box-shadow:0 1px 2px #1018280d}.btn.danger:hover{background:var(--red-bg);border-color:#eda8a4;color:var(--red-tx);filter:none;box-shadow:0 8px 16px #a4120c1a}form{display:flex;flex-direction:column;gap:12px}label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}input,textarea,select{padding:10px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;color:var(--text);background:#fff}input:focus,textarea:focus{outline:2px solid #cfe0ff;border-color:var(--accent)}.search{flex-direction:row;align-items:center;margin-top:16px}.search input{flex:1}.roles{border:1px solid var(--line);border-radius:10px;padding:12px;margin:0}.roles legend{font-size:14px;color:var(--muted);padding:0 6px}.role{flex-direction:row;align-items:center;gap:10px;padding:8px;border:1px solid transparent;border-radius:8px;cursor:pointer;font-size:15px;color:var(--text)}.role span{margin-left:auto;font-size:13px}.role.active{border-color:var(--accent);background:#eef3ff}.auth-wrap{max-width:440px;margin:44px auto 24px}.auth-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:30px 30px 24px;box-shadow:0 14px 38px #14204014}.auth-head{text-align:center;margin-bottom:18px}.auth-head img{height:56px;width:auto;margin-bottom:12px}.auth-head h1{font-size:24px;margin-bottom:6px}.auth-head p{margin:0;font-size:14px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#eef1f6;border:0;border-radius:11px;padding:4px;margin:0 0 20px}.auth-tabs a{display:block;text-align:center;padding:8px 6px;border-radius:8px;color:var(--muted);font-size:14px;font-weight:600;transition:background .15s ease,color .15s ease}.auth-tabs a:hover{color:var(--text);text-decoration:none}.auth-tabs a.active{background:#fff;color:var(--accent);box-shadow:0 1px 3px #1018281f}.auth-card label{font-size:13px;font-weight:600;color:var(--text);gap:6px}.auth-card input{padding:11px 12px;border-radius:10px;font-size:15px}.auth-card input::placeholder{color:#9aa3b2;font-weight:400}.auth-card .btn.block{display:block;width:100%;padding:12px;border-radius:10px;font-size:15px;font-weight:600;margin-top:4px}.auth-card .roles{border-radius:12px}.auth-card .roles legend{font-size:13px;font-weight:600;color:var(--text)}.auth-card .role{border-color:var(--line);background:#fafbfd}.auth-card .role.active{border-color:var(--accent);background:#eef3ff}.auth-foot{margin:18px 0 0;padding-top:16px;border-top:1px dashed var(--line);text-align:center;font-size:14px}.pw-head{display:flex;justify-content:space-between;align-items:center}.pw-field{position:relative;display:block}.pw-field input{display:block;width:100%;box-sizing:border-box;padding-right:74px}.pw-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--accent);font-size:12px;font-weight:700;cursor:pointer;padding:4px 2px}.gen-btn{border:0;background:transparent;color:var(--accent);font-size:14px;font-weight:700;cursor:pointer;padding:0}.gen-btn:hover{text-decoration:underline}.auth-card label.consent{flex-direction:row;align-items:flex-start;gap:8px;font-size:13px;font-weight:400;color:var(--muted)}.auth-card label.consent input{width:auto;padding:3px;margin-top:1px;flex:0 0 auto}.faq-page{max-width:760px;margin:0 auto}.faq-item{border-bottom:1px solid var(--line);padding:10px 2px}.faq-item:last-child{border-bottom:0}.faq-item summary{cursor:pointer;font-weight:600}.faq-item p{margin:8px 0 2px;color:var(--muted);line-height:1.55}.faq-form{margin-top:8px}.pages-create{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.pages-create label{flex:1;min-width:200px}.pages-create .btn{margin-bottom:2px}.blk-card{border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:14px;background:#fafbfd;display:flex;flex-direction:column;gap:10px}.blk-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.blk-kind{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.blk-row{display:flex;align-items:center;gap:8px}.blk-row input{flex:1}.blk-idx{color:var(--muted);font-size:13px;min-width:22px;text-align:right}.blk-check{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text)}.blk-check input{width:auto;padding:3px;margin:0}.blk-item{border:1px dashed var(--line);border-radius:10px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:10px}.blk-item-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:600;color:var(--muted)}.blk-palette{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}.page-view{max-width:820px;margin:0 auto}.pg-title{margin-bottom:6px}.pg-sub{margin:0 0 8px;font-size:17px;color:var(--muted)}.pg-edit-row{margin:0 0 18px}.page-view h2{margin-top:26px}.pv-text{line-height:1.65}.pv-text p{margin:0 0 12px}.pv-text p:last-child{margin-bottom:0}.pv-text code{background:#eef1f6;padding:1px 6px;border-radius:6px;font-size:.92em}.pv-text a{color:var(--accent)}.pv-empty{margin-top:24px}figure.pv-img{margin:22px 0}.pv-img img{display:block;width:100%;border-radius:14px}.pv-img figcaption{margin-top:8px;font-size:13px;color:var(--muted);text-align:center}.pv-video{position:relative;padding-top:56.25%;margin:22px 0;background:#000;border-radius:14px;overflow:hidden}.pv-video iframe,.pv-video video{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.pv-list{margin:18px 0;padding-left:22px}.pv-list li{margin:6px 0;line-height:1.6}.pv-quote{margin:22px 0;padding:14px 18px;border-left:4px solid var(--accent);background:#f6f9ff;border-radius:0 12px 12px 0}.pv-quote cite{display:block;margin-top:8px;font-size:13px;color:var(--muted);font-style:normal}.pv-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.pv-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin:22px 0}.pv-card{border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--card)}.pv-card h3{margin:0 0 8px;font-size:16px}.pv-card .pv-text{font-size:14px;color:var(--muted)}.pv-callout{border:1px solid;border-radius:12px;padding:14px 16px;margin:22px 0}.pv-callout.info{border-color:#93c5fd;background:#eff6ff}.pv-callout.warning{border-color:#fcd34d;background:#fffbeb}.pv-callout.success{border-color:#86efac;background:#f0fdf4}.pv-callout h3{margin:0 0 6px;font-size:15px}.pv-faq{margin:22px 0}.pv-hr{margin:28px 0;border:0;border-top:1px solid var(--line)}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:16px}.card.course{margin-top:0;display:flex;flex-direction:column;gap:8px}.meta{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--muted)}.row{display:flex;align-items:center;gap:10px;margin-top:auto;flex-wrap:wrap}.lessons{display:flex;flex-direction:column;gap:10px}.lesson{border:1px solid var(--line);border-radius:10px;padding:4px 12px}.lesson summary{cursor:pointer;padding:10px 0;display:flex;align-items:center;gap:8px;font-weight:600}.lesson summary::-webkit-details-marker{display:none}.lesson .num{color:var(--muted);font-weight:400}.lesson-body{padding:10px 0 14px;border-top:1px dashed var(--line)}.lesson-body p{white-space:pre-wrap;line-height:1.55;margin:10px 0 0}.access-list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.access-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.profile{display:flex;flex-direction:column;gap:8px}.progress-row{display:flex;align-items:center;gap:10px;margin-top:10px}.progress{flex:1;height:8px;background:#e5e7eb;border-radius:999px;overflow:hidden}.progress .bar{height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}.progress-block{margin-top:4px}.progress-block .progress-row{margin-top:0}.lesson.done{background:#f2fbf6;border-color:#b7e6cb}.lesson summary .badge{margin-left:auto;font-weight:400}.lesson summary .btn{padding:6px 10px}.access-list li.stat{flex-direction:column;align-items:stretch;gap:8px}.stat-main{display:flex;flex-direction:column;gap:6px}.stat-main .progress-row{margin-top:0}.materials{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.materials li{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;flex-wrap:wrap}.materials .mat-link{font-weight:600}.materials .btn{margin-left:auto;padding:5px 10px}.material-forms{display:flex;flex-direction:column;gap:10px;margin-top:14px}.material-forms form{display:flex;flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px}.material-forms input[type=file]{border:none;padding:0}.material-forms input[type=url]{flex:1;min-width:220px}.video-wrap{position:relative;width:100%;max-width:640px;aspect-ratio:16 / 9;margin-bottom:4px}.video-wrap iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;border-radius:8px}.assignments{display:flex;flex-direction:column;gap:14px;margin-top:14px}.assignment{border:1px solid var(--line);border-radius:8px;padding:12px}.assignment-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.assignment-head .btn{margin-left:auto}.my-sub{margin-top:10px;display:flex;flex-direction:column;gap:8px}.sub-comment{background:#2563eb14;border-left:3px solid #2563eb;padding:8px 10px;border-radius:0 6px 6px 0;margin:0}.hw-submit{display:flex;flex-direction:column;gap:8px}.hw-submit textarea{width:100%;resize:vertical}.hw-submit-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.subs{display:flex;flex-direction:column;gap:12px;margin-top:12px}.submission{border-top:1px dashed var(--line);padding-top:10px}.sub-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.review{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px}.review input{flex:1;min-width:200px}.hw-create{display:flex;flex-direction:column;gap:8px;margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}.hw-create-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.badge.st-submitted{background:#2563eb1f;color:#2563eb}.badge.st-accepted{background:#16a34a24;color:#16a34a}.badge.st-rejected{background:#dc26261f;color:#dc2626}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.stat-item{border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.stat-item strong{font-size:22px}.stat-item span{font-size:13px;opacity:.7}.admin-search{width:100%;margin-bottom:12px}.admin-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.admin-list>li{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid var(--line);border-radius:8px;padding:10px 12px}.admin-list>li.muted-row{opacity:.6}.admin-user{display:flex;flex-direction:column;gap:4px}.admin-user a{font-weight:600}.admin-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.badge.danger{background:#dc26261f;color:#dc2626}.ok{color:#16a34a}.email-body{margin-top:8px}.email-body summary{cursor:pointer;font-size:13px;opacity:.8}.email-body pre{white-space:pre-wrap;word-break:break-word;background:#0000000a;border-radius:6px;padding:10px;margin:8px 0 0;font-size:13px}.kind-lecture{background:#dbe7ff;color:#1d4ed8}.kind-video{background:#ede9fe;color:#6d28d9}.kind-lab{background:#fef3c7;color:#92400e}.kind-reference{background:#d9f2e2;color:#12633a}.kind-quiz{background:#fdecc8;color:#92400e}.quiz-card{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:12px 14px}.quiz-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.quiz-head .num{color:var(--muted);font-weight:400}.quiz-head .quiz-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.quiz-card p{margin:8px 0 0}.seq-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.seq-list li{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px 12px}.seq-list .num{color:var(--muted)}.seq-btns{margin-left:auto;display:flex;gap:6px}.seq-btns .btn{padding:5px 10px;gap:4px}.q-card{border:1px solid var(--line);border-radius:10px;padding:14px;margin-top:12px}.q-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.q-head .num{color:var(--muted)}.q-choices{display:flex;flex-direction:column;gap:8px;margin-top:10px}.q-choice{flex-direction:row;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:8px 12px;cursor:pointer;font-size:15px;color:var(--text)}.q-choice:hover{border-color:var(--accent);background:#f6f9ff}.q-choice input{padding:0}.pair-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.pair-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pair-row strong{min-width:150px}.pair-row select{flex:1;min-width:180px}.pair-row input[type=text]{flex:1;min-width:150px}.q-card.review.ok{border-color:#b7e6cb;background:#f7fdf9}.q-card.review.bad{border-color:#f0b9b8;background:#fff8f8}.choice-review{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:6px}.choice-review li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px dashed var(--line);border-radius:8px;padding:6px 10px}.choice-review li.mine{border-style:solid;border-color:var(--accent);background:#eef3ff}.pair-review{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:6px}.pair-review li{border-bottom:1px dashed var(--line);padding:4px 0}.attempt-list{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-direction:column;gap:8px}.attempt-list li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line);border-radius:8px;padding:8px 12px}.choice-editor{display:flex;flex-direction:column;gap:8px}.choice-row{display:flex;align-items:center;gap:8px}.choice-row input[type=text]{flex:1}.choice-row input[type=radio],.choice-row input[type=checkbox]{flex:0 0 auto;padding:0}.vf-field{display:flex;flex-direction:column;gap:6px;margin-top:12px;font-size:14px;color:var(--muted)}.vf-label{display:block}.vf-actions{position:relative;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vf-actions .vf-btn{padding:7px 13px;font-size:14px;gap:6px}.vf-actions .vf-btn.on{background:#eef3ff;border-color:#b9cbf4;color:var(--accent-dark)}.vf-error{color:var(--red-tx);font-size:13px}.vf-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:70;min-width:min(340px,100%);max-height:300px;overflow:auto;display:flex;flex-direction:column;gap:2px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px #1018282e;color:var(--text)}.vf-note{font-size:13px;padding:6px 8px}.vf-item{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:0;border-radius:8px;background:none;font:inherit;font-size:13px;color:var(--text);text-align:left;cursor:pointer;transition:background .15s ease}.vf-item:hover{background:#eef2f8}.vf-item svg{color:var(--accent);flex:0 0 auto}.vf-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vf-size{flex:0 0 auto;font-size:12px;color:var(--muted)}.mine-courses{margin-bottom:28px}.mine-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.mine-head h2{margin:0}.chips{display:flex;gap:8px;flex-wrap:wrap}.chips .fchip{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:6px 14px;font-size:14px;cursor:pointer}.chips .fchip:hover{color:var(--text);border-color:#c9d2e0}.chips .fchip.on{background:var(--accent);border-color:var(--accent);color:#fff}.badge.success{background:var(--green-bg);color:var(--green-tx)}.done-badge{margin-top:6px;align-self:flex-start}.course-cover{display:block;width:100%;aspect-ratio:16 / 7;object-fit:cover;border-radius:10px;margin-bottom:12px;background:var(--bg)}.cover-input{margin:8px 0;display:block}.cover-input input[type=file]{display:block;margin-top:6px}.cover-preview{display:block;max-width:360px;width:100%;border:1px solid var(--line);border-radius:10px;margin-top:12px}.mode-btns{display:flex;gap:8px;flex-wrap:wrap}.edit-course-btn,.start-study{white-space:nowrap}.outline-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.outline-list li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:9px 12px}.outline-list li.done{background:#f2fbf6;border-color:#b7e6cb}.outline-list .num{color:var(--muted)}.outline-list strong{flex:1 1 auto;min-width:160px}.outline-list li.jump{cursor:pointer}.outline-list li.jump:hover{background:#eef2f8;border-color:#c9d8ff}.edit-tools{margin-top:8px}.tool-palette .fchip{padding:8px 16px}.lesson.stage.current{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.lesson.stage.done.current{border-color:#b7e6cb;box-shadow:0 0 0 1px #b7e6cb}.stage-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#c7d7ff,#eef4ff);color:var(--accent-dark);font-weight:700;line-height:1;flex:none;-webkit-user-select:none;user-select:none}img.avatar{display:block;object-fit:cover}.nav-right .badge.nav-user{display:inline-flex;align-items:center;gap:8px;max-width:280px;padding:3px 12px 3px 4px}.nav-user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cab-tabs{margin-bottom:14px}.chips .fchip svg{vertical-align:-2px}.card h2 svg{vertical-align:-3px;margin-right:8px;color:var(--accent)}.muted svg{vertical-align:-2px}.card h3.cab-sub{margin:22px 0 10px;font-size:15px;font-weight:600;color:var(--muted)}.profile-top{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.profile-actions{display:flex;flex-direction:column;gap:8px}.cab-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-items:end;margin-top:14px}.cab-form .row{margin-top:0}.cab-search{display:flex;align-items:center;gap:8px;margin-top:6px}.cab-search input{flex:1;min-width:0}.people{display:flex;flex-direction:column;gap:8px;margin-top:12px}.person{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:#fafbfd;flex-wrap:wrap}.person-info{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.person-name{font-weight:600;word-break:break-word}.person .btn{padding:7px 13px}.person-actions{margin-top:0;margin-left:auto}.fav-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--card);color:#98a2b3;cursor:pointer;transition:transform .15s ease,color .15s ease,border-color .15s ease}.fav-btn:hover{color:#f59e0b;border-color:#fcd34d;transform:scale(1.07)}.fav-btn.on{color:#f59e0b;border-color:#fcd34d;background:#fff8e6}.fav-btn.on svg path{fill:currentColor}.fav-btn:disabled{opacity:.6;cursor:default;transform:none}.admin-tabs{margin-bottom:14px}a.fchip{text-decoration:none}.via-group{background:#ede9fe;color:#5b21b6;border-color:#ddd6fe}.invite-link{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;background:var(--bg);margin-bottom:12px}.invite-link code{flex:1;min-width:200px;font-size:13px;word-break:break-all;color:var(--muted)}.access-invite,.access-groups{margin-top:18px}.access-invite h3,.access-groups h3{margin-bottom:8px}.access-groups .access-list li{flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.stats-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:14px}.stat-badge{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.stat-badge strong{font-size:20px}.stat-badge span{font-size:12px;color:var(--muted)}.stats-detail-btn{flex-shrink:0}.stats-detail{width:100%;border-top:1px dashed var(--line);padding-top:10px;display:flex;flex-direction:column;gap:12px}.stats-detail-summary{display:flex;flex-wrap:wrap;gap:6px}.stats-detail-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.stats-detail-cols h4{margin-bottom:6px;font-size:14px}.stats-detail-cols ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.stats-detail-cols li{font-size:13px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.invite-card{max-width:720px;margin:32px auto}.invite-course{display:flex;gap:14px;align-items:flex-start;margin:14px 0;flex-wrap:wrap}.invite-course img{width:140px;height:90px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.rte-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.rte-field .rte-cap{font-size:14px;color:var(--muted)}.rte{position:relative;border:1px solid var(--line);border-radius:10px;background:var(--card)}.rte:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb26}.rte-toolbar{display:flex;flex-wrap:wrap;gap:3px;align-items:center;padding:6px 8px;border-bottom:1px solid var(--line);background:var(--bg);border-radius:9px 9px 0 0}.rte-sep{width:1px;height:18px;background:var(--line);margin:0 3px}.rte-toolbar button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:28px;height:28px;padding:0 7px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text);font:inherit;font-size:14px;line-height:1;cursor:pointer}.rte-toolbar button:hover{background:#e8edf5;border-color:var(--line)}.rte-toolbar .rte-letter{font-size:14px;font-weight:700}.rte-toolbar .rte-letter.it{font-style:italic;font-weight:500}.rte-toolbar .rte-letter.un{font-weight:500;text-decoration:underline}.rte-toolbar .rte-letter.st{font-weight:500;text-decoration:line-through}.rte-toolbar select{height:28px;max-width:170px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--text);font:inherit;font-size:14px;padding:0 4px}.rte-color{position:relative;display:inline-flex;align-items:center;justify-content:center;width:30px;height:28px;border:1px solid transparent;border-radius:7px;cursor:pointer}.rte-color:hover{background:#e8edf5;border-color:var(--line)}.rte-color>span{font-size:14px;font-weight:700;color:var(--text);border-bottom:3px solid transparent;padding-bottom:1px}.rte-color.mark>span{color:var(--text);padding:1px 5px;border-radius:4px;border-bottom:none}.rte-color input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;padding:0;border:none;cursor:pointer}.rte-area{position:relative;padding:12px 14px;min-height:140px;outline:none;line-height:1.6;overflow-wrap:break-word;display:flow-root}.rte-area p{margin:0 0 10px}.rte-area.is-empty:before{content:attr(data-ph);position:absolute;top:12px;left:14px;color:var(--muted);pointer-events:none}.rte-count{padding:4px 10px 6px;border-top:1px solid var(--line);background:var(--bg);border-radius:0 0 9px 9px;text-align:right;font-size:12px;color:var(--muted)}.rte-count.over{color:#b42318;font-weight:600}.rte-pop{position:absolute;top:44px;right:8px;z-index:40;width:260px;max-height:calc(100% - 52px);overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #0b12202e}.rte-pop-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:600}.rte-pop-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--muted)}.rte-pop-row label{flex-direction:row;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.rte-pop input[type=number]{width:58px;height:28px;padding:0 6px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--text);font:inherit;font-size:13px}.rte-pop input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent)}.rte-pop-ops{display:flex;flex-direction:column;gap:6px}.rte-pop .btn{justify-content:center;width:100%}.rte-imgbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:7px 10px;border-bottom:1px solid var(--line);background:#f4f7fd}.rte-imgbar-cap{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--muted)}.rte-imgbar select{height:28px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--text);font:inherit;font-size:14px;padding:0 4px}.rte-chip{display:inline-flex;align-items:center;height:28px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--text);font:inherit;font-size:14px;line-height:1;cursor:pointer}.rte-chip:hover{border-color:var(--accent);color:var(--accent-dark)}.rte-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.rte-chip.danger{color:var(--red-tx);border-color:#f3c2c0}.rte-chip.danger:hover{background:var(--red-bg);border-color:var(--red-tx);color:var(--red-tx)}.rte-area img{max-width:100%;vertical-align:middle}.rich-html{line-height:1.65;overflow-wrap:break-word;display:flow-root}.rich-html>:first-child{margin-top:0}.rich-html>:last-child{margin-bottom:0}.rich-html p{margin:0 0 12px}.rich-html ul,.rich-html ol{margin:0 0 12px;padding-left:24px}.rich-html li{margin:4px 0}.rte-area table,.rich-html table{border-collapse:collapse;width:100%;margin:10px 0}.rte-area th,.rte-area td,.rich-html th,.rich-html td{border:1px solid var(--line);padding:6px 10px;text-align:left;vertical-align:top}.rte-area thead th,.rich-html thead th{background:#eef2f8;font-weight:600}.rich-html blockquote{margin:0 0 12px;padding:6px 12px;border-left:3px solid var(--accent);background:#f1f5fb;border-radius:0 8px 8px 0;color:var(--muted)}.rich-html hr{border:none;border-top:1px solid var(--line);margin:14px 0}.rich-html img{max-width:100%;height:auto;border-radius:8px;vertical-align:middle}.rich-html a{color:var(--accent)}.lab-tools{display:flex;flex-direction:column;gap:10px;border-top:1px dashed var(--line);padding-top:12px}.lab-src{display:flex;gap:8px;flex-wrap:wrap}.lab-lib{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--bg)}.lab-secs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.lab-sec{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--text);font:inherit;font-size:13px;cursor:pointer}.lab-sec:hover{border-color:var(--accent)}.lab-sec.on{background:var(--accent);border-color:var(--accent);color:#fff}.lab-sec-n{min-width:18px;padding:0 5px;border-radius:9px;background:#00000014;font-size:12px;text-align:center}.lab-sec.on .lab-sec-n{background:#ffffff40}.lab-card{display:flex;align-items:flex-start;gap:14px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--card);margin-bottom:8px}.lab-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.lab-card p{margin:0;line-height:1.45}.lab-card-foot{display:flex;justify-content:flex-end;margin-top:auto;padding-top:2px}.lab-card-body>.badge{align-self:flex-start;background:#eef2f8;color:#475569}.lab-editor{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px dashed var(--line);border-radius:10px;background:var(--bg)}.lab-sub{font-size:13px;font-weight:600}.lab-list{display:flex;flex-direction:column;gap:6px}.lab-row{display:flex;gap:6px;align-items:center}.lab-row input{margin:0}.lab-row input.grow{flex:1;min-width:0}.lab-row input.unit{width:90px;flex-shrink:0}.lab-records h3{margin-top:18px}.lab-rec-group{margin-top:12px}.lab-rec-group ul{display:flex;flex-direction:column;gap:6px;margin-top:6px}.lab-rec-group li{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.lab-runner{border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:14px;background:var(--bg)}.lab-head{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.lab-obj{margin-top:0}.lab-block{margin-top:12px}.lab-steps ol{margin:6px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.lab-steps label{display:flex;gap:8px;align-items:flex-start;cursor:pointer;font-weight:400}.lab-steps input{margin-top:3px}.lab-meas{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;margin-top:6px}.lab-meas label{display:flex;flex-direction:column;gap:4px;font-size:13px}.lab-qa{display:flex;flex-direction:column;gap:8px;margin-top:6px}.lab-qa label{display:flex;flex-direction:column;gap:4px;font-weight:400}.lab-foot{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}.sim-frame{border:1px solid var(--line);border-radius:12px;padding:12px;margin:12px 0;background:var(--card)}.sim canvas{display:block;max-width:100%;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:8px}.sim-svg{display:block;max-width:100%;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:8px}.sim-ctrls{display:flex;flex-direction:column;gap:8px;margin-top:10px}.sim-ctrls label{display:grid;grid-template-columns:160px 1fr 80px;gap:10px;align-items:center;font-size:13px}.sim-ctrls label input[type=range]{width:100%;accent-color:var(--accent)}.sim-val{text-align:right;color:var(--muted);white-space:nowrap}.sim-btns{display:flex;gap:8px;margin-top:10px}.sim-readouts{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-top:12px}.sim-ro{padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font-size:14px}.sim-ro b{display:block;margin-bottom:2px;color:var(--muted);font-size:12px;font-weight:600}.sim-pick{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font-size:13px}.sim-pick-title{color:var(--muted);font-size:12px;font-weight:600}.sim-pick label{display:inline-flex;flex-direction:row;align-items:center;gap:5px;cursor:pointer;font-size:13px;color:var(--text)}.sim-pick input[type=radio]{accent-color:var(--accent)}.lab-cover-card{width:200px;aspect-ratio:2.5 / 1;object-fit:cover;border:1px solid var(--line);border-radius:8px;flex-shrink:0}.lab-cover-run,.lesson-cover-shot{display:block;width:100%;max-height:230px;object-fit:cover;border:1px solid var(--line);border-radius:10px;margin:0 0 12px}.cover-row{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.cover-row img{width:180px;border:1px solid var(--line);border-radius:8px}p{margin:0 0 12px;line-height:1.55}p:last-child{margin-bottom:0}h1{line-height:1.2;letter-spacing:-.015em}h2{line-height:1.3;margin-bottom:14px}h3{line-height:1.35}.card>h1{margin-bottom:16px}.card h2{margin-bottom:14px}.container{padding:30px 20px 88px}.card{padding:24px;margin-top:20px;border-radius:14px}.card.course{gap:10px}.grid{gap:18px;margin-top:18px}.stat-grid{gap:12px}.stat-item{padding:12px 14px;border-radius:10px}form{gap:14px}label{font-size:14px;font-weight:500;color:#4a5468}input,textarea,select{padding:10px 13px;border-radius:10px;font-size:15px;line-height:1.45;transition:border-color .15s ease,box-shadow .15s ease}select{cursor:pointer;padding:9px 11px}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9aa3b2}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #2563eb24}input[type=checkbox],input[type=radio]{width:auto;padding:0;accent-color:var(--accent);cursor:pointer}input[type=file]{padding:9px 12px;border:1px dashed #c6cede;border-radius:10px;background:var(--bg);font-size:13.5px;color:var(--muted);cursor:pointer}input[type=file]::file-selector-button{margin-right:12px;padding:7px 14px;border:1px solid #d5dceb;border-radius:8px;background:#fff;color:var(--accent-dark);font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}input[type=file]::file-selector-button:hover{background:#f5f8ff;border-color:#b9cbf4}.roles{padding:14px;border-radius:12px}.roles legend{font-weight:600}.role{padding:10px 12px;border-radius:10px;transition:border-color .15s ease,background .15s ease}.role:hover{border-color:#c9d8ff;background:#f8faff}.role.active,.role.active:hover{border-color:var(--accent);background:#eef3ff}.faq-item{padding:13px 4px}.faq-item summary{line-height:1.45}.materials li,.attempt-list li,.admin-list>li,.assignment,.access-list li{border-radius:10px}.admin-list>li{padding:12px 14px}.person{padding:10px 14px}.hw-create{gap:12px}.editor-grid,.cab-form{gap:14px}.error,.saved{border-radius:10px;padding:11px 14px}.vf-label,.rte-field .rte-cap{font-weight:500}html{scroll-behavior:smooth;scroll-padding-top:76px}.rte-toolbar{gap:2px;padding:5px 6px}.rte-toolbar button{min-width:26px;height:27px;padding:0 6px;font-size:14px;border-radius:6px}.rte-toolbar select{height:27px;max-width:148px;font-size:14px}.rte-sep{height:16px;margin:0 2px}.video-missing p{margin:0}@media (max-width: 720px){.container{padding:20px 14px 64px}.card{padding:18px 16px;margin-top:16px}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}.el-panels{display:grid;grid-template-columns:210px minmax(0,1fr);gap:12px;margin-top:12px}.el-panel{min-width:0;margin:0;padding:8px 14px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card)}.el-panel legend{padding:0 8px;font-size:14px;font-weight:700;color:var(--red-tx)}.el-metals{display:flex;flex-direction:column;gap:7px;margin-top:4px}.el-metals label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:400;color:var(--text);cursor:pointer}.el-metals input{accent-color:var(--accent);cursor:pointer}.el-params{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:7px 20px;margin-top:4px}.el-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:8px;align-items:center;font-size:14px}.el-row b{font-weight:600}.el-row span{color:var(--muted);font-size:13px;white-space:nowrap}.el-row input{width:100%;padding:6px 8px;font-size:14px}.el-row input[readonly]{background:var(--bg);color:var(--accent-dark);font-weight:600;cursor:default}.el-timer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.el-time{min-width:96px;font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}.el-timer .btn{display:inline-flex;align-items:center;gap:6px}.el-timer .btn:disabled{opacity:.45;cursor:default}.el-flow{stroke-dasharray:7 11;animation:el-flow .9s linear infinite}@keyframes el-flow{to{stroke-dashoffset:-36}}@media (max-width: 720px){.el-panels{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.el-flow{animation:none}}.flame{transform-box:fill-box;transform-origin:50% 100%;animation:fl-flick .42s ease-in-out infinite alternate}.flame-fl{animation-delay:.14s}@keyframes fl-flick{0%{transform:scaleY(.92) scaleX(1.05);opacity:.85}to{transform:scaleY(1.07) scaleX(.95);opacity:1}}.fl-glow{animation:fl-pulse .6s ease-in-out infinite alternate}@keyframes fl-pulse{0%{opacity:.55}to{opacity:1}}.st-wisp{animation:st-rise 2.6s ease-in-out infinite}@keyframes st-rise{0%{transform:translateY(6px);opacity:0}35%{opacity:.9}to{transform:translateY(-14px);opacity:0}}.heat-glow{animation:hg-pulse .9s ease-in-out infinite alternate}@keyframes hg-pulse{0%{opacity:.65}to{opacity:1}}.el-sub{margin-top:10px;font-size:14px;font-weight:600;color:var(--red-tx);text-align:center}@media (prefers-reduced-motion: reduce){.flame,.flame-fl,.fl-glow,.st-wisp,.heat-glow{animation:none}}
