:root{--ink:#0f1222;--ink-soft:#3b3f54;--muted:#6b7085;--line:#e4e5ec;--line-soft:#f0f1f5;--bg:#fafaf8;--card:#fff;--brand:#4f46e5;--brand-strong:#4338ca;--brand-tint:#eef0ff;--brand-ink:#3730a3;--accent:#f5b544;--accent-tint:#fff6e3;--accent-ink:#8a5a05;--danger:#dc2f45;--danger-tint:#fef1f2;--ok:#0f9d6b;--ok-tint:#e9f8f1;--radius:14px;--radius-sm:10px;--shadow-xs:0 1px 2px #1012220d;--shadow:0 1px 2px #1012220a, 0 4px 12px #1012220d, 0 12px 32px -12px #1012221a;--shadow-lg:0 2px 6px #1012220d, 0 24px 64px -16px #10122238;--header-h:64px;--serif:"Fraunces", Georgia, "Times New Roman", serif;font-feature-settings:"cv11", "ss01";color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.55}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{letter-spacing:-.015em;color:var(--ink);margin:0 0 .5rem;line-height:1.2}h1{font-size:1.75rem;font-weight:700}h2{font-size:1.35rem;font-weight:700}h3{font-size:1.1rem;font-weight:700}h4{font-size:1rem;font-weight:700}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}svg.lucide{flex:none}.container{width:min(1200px,100% - 48px);margin-inline:auto}@media (width<=640px){.container{width:calc(100% - 32px)}}.muted{color:var(--muted)}.spacer{flex:1}.topbar{background:var(--card);border-bottom:1px solid var(--line);z-index:20;position:sticky;top:0;box-shadow:0 2px 4px #0000000a}.topbar .container{height:var(--header-h);align-items:center;gap:12px;display:flex}.topbar nav{align-items:center;gap:4px;display:flex}.logo{color:var(--ink);letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.2rem;font-weight:800;display:inline-flex}.logo:hover{text-decoration:none}.logo-mark{background:var(--brand);color:#fff;border-radius:8px;place-items:center;width:34px;height:34px;font-size:1.05rem;font-weight:800;display:grid}.btn{border-radius:var(--radius-sm);font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:.95rem;font-weight:700;line-height:1.2;transition:background .12s,border-color .12s,color .12s;display:inline-flex;text-decoration:none!important}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-dark{background:var(--ink);color:#fff}.btn-dark:hover:not(:disabled){background:#3e4143}.btn-accent{background:var(--accent);color:var(--ink)}.btn-ghost{color:var(--ink-soft);background:0 0}.btn-outline{background:var(--card);color:var(--ink);border-color:var(--ink)}.btn-outline:hover:not(:disabled){background:var(--bg)}.btn-lg{padding:14px 24px;font-size:1.05rem}.btn-danger{background:var(--card);color:var(--danger);border-color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-tint)}.btn-danger-solid{background:var(--danger);color:#fff}.btn-danger-solid:hover{background:#a42c25}.btn-block{width:100%}.btn-icon{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:8px;display:inline-grid}.btn-icon:hover{background:var(--bg);color:var(--ink)}.link-btn{color:var(--brand);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0;font-weight:600}.link-btn:hover{text-decoration:underline}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.field{gap:6px;margin-bottom:18px;display:grid}.field>label{font-size:.9rem;font-weight:700}.field .hint{color:var(--muted);font-size:.82rem}.field .hint.bad,.hint.bad{color:var(--danger)}.field .hint.good{color:var(--ok)}.input{border-radius:var(--radius-sm);border:1px solid var(--ink-soft);width:100%;font:inherit;color:var(--ink);background:#fff;min-height:44px;padding:11px 14px}textarea.input{min-height:auto}select.input{padding-right:32px}.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint);outline:none}.input:disabled{background:var(--bg);border-color:var(--line);color:var(--muted)}.input-group{align-items:stretch;display:flex}.input-group .input{border-top-right-radius:0;border-bottom-right-radius:0}.input-group .addon{border:1px solid var(--ink-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--bg);color:var(--ink-soft);font:inherit;white-space:nowrap;border-left:0;align-items:center;padding:0 14px;font-size:.9rem;display:flex}button.addon:hover{background:var(--line-soft)}.row2{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}@media (width<=640px){.row2{grid-template-columns:1fr}}.search{position:relative}.search svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search .input{padding-left:38px}.alert{border-radius:var(--radius-sm);border:1px solid #0000;align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:.92rem;display:flex}.alert-error{background:var(--danger-tint);color:#8f231d;border-color:#f4c7c3}.alert-ok{background:var(--ok-tint);color:#145a31;border-color:#bfe3cc}.alert-warn{background:var(--accent-tint);color:var(--accent-ink);border-color:#f6dda4}.badge{white-space:nowrap;background:var(--brand-tint);color:var(--brand-ink);border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:700;display:inline-flex}.badge-warn{background:var(--accent-tint);color:var(--accent-ink)}.badge-danger{background:var(--danger-tint);color:#8f231d}.badge-ok{background:var(--ok-tint);color:#145a31}.chip{white-space:nowrap;background:var(--card);border:1px solid var(--line);color:var(--ink-soft);border-radius:99px;align-items:center;gap:4px;margin:2px 4px 2px 0;padding:3px 10px;font-family:inherit;font-size:.8rem;display:inline-flex}button.chip:hover{border-color:var(--brand);color:var(--brand)}.avatar{color:#fff;letter-spacing:0;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:.85rem;font-weight:700;display:inline-grid}.avatar.sm{width:30px;height:30px;font-size:.75rem}.avatar.lg{width:56px;height:56px;font-size:1.2rem}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th{white-space:nowrap;text-align:left;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;background:var(--bg);font-size:.78rem;font-weight:700}th,td{border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:12px 14px}tr:last-child td{border-bottom:0}.card.table-wrap{overflow:hidden;padding:0!important}.card.table-wrap>.alert{margin:12px}td .sub{color:var(--muted);font-size:.82rem}.cell-user{align-items:center;gap:12px;min-width:220px;display:flex}td.w-org{min-width:170px}.hero{grid-template-columns:1.05fr .95fr;align-items:center;gap:56px;padding:72px 0 64px;display:grid}.hero h1{letter-spacing:-.03em;font-size:clamp(2.2rem,4.4vw,3.4rem);font-weight:800;line-height:1.08}.hero p.lead{color:var(--ink-soft);max-width:34rem;margin:18px 0 0;font-size:1.2rem}.hero-cta{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.hero-note{color:var(--muted);flex-wrap:wrap;gap:16px;margin-top:16px;font-size:.9rem;display:flex}.hero-note span{align-items:center;gap:6px;display:inline-flex}@media (width<=900px){.hero{grid-template-columns:1fr;gap:32px;padding:40px 0}}.mock{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:14px;overflow:hidden}.mock-bar{border-bottom:1px solid var(--line-soft);background:var(--bg);color:var(--muted);align-items:center;gap:6px;padding:10px 14px;font-size:.8rem;display:flex}.mock-bar i{background:var(--line);border-radius:50%;width:10px;height:10px;display:inline-block}.mock-body{gap:14px;padding:18px;display:grid}.mock-course{grid-template-columns:96px 1fr;align-items:center;gap:14px;display:grid}.mock-thumb{color:#fff;border-radius:6px;place-items:center;height:64px;display:grid}.progress{background:var(--line-soft);border-radius:99px;height:6px;margin-top:8px;overflow:hidden}.progress>span{background:var(--brand);border-radius:99px;height:100%;display:block}.logos{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:var(--card);padding:24px 0}.logos .container{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:40px;font-size:1.05rem;font-weight:700;display:flex}.logos small{font-size:.9rem;font-weight:500}.section-title{max-width:44rem;margin:0 0 32px}.section-title h2{letter-spacing:-.02em;font-size:2rem;font-weight:800}.section-title p{color:var(--ink-soft);margin:6px 0 0;font-size:1.05rem}.features{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.feature{padding:22px}.feature .ico{background:var(--brand-tint);width:44px;height:44px;color:var(--brand);border-radius:10px;place-items:center;margin-bottom:14px;display:grid}.feature p{color:var(--ink-soft);margin:0;font-size:.93rem}@media (width<=1000px){.features{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.features{grid-template-columns:1fr}}.steps{counter-reset:step;grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.step{padding-top:52px;position:relative}.step:before{counter-increment:step;content:counter(step);background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:38px;height:38px;font-weight:800;display:grid;position:absolute;top:0;left:0}.step p{color:var(--ink-soft);margin:0}@media (width<=760px){.steps{grid-template-columns:1fr}}.plans{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:20px;display:grid}.plan{flex-direction:column;gap:6px;padding:28px;display:flex}.plan.featured{border:2px solid var(--brand);position:relative}.plan .ribbon{background:var(--brand);color:#fff;border-radius:4px;padding:3px 10px;font-size:.75rem;font-weight:700;position:absolute;top:-12px;left:24px}.plan .price{letter-spacing:-.02em;margin:8px 0 4px;font-size:2rem;font-weight:800}.plan ul{color:var(--ink-soft);flex:1;align-content:start;gap:10px;margin:12px 0 24px;padding:0;list-style:none;display:grid}.plan li{align-items:flex-start;gap:8px;display:flex}.plan li svg{color:var(--ok);margin-top:2px}@media (width<=900px){.plans{grid-template-columns:1fr}}.cta-band{background:var(--ink);color:#fff;border-radius:16px;flex-wrap:wrap;align-items:center;gap:24px;padding:48px;display:flex}.cta-band h2{color:#fff;margin:0;font-size:1.8rem}.cta-band p{color:#c9cdd1;margin:6px 0 0}.footer{border-top:1px solid var(--line);background:var(--card);color:var(--muted);margin-top:72px;padding:28px 0;font-size:.88rem}.split{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.split-art{background:linear-gradient(160deg, var(--brand) 0%, #3b2bb8 100%);color:#fff;flex-direction:column;justify-content:space-between;padding:48px;display:flex;position:relative;overflow:hidden}.split-art h2{color:#fff;letter-spacing:-.02em;max-width:26rem;font-size:2rem}.split-art p{color:#ffffffd1;max-width:28rem}.split-art .logo,.split-art .logo-mark{color:#fff}.split-art .logo-mark{background:#ffffff2e}.split-art .deco{border:60px solid #ffffff12;border-radius:50%;width:420px;height:420px;position:absolute;bottom:-120px;right:-120px}.split-art ul{gap:14px;margin:28px 0 0;padding:0;list-style:none;display:grid}.split-art li{align-items:flex-start;gap:10px;display:flex}.split-main{background:var(--card);place-items:center;padding:40px 24px;display:grid}.split-form{width:min(440px,100%)}.split-form.wide{width:min(560px,100%)}.split-form h1{letter-spacing:-.02em;font-size:1.9rem}.split-form .sub{color:var(--ink-soft);margin:0 0 24px}.split-foot{text-align:center;color:var(--ink-soft);margin-top:20px;font-size:.9rem}@media (width<=900px){.split{grid-template-columns:1fr}.split-art{display:none}}.auth-shell{min-height:calc(100vh - var(--header-h));place-items:center;padding:32px 16px;display:grid}.auth-card{width:min(560px,100%)}.auth-card.narrow{width:min(420px,100%)}.divider{color:var(--muted);align-items:center;gap:12px;margin:20px 0;font-size:.85rem;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.app-header{z-index:30;height:var(--header-h);background:var(--card);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:0 20px;display:flex;position:sticky;top:0;box-shadow:0 2px 4px #0000000a}.app-header .menu-btn{display:none}.app-header .tenant{color:var(--ink);align-items:center;gap:10px;min-width:0;font-size:1.05rem;font-weight:800;display:flex}.app-header .tenant span:last-child{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.app-header .search{width:min(420px,40vw);margin-left:24px}.app-header .search .input{background:var(--bg);border-color:var(--line);border-radius:99px;min-height:40px}.role-switch{background:var(--bg);border:1px solid var(--line);border-radius:99px;align-items:center;gap:2px;padding:3px;display:inline-flex}.role-switch button{font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:99px;padding:6px 12px;font-size:.82rem;font-weight:700}.role-switch button.on{background:var(--card);color:var(--brand);box-shadow:0 1px 3px #0000001f}.user-menu{position:relative}.user-menu>button{cursor:pointer;font:inherit;color:var(--ink);background:0 0;border:0;border-radius:99px;align-items:center;gap:8px;padding:4px;display:flex}.user-menu>button:hover{background:var(--bg)}.dropdown{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:40;width:280px;padding:8px 0;position:absolute;top:calc(100% + 8px);right:0}.dropdown .who{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;margin-bottom:6px;padding:10px 16px 14px;display:flex}.dropdown .who div{min-width:0}.dropdown .who strong,.dropdown .who span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.dropdown .item{width:100%;font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:10px 16px;display:flex}.dropdown .item:hover{background:var(--bg);color:var(--brand);text-decoration:none}.dropdown .item.on{color:var(--brand);font-weight:700}.dropdown .label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:8px 16px 4px;font-size:.72rem;font-weight:700}.app-body{min-height:calc(100vh - var(--header-h));grid-template-columns:252px 1fr;display:grid}.sidebar{background:var(--card);border-right:1px solid var(--line);top:var(--header-h);height:calc(100vh - var(--header-h));flex-direction:column;gap:2px;padding:16px 12px;display:flex;position:sticky;overflow-y:auto}.sidebar a,.sidebar .soon{color:var(--ink-soft);border-radius:var(--radius-sm);align-items:center;gap:12px;padding:9px 12px;font-size:.92rem;font-weight:600;text-decoration:none;display:flex}.sidebar a:hover{background:var(--bg);color:var(--ink);text-decoration:none}.sidebar a.active{background:var(--brand-tint);color:var(--brand)}.sidebar svg{color:var(--muted)}.sidebar .soon{opacity:.55;cursor:default}.sidebar .soon em{background:var(--bg);border:1px solid var(--line);border-radius:4px;margin-left:auto;padding:1px 6px;font-size:.68rem;font-style:normal;font-weight:700}.sidebar .nav-group{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:18px 12px 6px;font-size:.7rem;font-weight:700}.sidebar .count{background:var(--danger);color:#fff;border-radius:99px;margin-left:auto;padding:1px 7px;font-size:.7rem;font-weight:700}.main{width:100%;min-width:0;max-width:1360px;padding:32px 40px 48px}.sidebar-backdrop{display:none}@media (width<=960px){.app-header .menu-btn{display:inline-grid}.app-header .search{display:none}.app-body{grid-template-columns:1fr}.sidebar{left:0;top:var(--header-h);z-index:25;width:272px;box-shadow:var(--shadow-lg);transition:transform .2s;position:fixed;transform:translate(-100%)}.sidebar.open{transform:none}.sidebar-backdrop.open{inset:var(--header-h) 0 0 0;z-index:24;background:#0000004d;display:block;position:fixed}.main{padding:24px 16px 40px}}@media (width<=640px){.app-header .who-name,.app-header .role-label{display:none}.app-header{padding:0 12px}}.welcome{align-items:center;gap:16px;margin-bottom:28px;display:flex}.welcome h1{margin:0}.stats{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.stat .label{color:var(--muted);align-items:center;gap:8px;font-size:.85rem;font-weight:600;display:flex}.stat .value{letter-spacing:-.02em;margin-top:4px;font-size:1.7rem;font-weight:800}.stat .foot{color:var(--muted);font-size:.85rem}.meter{background:var(--line-soft);border-radius:99px;height:6px;margin-top:12px;overflow:hidden}.meter>span{background:var(--brand);border-radius:99px;height:100%;display:block}.meter.full>span{background:var(--danger)}@media (width<=1100px){.stats{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.stats{grid-template-columns:1fr}}.quick{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.quick a{color:var(--ink);align-items:flex-start;gap:14px;padding:18px;display:flex}.quick a:hover{border-color:var(--ink);text-decoration:none}.quick a p{color:var(--muted);margin:2px 0 0;font-size:.88rem}.quick .ico{background:var(--brand-tint);width:40px;height:40px;color:var(--brand);border-radius:10px;flex:none;place-items:center;display:grid}@media (width<=900px){.quick{grid-template-columns:1fr}}.learn-empty{grid-template-columns:1fr 260px;align-items:center;gap:24px;padding:32px;display:grid}.learn-empty .art{background:linear-gradient(135deg, var(--brand-tint), var(--accent-tint));height:160px;color:var(--brand);border-radius:12px;place-items:center;display:grid}@media (width<=760px){.learn-empty{grid-template-columns:1fr}}.tabs{border-bottom:1px solid var(--line);gap:24px;margin-bottom:24px;display:flex}.tabs span{color:var(--muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 0;font-weight:700}.tabs span.on{color:var(--ink);border-color:var(--ink)}.center-msg{text-align:center;place-items:center;min-height:60vh;padding:24px;display:grid}.page-head{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-head h1{margin:0;font-size:1.75rem}.page-head .muted{margin-top:4px}.page-actions{flex-wrap:wrap;gap:8px;display:flex}.main-head{display:none}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.toolbar .input{border-color:var(--line);width:auto;min-width:170px;min-height:40px;padding:8px 12px}.toolbar select.input{padding-right:30px}.toolbar .grow{flex:1;min-width:240px}.toolbar .search.grow .input{width:100%;padding-left:38px}.selbar{background:var(--ink);color:#fff;border-radius:var(--radius-sm);align-items:center;gap:12px;margin-bottom:12px;padding:10px 14px;display:flex}.selbar .link-btn{color:#fff}.selbar .btn-danger{color:#fff;background:0 0;border-color:#ffffff80}.selbar .btn-danger:hover{background:#ffffff1a}.pager{border-top:1px solid var(--line-soft);justify-content:flex-end;align-items:center;gap:10px;padding:12px 16px;font-size:.9rem;display:flex}.empty{text-align:center;color:var(--muted);padding:48px 16px}.empty svg{color:var(--line);margin-bottom:8px}td.actions{white-space:nowrap;text-align:right}td.actions .btn+.btn{margin-left:6px}.modal-backdrop{z-index:50;background:#1c1d1f8c;place-items:center;padding:16px;animation:.12s ease-out fade;display:grid;position:fixed;inset:0}.modal{background:var(--card);width:min(560px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow-lg);border-radius:12px;flex-direction:column;animation:.15s ease-out pop;display:flex}.modal.wide{width:min(880px,100%)}.modal-head{justify-content:space-between;align-items:center;padding:20px 24px 12px;display:flex}.modal-head h3{margin:0;font-size:1.25rem}.modal-body{padding:4px 24px 20px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line-soft);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}.checklist{border:1px solid var(--line);border-radius:var(--radius-sm);gap:8px;max-height:210px;padding:10px 12px;display:grid;overflow-y:auto}.check{cursor:pointer;align-items:center;gap:10px;display:flex;font-weight:400!important}.check input{width:18px;height:18px;accent-color:var(--brand);flex:none}input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand)}.seg{border:1px solid var(--ink);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.seg button{background:var(--card);font:inherit;cursor:pointer;color:var(--ink);border:0;align-items:center;gap:6px;padding:7px 14px;font-size:.85rem;font-weight:700;display:inline-flex}.seg button+button{border-left:1px solid var(--ink)}.seg button.on{background:var(--ink);color:#fff}.tree{margin:0;padding:0;list-style:none}.tree .tree{border-left:1px solid var(--line-soft);margin-left:14px;padding-left:22px}.tree-row{border-radius:var(--radius-sm);align-items:center;gap:10px;padding:8px 10px;display:flex}.tree-row:hover{background:var(--bg)}.tree-row .toggle{cursor:pointer;width:26px;height:26px;color:var(--ink-soft);background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.tree-row .toggle:hover{background:var(--line-soft)}.tree-row .node-ico{color:var(--brand)}.tree-row .name{white-space:nowrap;font-weight:700}.tree-row .meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.85rem;overflow:hidden}.tree-row .row-actions{white-space:nowrap;opacity:0;transition:opacity .1s}.tree-row:hover .row-actions,.tree-row:focus-within .row-actions{opacity:1}@media (hover:none){.tree-row .row-actions{opacity:1}}.orgchart{padding:8px 0 16px;overflow-x:auto}.orgchart ul{justify-content:center;margin:0;padding-top:22px;padding-left:0;list-style:none;display:flex;position:relative}.orgchart li{flex-direction:column;align-items:center;padding:22px 8px 0;display:flex;position:relative}.orgchart li:before,.orgchart li:after{content:"";border-top:1px solid var(--line);width:50%;height:22px;position:absolute;top:0;right:50%}.orgchart li:after{border-left:1px solid var(--line);left:50%;right:auto}.orgchart li:only-child:before,.orgchart li:only-child:after{display:none}.orgchart li:only-child{padding-top:0}.orgchart li:first-child:before,.orgchart li:last-child:after{border:0}.orgchart li:last-child:before{border-right:1px solid var(--line);border-radius:0 6px 0 0}.orgchart li:first-child:after{border-radius:6px 0 0}.orgchart ul ul:before{content:"";border-left:1px solid var(--line);height:22px;position:absolute;top:0;left:50%}.orgchart>ul{width:max-content;min-width:100%;padding-top:0}.org-node{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);white-space:nowrap;text-align:left;align-items:center;gap:10px;min-width:170px;padding:12px 14px;display:flex}.org-node .n{font-weight:700}.org-node .m{color:var(--muted);font-size:.78rem}.matrix th,.matrix td{text-align:center;padding:10px 8px}.matrix th:first-child,.matrix td:first-child{text-align:left}.matrix td.na{color:var(--line)}.matrix .grp td{background:var(--bg);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.75rem;font-weight:700}.two-col{grid-template-columns:300px 1fr;align-items:start;gap:20px;display:grid}.list-item{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:10px;padding:10px 12px;font-weight:600;display:flex}.list-item:hover{background:var(--bg)}.list-item.active{background:var(--brand-tint);color:var(--brand)}@media (width<=900px){.two-col{grid-template-columns:1fr}}.level-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.level-row .rank{background:var(--ink);color:#fff;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:.85rem;font-weight:700;display:grid}.err-list{max-height:260px;margin:6px 0 0;padding-left:18px;font-size:.9rem;overflow-y:auto}.dropzone{border:2px dashed var(--line);border-radius:var(--radius);text-align:center;color:var(--ink-soft);cursor:pointer;place-items:center;gap:8px;padding:28px;display:grid}.dropzone:hover,.dropzone.over{border-color:var(--brand);background:var(--brand-tint)}.dropzone input{display:none}@media (width<=720px){.app-header .role-switch{display:none}.toolbar>.input,.toolbar>.search{flex:100%;min-width:0}.page-head{align-items:flex-start}}.prose{color:var(--ink);font-size:1rem;line-height:1.7}.prose h2{margin:1.4em 0 .5em;font-size:1.4rem}.prose h3{margin:1.2em 0 .4em;font-size:1.15rem}.prose p{margin:0 0 1em}.prose ul,.prose ol{margin:0 0 1em;padding-left:1.4em}.prose blockquote{border-left:3px solid var(--line);color:var(--ink-soft);margin:0 0 1em;padding:4px 16px}.prose a{text-decoration:underline}.prose img{max-width:100%}.rte{border:1px solid var(--ink-soft);border-radius:var(--radius-sm);background:#fff;overflow:hidden}.rte:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.rte-bar{border-bottom:1px solid var(--line);background:var(--bg);flex-wrap:wrap;gap:2px;padding:6px;display:flex}.rte-bar button{cursor:pointer;width:32px;height:32px;color:var(--ink-soft);background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.rte-bar button:hover{background:var(--line-soft)}.rte-bar button.on{background:var(--ink);color:#fff}.rte-bar .sep{background:var(--line);width:1px;margin:4px}.rte-content{outline:none;padding:12px 16px}.progress-bar{background:var(--line-soft);border-radius:99px;height:8px;overflow:hidden}.progress-bar>span{background:var(--brand);border-radius:99px;height:100%;transition:width .3s;display:block}.progress-bar.done>span{background:var(--ok)}.type-pick{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.type-pick button{border:1px solid var(--line);background:var(--card);border-radius:var(--radius);cursor:pointer;text-align:left;font:inherit;color:var(--ink);gap:4px;padding:16px 12px;display:grid}.type-pick button:hover{border-color:var(--ink)}.type-pick button svg{color:var(--brand);margin-bottom:4px}.type-pick button small{color:var(--muted)}@media (width<=600px){.type-pick{grid-template-columns:1fr 1fr}}.type-ico{background:var(--brand-tint);width:36px;height:36px;color:var(--brand);border-radius:8px;flex:none;place-items:center;display:grid}.course-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;display:grid}.course-card{color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;transition:box-shadow .15s;display:flex;overflow:hidden}.course-card:hover{box-shadow:var(--shadow);text-decoration:none}.course-card .thumb{aspect-ratio:16/9;color:#ffffffe6;background-position:50%;background-size:cover;place-items:center;display:grid}.course-card .body{flex:1;align-content:start;gap:6px;padding:14px 16px 16px;display:grid}.course-card h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:1rem;line-height:1.35;display:-webkit-box;overflow:hidden}.course-card .by{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;overflow:hidden}.course-card .meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:.82rem;display:flex}.course-card .foot{margin-top:auto;padding-top:8px}.course-hero{background:var(--ink);color:#fff;margin:-32px -40px 32px;padding:40px}.course-hero .inner{grid-template-columns:1fr 340px;gap:40px;max-width:1200px;display:grid}.course-hero h1{color:#fff;letter-spacing:-.02em;font-size:2rem}.course-hero p{color:#d1d7dc;margin:8px 0 16px;font-size:1.05rem}.course-hero .crumbs{color:#c0c4fc;margin-bottom:10px;font-size:.88rem;font-weight:700}.course-hero .facts{color:#d1d7dc;flex-wrap:wrap;gap:18px;font-size:.9rem;display:flex}.course-hero .facts span{align-items:center;gap:6px;display:inline-flex}.course-side{background:var(--card);color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow-lg);align-self:start;overflow:hidden}.course-side .thumb{aspect-ratio:16/9;color:#fff;background-position:50%;background-size:cover;place-items:center;display:grid}.course-side .body{gap:12px;padding:20px;display:grid}.course-page{grid-template-columns:1fr 340px;gap:40px;max-width:1200px;display:grid}.course-page .col{min-width:0}@media (width<=1000px){.course-hero{margin:-24px -16px 24px;padding:28px 16px}.course-hero .inner,.course-page{grid-template-columns:1fr}}.accordion{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);overflow:hidden}.accordion>div+div{border-top:1px solid var(--line)}.accordion summary{background:var(--bg);cursor:pointer;align-items:center;gap:10px;padding:14px 16px;font-weight:700;list-style:none;display:flex}.accordion summary::-webkit-details-marker{display:none}.accordion summary .count{color:var(--muted);margin-left:auto;font-size:.85rem;font-weight:500}.outline-item{color:var(--ink);align-items:center;gap:12px;padding:10px 16px;font-size:.92rem;display:flex}.outline-item .t{flex:1;min-width:0}.outline-item .d{color:var(--muted);white-space:nowrap;font-size:.82rem}a.outline-item:hover{background:var(--bg);text-decoration:none}.outline-item.active{background:var(--brand-tint)}.outline-item.locked{color:var(--muted)}.outline-item .st{border:2px solid var(--line);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;display:grid}.outline-item .st.done{background:var(--ok);border-color:var(--ok);color:#fff}.player{inset:var(--notice-top,0px) 0 var(--notice-bottom,0px);z-index:40;background:var(--card);grid-template-rows:56px 1fr;display:grid;position:fixed}.player-top{background:var(--ink);color:#fff;align-items:center;gap:12px;padding:0 16px;display:flex}.player-top a,.player-top button.btn-icon{color:#fff}.player-top .btn-icon:hover{color:#fff;background:#ffffff1a}.player-top .title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:700;overflow:hidden}.player-top .prog{white-space:nowrap;align-items:center;gap:10px;font-size:.85rem;display:flex}.player-top .prog .progress-bar{background:#fff3;width:140px}.player-body{grid-template-columns:1fr 340px;min-height:0;display:grid}.player-main{min-width:0;overflow-y:auto}.player-side{border-left:1px solid var(--line);background:var(--card);overflow-y:auto}.player-side h4{border-bottom:1px solid var(--line);margin:0;padding:14px 16px}.player-side .sec{background:var(--bg);border-bottom:1px solid var(--line-soft);padding:12px 16px 6px;font-size:.85rem;font-weight:700}.stage{background:#000;place-items:center;display:grid}.stage video,.stage iframe{aspect-ratio:16/9;background:#000;border:0;width:100%;max-height:calc(100vh - 200px);display:block}.stage.doc{background:var(--bg)}.stage.doc iframe{aspect-ratio:auto;background:#fff;height:calc(100vh - 200px)}.stage.audio{background:linear-gradient(135deg, var(--ink), #3e4143);color:#fff;gap:16px;padding:48px 16px}.stage.audio audio{width:min(560px,100%)}.lesson-wrap{max-width:860px;margin:0 auto;padding:28px 24px 48px}.lesson-head{flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.lesson-head h2{flex:1;min-width:0;margin:0}.lesson-nav{border-top:1px solid var(--line);justify-content:space-between;gap:12px;margin-top:28px;padding-top:20px;display:flex}.quiz{border:1px solid var(--line);border-radius:var(--radius);margin-top:24px;padding:20px}.quiz .q{margin-bottom:18px}.quiz .q>strong{margin-bottom:8px;display:block}.quiz .opt{border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:10px;margin-bottom:6px;padding:10px 12px;display:flex}.quiz .opt:hover{border-color:var(--ink)}.quiz .opt.right{border-color:var(--ok);background:var(--ok-tint)}.quiz .opt.wrong{border-color:var(--danger);background:var(--danger-tint)}.speed{gap:4px;display:inline-flex}.speed button{border:1px solid var(--line);background:var(--card);font:inherit;cursor:pointer;border-radius:4px;padding:2px 8px;font-size:.8rem}.speed button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.notes textarea{width:100%}.note{border:1px solid var(--line-soft);border-radius:var(--radius-sm);gap:8px;margin-top:8px;padding:10px 12px;display:flex}.note p{white-space:pre-wrap;flex:1;margin:0}@media (width<=960px){.player-body{grid-template-columns:1fr}.player-side{display:none}.player-side.open{z-index:45;width:min(340px,90vw);box-shadow:var(--shadow-lg);display:block;position:fixed;inset:56px 0 0 auto}.player-top .prog .progress-bar{display:none}}.editor-head{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:4px;display:flex}.editor-tabs{border-bottom:1px solid var(--line);gap:4px;margin:16px 0 24px;display:flex;overflow-x:auto}.editor-tabs button{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:12px 14px;font-weight:700}.editor-tabs button:hover{color:var(--ink)}.editor-tabs button.on{color:var(--ink);border-color:var(--ink)}.section-box{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);margin-bottom:16px}.section-box>header{background:var(--bg);border-bottom:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;align-items:center;gap:10px;padding:12px 16px;display:flex}.section-box>header strong{flex:1}.lesson-row{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;padding:10px 16px;display:flex}.lesson-row:last-of-type{border-bottom:0}.lesson-row .t{flex:1;min-width:0}.lesson-row .t .sub{color:var(--muted);font-size:.82rem}.tree-folder{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);margin-bottom:12px}.tree-children>.tree-folder{border-radius:10px;margin:6px 0}.tree-folder-head{background:var(--bg);border-radius:inherit;cursor:grab;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.tree-folder-head strong{flex:1;min-width:120px}.tree-folder-ico{color:var(--brand);flex:none}.tree-children{padding:4px 12px 8px 28px}.tree-children.deep{border-left:2px solid var(--line-soft);margin-left:12px;padding-left:12px}.tree-children>.lesson-row{cursor:grab;padding:8px 4px}.tree-root>.lesson-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);cursor:grab;margin-bottom:12px}.tree-folder.drop>.tree-folder-head{outline:2px dashed var(--brand);outline-offset:-2px}.lesson-row.drop{box-shadow:inset 0 3px 0 var(--brand)}.dragging{opacity:.45}.tree-empty{padding:8px 4px;font-size:.85rem}.tree-add{flex-wrap:wrap;gap:8px;padding:8px 0 2px;display:flex}.tree-rootdrop{border:2px dashed var(--line);border-radius:var(--radius);text-align:center;color:var(--muted);margin-bottom:12px;padding:14px}.tree-rootdrop.drop{border-color:var(--brand);color:var(--brand);background:var(--brand-tint)}.add-type-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.add-type-grid .btn{justify-content:flex-start}.move-list{flex-direction:column;gap:2px;max-height:60vh;display:flex;overflow:auto}.move-target{text-align:left;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;display:flex}.move-target:hover:not(:disabled){background:var(--brand-tint)}.move-target:disabled{color:var(--muted);cursor:default}.move-target svg{color:var(--brand);flex:none}.cover-pick{aspect-ratio:16/9;border-radius:var(--radius);color:#fff;border:1px solid var(--line);background-position:50%;background-size:cover;place-items:center;width:280px;display:grid}.returned{border-left:4px solid var(--danger)}h1,h2,h3,h4{letter-spacing:-.02em;font-weight:650}h1{font-family:var(--serif);letter-spacing:-.025em;font-variation-settings:"opsz" 72;font-size:2rem;font-weight:500}.page-head h1,.welcome h1,.split-form h1{font-family:var(--serif);letter-spacing:-.025em;font-size:2.1rem;font-weight:500}.section-title h2,.cta-band h2,.split-art h2,.course-hero h1,.learn-empty h2{font-family:var(--serif);letter-spacing:-.025em;font-weight:500}::selection{background:#dcdcff}.btn{letter-spacing:-.005em;border-radius:10px;font-weight:600;transition:background .15s,box-shadow .15s,transform 50ms,border-color .15s}.btn:active:not(:disabled){transform:translateY(1px)}.btn-outline{border-color:var(--line);color:var(--ink);box-shadow:var(--shadow-xs);background:#fff}.btn-ghost:hover:not(:disabled){background:var(--line-soft);color:var(--ink)}.btn-accent{color:var(--ink);background:#fff;box-shadow:0 1px 2px #0000001a,0 8px 24px -6px #00000059}.btn-danger{border-color:#f6c9cf}.btn-lg{border-radius:12px;padding:14px 24px}.input{box-shadow:var(--shadow-xs);border-color:#d6d8e1;border-radius:10px;transition:border-color .15s,box-shadow .15s}.input:hover:not(:disabled){border-color:#b9bccb}.input:focus{border-color:var(--brand);box-shadow:0 0 0 4px #4f46e524}.input-group .addon{background:#f7f7fa;border-color:#d6d8e1;border-radius:0 10px 10px 0}.rte{border-color:#d6d8e1;border-radius:10px}.card{border-color:var(--line);border-radius:var(--radius);box-shadow:var(--shadow-xs)}th{color:var(--muted);letter-spacing:.06em;background:#fbfbfc;font-size:.72rem;font-weight:600}.badge{background:var(--brand-tint);color:var(--brand-ink);border:1px solid #dfe1ff;border-radius:99px;padding:3px 9px;font-size:.72rem;font-weight:600}.badge-ok{border-color:#c7eedc}.badge-warn{border-color:#f7e1b0}.badge-danger{border-color:#f8cdd3}.chip{border-color:var(--line);background:#fff}.alert{border-radius:12px}.modal{border-radius:18px}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f122273}.dropdown{border-radius:14px}.seg{border-color:var(--line);box-shadow:var(--shadow-xs);border-radius:10px}.seg button+button{border-left-color:var(--line)}.seg button.on{background:var(--ink)}.selbar{border-radius:12px}.empty svg{color:#d4d6e0}.topbar,.app-header{-webkit-backdrop-filter:saturate(180%)blur(14px);backdrop-filter:saturate(180%)blur(14px);box-shadow:none;border-bottom-color:var(--line);background:#ffffffd1}.logo{letter-spacing:-.03em;font-weight:700}.logo-mark{font-family:var(--serif);background:linear-gradient(135deg,#6366f1,#4338ca 60%,#312e81);border-radius:10px;font-weight:600;box-shadow:inset 0 1px #ffffff40,0 2px 6px #4f46e559}.role-switch{border-color:var(--line);background:#f3f3f7}.sidebar{border-right-color:var(--line);background:#fbfbfa;padding:14px 10px}.sidebar a,.sidebar .soon{color:var(--ink-soft);border:1px solid #0000;border-radius:8px;padding:7px 10px;font-size:.9rem;font-weight:500}.sidebar a:hover{background:#f1f1f4}.sidebar a.active{color:var(--ink);border-color:var(--line);box-shadow:var(--shadow-xs);background:#fff}.sidebar a.active svg{color:var(--brand)}.sidebar svg{color:#9396a8;width:17px;height:17px}.sidebar .nav-group{letter-spacing:.1em;color:#9a9db0;padding:18px 10px 6px;font-size:.68rem}.main{padding:36px 48px 56px}@media (width<=960px){.main{padding:24px 16px 40px}}.stat{padding:22px}.stat .label{font-weight:500}.stat .value{font-family:var(--serif);letter-spacing:-.03em;font-size:2.1rem;font-weight:500}.quick a{border-radius:var(--radius);transition:box-shadow .15s,border-color .15s}.quick a:hover{border-color:var(--line);box-shadow:var(--shadow)}.quick .ico,.feature .ico{color:var(--brand);background:linear-gradient(135deg,#eef0ff,#f5e8ff);border:1px solid #e3e1ff}.tabs span.on{border-color:var(--brand);color:var(--ink)}.learn-empty .art{background:radial-gradient(120% 120% at 0 0,#e0e7ff 0%,#fae8ff 50%,#fff7ed 100%)}.hero-bg{position:relative;overflow:hidden}.hero-bg:before{content:"";z-index:-1;filter:blur(10px);background:radial-gradient(40% 50% at 15% 30%,#818cf859,#0000 70%),radial-gradient(35% 45% at 85% 20%,#f472b638,#0000 70%),radial-gradient(40% 40% at 60% 70%,#fbbf242e,#0000 70%);height:720px;position:absolute;inset:-20% -10% auto}.hero-bg:after{content:"";z-index:-1;opacity:.5;background-image:linear-gradient(#0f12220a 1px,#0000 1px),linear-gradient(90deg,#0f12220a 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(60% 60% at 50% 30%,#000 30%,#0000 75%);mask-image:radial-gradient(60% 60% at 50% 30%,#000 30%,#0000 75%)}.hero{padding:88px 0 80px}.hero h1{font-family:var(--serif);letter-spacing:-.035em;font-size:clamp(2.6rem,5.2vw,4.2rem);font-weight:500;line-height:1.04}.hero h1 em{color:var(--brand);font-style:italic}.hero p.lead{color:var(--ink-soft);font-size:1.18rem;line-height:1.6}.eyebrow{border:1px solid var(--line);color:var(--ink-soft);box-shadow:var(--shadow-xs);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffb3;border-radius:99px;align-items:center;gap:8px;padding:5px 12px 5px 6px;font-size:.82rem;font-weight:500;display:inline-flex}.eyebrow b{background:var(--ink);color:#fff;border-radius:99px;padding:2px 8px;font-size:.72rem;font-weight:600}.mock{border-color:#0f122214;border-radius:18px;transform:perspective(1600px)rotateY(-6deg)rotateX(3deg);box-shadow:0 1px 1px #00000005,0 30px 80px -20px #312e8159,0 10px 30px -10px #0f122226}.mock-bar{background:#fbfbfc}.mock-thumb{border-radius:10px}.logos{background:0 0;border:0}.logos .container{font-family:var(--serif);color:#9a9db0;gap:48px;font-size:1.25rem;font-weight:500}.logos small{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-family:Inter,sans-serif;font-size:.82rem}.section{padding:96px 0}.section-title h2{font-size:clamp(2rem,3.4vw,2.8rem);line-height:1.1}.section-title .kicker{text-transform:uppercase;letter-spacing:.14em;color:var(--brand);margin-bottom:12px;font-size:.78rem;font-weight:600;display:block}.feature{padding:26px;transition:box-shadow .2s,transform .2s}.feature:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.feature h3{margin-top:4px;font-size:1.05rem}.step:before{font-family:var(--serif);background:linear-gradient(135deg,#6366f1,#312e81);box-shadow:0 6px 16px -4px #4f46e580}.quote{text-align:center;max-width:860px;margin:0 auto}.quote blockquote{font-family:var(--serif);letter-spacing:-.02em;color:var(--ink);margin:0 0 24px;font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.35}.quote .who{text-align:left;color:var(--muted);align-items:center;gap:12px;font-size:.9rem;display:inline-flex}.quote .who strong{color:var(--ink);display:block}.plan{border-radius:18px;padding:32px}.plan .price{font-family:var(--serif);font-size:2.4rem;font-weight:500}.plan.featured{background:var(--ink);color:#fff;border:0;box-shadow:0 30px 60px -20px #0f122273}.plan.featured h3,.plan.featured .price{color:#fff}.plan.featured ul,.plan.featured .muted{color:#c7c9d6!important}.plan.featured li svg{color:#a5b4fc}.plan.featured .ribbon{background:linear-gradient(135deg,#818cf8,#c084fc)}.plan.featured .btn-primary{color:var(--ink);box-shadow:none;background:#fff}.cta-band{background:radial-gradient(60% 120% at 0 0,#818cf873,#0000 60%),radial-gradient(50% 100% at 100% 100%,#ec48994d,#0000 60%),#0f1222;border-radius:24px;padding:56px}.cta-band h2{font-size:2.2rem}.footer{background:0 0}.split-art{background:radial-gradient(70% 60% at 10% 10%,#818cf88c,#0000 60%),radial-gradient(60% 60% at 90% 90%,#ec489959,#0000 60%),#14123a;padding:56px}.split-art h2{font-size:2.4rem;line-height:1.12}.split-art .deco{border-color:#ffffff0f}.split-art li{color:#ffffffe0}.split-art .logo-mark{background:#ffffff24;box-shadow:inset 0 0 0 1px #fff3}.split-main{background:var(--bg)}.split-form h1{font-size:2.4rem}.course-card{box-shadow:var(--shadow-xs);border-radius:16px;transition:box-shadow .2s,transform .2s}.course-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.course-card h3{letter-spacing:-.01em;font-weight:600}.course-hero{background:radial-gradient(50% 120% at 0 0,#818cf859,#0000 60%),radial-gradient(40% 100% at 100% 0,#ec489933,#0000 60%),#0f1222}.course-hero h1{font-size:2.5rem;line-height:1.1}.course-side{border-radius:18px}.accordion{border-radius:var(--radius)}.player-top{background:#0f1222}.course-side.float{margin-top:-240px;position:sticky;top:88px}@media (width<=1000px){.course-side.float{margin-top:0;position:static}.info-grid{grid-template-columns:1fr!important}}.lesson-text{font-size:1.05rem}.pdf{background:#e9e9ee}.pdf-bar{z-index:2;border-bottom:1px solid var(--line);color:var(--ink-soft);background:#fff;align-items:center;gap:8px;padding:6px 12px;font-size:.88rem;display:flex;position:sticky;top:0}.pdf-page{place-items:center;min-height:360px;padding:16px;display:grid;overflow:auto}.pdf-page canvas{box-shadow:var(--shadow);background:#fff;border-radius:4px;max-width:none}.qv{padding:4px 0 8px}.qv-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.qnum{font-family:var(--serif);font-size:1.15rem;font-weight:500}.q-content{margin-bottom:14px;font-size:1.02rem}.passage{border:1px solid var(--line);background:#f7f7fb;border-radius:12px;margin-bottom:16px;padding:16px 18px}.opts{gap:8px;display:grid}.qv .opt{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:12px;padding:12px 14px;transition:border-color .12s,background .12s;display:flex;position:relative}.qv .opt:hover{border-color:#b9bccb}.qv .opt.on{border-color:var(--brand);background:var(--brand-tint)}.qv .opt.right{border-color:var(--ok);background:var(--ok-tint)}.qv .opt.wrong{border-color:var(--danger);background:var(--danger-tint)}.qv .opt input{opacity:0;pointer-events:none;width:100%;height:100%;margin:0;position:absolute;inset:0}.qv .opt .key{border:1px solid var(--line);background:#fff;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:.85rem;font-weight:600;display:grid}.qv .opt.on .key{background:var(--brand);color:#fff;border-color:var(--brand)}.chip.uline{cursor:pointer;padding:6px 14px;font-size:.95rem}.chip.uline.on{border-color:var(--brand);background:var(--brand-tint);color:var(--brand-ink)}.chip.uline.right{border-color:var(--ok);background:var(--ok-tint)}.chip.uline.wrong{border-color:var(--danger);background:var(--danger-tint)}.tf{gap:10px;display:flex}.tf-btn{border:1px solid var(--line);max-width:200px;font:inherit;cursor:pointer;background:#fff;border-radius:12px;flex:1;padding:14px;font-weight:600}.tf-btn.on{border-color:var(--brand);background:var(--brand-tint);color:var(--brand-ink)}.tf-btn.right{border-color:var(--ok);background:var(--ok-tint)}.tf-btn.wrong{border-color:var(--danger);background:var(--danger-tint)}.st-table td:not(:first-child),.st-table th:not(:first-child){text-align:center;width:70px}.st-table tr.right td{background:var(--ok-tint)}.st-table tr.wrong td{background:var(--danger-tint)}.fill{line-height:2.4}.blank{vertical-align:middle;width:auto;min-width:140px;min-height:36px;margin:0 4px;padding:4px 10px;display:inline-block}select.blank.right,.match-row.right select{border-color:var(--ok);background:var(--ok-tint)}select.blank.wrong,.match-row.wrong select{border-color:var(--danger);background:var(--danger-tint)}.match{gap:10px;display:grid}.match-row{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.match-row .l{border:1px solid var(--line);background:#fafafe;border-radius:10px;padding:10px 14px}.match-row .arrow{color:var(--muted);text-align:center}.essay{min-height:200px;line-height:1.6}.explain{border-left:3px solid var(--brand);background:var(--brand-tint);border-radius:0 10px 10px 0;margin-top:12px;padding:12px 14px;font-size:.92rem}.exam-room{inset:var(--notice-top,0px) 0 var(--notice-bottom,0px);z-index:40;background:var(--bg);grid-template-rows:60px 1fr;display:grid;position:fixed}.exam-top{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:16px;padding:0 20px;display:flex}.exam-top .title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:hidden}.timer{font-variant-numeric:tabular-nums;background:var(--ink);color:#fff;border-radius:10px;align-items:center;gap:8px;padding:6px 14px;font-size:1.15rem;font-weight:700;display:inline-flex}.timer.warn{background:var(--danger);animation:1s infinite pulse}@keyframes pulse{50%{opacity:.75}}.exam-body{grid-template-columns:1fr 300px;min-height:0;display:grid}.exam-main{padding:28px 24px 80px;overflow-y:auto}.exam-main .sheet{gap:18px;max-width:820px;margin:0 auto;display:grid}.exam-main .sheet .card{padding:24px 26px}.exam-side{border-left:1px solid var(--line);background:#fff;flex-direction:column;gap:16px;padding:18px;display:flex;overflow-y:auto}.palette{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.palette button{aspect-ratio:1;border:1px solid var(--line);font:inherit;cursor:pointer;background:#fff;border-radius:10px;font-weight:600;position:relative}.palette button.done{background:var(--brand);color:#fff;border-color:var(--brand)}.palette button.cur{box-shadow:0 0 0 2px var(--ink)}.palette button.marked:after{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:3px;right:3px}.legend{color:var(--muted);gap:6px;font-size:.82rem;display:grid}.legend span{align-items:center;gap:8px;display:inline-flex}.legend i{border:1px solid var(--line);border-radius:4px;width:14px;height:14px;display:inline-block}.save-state{color:var(--muted);font-size:.8rem}@media (width<=900px){.exam-body{grid-template-columns:1fr}.exam-side{border-left:0;border-top:1px solid var(--line);z-index:2;max-height:45vh;transition:transform .2s;position:fixed;bottom:0;left:0;right:0;transform:translateY(calc(100% - 56px))}.exam-side.open{transform:none}.match-row{grid-template-columns:1fr}.match-row .arrow{display:none}}.lobby{max-width:720px;margin:0 auto}.lobby-facts{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:20px 0;display:grid}.lobby-facts>div{border:1px solid var(--line);background:#fff;border-radius:10px;padding:14px}.lobby-facts strong{font-family:var(--serif);font-size:1.6rem;font-weight:500;display:block}.lobby-facts span{color:var(--muted);font-size:.85rem}.checks{gap:8px;margin:16px 0;display:grid}.checks div{align-items:center;gap:10px;display:flex}.checks .ok{color:var(--ok)}.checks .bad{color:var(--danger)}.result-hero{text-align:center;padding:36px 24px}.result-hero .big{font-family:var(--serif);letter-spacing:-.04em;font-size:4rem;font-weight:500;line-height:1}.countdown{z-index:60;color:#fff;font-family:var(--serif);background:#0f1222e6;place-items:center;font-size:7rem;display:grid;position:fixed;inset:0}@media (width<=600px){.lobby-facts{grid-template-columns:1fr 1fr}}.opt-key{background:var(--line-soft);border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:.8rem;font-weight:600;display:grid}.steps-bar{gap:6px;margin-bottom:20px;display:flex;overflow-x:auto}.steps-bar button{border:1px solid var(--line);font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:#fff;border-radius:99px;align-items:center;gap:8px;padding:6px 14px 6px 6px;font-size:.85rem;font-weight:600;display:flex}.steps-bar button b{background:var(--line-soft);border-radius:50%;place-items:center;width:24px;height:24px;font-size:.78rem;display:grid}.steps-bar button.on{border-color:var(--ink);color:var(--ink)}.steps-bar button.on b{background:var(--ink);color:#fff}.steps-bar button.done b{background:var(--ok);color:#fff}.steps-bar button:disabled{opacity:.5;cursor:not-allowed}.qv .underline-opts{flex-wrap:wrap;gap:8px;display:flex}:root{--ink:#1f2a37;--ink-soft:#3d4a5c;--muted:#6b7789;--line:#e3e8ef;--line-soft:#eef2f6;--bg:#f3f5f8;--brand:#1b62b3;--brand-strong:#154f92;--brand-tint:#e8f1fb;--brand-ink:#11427a;--brand-grad:linear-gradient(90deg, #3b8de0 0%, #1b62b3 100%);--accent:#f39a2c;--accent-tint:#fff3e3;--accent-ink:#9a5a06;--ok:#19a463;--ok-tint:#e7f7ef;--danger:#e04444;--danger-tint:#fdeeee;--radius:10px;--radius-sm:8px;--shadow-xs:0 1px 3px #142d500f;--shadow:0 2px 10px #142d5012;--shadow-lg:0 10px 40px #142d502e;--serif:"Roboto Slab", Georgia, serif;--deep:#0f3f7a;--brand-rgb:27, 98, 179;font-family:var(--font,"Roboto"), "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;font-feature-settings:normal;font-size:14px}h1,h2,h3,h4{font-family:var(--serif);letter-spacing:0;font-weight:600}h1,.page-head h1,.welcome h1,.split-form h1{letter-spacing:0;font-variation-settings:normal;font-size:1.45rem;font-weight:600}.hero h1,.section-title h2,.cta-band h2,.split-art h2,.course-hero h1{font-family:var(--serif);letter-spacing:-.01em;font-weight:600}.btn{border-radius:6px;padding:9px 16px;font-size:.9rem;font-weight:500}.btn-sm{padding:6px 12px;font-size:.82rem}.btn-primary{background:var(--brand);box-shadow:none}.btn-primary:hover:not(:disabled){background:var(--brand-strong)}.btn-outline{border-color:var(--brand);color:var(--brand);box-shadow:none}.btn-outline:hover:not(:disabled){background:var(--brand-tint);border-color:var(--brand)}.btn-dark{background:var(--brand-strong);box-shadow:none}.btn-accent{background:var(--accent);color:#fff;box-shadow:none}.btn-accent:hover:not(:disabled){background:#e0861a}.input{box-shadow:none;border-color:#d5dbe4;border-radius:6px;min-height:38px;padding:8px 12px;font-size:.9rem}.input:focus{box-shadow:0 0 0 3px rgba(var(--brand-rgb), .15)}.field>label{color:var(--ink-soft);font-size:.82rem;font-weight:500}.card{border-radius:var(--radius);box-shadow:var(--shadow-xs);border:0;padding:20px}.card.table-wrap{box-shadow:var(--shadow-xs)}.badge{border-radius:4px;padding:3px 8px;font-size:.72rem;font-weight:500}.badge-ok{background:var(--ok-tint);color:var(--ok);border-color:#0000}th{color:var(--ink);text-transform:none;letter-spacing:0;background:#eaf2fb;font-size:.82rem;font-weight:600}thead th{border-bottom:0}th,td{padding:11px 14px}td{font-size:.88rem}tbody tr:hover td{background:#f8fbfe}.code-chip{background:var(--brand-tint);color:var(--brand);border-radius:4px;margin-top:2px;padding:1px 6px;font-size:.7rem;font-weight:600;display:inline-block}.avatar{box-shadow:none}.cls{background:var(--bg);grid-template-columns:248px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .2s;display:grid}.cls.collapsed{grid-template-columns:72px minmax(0,1fr)}.cls-side{height:100vh;box-shadow:1px 0 0 var(--line);z-index:20;background:#fff;flex-direction:column;display:flex;position:sticky;top:0}.cls-side .brand{align-items:center;gap:10px;min-height:64px;padding:16px 14px 12px 16px;display:flex}.cls-side .brand .name{font-family:var(--serif);color:var(--brand-ink);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;font-size:.98rem;font-weight:700;line-height:1.2;display:-webkit-box;overflow:hidden}.cls-side .brand .logo-mark{background:var(--brand-grad);width:32px;height:32px;font-family:var(--serif);box-shadow:none;border-radius:8px;flex:none}.cls-side .collapse-btn{border:1.5px solid var(--brand);color:var(--brand);cursor:pointer;background:#fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;padding:0;display:grid}.cls-side nav{flex:1;padding:4px 10px 12px;overflow-y:auto}.grp{margin-bottom:4px}.grp-head{width:100%;font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:9px 10px;font-size:.88rem;font-weight:500;display:flex}.grp-head:hover{background:var(--line-soft)}.grp-head svg.chev{color:var(--muted);margin-left:auto;transition:transform .15s}.grp.open>.grp-head{background:var(--brand-grad);color:#fff;box-shadow:0 3px 8px rgba(var(--brand-rgb), .3)}.grp.open>.grp-head svg{color:#fff}.grp.open>.grp-head svg.chev{transform:rotate(90deg)}.grp-items{padding:6px 0 4px;display:none}.grp.open .grp-items{display:block}.grp-items a{color:var(--ink-soft);border-radius:6px;align-items:center;gap:12px;padding:8px 10px 8px 14px;font-size:.86rem;text-decoration:none;display:flex}.grp-items a svg{color:#8592a6;flex:none}.grp-items a:hover{color:var(--brand);background:var(--brand-tint);text-decoration:none}.grp-items a.active{color:var(--brand);font-weight:500}.grp-items a.active svg{color:var(--brand)}.grp-items .count{background:var(--danger);color:#fff;border-radius:99px;margin-left:auto;padding:1px 7px;font-size:.68rem;font-weight:700}.side-art{color:#fff;background:radial-gradient(120% 80% at 100% 0%, #ffffff40, transparent 50%), linear-gradient(160deg, var(--brand) 0%, var(--deep) 100%);border-radius:12px;flex-direction:column;justify-content:flex-end;gap:4px;min-height:150px;margin:8px 10px 12px;padding:16px;display:flex;position:relative;overflow:hidden}.side-art:before{content:"";border:22px solid #ffffff1a;border-radius:50%;width:160px;height:160px;position:absolute;top:-40px;right:-50px}.side-art strong{font-family:var(--serif);font-size:1.05rem;line-height:1.25;position:relative}.side-art span{opacity:.85;font-size:.78rem;position:relative}.cls.collapsed .brand .name,.cls.collapsed .grp-head span,.cls.collapsed .grp-head svg.chev,.cls.collapsed .grp-items a span,.cls.collapsed .side-art,.cls.collapsed .grp-items .count{display:none}.cls.collapsed .grp-head,.cls.collapsed .grp-items a{justify-content:center;padding-left:0;padding-right:0}.cls.collapsed .grp-items{display:block}.cls.collapsed .grp.open>.grp-head{box-shadow:none;color:var(--ink);background:0 0}.cls.collapsed .grp.open>.grp-head svg{color:var(--brand)}.cls-main{flex-direction:column;min-width:0;display:flex}.topcard{z-index:15;box-shadow:var(--shadow);background:#fff;border-radius:12px;align-items:center;gap:6px;min-height:56px;margin:12px 20px 0;padding:0 12px 0 0;display:flex;position:sticky;top:0;overflow:visible}.topcard .banner{color:#fff;width:min(320px,34vw);font-family:var(--serif);background:radial-gradient(60% 120% at 90% 10%, #ffffff4d, transparent 60%), linear-gradient(110deg, var(--deep) 0%, var(--brand) 100%);border-radius:12px 0 40px 12px;align-self:stretch;align-items:center;padding:0 20px;font-size:.95rem;font-weight:600;display:flex;position:relative;overflow:hidden}.topcard .banner:after{content:"";border:16px solid #ffffff1f;border-radius:50%;width:120px;height:120px;position:absolute;bottom:-40px;right:-30px}.topcard .menu-btn{display:none}.topcard .ico{width:36px;height:36px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid;position:relative}.topcard .ico:hover{background:var(--line-soft);color:var(--brand)}.topcard .ico .dot{background:var(--danger);border-radius:50%;width:7px;height:7px;position:absolute;top:7px;right:8px;box-shadow:0 0 0 2px #fff}.topcard .who{font:inherit;cursor:pointer;text-align:right;color:var(--ink);background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:4px 6px;display:flex}.topcard .who:hover{background:var(--line-soft)}.topcard .who strong{font-size:.86rem;font-weight:500;display:block}.topcard .who small{color:var(--muted);font-size:.74rem;display:block}.topcard .pop{box-shadow:var(--shadow-lg);z-index:40;background:#fff;border-radius:10px;min-width:220px;padding:6px 0;position:absolute;top:calc(100% + 8px);right:0}.topcard .pop .item{width:100%;font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:9px 14px;font-size:.86rem;text-decoration:none;display:flex}.topcard .pop .item:hover{background:var(--line-soft);color:var(--brand)}.topcard .pop .item.on{color:var(--brand);font-weight:500}.topcard .pop .sep{background:var(--line);height:1px;margin:6px 0}.topcard .pop .empty-note{color:var(--muted);text-align:center;padding:16px;font-size:.85rem}.cls-content{width:100%;max-width:1440px;margin:0 auto;padding:20px 20px 40px}.cls-foot{text-align:center;color:var(--muted);padding:0 0 20px;font-size:.78rem}@media (width<=960px){.cls,.cls.collapsed{grid-template-columns:1fr}.cls-side{width:264px;box-shadow:var(--shadow-lg);z-index:50;transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-100%)}.cls-side.open{transform:none}.cls-backdrop.open{z-index:45;background:#0000004d;position:fixed;inset:0}.topcard{margin:8px 8px 0}.topcard .menu-btn{margin-left:8px;display:grid}.topcard .banner,.topcard .who strong,.topcard .who small,.topcard .hide-sm{display:none}.cls-content{padding:16px 12px 32px}}.page-head{align-items:center;margin-bottom:16px}.page-head h1{align-items:center;gap:10px;font-size:1.3rem;display:inline-flex}.page-head .home-link{color:var(--brand);border-left:1px solid var(--line);place-items:center;padding-left:10px;display:inline-grid}.filter-card{border-radius:var(--radius);box-shadow:var(--shadow-xs);background:#fff;margin-bottom:16px}.filter-card>button{width:100%;font:inherit;font-family:var(--serif);color:var(--ink);cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;padding:14px 20px;font-size:1rem;font-weight:600;display:flex}.filter-card .filter-body{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 16px;padding:0 20px 18px;display:grid}.filter-card .filter-body .field{margin:0}.list-card{border-radius:var(--radius);box-shadow:var(--shadow-xs);background:#fff;overflow:hidden}.list-card>.lc-head{flex-wrap:wrap;align-items:center;gap:8px;padding:16px 20px;display:flex}.list-card>.lc-head h3{flex:1;min-width:180px;margin:0;font-size:1.02rem}.list-card>.lc-head .search{width:220px}.list-card>.lc-head .search .input{min-height:34px}.list-card .table-wrap{overflow-x:auto}.list-card .empty{padding:36px}.list-card .pager{border-top:1px solid var(--line-soft)}.icon-btn{border:1px solid var(--line);width:34px;height:34px;color:var(--ink-soft);cursor:pointer;background:#fff;border-radius:6px;place-items:center;display:inline-grid}.icon-btn:hover{border-color:var(--brand);color:var(--brand)}.status-pill{border-radius:4px;padding:3px 9px;font-size:.72rem;font-weight:500;display:inline-block}.status-pill.ok{background:var(--ok-tint);color:var(--ok)}.status-pill.off{background:var(--danger-tint);color:var(--danger)}.status-pill.wait{background:var(--accent-tint);color:var(--accent-ink)}.status-pill.draft{color:var(--muted);background:#eef1f5}.cc-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;display:grid}.cc{border:1px solid var(--line);background:#fff;border-radius:8px;flex-direction:column;transition:box-shadow .15s;display:flex;overflow:hidden}.cc:hover{box-shadow:var(--shadow)}.cc-thumb{aspect-ratio:16/10;background-position:50%;background-size:cover;align-items:flex-end;display:flex;position:relative;text-decoration:none!important}.cc-thumb:after{content:"";background:linear-gradient(#0000,#05142dc7);position:absolute;inset:40% 0 0}.cc-thumb span{z-index:1;color:#fff;font-family:var(--serif);text-transform:uppercase;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:10px 12px;font-size:.92rem;font-weight:600;line-height:1.3;display:-webkit-box;position:relative;overflow:hidden}.cc-body{flex:1;align-content:start;gap:8px;padding:12px;display:grid}.cc-body .progress-bar{background:#e3f1ea;height:6px}.cc-body .progress-bar>span{background:var(--ok)}.cc-tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.cc-line{color:var(--ink-soft);align-items:center;gap:8px;min-width:0;font-size:.82rem;display:flex}.cc-line svg{flex:none}.cc-body .btn{margin-top:auto}.sec-card{border-radius:var(--radius);box-shadow:var(--shadow-xs);background:#fff;margin-bottom:16px;padding:16px 20px 20px}.sec-card>header{align-items:center;gap:10px;margin-bottom:14px;display:flex}.sec-card>header h3{flex:1;align-items:center;gap:10px;margin:0;font-size:1.02rem;display:flex}.sec-card>header h3 .dot-ico{background:var(--accent-tint);width:22px;height:22px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.sec-card>header a{font-size:.82rem}.dash{grid-template-columns:repeat(12,1fr);gap:16px;display:grid}.dash>*{min-width:0}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:span 12}@media (width<=1100px){.span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 12}}.welcome-card{border-radius:var(--radius);color:#fff;text-align:center;background:radial-gradient(circle at 15% 20%,#ffffff40 0 3px,#0000 4px),radial-gradient(circle at 80% 15%,#ffd666e6 0 5px,#0000 6px),radial-gradient(circle at 88% 70%,#ffffff4d 0 4px,#0000 5px),radial-gradient(circle at 25% 80%,#ffd666cc 0 4px,#0000 5px),linear-gradient(135deg,#2b78c9 0%,#1b62b3 50%,#4a90d9 100%);place-items:center;gap:8px;min-height:200px;padding:28px;display:grid;position:relative;overflow:hidden}.welcome-card .medal{background:#ffffff2e;border-radius:50%;place-items:center;width:52px;height:52px;display:grid}.welcome-card h2{color:#fff;margin:0;font-size:1.15rem}.welcome-card p{opacity:.9;margin:0;font-size:.85rem}.stat-tile{border-radius:var(--radius);box-shadow:var(--shadow-xs);background:#fff;justify-content:space-between;gap:10px;min-height:120px;padding:18px;display:flex}.stat-tile .num{color:var(--ink);font-family:Roboto,sans-serif;font-size:1.6rem;font-weight:700;line-height:1.1}.stat-tile .num small{color:var(--ok);margin-left:6px;font-size:.78rem;font-weight:500}.stat-tile .lbl{color:var(--ink-soft);margin-top:6px;font-size:.86rem}.stat-tile .art{border-radius:12px;flex:none;place-items:center;width:46px;height:46px;display:grid}.ring{--p:0;background:conic-gradient(var(--ok) calc(var(--p) * 1%), #e5ebf1 0);border-radius:50%;flex:none;place-items:center;width:34px;height:34px;display:grid}.ring:before{content:"";background:#fff;border-radius:50%;grid-area:1/1;width:26px;height:26px}.ring b{color:var(--ink-soft);grid-area:1/1;font-size:.62rem;font-weight:600}.row-item{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;padding:10px 0;display:flex}.row-item:last-child{border-bottom:0}.row-item .t{flex:1;min-width:0}.row-item .t strong{white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase;font-size:.86rem;font-weight:500;display:block;overflow:hidden}.row-item .t small{color:var(--muted);font-size:.76rem}.cal-card{border-radius:var(--radius);box-shadow:var(--shadow-xs);background:#fff;flex-direction:column;display:flex;overflow:hidden}.cal-card .art{color:#fff;background:radial-gradient(circle at 20% 30%,#ffffff59 0 6px,#0000 7px),linear-gradient(135deg,#7cc0f5,#3b8de0);place-items:center;height:110px;display:grid}.cal-card .day{border-bottom:1px solid var(--line-soft);align-items:center;gap:14px;padding:12px 16px;display:flex}.cal-card .day b{font-size:1.4rem;font-family:var(--serif)}.cal-card .day small{text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:700;display:block}.rank{align-items:center;gap:12px;padding:9px 0;display:flex}.rank .medal{color:#fff;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:.8rem;font-weight:700;display:grid}.rank .nm{flex:1;font-size:.88rem}.rank .sc{color:var(--brand);font-size:.85rem;font-weight:600}.chart{width:100%;height:220px}.legend-row{color:var(--ink-soft);flex-wrap:wrap;gap:16px;margin-bottom:8px;font-size:.8rem;display:flex}.legend-row span{align-items:center;gap:6px;display:inline-flex}.legend-row i{border-radius:50%;width:10px;height:10px;display:inline-block}.task-tile{border-radius:var(--radius);box-shadow:var(--shadow-xs);color:var(--ink);background:#fff;align-items:center;gap:14px;padding:18px;display:flex;text-decoration:none!important}.task-tile:hover{box-shadow:var(--shadow)}.task-tile .num{font-size:1.5rem;font-weight:700}.field{align-content:start;align-items:start}.row2{align-items:start}.level-row>.input,.level-row>select.input{min-width:0}.lp{inset:var(--notice-top,0px) 0 var(--notice-bottom,0px);z-index:40;background:var(--bg);grid-template-columns:minmax(0,1fr) 340px;gap:16px;padding:16px;display:grid;position:fixed;overflow:clip}.lp-main{min-width:0;overflow-y:auto}.lp-card{border-radius:var(--radius);box-shadow:var(--shadow-xs);background:#fff}.lp-main>.lp-card{flex-direction:column;min-height:100%;display:flex}.lp-head{border-bottom:1px solid var(--line-soft);align-items:center;gap:10px;padding:14px 16px;display:flex}.lp-head h2{text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;font-size:1.05rem;overflow:hidden}.round-btn{width:32px;height:32px;color:var(--brand);border:1.5px solid var(--brand);cursor:pointer;background:#fff;border-radius:50%;flex:none;place-items:center;display:grid}.lp-head .round-btn:first-child{background:var(--brand);color:#fff}.round-btn:hover{background:var(--brand-tint)}.lp-menu,.lp-close{display:none}.lp-stage{padding:12px 16px 0}.lp-stage .stage{border-radius:8px;overflow:hidden}.lp-stage .pdf{border:1px solid var(--line);border-radius:8px;overflow:hidden}.lp .lesson-wrap{flex:1;max-width:none;margin:0;padding:16px 20px}.lp-nav{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.lp-side{flex-direction:column;gap:16px;min-height:0;display:flex}.lp-course{flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px;display:flex}.lp-course strong{text-transform:uppercase;font-size:.86rem;font-family:var(--serif);display:block}.lp-course small{color:var(--muted);font-size:.78rem}.lp-prog{background:#e3f1ea;width:100%;height:16px;position:relative}.lp-prog>span{background:var(--ok)}.lp-prog b{color:var(--ink);place-items:center;font-size:.66rem;display:grid;position:absolute;inset:0}.lp-tabs{flex:1;min-height:0;overflow-y:auto}.lp-tabbar{border-bottom:1px solid var(--line);z-index:1;background:#fff;gap:6px;padding:12px;display:flex;position:sticky;top:0}.lp-tabbar button{font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:.82rem;display:inline-flex}.lp-tabbar button.on{background:var(--brand);color:#fff}.lp-tabs .sec{border-bottom:1px solid var(--line-soft);background:#f7f9fc;padding:10px 14px 6px;font-size:.8rem;font-weight:600}.lp-tabs .outline-item{border-bottom:1px solid var(--line-soft);padding:10px 14px;font-size:.84rem}.lp-tabs .outline-item.active{background:var(--brand-tint)}.lp-tabs .outline-item .t{font-weight:500}.quiz{border-color:#f7d3a6;padding:0;overflow:hidden}.quiz-head{background:var(--accent);color:#fff;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:10px 18px;font-weight:500;display:flex}.quiz-head small{opacity:.9}@media (width<=960px){.lp{grid-template-columns:1fr;padding:8px}.lp-menu,.lp-close{display:grid}.lp-side{display:none}.lp-side.open{z-index:45;width:min(340px,92vw);display:flex;position:fixed;inset:8px 8px 8px auto}}.toolbar{border-radius:var(--radius);box-shadow:var(--shadow-xs);background:#fff;padding:12px 14px}.toolbar .input{border-color:#d5dbe4}.card.table-wrap{border-radius:var(--radius)}.page-head+.alert{margin-top:-4px}.cls-backdrop{display:none}@media (width<=960px){.cls-backdrop.open{display:block}}.topcard .ico.menu-btn{display:none}@media (width<=960px){.topcard .ico.menu-btn{display:grid}}.course-hero{border-radius:var(--radius);background:radial-gradient(60% 120% at 100% 0,#ffffff2e,#0000 60%),linear-gradient(110deg,#0f3f7a 0%,#1b62b3 60%,#3b8de0 100%);margin:0 0 20px;padding:28px 32px}.course-hero h1{font-size:1.7rem}.course-hero .crumbs{color:#cfe3fa}.course-page{max-width:none}.course-side.float{margin-top:-150px;top:84px}@media (width<=1000px){.course-hero{margin:0 0 16px;padding:22px 18px}.course-side.float{margin-top:0}}.thumb-sm{background-position:50%;background-size:cover;border-radius:6px;flex:none;width:64px;height:40px}.list-card .editor-tabs button{padding:10px 12px}.sub{color:var(--muted);font-size:.8rem}.list-card,.filter-card,.tab-card,.tiles4{margin-bottom:18px}.back-link{width:32px;height:32px;color:var(--brand);background:var(--brand-tint);border-radius:8px;place-items:center;display:inline-grid}.back-link:hover{background:var(--brand);color:#fff}.sub{display:block}.small{font-size:.82rem}.stack-sm{flex-direction:column;gap:8px;display:flex}.row4{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 10px;display:grid}.input-color{cursor:pointer;height:38px;min-height:38px;padding:3px}.input-sm{width:auto;height:32px;min-height:32px;padding:4px 10px;font-size:.85rem}.icon-btn.on{background:var(--brand-tint);border-color:var(--brand);color:var(--brand)}.icon-btn.danger:hover{border-color:var(--danger);color:var(--danger)}.icon-btn.xls{color:#1d6f42}th.num,td.num{text-align:right;white-space:nowrap}.title-link{color:var(--ink);font-weight:500;text-decoration:none}.title-link:hover{color:var(--brand)}.tab-card{border-radius:var(--radius);box-shadow:var(--shadow-xs);background:#fff;flex-wrap:wrap;gap:8px;padding:12px;display:flex}.tab-card button{font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:9px 18px;font-weight:500;display:inline-flex}.tab-card button:hover{color:var(--brand)}.tab-card button.on{background:var(--brand-grad);color:#fff;box-shadow:0 4px 10px -4px #1b62b399}.cert-frame{width:100%;position:relative;overflow:hidden}.cert-paper{transform-origin:0 0;-webkit-user-select:none;user-select:none;background-position:50%;background-size:cover;position:absolute;top:0;left:0;overflow:hidden}.cert-el{box-sizing:border-box;position:absolute;overflow:hidden}.cert-el img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.cert-el.editable{cursor:move}.cert-el.editable:hover{outline:1px dashed #1b62b399}.ce-text{white-space:pre-wrap;word-break:break-word;flex-direction:column;justify-content:center;width:100%;height:100%;display:flex}.ce-ph{color:#6b7789;background:repeating-linear-gradient(45deg,#eef2f7,#eef2f7 10px,#e3e9f1 10px 20px);place-items:center;width:100%;height:100%;font-size:18px;display:grid}.ce-ph.round{border-radius:50%}.cert-shadow{border-radius:4px;box-shadow:0 1px 3px #0f172a1f,0 12px 32px -14px #0f172a59}.thumb-btn{border:1px solid var(--line);cursor:zoom-in;background:#fff;border-radius:6px;padding:3px;display:block}.thumb-btn:hover{border-color:var(--brand);box-shadow:var(--shadow-xs)}.designer{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:18px;display:grid}.designer-main{min-width:0}.designer-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex;padding:12px 14px!important}.designer-toolbar label.btn{cursor:pointer}.designer-stage{border-radius:var(--radius);background:#e9edf3 radial-gradient(#d3dae5 1px,#0000 1px) 0 0/16px 16px;padding:28px}.designer-stage .cert-frame{box-shadow:0 2px 8px #0f172a26,0 18px 40px -18px #0f172a66}.sel-box{outline:2px solid var(--brand);pointer-events:none;position:absolute}.sel-handle{border:2px solid var(--brand);cursor:nwse-resize;pointer-events:auto;background:#fff;border-radius:3px;width:12px;height:12px;position:absolute;bottom:-6px;right:-6px}.designer-side{position:sticky;top:12px}.designer-side .sec-card h3{margin:0 0 12px;font-size:1rem}.designer-side .label,.designer-side label{font-size:.82rem}.panel-head{align-items:center;gap:6px;margin-bottom:12px;display:flex}.panel-head h3{margin:0!important}.panel-head .icon-btn{width:30px;height:30px}.layer-list{border:1px solid var(--line-soft);border-radius:8px;flex-direction:column;gap:2px;max-height:240px;padding:4px;display:flex;overflow:auto}.layer{font:inherit;text-align:left;cursor:pointer;color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:7px 8px;font-size:.84rem;display:flex;overflow:hidden}.layer:hover{background:var(--brand-tint);color:var(--brand)}.layer svg{flex:none}.field-chips{flex-wrap:wrap;gap:5px;margin:-4px 0 14px;display:flex}.chip-btn{border:1px solid var(--line);font:inherit;color:var(--ink-soft);cursor:pointer;background:#f8fafc;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:.74rem;display:inline-flex}.chip-btn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-tint)}.fmt-bar{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 14px;display:flex}.fmt-bar .icon-btn{width:32px;height:32px;font-size:.8rem;font-weight:700}.fmt-bar .seg button{padding:6px 10px;font-weight:500}@media (width<=1100px){.designer{grid-template-columns:1fr}.designer-side{position:static}}.cert-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px;display:grid}.cert-card{border-radius:var(--radius);box-shadow:var(--shadow-xs);color:var(--ink);background:#fff;flex-direction:column;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden}.cert-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.cert-thumb{background:linear-gradient(#eef3fa,#e2e9f3);padding:16px}.cert-thumb .cert-frame{box-shadow:0 6px 18px -8px #0f172a73}.cert-meta{padding:14px 16px 16px}.cert-meta h3{margin:4px 0 8px;font-size:1rem;line-height:1.35}.cert-kind{color:var(--accent-ink);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:5px;font-size:.76rem;font-weight:600;display:inline-flex}.cert-line{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;font-size:.84rem;display:flex}.verify-page{background:linear-gradient(#e8f1fb 0,#f3f5f8 320px);min-height:100vh}.verify-top{box-shadow:var(--shadow-xs);background:#fff;align-items:center;gap:10px;padding:14px 24px;display:flex}.verify-top .logo-mark{background:var(--brand-grad);color:#fff;border-radius:8px;place-items:center;width:32px;height:32px;font-weight:700;display:grid}.verify-main{max-width:980px;margin:0 auto;padding:32px 16px 64px}.verify-status{border-radius:var(--radius);box-shadow:var(--shadow-xs);background:#fff;border-left:5px solid;align-items:center;gap:16px;margin-bottom:16px;padding:20px 24px;display:flex}.verify-status h1{margin:0 0 4px;font-family:Roboto Slab,serif;font-size:1.35rem}.verify-status p{color:var(--ink-soft);margin:0}.verify-status.good{border-color:var(--ok)}.verify-status.good>svg{color:var(--ok)}.verify-status.bad{border-color:var(--danger)}.verify-status.bad>svg{color:var(--danger)}.verify-facts{background:var(--line);border-radius:var(--radius);box-shadow:var(--shadow-xs);flex-wrap:wrap;gap:1px;margin:0 0 20px;display:flex;overflow:hidden}.verify-facts>div{background:#fff;flex:180px;padding:12px 16px}.verify-facts dt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.76rem}.verify-facts dd{margin:2px 0 0;font-weight:500}.verify-cert{position:relative}.verify-cert.void .cert-frame{filter:grayscale();opacity:.6}.badge-count{background:var(--danger);color:#fff;border-radius:9px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:.66rem;font-weight:700;display:grid;position:absolute;top:2px;right:0;box-shadow:0 0 0 2px #fff}.topcard .pop.note-pop{width:360px;padding:0;overflow:hidden}.note-head{border-bottom:1px solid var(--line-soft);align-items:center;padding:12px 14px;display:flex}.note-head .link-btn{align-items:center;gap:4px;font-size:.8rem;display:inline-flex}.note-list{max-height:380px;overflow:auto}.note-list.page{max-height:none}.note{text-align:left;border:0;border-bottom:1px solid var(--line-soft);width:100%;font:inherit;cursor:pointer;color:var(--ink);background:#fff;gap:12px;padding:12px 14px;text-decoration:none;display:flex}.note:hover{background:#f7f9fc}.note.unread{background:#f2f7fd}.note.unread .note-text strong:after{content:"";background:var(--brand);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-left:6px;display:inline-block}.note-ico{background:var(--brand-tint);width:34px;height:34px;color:var(--brand);border-radius:50%;flex:none;place-items:center;display:grid}.note-text{flex-direction:column;gap:2px;min-width:0;font-size:.86rem;display:flex}.note-text strong{font-weight:500}.note-text .sub{color:var(--muted);font-size:.8rem}.note-time{color:var(--muted);font-size:.74rem}.note-all{text-align:center;color:var(--brand);padding:10px;font-size:.84rem;font-weight:500;text-decoration:none;display:block}.note-all:hover{background:var(--brand-tint)}.tiles4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.tiles4 .num small{color:var(--muted);font-size:.9rem;font-weight:400}@media (width<=900px){.tiles4,.row4{grid-template-columns:repeat(2,minmax(0,1fr))}}.rate{align-items:center;gap:8px;display:flex}.rate-bar{background:var(--line-soft);border-radius:4px;flex:1;min-width:60px;height:8px;overflow:hidden}.rate-bar span{border-radius:4px;height:100%;display:block}.rate b{text-align:right;min-width:42px;font-size:.8rem;font-weight:500}.pick-two{grid-template-columns:1fr 1fr;gap:14px;margin-top:4px;display:grid}.pick-list{border:1px solid var(--line);border-radius:8px;height:280px;margin-top:8px;overflow:auto}.pick-title{align-items:center;min-height:40px;font-weight:500;display:flex}.pick-row{border:0;border-bottom:1px solid var(--line-soft);width:100%;font:inherit;text-align:left;cursor:pointer;background:#fff;align-items:center;gap:10px;padding:8px 10px;display:flex}.pick-row:hover{background:var(--brand-tint)}.pick-row>span{flex-direction:column;flex:1;min-width:0;font-size:.86rem;display:flex}.pick-row .sub{color:var(--muted);text-overflow:ellipsis;font-size:.78rem;overflow:hidden}@media (width<=700px){.pick-two{grid-template-columns:1fr}}.alert-info{background:var(--brand-tint);color:var(--brand-ink);border-color:#c9ddf4}.status-pill.danger{background:var(--danger-tint);color:var(--danger)}.danger-text{color:var(--danger)!important}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chips .chip{align-items:center;gap:5px;display:inline-flex}.info-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px 24px;margin:0 0 18px;display:grid}.info-grid dt{color:var(--muted);margin-bottom:2px;font-size:.78rem}.info-grid dd{margin:0;font-weight:500}.inline-field{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.inline-field .input-sm{width:110px}.inline-field select.input-sm{width:220px}.input-ico{position:relative}.input-ico>svg{color:var(--muted);position:absolute;top:50%;left:11px;transform:translateY(-50%)}.input-ico .input{padding-left:34px}.btn-danger-outline{color:var(--danger)!important;border-color:#f2b8c0!important}.btn-danger-outline:hover{background:var(--danger-tint)!important}.sec-card h3{margin-top:0}.sec-card{margin-bottom:18px}.opt-list{flex-direction:column;gap:6px;display:flex}.opt-row{grid-template-columns:26px 1fr 34px;align-items:center;gap:8px;display:grid}.opt-n{background:var(--brand-tint);width:24px;height:24px;color:var(--brand);border-radius:50%;place-items:center;font-size:.75rem;font-weight:600;display:grid}.opt-list .link-btn{align-self:flex-start;align-items:center;gap:4px;display:inline-flex}.preview-box{border:1px dashed var(--line);background:#fafcff;border-radius:10px;margin-top:6px;padding:14px 16px}.preview-lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px;font-size:.72rem}.sv-list{flex-direction:column;display:flex}.sv-list>.sv-q{border-top:1px solid var(--line-soft);padding:16px 20px}.sv-q-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.sv-q-head .icon-btn{width:30px;height:30px}.sv-n{color:var(--brand);font-weight:600}.sv-q-title{margin-bottom:12px;font-weight:500;line-height:1.45}.req{color:var(--danger);margin-left:4px}.req-tag{color:var(--danger);background:var(--danger-tint);border-radius:4px;padding:1px 7px;font-size:.7rem}.ans-opts{flex-direction:column;gap:8px;display:flex}.ans-opt{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:10px;padding:10px 14px;display:flex}.ans-opt:hover{border-color:var(--brand)}.ans-opt.on{border-color:var(--brand);background:var(--brand-tint)}.ans-opt input{width:17px;height:17px;accent-color:var(--brand)}.ans-scale{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.ans-scale .lbl{color:var(--muted);max-width:140px;font-size:.82rem}.ans-scale .nums{flex-wrap:wrap;gap:6px;display:flex}.ans-scale .nums button{border:1px solid var(--line);width:42px;height:42px;font:inherit;cursor:pointer;color:var(--ink-soft);background:#fff;border-radius:50%;font-weight:600}.ans-scale .nums button:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.ans-scale .nums button.on{background:var(--brand);border-color:var(--brand);color:#fff}.ans-stars{gap:4px;display:flex}.ans-stars button{cursor:pointer;color:#cfd6e0;background:0 0;border:0;padding:2px}.ans-stars button.on{color:#f5a524}.ans-stars button:disabled{cursor:default}.ans-matrix{border-collapse:collapse;min-width:420px}.ans-matrix th,.ans-matrix td{text-align:center;border-bottom:1px solid var(--line-soft);padding:9px 12px;font-size:.88rem}.ans-matrix th{background:#eef4fb;font-weight:500}.ans-matrix td:first-child,.ans-matrix th:first-child{text-align:left}.ans-matrix input{width:17px;height:17px;accent-color:var(--brand)}.ans-matrix.heat td:not(:first-child){font-weight:600}.stat-bars{flex-direction:column;gap:8px;display:flex}.stat-bar{grid-template-columns:minmax(120px,260px) 1fr 110px;align-items:center;gap:12px;font-size:.88rem;display:grid}.stat-bar.wide{grid-template-columns:minmax(140px,300px) 1fr 140px}.stat-bar .rate-bar{border-radius:6px;height:12px}.stat-bar .n{text-align:right;font-weight:600}.stat-bar .n small{color:var(--muted);font-weight:400}.stat-avg{margin-bottom:4px;font-size:.9rem}.stat-avg b{color:var(--brand);font-size:1.15rem}.stat-texts{flex-direction:column;gap:6px;max-height:260px;display:flex;overflow:auto}.stat-texts blockquote{border-left:3px solid var(--brand);background:#f6f8fb;border-radius:4px;margin:0;padding:8px 12px;font-size:.88rem}.sv-cards{flex-direction:column;gap:12px;display:flex}.sv-card{border-radius:var(--radius);box-shadow:var(--shadow-xs);color:var(--ink);background:#fff;align-items:center;gap:16px;padding:16px 20px;text-decoration:none;display:flex}.sv-card:hover{box-shadow:var(--shadow)}.sv-ico{background:var(--brand-tint);width:46px;height:46px;color:var(--brand);border-radius:12px;flex:none;place-items:center;display:grid}.sv-ico.done{background:var(--ok-tint);color:var(--ok)}.sv-body{flex:1;min-width:0}.sv-top{align-items:center;gap:10px;display:flex}.sv-top h3{margin:0;font-size:1rem}.sv-take{max-width:860px;margin:0 auto}.sv-hero{background:var(--brand-grad);color:#fff;border-radius:var(--radius);margin-bottom:18px;padding:24px 28px}.sv-hero h1{margin:0 0 6px;font-family:Roboto Slab,serif;font-size:1.5rem}.sv-hero p{opacity:.92;margin:0 0 8px}.sv-meta{opacity:.85;font-size:.85rem}.sv-take .sv-q.missing{outline:2px solid var(--danger)}.field-err{color:var(--danger);margin-top:8px;font-size:.82rem}.sv-bar{z-index:5;border-radius:var(--radius);background:#fff;flex-wrap:wrap;align-items:center;gap:12px;margin:8px 0 18px;padding:12px 18px;display:flex;position:sticky;bottom:0;box-shadow:0 -4px 18px -8px #0f172a40}.sv-bar .rate-bar{flex:1;min-width:120px}.path-opts{grid-template-columns:1fr 1fr;gap:18px;margin-top:6px;display:grid}.path-opts .seg{align-self:flex-start}.step-card{border-left:4px solid var(--brand);position:relative}.step-head{align-items:center;gap:6px;margin-bottom:10px;display:flex}.step-head h3{margin:0}.step-items{border-collapse:collapse;width:100%}.step-items th{text-align:left;text-transform:uppercase;color:var(--ink-soft);background:#eef4fb;padding:9px 12px;font-size:.78rem;font-weight:500}.step-items td{border-bottom:1px solid var(--line-soft);padding:8px 12px}.step-items .input-sm{width:120px}.step-items .link-btn{align-items:center;gap:6px;display:inline-flex}.ico-course{color:#7c5cff;vertical-align:-2px}.ico-exam{color:#16a34a;vertical-align:-2px}.step-foot{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}@media (width<=800px){.path-opts{grid-template-columns:1fr}}.path-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.path-card{border-radius:var(--radius);box-shadow:var(--shadow-xs);color:var(--ink);background:#fff;flex-direction:column;gap:8px;padding:18px;text-decoration:none;display:flex}.path-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.path-card h3{margin:4px 0 0;font-size:1.02rem}.pc-top{justify-content:space-between;align-items:center;display:flex}.pc-ico{color:#e07b00;background:linear-gradient(135deg,#fff3e0,#ffe0b2);border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.path-hero{background:var(--brand-grad);color:#fff;border-radius:var(--radius);justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px;padding:24px 28px;display:flex}.path-hero h1{margin:0 0 6px;font-family:Roboto Slab,serif;font-size:1.5rem}.path-hero p{opacity:.9;margin:0 0 10px}.path-facts{opacity:.92;flex-wrap:wrap;gap:16px;font-size:.85rem;display:flex}.path-facts span{align-items:center;gap:5px;display:inline-flex}.ring.big{background:conic-gradient(#fff calc(var(--p) * 1%), #ffffff40 0);width:92px;height:92px}.ring.big:before{background:#1b62b3;width:76px;height:76px}.ring.big b{color:#fff;font-size:1.2rem}.timeline{padding-left:44px;position:relative}.timeline:before{content:"";background:var(--line);width:2px;position:absolute;top:8px;bottom:8px;left:17px}.tl-step{position:relative}.tl-dot{border:2px solid var(--line);width:36px;height:36px;color:var(--muted);z-index:1;background:#fff;border-radius:50%;place-items:center;font-weight:700;display:grid;position:absolute;top:18px;left:-44px}.tl-step.open .tl-dot{border-color:var(--brand);color:var(--brand)}.tl-step.done .tl-dot{border-color:var(--ok);background:var(--ok);color:#fff}.tl-step.locked .tl-body{opacity:.7}.tl-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.tl-head h3{margin:0;font-size:1rem}.tl-items{flex-direction:column;gap:8px;display:flex}.tl-item{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;align-items:center;gap:12px;padding:10px 14px;text-decoration:none;display:flex}a.tl-item:hover{border-color:var(--brand);background:#f7fbff}.tl-item.disabled{cursor:not-allowed;background:#f8fafc}.tl-ico{border-radius:8px;flex:none;place-items:center;width:32px;height:32px;display:grid}.tl-ico.course{color:#7c5cff;background:#efeaff}.tl-ico.exam{color:#16a34a;background:#e3f6ea}.tl-name{flex-direction:column;flex:1;min-width:0;display:flex}.cal{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:18px;display:grid}.cal-side{border-radius:var(--radius);box-shadow:var(--shadow-xs);background:#fff;flex-direction:column;gap:18px;padding:16px;display:flex;position:sticky;top:12px}.cal-filter{flex-direction:column;gap:10px;display:flex}.cal-filter .h{text-transform:uppercase;color:var(--muted);letter-spacing:.05em;font-size:.75rem}.cal-filter input.colored{accent-color:var(--c)}.cal-main{border-radius:var(--radius);box-shadow:var(--shadow-xs);background:#fff;min-width:0;padding:16px}.cal-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.cal-head h2{margin:0 0 0 6px;font-family:Roboto Slab,serif;font-size:1.15rem;font-weight:500}.cal-head .seg button{padding:6px 14px;font-weight:500}.cal-month{border-left:1px solid var(--line-soft);border-top:1px solid var(--line-soft);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-month .wd{text-align:center;color:var(--ink-soft);border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:#eef4fb;padding:8px;font-size:.8rem;font-weight:600}.cal-month .cell{border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);flex-direction:column;gap:3px;min-width:0;min-height:104px;padding:6px;display:flex}.cal-month .cell.out{background:#fafbfd}.cal-month .cell.out .dn{color:#b7bfcb}.cal-month .cell.today{background:#f2f7fd}.cal-month .dn{color:var(--ink-soft);font-size:.82rem;font-weight:500}.cal-month .cell.today .dn{color:#fff;background:var(--brand);border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.cal-chip{text-align:left;border:0;border-left:3px solid var(--c);background:color-mix(in srgb, var(--c) 12%, #fff);width:100%;color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:3px 6px;font-size:.76rem;display:block;overflow:hidden}.cal-chip:hover{background:color-mix(in srgb, var(--c) 22%, #fff)}.cal-chip .t{color:var(--c);margin-right:4px;font-weight:600}.cal-more{font:inherit;color:var(--brand);text-align:left;cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:.74rem}.cal-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.cal-week .col{background:#fafbfd;border-radius:8px;flex-direction:column;gap:4px;min-height:360px;padding:8px;display:flex}.cal-week .col.today{background:#eef4fb}.cal-week .wd{color:var(--ink-soft);margin-bottom:4px;font-size:.8rem}.cal-agenda{flex-direction:column;display:flex}.ag-day{border-bottom:1px solid var(--line-soft);grid-template-columns:90px 1fr;gap:16px;padding:12px 0;display:grid}.ag-date{color:var(--ink-soft);flex-direction:column;align-items:center;display:flex}.ag-date b{font-size:1.6rem;line-height:1}.ag-date span{text-transform:capitalize;font-size:.78rem}.ag-date.today{color:var(--brand)}.ag-list{flex-direction:column;gap:6px;display:flex}.ag-item{font:inherit;text-align:left;cursor:pointer;background:#fff;border:0;border-radius:8px;grid-template-columns:4px 130px 1fr;align-items:center;gap:12px;padding:8px 10px;display:grid}.ag-item:hover{background:#f6f8fb}.ag-item .bar{background:var(--c);border-radius:2px;width:4px;height:34px}.ag-item .tm{color:var(--ink-soft);font-size:.82rem}.ag-item .tt{flex-direction:column;display:flex}@media (width<=900px){.cal{grid-template-columns:1fr}.cal-side{position:static}.cal-month .cell{min-height:70px}.cal-week{grid-template-columns:1fr}}.ok-text{color:var(--ok)!important}.switch{width:38px;height:22px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.switch span{cursor:pointer;background:#cfd6e0;border-radius:22px;transition:all .15s;position:absolute;inset:0}.switch span:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0003}.switch input:checked+span{background:var(--brand)}.switch input:checked+span:before{transform:translate(16px)}.badge-ico{color:#fff;background:radial-gradient(circle at 30% 25%, color-mix(in srgb, var(--c) 55%, #fff), var(--c) 60%, color-mix(in srgb, var(--c) 70%, #000));box-shadow:0 0 0 3px color-mix(in srgb, var(--c) 30%, #fff), 0 4px 10px -4px color-mix(in srgb, var(--c) 80%, #000);border-radius:50%;flex:none;place-items:center;display:inline-grid;position:relative}.badge-ico img{object-fit:cover;border-radius:50%;width:100%;height:100%}.badge-ico .lv{min-width:18px;height:18px;color:var(--ink);background:#fff;border-radius:9px;place-items:center;padding:0 4px;font-size:.68rem;font-weight:700;display:grid;position:absolute;bottom:-4px;right:-4px;box-shadow:0 1px 3px #00000040}.badge-ico.locked{filter:grayscale();opacity:.35}.badge-groups{grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:16px;display:grid}.badge-group{margin:0!important}.bg-head{align-items:center;display:flex}.bg-head h3{margin:0}.bg-levels{flex-wrap:wrap;gap:14px;margin-top:14px;display:flex}.bg-level{text-align:center;flex-direction:column;align-items:center;gap:4px;width:76px;font-size:.84rem;display:flex}.gift-thumb{color:#e07b00;background:#fff3e0;border-radius:10px;flex:none;place-items:center;width:44px;height:44px;display:grid;overflow:hidden}.gift-thumb img{object-fit:cover;width:100%;height:100%}.gift-edit{align-items:flex-start;gap:16px;display:flex}.gift-img{border:1px dashed var(--line);width:120px;height:120px;color:var(--muted);cursor:pointer;border-radius:12px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:6px;font-size:.8rem;display:flex;overflow:hidden}.gift-img img{object-fit:cover;width:100%;height:100%}.wallet{border-radius:var(--radius);color:var(--accent-ink);background:linear-gradient(90deg,#fff7e6,#fff);border:1px solid #f6dda4;align-items:center;gap:12px;margin-bottom:18px;padding:14px 20px;display:flex}.wallet b{color:#b45309;margin-left:auto;font-size:1.6rem}.gift-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin-bottom:18px;display:grid}.gift-card{border-radius:var(--radius);box-shadow:var(--shadow-xs);background:#fff;flex-direction:column;display:flex;overflow:hidden}.gc-img{color:#e07b00;background:linear-gradient(135deg,#fff3e0,#ffe8cc);place-items:center;height:150px;display:grid}.gc-img img{object-fit:cover;width:100%;height:100%}.gc-body{flex-direction:column;flex:1;gap:8px;padding:14px;display:flex}.gc-body h3{margin:0;font-size:1rem}.gc-foot{justify-content:space-between;align-items:center;margin-top:auto;display:flex}.gc-cost{color:#b45309;align-items:center;gap:5px;font-weight:700;display:inline-flex}.checkin-card{border-radius:var(--radius);background:linear-gradient(90deg,#fff1e6,#fff);border:1px solid #fbd5b5;align-items:center;gap:14px;margin-bottom:18px;padding:14px 18px;display:flex}.checkin-card.compact{margin-bottom:0}.ci-ico{color:#fff;background:linear-gradient(135deg,#ff9a3c,#ff5e3a);border-radius:12px;flex:none;place-items:center;width:42px;height:42px;display:grid}.ci-body{flex-direction:column;flex:1;display:flex}.growth-hero{background:var(--brand-grad);color:#fff;border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:18px;padding:22px 26px;display:flex}.growth-hero .avatar.lg{width:64px;height:64px;font-size:1.4rem;background:#fff!important}.gh-name{flex:1;min-width:180px}.gh-name h2{margin:0;font-family:Roboto Slab,serif;font-size:1.4rem}.gh-name span{opacity:.85;font-size:.88rem}.gh-stats{grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px;display:grid}.gh-stats>div{background:#ffffff24;border-radius:12px;flex-direction:column;gap:2px;padding:10px 14px;display:flex}.gh-stats b{font-size:1.35rem}.gh-stats span{opacity:.85;font-size:.76rem}.growth-links{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.my-badges{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;padding:0 20px 20px;display:grid}.mb-card{border:1px solid var(--line-soft);border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.mb-head{color:var(--brand);align-items:center;gap:6px;display:flex}.mb-levels{flex-wrap:wrap;gap:10px;display:flex}.mb-now{font-size:.86rem}.tl-feed{flex-direction:column;padding:0 20px 20px;display:flex}.tf-item{border-bottom:1px solid var(--line-soft);gap:12px;padding:10px 0;display:flex}.tf-dot{background:var(--brand-tint);width:26px;height:26px;color:var(--brand);border-radius:50%;flex:none;place-items:center;display:grid}.tf-item.badge .tf-dot{color:#fff}.tf-item.certificate .tf-dot{color:#e07b00;background:#fff3e0}.tf-body{flex-direction:column;font-size:.9rem;display:flex}@media (width<=800px){.gh-stats{grid-template-columns:repeat(2,1fr);width:100%}}.podium{justify-content:center;align-items:flex-end;gap:18px;margin:6px 0 22px;display:flex}.pd{text-align:center;flex-direction:column;align-items:center;gap:4px;width:170px;display:flex}.pd .avatar.lg{width:58px;height:58px}.pd-bar{color:#fff;border-radius:12px 12px 0 0;flex-direction:column;align-items:center;width:100%;margin-top:6px;padding:10px 0;display:flex}.pd-bar b{font-size:1.3rem}.pd-bar span{opacity:.9;font-size:.75rem}.pd-rank{font-weight:800;opacity:1!important;font-size:1.6rem!important}.pd-1 .pd-bar{background:linear-gradient(#f5c542,#e0a500);height:150px}.pd-2 .pd-bar{background:linear-gradient(#b8c2cc,#8d99a6);height:115px}.pd-3 .pd-bar{background:linear-gradient(#e0a070,#c27a3d);height:90px}.rank-no{background:var(--line-soft);width:30px;height:30px;color:var(--ink-soft);border-radius:50%;place-items:center;font-weight:700;display:inline-grid}.rank-no.r1{color:#fff;background:#f5c542}.rank-no.r2{color:#fff;background:#a3aeb9}.rank-no.r3{color:#fff;background:#d08b50}tr.me-row td{background:var(--brand-tint)!important}.forum{grid-template-columns:250px minmax(0,1fr);align-items:start;gap:18px;display:grid}.forum-side{flex-direction:column;gap:2px;display:flex;position:sticky;top:12px;padding:12px!important}.fs-head{justify-content:space-between;align-items:center;padding:4px 8px 8px;display:flex}.fs-head .icon-btn{width:28px;height:28px}.fs-item{font:inherit;text-align:left;cursor:pointer;color:var(--ink-soft);background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:.9rem;display:flex}.fs-item:hover{background:#f4f7fb}.fs-item.on{background:var(--brand-tint);color:var(--brand);font-weight:500}.fs-item .icon-btn{opacity:0;width:26px;height:26px;margin-left:auto}.fs-item:hover .icon-btn{opacity:1}.fs-name{flex-direction:column;display:flex}.fs-name .sub{font-weight:400}.fs-sep{background:var(--line-soft);height:1px;margin:6px 0}.topic-list{flex-direction:column;display:flex}.topic-row{border-top:1px solid var(--line-soft);color:var(--ink);align-items:flex-start;gap:14px;padding:14px 20px;text-decoration:none;display:flex}.topic-row:hover{background:#f8fbff}.topic-row.pinned{background:#fffbeb}.tr-main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.tr-title{align-items:center;gap:6px;font-weight:500;display:flex}.tr-title .pin{color:#e0a500}.tr-main>.sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tr-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:.78rem;display:flex}.tr-stats{color:var(--muted);flex-direction:column;align-items:flex-end;gap:3px;min-width:110px;font-size:.8rem;display:flex}.tr-stats span{align-items:center;gap:4px;display:inline-flex}.qa-count{border:1px solid var(--line);width:62px;height:54px;color:var(--muted);border-radius:10px;flex-direction:column;flex:none;justify-content:center;align-items:center;font-size:.72rem;display:flex}.qa-count b{color:var(--ink-soft);font-size:1.1rem}.qa-count.some{border-color:var(--brand)}.qa-count.some b{color:var(--brand)}.qa-count.ok{background:var(--ok);border-color:var(--ok);color:#fff}.qa-count.ok b{color:#fff}.role-tag{background:var(--brand-tint);color:var(--brand);border-radius:4px;align-items:center;gap:4px;margin-left:6px;padding:1px 7px;font-size:.7rem;font-weight:600;display:inline-flex}.role-tag.staff{color:#4338ca;background:#eef0ff}.role-tag.ok{background:var(--ok-tint);color:var(--ok)}.thread{max-width:900px;margin:0 auto}.post-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.post-head .icon-btn{width:30px;height:30px}.who-line{align-items:center;gap:10px;display:flex}.who-line>div{flex-direction:column;display:flex}.who-line strong{font-size:.92rem}.post-title{align-items:center;gap:8px;margin:14px 0 8px;font-family:Roboto Slab,serif;font-size:1.35rem;display:flex}.post-title .pin{color:#e0a500}.post-body{white-space:pre-wrap;margin:10px 0 4px;line-height:1.6}.post-foot{align-items:center;gap:14px;margin-top:10px;display:flex}.post.main{border-top:4px solid var(--brand)}.post.staff{border-left:4px solid #6366f1}.post.accepted{border-left:4px solid var(--ok);background:#f6fdf9}.like-btn{border:1px solid var(--line);font:inherit;cursor:pointer;color:var(--ink-soft);background:#fff;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:.82rem;display:inline-flex}.like-btn:hover{color:#e11d48;border-color:#e11d48}.like-btn.on{color:#e11d48;background:#fff1f2;border-color:#fda4af}.replies-h{margin:6px 0 12px;font-size:1rem}.reply-box textarea{width:100%}.rb-foot{margin-top:10px;display:flex}@media (width<=900px){.forum{grid-template-columns:1fr}.forum-side{position:static}.tr-stats{display:none}}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;padding:0 20px 20px;display:grid}.lib-card{border:1px solid var(--line-soft);cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;transition:box-shadow .15s,transform .15s;display:flex;position:relative;overflow:hidden}.lib-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.lib-cover{height:110px;color:var(--c);background:color-mix(in srgb, var(--c) 10%, #fff);letter-spacing:.05em;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:.72rem;font-weight:700;display:flex}.lib-body{flex-direction:column;flex:1;gap:4px;padding:12px;display:flex}.lib-body h3{margin:0;font-size:.95rem;line-height:1.35}.lib-body .sub{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.lib-meta{color:var(--muted);flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:6px;font-size:.75rem;display:flex}.lib-meta span{align-items:center;gap:3px;display:inline-flex}.lib-actions{opacity:0;gap:4px;display:flex;position:absolute;top:8px;right:8px}.lib-card:hover .lib-actions{opacity:1}.lib-actions .icon-btn{width:28px;height:28px}.lib-video{background:#000;border-radius:8px;width:100%;max-height:70vh}.lib-embed{padding-top:56.25%;position:relative}.lib-embed iframe{border:0;border-radius:8px;width:100%;height:100%;position:absolute;inset:0}.status-pill.info{background:var(--brand-tint);color:var(--brand)}.session-card{border:1px solid var(--line);background:linear-gradient(90deg,#eef4fb,#fff);border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin:18px;padding:20px 22px;display:grid}.session-card.offline{background:linear-gradient(90deg,#fff7e6,#fff)}.sc-ico{background:var(--brand);color:#fff;border-radius:16px;place-items:center;width:62px;height:62px;display:grid}.session-card.offline .sc-ico{background:#e07b00}.sc-kind{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.78rem;font-weight:600}.sc-time{align-items:center;gap:8px;margin-top:6px;font-weight:500;display:flex}.sc-att{background:var(--ok-tint);color:var(--ok);border-radius:999px;align-items:center;gap:6px;margin-top:10px;padding:4px 10px;font-size:.88rem;font-weight:500;display:inline-flex}.sc-att.late{background:var(--accent-tint);color:var(--accent-ink)}.sc-act{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.sc-code{grid-template-columns:130px auto;align-items:center;gap:8px;display:grid}.sc-code input{letter-spacing:.3em;text-align:center;font-size:1.2rem;font-weight:600}.sc-code .sub{text-align:right;grid-column:1/-1}@media (width<=760px){.session-card{grid-template-columns:1fr}.sc-act{align-items:stretch}}.checkin-page{place-items:center;min-height:60vh;display:grid}.checkin-page .sec-card{text-align:center;flex-direction:column;align-items:center;gap:6px;max-width:440px;display:flex;padding:36px!important}.checkin-page h1{margin:8px 0 0;font-family:Roboto Slab,serif;font-size:1.4rem}.att-seg{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.att-seg button{font:inherit;cursor:pointer;color:var(--ink-soft);border:0;border-right:1px solid var(--line);background:#fff;padding:6px 10px;font-size:.8rem}.att-seg button:last-child{border-right:0}.att-seg button.on.ok{background:var(--ok);color:#fff}.att-seg button.on.wait{color:#fff;background:#f59e0b}.att-seg button.on.danger{background:var(--danger);color:#fff}.att-seg button.on.off{color:#fff;background:#64748b}.qr-screen{z-index:90;background:#fff;flex-direction:column;padding:20px 28px;display:flex;position:fixed;inset:0}.qs-top{align-items:center;gap:8px;margin-bottom:12px;display:flex}.qs-top strong{font-family:Roboto Slab,serif;font-size:1.2rem}.qs-main{flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:48px;display:flex}.qs-main img{border:1px solid var(--line);border-radius:16px;width:min(62vh,520px);height:auto;padding:10px}.qs-side{flex-direction:column;gap:14px;max-width:360px;display:flex}.qs-code{letter-spacing:.08em;color:var(--brand);font-variant-numeric:tabular-nums;font-size:4.2rem;font-weight:800}.qs-timer{color:var(--muted);flex-direction:column;gap:6px;font-size:.9rem;display:flex}.qs-count{font-size:1.1rem}.qs-count b{color:var(--ok);font-size:2rem}.cam-box{z-index:40;background:#0f172a;border-radius:12px;width:180px;position:fixed;bottom:16px;left:16px;overflow:hidden;box-shadow:0 8px 24px -8px #00000080}.cam-box video{aspect-ratio:4/3;object-fit:cover;width:100%;display:block;transform:scaleX(-1)}.cam-tag{color:#fff;background:#0000008c;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.7rem;display:inline-flex;position:absolute;top:8px;left:8px}.cam-box.on .cam-tag:before{content:"";background:#ef4444;border-radius:50%;width:7px;height:7px;animation:1.2s infinite blink}@keyframes blink{50%{opacity:.2}}.chat-fab{z-index:41;background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:50%;place-items:center;width:52px;height:52px;display:grid;position:fixed;bottom:20px;right:20px;box-shadow:0 8px 20px -6px #1b62b3b3}.chat-fab .badge-count{top:-2px;right:-2px}.chat-panel{z-index:42;width:340px;max-height:60vh;box-shadow:var(--shadow-lg);background:#fff;border-radius:14px;flex-direction:column;display:flex;position:fixed;bottom:84px;right:20px;overflow:hidden}.cp-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.cp-list{flex-direction:column;flex:1;gap:8px;min-height:120px;padding:10px;display:flex;overflow:auto}.cp-msg{border-radius:12px;flex-direction:column;gap:2px;max-width:85%;padding:8px 12px;font-size:.88rem;display:flex}.cp-msg small{opacity:.7;font-size:.7rem}.cp-msg.in{background:#f1f5f9;align-self:flex-start}.cp-msg.out{background:var(--brand);color:#fff;align-self:flex-end}.cp-msg.warning{border:1px solid #fecaca;flex-direction:column;color:#b91c1c!important;background:#fef2f2!important}.cp-msg.system{align-self:center;font-size:.8rem;color:#92400e!important;background:#fffbeb!important}.cp-input{border-top:1px solid var(--line-soft);gap:6px;padding:10px;display:flex}.cp-input .input{flex:1}.proctor-alert{color:var(--ink);text-align:center;background:#fff;border-radius:16px;flex-direction:column;align-items:center;gap:10px;max-width:440px;padding:30px 32px;font-family:Roboto,sans-serif;font-size:1rem;display:flex}.proctor-alert svg{color:var(--danger)}.proctor-alert h2{margin:0;font-size:1.25rem}.live-dot{vertical-align:middle;background:#22c55e;border-radius:50%;width:8px;height:8px;animation:1.6s infinite blink;display:inline-block;box-shadow:0 0 0 3px #22c55e40}.proctor-stats{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.ps{border:1px solid var(--line);min-width:110px;font:inherit;cursor:pointer;text-align:left;background:#fff;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 16px;display:flex}.ps b{font-size:1.4rem}.ps span{color:var(--muted);font-size:.78rem}.ps.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-tint)}.ps.alert b{color:var(--danger)}.ps.static{cursor:default;background:#f8fafc}.proctor-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.pc{text-align:left;border:1px solid var(--line);font:inherit;cursor:pointer;color:var(--ink);background:#fff;border-radius:14px;flex-direction:column;padding:0;transition:box-shadow .15s;display:flex;overflow:hidden}.pc:hover:not(:disabled){box-shadow:var(--shadow)}.pc:disabled{cursor:default;opacity:.75}.pc.viol{border-color:#fca5a5}.pc.suspect{border-color:var(--danger);box-shadow:0 0 0 2px #fecaca}.pc-cam{aspect-ratio:4/3;background:#e2e8f0;place-items:center;display:grid;position:relative}.pc-cam img{object-fit:cover;width:100%;height:100%}.pc-net{color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;display:grid;position:absolute;top:8px;left:8px}.pc-net.on{background:#22c55e}.pc-net.off{background:#ef4444}.pc-unread{background:var(--brand);color:#fff;border-radius:999px;align-items:center;gap:3px;padding:2px 7px;font-size:.72rem;font-weight:700;display:inline-flex;position:absolute;top:8px;right:8px}.pc-id{color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;display:grid;position:absolute;bottom:8px;right:8px}.pc-id.ok{background:var(--ok)}.pc-id.bad{background:var(--danger)}.pc-body{flex-direction:column;gap:5px;padding:10px 12px 12px;display:flex}.pc-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pc-time{font-variant-numeric:tabular-nums;align-items:center;gap:3px;font-size:.8rem;font-weight:600;display:inline-flex}.pc-time.warn{color:var(--danger)}.pc-viol{color:var(--danger);align-items:center;gap:4px;font-size:.76rem;font-weight:500;display:inline-flex}.drawer-back{z-index:80;background:#0f172a59;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{width:min(520px,100%);height:100%;box-shadow:var(--shadow-lg);background:#fff;flex-direction:column;gap:10px;padding:18px 20px;display:flex;overflow:auto}.drawer h4{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:8px 0 0;font-size:.82rem}.dr-head{align-items:center;gap:10px;display:flex}.dr-facts{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.dr-facts>div{background:#f8fafc;border-radius:10px;flex-direction:column;padding:8px 10px;display:flex}.dr-facts span{color:var(--muted);font-size:.72rem}.snap-strip{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.snap-strip button{border:1px solid var(--line);cursor:zoom-in;width:110px;font:inherit;background:#fff;border-radius:8px;flex:none;padding:0;overflow:hidden}.snap-strip img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.snap-strip span{color:var(--muted);padding:3px;font-size:.7rem;display:block}.dr-id{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.viol-log{flex-direction:column;gap:4px;max-height:140px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.viol-log li{color:var(--danger);align-items:center;gap:6px;font-size:.85rem;display:flex}.viol-log span{color:var(--muted);margin-left:auto;font-size:.76rem}.dr-chat{border:1px solid var(--line-soft);border-radius:10px;max-height:260px}.dr-send{gap:6px;display:flex}.dr-send .input{flex:1}.dr-actions{border-top:1px solid var(--line-soft);justify-content:flex-end;gap:8px;padding-top:12px;display:flex}.lightbox{z-index:95;cursor:zoom-out;background:#000c;place-items:center;display:grid;position:fixed;inset:0}.lightbox img{border-radius:8px;max-width:90vw;max-height:90vh}.stack{flex-direction:column;gap:16px;min-width:0;display:flex}.row3{grid-template-columns:repeat(3,1fr);gap:0 14px;display:grid}.row-inline{align-items:center;gap:6px;display:inline-flex}.clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.filters{display:contents}.tenant-logo{object-fit:contain;flex:none;display:block}.cls-side .brand .tenant-logo{max-width:120px!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.switch-line{cursor:pointer;align-items:center;gap:10px;font-weight:500;display:inline-flex}.btn-light{color:var(--brand-ink);background:#fff;border:0}.btn-light:hover:not(:disabled){background:var(--brand-tint);text-decoration:none}.tenant-auth .split-art{background:radial-gradient(70% 60% at 90% 0%, #ffffff29, transparent 60%), linear-gradient(160deg, var(--deep) 0%, var(--brand) 100%)}.tenant-auth .split-art.has-image{background-position:50%;background-size:cover}.tenant-auth .split-art .logo{gap:12px}.tenant-auth .split-art .tenant-logo{filter:drop-shadow(0 1px 2px #0000004d)}.split-art .art-sub{color:#ffffffe6;white-space:pre-line;max-width:460px;margin:14px 0 0;font-size:1.05rem;line-height:1.6}.split-main{position:relative}.auth-tools{align-items:center;gap:14px;display:flex;position:absolute;top:18px;right:24px}.sso-list{gap:10px;display:grid}.btn-sso{color:var(--ink);background:#fff;border:1px solid #d5dbe4;justify-content:center;gap:10px;min-height:42px}.btn-sso:hover{background:var(--line-soft);text-decoration:none}.lang-switch{position:relative}.lang-btn{height:36px;font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:5px;padding:0 8px;font-size:.78rem;font-weight:600;display:inline-flex}.lang-btn:hover{background:var(--line-soft);color:var(--brand)}.lang-switch.light .lang-btn{color:#fff}.lang-pop{box-shadow:var(--shadow-lg);z-index:60;background:#fff;border-radius:10px;min-width:170px;padding:6px 0;position:absolute;top:calc(100% + 6px);right:0}.lang-pop button{width:100%;font:inherit;cursor:pointer;color:var(--ink);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;padding:8px 14px;font-size:.86rem;display:flex}.lang-pop button:hover{background:var(--line-soft)}.lang-pop button.on{color:var(--brand);font-weight:500}.public-home{background:#fff;flex-direction:column;min-height:100vh;display:flex}.public-home main{flex:1}.hb-wrap{width:min(1180px,100% - 48px);margin-inline:auto}.hb-narrow{width:min(820px,100% - 48px)}.ph-top{z-index:20;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 1px 0 var(--line);background:#fffffff5;position:sticky;top:0}.ph-top .hb-wrap{align-items:center;gap:12px;min-height:64px;display:flex}.ph-brand{font-family:var(--serif);color:var(--brand-ink);align-items:center;gap:10px;font-size:1.05rem;font-weight:600;display:inline-flex;text-decoration:none!important}.ph-brand .logo-mark{background:var(--brand-grad);border-radius:8px}.ph-foot{border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}.ph-foot .hb-wrap{flex-wrap:wrap;justify-content:space-between;gap:12px;padding:20px 0;display:flex}.hb-hero{color:#fff;background:radial-gradient(60% 120% at 100% 0%, #ffffff2e, transparent 60%), linear-gradient(110deg, var(--deep) 0%, var(--brand) 100%);background-position:50%;background-size:cover;padding:88px 0 96px;position:relative;overflow:hidden}.hb-hero:not(.has-image):after{content:"";border:48px solid #ffffff14;border-radius:50%;width:380px;height:380px;position:absolute;bottom:-120px;right:-80px}.hb-hero .hb-wrap{z-index:1;position:relative}.hb-hero .eyebrow{color:#fff;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;letter-spacing:.06em;text-transform:uppercase;background:#ffffff29;border:0;border-radius:99px;margin-bottom:18px;padding:5px 12px;font-size:.78rem;font-weight:600;display:inline-block}.hb-hero h1{color:#fff;font-family:var(--serif);max-width:720px;margin:0 0 14px;font-size:clamp(1.9rem,4vw,2.9rem);line-height:1.15}.hb-hero p{color:#ffffffe6;max-width:620px;margin:0 0 26px;font-size:1.08rem;line-height:1.6}.hb-section{padding:56px 0}.hb-section+.hb-section{padding-top:8px}.hb-band{background:var(--brand-tint);margin:0 0 40px;padding:36px 0!important}.hb-title{font-family:var(--serif);margin:0 0 6px;font-size:1.6rem}.hb-sub{color:var(--muted);margin:0 0 22px}.hb-title+.hb-courses,.hb-title+.hb-features,.hb-title+.hb-faq,.hb-title+.prose{margin-top:20px}.hb-courses{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;display:grid}.hb-course{box-shadow:var(--shadow-xs), 0 0 0 1px var(--line);color:var(--ink);background:#fff;border-radius:12px;flex-direction:column;transition:box-shadow .15s,transform .15s;display:flex;overflow:hidden;text-decoration:none!important}.hb-course:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.hb-course .cover{aspect-ratio:16/9;background:var(--brand-grad);color:#fffc;background-position:50%;background-size:cover;place-items:center;display:grid}.hb-course .body{flex-direction:column;flex:1;gap:6px;padding:14px 16px 16px;display:flex}.hb-course h3{margin:0;font-size:1rem}.hb-course p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.86rem;display:-webkit-box;overflow:hidden}.hb-course .meta{color:var(--muted);gap:12px;margin-top:auto;padding-top:6px;font-size:.78rem;display:flex}.hb-course .code-chip{align-self:flex-start}.hb-empty{color:var(--muted);text-align:center;border:1px dashed var(--line);border-radius:12px;padding:24px}.hb-stats{text-align:center;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;display:grid}.hb-stats strong{font-family:var(--serif);color:var(--brand-ink);font-size:2.2rem;line-height:1.1;display:block}.hb-stats span{color:var(--ink-soft);font-size:.92rem}.hb-features{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;display:grid}.hb-feature{background:#f7f9fc;border-radius:12px;padding:22px}.hb-feature .ic{background:var(--brand);color:#fff;border-radius:10px;place-items:center;width:44px;height:44px;margin-bottom:12px;display:grid}.hb-feature h3{margin:0 0 6px;font-size:1.02rem}.hb-feature p{color:var(--ink-soft);margin:0;font-size:.9rem}.hb-figure{text-align:center;margin:0 auto}.hb-figure img{max-width:100%;box-shadow:var(--shadow);border-radius:12px}.hb-figure figcaption{color:var(--muted);margin-top:10px;font-size:.86rem}.hb-faq{gap:10px;display:grid}.hb-faq details{border:1px solid var(--line);background:#fff;border-radius:10px}.hb-faq summary{cursor:pointer;justify-content:space-between;gap:12px;padding:14px 16px;font-weight:500;list-style:none;display:flex}.hb-faq summary::-webkit-details-marker{display:none}.hb-faq details[open] summary svg{transform:rotate(180deg)}.hb-faq details p{color:var(--ink-soft);white-space:pre-line;margin:0;padding:0 16px 16px}.hb-cta{color:#fff;background:radial-gradient(60% 140% at 100% 0%, #ffffff2e, transparent 60%), linear-gradient(110deg, var(--deep), var(--brand));border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:36px 40px;display:flex}.hb-cta h2{color:#fff;margin:0 0 6px;font-size:1.5rem}.hb-cta p{color:#ffffffe0;margin:0}@media (width<=640px){.hb-hero{padding:56px 0 64px}.hb-section{padding:36px 0}.hb-cta{padding:26px 22px}.row3{grid-template-columns:1fr}}.settings-grid{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;margin-bottom:16px;display:grid}@media (width<=1100px){.settings-grid{grid-template-columns:1fr}}.color-field{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.color-field input[type=color]{cursor:pointer;background:#fff;border:1px solid #d5dbe4;border-radius:6px;width:40px;height:38px;padding:2px}.color-field .input{width:100px;font-family:ui-monospace,monospace}.swatches{gap:5px;display:flex}.swatches button{width:20px;height:20px;box-shadow:0 0 0 1px var(--line);cursor:pointer;border:2px solid #fff;border-radius:50%;padding:0}.img-pick{align-items:center;gap:14px;display:flex}.img-pick .thumb{width:72px;height:72px;color:var(--muted);background:#f3f5f8 50%/contain no-repeat;border:1px dashed #c9d2de;border-radius:10px;flex:none;place-items:center;display:grid}.img-pick.wide .thumb{background-size:cover;width:128px;height:80px}.img-pick .row{display:flex}.brand-preview{position:sticky;top:84px}.bp-login{box-shadow:0 0 0 1px var(--line);border-radius:10px;grid-template-columns:1.1fr 1fr;height:170px;margin-bottom:14px;display:grid;overflow:hidden}.bp-login .art{color:#fff;background-position:50%;background-size:cover;flex-direction:column;justify-content:space-between;padding:12px;display:flex}.bp-login .lg{align-items:center;gap:6px;font-size:.7rem;font-weight:600;display:flex}.bp-login .lg img{object-fit:contain;max-width:60px;height:18px}.bp-login .lg span{border-radius:5px;place-items:center;width:18px;height:18px;font-size:.65rem;display:grid}.bp-login .art strong{font-size:.85rem;line-height:1.3}.bp-login .form{background:#f6f8fb;flex-direction:column;justify-content:center;gap:8px;padding:14px 12px;display:flex}.bp-login .form b{font-size:.82rem}.bp-login .form i{background:#fff;border-radius:4px;height:16px;display:block;box-shadow:0 0 0 1px #dfe5ec}.bp-btn{color:#fff;text-align:center;border-radius:5px;padding:5px 10px;font-size:.7rem;display:inline-block}.bp-shell{box-shadow:0 0 0 1px var(--line);background:#f3f5f8;border-radius:10px;grid-template-columns:110px 1fr;height:150px;font-size:.68rem;display:grid;overflow:hidden}.bp-shell .side{background:#fff;flex-direction:column;gap:6px;padding:10px 8px;display:flex}.bp-shell .grp{color:#fff;border-radius:5px;padding:5px 6px;font-weight:500}.bp-shell .it{color:var(--ink-soft);padding:2px 6px}.bp-shell .main{flex-direction:column;align-items:flex-start;gap:10px;padding:10px;display:flex}.bp-shell .banner{color:#fff;border-radius:6px 6px 20px;width:80%;padding:7px 10px;font-weight:600}.bp-shell .hello{font-size:.78rem;font-weight:600}.hb-bar{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:16px;padding:14px 18px;display:flex}.hb-builder{grid-template-columns:minmax(340px,440px) minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width<=1100px){.hb-builder{grid-template-columns:1fr}}.hb-list{flex-direction:column;gap:8px;display:flex}.hb-list-head{justify-content:space-between;align-items:center;padding:2px 2px 4px;display:flex}.hb-add-pop{box-shadow:var(--shadow-lg);z-index:30;background:#fff;border-radius:10px;min-width:240px;padding:6px 0;position:absolute;top:calc(100% + 6px);right:0}.hb-add-pop button{text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;border:0;padding:9px 14px;font-size:.86rem;display:block}.hb-add-pop button:hover{background:var(--brand-tint);color:var(--brand)}.hb-block{box-shadow:var(--shadow-xs);background:#fff;border:1px solid #0000;border-radius:10px;transition:border-color .12s,opacity .12s}.hb-block.off .hb-block-title{opacity:.5}.hb-block.dragging{opacity:.45}.hb-block.drop{border-color:var(--brand);box-shadow:0 -3px 0 var(--brand)}.hb-block.open{border-color:rgba(var(--brand-rgb), .4)}.hb-block-head{align-items:center;gap:2px;padding:6px 8px 6px 6px;display:flex}.hb-block-head .grip{color:#9aa6b8;cursor:grab;place-items:center;width:22px;display:grid}.hb-block-head .chev{color:var(--muted);margin-left:4px;transition:transform .15s}.hb-block.open .hb-block-head .chev{transform:rotate(180deg)}.hb-block-title{min-width:0;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;padding:6px 4px}.hb-block-title strong{font-size:.88rem;font-weight:500;display:block}.hb-block-title span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;display:block;overflow:hidden}.hb-block-body{border:0;border-top:1px solid var(--line-soft);min-width:0;margin:0;padding:14px 16px 6px}.hb-items{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.hb-item{align-items:flex-start;gap:6px;display:flex}.hb-item-fields{background:#f7f9fc;border-radius:8px;flex:1;gap:6px;padding:8px;display:grid}.hb-course-pick{border:1px solid var(--line);border-radius:8px;gap:6px;max-height:220px;padding:8px 10px;display:grid;overflow-y:auto}.hb-preview{box-shadow:var(--shadow);background:#fff;border-radius:12px;position:sticky;top:84px;overflow:hidden}.hb-preview-bar{border-bottom:1px solid var(--line);background:#eef1f5;align-items:center;gap:6px;padding:9px 12px;display:flex}.hb-preview-bar i{background:#cfd6e0;border-radius:50%;width:10px;height:10px}.hb-preview-bar span{color:var(--muted);background:#fff;border-radius:6px;flex:1;margin-left:10px;padding:3px 12px;font-size:.74rem}.hb-preview-frame{height:calc(100vh - 220px);min-height:480px;overflow-y:auto}.hb-preview-frame .public-home{zoom:.62;min-height:0}.hb-preview-frame a,.hb-preview-frame .btn{pointer-events:none}.hb-preview-frame .ph-top{position:static}.sso-intro{align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.sso-intro>svg{color:var(--brand);flex:none;margin-top:2px}.copy-line{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.copy-line code{border:1px solid var(--line);word-break:break-all;background:#f3f5f8;border-radius:6px;padding:6px 10px;font-size:.82rem}.sso-kinds{grid-template-columns:repeat(3,1fr)!important}.sso-kinds button{border:1px solid var(--line);font:inherit;cursor:pointer;background:#fff;border-radius:8px;padding:10px;font-size:.84rem}.sso-kinds button.on{border-color:var(--brand);color:var(--brand);background:var(--brand-tint);font-weight:500}.sso-kinds button:disabled{opacity:.45;cursor:default}.ai-usage h3{align-items:center;gap:8px;display:flex}.ai-kpis{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.ai-kpis div{background:#f7f9fc;border-radius:10px;padding:12px}.ai-kpis strong{font-size:1.25rem;display:block}.ai-kpis span{color:var(--muted);font-size:.76rem}.btn-ai{background:linear-gradient(90deg, #7c4dff, var(--brand));color:#fff;border:0}.btn-ai:hover:not(:disabled){filter:brightness(1.08)}.ai-gen{background:linear-gradient(135deg, #7c4dff12, rgba(var(--brand-rgb), .07));border:1px solid #7c4dff33;border-radius:10px;margin-top:12px;padding:14px}.ai-fab{z-index:40;font:inherit;color:#fff;cursor:pointer;background:linear-gradient(90deg, #7c4dff, var(--brand));box-shadow:0 8px 24px rgba(var(--brand-rgb), .35);border:0;border-radius:99px;align-items:center;gap:8px;padding:12px 18px;font-weight:500;display:inline-flex;position:fixed;bottom:22px;right:22px}.ai-fab:hover{filter:brightness(1.06)}.ai-panel{z-index:40;width:min(400px,100vw - 24px);height:min(600px,100vh - 44px);box-shadow:var(--shadow-lg);background:#fff;border-radius:14px;flex-direction:column;display:flex;position:fixed;bottom:22px;right:22px;overflow:hidden}.ai-head{background:linear-gradient(110deg, var(--deep), var(--brand));color:#fff;align-items:center;gap:10px;padding:12px 14px;display:flex}.ai-head div{flex:1;min-width:0}.ai-head strong{font-size:.92rem;display:block}.ai-head small{opacity:.85;white-space:nowrap;text-overflow:ellipsis;font-size:.74rem;display:block;overflow:hidden}.ai-head .icon-btn{color:#fff;background:#ffffff24;border:0}.ai-head .icon-btn:hover{background:#ffffff47}.ai-ava{background:#ffffff2e;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;display:grid}.ai-list{background:#f6f8fb;flex-direction:column;flex:1;gap:10px;padding:14px;display:flex;overflow-y:auto}.ai-msg{white-space:pre-wrap;word-wrap:break-word;border-radius:12px;max-width:88%;padding:9px 12px;font-size:.88rem;line-height:1.55}.ai-msg.in{box-shadow:var(--shadow-xs);background:#fff;border-bottom-left-radius:4px;align-self:flex-start}.ai-msg.out{background:var(--brand);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.ai-msg.typing{gap:4px;padding:12px 14px;display:flex}.ai-msg.typing i{background:#9aa6b8;border-radius:50%;width:7px;height:7px;animation:1s infinite ai-dot}.ai-msg.typing i:nth-child(2){animation-delay:.15s}.ai-msg.typing i:nth-child(3){animation-delay:.3s}@keyframes ai-dot{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.ai-chips{flex-wrap:wrap;gap:6px;display:flex}.ai-chips button{border:1px solid rgba(var(--brand-rgb), .35);color:var(--brand);font:inherit;cursor:pointer;background:#fff;border-radius:99px;padding:6px 12px;font-size:.8rem}.ai-chips button:hover{background:var(--brand-tint)}.ai-input{border-top:1px solid var(--line);gap:8px;padding:10px;display:flex}.ai-input textarea{resize:none;min-height:40px;max-height:120px}.ai-foot{color:var(--muted);padding:0 12px 10px;font-size:.7rem}.complete-msg{align-items:center;gap:10px;font-weight:500;display:flex}.mk-detail{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}@media (width<=1000px){.mk-detail{grid-template-columns:1fr}}.mk-head{align-items:flex-start;gap:16px;display:flex}.mk-head h1{margin:6px 0}.mk-ico{background:var(--brand-grad);color:#fff;border-radius:12px;flex:none;place-items:center;width:54px;height:54px;display:grid}.mk-meta{color:var(--muted);flex-wrap:wrap;gap:16px;font-size:.84rem;display:flex}.mk-meta span{align-items:center;gap:5px;display:inline-flex}.mk-section+.mk-section{margin-top:14px}.mk-section>strong{background:#eaf2fb;border-radius:6px;padding:8px 12px;font-size:.92rem;display:block}.mk-section ol{margin:0;padding:4px 0 0;list-style:none}.mk-section li{border-bottom:1px solid var(--line-soft);align-items:center;gap:10px;padding:8px 12px;font-size:.88rem;display:flex}.mk-section li svg{color:var(--brand);flex:none}.mk-section li span{flex:1}.mk-side{position:sticky;top:84px}.mk-history{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.mk-history .row-item .t span{font-size:.84rem}.tenant-auth .split-art .tenant-logo{box-sizing:content-box;background:#fff;border-radius:8px;padding:4px 8px}.brand-mark{border-radius:8px;flex:none;width:32px;height:32px}.lt-folder>summary{cursor:pointer;border-bottom:1px solid var(--line-soft);background:#f7f9fc;align-items:center;gap:8px;padding:10px 14px;font-size:.9rem;font-weight:600;list-style:none;display:flex}.lt-folder>summary::-webkit-details-marker{display:none}.lt-folder>summary .lt-title{flex:1;min-width:0}.lt-folder>summary .count{color:var(--muted);white-space:nowrap;font-size:.8rem;font-weight:500}.lt-caret{color:var(--muted);flex:none;transition:transform .15s}.lt-folder[open]>summary .lt-caret{transform:rotate(90deg)}.lt-ico{color:var(--brand);flex:none}.lt-children{padding-left:16px}.lt-children .lt-folder>summary{background:0 0;font-weight:600}.lt-children.deep{border-left:2px solid var(--line-soft);margin-left:8px;padding-left:8px}.lt-empty{padding:8px 14px;font-size:.82rem}.lt-wrap .lt-folder>summary{background:var(--bg);padding:14px 16px;font-size:.95rem}.lt-wrap .lt-children .lt-folder>summary{background:0 0;padding:10px 16px;font-size:.9rem}.lt-wrap .lt>*+*{border-top:1px solid var(--line)}.lp-crumbs{color:var(--muted);font-weight:500}.pager{flex-wrap:wrap;justify-content:space-between}.pager-size{align-items:center;gap:6px;display:inline-flex}.pager-size select{width:auto;min-height:30px;padding:2px 8px}.pager-nums{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.pager .pg{min-width:32px;height:32px;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:50%}.pager .pg:hover:not(:disabled){background:var(--bg)}.pager .pg.on{background:var(--brand);color:#fff;font-weight:600}.pager .pg:disabled:not(.on){color:var(--muted);cursor:default}th.col-check,td.col-check{width:36px;padding-right:0!important}.bulk-bar{background:var(--brand-tint);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 20px;display:flex}.bulk-bar strong{margin-right:6px}.row-menu{display:inline-block;position:relative}.row-menu-pop{background:var(--card);border:1px solid var(--line);min-width:200px;box-shadow:var(--shadow-lg);z-index:30;border-radius:10px;padding:6px 0;position:absolute;top:calc(100% + 4px);right:0}.row-menu-pop button{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:8px;padding:9px 16px;font-size:.9rem;display:flex}.row-menu-pop button:hover{background:var(--bg)}.row-menu-pop button.danger{color:var(--danger)}.order-input{text-align:center;width:56px;min-height:30px;padding:2px 6px}.state-pill{color:#fff;border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:.74rem;font-weight:600;display:inline-flex}.state-pill.running{background:var(--ok)}.state-pill.ended{background:var(--danger)}.state-pill.upcoming{background:var(--accent)}.notice-bar{z-index:60;box-shadow:var(--shadow-xs);align-items:center;padding:0 36px 0 16px;display:flex;position:fixed;left:0;right:0;overflow:hidden}.notice-bar.top{top:0}.notice-bar.bottom{bottom:0}.notice-track{white-space:nowrap;flex:1;align-items:center;gap:6px;display:flex;overflow:hidden}.notice-track.marquee .notice-run{gap:6px;padding-left:100%;animation:28s linear infinite notice-run;display:inline-flex}.notice-bar:hover .notice-run{animation-play-state:paused}.notice-sep{opacity:.6;margin:0 14px}.notice-close{color:inherit;cursor:pointer;opacity:.8;background:0 0;border:0;position:absolute;top:50%;right:8px;transform:translateY(-50%)}@keyframes notice-run{0%{transform:translate(0)}to{transform:translate(-100%)}}@media (prefers-reduced-motion:reduce){.notice-track.marquee .notice-run{padding-left:0;animation:none}}.support-fab{z-index:55;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:84px;right:20px}.support-btn{background:var(--brand);color:#fff;width:48px;height:48px;box-shadow:var(--shadow-lg);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid}.support-pop{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);gap:8px;min-width:240px;padding:14px 16px;font-size:.9rem;display:grid}.support-pop a,.support-pop span{color:var(--ink);align-items:center;gap:8px;text-decoration:none;display:flex}.support-pop a:hover{color:var(--brand)}.sv-html>:last-child{margin-bottom:0}.sv-html img,.sv-html video,.rte-content img,.rte-content video{border-radius:8px;max-width:100%;height:auto}.sv-html audio,.rte-content audio{width:100%;max-width:480px}.portal{background:#f4f6fa;flex-direction:column;min-height:100vh;display:flex}.portal-main{flex:1}.portal-main [id^=blk-]{scroll-margin-top:76px}.portal-wrap{width:min(1240px,100% - 32px);margin:20px auto 40px}.portal-head{z-index:30;box-shadow:0 1px 0 var(--line), 0 2px 10px #1012220a;background:#fff;position:sticky;top:0}.portal-head-in{align-items:center;gap:14px;width:min(1240px,100% - 32px);min-height:64px;margin:0 auto;display:flex}.portal-logo{flex:none;align-items:center;display:inline-flex}.portal-nav{align-self:stretch;align-items:stretch;gap:2px;display:flex}.portal-nav a,.portal-nav span{color:var(--ink-soft);white-space:nowrap;border-bottom:3px solid #0000;align-items:center;gap:7px;padding:0 14px;font-size:.92rem;font-weight:500;text-decoration:none;display:inline-flex}.portal-nav a:hover{color:var(--brand);text-decoration:none}.portal-nav a.on,.portal-nav span.on{color:var(--brand);border-bottom-color:var(--brand)}.portal-burger{display:none}.portal-user{position:relative}.portal-who{font:inherit;cursor:pointer;color:var(--ink);background:0 0;border:0;border-radius:10px;align-items:center;gap:8px;padding:6px 8px;display:inline-flex}.portal-who:hover{background:var(--line-soft)}.portal-who .nm{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:.9rem;font-weight:500;overflow:hidden}.portal-pop{box-shadow:var(--shadow-lg);z-index:40;background:#fff;border-radius:10px;min-width:210px;padding:6px 0;position:absolute;top:calc(100% + 6px);right:0}.portal-pop button{width:100%;font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:9px 14px;font-size:.88rem;display:flex}.portal-pop button:hover{background:var(--line-soft);color:var(--brand)}.portal-pop .sep{background:var(--line);height:1px;margin:6px 0}.portal-foot{background:var(--deep,#0f3f7a);color:#ffffffe0;margin-top:auto}.portal-foot-in{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;width:min(1240px,100% - 32px);margin:0 auto;padding:28px 0 18px;display:flex}.portal-foot-brand{color:#fff;align-items:center;gap:12px;font-size:1.05rem;display:flex}.portal-foot-brand .tenant-logo{background:#fff;border-radius:6px;padding:3px}.portal-foot-contact{flex-direction:column;gap:6px;font-size:.88rem;display:flex}.portal-foot-contact span{align-items:flex-start;gap:8px;display:inline-flex}.portal-foot-contact svg{flex:none;margin-top:3px}.portal-foot-copy{text-align:center;color:#fff9;border-top:1px solid #ffffff1f;padding:12px 16px;font-size:.78rem}.portal-home{background:#fff}.portal-off{text-align:center;color:var(--muted);padding:48px 20px!important}.portal-off h2{color:var(--ink);margin:10px 0 6px}.portal-off .btn{margin-top:8px}.portal-crumb{align-items:center;gap:10px;margin-bottom:14px;display:flex}.portal-crumb h1{margin:0;font-size:1.4rem}.portal-cat{grid-template-columns:270px minmax(0,1fr);align-items:start;gap:20px;display:grid}.portal-filter{flex-direction:column;gap:2px;display:flex;position:sticky;top:80px}.portal-filter-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;margin-bottom:6px;padding-bottom:8px;display:flex}.portal-filter-close,.portal-filter-btn,.portal-filter-backdrop{display:none!important}.portal-tree{flex-direction:column;gap:4px;max-height:320px;padding-right:4px;display:flex;overflow:auto}.portal-tree .check{font-size:.88rem}.portal-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.portal-search{flex:1;min-width:200px}.portal-search .input{background:#fff}.portal-cards{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin-bottom:16px;display:grid}.portal-card{text-align:left;font:inherit;color:var(--ink);cursor:pointer;box-shadow:var(--shadow-xs), 0 0 0 1px var(--line-soft);background:#fff;border:0;border-radius:12px;flex-direction:column;padding:0;transition:box-shadow .15s,transform .15s;display:flex;overflow:hidden}.portal-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.portal-card .cover{aspect-ratio:16/9;background:var(--brand-grad,var(--brand));color:#ffffffd9;background-position:50%;background-size:cover;place-items:center;display:grid;position:relative}.portal-card .body{flex-direction:column;flex:1;gap:6px;padding:12px 14px 14px;display:flex}.portal-card .ttl{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.96rem;line-height:1.35;display:-webkit-box;overflow:hidden}.portal-card .ins{color:var(--ink-soft);align-items:center;gap:8px;font-size:.82rem;display:flex}.portal-card .when{color:var(--muted);align-items:center;gap:6px;margin-top:auto;font-size:.8rem;display:inline-flex}.portal-tag{background:var(--brand);color:#fff;letter-spacing:.04em;border-radius:4px;padding:2px 8px;font-size:.68rem;font-weight:700;position:absolute;top:10px;left:10px}.portal-stats{color:var(--muted);gap:14px;margin-top:auto;font-size:.8rem;display:flex}.portal-stats span{align-items:center;gap:4px;display:inline-flex}.portal-anchors{padding:18px 0!important}.portal-anchors nav{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.portal-anchors button{border:1px solid var(--line);color:var(--ink-soft);font:inherit;cursor:pointer;box-shadow:var(--shadow-xs);background:#fff;border-radius:999px;padding:8px 16px;font-size:.9rem;font-weight:500}.portal-anchors button:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-tint)}.portal-blk-head{margin-bottom:20px}.portal-linkcards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;display:grid}.portal-linkcard{box-shadow:var(--shadow-xs), 0 0 0 1px var(--line);color:var(--ink);background:#fff;border-radius:12px;flex-direction:column;transition:box-shadow .15s,transform .15s;display:flex;overflow:hidden;text-decoration:none!important}a.portal-linkcard:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.portal-linkcard .pic{aspect-ratio:16/9;background:var(--brand-tint);color:var(--brand);background-position:50%;background-size:cover;place-items:center;display:grid}.portal-linkcard .txt{text-align:center;flex-direction:column;gap:4px;padding:12px 14px 14px;display:flex}.portal-linkcard strong{text-transform:uppercase;letter-spacing:.02em;color:var(--brand-ink);font-size:.95rem}.portal-linkcard small{text-transform:uppercase;color:var(--muted);letter-spacing:.03em;font-size:.72rem}.portal-linkgroups{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;display:grid}.portal-linkgroup{background:#f7f9fc;border-radius:12px;padding:16px 18px}.portal-linkgroup h3{text-transform:uppercase;letter-spacing:.03em;color:var(--brand-ink);margin:0 0 10px;font-size:.95rem}.portal-linkgroup ul{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.portal-linkgroup li{align-items:baseline;gap:6px;font-size:.9rem;display:flex}.portal-linkgroup li:before{content:"•";color:var(--brand)}.portal-new{color:#d97706;white-space:nowrap;font-size:.7rem;font-weight:700}.portal-more{margin-top:10px;font-size:.85rem;font-weight:500;display:inline-block}.portal-set{border:0;min-width:0;margin:0 0 16px;padding:18px 20px}.portal-set-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;display:grid}.portal-menu-pick{flex-direction:column;gap:4px;display:flex}.portal-menu-row{border:1px solid var(--line-soft);background:#fff;border-radius:8px;align-items:center;gap:8px;padding:4px 6px 4px 8px;display:flex}.portal-menu-row.off{opacity:.6}.portal-menu-row .grip{color:var(--muted);cursor:grab;display:inline-flex}.portal-edit-link{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto;align-items:center;gap:6px;display:grid}.portal-head-preview{position:static}.portal-head-preview .portal-head-in{width:calc(100% - 24px);min-height:52px}.portal-head-preview .portal-nav span{padding:0 8px;font-size:.8rem}@media (width<=960px){.portal-burger{display:inline-grid}.portal-nav{box-shadow:var(--shadow-lg);background:#fff;flex-direction:column;padding:6px 0;display:none;position:absolute;top:100%;left:0;right:0}.portal-nav.open{display:flex}.portal-nav a{border-bottom:0;border-left:3px solid #0000;padding:12px 20px}.portal-nav a.on{border-left-color:var(--brand);background:var(--brand-tint)}.portal-who .nm{display:none}.portal-cat{grid-template-columns:1fr}.portal-filter{display:none}.portal-filter.open{z-index:60;border-radius:0;width:min(320px,88vw);margin:0;display:flex;position:fixed;inset:0 auto 0 0;overflow:auto}.portal-filter-close,.portal-filter-btn{display:inline-flex!important}.portal-filter-backdrop{z-index:55;background:#0f122266;position:fixed;inset:0;display:block!important}.portal-set-grid{grid-template-columns:1fr}}.member-link{color:inherit;cursor:pointer}.member-link:hover{color:var(--brand);text-decoration:underline}.member-avatar-img{object-fit:cover;padding:0}.member-stars{color:#cbd0dc;align-items:center;gap:1px;display:inline-flex}.member-stars .on{color:#f5a524}.member-stars small{color:var(--muted);margin-left:6px;font-size:.76rem}.member-stars.rate button{cursor:pointer;color:inherit;background:0 0;border:0;padding:1px;display:inline-flex}.member-rate-line{align-items:center;gap:8px;margin-left:8px;display:inline-flex}.member-head{overflow:hidden;padding:0!important}.member-cover{background:linear-gradient(120deg, var(--deep,#0f3f7a) 0%, var(--brand) 100%);background-position:50%;background-size:cover;height:240px;position:relative}.member-cover-acts{gap:8px;display:flex;position:absolute;bottom:14px;right:16px}.member-cover-acts .btn{box-shadow:var(--shadow);cursor:pointer}.member-id{flex-wrap:wrap;align-items:flex-end;gap:18px;padding:0 24px 12px;display:flex}.member-ava{background:var(--brand-tint);width:132px;height:132px;color:var(--brand);box-shadow:var(--shadow);border:4px solid #fff;border-radius:18px;flex:none;place-items:center;margin-top:-66px;font-size:2.6rem;font-weight:700;display:grid;position:relative;overflow:hidden}.member-ava img{object-fit:cover;width:100%;height:100%}.member-name h1{margin:0 0 4px;font-size:1.5rem}.member-acts{gap:8px;padding-bottom:6px;display:flex}.member-tabs{border-top:1px solid var(--line-soft);gap:4px;padding:0 16px;display:flex;overflow-x:auto}.member-tabs button{font:inherit;color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;padding:12px 14px;font-weight:500}.member-tabs button.on{color:var(--brand);border-bottom-color:var(--brand)}.member-grid{grid-template-columns:320px minmax(0,1fr);align-items:start;gap:18px;display:grid}.member-info{position:sticky;top:80px}.member-info ul{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.member-info li{grid-template-columns:18px auto minmax(0,1fr);align-items:start;gap:8px;font-size:.88rem;display:grid}.member-info li svg{color:var(--muted);margin-top:2px}.member-info li span{color:var(--muted)}.member-info li b{text-align:right;overflow-wrap:anywhere;font-weight:500}.member-bio{white-space:pre-line;color:var(--ink-soft);font-size:.9rem}.member-feed{flex-direction:column;display:flex}.member-post{flex-direction:column;gap:8px;display:flex}.member-post-title{color:var(--ink);font-size:1.02rem;font-weight:600}.member-post-body{white-space:pre-line;color:var(--ink-soft);font-size:.92rem}.member-post-stats{color:var(--muted);align-items:center;gap:8px;padding-top:6px;font-size:.82rem;display:flex}.member-post-stats svg{color:#e11d48}.member-post-acts{border-top:1px solid var(--line-soft);gap:8px;padding-top:10px;display:flex}.member-comment{gap:8px;display:flex}.member-comment .input{flex:1}.member-badges{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;display:grid}.member-badge{text-align:center;background:#f7f9fc;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;display:flex}.member-badge strong{font-size:.88rem}.member-people-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.member-people{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;display:grid}.member-person{border:1px solid var(--line-soft);border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.member-person .nm{flex-direction:column;flex:1;min-width:0;display:flex}.member-forum3{grid-template-columns:240px minmax(0,1fr) 260px}.member-follow-side .search{margin:4px 0 8px}.member-follow-list{flex-direction:column;gap:2px;max-height:60vh;display:flex;overflow:auto}.member-follow-list .fs-item{text-decoration:none}@media (width<=1200px){.member-forum3{grid-template-columns:240px minmax(0,1fr)}.member-follow-side{display:none!important}}@media (width<=900px){.member-grid,.member-forum3{grid-template-columns:1fr}.member-info{position:static}.member-cover{height:160px}.member-ava{width:96px;height:96px;margin-top:-48px;font-size:2rem}.member-id{padding:0 16px 12px}}.lp-frame:fullscreen{background:#fff;border-radius:0;overflow-y:auto}.lp-fs-sm .lesson-wrap,.lp-fs-sm .lq-list{font-size:.9rem}.lp-fs-lg .lesson-wrap,.lp-fs-lg .lq-list{font-size:1.12rem}.lp-fs-sm .q-content{font-size:.92rem}.lp-fs-lg .q-content{font-size:1.2rem}.lp-fs-lg .qv .opt{font-size:1.08rem}.lp-bar{z-index:2;border-radius:0 0 var(--radius) var(--radius);background:#fff;grid-template-columns:1fr auto 1fr;display:grid;position:sticky;bottom:0}.lp-bar-pos{min-width:0;font-size:.82rem}.lp-bar-mid{justify-content:center;gap:10px;display:flex}.lp-bar-right{justify-content:flex-end;align-items:center;gap:8px;display:flex}.lp-bar .round-btn:disabled{opacity:.4;cursor:not-allowed;background:#fff}.lp-bar .round-btn.on{background:var(--brand-tint)}.lp-quizbtn{color:#fff;box-shadow:none;background:#f08a24;border-color:#f08a24}.lp-quizbtn:hover:not(:disabled){background:#dc7612}.lp-quizbtn.on{color:#c25f00;background:#fff;border-color:#f08a24}.lp-set-wrap{position:relative}.lp-settings{border:1px solid var(--line);z-index:5;background:#fff;border-radius:10px;gap:10px;width:260px;padding:10px 12px;font-size:.85rem;display:grid;position:absolute;bottom:calc(100% + 8px);right:0;box-shadow:0 10px 30px -8px #00000040}.lp-settings-h{justify-content:space-between;align-items:center;display:flex}.lp-settings-row{gap:6px;display:grid}.lp-check{cursor:pointer;align-items:center;gap:8px;display:flex}.lp-seg{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.lp-seg button{font:inherit;cursor:pointer;color:var(--ink-soft);background:#fff;border:0;flex:1;padding:6px 10px}.lp-seg button+button{border-left:1px solid var(--line)}.lp-seg button.on{background:var(--brand);color:#fff}.lq-cta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.lq{flex-direction:column;flex:1;min-height:0;display:flex}.lq-top{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.lq-title{display:grid}.lq-title small{color:var(--muted);font-size:.8rem}.lq-body{flex:1;grid-template-columns:220px minmax(0,1fr);align-items:start;gap:16px;padding:16px;display:grid}.lq-nav{background:#f1f2f5;border-radius:10px;gap:10px;padding:12px;display:grid;position:sticky;top:0}.lq-pager{justify-content:space-between;align-items:center;font-size:.86rem;font-weight:600;display:flex}.lq-pager .btn-icon:disabled{opacity:.35;cursor:default}.lq-total{text-align:center;color:var(--ink-soft);font-size:.84rem}.lq-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.lq-cell{border:1px solid var(--line);height:34px;font:inherit;cursor:pointer;color:var(--ink);background:#fff;border-radius:6px;font-size:.85rem;font-weight:600}.lq-cell:hover{border-color:var(--brand)}.lq-cell.done{color:#fff;background:#1d4f91;border-color:#1d4f91}.lq-cell.flag{color:#fff;background:#f08a24;border-color:#f08a24}.lq-cell.right{background:var(--ok);border-color:var(--ok);color:#fff}.lq-cell.wrong{background:var(--danger);border-color:var(--danger);color:#fff}.lq-legend{color:var(--ink-soft);gap:4px;font-size:.78rem;display:grid}.lq-legend span{align-items:center;gap:6px;display:inline-flex}.lq-legend i{border:1px solid var(--line);background:#fff;border-radius:3px;width:12px;height:12px;display:inline-block}.lq-legend i.done{background:#1d4f91;border-color:#1d4f91}.lq-legend i.flag{background:#f08a24;border-color:#f08a24}.lq-submit{color:#fff;background:#22a052;border-color:#22a052}.lq-submit:hover:not(:disabled){background:#1a8a45}.lq-left{color:var(--muted);text-align:center;font-size:.76rem}.lq-list{align-content:start;gap:14px;min-width:0;display:grid}.lq-q{border:1px solid var(--line);border-radius:10px;scroll-margin-top:12px;overflow:hidden}.lq-qhead{background:#eceef2;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:.88rem;font-weight:600;display:flex}.lq-qhead small{color:var(--muted);font-weight:400}.lq-flag{border:1px solid var(--line);width:30px;height:30px;color:var(--muted);cursor:pointer;background:#fff;border-radius:50%;place-items:center;display:grid}.lq-flag.on{color:#fff;background:#f08a24;border-color:#f08a24}.lq-qbody{background:#fff;padding:12px 14px}@media (width<=720px){.lq-body{grid-template-columns:1fr}.lq-nav{position:static}.lp-bar{grid-template-columns:auto 1fr}.lp-bar-pos{display:none}.lp-bar-mid{justify-content:flex-start}}.lp-tabbar button{padding:6px 10px}.lp-pane{padding:14px}.lp-empty{text-align:center;color:var(--muted);justify-items:center;gap:6px;padding:28px 12px;font-size:.84rem;display:grid}.lp-empty svg{color:#c7cad6}.lp-composer{gap:6px;display:grid}.lp-composer textarea{resize:vertical;font-size:.85rem}.lp-composer-act{justify-content:flex-end;gap:6px;display:flex}.lp-cmts{gap:4px;margin-top:12px;display:grid}.lp-thread{border-bottom:1px solid var(--line-soft);padding:8px 0}.lp-cmt{gap:8px;padding:4px 0;display:flex}.lp-cmt.reply{margin-left:34px}.lp-cmt .avatar{width:28px;height:28px;font-size:.7rem}.lp-cmt-main{flex:1;min-width:0}.lp-cmt-meta{flex-wrap:wrap;align-items:center;gap:6px;font-size:.78rem;display:flex}.lp-cmt-name{color:var(--ink);font-weight:600}.lp-cmt-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0;font-size:.85rem}.lp-cmt-act{gap:10px;margin-top:2px;display:flex}.lp-cmt-act button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:.76rem;display:inline-flex}.lp-cmt-act button:hover{color:var(--brand)}.lp-cmt-act button.danger:hover{color:var(--danger)}.lp-reply-box{margin:6px 0 4px 34px}.lp-ask{gap:8px;display:grid}.lp-ask .input{font-size:.85rem}.lp-qa{margin-top:12px;display:grid}.lp-qa-row{border-bottom:1px solid var(--line-soft);color:inherit;gap:4px;padding:10px 2px;text-decoration:none;display:grid}.lp-qa-row:hover .lp-qa-title{color:var(--brand)}.lp-qa-title{align-items:center;gap:6px;font-size:.85rem;font-weight:600;display:inline-flex}.lp-qa-meta{flex-wrap:wrap;align-items:center;gap:8px;font-size:.75rem;display:flex}.lp-docs{display:grid}.lp-doc{border-bottom:1px solid var(--line-soft);align-items:center;gap:10px;padding:10px 14px;display:flex}.lp-doc.active{background:var(--brand-tint)}.lp-doc-ico{background:var(--brand-tint);width:30px;height:30px;color:var(--brand);border-radius:8px;flex:none;place-items:center;display:grid}.lp-doc-t{flex:1;min-width:0;display:grid}.lp-doc-t strong{overflow-wrap:anywhere;font-size:.84rem;font-weight:500}.lp-doc-t small{color:var(--muted);font-size:.75rem}.lc-rate{max-width:260px;margin-top:4px}.lc-rate .rate-bar{height:6px}tr.row-link{cursor:pointer}.pg-subtabs{margin:14px 0}.pg-top{grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:16px;margin-bottom:16px;display:grid}.pg-ring-card{align-items:center;gap:16px;display:flex;margin:0!important}.pg-ring-card>div{gap:4px;display:grid}.pg-ring{--p:0;background:conic-gradient(var(--ok) calc(var(--p) * 1%), #e5ebf1 0);border-radius:50%;flex:none;place-items:center;width:104px;height:104px;display:grid}.pg-ring:before{content:"";background:#fff;border-radius:50%;grid-area:1/1;width:82px;height:82px}.pg-ring b{color:var(--ink);grid-area:1/1;font-size:1.35rem;font-weight:600}.pg-ranks,.pg-totals{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.pg-ranks .num small{color:var(--muted);margin-left:2px;font-size:.8rem;font-weight:400}.pg-totals{margin-bottom:16px}.pg-rates{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.pg-rate{margin:0!important}.pg-rate>header{justify-content:space-between;align-items:baseline;display:flex}.pg-stack{background:var(--line-soft);border-radius:6px;height:12px;margin:4px 0 12px;display:flex;overflow:hidden}.pg-stack span{height:100%;display:block}.pg-legend{gap:6px;margin:0;padding:0;font-size:.85rem;list-style:none;display:grid}.pg-legend li{grid-template-columns:12px 1fr auto 44px;align-items:center;gap:8px;display:grid}.pg-legend i{border-radius:3px;width:12px;height:12px}.pg-legend span{text-align:right;font-size:.78rem}@media (width<=800px){.pg-top{grid-template-columns:1fr}}.lib-reviews{border-top:1px solid var(--line-soft);margin-top:18px;padding-top:14px}.lib-reviews>h3{margin:0 0 10px;font-size:1rem}.lr-head{grid-template-columns:150px minmax(0,1fr) 200px;align-items:center;gap:20px;display:grid}.lr-avg{text-align:center;justify-items:center;gap:4px;display:grid}.lr-avg b{color:var(--ink);font-size:2.4rem;font-weight:600;line-height:1}.lr-dist{gap:4px;display:grid}.lr-bar{font:inherit;color:var(--ink-soft);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;grid-template-columns:36px minmax(0,1fr) 32px;align-items:center;gap:8px;padding:2px 6px;font-size:.8rem;display:grid}.lr-bar:hover,.lr-bar.on{background:var(--brand-tint)}.lr-bar .lr-n{color:#f5a524;align-items:center;gap:3px;font-weight:600;display:inline-flex}.lr-bar .lr-c{text-align:right;color:var(--muted)}.lr-act{justify-items:start;gap:8px;display:grid}.lr-filter{margin-top:12px}.lr-list{margin:8px 0;display:grid}.lr-item{border-bottom:1px solid var(--line-soft);gap:10px;padding:10px 0;display:flex}.lr-item.mine{background:#fffdf5}.lr-body{flex:1;min-width:0}.lr-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lr-meta .role-tag{margin-left:0}.lr-body p{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0;font-size:.9rem}@media (width<=720px){.lr-head{grid-template-columns:1fr}}.forum-mid{min-width:0}.feed-item{position:relative}.feed-item>.topic-row{padding-right:56px}.feed-item>.row-menu{position:absolute;top:10px;right:12px}.story-strip{align-items:flex-start;gap:14px;display:flex;overflow-x:auto;padding:14px 16px!important}.story-tile{width:76px;font:inherit;cursor:pointer;color:var(--ink);background:0 0;border:0;flex:none;justify-items:center;gap:6px;padding:0;display:grid}.story-ring{background:linear-gradient(135deg,#f59e0b,#e11d48,#7c3aed);border-radius:50%;padding:3px;display:grid;position:relative}.story-ring.seen{background:#cfd4dd}.story-ring.add{background:var(--line)}.story-ring>.avatar,.story-ring>img{box-sizing:content-box;border:3px solid #fff;border-radius:50%;width:60px;height:60px;font-size:1rem}.story-plus{background:var(--brand);color:#fff;border:2px solid #fff;border-radius:50%;place-items:center;width:22px;height:22px;display:grid;position:absolute;bottom:-2px;right:-2px}.story-name{text-overflow:ellipsis;white-space:nowrap;max-width:76px;font-size:.75rem;overflow:hidden}.story-empty{align-self:center}.story-preview{border-radius:10px;place-items:center;height:260px;margin-bottom:10px;padding:20px;display:grid;overflow:hidden}.story-preview p{color:#fff;text-align:center;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:1.25rem;font-weight:600}.story-preview.media{background:#000;padding:0}.story-preview.media img,.story-preview.media video{max-width:100%;max-height:260px}.story-bg-row{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.story-swatch{width:26px;height:26px;box-shadow:0 0 0 1px var(--line);cursor:pointer;border:2px solid #fff;border-radius:50%;padding:0}.story-swatch.on{box-shadow:0 0 0 2px var(--brand)}.story-pick{border:2px dashed var(--line);height:200px;color:var(--muted);cursor:pointer;border-radius:10px;place-content:center;justify-items:center;gap:8px;margin-bottom:10px;display:grid}.story-pick:hover{border-color:var(--brand);color:var(--brand)}.story-viewer{z-index:45;background:#080a12f0;place-items:center;display:grid;position:fixed;inset:0}.sv-frame{background:#000;border-radius:12px;width:min(420px,100vw);height:min(92vh,760px);display:grid;position:relative;overflow:hidden}.sv-bars{z-index:3;gap:4px;display:flex;position:absolute;top:8px;left:8px;right:8px}.sv-bars span{background:#ffffff59;border-radius:2px;flex:1;height:3px;overflow:hidden}.sv-bars i{background:#fff;height:100%;display:block}.sv-head{z-index:3;color:#fff;align-items:center;gap:8px;display:flex;position:absolute;top:18px;left:10px;right:10px}.sv-who{line-height:1.2;display:grid}.sv-who a,.sv-who strong{color:#fff}.sv-who small{color:#ffffffbf;font-size:.72rem}.sv-btn{color:#fff;font:inherit;cursor:pointer;background:#00000059;border:0;border-radius:99px;align-items:center;gap:6px;padding:6px 10px;font-size:.8rem;display:inline-flex}.sv-btn:hover{background:#0009}.sv-text,.sv-media{grid-area:1/1;place-items:center;display:grid}.sv-text p{color:#fff;text-align:center;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:70px 28px;font-size:1.4rem;font-weight:600}.sv-media-el{object-fit:contain;width:100%;max-width:100%;height:100%;max-height:100%}.sv-caption{color:#fff;white-space:pre-wrap;z-index:1;background:linear-gradient(#0000,#000000b3);margin:0;padding:16px 18px 22px;position:absolute;bottom:0;left:0;right:0}.sv-tap{cursor:pointer;z-index:2;background:0 0;border:0;width:40%;position:absolute;top:70px;bottom:0}.sv-tap.left{left:0}.sv-tap.right{width:60%;right:0}@media (width<=480px){.sv-frame{border-radius:0;height:100vh}}.qa-course-list .topic-row{padding-left:4px;padding-right:4px}.modal.wide:has(.lqr-filter){width:min(1240px,100%)}.chat-ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.topcard .pop.chat-pop{width:360px;max-width:calc(100vw - 24px)}.chat-pop-search{border-bottom:1px solid var(--line-soft);padding:10px 14px}.chat-pop-err{color:var(--danger);padding:8px 14px;font-size:.8rem}.chat-pop .note-text{flex:1}.chat-pop .note.unread .note-text strong{font-weight:700}.chat-pop .note.unread .note-text .sub{color:var(--ink);font-weight:600}.chat-page{background:var(--card);height:calc(100dvh - 150px);min-height:460px;box-shadow:var(--shadow);border-radius:12px;grid-template-columns:320px minmax(0,1fr);display:grid;overflow:hidden}.chat-side{border-right:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.chat-side-head{align-items:center;gap:8px;padding:14px 14px 8px;display:flex}.chat-side-head h2{flex:1;margin:0;font-size:1.1rem}.chat-side-search{border-bottom:1px solid var(--line-soft);padding:0 14px 10px}.chat-threads{flex:1;overflow:auto}.chat-thread{border:0;border-bottom:1px solid var(--line-soft);width:100%;font:inherit;text-align:left;color:var(--ink);cursor:pointer;background:0 0;align-items:center;gap:10px;padding:10px 14px;text-decoration:none;display:flex}.chat-thread:hover{background:var(--line-soft);text-decoration:none}.chat-thread.on{background:var(--brand-tint)}.chat-thread-text{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:.86rem;display:flex}.chat-thread-text strong{font-weight:500}.chat-thread-text>span:not(.chat-thread-top),.chat-thread-top>span{color:var(--muted);font-size:.8rem}.chat-thread-top{align-items:center;gap:8px;min-width:0;display:flex}.chat-thread-top>:first-child{flex:1}.chat-thread-top small{color:var(--muted);flex:none;font-size:.72rem}.chat-thread.unread strong{font-weight:700}.chat-thread.unread .chat-thread-top>span{color:var(--ink);font-weight:600}.chat-unread{background:var(--danger);border-radius:9px;flex:none;place-items:center;min-width:18px;height:18px;padding:0 5px;font-weight:700;display:grid;color:#fff!important;font-size:.68rem!important}.chat-note{color:var(--muted);text-align:center;padding:14px;font-size:.85rem}.chat-contacts{border-top:1px solid var(--line-soft);max-height:50vh;margin-top:10px;overflow:auto}.chat-main{flex-direction:column;min-width:0;min-height:0;display:flex}.chat-blank{color:var(--muted);text-align:center;flex:1;place-content:center;justify-items:center;gap:12px;padding:24px;display:grid}.chat-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:60px;padding:10px 16px;display:flex}.chat-back{display:none}.chat-head-text{flex-direction:column;min-width:0;display:flex}.chat-head-name{color:var(--ink);font-weight:600}.chat-head-text small{color:var(--muted);font-size:.78rem}.chat-msgs{background:#fbfcfd;flex:1;padding:12px 16px;overflow:auto}.chat-day{color:var(--muted);align-items:center;gap:10px;margin:14px 0 8px;font-size:.74rem;display:flex}.chat-day:before,.chat-day:after{content:"";background:var(--line);flex:1;height:1px}.chat-row{align-items:flex-start;gap:4px;margin:3px 0;display:flex}.chat-row.mine{justify-content:flex-end}.chat-row .row-menu{opacity:0;margin-top:2px}.chat-row:hover .row-menu,.chat-row .row-menu:focus-within{opacity:1}.chat-col{flex-direction:column;align-items:flex-start;min-width:0;max-width:min(72%,560px);display:flex}.chat-row.mine .chat-col{align-items:flex-end}.chat-bubble{color:var(--ink);overflow-wrap:anywhere;background:#eef1f5;border-radius:14px;flex-direction:column;gap:6px;max-width:100%;padding:8px 12px;font-size:.9rem;display:flex}.chat-row.mine .chat-bubble{background:var(--brand);color:#fff}.chat-bubble.recalled{border:1px solid var(--line);font-style:italic;color:var(--muted)!important;background:0 0!important}.chat-text{white-space:pre-wrap}.chat-time{color:var(--muted);margin:2px 4px 0;font-size:.7rem}.chat-img-btn{cursor:zoom-in;background:0 0;border:0;border-radius:10px;padding:0;display:block;overflow:hidden}.chat-img{object-fit:cover;background:#00000040;width:auto;min-width:120px;max-width:260px;height:auto;min-height:80px;max-height:220px;display:block}.chat-file{min-width:200px;max-width:320px;color:var(--ink);background:#ffffffb3;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;display:flex}.chat-file .btn-icon{color:var(--ink-soft)}.chat-file-name{flex-direction:column;flex:1;min-width:0;font-size:.84rem;display:flex}.chat-file-name small{color:var(--muted);font-size:.72rem}.chat-zoom{flex-direction:column;align-items:center;gap:8px;max-width:92vw;max-height:90vh;display:flex}.chat-compose{border-top:1px solid var(--line);background:var(--card);padding:10px 12px}.chat-compose-row{align-items:flex-end;gap:8px;display:flex}.chat-input{resize:none;flex:1;min-height:40px;max-height:124px;line-height:1.4;overflow-y:auto}.chat-clip{cursor:pointer;place-items:center;height:40px;display:grid}.chat-compose-row .btn{height:40px}.chat-attach{border:1px solid var(--line);border-radius:99px;align-items:center;gap:6px;max-width:100%;margin-bottom:8px;padding:4px 6px 4px 10px;font-size:.82rem;display:inline-flex}.chat-attach small{color:var(--muted);flex:none}.chat-compose-err{color:var(--danger);margin-bottom:6px;font-size:.82rem}.chat-compose-off{border-top:1px solid var(--line);color:var(--muted);text-align:center;padding:14px;font-size:.85rem}@media (width<=767px){.chat-page{grid-template-columns:minmax(0,1fr);height:calc(100dvh - 120px)}.chat-page.has-thread .chat-side,.chat-page:not(.has-thread) .chat-main{display:none}.chat-side{border-right:0}.chat-back{display:inline-grid}.chat-col{max-width:85%}.chat-row .row-menu{opacity:1}}.b21-tiles3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px;display:grid}@media (width<=700px){.b21-tiles3{grid-template-columns:minmax(0,1fr)}.b21-tiles3 .stat-tile{min-height:0}}.b21-subtabs{border-bottom:1px solid var(--line);gap:22px;margin-bottom:18px;display:flex;overflow-x:auto}.b21-subtabs button{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 0;font-weight:600}.b21-subtabs button:hover{color:var(--brand)}.b21-subtabs button.on{color:var(--ink);border-color:var(--brand)}.b21-act{flex-direction:column;padding:0 20px;display:flex}.b21-act-row{border-bottom:1px solid var(--line-soft);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.b21-act-row:last-child{border-bottom:0}.b21-act-ico{background:var(--brand-tint);width:32px;height:32px;color:var(--brand);border-radius:50%;flex:none;place-items:center;display:grid}.b21-act-row.k-login .b21-act-ico{color:#475569;background:#eef1f5}.b21-act-row.k-course .b21-act-ico,.b21-act-row.k-lesson .b21-act-ico{color:#0369a1;background:#e0f2fe}.b21-act-row.k-exam .b21-act-ico{color:#b45309;background:#fef3c7}.b21-act-row.k-survey .b21-act-ico{color:#4d7c0f;background:#ecfccb}.b21-act-row.k-forum .b21-act-ico{color:#7e22ce;background:#f3e8ff}.b21-act-row.k-points .b21-act-ico{color:#6d28d9;background:#ede9fe}.b21-act-row.k-badge .b21-act-ico{color:#be185d;background:#fce7f3}.b21-act-row.k-certificate .b21-act-ico{color:#e07b00;background:#fff3e0}.b21-act-body{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:.9rem;display:flex}.b21-act-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.b21-act-kind{color:var(--ink-soft);background:#f1f5f9;border-radius:4px;padding:1px 8px;font-size:.72rem;font-weight:600}.b21-act-title{overflow-wrap:anywhere}.b21-act-pts{flex:none;font-size:.95rem}.b21-photos{flex-wrap:wrap;align-items:flex-start;gap:12px 40px;margin-bottom:4px;display:flex}.b21-photo-lbl{margin-bottom:6px;font-weight:600}.b21-portrait{margin-bottom:16px}.b21-portrait-row{align-items:center;gap:14px;display:flex}.b21-portrait-frame{aspect-ratio:3/4;border:1px dashed var(--line);width:72px;color:var(--muted);background:#f8fafc;border-radius:8px;flex:none;place-items:center;display:grid;overflow:hidden}.b21-portrait-frame img{object-fit:cover;width:100%;height:100%;display:block}.b21-teachers{gap:14px;display:grid}.b21-teacher{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--card);align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.b21-teacher-body{flex:1;min-width:0}.b21-teacher-name{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.b21-teacher-name .role-tag{margin-left:4px}.b21-teacher-bio{white-space:pre-line;color:var(--ink-soft);-webkit-line-clamp:6;-webkit-box-orient:vertical;margin:6px 0 0;font-size:.9rem;display:-webkit-box;overflow:hidden}.b21-react{align-items:center;gap:10px;display:inline-flex}.b21-react-wrap{display:inline-flex;position:relative}.b21-react-btn{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.b21-react-btn.on{background:#fff;font-weight:600}.b21-react-cur{font-size:1rem;line-height:1}.b21-react-pal{z-index:30;border:1px solid var(--line-soft);background:#fff;border-radius:999px;gap:2px;padding:4px 6px;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;box-shadow:0 6px 20px -6px #0f172a59}.b21-react-pal:after{content:"";height:8px;position:absolute;top:100%;left:0;right:0}.b21-react-pal button{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:4px;font-size:1.45rem;line-height:1;transition:transform .12s}.b21-react-pal button:hover,.b21-react-pal button:focus-visible{transform:scale(1.3)translateY(-2px)}.b21-react-pal button.on{background:var(--brand-tint)}.b21-react-sum{color:var(--ink-soft);align-items:center;gap:4px;font-size:.82rem;display:inline-flex}.b21-react-emo{display:inline-flex}.b21-react-emo span{margin-left:-3px;font-size:.9rem;line-height:1}.b21-react-emo span:first-child{margin-left:0}.b21-reply-link{font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:5px;padding:4px 6px;font-size:.82rem;font-weight:600;display:inline-flex}.b21-reply-link:hover{color:var(--brand);background:var(--brand-tint)}.b21-replies{border-left:2px solid var(--line-soft);margin:-6px 0 16px 40px;padding-left:14px}.b21-replies .sec-card.b21-child{margin-bottom:10px;padding:12px 16px 14px}@media (width<=600px){.b21-replies{margin-left:10px;padding-left:10px}}.b21-ask{width:100%;font:inherit;text-align:left;cursor:pointer;border:0;align-items:center;gap:12px;padding:14px 20px;display:flex}.b21-ask span:last-child{color:var(--muted);background:#f1f5f9;border-radius:999px;flex:1;padding:9px 16px}.b21-ask:hover span:last-child{background:var(--brand-tint);color:var(--brand)}.b21-topic-tag{color:#7e22ce;background:#f3e8ff;border-radius:4px;margin-right:6px;padding:1px 8px;font-size:.72rem;font-weight:600;display:inline-block}.a21-save-btn:hover{border-color:var(--brand);color:var(--brand)}.a21-save-btn.on{background:var(--brand-tint);border-color:rgba(var(--brand-rgb), .35);color:var(--brand)}.a21-lib-cmts .lp-cmts{margin-top:8px}.a21-card-status{position:absolute;top:8px;left:8px}.a21-org-node{white-space:normal;max-width:240px;position:relative}.a21-org-node .n{overflow-wrap:anywhere}.a21-org-toggle{border:1px solid var(--line);min-width:22px;height:22px;color:var(--brand);font:inherit;cursor:pointer;z-index:1;background:#fff;border-radius:99px;padding:0 6px;font-size:.72rem;font-weight:700;position:absolute;bottom:-11px;left:50%;transform:translate(-50%)}.a21-org-toggle:hover{border-color:var(--brand)}.a21-org-narrow{display:none}.a21-org-row{border-bottom:1px solid var(--line-soft);align-items:center;gap:4px;padding-top:6px;padding-bottom:6px;display:flex}.a21-org-row .org-node{border:0;flex:1;min-width:0;max-width:none;padding:4px}.a21-org-row .a21-org-toggle{display:none}@media (width<=767px){.a21-org-wide{display:none}.a21-org-narrow{display:block}}.a21-ck-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.a21-ck-streak{color:#c2410c;background:#fff1e6;border-radius:99px;align-items:center;gap:6px;padding:5px 12px;font-size:.88rem;display:inline-flex}.a21-ck-nav{justify-content:center;align-items:center;gap:12px;margin-bottom:8px;display:flex}.a21-ck-nav strong{text-align:center;min-width:120px}.a21-ck-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.a21-ck-wd{text-align:center;color:var(--muted);padding:4px 0;font-size:.75rem;font-weight:600}.a21-ck-day{border:1px solid var(--line-soft);background:#fff;border-radius:8px;flex-direction:column;justify-content:space-between;min-height:52px;padding:4px 6px;font-size:.82rem;display:flex}.a21-ck-day .n{color:var(--ink-soft);font-weight:600}.a21-ck-day .p{color:var(--ok);align-items:center;gap:2px;font-size:.72rem;font-weight:600;display:inline-flex}.a21-ck-day.on{background:var(--ok-tint);border-color:#0f9d6b4d}.a21-ck-day.today{box-shadow:inset 0 0 0 2px var(--brand)}@media (width<=480px){.a21-ck-day{min-height:44px;padding:3px}.a21-ck-day .p svg{display:none}}.a21-changelog{border-left:2px solid var(--line);gap:18px;margin:0;padding:0 0 0 18px;list-style:none;display:grid}.a21-changelog>li{position:relative}.a21-changelog>li:before{content:"";border:2px solid var(--brand);background:#fff;border-radius:50%;width:12px;height:12px;position:absolute;top:6px;left:-25px}.a21-cl-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.a21-cl-ver{background:var(--line-soft);color:var(--ink-soft);border-radius:4px;padding:2px 8px;font-size:.74rem;font-weight:700}.a21-cl-ver.new{background:var(--brand);color:#fff}.a21-changelog ul{color:var(--ink-soft);gap:3px;margin:6px 0 0;padding-left:18px;font-size:.88rem;display:grid}.a21-gear-fab{z-index:30;background:var(--brand);color:#fff;cursor:pointer;width:40px;height:40px;box-shadow:var(--shadow-lg);border:0;border-radius:10px 0 0 10px;place-items:center;display:grid;position:fixed;top:50%;right:0;transform:translateY(-50%)}.a21-gear-fab svg{transition:transform .4s}.a21-gear-fab:hover svg{transform:rotate(90deg)}.a21-top-fab{z-index:30;border:1px solid var(--line);width:42px;height:42px;color:var(--brand);cursor:pointer;box-shadow:var(--shadow-lg);background:#fff;border-radius:50%;place-items:center;display:grid;position:fixed;bottom:24px;right:24px}.a21-top-fab:hover{background:var(--brand);color:#fff}.a21-prefs{width:min(340px,100%)}.a21-prefs-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.a21-prefs-head strong{font-size:1.05rem}.a21-pref-row{border-bottom:1px solid var(--line-soft);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:.9rem;display:flex}.a21-switch{appearance:none;cursor:pointer;background:#cbd0db;border-radius:99px;flex:none;width:38px;height:22px;margin:0;transition:background .15s;position:relative}.a21-switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0003}.a21-switch:checked{background:var(--brand)}.a21-switch:checked:after{transform:translate(16px)}.a21-switch:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.a21-swatches{grid-template-columns:repeat(4,40px);gap:10px;display:grid}.a21-swatch{cursor:pointer;color:#fff;width:40px;height:40px;box-shadow:var(--shadow-xs);border:2px solid #0000;border-radius:10px;place-items:center;display:grid}.a21-swatch.light{border-color:var(--line);color:var(--brand)}.a21-swatch.on{outline:2px solid var(--brand);outline-offset:2px}.cls.a21-navc .cls-side{background:var(--a21-nav);box-shadow:none}.cls.a21-navc .cls-side .brand .name,.cls.a21-navc .grp-head,.cls.a21-navc .side-art{color:#fff}.cls.a21-navc .grp-head:hover{background:#ffffff1a}.cls.a21-navc .grp-head svg.chev{color:#fff9}.cls.a21-navc .grp.open>.grp-head{box-shadow:none;background:#ffffff2e}.cls.a21-navc .grp-items a{color:#ffffffc7}.cls.a21-navc .grp-items a svg{color:#fff9}.cls.a21-navc .grp-items a:hover,.cls.a21-navc .grp-items a.active{color:#fff;background:#ffffff1f}.cls.a21-navc .grp-items a.active svg{color:#fff}.cls.a21-navc .cls-side .collapse-btn{color:#fff;background:0 0;border-color:#ffffffb3}.cls.a21-navc.collapsed .grp.open>.grp-head,.cls.a21-navc.collapsed .grp.open>.grp-head svg{color:#fff}.cls.a21-navc .side-art{background:#ffffff1a}.cls.a21-foot-fixed .cls-foot{z-index:10;background:var(--bg);border-top:1px solid var(--line-soft);margin-top:auto;padding:8px 0;position:sticky;bottom:0}.a21-note-tools{border-bottom:1px solid var(--line-soft);padding:8px 14px;font-size:.86rem}.a21-note-row{border-bottom:1px solid var(--line-soft);align-items:stretch;display:flex}.a21-note-row>input{cursor:pointer;flex:none;align-self:center;width:16px;height:16px;margin:0 0 0 14px}.a21-note-row>.note{border-bottom:0;flex:1;min-width:0}.a21-note-row.on,.a21-note-row.on>.note{background:var(--brand-tint)}.a21-danger-outline{color:var(--danger)}.a21-danger-outline:hover{border-color:var(--danger);color:var(--danger)}.a21-dim{z-index:48;cursor:pointer;background:#050812e0;animation:.2s ease-out fade;position:fixed;inset:0}.lp-main>.lp-card.a21-lit{z-index:49;position:relative}.a21-period>header{flex-wrap:wrap}.a21-period>header h3 small{font-size:.8rem;font-weight:400}.a21-period-pick{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.a21-period-pick .seg button{padding:5px 12px}.a21-period-tiles{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;display:grid}.a21-period-tiles .stat-tile{box-shadow:none;border:1px solid var(--line-soft)}.col-pick{display:inline-block;position:relative}.col-pick-pop{background:var(--card);border:1px solid var(--line);min-width:220px;max-height:360px;box-shadow:var(--shadow-lg);z-index:30;border-radius:10px;gap:8px;padding:8px 14px 10px;display:grid;position:absolute;top:calc(100% + 4px);right:0;overflow:auto}.col-pick-head{border-bottom:1px solid var(--line-soft);padding:2px 0 4px;font-size:.86rem;font-weight:700}.col-pick-pop .check{white-space:nowrap;gap:8px;font-size:.88rem}.col-pick-pop .check input{width:16px;height:16px}.col-pick-pop .btn{justify-self:start;margin-top:2px}.nv-prompt{z-index:60;background:var(--card);border:1px solid var(--line);max-width:calc(100vw - 32px);box-shadow:var(--shadow-lg);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px 10px 16px;font-size:.9rem;animation:.2s ease-out fade;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.nv-prompt .nv-ico{color:var(--brand);flex:none}.nv-prompt .nv-text{flex:1;min-width:180px}.th-sort{font:inherit;font-weight:inherit;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.th-sort:hover{color:var(--brand)}.d22-period-bar>header{margin-bottom:0}.d22-cal-head{justify-content:space-between;align-items:center;gap:8px;padding:8px 0 2px;font-size:.84rem;display:flex}.d22-cal-head a{font-size:.8rem}.d22-tiles6{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-bottom:18px;display:grid}@media (width<=1200px){.d22-tiles6{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=600px){.d22-tiles6{grid-template-columns:repeat(2,minmax(0,1fr))}}.d22-course-overview{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;margin-bottom:18px;display:grid}@media (width<=1000px){.d22-course-overview{grid-template-columns:minmax(0,1fr)}}.d23-crumbs{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;font-size:.84rem;display:flex}.d23-crumbs a{color:var(--brand)}.d23-crumbs span[aria-current]{color:var(--ink-soft);font-weight:500}.tiles4.d23-tiles3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=900px){.tiles4.d23-tiles3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.tiles4.d23-tiles3{grid-template-columns:minmax(0,1fr)}}.d23-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px;display:grid}.d23-chart-grid .list-card{margin-bottom:0}@media (width<=1100px){.d23-chart-grid{grid-template-columns:minmax(0,1fr)}}.d23-chart-body{padding:4px 16px 16px}.d23-chart{width:100%;height:auto;display:block}.d23-chart-empty{text-align:center;color:var(--muted);padding:48px 16px}.d23-legend{color:var(--ink-soft);flex-wrap:wrap;gap:18px;margin-bottom:8px;font-size:.82rem;display:flex}.d23-legend span{align-items:center;gap:6px;display:inline-flex}.d23-legend i{border:1px solid var(--line);border-radius:3px;width:12px;height:12px;display:inline-block}.d23-group-row td{background:var(--brand-tint);color:var(--ink);font-weight:700}.d23-group-toggle{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-weight:700;display:inline-flex}.d23-group-toggle .muted{font-weight:400}.d23-teach{white-space:nowrap;gap:14px;display:inline-flex}.d23-teach span{align-items:center;gap:5px;display:inline-flex}.d23-teach svg{color:var(--brand)}.d23-person{flex-wrap:wrap;align-items:flex-start;gap:20px;padding:4px 20px 20px;display:flex}.d23-person dl{flex:1;grid-template-columns:max-content minmax(0,1fr);gap:8px 18px;min-width:240px;margin:0;display:grid}.d23-person dt{color:var(--muted)}.d23-person dd{margin:0}table.gradebook th,table.gradebook td{padding:6px 8px}.gb-cell{text-align:center;width:64px;min-height:32px;padding:4px 6px}select.gb-cell{width:68px}.att-pick{flex-wrap:wrap;gap:4px;display:inline-flex}.att-opt{border:1px solid var(--line);background:var(--card);font:inherit;cursor:pointer;color:var(--ink-soft);border-radius:99px;padding:4px 11px;font-size:.82rem;font-weight:600}.att-opt:hover{border-color:var(--brand)}.att-opt.on.present{background:var(--ok-tint);color:#145a31;border-color:#8fd1ad}.att-opt.on.late{background:var(--accent-tint);color:var(--accent-ink);border-color:#f0c66b}.att-opt.on.excused{background:var(--brand-tint);border-color:var(--brand);color:var(--brand-ink)}.att-opt.on.absent{background:var(--danger-tint);color:#8f231d;border-color:#e8958f}table.tkb{table-layout:fixed;min-width:760px}table.tkb th,table.tkb td{text-align:center;vertical-align:middle;border:1px solid var(--line-soft);padding:8px 6px}table.tkb td.today,table.tkb th.today{background:var(--brand-tint)}table.tkb td.editable{cursor:pointer}table.tkb td.editable:hover{outline:2px solid var(--brand);outline-offset:-2px}table.tkb tr.pm-start td{border-top:3px solid var(--line)}.cg-root{--b-900:#0a2c66;--b-800:#0c3b85;--b-700:#0f4fa8;--b-600:#1565c8;--b-500:#1a8fe0;--b-400:#2bb3f0;--b-50:#eef5ff;--or-500:#f7931e;--or-600:#e8780c;--ink:#0b1d3a;--soft:#475569;--muted:#64748b;--line:#e3e9f2;--bg-soft:#f4f8fd;color:var(--ink);background:#fff;font-family:Be Vietnam Pro,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.65;overflow-x:clip}.cg-root *,.cg-root :before,.cg-root :after{box-sizing:border-box}.cg-root a{color:inherit;text-decoration:none}.cg-root h1,.cg-root h2,.cg-root h3,.cg-root h4,.cg-root h5{font-variation-settings:normal;color:var(--ink);letter-spacing:-.02em;margin:0;font-family:inherit;font-weight:700}.cg-root .serif{letter-spacing:-.025em;font-weight:800}.cg-root [id]{scroll-margin-top:84px}.cg-wrap{width:min(1200px,100% - 48px);margin-inline:auto}@media (width<=640px){.cg-wrap{width:calc(100% - 32px)}}.cg-grad{background:linear-gradient(90deg, var(--b-700), var(--b-500) 60%, var(--b-400));color:#0000;-webkit-background-clip:text;background-clip:text}.cg-btn{cursor:pointer;white-space:nowrap;border:1.5px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:11px 20px;font:600 .95rem/1.1 Be Vietnam Pro,sans-serif;transition:transform .15s,box-shadow .15s,background .15s,border-color .15s;display:inline-flex}.cg-btn:hover{transform:translateY(-1px)}.cg-btn:disabled{opacity:.6;cursor:default;transform:none}.cg-btn-primary,.cg-btn-dark{background:linear-gradient(135deg, var(--b-700), var(--b-500));box-shadow:0 10px 24px -12px #1565c8cc;color:#fff!important}.cg-btn-primary:hover,.cg-btn-dark:hover{box-shadow:0 14px 30px -12px #1565c8e6}.cg-btn-accent{background:linear-gradient(135deg, var(--or-500), #ffae42);box-shadow:0 10px 24px -12px #f7931ed9;color:#fff!important}.cg-btn-line{background:#fff;border-color:#0f4fa859;color:var(--b-700)!important}.cg-btn-line:hover{border-color:var(--b-700);background:var(--b-50)}.cg-btn-lg{border-radius:12px;padding:15px 28px;font-size:1.02rem}.cg-nav{z-index:40;-webkit-backdrop-filter:saturate(1.5)blur(14px);background:#ffffffe6;border-bottom:1px solid #0000;transition:border-color .2s,box-shadow .2s;position:sticky;top:0}.cg-nav.scrolled{border-bottom-color:var(--line);box-shadow:0 6px 24px -18px #0b1d3a59}.cg-nav .cg-wrap{align-items:center;gap:28px;height:74px;display:flex}.cg-logo{letter-spacing:-.02em;align-items:center;gap:8px;font-size:1.4rem;font-weight:800;display:inline-flex}.cg-logo img{object-fit:contain;width:44px;height:44px}.cg-logo.light{color:#fff}.cg-word{background:linear-gradient(90deg,#0a3f8f,#1a8fe0 70%,#2bb3f0);color:#0000;-webkit-background-clip:text;background-clip:text}.cg-links{align-items:center;gap:4px;margin-left:12px;display:flex}.cg-links>a,.cg-dd>button{color:#26364f;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:4px;padding:9px 14px;font:500 .95rem Be Vietnam Pro,sans-serif;display:inline-flex}.cg-links>a:hover,.cg-dd:hover>button{color:var(--b-700);background:var(--b-50)}.cg-dd{position:relative}.cg-dd-panel{border:1px solid var(--line);opacity:0;visibility:hidden;background:#fff;border-radius:14px;gap:2px;min-width:330px;margin-top:6px;padding:10px;transition:all .18s;display:grid;position:absolute;top:100%;left:0;transform:translateY(6px);box-shadow:0 24px 60px -20px #0b1d3a59}.cg-dd:after{content:"";height:10px;position:absolute;top:100%;left:0;right:0}.cg-dd:hover .cg-dd-panel,.cg-dd:focus-within .cg-dd-panel{opacity:1;visibility:visible;transform:none}.cg-dd-panel>a,.cg-dd-panel>button{text-align:left;cursor:pointer;font:inherit;color:inherit;background:0 0;border:0;border-radius:10px;align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.cg-dd-panel>a:hover,.cg-dd-panel>button:hover{background:var(--b-50)}.cg-dd-panel svg{color:var(--b-600);flex:none;margin-top:2px}.cg-dd-panel b{color:var(--ink);font-size:.94rem;font-weight:600;display:block}.cg-dd-panel small{color:var(--muted);font-size:.82rem;line-height:1.4;display:block}.cg-nav-cta{align-items:center;gap:10px;margin-left:auto;display:flex}.cg-signin{cursor:pointer;color:#26364f;background:0 0;border:0;padding:8px 10px;font:600 .93rem Be Vietnam Pro,sans-serif}.cg-signin:hover{color:var(--b-700)}.cg-burger{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:42px;height:42px;display:none}.cg-burger span{background:var(--ink);border-radius:2px;width:18px;height:2px}@media (width<=1080px){.cg-burger{display:inline-flex}.cg-links{border-bottom:1px solid var(--line);background:#fff;flex-direction:column;align-items:stretch;margin:0;padding:12px 16px 18px;display:none;position:absolute;top:74px;left:0;right:0;box-shadow:0 20px 40px -24px #0b1d3a66}.cg-links.open{display:flex}.cg-dd-panel{opacity:1;visibility:visible;box-shadow:none;border:0;min-width:0;margin:0;padding:0 0 0 8px;position:static;transform:none}.cg-hide-sm,.cg-signin{display:none}}.cg-hero{text-align:center;padding:72px 0 36px;position:relative;overflow:hidden}.cg-hero:before{content:"";pointer-events:none;background:radial-gradient(38% 50% at 22% 40%,#f7931e29,#0000 70%),radial-gradient(40% 55% at 78% 30%,#2bb3f038,#0000 70%);height:720px;position:absolute;inset:-160px -10% auto}.cg-hero>*{position:relative}.cg-badge{border:1px solid var(--line);color:var(--b-700);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:7px 16px;font-size:.86rem;font-weight:600;display:inline-flex;box-shadow:0 6px 18px -10px #1565c859}.cg-hero h1{letter-spacing:-.035em;color:var(--b-900);margin:22px auto 0;font-size:clamp(2.3rem,5.2vw,4rem);font-weight:800;line-height:1.12}.cg-hero-sub{color:var(--or-600);margin:18px 0 0;font-size:clamp(1.05rem,1.8vw,1.3rem);font-weight:600}.cg-lead{color:var(--soft);max-width:46rem;margin:14px auto 0;font-size:1.07rem}.cg-cta{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:30px;display:flex}.cg-cta.left{justify-content:flex-start;margin-top:26px}.cg-industries{flex-wrap:wrap;justify-content:center;gap:10px;margin:34px 0 0;padding:0;list-style:none;display:flex}.cg-industries li{background:var(--bg-soft);color:var(--soft);border-radius:999px;align-items:center;gap:7px;padding:7px 14px;font-size:.88rem;font-weight:500;display:inline-flex}.cg-industries svg{color:var(--b-600)}.cg-showcase{padding:40px 0 70px;position:relative}.cg-wave{background:linear-gradient(160deg, var(--b-400) 0%, var(--b-600) 45%, var(--b-800) 100%);border-radius:50% 50% 0 0/90px 90px 0 0;position:absolute;inset:180px 0 0}.cg-stage{max-width:1060px;margin:0 auto;padding-bottom:20px;position:relative}.cg-browser{background:#fff;border:6px solid #ffffff8c;border-radius:16px;overflow:hidden;box-shadow:0 40px 90px -30px #061a42a6}.cg-browser-bar{border-bottom:1px solid var(--line);background:#eef3f9;align-items:center;gap:7px;padding:10px 14px;display:flex}.cg-browser-bar i{background:#cdd7e4;border-radius:50%;width:11px;height:11px}.cg-browser-bar span{max-width:340px;color:var(--muted);text-align:left;background:#fff;border-radius:8px;flex:1;margin-left:12px;padding:4px 12px;font-size:.78rem}.cg-browser img{width:100%;height:auto;display:block}.cg-phone{background:#0b1d3a;border-radius:34px;width:220px;padding:8px;box-shadow:0 30px 70px -20px #061a4299}.cg-phone img{border-radius:27px;width:100%;display:block}.cg-stage>.cg-phone{position:absolute;bottom:-10px;right:-40px}.cg-float{text-align:left;background:#fff;border-radius:14px;align-items:center;gap:12px;padding:12px 16px;display:flex;position:absolute;box-shadow:0 20px 50px -18px #061a4273}.cg-float.a{top:30%;left:-50px}.cg-float.b{bottom:-24px;left:8%}.cg-float .ic{width:38px;height:38px;color:var(--or-600);background:#fff3e4;border-radius:10px;place-items:center;display:grid}.cg-float .ic.blue{background:var(--b-50);color:var(--b-600)}.cg-float strong{font-size:.9rem;display:block}.cg-float small{color:var(--muted);font-size:.76rem}@media (width<=1180px){.cg-stage>.cg-phone{width:180px;right:6px}.cg-float.a{left:6px}}@media (width<=720px){.cg-stage>.cg-phone{border-radius:22px;width:118px;padding:5px}.cg-stage>.cg-phone img{border-radius:18px}.cg-float{display:none}.cg-wave{top:120px}}.cg-stats{background:var(--b-800);padding:0 0 56px}.cg-stats-grid{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:20px;grid-template-columns:repeat(5,1fr);gap:16px;padding:28px 16px;display:grid}.cg-stats-grid>div{text-align:center;padding:0 8px}.cg-stats-grid>div+div{border-left:1px solid #ffffff1f}.cg-stats-grid strong{color:#fff;letter-spacing:-.02em;font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800;display:block}.cg-stats-grid span{color:#bcd3f2;margin-top:4px;font-size:.88rem;display:block}@media (width<=900px){.cg-stats-grid{grid-template-columns:repeat(2,1fr);row-gap:24px}.cg-stats-grid>div+div{border-left:0}}.cg-sec{padding:100px 0}.cg-soft{background:var(--bg-soft)}.cg-head{max-width:760px;margin-bottom:48px}.cg-head.center{text-align:center;margin-inline:auto}.cg-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--or-600);margin-bottom:12px;font-size:.8rem;font-weight:700;display:inline-block}.cg-kicker.light{color:#ffc27a}.cg-head h2,.cg-about h2,.cg-start h2{color:var(--b-900);font-size:clamp(1.8rem,3.6vw,2.6rem);font-weight:800;line-height:1.2}.cg-head p{color:var(--soft);margin:14px 0 0;font-size:1.06rem}@media (width<=720px){.cg-sec{padding:68px 0}}.cg-tabs{flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:36px;display:flex}.cg-tabs button{border:1px solid var(--line);cursor:pointer;color:var(--soft);background:#fff;border-radius:12px;align-items:center;gap:8px;padding:12px 20px;font:600 .93rem Be Vietnam Pro,sans-serif;transition:all .15s;display:inline-flex}.cg-tabs button:hover{border-color:var(--b-500);color:var(--b-700)}.cg-tabs button.on{background:linear-gradient(135deg, var(--b-700), var(--b-500));color:#fff;border-color:#0000;box-shadow:0 12px 26px -14px #1565c8e6}.cg-sol{border:1px solid var(--line);background:#fff;border-radius:24px;grid-template-columns:.9fr 1.25fr;align-items:center;gap:56px;padding:40px;animation:.35s cg-fade;display:grid;box-shadow:0 30px 70px -40px #0b1d3a59}.cg-sol h3{color:var(--b-900);font-size:clamp(1.4rem,2.4vw,1.85rem);font-weight:800;line-height:1.25}.cg-sol p{color:var(--soft);margin:14px 0 0}.cg-sol-img{border:1px solid var(--line);background:linear-gradient(160deg, var(--b-400), var(--b-700));border-radius:16px;padding:14px;overflow:hidden}.cg-sol-img img{border-radius:10px;width:100%;display:block}@keyframes cg-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (width<=900px){.cg-sol{grid-template-columns:1fr;gap:28px;padding:24px}}.cg-ticks{gap:11px;margin:20px 0 0;padding:0;list-style:none;display:grid}.cg-ticks li{color:var(--ink);align-items:flex-start;gap:12px;display:flex}.cg-ticks svg{color:#fff;background:linear-gradient(135deg, var(--b-600), var(--b-400));border-radius:50%;flex:none;width:22px;height:22px;margin-top:2px;padding:4px}.cg-grid{grid-template-columns:repeat(4,1fr);gap:18px;display:grid}.cg-card{border:1px solid var(--line);background:#fff;border-radius:18px;padding:26px 22px;transition:transform .2s,box-shadow .2s,border-color .2s}.cg-card:hover{border-color:#1a8fe059;transform:translateY(-4px);box-shadow:0 24px 50px -28px #1565c88c}.cg-card .ic{color:#fff;background:linear-gradient(135deg, var(--b-700), var(--b-400));border-radius:14px;place-items:center;width:48px;height:48px;display:grid;box-shadow:0 10px 20px -10px #1565c8cc}.cg-card:nth-child(3n+2) .ic{background:linear-gradient(135deg, var(--or-600), #ffb347);box-shadow:0 10px 20px -10px #f7931ecc}.cg-card h4{margin:18px 0 6px;font-size:1.04rem}.cg-card p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.55}@media (width<=1000px){.cg-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=540px){.cg-grid{grid-template-columns:1fr}}.cg-blue{background:linear-gradient(160deg, var(--b-800) 0%, var(--b-600) 60%, var(--b-500) 100%);position:relative;overflow:hidden}.cg-blue:before{content:"";background:radial-gradient(circle,#ffffff24,#0000 65%);border-radius:50%;width:640px;height:640px;position:absolute;top:-240px;right:-200px}.cg-blue:after{content:"";background:radial-gradient(circle,#f7931e38,#0000 65%);border-radius:50%;width:520px;height:520px;position:absolute;bottom:-260px;left:-180px}.cg-blue .cg-wrap{z-index:1;position:relative}.cg-blue .cg-head h2{color:#fff}.cg-blue .cg-head p{color:#cfe0f7}.cg-values{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.cg-value{background:#fff;border-radius:22px;padding:34px 30px;position:relative;box-shadow:0 30px 60px -30px #03123099}.cg-value .ic{color:#fff;background:linear-gradient(135deg, var(--b-700), var(--b-400));border-radius:16px;place-items:center;width:58px;height:58px;display:grid}.cg-value:nth-child(2) .ic{background:linear-gradient(135deg, var(--or-600), #ffb347)}.cg-value .n{color:var(--b-50);letter-spacing:-.04em;font-size:2.6rem;font-weight:800;position:absolute;top:22px;right:26px}.cg-value h3{color:var(--b-900);margin-top:22px;font-size:1.3rem}.cg-value p{color:var(--soft);margin:10px 0 0;font-size:.97rem}@media (width<=900px){.cg-values{grid-template-columns:1fr}}.cg-row{grid-template-columns:1fr 1.2fr;align-items:center;gap:64px;display:grid}.cg-row+.cg-row{margin-top:100px}.cg-row.rev>:first-child{order:2}.cg-row h3{color:var(--b-900);font-size:clamp(1.5rem,2.6vw,2rem);font-weight:800;line-height:1.25}.cg-row p{color:var(--soft);margin:14px 0 0;font-size:1.03rem}.cg-shot{border:1px solid var(--line);background:linear-gradient(160deg,#e8f2ff,#fdf1e3);border-radius:18px;padding:12px;overflow:hidden;box-shadow:0 30px 70px -36px #0b1d3a73}.cg-shot img{border-radius:10px;width:100%;display:block}.cg-phones{background:linear-gradient(160deg,#e8f2ff,#fdf1e3);border-radius:24px;justify-content:center;align-items:flex-end;gap:22px;padding:40px 20px 20px;display:flex}.cg-phones .cg-phone:nth-child(2){transform:translateY(-30px)}@media (width<=900px){.cg-row{grid-template-columns:1fr;gap:30px}.cg-row.rev>:first-child{order:0}.cg-row+.cg-row{margin-top:68px}.cg-phones .cg-phone{width:44%}}.cg-process{grid-template-columns:repeat(4,1fr);gap:20px;display:grid;position:relative}.cg-process:before{content:"";background:repeating-linear-gradient(90deg, var(--b-400) 0 10px, transparent 10px 18px);height:2px;position:absolute;top:34px;left:12%;right:12%}.cg-step{text-align:center;padding:0 10px;position:relative}.cg-step .dot{color:#fff;background:linear-gradient(135deg, var(--b-700), var(--b-400));width:68px;height:68px;box-shadow:0 0 0 8px var(--bg-soft), 0 16px 30px -12px #1565c8cc;border-radius:50%;place-items:center;margin:0 auto;display:grid}.cg-step .n{letter-spacing:.1em;text-transform:uppercase;color:var(--or-600);margin-top:18px;font-size:.78rem;font-weight:700;display:block}.cg-step h4{margin-top:6px;font-size:1.1rem}.cg-step p{color:var(--muted);margin:8px 0 0;font-size:.93rem}@media (width<=900px){.cg-process{grid-template-columns:1fr 1fr;row-gap:36px}.cg-process:before{display:none}}@media (width<=520px){.cg-process{grid-template-columns:1fr}}.cg-about{grid-template-columns:1.05fr 1fr;align-items:start;gap:64px;display:grid}.cg-about p{color:var(--soft);margin:16px 0 0;font-size:1.04rem}.cg-commit{gap:16px;display:grid}.cg-commit-item{border:1px solid var(--line);background:#fff;border-radius:18px;gap:18px;padding:22px 24px;display:flex;box-shadow:0 16px 40px -30px #0b1d3a66}.cg-commit-item .ic{background:var(--b-50);width:48px;height:48px;color:var(--b-600);border-radius:14px;flex:none;place-items:center;display:grid}.cg-commit-item h4{font-size:1.05rem}.cg-commit-item p{color:var(--muted);margin:4px 0 0;font-size:.94rem}@media (width<=900px){.cg-about{grid-template-columns:1fr;gap:32px}}.cg-faq{gap:12px;max-width:860px;margin-inline:auto;display:grid}.cg-faq details{border:1px solid var(--line);background:#fff;border-radius:14px;padding:0 22px;transition:box-shadow .2s}.cg-faq details[open]{box-shadow:0 18px 40px -30px #0b1d3a73}.cg-faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;font-size:1.02rem;font-weight:600;list-style:none;display:flex}.cg-faq summary::-webkit-details-marker{display:none}.cg-faq summary svg{color:var(--b-600);flex:none;transition:transform .2s}.cg-faq details[open] summary svg{transform:rotate(45deg)}.cg-faq details p{color:var(--soft);margin:0 0 20px}.cg-start{grid-template-columns:.9fr 1.1fr;align-items:start;gap:56px;display:grid}.cg-3steps{gap:18px;margin:28px 0 32px;padding:0;list-style:none;display:grid}.cg-3steps li{gap:16px;display:flex}.cg-3steps .ic{color:#fff;background:linear-gradient(135deg, var(--or-600), #ffb347);border-radius:50%;flex:none;place-items:center;width:46px;height:46px;display:grid}.cg-3steps h4{font-size:1.05rem}.cg-3steps p{color:var(--muted);margin:2px 0 0;font-size:.95rem}.cg-contact{border:1px solid var(--line);border-top:4px solid var(--b-500);background:#fff;border-radius:24px;padding:36px;box-shadow:0 36px 80px -40px #0b1d3a66}.cg-contact h3{color:var(--b-900);font-size:1.45rem;font-weight:800}.cg-contact>p{color:var(--soft);margin:8px 0 24px}.cg-form{grid-template-columns:1fr 1fr;gap:14px;display:grid}.cg-form .full{grid-column:1/-1}.cg-form label{color:#334155;gap:6px;font-size:.85rem;font-weight:600;display:grid}.cg-form input,.cg-form select,.cg-form textarea{width:100%;color:var(--ink);background:#f8fafd;border:1px solid #d8e1ee;border-radius:10px;outline:none;padding:12px 14px;font:400 .97rem/1.4 Be Vietnam Pro,sans-serif;transition:border-color .15s,box-shadow .15s,background .15s}.cg-form input:focus,.cg-form select:focus,.cg-form textarea:focus{border-color:var(--b-500);background:#fff;box-shadow:0 0 0 4px #1a8fe024}.cg-form textarea{resize:vertical;min-height:104px}.cg-hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.cg-note{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:.8rem;display:flex}.cg-msg{border-radius:10px;padding:12px 14px;font-size:.94rem}.cg-msg.ok{color:#11734f;background:#e9f8f1}.cg-msg.err{color:#b4233a;background:#fdeef0}@media (width<=900px){.cg-start{grid-template-columns:1fr;gap:36px}.cg-contact{padding:26px 20px}}@media (width<=520px){.cg-form{grid-template-columns:1fr}}.cg-foot{background:linear-gradient(160deg, var(--b-900), var(--b-700));color:#b9cbe6;padding:64px 0 28px;font-size:.93rem;position:relative;overflow:hidden}.cg-foot:before{content:"";background:radial-gradient(circle,#2bb3f040,#0000 65%);border-radius:50%;width:520px;height:520px;position:absolute;top:-220px;right:-160px}.cg-foot .cg-wrap{position:relative}.cg-foot-top{grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;display:grid}.cg-foot p{max-width:360px;margin:16px 0 0}.cg-foot-tag{color:#ffc27a;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:600}.cg-foot h5{color:#fff;letter-spacing:.12em;text-transform:uppercase;margin:8px 0 16px;font-size:.82rem}.cg-foot ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.cg-foot ul button{color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.cg-foot a:hover,.cg-foot ul button:hover{color:#fff}.cg-foot-bottom{border-top:1px solid #ffffff1f;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:48px;padding-top:22px;display:flex}.cg-foot-bottom span{align-items:center;gap:8px;display:inline-flex}@media (width<=900px){.cg-foot-top{grid-template-columns:1fr 1fr}}@media (width<=520px){.cg-foot-top{grid-template-columns:1fr}}.cg-fab{z-index:35;background:linear-gradient(135deg, var(--or-600), #ffae42);border-radius:999px;align-items:center;gap:8px;padding:13px 20px;font-weight:700;animation:2.6s ease-in-out infinite cg-pulse;display:inline-flex;position:fixed;bottom:20px;right:20px;box-shadow:0 16px 34px -12px #e8780cbf;color:#fff!important}@keyframes cg-pulse{0%,to{box-shadow:0 16px 34px -12px #e8780cbf,0 0 #f7931e73}50%{box-shadow:0 16px 34px -12px #e8780cbf,0 0 0 12px #f7931e00}}@media (width<=520px){.cg-fab span{display:none}.cg-fab{padding:14px}}.cg-modal{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0b1d3a80;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.cg-modal-card{background:#fff;border-radius:20px;width:min(460px,100%);padding:30px;box-shadow:0 40px 100px -30px #0b1d3a99}.cg-modal-card h3{color:var(--b-900);font-size:1.35rem}.cg-modal-card p{color:var(--soft);margin:8px 0 20px;font-size:.96rem}.cg-domain{background:#f8fafd;border:1px solid #d8e1ee;border-radius:10px;align-items:stretch;display:flex;overflow:hidden}.cg-domain input{outline:none;flex:1;min-width:0;padding:12px 14px;font:400 1rem Be Vietnam Pro,sans-serif;box-shadow:none!important;background:0 0!important;border:0!important}.cg-domain span{color:var(--muted);border-left:1px solid #d8e1ee;place-items:center;padding:0 14px;font-size:.9rem;font-weight:500;display:grid}.cg-modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.cg-reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(18px)}.cg-reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.cg-reveal{opacity:1;transition:none;transform:none}.cg-btn:hover,.cg-card:hover{transform:none}.cg-fab{animation:none}}.cg-auth{background:#fff;grid-template-columns:1fr 1.1fr;min-height:100vh;display:grid}.cg-auth-art{background:linear-gradient(160deg, var(--b-900), var(--b-600));color:#cfe0f7;flex-direction:column;justify-content:space-between;padding:44px 56px;display:flex;position:relative;overflow:hidden}.cg-auth-art:before{content:"";background:radial-gradient(circle,#f7931e40,#0000 65%);border-radius:50%;width:620px;height:620px;position:absolute;bottom:-280px;left:-240px}.cg-auth-art>*{position:relative}.cg-auth-art .cg-logo{color:#fff}.cg-auth-art h2{color:#fff;max-width:16ch;font-size:clamp(1.9rem,3vw,2.5rem);line-height:1.2}.cg-auth-art ul{gap:14px;margin:28px 0 0;padding:0;list-style:none;display:grid}.cg-auth-art li{align-items:flex-start;gap:12px;font-size:1rem;display:flex}.cg-auth-art li svg{color:#ffc27a;flex:none;margin-top:3px}.cg-auth-shot{border:5px solid #ffffff2e;border-radius:14px;max-width:520px;margin-top:36px;overflow:hidden;box-shadow:0 30px 60px -20px #00000080}.cg-auth-shot img{width:100%;display:block}.cg-auth-main{background:var(--bg-soft);place-items:center;padding:56px 24px;display:grid}.cg-auth-form{border:1px solid var(--line);background:#fff;border-radius:24px;width:min(540px,100%);padding:36px;box-shadow:0 36px 80px -44px #0b1d3a73}.cg-auth-form h1{color:var(--b-900);font-size:clamp(1.7rem,2.6vw,2.1rem);line-height:1.2}.cg-auth-form .sub{color:var(--soft);margin:8px 0 24px}.cg-auth-form .cg-form{grid-template-columns:1fr 1fr}.cg-hint{font-size:.8rem;font-weight:500}.cg-hint.good{color:#11734f}.cg-hint.bad{color:#b4233a}.cg-hint.muted{color:var(--muted)}.cg-auth-foot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:20px;font-size:.9rem;display:flex}.cg-auth-foot a{color:var(--b-700);font-weight:600}@media (width<=960px){.cg-auth{grid-template-columns:1fr}.cg-auth-art{padding:28px 22px}.cg-auth-shot{display:none}.cg-auth-form{padding:26px 20px}}@media (width<=520px){.cg-auth-form .cg-form{grid-template-columns:1fr}}.sa,.sa-login{--sa-navy:#0b1d3a;--sa-gold:#38b6f2;--sa-cream:#f7f9fc;--sa-line:#e2e8f0;font-family:Be Vietnam Pro,system-ui,sans-serif}.sa{background:var(--sa-cream);grid-template-columns:248px 1fr;min-height:100vh;display:grid}.sa-side{background:var(--sa-navy);color:#c9d2e1;flex-direction:column;gap:22px;height:100vh;padding:22px 14px;display:flex;position:sticky;top:0}.sa-brand{color:#fff;flex-wrap:wrap;align-items:center;gap:10px;padding:0 8px;font-size:1.15rem;font-weight:800;display:flex}.sa-brand img{width:30px;height:30px}.sa-brand span{letter-spacing:.12em;text-transform:uppercase;width:100%;color:var(--sa-gold);font-size:.72rem;font-weight:600}.sa-side nav{gap:4px;display:grid}.sa-side nav button,.sa-out{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:11px 12px;font:500 .94rem Be Vietnam Pro,sans-serif;display:flex}.sa-side nav button:hover,.sa-out:hover{color:#fff;background:#ffffff0f}.sa-side nav button.on{color:#fff;background:#38b6f229}.sa-side nav button.on svg{color:var(--sa-gold)}.sa-side nav b{background:var(--sa-gold);color:var(--sa-navy);border-radius:999px;margin-left:auto;padding:1px 8px;font-size:.74rem}.sa-foot{gap:2px;margin-top:auto;display:grid}.sa-out{color:#8f9bb2}.sa-main{min-width:0;padding:32px 40px 64px}.sa-head{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.sa-head h1{letter-spacing:-.02em;margin:0;font-family:Be Vietnam Pro,sans-serif;font-size:2.1rem;font-weight:800}.sa-head p{color:#6b7387;margin:6px 0 0}.sa-head-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.sa-search{border:1px solid var(--sa-line);background:#fff;border-radius:10px;align-items:center;gap:8px;height:38px;padding:0 12px;display:flex}.sa-search input{font:inherit;background:0 0;border:0;outline:none;width:220px}.sa-select{width:auto;min-height:38px;padding:6px 12px}.sa-tiles{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px;display:grid}.sa-tile{border:1px solid var(--sa-line);background:#fff;border-radius:14px;padding:18px}.sa-tile span{color:#6b7387;align-items:center;gap:8px;font-size:.84rem;font-weight:600;display:flex}.sa-tile strong{letter-spacing:-.02em;margin-top:6px;font-size:1.6rem;display:block}.sa-tile.warn{background:#fffaf0;border-color:#f1d79c}.sa-tile.warn strong{color:#8a5a05}.sa-tile.bad{background:#fff5f6;border-color:#f3c3ca}.sa-tile.bad strong{color:#b4233a}.sa-card{border:1px solid var(--sa-line);background:#fff;border-radius:16px;margin-bottom:20px;padding:20px}.sa-card.flush{padding:6px 0}.sa-card-head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.sa-card-head h2{margin:0;font-size:1.1rem}.sa-seg{border:1px solid var(--sa-line);border-radius:10px;margin-left:auto;display:inline-flex;overflow:hidden}.sa-seg button{cursor:pointer;color:#6b7387;background:#fff;border:0;padding:6px 12px;font:600 .82rem Be Vietnam Pro,sans-serif}.sa-seg button.on{background:var(--sa-navy);color:#fff}.sa-table{border-collapse:collapse;width:100%;font-size:.92rem}.sa-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:#8a91a3;border-bottom:1px solid var(--sa-line);background:0 0;padding:10px 14px;font-size:.76rem;font-weight:600}.sa-table td{vertical-align:top;border-bottom:1px solid #f1eee7;padding:12px 14px}.sa-table tr:last-child td{border-bottom:0}.sa-table tr.click{cursor:pointer}.sa-table tr.click:hover td{background:#fbfaf6}.sa-table .right{text-align:right}.nowrap{white-space:nowrap}.sm{font-size:.8rem}.sa-link{font:inherit;color:#1f3f8a;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-weight:600;display:inline-flex}.sa-link:hover{text-decoration:underline}.sa-left{color:#6b7387;font-size:.78rem;font-weight:600}.sa-left.warn{color:#8a5a05}.sa-left.bad{color:#b4233a}.sa-kv{grid-template-columns:1fr 1fr;gap:12px 24px;margin:8px 0 4px;display:grid}.sa-kv>div{flex-direction:column;gap:2px;display:flex}.sa-kv span{text-transform:uppercase;letter-spacing:.06em;color:#8a91a3;font-size:.76rem;font-weight:600}.sa-sub{margin:22px 0 8px;font-size:1rem}.sa-plain{gap:4px;margin:0;padding-left:18px;display:grid}.sa-notes{border:1px solid var(--sa-line);white-space:pre-wrap;background:#fbfaf6;border-radius:10px;margin:14px 0 0;padding:10px 14px}.sa-contract-top{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.sa-form{grid-template-columns:1fr 1fr;gap:14px 18px;display:grid}.sa-form>label,.sa-field{color:#3b4357;gap:6px;font-size:.86rem;font-weight:600;display:grid}.sa-form .full{grid-column:1/-1}.sa-term{align-items:center;gap:8px;display:flex}.sa-term .input{width:80px}.sa-term span{color:#6b7387;font-weight:500}.sa-pay{border:1px solid var(--sa-line);background:#fcfbf8;border-radius:12px;gap:8px;padding:14px;display:grid}.sa-pay-head{flex-wrap:wrap;align-items:center;gap:10px;font-size:.9rem;display:flex}.sa-pay-row{grid-template-columns:1.2fr 1fr 1fr 1fr auto;gap:8px;display:grid}.sa-checks{border:1px solid var(--sa-line);border-radius:12px;flex-wrap:wrap;gap:18px;padding:10px 14px;display:flex}.sa-checks legend{color:#3b4357;padding:0 4px;font-size:.86rem;font-weight:600}.sa-checks label,.sa-inline{align-items:center;gap:8px;font-weight:500!important;display:flex!important}.sa-plans{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.sa-plan{border:1px solid var(--sa-line);background:#fff;border-radius:16px;flex-direction:column;gap:8px;padding:20px;display:flex}.sa-plan.off{opacity:.65}.sa-plan-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sa-plan h3{margin:0;font-size:1.2rem}.sa-plan code{color:#8a91a3;font-size:.78rem}.sa-plan p{color:#6b7387;margin:0;font-size:.9rem}.sa-plan ul{gap:6px;margin:6px 0;padding:0;font-size:.92rem;list-style:none;display:grid}.sa-plan li:before{content:"✓";color:#1f9d6b;margin-right:8px;font-weight:700}.sa-plan li.no{color:#a7adbb;text-decoration:line-through}.sa-plan li.no:before{content:"–";color:#c4c8d2}.sa-plan-foot{border-top:1px solid #f1eee7;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:10px;display:flex}.sa-leads{gap:12px;display:grid}.sa-lead{border:1px solid var(--sa-line);border-left:4px solid var(--sa-gold);background:#fff;border-radius:12px;gap:6px;padding:16px 18px;display:grid}.sa-lead.done{border-left-color:#cfd6e2}.sa-lead-top,.sa-lead-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sa-lead p{white-space:pre-wrap;color:#3b4357;margin:4px 0 0}.sa-login{background:radial-gradient(60% 60% at 50% 0%, #38b6f238, transparent 70%), var(--sa-navy);place-items:center;min-height:100vh;padding:16px;display:grid}.sa-login-card{background:#fff;border-radius:20px;gap:14px;width:min(420px,100%);padding:32px;display:grid;box-shadow:0 40px 100px -30px #0009}.sa-login-card .sa-brand{color:#0b1d3a;padding:0}.sa-login-card h1{margin:6px 0 4px;font-family:Be Vietnam Pro,sans-serif;font-size:1.8rem;font-weight:800}@media (width<=1100px){.sa-tiles{grid-template-columns:repeat(2,1fr)}}@media (width<=860px){.sa{grid-template-columns:1fr}.sa-side{flex-flow:wrap;align-items:center;height:auto;padding:12px;position:static}.sa-side nav{width:100%;display:flex;overflow-x:auto}.sa-side nav button{white-space:nowrap;width:auto}.sa-out{width:auto;margin:0}.sa-main{padding:20px 16px 48px}.sa-form,.sa-kv{grid-template-columns:1fr}.sa-pay-row{grid-template-columns:1fr 1fr}}.sa h1,.sa h2,.sa h3,.sa-login h1{font-variation-settings:normal;font-family:Be Vietnam Pro,system-ui,sans-serif}.sa-kind{border:1px solid var(--sa-line);color:#0b1d3a;background:#fff;border-radius:8px;padding:5px 8px;font:500 .85rem Be Vietnam Pro,sans-serif}.pp-controls{max-width:900px}.pp-form{grid-template-columns:repeat(3,1fr);gap:0 14px;display:grid}@media (width<=760px){.pp-form{grid-template-columns:1fr}}.pp-preview{background:#e9ecf1;border-radius:12px;margin-top:18px;padding:18px;overflow-x:auto}.pp-preview .pp-page{background:#fff;width:210mm;min-height:297mm;margin:0 auto 18px;padding:14mm 15mm;box-shadow:0 6px 24px #0000001f}.pp-print-root{display:none}.pp-sheet{color:#000;font-family:Times New Roman,Times,serif;font-size:13pt;line-height:1.4}.pp-sheet h2,.pp-sheet h3{color:#000;font-family:Times New Roman,Times,serif}.pp-header{border-collapse:collapse;width:100%;margin-bottom:6px}.pp-header td{text-align:center;vertical-align:top;background:0 0;border:0;width:50%;padding:0 4px}.pp-rule{border-top:1px solid #000;width:40%;margin:3px auto}.pp-small{font-size:11pt}.pp-student{flex-wrap:wrap;gap:6px 22px;margin:10px 0 12px;display:flex}.pp-code{border:1.5px solid #000;margin-left:auto;padding:1px 10px;font-weight:700}.pp-q{break-inside:avoid;margin:0 0 8px}.pp-q-head strong{margin-right:4px}.pp-q-content p{margin:0;display:inline}.pp-q-content img{max-width:100%;margin:4px 0;display:block}.pp-pts{margin-left:4px;font-size:11pt;font-style:italic}.pp-opts{gap:2px 14px;margin:3px 0 0 18px;display:grid}.pp-statements{margin:3px 0 0 18px}.pp-match{grid-template-columns:1fr 1fr;gap:14px;margin:3px 0 0 18px;display:grid}.pp-lines div{border-bottom:1px dotted #555;height:9mm}.pp-passage{margin:6px 0;padding:4px 0;font-style:italic}.pp-blank{white-space:nowrap}.pp-end{text-align:center;letter-spacing:2px;margin:14px 0 4px;font-weight:700}.pp-key{break-inside:avoid;margin-top:12px}.pp-key table{border-collapse:collapse;width:100%}.pp-key td{text-align:center;background:0 0;border:1px solid #000;width:10%;padding:4px 2px}@media print{@page{size:A4;margin:0}body.pp-printing>:not(.pp-print-root){display:none!important}body.pp-printing .pp-print-root{display:block}body.pp-printing{background:#fff!important}.pp-print-root .pp-page{break-after:page;padding:14mm 15mm}.pp-print-root .pp-page:last-child{break-after:auto}}
