@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/Nunito-VariableFont_wght.ttf) format("truetype-variations")}@font-face{font-family:Nunito;font-style:italic;font-weight:200 1000;font-display:swap;src:url(/Nunito-Italic-VariableFont_wght.ttf) format("truetype-variations")}:root{--al-teal-50: #E6F7F9;--al-teal-100: #C2ECF1;--al-teal-200: #8DDBE4;--al-teal-300: #4FC4D2;--al-teal-400: #1FB1C1;--al-teal-500: #0EA5B7;--al-teal-600: #0C8C9B;--al-teal-700: #0A7280;--al-teal-800: #085864;--al-teal-900: #053D45;--al-ink: #0E2A30;--al-ink-soft: #44606A;--al-mute: #758A92;--al-paper: #F4F7F9;--al-edge: #E2EAEE;--primary: var(--al-teal-500);--primary-foreground: #FFFFFF;--ring: var(--al-teal-500);--al-published: #0E9F5A;--al-draft: #F3991F;--al-generating:#0EA5B7;--al-failed: #CF3D29;--al-live: #CF3D29}[data-density=cozy]{--al-row-gap: 18px;--al-ws-min: 150px;--al-ws-h: 112px}[data-density=compact]{--al-row-gap: 12px;--al-ws-min: 130px;--al-ws-h: 96px}[data-density=spacious]{--al-row-gap: 24px;--al-ws-min: 170px;--al-ws-h: 124px}html,body{background:var(--al-paper);color:var(--al-ink);font-family:Nunito,system-ui,sans-serif;-webkit-font-smoothing:antialiased}button{font-family:inherit}.al-shell{display:grid;grid-template-rows:56px 1fr;min-height:100vh}.al-topbar{background:#fff;border-bottom:1px solid var(--al-edge);display:flex;align-items:center;gap:14px;padding:0 20px;position:sticky;top:0;z-index:30}.al-brand{display:flex;align-items:center;gap:10px}.al-brand-mark{width:32px;height:32px;border-radius:8px;background:var(--al-ink);display:flex;align-items:center;justify-content:center;padding:4px}.al-brand-mark img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;display:block}.al-brand-divider{width:1px;height:20px;background:var(--al-edge);margin:0 2px}.al-brand-product{font-weight:800;font-size:13px;color:var(--al-teal-700);letter-spacing:-.005em;display:flex;align-items:center;gap:5px}.al-brand-product:before{content:"";width:5px;height:5px;border-radius:99px;background:var(--al-teal-500)}.al-divider{width:1px;height:22px;background:var(--al-edge)}.al-crumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--al-ink-soft)}.al-crumbs button{background:0;border:0;color:inherit;cursor:pointer;font-size:13px;font-weight:600;padding:4px 8px;border-radius:6px}.al-crumbs button:hover{background:var(--al-paper);color:var(--al-ink)}.al-crumbs .sep{color:var(--al-edge)}.al-crumbs .cur{color:var(--al-ink);font-weight:700;padding:4px 8px}.al-top-right{margin-left:auto;display:flex;align-items:center;gap:8px}.al-search{display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;background:var(--al-paper);border:1px solid transparent;border-radius:8px;width:280px}.al-search:focus-within{background:#fff;border-color:var(--al-teal-300);box-shadow:0 0 0 3px var(--al-teal-50)}.al-search input{border:0;outline:0;background:0;flex:1;font-family:inherit;font-size:13px;color:var(--al-ink)}.al-search svg{width:14px;height:14px;color:var(--al-mute)}.al-kbd{font-size:10px;color:var(--al-mute);padding:2px 5px;background:#fff;border:1px solid var(--al-edge);border-radius:4px;font-weight:600}.al-icon-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:0;background:0;border-radius:8px;cursor:pointer;color:var(--al-ink);position:relative}.al-icon-btn:hover{background:var(--al-paper)}.al-icon-btn svg{width:17px;height:17px}.al-icon-btn .dot{position:absolute;top:9px;right:9px;width:7px;height:7px;background:var(--al-draft);border-radius:99px;border:2px solid #fff}.al-avatar{width:32px;height:32px;border-radius:99px;background:var(--al-teal-500);color:#fff;font-weight:800;font-size:11px;display:flex;align-items:center;justify-content:center}.al-body{display:grid;grid-template-columns:248px 1fr;min-height:0;overflow:hidden}.al-side{background:#fff;border-right:1px solid var(--al-edge);padding:18px 14px;display:flex;flex-direction:column;gap:18px;overflow-y:auto;height:calc(100vh - 56px)}.al-side-head{display:flex;align-items:center;justify-content:space-between;padding:0 6px}.al-side-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--al-mute);font-weight:800}.al-side-add{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:0;background:0;cursor:pointer;color:var(--al-ink-soft);border-radius:5px}.al-side-add:hover{background:var(--al-paper);color:var(--al-teal-600)}.al-side-add svg{width:13px;height:13px}.al-subject-list{display:flex;flex-direction:column;gap:2px}.al-subject{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;background:0;border:0;width:100%;text-align:left;cursor:pointer;color:var(--al-ink);font-family:inherit;position:relative}.al-subject:hover{background:var(--al-paper)}.al-subject.on{background:var(--al-teal-50)}.al-subject.on .al-subject-name{color:var(--al-teal-700)}.al-subject-swatch{width:28px;height:28px;border-radius:7px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;color:#fff}.al-subject-body{flex:1;min-width:0}.al-subject-name{font-weight:700;font-size:13px;line-height:1.2;display:block}.al-subject-meta{font-size:11px;color:var(--al-mute);font-weight:500;margin-top:1px}.al-subject-count{font-size:11px;color:var(--al-mute);font-weight:700}.al-subject.on:before{content:"";position:absolute;left:-14px;top:6px;bottom:6px;width:3px;background:var(--al-teal-500);border-radius:0 3px 3px 0}.al-side-foot{margin-top:auto}.al-side-section{display:flex;flex-direction:column;gap:4px}.al-side-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:7px;background:0;border:0;cursor:pointer;color:var(--al-ink-soft);font-family:inherit;font-size:13px;font-weight:600;width:100%;text-align:left}.al-side-item:hover{background:var(--al-paper);color:var(--al-ink)}.al-side-item svg{width:14px;height:14px}.al-side-item .badge{margin-left:auto;font-size:10px;padding:1px 6px;border-radius:99px;background:var(--al-teal-500);color:#fff;font-weight:800}.al-canvas{overflow-y:auto;padding:24px 32px 80px;min-width:0;height:calc(100vh - 56px)}.al-page-head{display:flex;align-items:flex-start;gap:20px;margin-bottom:22px}.al-page-head-body{flex:1;min-width:0}.al-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--al-teal-700);background:var(--al-teal-50);padding:4px 10px;border-radius:99px;margin-bottom:8px}.al-eyebrow svg{width:12px;height:12px}.al-page-head h1{font-size:30px;font-weight:800;letter-spacing:-.01em;margin:0 0 6px}.al-page-head p{color:var(--al-ink-soft);font-size:14px;margin:0;max-width:560px}.al-page-head-actions{display:flex;gap:8px;align-items:center}.al-btn{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;border-radius:8px;border:0;font-family:inherit;font-weight:700;font-size:13px;cursor:pointer;transition:all .15s;white-space:nowrap}.al-btn svg{width:14px;height:14px}.al-btn-primary{background:var(--al-teal-500);color:#fff;box-shadow:0 1px 2px #0ea5b74d,inset 0 -1px #00000014}.al-btn-primary:hover{background:var(--al-teal-600)}.al-btn-accent{background:linear-gradient(135deg,#f3991f,#ffb347);color:#fff}.al-btn-accent:hover{filter:brightness(.96)}.al-btn-ghost{background:0;color:var(--al-ink)}.al-btn-ghost:hover{background:var(--al-paper)}.al-btn-outline{background:#fff;color:var(--al-ink);border:1px solid var(--al-edge)}.al-btn-outline:hover{background:var(--al-paper);border-color:#cbd8de}.al-btn-sm{height:30px;padding:0 10px;font-size:12px}.al-btn-lg{height:44px;padding:0 18px;font-size:14px}.al-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.al-stat{background:#fff;border:1px solid var(--al-edge);border-radius:12px;padding:14px 16px;display:flex;gap:12px;align-items:center}.al-stat-ico{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.al-stat-ico svg{width:18px;height:18px}.al-stat-label{font-size:11px;color:var(--al-mute);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.al-stat-value{font-size:22px;font-weight:800;line-height:1;margin-top:4px;letter-spacing:-.01em}.al-pipeline{background:linear-gradient(120deg,#0e2a30,#0e445b);color:#fff;border-radius:14px;padding:16px 18px;margin-bottom:22px;display:flex;align-items:center;gap:14px;position:relative;overflow:hidden;border:0}.al-pipeline:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 90% 30%,rgba(14,165,183,.25),transparent 50%),radial-gradient(circle at 10% 90%,rgba(243,153,31,.18),transparent 45%);pointer-events:none}.al-pipeline>*{position:relative}.al-pipe-ico{width:40px;height:40px;border-radius:10px;background:#0ea5b733;border:1px solid rgba(14,165,183,.5);display:flex;align-items:center;justify-content:center;color:var(--al-teal-300);flex-shrink:0}.al-pipe-ico svg{width:18px;height:18px;animation:al-spin 2.2s linear infinite}.al-pipe-body{flex:1;text-align:left}.al-pipe-title{font-size:13px;font-weight:700}.al-pipe-sub{font-size:12px;color:#ffffffb3;margin-top:3px;display:flex;align-items:center;gap:8px}.al-pipe-dot{width:6px;height:6px;background:var(--al-teal-300);border-radius:99px;animation:al-pulse 1.4s ease-in-out infinite;flex-shrink:0}.al-pipe-bar{width:200px;height:5px;background:#ffffff1f;border-radius:99px;overflow:hidden;flex-shrink:0}.al-pipe-bar-fill{height:100%;background:linear-gradient(90deg,var(--al-teal-400),#FFB347);border-radius:99px;transition:width .6s ease}.al-pipe-pct{font-variant-numeric:tabular-nums;font-weight:700;font-size:13px;width:38px;text-align:right;flex-shrink:0}.al-pipe-chevron{color:#ffffff80}.al-pipe-chevron svg{width:16px;height:16px}.al-path{background:#fff;border:1px solid var(--al-edge);border-radius:16px;box-shadow:0 1px 2px #0e2a300a;overflow:hidden}.al-path-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--al-edge)}.al-path-head-left{display:flex;align-items:center;gap:14px}.al-path-head h2{font-size:16px;font-weight:800;margin:0;letter-spacing:-.005em}.al-gate{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;background:var(--al-teal-50);color:var(--al-teal-700);font-size:11px;font-weight:700}.al-gate svg{width:12px;height:12px}.al-toggle{display:flex;background:var(--al-paper);padding:3px;border-radius:8px}.al-toggle button{background:0;border:0;padding:5px 11px;border-radius:6px;font-family:inherit;font-size:12px;font-weight:700;color:var(--al-ink-soft);cursor:pointer;display:inline-flex;align-items:center;gap:5px}.al-toggle button svg{width:13px;height:13px}.al-toggle button.on{background:#fff;color:var(--al-ink);box-shadow:0 1px 2px #0e2a3014}.al-ladder-wrap{padding:8px 0 16px}.al-ladder-header{display:grid;grid-template-columns:220px repeat(5,minmax(var(--al-ws-min, 150px),1fr));gap:12px;align-items:center;padding:12px 20px;position:sticky;top:0;z-index:2;background:linear-gradient(to bottom,#fff 70%,#fff0)}.al-ladder-header>div{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--al-mute);text-align:center;padding:4px 0}.al-ladder-header>div:first-child{text-align:left}.al-ladder-header>.lvl{display:flex;flex-direction:column;align-items:center;gap:4px}.al-ladder-header .lvl-dot{width:18px;height:18px;border-radius:99px;background:var(--al-teal-50);border:1.5px solid var(--al-teal-300);color:var(--al-teal-700);font-weight:800;font-size:10px;display:flex;align-items:center;justify-content:center}.al-ladder-header .lvl.l5 .lvl-dot{background:#fff0dc;border-color:#ffb347;color:#bf7315}.al-ladder-header .lvl span{font-size:10px;color:var(--al-mute);font-weight:700;text-transform:none;letter-spacing:0}.al-row{display:grid;grid-template-columns:220px repeat(5,minmax(var(--al-ws-min, 150px),1fr));gap:12px;padding:var(--al-row-gap, 18px) 20px;border-bottom:1px dashed var(--al-edge);position:relative}.al-row:last-child{border-bottom:0}.al-chapter-chip{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:linear-gradient(180deg,var(--al-teal-50),#fff);border:1px solid var(--al-teal-100);border-radius:10px;position:relative;align-self:center}.al-chapter-num{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;color:var(--al-teal-700);text-transform:uppercase;letter-spacing:.06em}.al-chapter-num .dot{width:6px;height:6px;border-radius:99px;background:var(--al-teal-500)}.al-chapter-name{font-size:14px;font-weight:800;letter-spacing:-.005em;color:var(--al-ink);line-height:1.2}.al-chapter-meta{font-size:11px;color:var(--al-ink-soft);display:flex;align-items:center;gap:8px}.al-chapter-meta .sep{width:3px;height:3px;border-radius:99px;background:var(--al-mute)}.al-chapter-actions{position:absolute;top:8px;right:8px;display:flex;gap:2px;opacity:0;transition:opacity .15s}.al-chapter-chip:hover .al-chapter-actions{opacity:1}.al-chapter-actions button{width:24px;height:24px;background:#ffffffb3;border:1px solid var(--al-edge);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--al-ink-soft)}.al-chapter-actions button:hover{background:#fff;color:var(--al-teal-600)}.al-chapter-actions svg{width:12px;height:12px}.al-chapter-chip.locked{background:var(--al-paper);border-color:var(--al-edge)}.al-chapter-chip.locked .al-chapter-num{color:var(--al-mute)}.al-row:before{content:"";position:absolute;left:250px;right:24px;top:50%;height:1px;background-image:linear-gradient(to right,var(--al-edge) 50%,transparent 50%);background-size:8px 1px;background-repeat:repeat-x;z-index:0}.al-cell{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:var(--al-ws-h, 110px)}.al-ws{position:relative;width:100%;background:#fff;border:1px solid var(--al-edge);border-radius:11px;padding:10px 11px 9px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:5px;transition:all .15s ease;min-height:var(--al-ws-h, 110px);font-family:inherit}.al-ws:hover{transform:translateY(-2px);box-shadow:0 6px 14px -6px #0e2a302e;border-color:var(--al-teal-300)}.al-ws.selected{border-color:var(--al-teal-500);box-shadow:0 0 0 3px var(--al-teal-50)}.al-ws-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.al-ws-type{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:5px;font-size:10px;font-weight:700}.al-ws-type svg{width:11px;height:11px}.al-ws-type.video{background:#eef1ff;color:#4548b5}.al-ws-type.pdf{background:#fee;color:#b53330}.al-ws-type.image{background:#fff6e6;color:#9c6a00}.al-ws-type.live{background:#fce6e6;color:#b53330}.al-ws-status{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:var(--al-ink-soft)}.al-ws-status .dot{width:7px;height:7px;border-radius:99px;flex-shrink:0}.al-ws-status .dot.published{background:var(--al-published)}.al-ws-status .dot.draft{background:var(--al-draft)}.al-ws-status .dot.generating{background:var(--al-generating);animation:al-pulse 1.4s ease-in-out infinite}.al-ws-status .dot.failed{background:var(--al-failed)}.al-ws-status .dot.scheduled{background:var(--al-mute)}.al-ws-status .dot.live{background:var(--al-live);animation:al-glow 1.4s ease-in-out infinite}.al-ws-title{font-size:13px;font-weight:700;line-height:1.25;color:var(--al-ink);margin:1px 0 2px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.al-ws-foot{display:flex;align-items:center;gap:8px;margin-top:auto}.al-ws-foot-meta{font-size:11px;color:var(--al-mute);font-weight:600;display:flex;align-items:center;gap:5px}.al-ws-foot-meta svg{width:11px;height:11px}.al-ws-mini-bar{flex:1;height:3px;background:var(--al-paper);border-radius:99px;overflow:hidden}.al-ws-mini-bar>div{height:100%;background:linear-gradient(90deg,var(--al-teal-500),var(--al-teal-300));border-radius:99px}.al-ws.generating{background:linear-gradient(115deg,#fff 0%,var(--al-teal-50) 50%,#fff 100%);background-size:200% 100%;animation:al-shimmer 2.6s linear infinite;border-color:var(--al-teal-200)}.al-ws.empty{background:transparent;border:1.5px dashed var(--al-edge);display:flex;align-items:center;justify-content:center;color:var(--al-mute);font-size:11px;font-weight:700;min-height:var(--al-ws-h, 110px);flex-direction:column;gap:6px}.al-ws.empty:hover{border-color:var(--al-teal-400);color:var(--al-teal-700);background:var(--al-teal-50)}.al-ws.empty svg{width:16px;height:16px}.al-chapter-add{margin-top:6px;display:inline-flex;align-items:center;gap:5px;background:#ffffffb3;border:1px solid var(--al-teal-100);color:var(--al-teal-700);font-family:inherit;font-weight:700;font-size:11px;padding:4px 9px;border-radius:99px;cursor:pointer;align-self:flex-start}.al-chapter-add:hover{background:#fff;border-color:var(--al-teal-400)}.al-chapter-add svg{width:11px;height:11px}.al-add-chapter{padding:16px 20px 8px}.al-add-chapter-btn{width:100%;padding:14px;background:var(--al-paper);border:1.5px dashed var(--al-edge);border-radius:12px;display:flex;align-items:center;justify-content:center;gap:10px;font-family:inherit;font-size:13px;font-weight:700;color:var(--al-ink-soft);cursor:pointer;transition:all .15s}.al-add-chapter-btn:hover{background:var(--al-teal-50);border-color:var(--al-teal-400);color:var(--al-teal-700)}.al-add-chapter-btn svg{width:15px;height:15px}.al-drawer-backdrop{position:fixed;inset:0;background:#0e2a3052;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50}.al-drawer{position:fixed;right:0;top:0;bottom:0;width:520px;max-width:92vw;background:#fff;box-shadow:-10px 0 40px -10px #0e2a3033;z-index:60;display:flex;flex-direction:column;animation:al-slide-in .25s ease-out}@keyframes al-slide-in{0%{transform:translate(100%)}to{transform:none}}.al-drawer-head{padding:16px 20px;border-bottom:1px solid var(--al-edge);display:flex;align-items:center;gap:12px}.al-drawer-head .close{width:30px;height:30px;border:0;background:var(--al-paper);border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--al-ink)}.al-drawer-head .close:hover{background:var(--al-edge)}.al-drawer-head .close svg{width:14px;height:14px}.al-drawer-eyebrow{font-size:11px;color:var(--al-teal-700);font-weight:800;text-transform:uppercase;letter-spacing:.06em;display:inline-flex;align-items:center;gap:5px;margin-bottom:4px}.al-drawer-eyebrow svg{width:12px;height:12px}.al-drawer-title{font-size:15px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.al-drawer-body{flex:1;overflow-y:auto;padding:20px}.al-drawer-foot{padding:14px 20px;border-top:1px solid var(--al-edge);display:flex;gap:8px;align-items:center;background:#fff}.al-timeline{position:relative;padding-left:20px;margin:16px 0 6px}.al-timeline:before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--al-edge);border-radius:2px}.al-step{position:relative;padding:6px 0 10px;display:flex;gap:12px}.al-step:before{content:"";position:absolute;left:-17px;top:11px;width:11px;height:11px;border-radius:99px;background:#fff;border:2px solid var(--al-edge)}.al-step.done:before{background:var(--al-published);border-color:var(--al-published)}.al-step.active:before{background:var(--al-teal-500);border-color:var(--al-teal-500);box-shadow:0 0 0 4px var(--al-teal-100);animation:al-pulse-ring 1.6s ease-in-out infinite}.al-step.failed:before{background:var(--al-failed);border-color:var(--al-failed)}@keyframes al-pulse-ring{0%,to{box-shadow:0 0 0 4px var(--al-teal-100)}50%{box-shadow:0 0 0 8px transparent}}.al-step-body{flex:1}.al-step-name{font-size:13px;font-weight:700}.al-step-meta{font-size:12px;color:var(--al-mute);margin-top:2px}.al-step.active .al-step-name{color:var(--al-teal-700)}.al-step.failed .al-step-name{color:var(--al-failed)}.al-step-bar{margin-top:6px;height:4px;background:var(--al-paper);border-radius:99px;overflow:hidden;max-width:280px}.al-step-bar>div{height:100%;background:linear-gradient(90deg,var(--al-teal-500),var(--al-teal-300));border-radius:99px;transition:width .4s}.al-wslist{display:flex;flex-direction:column;gap:8px;margin-top:12px}.al-wslist-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--al-edge);border-radius:9px;background:#fff}.al-wslist-row.failed{border-color:#cf3d294d;background:#fff7f6}.al-wslist-num{width:28px;height:28px;border-radius:7px;background:var(--al-teal-50);color:var(--al-teal-700);font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.al-wslist-row.failed .al-wslist-num{background:#cf3d291a;color:var(--al-failed)}.al-wslist-name{font-size:13px;font-weight:700}.al-wslist-meta{font-size:11px;color:var(--al-mute);font-weight:600}.al-preview-card{border:1px solid var(--al-edge);border-radius:12px;overflow:hidden;background:#fff}.al-preview-card-head{padding:12px 14px;border-bottom:1px solid var(--al-edge);display:flex;align-items:center;gap:10px;font-size:12px;color:var(--al-ink-soft);font-weight:600}.al-preview-card-head .pill{background:var(--al-teal-50);color:var(--al-teal-700);padding:2px 8px;border-radius:99px;font-size:11px;font-weight:700}.al-preview-body{padding:16px;display:flex;flex-direction:column;gap:14px}.al-q{font-size:13px;line-height:1.5}.al-q-num{display:inline-block;background:var(--al-ink);color:#fff;padding:1px 7px;border-radius:5px;font-size:11px;font-weight:800;margin-right:7px}.al-q-stem{font-weight:700;color:var(--al-ink)}.al-q-options{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-left:4px}.al-q-option{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--al-ink-soft)}.al-q-option .letter{width:20px;height:20px;border-radius:5px;background:var(--al-paper);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.al-q-option.correct .letter{background:var(--al-published);color:#fff}.al-q-option.correct{color:var(--al-ink);font-weight:700}.al-section-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:var(--al-mute);margin:18px 0 8px}.al-attrs{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;padding:12px;background:var(--al-paper);border-radius:10px;margin-top:6px}.al-attr-label{font-size:11px;color:var(--al-mute);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.al-attr-value{font-size:13px;font-weight:700;color:var(--al-ink);margin-top:2px;display:flex;align-items:center;gap:6px}.al-attr-value svg{width:13px;height:13px}.al-baking-readonly{padding:12px 14px;background:linear-gradient(135deg,#fff7e6,#fff0d2);border:1px solid rgba(243,153,31,.3);border-radius:10px;font-size:13px;color:var(--al-ink);font-style:italic;position:relative}.al-baking-readonly:before{content:'"';position:absolute;left:8px;top:-10px;font-size:38px;color:#f3991f80;font-family:Georgia,serif;line-height:1}.al-baking-readonly span{display:block;padding-left:12px}.al-publish-toggle{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--al-edge);border-radius:10px}.al-publish-toggle-body{flex:1}.al-publish-toggle-title{font-size:13px;font-weight:700}.al-publish-toggle-meta{font-size:11px;color:var(--al-mute);margin-top:2px}.al-switch{width:38px;height:22px;border-radius:99px;background:var(--al-edge);cursor:pointer;position:relative;transition:background .2s;border:0;flex-shrink:0}.al-switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:99px;box-shadow:0 1px 2px #0003;transition:left .2s}.al-switch.on{background:var(--al-published)}.al-switch.on:after{left:18px}.al-modal-backdrop{position:fixed;inset:0;background:#0e2a3073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:70}.al-modal{background:#fff;border-radius:18px;width:min(820px,94vw);max-height:92vh;display:flex;flex-direction:column;box-shadow:0 24px 80px -16px #0e2a3080;overflow:hidden;animation:al-pop-in .22s cubic-bezier(.2,1,.4,1)}@keyframes al-pop-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:none}}.al-modal-head{padding:18px 22px;border-bottom:1px solid var(--al-edge);display:flex;align-items:center;gap:14px}.al-modal-head h2{font-size:17px;font-weight:800;margin:0}.al-modal-head .sub{font-size:12px;color:var(--al-mute);margin-top:2px}.al-modal-close{margin-left:auto;width:32px;height:32px;border-radius:8px;background:var(--al-paper);border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--al-ink);flex-shrink:0}.al-modal-close:hover{background:var(--al-edge)}.al-modal-close svg{width:14px;height:14px}.al-modal-stepper{display:flex;align-items:center;gap:6px;padding:12px 22px;border-bottom:1px solid var(--al-edge);background:var(--al-paper)}.al-step-chip{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--al-mute);font-weight:700}.al-step-chip .num{width:22px;height:22px;border-radius:99px;background:#fff;border:1.5px solid var(--al-edge);color:var(--al-mute);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.al-step-chip.on{color:var(--al-teal-700)}.al-step-chip.on .num{background:var(--al-teal-500);color:#fff;border-color:var(--al-teal-500)}.al-step-chip.done .num{background:var(--al-published);color:#fff;border-color:var(--al-published)}.al-step-chip .ln{width:28px;height:2px;background:var(--al-edge);border-radius:2px}.al-modal-body{padding:22px;overflow-y:auto;flex:1}.al-modal-foot{padding:14px 22px;border-top:1px solid var(--al-edge);display:flex;align-items:center;gap:10px;background:var(--al-paper)}.al-modal-foot .left{margin-right:auto;color:var(--al-mute);font-size:12px;display:flex;align-items:center;gap:6px}.al-modal-foot .left svg{width:13px;height:13px}.al-source-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.al-source-card{position:relative;background:#fff;border:1.5px solid var(--al-edge);border-radius:12px;padding:16px 14px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:10px;font-family:inherit;transition:all .15s ease}.al-source-card:hover{border-color:var(--al-teal-400);background:var(--al-teal-50);transform:translateY(-2px)}.al-source-card.on{border-color:var(--al-teal-500);background:var(--al-teal-50);box-shadow:0 0 0 3px var(--al-teal-100)}.al-source-ico{width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#fff}.al-source-ico svg{width:22px;height:22px}.al-source-ico.video{background:linear-gradient(135deg,#5358d6,#7c7ff0)}.al-source-ico.pdf{background:linear-gradient(135deg,#cf3d29,#f37063)}.al-source-ico.image{background:linear-gradient(135deg,#f3991f,#ffb347)}.al-source-ico.live{background:linear-gradient(135deg,#0e2a30,#44606a);position:relative}.al-source-ico.live:after{content:"";position:absolute;top:7px;right:7px;width:7px;height:7px;background:var(--al-live);border-radius:99px;animation:al-glow 1.6s ease-in-out infinite}.al-source-name{font-size:14px;font-weight:800}.al-source-desc{font-size:12px;color:var(--al-ink-soft);line-height:1.4}.al-drop{border:2px dashed var(--al-edge);border-radius:14px;padding:32px;text-align:center;background:var(--al-paper);display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer;transition:all .2s}.al-drop:hover{background:var(--al-teal-50);border-color:var(--al-teal-400)}.al-drop-ico{width:56px;height:56px;border-radius:14px;background:#fff;border:1px solid var(--al-edge);display:flex;align-items:center;justify-content:center;color:var(--al-teal-600)}.al-drop-ico svg{width:26px;height:26px}.al-drop h4{font-size:15px;font-weight:800;margin:0}.al-drop p{font-size:12px;color:var(--al-ink-soft);margin:0}.al-drop .browse{color:var(--al-teal-700);font-weight:700;cursor:pointer}.al-file{display:flex;align-items:center;gap:14px;padding:12px 14px;background:var(--al-paper);border:1px solid var(--al-edge);border-radius:12px}.al-file-ico{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.al-file-body{flex:1;min-width:0}.al-file-name{font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.al-file-meta{font-size:12px;color:var(--al-mute);margin-top:3px;display:flex;gap:8px;align-items:center}.al-formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.al-field{display:flex;flex-direction:column;gap:6px}.al-field-label{font-size:12px;font-weight:800;color:var(--al-ink);display:flex;align-items:center;gap:6px}.al-field-label svg{width:13px;height:13px;color:var(--al-mute)}.al-field-hint{font-size:11px;color:var(--al-mute);font-weight:500}.al-input{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;background:#fff;border:1px solid var(--al-edge);border-radius:9px}.al-input:focus-within{border-color:var(--al-teal-400);box-shadow:0 0 0 3px var(--al-teal-50)}.al-input input,.al-input select{border:0;outline:0;background:0;flex:1;font-family:inherit;font-size:14px;color:var(--al-ink)}.al-input svg{width:14px;height:14px;color:var(--al-mute)}.al-stepper-num{display:flex;align-items:center;height:40px;padding:2px;background:#fff;border:1px solid var(--al-edge);border-radius:9px}.al-stepper-num button{width:34px;height:100%;border:0;background:var(--al-paper);border-radius:7px;cursor:pointer;font-weight:800;font-size:16px;color:var(--al-ink)}.al-stepper-num button:hover{background:var(--al-teal-50);color:var(--al-teal-700)}.al-stepper-num .val{flex:1;text-align:center;font-weight:800;font-size:15px}.al-bake{position:relative;background:radial-gradient(circle at 0% 100%,rgba(243,153,31,.18),transparent 55%),radial-gradient(circle at 100% 0%,rgba(14,165,183,.18),transparent 55%),#fff;border:1.5px solid var(--al-edge);border-radius:16px;padding:18px 20px 16px;margin-top:4px}.al-bake-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.al-bake-ico{width:36px;height:36px;border-radius:9px;background:linear-gradient(135deg,var(--al-teal-500),var(--al-teal-300));color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px -4px #0ea5b799;flex-shrink:0}.al-bake-ico svg{width:18px;height:18px}.al-bake-title{font-size:14px;font-weight:800;letter-spacing:-.005em}.al-bake-sub{font-size:12px;color:var(--al-ink-soft);margin-top:2px}.al-bake-tag{margin-left:auto;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:99px;background:#f3991f;color:#fff;font-size:11px;font-weight:800;white-space:nowrap}.al-bake-tag svg{width:11px;height:11px}.al-bake textarea{width:100%;min-height:110px;padding:12px 14px;font-family:inherit;font-size:14px;line-height:1.55;color:var(--al-ink);background:#ffffffd9;border:1px solid var(--al-edge);border-radius:10px;resize:vertical;outline:0}.al-bake textarea:focus{border-color:var(--al-teal-400);box-shadow:0 0 0 3px var(--al-teal-50)}.al-bake-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.al-bake-chip{background:#ffffffb3;border:1px solid var(--al-edge);color:var(--al-ink-soft);border-radius:99px;padding:4px 10px;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit}.al-bake-chip:hover{background:#fff;color:var(--al-teal-700);border-color:var(--al-teal-300)}.al-diff{padding:14px 16px;border:1px solid var(--al-edge);border-radius:12px;background:#fff}.al-diff-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.al-diff-head .label{font-size:12px;font-weight:800}.al-diff-head .val{font-size:11px;color:var(--al-mute);font-weight:700}.al-diff-bar{position:relative;height:36px}.al-diff-track{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:8px;border-radius:99px;background:linear-gradient(90deg,#c2ecf1,#8ddbe4,#ffd34d,#ffb347,#f3991f)}.al-diff-dots{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:flex;justify-content:space-between;padding:0 4px}.al-diff-dot{width:12px;height:12px;border-radius:99px;background:#fff;border:2px solid var(--al-edge);cursor:pointer}.al-diff-dot.on{background:var(--al-teal-700);border-color:var(--al-teal-700);transform:scale(1.2)}.al-diff-labels{display:flex;justify-content:space-between;margin-top:4px;font-size:10px;color:var(--al-mute);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.al-live-banner{background:linear-gradient(135deg,#0e2a30,#1b4a57);color:#fff;border-radius:12px;padding:16px 18px;display:flex;align-items:center;gap:14px;margin-bottom:16px}.al-live-banner-ico{width:44px;height:44px;border-radius:10px;background:#cf3d2940;border:1px solid rgba(207,61,41,.5);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.al-live-banner-ico svg{width:20px;height:20px}.al-live-banner-body{flex:1}.al-live-banner-title{font-weight:800;font-size:14px}.al-live-banner-sub{font-size:12px;color:#ffffffb3;margin-top:3px}.al-live-banner .zoom-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:99px;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);font-size:11px;font-weight:700;white-space:nowrap}.al-live-banner .zoom-pill .dot{width:6px;height:6px;background:var(--al-published);border-radius:99px;flex-shrink:0}@keyframes al-spin{to{transform:rotate(360deg)}}@keyframes al-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}@keyframes al-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes al-glow{0%,to{box-shadow:0 0 #cf3d298c}50%{box-shadow:0 0 0 6px #cf3d2900}}.al-list-table{width:100%;border-collapse:collapse;font-size:13px}.al-list-table th{text-align:left;padding:10px 12px;font-weight:800;color:var(--al-mute);font-size:11px;text-transform:uppercase;letter-spacing:.06em;background:var(--al-paper)}.al-list-table td{padding:12px;border-top:1px solid var(--al-edge)}.al-list-table tr{cursor:pointer}.al-list-table tr:hover td{background:var(--al-paper)}.al-heatmap{display:grid;gap:6px;padding:12px 20px 24px}.al-heatmap-grid{display:grid;gap:6px}.al-heatmap-cell{border-radius:8px;padding:10px 6px;text-align:center;font-weight:800;font-size:14px;min-height:48px;display:flex;align-items:center;justify-content:center}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 222.2 47.4% 11.2%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 222.2 84% 4.9%;--radius: .5rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.visible{visibility:visible}.collapse{visibility:collapse}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.shrink{flex-shrink:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rounded{border-radius:.25rem}.border{border-width:1px}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.ordinal{--tw-ordinal: ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.line-through{text-decoration-line:line-through}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.running{animation-play-state:running}.paused{animation-play-state:paused}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC) format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.18.7"}.katex .katex-mathml{border:0;clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .katex-base,.katex .katex-strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .katex-vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .katex-thinbox{display:inline-flex;flex-direction:row;max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .katex-hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.katex-root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .katex-sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .katex-overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .katex-stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .katex-stretchy:after,.katex .katex-stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .katex-sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .reflectbox{display:inline-block;transform:scaleX(-1)}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/fonts/Nunito-VariableFont_wght.ttf) format("truetype-variations"),url(/fonts/Nunito-VariableFont_wght.ttf) format("truetype")}@font-face{font-family:Nunito;font-style:italic;font-weight:200 1000;font-display:swap;src:url(/fonts/Nunito-Italic-VariableFont_wght.ttf) format("truetype-variations"),url(/fonts/Nunito-Italic-VariableFont_wght.ttf) format("truetype")}:root{--brand-purple: #6D5CA8;--brand-orange: #F3991F;--brand-dark: #414042;--brand-green: #20B67D;--brand-cyan: #2CB5E9;--brand-red: #CF3D29;--brand-yellow: #F8D847;--brand-pink: #F27FB2;--brand-blue: #2CB5E9;--brand-violet: #8E6AE6;--brand-teal: #20B67D;--brand-coral: #F27FB2;--brand-grey: #F3F6FB;--primary-50: #F3F0FC;--primary-100: #E2D9F9;--primary-200: #C5B3F3;--primary-300: #A88DED;--primary-400: #8B6FE0;--primary-500: #6D5CA8;--primary-600: #5B4D8E;--primary-700: #4A3E74;--primary-800: #382F5A;--primary-900: #271F40;--accent-50: #FFF7E6;--accent-100: #FFEBB3;--accent-200: #FFDF80;--accent-300: #FFD34D;--accent-400: #FFC726;--accent-500: #F3991F;--accent-600: #D9861A;--accent-700: #BF7315;--accent-800: #A66010;--accent-900: #73420B;--success-50: #E3F7EE;--success-100: #BCEBD4;--success-500: #20B67D;--success-600: #1A9967;--success-700: #147A52;--background: #FFFFFF;--foreground: #414042;--card: #FFFFFF;--card-foreground: #414042;--popover: #FFFFFF;--popover-foreground: #414042;--primary: var(--brand-purple);--primary-foreground: #FFFFFF;--secondary: var(--brand-grey);--secondary-foreground: #414042;--muted: var(--brand-grey);--muted-foreground: #666666;--accent: var(--brand-orange);--accent-foreground: #414042;--success: var(--brand-green);--success-foreground: #FFFFFF;--destructive: #CF3D29;--destructive-foreground:#FAFAFA;--border: #E6E6E6;--input: #E6E6E6;--ring: var(--brand-purple);--radius-sm: .125rem;--radius: .5rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: 1rem;--radius-2xl: 1rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(27, 36, 54, .05);--shadow-sm: 0 1px 2px 0 rgba(27, 36, 54, .06), 0 1px 3px 0 rgba(27, 36, 54, .08);--shadow-md: 0 4px 6px -1px rgba(27, 36, 54, .08), 0 2px 4px -2px rgba(27, 36, 54, .06);--shadow-lg: 0 10px 15px -3px rgba(27, 36, 54, .1), 0 4px 6px -4px rgba(27, 36, 54, .08);--shadow-xl: 0 20px 25px -5px rgba(27, 36, 54, .12), 0 8px 10px -6px rgba(27, 36, 54, .08);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--font-sans: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--font-print: "Nunito", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fw-regular: 400;--fw-semibold: 600;--fw-bold: 700;--fw-extrabold:800;--fs-xs: .75rem;--fs-sm: .875rem;--fs-base: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.25rem;--fs-2xl: 1.5rem;--fs-3xl: 1.875rem;--fs-4xl: 2.25rem;--fs-5xl: 3rem;--fs-6xl: 3.75rem;--lh-tight: 1.15;--lh-snug: 1.3;--lh-normal: 1.5;--lh-relaxed:1.625;--tracking-tight: -.01em;--tracking-normal: 0}html{color-scheme:light}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,.h1{font-family:var(--font-sans);font-weight:var(--fw-bold);font-size:var(--fs-4xl);line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);color:var(--foreground)}@media(min-width:768px){h1,.h1{font-size:var(--fs-5xl)}}@media(min-width:1024px){h1,.h1{font-size:var(--fs-6xl)}}h2,.h2{font-weight:var(--fw-bold);font-size:var(--fs-2xl);line-height:var(--lh-tight);color:var(--foreground)}@media(min-width:768px){h2,.h2{font-size:var(--fs-3xl)}}h3,.h3{font-weight:var(--fw-semibold);font-size:var(--fs-lg);line-height:var(--lh-snug);color:var(--foreground)}h4,.h4{font-weight:var(--fw-semibold);font-size:var(--fs-base);line-height:var(--lh-snug);color:var(--foreground)}p,.p{font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--foreground)}.lead{font-size:var(--fs-lg);line-height:var(--lh-relaxed);color:var(--muted-foreground)}.small,small{font-size:var(--fs-sm);color:var(--muted-foreground)}.micro{font-size:var(--fs-xs);color:var(--muted-foreground)}code,kbd,pre,.mono{font-family:var(--font-mono);font-size:.95em}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}.ws-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.ws-surface-subtle{background:var(--secondary)}body{margin:0;background:var(--brand-grey);font-family:var(--font-sans);color:var(--foreground)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:var(--radius-md);font-family:var(--font-sans);font-weight:600;cursor:pointer;white-space:nowrap;transition:all .18s ease}.btn svg{width:16px;height:16px}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-md{height:38px;padding:0 14px;font-size:13.5px}.btn-lg{height:46px;padding:0 20px;font-size:15px}.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:#5b4d8e;box-shadow:var(--shadow-md)}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:#d9861a}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#1a9967}.btn-outline{background:#fff;color:var(--foreground);border:1px solid var(--border)}.btn-outline:hover{background:var(--brand-grey);border-color:#cfcfcf}.btn-ghost{background:transparent;color:var(--foreground)}.btn-ghost:hover{background:var(--brand-grey)}.btn-danger-ghost{background:transparent;color:#888}.btn-danger-ghost:hover{background:#fcebe8;color:var(--brand-red)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:9999px;font-size:11px;font-weight:700;line-height:1.3;letter-spacing:.01em}.badge svg{width:12px;height:12px}.badge-primary{background:#6d5ca81a;color:#5b4d8e;border:1px solid rgba(109,92,168,.22)}.badge-soft{background:#6d5ca80f;color:#5b4d8e}.badge-success{background:#e3f7ee;color:#147a52;border:1px solid #BCEBD4}.badge-accent{background:#f3991f1f;color:#a66010;border:1px solid rgba(243,153,31,.3)}.badge-cyan{background:#2cb5e91a;color:#1782ac;border:1px solid rgba(44,181,233,.3)}.badge-warn{background:#fef7da;color:#7a5e0a;border:1px solid #F4E59A}.badge-danger{background:#fcebe8;color:#9d2c1d;border:1px solid #F5C6BE}.badge-grey{background:#eef1f6;color:#555;border:1px solid #DEE3EB}.topbar{position:sticky;top:0;z-index:40;background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);box-shadow:var(--shadow-xs)}.topbar-inner{max-width:1280px;margin:0 auto;padding:0 24px;height:60px;display:flex;align-items:center;gap:18px}.topbar-brand{display:flex;align-items:center;gap:10px;cursor:pointer}.topbar-brand img{height:28px}.topbar-brand .brand-text{display:flex;flex-direction:column;line-height:1;gap:2px}.topbar-brand .brand-name{font-weight:800;font-size:14px;letter-spacing:-.01em}.topbar-brand .brand-sub{font-size:10px;color:var(--muted-foreground);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.topbar-nav{display:flex;gap:2px;margin-left:18px;flex:1}.topbar-item{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;border-radius:8px;border:0;background:transparent;color:var(--muted-foreground);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}.topbar-item svg{width:15px;height:15px}.topbar-item:hover{background:var(--brand-grey);color:var(--foreground)}.topbar-item.on{background:#6d5ca81a;color:var(--primary)}.topbar-right{display:flex;align-items:center;gap:8px}.icon-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:8px;cursor:pointer;color:var(--foreground)}.icon-btn svg{width:16px;height:16px}.icon-btn:hover{background:var(--brand-grey)}.demo-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:9999px;background:#6d5ca814;color:#5b4d8e;border:1px solid rgba(109,92,168,.2);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.demo-pill svg{width:12px;height:12px}.page{max-width:1280px;margin:0 auto;padding:28px 24px 60px}.page.compact{padding:18px 24px 60px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px;flex-wrap:wrap}.page-head h1{font-size:30px;font-weight:800;margin:0 0 4px;letter-spacing:-.015em}.page-head p{color:var(--muted-foreground);font-size:14px;margin:0}.page-head .actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.crumbs{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted-foreground);margin-bottom:10px;font-weight:600}.crumbs a{color:var(--muted-foreground);cursor:pointer}.crumbs a:hover{color:var(--primary);text-decoration:underline;text-underline-offset:2px}.crumbs svg{width:13px;height:13px}.card{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm)}.card-pad{padding:22px}.card-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border);gap:12px;flex-wrap:wrap}.card-head h2{font-size:15px;font-weight:800;margin:0;letter-spacing:-.005em}.card-head p{font-size:12px;color:var(--muted-foreground);margin:2px 0 0;font-weight:500}.card-foot{padding:14px 22px;border-top:1px solid var(--border);background:#f3f6fb80;border-radius:0 0 14px 14px;display:flex;gap:10px;align-items:center;justify-content:flex-end}.empty{padding:40px 20px;text-align:center;color:var(--muted-foreground)}.empty svg{width:32px;height:32px;color:#bbb;margin-bottom:10px}.empty h3{font-size:15px;font-weight:700;margin:6px 0 4px;color:var(--foreground)}.empty p{font-size:13px;margin:0 0 14px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:700;color:var(--foreground)}.field .hint{font-size:11px;color:var(--muted-foreground);font-weight:500}.input{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;background:#fff;border:1px solid var(--input);border-radius:8px;transition:border-color .15s,box-shadow .15s}.input:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #6d5ca826}.input svg{width:14px;height:14px;color:var(--muted-foreground)}.input input{flex:1;border:0;outline:none;font-family:inherit;font-size:13.5px;background:transparent;color:var(--foreground);min-width:0}.input input::-moz-placeholder{color:#9aa0aa}.input input::placeholder{color:#9aa0aa}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:560px){.form-grid-2{grid-template-columns:1fr}}.tbl{width:100%;border-collapse:collapse}.tbl th,.tbl td{text-align:left;padding:12px 16px;font-size:13px;border-bottom:1px solid var(--border)}.tbl th{background:#fafbfd;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground);font-weight:700}.tbl tbody tr{transition:background .15s}.tbl tbody tr:hover{background:var(--brand-grey)}.tbl tbody tr:last-child td{border-bottom:0}.tbl .row-link{cursor:pointer}.modal-bg{position:fixed;inset:0;background:#271f4073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fade .18s ease-out;padding:20px}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:18px;width:min(560px,100%);max-height:90vh;overflow:hidden;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;animation:pop .22s ease-out}@keyframes pop{0%{transform:translateY(8px) scale(.98);opacity:0}to{transform:none;opacity:1}}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 24px 14px;gap:16px;border-bottom:1px solid var(--border)}.modal-head h3{font-size:18px;font-weight:800;margin:0;letter-spacing:-.01em}.modal-head p{font-size:12.5px;color:var(--muted-foreground);margin:4px 0 0}.modal-body{padding:20px 24px;overflow:auto;display:flex;flex-direction:column;gap:14px}.modal-foot{padding:14px 22px;border-top:1px solid var(--border);background:#fafbfd;display:flex;gap:10px;align-items:center;justify-content:flex-end}.banner{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border-radius:12px;margin-bottom:18px}.banner-warn{background:#fef7da;border:1px solid #F4E59A;color:#5d4806}.banner-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.banner-warn .banner-icon{background:#f8d847;color:#5d4806}.banner svg{width:18px;height:18px}.banner-body{flex:1}.banner-body h4{font-size:13.5px;font-weight:800;margin:0 0 2px}.banner-body p{font-size:12.5px;margin:0;line-height:1.5}.banner .btn{flex-shrink:0}.avatar{width:40px;height:40px;border-radius:9999px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px;letter-spacing:-.01em}.avatar-sm{width:32px;height:32px;font-size:12px}.avatar-lg{width:64px;height:64px;font-size:22px}.av-purple{background:#e2d9f9;color:#4a3e74}.av-orange{background:#ffebb3;color:#a66010}.av-green{background:#bcebd4;color:#147a52}.av-cyan{background:#c6e9f9;color:#1782ac}.av-pink{background:#fad3e4;color:#9c2f66}.cls-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.cls-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:20px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-sm)}.cls-card:hover{border-color:#6d5ca866;box-shadow:var(--shadow-md);transform:translateY(-2px)}.cls-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.cls-card h3{margin:0;font-size:17px;font-weight:800;letter-spacing:-.01em}.cls-card .cls-id{font-size:11px;color:var(--muted-foreground);font-family:var(--font-mono);margin-top:3px}.cls-card-meta{display:flex;align-items:center;gap:14px;font-size:12px;color:var(--muted-foreground);font-weight:600}.cls-card-meta .stat{display:inline-flex;align-items:center;gap:5px}.cls-card-meta svg{width:14px;height:14px;color:var(--primary)}.cls-faces{display:flex}.cls-faces .avatar{width:26px;height:26px;font-size:10px;border:2px solid #fff;margin-left:-6px}.cls-faces .avatar:first-child{margin-left:0}.cls-faces .more{width:26px;height:26px;border-radius:9999px;background:var(--brand-grey);color:var(--muted-foreground);border:2px solid #fff;margin-left:-6px;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}.std-cell{display:flex;align-items:center;gap:12px}.std-cell .nm{font-weight:700;font-size:13.5px}.std-cell .em{font-size:11.5px;color:var(--muted-foreground)}.subj-mini{display:flex;flex-direction:column;gap:6px;min-width:140px}.subj-mini-row{display:flex;align-items:center;gap:8px;font-size:11.5px}.subj-mini-row .label{color:var(--muted-foreground);width:46px;font-weight:600}.subj-mini-row .bar{flex:1;height:5px;border-radius:9999px;background:#eff1f6;overflow:hidden}.subj-mini-row .bar-fill{height:100%;border-radius:9999px}.subj-mini-row .bar-fill.in-progress{background:linear-gradient(90deg,var(--primary),#8E6AE6)}.subj-mini-row .bar-fill.complete{background:var(--success)}.subj-mini-row .pct{font-weight:700;width:32px;text-align:right}.std-hero{display:flex;align-items:center;gap:18px;padding:22px;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-sm);margin-bottom:18px}.std-hero-body h1{margin:0 0 4px;font-size:26px;font-weight:800;letter-spacing:-.015em}.std-hero-meta{display:flex;align-items:center;gap:14px;color:var(--muted-foreground);font-size:13px;flex-wrap:wrap}.std-hero-meta svg{width:14px;height:14px}.std-hero-meta .dot{width:3px;height:3px;border-radius:9999px;background:#cfd3da}.std-hero-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:18px}.tab{padding:10px 16px;background:transparent;border:0;font-family:inherit;font-size:13.5px;font-weight:700;color:var(--muted-foreground);cursor:pointer;position:relative;border-radius:8px 8px 0 0}.tab:hover{color:var(--foreground)}.tab.on{color:var(--primary)}.tab.on:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:3px;background:var(--primary);border-radius:3px 3px 0 0}.subj-block{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden}.subj-block+.subj-block{margin-top:14px}.subj-block-head{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid var(--border);background:#fff;flex-wrap:wrap}.subj-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.subj-icon.sci{background:#2cb5e91f;color:#1782ac}.subj-icon.math{background:#6d5ca81f;color:#5b4d8e}.subj-icon.fin{background:#20b67d1f;color:#147a52}.subj-icon.eng{background:#f37fb22e;color:#9c2f66}.subj-block-title{flex:1;min-width:200px}.subj-block-title h3{margin:0 0 2px;font-size:17px;font-weight:800;letter-spacing:-.01em}.subj-block-title .meta{font-size:12.5px;color:var(--muted-foreground);font-weight:600}.subj-summary{display:flex;align-items:center;gap:18px;font-size:12px;flex-wrap:wrap}.subj-summary .stat{display:flex;flex-direction:column;align-items:flex-start}.subj-summary .stat .v{font-size:18px;font-weight:800;color:var(--foreground);letter-spacing:-.01em}.subj-summary .stat .l{font-size:10.5px;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.subj-summary .stat.complete .v{color:var(--success)}.subj-summary .stat.active .v{color:var(--primary)}.subj-block-body{padding:22px}.subj-empty{display:flex;align-items:center;gap:14px;padding:18px 22px;background:linear-gradient(135deg,#f3f0fc,#fff7e6);border-top:1px solid var(--border)}.subj-empty .ico{width:42px;height:42px;border-radius:10px;background:#fff;color:var(--primary);display:flex;align-items:center;justify-content:center}.subj-empty .ico svg{width:20px;height:20px}.subj-empty .ttl{font-weight:800;font-size:14px}.subj-empty .sub{font-size:12px;color:var(--muted-foreground)}.path-stations{position:relative;padding:8px 4px 4px}.path-track{position:relative;display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding:6px 4px 16px}.path-chap{flex:1;min-width:120px;display:flex;flex-direction:column;align-items:center;position:relative}.path-chap .conn{position:absolute;top:24px;left:50%;width:100%;height:4px;background:#e6e6e6;border-radius:9999px;z-index:0}.path-chap.done .conn{background:var(--success)}.path-chap.partial .conn{background:linear-gradient(90deg,var(--success) 50%,#E6E6E6 50%)}.path-chap:last-child .conn{display:none}.path-node{position:relative;z-index:1;width:48px;height:48px;border-radius:9999px;display:flex;align-items:center;justify-content:center;background:#fff;border:3px solid #E6E6E6;color:#9aa0aa;font-weight:800;font-size:14px;transition:all .2s ease}.path-node svg{width:20px;height:20px}.path-chap.done .path-node{background:var(--success);border-color:var(--success);color:#fff;box-shadow:0 0 0 6px #20b67d26}.path-chap.active .path-node{background:#fff;border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 6px #6d5ca826;animation:pulseRing 2s ease-in-out infinite}@keyframes pulseRing{0%,to{box-shadow:0 0 0 6px #6d5ca826}50%{box-shadow:0 0 0 10px #6d5ca814}}.path-chap-label{margin-top:10px;font-size:11.5px;font-weight:700;text-align:center;color:var(--muted-foreground);max-width:140px;line-height:1.3}.path-chap.done .path-chap-label,.path-chap.active .path-chap-label{color:var(--foreground)}.path-chap-sub{font-size:10.5px;color:var(--muted-foreground);font-weight:600;margin-top:2px;text-transform:uppercase;letter-spacing:.04em}.path-chap.active .path-chap-sub{color:var(--primary)}.path-chap.done .path-chap-sub{color:var(--success)}.active-chap{margin-top:16px;background:linear-gradient(135deg,#6d5ca80d,#f3991f0d);border:1.5px solid rgba(109,92,168,.2);border-radius:14px;padding:18px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.active-chap .pulse{width:46px;height:46px;border-radius:10px;background:#fff;color:var(--primary);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);flex-shrink:0}.active-chap .pulse svg{width:22px;height:22px}.active-chap-body{flex:1;min-width:200px}.active-chap-body h4{margin:0 0 4px;font-size:14px;font-weight:800}.active-chap-body p{margin:0;font-size:12.5px;color:var(--muted-foreground)}.lvl-pips{display:flex;gap:5px;margin-top:8px}.lvl-pip{width:28px;height:6px;border-radius:9999px;background:#e6e6e6}.lvl-pip.done{background:var(--success)}.lvl-pip.cur{background:var(--primary);box-shadow:0 0 0 3px #6d5ca82e}.path-roadmap{position:relative;padding:30px 12px 20px;min-height:200px}.path-roadmap svg.road{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.road-stops{position:relative;display:grid;grid-template-columns:repeat(var(--n,5),1fr);align-items:center;gap:0}.road-stop{display:flex;flex-direction:column;align-items:center;text-align:center}.road-stop .node{width:52px;height:52px;border-radius:9999px;background:#fff;border:3px solid #E6E6E6;display:flex;align-items:center;justify-content:center;color:#9aa0aa;position:relative;z-index:2;transition:all .2s}.road-stop .node svg{width:22px;height:22px}.road-stop.done .node{background:var(--success);border-color:var(--success);color:#fff;box-shadow:0 4px 12px #20b67d4d}.road-stop.active .node{background:#fff;border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 6px #6d5ca82e}.road-stop.active .node:after{content:"";position:absolute;inset:-3px;border-radius:9999px;border:3px solid var(--primary);animation:pulseR 2s ease-in-out infinite}@keyframes pulseR{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.18);opacity:0}}.road-stop .lbl{margin-top:8px;font-size:11.5px;font-weight:700;color:var(--muted-foreground);max-width:140px;line-height:1.3}.road-stop.done .lbl,.road-stop.active .lbl{color:var(--foreground)}.road-stop .sub{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);margin-top:2px}.road-stop.done .sub{color:var(--success)}.road-stop.active .sub{color:var(--primary)}.road-flag{position:absolute;top:0;font-size:20px}.path-bars{display:flex;align-items:flex-end;gap:14px;padding:20px 6px 6px;height:200px}.path-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:60px}.path-bar-bar{width:100%;border-radius:8px 8px 4px 4px;background:#eff1f6;position:relative;display:flex;flex-direction:column-reverse;overflow:hidden}.path-bar-bar .seg{width:100%;background:var(--success);border-bottom:2px solid #fff;min-height:4px}.path-bar-bar .seg.cur{background:var(--primary)}.path-bar-bar .seg.todo{background:transparent}.path-bar-lbl{font-size:11px;font-weight:700;text-align:center;color:var(--muted-foreground);line-height:1.25}.path-bar-bar.is-done{box-shadow:inset 0 0 0 2px var(--success)}.path-bar-bar.is-active{box-shadow:inset 0 0 0 2px var(--primary)}.sess-tbl td{vertical-align:middle}.sess-id{font-family:var(--font-mono);font-size:11.5px;color:var(--muted-foreground)}.score-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:9999px;font-weight:800;font-size:12px}.score-pill.high{background:#e3f7ee;color:#147a52}.score-pill.mid{background:#f3991f1f;color:#a66010}.score-pill.low{background:#fcebe8;color:#9d2c1d}.score-pill.pending{background:#eef1f6;color:#666}.cat-subj{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden}.cat-subj+.cat-subj{margin-top:14px}.cat-subj-head{display:flex;align-items:center;gap:14px;padding:16px 22px;border-bottom:1px solid var(--border)}.cat-subj-head .name{font-size:16px;font-weight:800}.cat-subj-head .meta{font-size:12px;color:var(--muted-foreground)}.cat-subj-head .actions{margin-left:auto;display:flex;gap:6px}.cat-chap{padding:16px 22px;border-bottom:1px solid var(--border)}.cat-chap:last-child{border-bottom:0}.cat-chap-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.cat-chap-head .seq{width:24px;height:24px;border-radius:6px;background:#6d5ca81a;color:var(--primary);font-weight:800;font-size:11px;display:flex;align-items:center;justify-content:center}.cat-chap-head .nm{font-weight:800;font-size:14px}.cat-chap-head .actions{margin-left:auto;display:flex;gap:6px}.cat-levels{display:flex;flex-direction:column;gap:8px;padding-left:34px}.cat-level{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#fafbfd;border:1px solid var(--border);border-radius:10px;font-size:12.5px}.cat-level .lvl{width:26px;height:26px;border-radius:9999px;background:var(--primary);color:#fff;font-weight:800;font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.cat-level .uuid{font-family:var(--font-mono);font-size:11px;color:var(--muted-foreground)}.cat-level .vid{margin-left:auto;display:inline-flex;align-items:center;gap:4px;color:var(--brand-cyan);font-weight:600;font-size:11.5px}.cat-level .vid svg{width:12px;height:12px}.row{display:flex;align-items:center;gap:8px}.spacer{flex:1}.muted{color:var(--muted-foreground)}.mono{font-family:var(--font-mono);font-size:.92em}.kbd{font-family:var(--font-mono);font-size:11px;padding:1px 6px;border:1px solid var(--border);border-radius:4px;background:#fafbfd;color:var(--muted-foreground)}body.density-compact .card-pad{padding:16px}body.density-compact .subj-block-body{padding:14px 18px}body.density-compact .std-hero{padding:16px}body.density-compact .page{padding:18px 24px 50px}.dec{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:9999px;font-weight:700;font-size:11.5px}.dec svg{width:12px;height:12px}.dec.advance{background:#e3f7ee;color:#147a52;border:1px solid #BCEBD4}.dec.repeat{background:#f3991f1f;color:#a66010;border:1px solid rgba(243,153,31,.3)}.dec.remedial{background:#2cb5e91f;color:#1782ac;border:1px solid rgba(44,181,233,.3)}.confetti{position:absolute;pointer-events:none;inset:0;overflow:hidden;border-radius:14px}.confetti i{position:absolute;width:8px;height:14px;border-radius:2px;animation:fall 2.4s linear forwards}@keyframes fall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(280px) rotate(540deg);opacity:0}}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.run-stepper{display:flex;gap:0;padding:0 24px 14px;border-bottom:1px solid var(--border)}.run-step{display:flex;align-items:center;gap:8px;flex:1;font-size:11.5px;color:var(--muted-foreground);font-weight:700;position:relative}.run-step:not(:last-child):after{content:"";flex:1;height:2px;background:var(--border);margin:0 8px;border-radius:9999px}.run-step.done:not(:last-child):after{background:var(--success)}.run-step.on:not(:last-child):after{background:linear-gradient(90deg,var(--primary),var(--border))}.run-step-dot{width:24px;height:24px;border-radius:9999px;background:var(--border);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0}.run-step-dot svg{width:13px;height:13px}.run-step.on{color:var(--primary)}.run-step.on .run-step-dot{background:var(--primary);box-shadow:0 0 0 4px #6d5ca826}.run-step.done{color:var(--success)}.run-step.done .run-step-dot{background:var(--success)}.run-pick{display:flex;flex-direction:column;gap:10px}.run-context{display:flex;align-items:center;gap:12px;padding:14px;background:linear-gradient(135deg,#f3f0fc,#fff7e6);border:1px solid rgba(109,92,168,.2);border-radius:12px}.run-context .ico{width:42px;height:42px;border-radius:10px;background:#fff;color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.run-context .ico svg{width:20px;height:20px}.run-context .ttl{font-weight:800;font-size:14px}.run-context .sub{font-size:12px;color:var(--muted-foreground);margin-top:2px}.run-ws-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer;transition:all .15s}.run-ws-card:hover{border-color:#6d5ca866;background:#6d5ca808}.run-ws-card.picked{border-color:var(--primary);background:#6d5ca80f;box-shadow:0 0 0 3px #6d5ca81f}.run-ws-card .lvl{width:30px;height:30px;border-radius:9999px;background:var(--primary);color:#fff;font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.run-ws-card .uuid{font-family:var(--font-mono);font-size:11.5px;color:var(--muted-foreground)}.run-ws-card .nm{font-weight:700;font-size:13px}.run-ws-card .check{margin-left:auto;width:20px;height:20px;border-radius:9999px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;color:transparent;flex-shrink:0}.run-ws-card.picked .check{background:var(--primary);border-color:var(--primary);color:#fff}.run-video{position:relative;border-radius:12px;overflow:hidden;background:linear-gradient(135deg,#271f40,#4a3e74);aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;color:#fff}.run-video:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(243,153,31,.25),transparent 50%),radial-gradient(circle at 70% 70%,rgba(44,181,233,.25),transparent 50%)}.run-video .play-btn{position:relative;width:72px;height:72px;border-radius:9999px;background:#fffffff2;color:var(--primary);display:flex;align-items:center;justify-content:center;cursor:pointer;border:0;box-shadow:0 8px 30px #0006;transition:transform .2s}.run-video .play-btn:hover{transform:scale(1.06)}.run-video .play-btn svg{width:30px;height:30px;margin-left:3px}.run-video .meta{position:absolute;bottom:14px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600}.run-video .meta .badge{background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:4px 10px;border-radius:9999px}.run-test{text-align:center;padding:24px 12px}.run-test .icon-big{width:64px;height:64px;border-radius:16px;background:linear-gradient(135deg,var(--primary),#8E6AE6);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;box-shadow:0 8px 24px #6d5ca84d}.run-test .icon-big svg{width:32px;height:32px}.run-test h4{font-size:18px;font-weight:800;margin:0 0 6px;letter-spacing:-.01em}.run-test p{font-size:13px;color:var(--muted-foreground);margin:0 0 16px;line-height:1.5}.run-test .ws-link{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:#fafbfd;border:1px solid var(--border);border-radius:10px;font-family:var(--font-mono);font-size:12px;color:var(--muted-foreground);margin-bottom:8px}.run-pending{text-align:center;padding:24px 12px}.run-pending .clock{width:64px;height:64px;border-radius:16px;background:#f3991f26;color:#a66010;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}.run-pending .clock svg{width:32px;height:32px}.run-pending h4{font-size:18px;font-weight:800;margin:0 0 6px}.run-pending p{font-size:13px;color:var(--muted-foreground);margin:0 0 14px}.run-result{padding:6px 0}.run-result-head{display:flex;align-items:center;gap:14px;padding:18px;border-radius:14px;margin-bottom:14px}.run-result-head.advance{background:linear-gradient(135deg,#20b67d1f,#f8d84726);border:1px solid rgba(32,182,125,.3)}.run-result-head.repeat{background:linear-gradient(135deg,#f3991f1a,#f8d84726);border:1px solid rgba(243,153,31,.3)}.run-result-head.remedial{background:linear-gradient(135deg,#2cb5e91a,#6d5ca814);border:1px solid rgba(44,181,233,.3)}.run-result-head .ico{width:54px;height:54px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-sm)}.run-result-head .ico svg{width:28px;height:28px}.run-result-head.advance .ico{color:var(--success)}.run-result-head.repeat .ico{color:#a66010}.run-result-head.remedial .ico{color:#1782ac}.run-result-head h4{font-size:16px;font-weight:800;margin:0 0 2px}.run-result-head p{font-size:12.5px;color:var(--foreground);margin:0;opacity:.85}.run-result-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:6px}.run-result-stats .s{padding:12px;background:#fafbfd;border:1px solid var(--border);border-radius:10px;text-align:center}.run-result-stats .s .v{font-size:20px;font-weight:800;color:var(--foreground)}.run-result-stats .s .l{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);font-weight:700;margin-top:2px}.run-next-hint{margin-top:12px;padding:12px 14px;background:#6d5ca80d;border:1px dashed rgba(109,92,168,.3);border-radius:10px;font-size:12.5px;color:var(--foreground);display:flex;align-items:center;gap:10px}.run-next-hint svg{width:16px;height:16px;color:var(--primary);flex-shrink:0}.sp-shell{max-width:1280px;margin:0 auto;padding:20px 24px 60px}.sp-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap}.sp-top h1{font-size:22px;font-weight:800;margin:0;letter-spacing:-.01em}.sp-top .meta{font-size:12.5px;color:var(--muted-foreground);margin-top:2px}.sp-grid{display:grid;grid-template-columns:1fr 360px;gap:18px}@media(max-width:980px){.sp-grid{grid-template-columns:1fr}}.sp-player{background:#000;border-radius:14px;overflow:hidden;aspect-ratio:16/9;position:relative;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow-lg)}.sp-player:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(243,153,31,.25),transparent 50%),radial-gradient(circle at 70% 70%,rgba(44,181,233,.25),transparent 50%)}.sp-player .play{position:relative;z-index:2;width:84px;height:84px;border-radius:9999px;background:#fffffff2;color:var(--primary);display:flex;align-items:center;justify-content:center;cursor:pointer;border:0;box-shadow:0 8px 30px #0006;transition:transform .2s}.sp-player .play:hover{transform:scale(1.06)}.sp-player .play svg{width:34px;height:34px;margin-left:4px}.sp-player .ttl{position:absolute;top:18px;left:20px;right:20px;font-size:13.5px;font-weight:700;display:flex;justify-content:space-between;z-index:2}.sp-progress-bar{position:absolute;left:0;right:0;bottom:0;height:4px;background:#ffffff2e;z-index:2}.sp-progress-bar .fill{height:100%;background:var(--accent);transition:width .3s linear}.sp-controls{position:absolute;left:0;right:0;bottom:14px;display:flex;align-items:center;gap:10px;padding:0 18px;color:#fff;font-size:12px;font-weight:600;z-index:2}.sp-controls .ctl{width:34px;height:34px;border-radius:9999px;background:#ffffff26;border:0;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.sp-controls .ctl:hover{background:#ffffff40}.sp-controls .ctl svg{width:16px;height:16px}.sp-controls .time{margin-left:auto;opacity:.85}.sp-player.done{background:linear-gradient(135deg,#147a52,#20b67d)}.sp-player.done .check{width:84px;height:84px;border-radius:9999px;background:#fffffff2;color:var(--success);display:flex;align-items:center;justify-content:center;z-index:2}.sp-player.done .check svg{width:42px;height:42px}.sp-below{margin-top:18px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);padding:18px 22px}.sp-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin:-6px -22px 14px;padding:0 22px}.sp-tab{padding:10px 14px;background:transparent;border:0;font-family:inherit;font-size:13px;font-weight:700;color:var(--muted-foreground);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px}.sp-tab.on{color:var(--primary);border-bottom-color:var(--primary)}.sp-tab:hover{color:var(--foreground)}.sp-cta{position:sticky;bottom:14px;margin-top:18px;display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:14px;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-md)}.sp-cta.unlocked{background:linear-gradient(135deg,#20b67d14,#f8d8471f);border-color:#20b67d66}.sp-cta.locked{background:#fafbfd}.sp-cta .icon{width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sp-cta.unlocked .icon{background:var(--success);color:#fff}.sp-cta.locked .icon{background:#eef1f6;color:#888}.sp-cta .icon svg{width:22px;height:22px}.sp-cta .body{flex:1}.sp-cta .body h4{margin:0 0 2px;font-size:14.5px;font-weight:800}.sp-cta .body p{margin:0;font-size:12.5px;color:var(--muted-foreground)}.sp-side{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden;align-self:start;position:sticky;top:78px}.sp-side-head{padding:16px 18px;border-bottom:1px solid var(--border)}.sp-side-head .ttl{font-size:14px;font-weight:800}.sp-side-head .sub{font-size:12px;color:var(--muted-foreground);margin-top:2px}.sp-side-progress{padding:14px 18px;border-bottom:1px solid var(--border);background:#fafbfd}.sp-side-progress .row{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted-foreground);font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.sp-side-progress .bar{height:8px;background:#eff1f6;border-radius:9999px;overflow:hidden}.sp-side-progress .bar .fill{height:100%;background:linear-gradient(90deg,var(--success),var(--primary));border-radius:9999px}.sp-levels{padding:8px 0;max-height:420px;overflow:auto}.sp-lvl{display:flex;align-items:center;gap:12px;padding:10px 18px;border-left:3px solid transparent;cursor:default}.sp-lvl.done{color:var(--foreground)}.sp-lvl.todo{color:#9aa0aa}.sp-lvl.cur{background:#6d5ca80f;border-left-color:var(--primary)}.sp-lvl .dot{width:28px;height:28px;border-radius:9999px;background:#fff;border:2px solid #E6E6E6;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#9aa0aa;flex-shrink:0}.sp-lvl.done .dot{background:var(--success);border-color:var(--success);color:#fff}.sp-lvl.cur .dot{background:#fff;border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 4px #6d5ca826}.sp-lvl .dot svg{width:13px;height:13px}.sp-lvl .nm{font-size:13px;font-weight:700;flex:1}.sp-lvl .sub{font-size:11px;color:var(--muted-foreground);font-weight:600}.sp-lvl.cur .sub{color:var(--primary)}.sp-chap-head{padding:10px 18px 4px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);display:flex;justify-content:space-between;align-items:center}.sp-chap-head.done{color:var(--success)}.sp-decision{margin-top:18px}.role-toggle{display:inline-flex;background:var(--brand-grey);border-radius:9999px;padding:3px;gap:0;border:1px solid var(--border)}.role-toggle button{height:30px;padding:0 14px;border:0;background:transparent;font-family:inherit;font-weight:700;font-size:12px;color:var(--muted-foreground);border-radius:9999px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.role-toggle button svg{width:13px;height:13px}.role-toggle button.on{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.lms-greet{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:22px;flex-wrap:wrap}.lms-greet h1{font-size:30px;font-weight:800;margin:0 0 4px;letter-spacing:-.015em}.lms-greet p{color:var(--muted-foreground);font-size:14px;margin:0}.lms-greet .actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ai-banner{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:14px;background:linear-gradient(135deg,#6d5ca814,#f3991f14);border:1px solid rgba(109,92,168,.2);margin-bottom:18px}.ai-banner .ai-ico{width:42px;height:42px;border-radius:11px;background:linear-gradient(135deg,#6d5ca8,#8e6ae6);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-sm)}.ai-banner .ai-ico svg{width:20px;height:20px}.ai-banner h4{margin:0 0 2px;font-size:14px;font-weight:800}.ai-banner p{margin:0;font-size:12.5px;color:var(--muted-foreground)}.sch-shell{display:grid;grid-template-columns:1fr 320px;gap:18px;align-items:start}@media(max-width:960px){.sch-shell{grid-template-columns:1fr}}.day-group{margin-bottom:24px}.day-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.day-head .ddate{display:flex;flex-direction:column;align-items:center;justify-content:center;width:54px;height:54px;border-radius:12px;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-xs);flex-shrink:0}.day-head .ddate .d{font-size:20px;font-weight:800;line-height:1;letter-spacing:-.01em}.day-head .ddate .m{font-size:10.5px;font-weight:700;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}.day-head.today .ddate{background:var(--primary);color:#fff;border-color:var(--primary)}.day-head.today .ddate .m{color:#ffffffd9}.day-head h3{margin:0;font-size:16px;font-weight:800;letter-spacing:-.005em}.day-head p{margin:0;font-size:12px;color:var(--muted-foreground)}.day-head .today-badge{margin-left:auto}.sch-classes{display:flex;flex-direction:column;gap:10px;padding-left:66px;position:relative}.sch-classes:before{content:"";position:absolute;left:31px;top:-8px;bottom:-8px;width:2px;background:var(--border)}.sch-class{display:grid;grid-template-columns:90px 1fr auto;gap:14px;align-items:center;padding:14px 16px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-xs);position:relative;cursor:pointer;transition:all .18s}.sch-class:hover{border-color:#6d5ca859;box-shadow:var(--shadow-sm)}.sch-class.live{background:linear-gradient(135deg,#fff,#cf3d290a);border-color:#cf3d29}.sch-class.live:after{content:"";position:absolute;left:-39px;top:50%;transform:translateY(-50%);width:14px;height:14px;border-radius:9999px;background:#cf3d29;border:3px solid #fff;box-shadow:0 0 0 4px #cf3d2933;animation:pulseLive 1.6s ease-in-out infinite}@keyframes pulseLive{0%,to{box-shadow:0 0 0 4px #cf3d292e}50%{box-shadow:0 0 0 8px #cf3d2914}}.sch-class.completed{opacity:.78}.sch-class.completed:after{content:"";position:absolute;left:-37px;top:50%;transform:translateY(-50%);width:10px;height:10px;border-radius:9999px;background:var(--success);border:3px solid #fff}.sch-class.scheduled:after{content:"";position:absolute;left:-36px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:9999px;background:#fff;border:2px solid var(--border)}.sch-class.ai:after{content:"";position:absolute;left:-37px;top:50%;transform:translateY(-50%);width:10px;height:10px;border-radius:9999px;background:var(--accent);border:3px solid #fff}.sch-class .time{display:flex;flex-direction:column;font-weight:800;font-size:14px;letter-spacing:-.01em}.sch-class .time .dur{font-size:11px;color:var(--muted-foreground);font-weight:600;letter-spacing:0;margin-top:2px}.sch-class .body h4{margin:0 0 3px;font-size:14.5px;font-weight:800}.sch-class .body .sub{font-size:12px;color:var(--muted-foreground);display:flex;gap:10px;flex-wrap:wrap}.sch-class .body .sub span{display:inline-flex;align-items:center;gap:4px}.sch-class .body .sub svg{width:12px;height:12px}.sch-class .actions{display:flex;align-items:center;gap:8px}.course-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:9999px;font-size:11px;font-weight:700;letter-spacing:.01em}.course-chip .dot{width:8px;height:8px;border-radius:9999px;background:currentColor}.live-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:9999px;background:#cf3d29;color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.live-badge .dot{width:6px;height:6px;border-radius:9999px;background:#fff;animation:blink 1s ease-in-out infinite}@keyframes blink{50%{opacity:.35}}.ai-rail{display:flex;flex-direction:column;gap:10px}.ai-rail-head{display:flex;align-items:center;gap:8px;padding:0 4px;margin-bottom:2px}.ai-rail-head .ico{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#6d5ca8,#8e6ae6);color:#fff;display:flex;align-items:center;justify-content:center}.ai-rail-head .ico svg{width:15px;height:15px}.ai-rail-head h3{margin:0;font-size:14px;font-weight:800}.ai-rail-head p{margin:0;font-size:11.5px;color:var(--muted-foreground)}.ai-card{padding:14px;background:#fff;border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-xs);transition:all .15s}.ai-card:hover{border-color:#6d5ca84d;box-shadow:var(--shadow-sm)}.ai-card .row{display:flex;align-items:flex-start;gap:10px}.ai-card .row svg{width:15px;height:15px;color:var(--primary);margin-top:2px;flex-shrink:0}.ai-card .row p{margin:0;font-size:12.5px;color:var(--foreground);line-height:1.45}.ai-card .row .badge{margin-top:0}.ai-card .acts{display:flex;gap:6px;justify-content:flex-end}.ai-chat{padding:12px;background:linear-gradient(135deg,#6d5ca80f,#f3991f0f);border:1px dashed rgba(109,92,168,.4);border-radius:12px}.ai-chat .label{font-size:11px;font-weight:800;color:var(--primary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.ai-chat .input{background:#fff}.live-shell{display:grid;grid-template-columns:1fr 340px;gap:14px;height:calc(100vh - 76px);padding:14px 18px;max-width:1440px;margin:0 auto}@media(max-width:1100px){.live-shell{grid-template-columns:1fr;height:auto}}.live-stage{display:flex;flex-direction:column;gap:12px;min-width:0}.live-top{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-xs)}.live-top h2{margin:0;font-size:15px;font-weight:800}.live-top .meta{font-size:11.5px;color:var(--muted-foreground)}.video-stage{flex:1;min-height:340px;background:#0f0a1a;border-radius:14px;overflow:hidden;position:relative;display:grid;grid-template-rows:1fr;gap:6px;padding:8px}.video-stage.gallery{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-template-rows:auto}.video-tile{position:relative;background:linear-gradient(135deg,#271f40,#4a3e74);border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;min-height:140px;color:#fff}.video-tile.teacher{aspect-ratio:auto;min-height:240px;background:linear-gradient(135deg,#6d5ca8,#2a1f4e)}.video-tile .vt-name{position:absolute;left:10px;bottom:10px;background:#0000008c;padding:3px 9px;border-radius:9999px;font-size:11px;font-weight:700;display:flex;align-items:center;gap:5px}.video-tile .vt-name svg{width:12px;height:12px}.video-tile .vt-state{position:absolute;right:10px;top:10px;display:flex;gap:5px}.video-tile .vt-state .dot{width:24px;height:24px;border-radius:9999px;background:#0000008c;display:flex;align-items:center;justify-content:center;color:#fff}.video-tile .vt-state .dot svg{width:13px;height:13px}.video-tile .vt-state .dot.muted{color:#cf3d29}.video-tile .vt-initials{font-size:32px;font-weight:800;opacity:.8;letter-spacing:-.02em}.video-tile.raise:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 3px var(--accent);border-radius:10px;pointer-events:none}.video-tile .raise-flag{position:absolute;left:10px;top:10px;background:var(--accent);color:#fff;padding:3px 8px;border-radius:9999px;font-size:11px;font-weight:800;display:flex;align-items:center;gap:5px}.video-tile .raise-flag svg{width:12px;height:12px}.live-controls{display:flex;align-items:center;gap:8px;padding:12px 14px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);flex-wrap:wrap}.ctl-btn{height:42px;padding:0 14px;background:var(--brand-grey);border:0;border-radius:10px;font-family:inherit;font-weight:700;font-size:13px;color:var(--foreground);cursor:pointer;display:inline-flex;align-items:center;gap:7px}.ctl-btn svg{width:16px;height:16px}.ctl-btn:hover{background:#e6e6e6}.ctl-btn.on{background:var(--primary);color:#fff}.ctl-btn.muted{background:#cf3d29;color:#fff}.ctl-btn.end{background:#cf3d29;color:#fff;margin-left:auto}.ctl-btn.end:hover{background:#a82d1d}.live-side{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;min-height:0}.live-side-tabs{display:flex;border-bottom:1px solid var(--border)}.live-side-tabs button{flex:1;padding:12px 8px;background:transparent;border:0;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--muted-foreground);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-bottom:2px solid transparent}.live-side-tabs button svg{width:14px;height:14px}.live-side-tabs button.on{color:var(--primary);border-bottom-color:var(--primary)}.live-side-body{flex:1;overflow:auto}.roster{display:flex;flex-direction:column}.roster-head{padding:12px 14px;font-size:12px;color:var(--muted-foreground);background:#fafbfd;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.roster-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px}.roster-row:last-child{border-bottom:0}.roster-row .nm{font-weight:700;flex:1}.roster-row .joined{font-size:11px;color:var(--success);font-weight:700;display:inline-flex;align-items:center;gap:4px}.roster-row .joined svg{width:11px;height:11px}.att-toggle{display:inline-flex;background:var(--brand-grey);border-radius:9999px;padding:2px}.att-toggle button{width:24px;height:24px;border:0;background:transparent;border-radius:9999px;font-size:10.5px;font-weight:800;color:var(--muted-foreground);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.att-toggle button svg{width:11px;height:11px}.att-toggle button.on.present{background:var(--success);color:#fff}.att-toggle button.on.late{background:var(--accent);color:#fff}.att-toggle button.on.absent{background:#cf3d29;color:#fff}.chat{display:flex;flex-direction:column;height:100%}.chat-msgs{flex:1;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.chat-msg{display:flex;gap:8px;align-items:flex-start}.chat-msg .body{flex:1;background:var(--brand-grey);padding:8px 10px;border-radius:10px;font-size:12.5px}.chat-msg.you .body{background:#6d5ca81a}.chat-msg .nm{font-weight:800;font-size:11px;margin-bottom:1px;color:var(--primary)}.chat-msg .at{font-size:10.5px;color:var(--muted-foreground);margin-top:2px}.chat-input{padding:10px 12px;border-top:1px solid var(--border);background:#fafbfd;display:flex;gap:6px}.chat-input .input{flex:1;background:#fff}.asg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.asg-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:12px;cursor:pointer;transition:all .15s}.asg-card:hover{border-color:#6d5ca859;box-shadow:var(--shadow-md);transform:translateY(-1px)}.asg-card .top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.asg-card h3{margin:0;font-size:15px;font-weight:800;letter-spacing:-.005em}.asg-card .due{font-size:11.5px;color:var(--muted-foreground)}.asg-card .row{display:flex;justify-content:space-between;align-items:center}.asg-stat{display:flex;align-items:center;gap:10px;font-size:11.5px;color:var(--muted-foreground);font-weight:600}.asg-stat svg{width:13px;height:13px}.asg-progress{height:6px;background:#eff1f6;border-radius:9999px;overflow:hidden}.asg-progress .submitted{height:100%;background:var(--primary)}.asg-progress .graded{height:100%;background:var(--success)}.grad-shell{display:grid;grid-template-columns:1fr;gap:14px}.grad-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}@media(max-width:780px){.grad-summary{grid-template-columns:1fr 1fr}}.grad-stat{padding:14px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-xs)}.grad-stat .lbl{font-size:11px;color:var(--muted-foreground);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.grad-stat .val{font-size:22px;font-weight:800;letter-spacing:-.01em;margin-top:4px}.grad-stat.success .val{color:var(--success)}.grad-stat.warn .val{color:#a66010}.grad-stat.flag .val{color:#9d2c1d}.grad-toolbar{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-xs);flex-wrap:wrap}.grad-toolbar .selected{font-size:12.5px;color:var(--muted-foreground);font-weight:600}.grad-toolbar .selected b{color:var(--foreground)}.grad-queue{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden}.grad-row{display:grid;grid-template-columns:36px 1fr 100px 1fr 110px 220px;gap:14px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border)}.grad-row:last-child{border-bottom:0}.grad-row.head{background:#fafbfd;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);padding:10px 16px}.grad-row.head input[type=checkbox]{margin-left:2px}.grad-row.selected{background:#6d5ca80a}.grad-row .stu{display:flex;align-items:center;gap:10px}.grad-row .stu .nm{font-weight:700;font-size:13px}.grad-row .stu .em{font-size:11px;color:var(--muted-foreground)}.grad-row .ai-mark{font-size:18px;font-weight:800;color:var(--primary);letter-spacing:-.01em}.grad-row .ai-mark .t{font-size:11px;color:var(--muted-foreground);font-weight:600}.grad-row .feedback{font-size:12px;color:var(--foreground);line-height:1.4}.grad-row .feedback .flags{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}.grad-row .feedback .flag{padding:1px 7px;border-radius:9999px;font-size:10px;font-weight:700;background:#cf3d291f;color:#9d2c1d}.grad-row .override input{width:60px;padding:6px 8px;font-size:13px;font-weight:800;text-align:center;border:1px solid var(--border);border-radius:8px;font-family:inherit}.grad-row .actions{display:flex;gap:6px;justify-content:flex-end}@media(max-width:980px){.grad-row{grid-template-columns:36px 1fr 80px;gap:8px}.grad-row .feedback,.grad-row .override,.grad-row .actions{grid-column:1 / -1;padding-left:46px}.grad-row.head .feedback,.grad-row.head .override,.grad-row.head .actions{display:none}}.std-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.std-asg-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:12px}.std-asg-card .ttl{font-size:15px;font-weight:800;letter-spacing:-.005em}.std-asg-card .due{font-size:11.5px;color:var(--muted-foreground)}.std-asg-card .row{display:flex;justify-content:space-between;align-items:center}.score-big{font-size:34px;font-weight:800;letter-spacing:-.02em;color:var(--success)}.score-big.pending{color:var(--muted-foreground)}.score-big .t{font-size:14px;color:var(--muted-foreground);font-weight:600}.sub-detail{display:grid;grid-template-columns:1fr 320px;gap:14px;align-items:start}@media(max-width:900px){.sub-detail{grid-template-columns:1fr}}.sub-paper{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);min-height:480px;padding:24px}.sub-q{padding:14px 0;border-bottom:1px dashed var(--border)}.sub-q:last-child{border-bottom:0}.sub-q .q{font-weight:700;font-size:13.5px;margin-bottom:8px}.sub-q .a{padding:10px 14px;background:#fafbfd;border:1px solid var(--border);border-radius:10px;font-family:var(--font-mono);font-size:13px;color:var(--foreground)}.sub-q.correct .a{background:#20b67d0f;border-color:#20b67d4d}.sub-q.wrong .a{background:#cf3d290f;border-color:#cf3d294d}.sub-q.partial .a{background:#f3991f0f;border-color:#f3991f4d}.q-mark{float:right;font-weight:800;font-size:13px}.q-mark.full{color:var(--success)}.q-mark.zero{color:#9d2c1d}.q-mark.part{color:#a66010}.ai-feedback{position:sticky;top:78px}.ai-feedback-card{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden}.ai-feedback-card .head{padding:14px 16px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#6d5ca80f,#6d5ca805);display:flex;align-items:center;gap:10px}.ai-feedback-card .head .ico{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,#6d5ca8,#8e6ae6);color:#fff;display:flex;align-items:center;justify-content:center}.ai-feedback-card .head .ico svg{width:16px;height:16px}.ai-feedback-card .head h4{margin:0;font-size:13.5px;font-weight:800}.ai-feedback-card .body{padding:14px 16px;font-size:13px;line-height:1.55}.mark-set{display:flex;align-items:baseline;gap:8px;padding:14px 16px;border-top:1px solid var(--border);background:#fafbfd}.mark-set .v{font-size:32px;font-weight:800;letter-spacing:-.015em}.mark-set .t{font-size:13px;color:var(--muted-foreground);font-weight:600}.mark-set input{width:78px;padding:6px 8px;font-size:24px;font-weight:800;text-align:center;border:1px solid var(--border);border-radius:8px;font-family:inherit}.empty-glow{background:linear-gradient(90deg,#f3f6fb,#fff,#f3f6fb);background-size:200% 100%;animation:glow 2s ease-in-out infinite}@keyframes glow{0%{background-position:200% 0}to{background-position:-200% 0}}.btn-success-soft{background:#e3f7ee;color:#147a52;border:1px solid #BCEBD4}.btn-success-soft:hover{background:#bcebd4}.btn-danger-soft{background:#fcebe8;color:#9d2c1d;border:1px solid #F5C6BE}.btn-danger-soft:hover{background:#f5c6be}.view-switch{display:inline-flex;background:var(--brand-grey);border-radius:9999px;padding:3px;border:1px solid var(--border)}.view-switch button{height:30px;padding:0 12px;border:0;background:transparent;font-family:inherit;font-weight:700;font-size:12px;color:var(--muted-foreground);border-radius:9999px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.view-switch button svg{width:13px;height:13px}.view-switch button.on{background:#fff;color:var(--primary);box-shadow:var(--shadow-xs)}.view-nav{display:flex;align-items:center;gap:8px}.view-nav .label{font-size:15px;font-weight:800;letter-spacing:-.005em;min-width:200px;text-align:center}.view-nav .icon-btn{border:1px solid var(--border);background:#fff}.week-grid{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden}.week-head{display:grid;grid-template-columns:60px repeat(7,1fr);border-bottom:1px solid var(--border);background:#fafbfd}.week-head .col{padding:10px 8px;text-align:center;border-left:1px solid var(--border)}.week-head .col .dow{font-size:10.5px;font-weight:700;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em}.week-head .col .dnum{font-size:18px;font-weight:800;margin-top:2px;letter-spacing:-.01em}.week-head .col.today .dnum{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9999px;background:var(--primary);color:#fff}.week-body{display:grid;grid-template-columns:60px repeat(7,1fr);position:relative;max-height:660px;overflow:auto}.week-body .time-col{display:flex;flex-direction:column}.week-body .time-cell{height:60px;font-size:10.5px;color:var(--muted-foreground);text-align:right;padding:4px 8px 0;border-bottom:1px solid var(--border);font-weight:600;display:flex;align-items:flex-start;justify-content:flex-end;line-height:1}.week-body .day-col{border-left:1px solid var(--border);position:relative}.week-body .hour-cell{height:60px;border-bottom:1px solid var(--border)}.week-body .day-col.today{background:#6d5ca808}.now-line{position:absolute;left:0;right:0;height:2px;background:#cf3d29;z-index:5;pointer-events:none}.now-line:before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:9999px;background:#cf3d29}.week-event{position:absolute;left:4px;right:4px;border-radius:8px;padding:6px 8px;font-size:11.5px;font-weight:700;color:#fff;cursor:pointer;overflow:hidden;display:flex;flex-direction:column;gap:2px;border:1px solid rgba(255,255,255,.3);box-shadow:var(--shadow-xs);transition:transform .12s,box-shadow .12s}.week-event:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);z-index:10}.week-event .time{font-size:10px;font-weight:700;opacity:.9}.week-event .ttl{font-size:11.5px;font-weight:800;line-height:1.25;letter-spacing:-.005em}.week-event .topic{font-size:10px;opacity:.85;font-weight:600}.week-event.live{outline:2px solid #CF3D29;outline-offset:1px}.week-event.live:after{content:"LIVE";position:absolute;top:4px;right:6px;font-size:9px;font-weight:800;background:#cf3d29;padding:1px 5px;border-radius:9999px;letter-spacing:.04em}.week-event.ai:before{content:"";position:absolute;top:6px;right:6px;width:14px;height:14px;border-radius:9999px;background:var(--accent);display:flex;align-items:center;justify-content:center}.week-event.done{opacity:.7}.month-grid{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden}.month-head{display:grid;grid-template-columns:repeat(7,1fr);background:#fafbfd;border-bottom:1px solid var(--border)}.month-head .col{padding:10px 8px;text-align:center;font-size:10.5px;font-weight:800;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;border-left:1px solid var(--border)}.month-head .col:first-child{border-left:0}.month-body{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(110px,1fr)}.month-cell{border-left:1px solid var(--border);border-top:1px solid var(--border);padding:6px 8px;position:relative;display:flex;flex-direction:column;gap:4px;min-height:0}.month-cell:nth-child(7n+1){border-left:0}.month-cell.out{background:#fafbfd;color:var(--muted-foreground)}.month-cell .dnum{font-size:12px;font-weight:700;color:var(--muted-foreground)}.month-cell.today .dnum{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:9999px;background:var(--primary);color:#fff;font-weight:800}.month-cell .events{display:flex;flex-direction:column;gap:3px;overflow:hidden}.month-event{padding:3px 7px;border-radius:5px;font-size:10.5px;font-weight:700;color:#fff;display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;border:1px solid rgba(255,255,255,.25)}.month-event:hover{filter:brightness(1.05)}.month-event .t{font-weight:800;opacity:.85}.month-event.live{outline:1.5px solid #CF3D29;outline-offset:0}.month-event.done{opacity:.65}.month-event.ai{box-shadow:inset 0 0 0 1.5px var(--accent)}.month-more{font-size:10px;color:var(--primary);font-weight:700;cursor:pointer;padding:2px 4px}.sch-shell.wide{grid-template-columns:1fr}:root{--ds-ink: #29261B;--ds-ink-soft: #6B665B;--ds-ink-faint: #9C978B;--ds-paper: #FAF9F7;--ds-surface: #FFFFFF;--ds-surface-2: #F4F2EE;--ds-line: #E8E4DC;--ds-line-soft: #F0EDE6;--ds-purple: #6D5CA8;--ds-purple-700: #574889;--ds-purple-50: #F1EEF9;--ds-orange: #F3991F;--ds-orange-50: #FEF3E2;--ds-green: #20B67D;--ds-green-50: #E5F6EF;--ds-red: #CF3D29;--ds-red-50: #FBEBE8;--ds-cyan: #2CB5E9;--ds-cyan-50: #E6F6FD;--ds-r-sm: 8px;--ds-r: 12px;--ds-r-lg: 16px;--ds-r-xl: 20px;--ds-sh-xs: 0 1px 2px rgba(41,38,27,.05);--ds-sh-sm: 0 1px 3px rgba(41,38,27,.06), 0 1px 2px rgba(41,38,27,.04);--ds-sh-md: 0 4px 12px rgba(41,38,27,.07), 0 2px 4px rgba(41,38,27,.04);--ds-sh-lg: 0 12px 32px rgba(41,38,27,.1), 0 4px 8px rgba(41,38,27,.05);--ds-sh-xl: 0 24px 56px rgba(41,38,27,.14);--sidebar-w: 200px;--sidebar-w-collapsed: 60px}*{box-sizing:border-box}body{margin:0;background:var(--ds-paper);color:var(--ds-ink);font-family:Nunito,system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.ds-app{display:flex;min-height:100vh}.ds-main{flex:1;min-width:0;display:flex;flex-direction:column}.ds-content{flex:1;padding:32px max(40px,env(safe-area-inset-right)) 64px 40px;max-width:1240px;width:100%;margin:0 auto}.ds-content.narrow{max-width:1000px}.ds-sidebar{width:calc(var(--sidebar-w) + env(safe-area-inset-left));flex-shrink:0;background:var(--ds-surface);border-right:1px solid var(--ds-line);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;transition:width .2s ease;padding-left:env(safe-area-inset-left)}.ds-sidebar.collapsed{width:calc(var(--sidebar-w-collapsed) + env(safe-area-inset-left))}.ds-brand{display:flex;align-items:center;gap:9px;padding:16px 14px 12px;cursor:pointer}.ds-brand img{height:30px;flex-shrink:0}.ds-brand .bt{display:flex;flex-direction:column;line-height:1;gap:3px;overflow:hidden;white-space:nowrap}.ds-brand .bt .nm{font-weight:800;font-size:15px;letter-spacing:-.01em}.ds-brand .bt .sb{font-size:10.5px;color:var(--ds-ink-faint);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.ds-sidebar.collapsed .ds-brand .bt{display:none}.ds-nav{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:2px}.ds-nav-section{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--ds-ink-faint);padding:12px 10px 6px}.ds-sidebar.collapsed .ds-nav-section{text-align:center;font-size:0;padding:10px 0 4px}.ds-sidebar.collapsed .ds-nav-section:after{content:"·";font-size:14px}.ds-nav-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--ds-r-sm);border:0;background:transparent;color:var(--ds-ink-soft);font-family:inherit;font-size:13.5px;font-weight:700;cursor:pointer;width:100%;text-align:left;position:relative;transition:background .14s,color .14s}.ds-nav-item svg{width:18px;height:18px;flex-shrink:0}.ds-nav-item .lbl{flex:1;white-space:nowrap;overflow:hidden}.ds-nav-item:hover{background:var(--ds-surface-2);color:var(--ds-ink)}.ds-nav-item.on{background:var(--ds-purple-50);color:var(--ds-purple-700)}.ds-nav-item.on:before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--ds-purple)}.ds-nav-item .nav-badge{background:var(--ds-orange);color:#fff;font-size:10px;font-weight:800;padding:1px 7px;border-radius:9999px}.ds-sidebar.collapsed .ds-nav-item{justify-content:center;padding:10px}.ds-sidebar.collapsed .ds-nav-item .lbl,.ds-sidebar.collapsed .ds-nav-item .nav-badge{display:none}.ds-sidebar-foot{border-top:1px solid var(--ds-line);padding:10px 8px;display:flex;align-items:center;gap:4px}.ds-userchip{flex:1;display:flex;align-items:center;cursor:pointer;padding:4px;border-radius:9999px;width:-moz-fit-content;width:fit-content}.ds-userchip:hover .ds-avatar{box-shadow:0 0 0 3px var(--ds-purple-50)}.ds-sidebar.collapsed .ds-sidebar-foot{justify-content:center}.ds-sidebar.collapsed .ds-signout,.ds-sidebar.collapsed .ds-footbtn:not([title="Expand sidebar"]){display:none}.ds-sidebar.collapsed .ds-sidebar-foot{flex-direction:column;gap:6px}.ds-footbtn,.ds-signout{width:32px;height:32px;border-radius:8px;border:0;background:transparent;color:var(--ds-ink-faint);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ds-footbtn:hover{background:var(--ds-surface-2);color:var(--ds-ink)}.ds-signout:hover{background:var(--ds-red-50);color:var(--ds-red)}.ds-footbtn svg,.ds-signout svg{width:16px;height:16px}.ds-iconbtn{width:38px;height:38px;border-radius:9999px;border:1px solid var(--ds-line);background:var(--ds-surface);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ds-ink-soft);position:relative}.ds-iconbtn:hover{background:var(--ds-surface-2);color:var(--ds-ink)}.ds-iconbtn svg{width:17px;height:17px}.ds-role{display:inline-flex;background:var(--ds-surface-2);border-radius:9999px;padding:3px;border:1px solid var(--ds-line)}.ds-role button{height:30px;padding:0 11px;border:0;background:transparent;font-family:inherit;font-weight:800;font-size:11.5px;color:var(--ds-ink-soft);border-radius:9999px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.ds-role button svg{width:13px;height:13px}.ds-role button.on{background:var(--ds-surface);color:var(--ds-purple-700);box-shadow:var(--ds-sh-xs)}.ds-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px;flex-wrap:wrap}.ds-page-head .ph-eyebrow{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ds-purple);margin-bottom:8px}.ds-page-head h1{font-size:30px;font-weight:800;margin:0;letter-spacing:-.02em;line-height:1.1}.ds-page-head p{color:var(--ds-ink-soft);font-size:14.5px;margin:6px 0 0;max-width:560px}.ds-page-head .actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ds-crumbs{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ds-ink-faint);font-weight:700;margin-bottom:14px}.ds-crumbs a{color:var(--ds-ink-soft);cursor:pointer}.ds-crumbs a:hover{color:var(--ds-purple)}.ds-crumbs svg{width:13px;height:13px}.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--ds-r-sm);font-family:inherit;font-weight:800;cursor:pointer;white-space:nowrap;transition:all .16s ease;letter-spacing:-.005em}.ds-btn svg{width:16px;height:16px}.ds-btn-sm{height:34px;padding:0 13px;font-size:13px}.ds-btn-md{height:40px;padding:0 16px;font-size:13.5px}.ds-btn-lg{height:48px;padding:0 22px;font-size:15px}.ds-btn-primary{background:var(--ds-purple);color:#fff;box-shadow:var(--ds-sh-sm)}.ds-btn-primary:hover{background:var(--ds-purple-700);box-shadow:var(--ds-sh-md)}.ds-btn-accent{background:var(--ds-orange);color:#fff;box-shadow:var(--ds-sh-sm)}.ds-btn-accent:hover{background:#dd8814}.ds-btn-secondary{background:var(--ds-surface);color:var(--ds-ink);border-color:var(--ds-line);box-shadow:var(--ds-sh-xs)}.ds-btn-secondary:hover{background:var(--ds-surface-2);border-color:#d8d3c9}.ds-btn-ghost{background:transparent;color:var(--ds-ink-soft)}.ds-btn-ghost:hover{background:var(--ds-surface-2);color:var(--ds-ink)}.ds-btn-danger{background:var(--ds-red);color:#fff}.ds-btn-danger:hover{background:#b33321}.ds-btn-danger-ghost{background:transparent;color:var(--ds-ink-soft)}.ds-btn-danger-ghost:hover{background:var(--ds-red-50);color:var(--ds-red)}.ds-btn:disabled{opacity:.5;cursor:not-allowed}.ds-btn-block{width:100%}.ds-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:9999px;font-size:11px;font-weight:800;line-height:1.35;letter-spacing:.01em}.ds-badge svg{width:12px;height:12px}.ds-badge-purple{background:var(--ds-purple-50);color:var(--ds-purple-700)}.ds-badge-green{background:var(--ds-green-50);color:#117a52}.ds-badge-orange{background:var(--ds-orange-50);color:#a66010}.ds-badge-red{background:var(--ds-red-50);color:#9d2c1d}.ds-badge-cyan{background:var(--ds-cyan-50);color:#1782ac}.ds-badge-neutral{background:var(--ds-surface-2);color:var(--ds-ink-soft)}.ds-badge-outline{background:transparent;border:1px solid var(--ds-line);color:var(--ds-ink-soft)}.ds-badge-role-teacher{background:var(--ds-purple-50);color:var(--ds-purple-700)}.ds-badge-role-student{background:var(--ds-orange-50);color:#a66010}.ds-badge-role-org_admin{background:var(--ds-cyan-50);color:#1782ac}.ds-badge-role-super_admin{background:#eee9fb;color:#4a3e74}.ds-card{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-r-lg);box-shadow:var(--ds-sh-sm)}.ds-card-pad{padding:22px}.ds-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--ds-line);flex-wrap:wrap}.ds-card-head h2{font-size:16px;font-weight:800;margin:0;letter-spacing:-.01em}.ds-card-head p{font-size:12.5px;color:var(--ds-ink-soft);margin:3px 0 0}.ds-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}@media(max-width:1000px){.ds-stats{grid-template-columns:1fr 1fr}}.ds-stat{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-r-lg);padding:18px 20px;box-shadow:var(--ds-sh-sm);position:relative;overflow:hidden}.ds-stat .si{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.ds-stat .si svg{width:20px;height:20px}.ds-stat .sv{font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1}.ds-stat .sl{font-size:12.5px;color:var(--ds-ink-soft);font-weight:700;margin-top:6px}.ds-stat .sd{font-size:11.5px;font-weight:800;margin-top:8px;display:inline-flex;align-items:center;gap:3px}.ds-stat .sd svg{width:12px;height:12px}.ds-stat .sd.up{color:#117a52}.si-purple{background:var(--ds-purple-50);color:var(--ds-purple)}.si-orange{background:var(--ds-orange-50);color:var(--ds-orange)}.si-green{background:var(--ds-green-50);color:var(--ds-green)}.si-cyan{background:var(--ds-cyan-50);color:var(--ds-cyan)}.ds-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.ds-tile{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-r-lg);padding:20px;cursor:pointer;transition:all .18s ease;display:flex;flex-direction:column;gap:12px;box-shadow:var(--ds-sh-xs);text-align:left;font-family:inherit}.ds-tile:hover{border-color:#d6d0c5;box-shadow:var(--ds-sh-md);transform:translateY(-2px)}.ds-tile .ti{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center}.ds-tile .ti svg{width:22px;height:22px}.ds-tile h3{margin:0;font-size:15px;font-weight:800;letter-spacing:-.01em}.ds-tile p{margin:0;font-size:12.5px;color:var(--ds-ink-soft);line-height:1.45}.ds-tile .arrow{margin-top:auto;color:var(--ds-ink-faint);display:flex;align-items:center;gap:5px;font-size:12px;font-weight:800}.ds-tile .arrow svg{width:14px;height:14px}.ds-table{width:100%;border-collapse:collapse}.ds-table th,.ds-table td{text-align:left;padding:13px 18px;font-size:13.5px;border-bottom:1px solid var(--ds-line)}.ds-table th{background:#fbfaf8;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ds-ink-faint);font-weight:800}.ds-table tbody tr{transition:background .14s}.ds-table tbody tr:hover{background:#fbfaf8}.ds-table tbody tr:last-child td{border-bottom:0}.ds-table .row-link{cursor:pointer}.ds-field{display:flex;flex-direction:column;gap:7px}.ds-field label{font-size:12.5px;font-weight:800;color:var(--ds-ink)}.ds-field .hint{font-size:11.5px;color:var(--ds-ink-soft);font-weight:600}.ds-input{display:flex;align-items:center;gap:9px;height:42px;padding:0 13px;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-r-sm);transition:border-color .15s,box-shadow .15s}.ds-input:focus-within{border-color:var(--ds-purple);box-shadow:0 0 0 3px var(--ds-purple-50)}.ds-input svg{width:16px;height:16px;color:var(--ds-ink-faint)}.ds-input input,.ds-input select,.ds-input textarea{flex:1;border:0;outline:none;background:transparent;font-family:inherit;font-size:14px;color:var(--ds-ink);min-width:0}.ds-input input::-moz-placeholder{color:var(--ds-ink-faint)}.ds-input input::placeholder{color:var(--ds-ink-faint)}.ds-textarea{height:auto;align-items:flex-start;padding:11px 13px}.ds-textarea textarea{resize:vertical;min-height:80px;line-height:1.5}.ds-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:560px){.ds-form-grid{grid-template-columns:1fr}}.ds-seg{display:inline-flex;background:var(--ds-surface-2);border-radius:var(--ds-r-sm);padding:3px;border:1px solid var(--ds-line);gap:2px}.ds-seg button{padding:7px 13px;border:0;background:transparent;font-family:inherit;font-weight:800;font-size:12.5px;color:var(--ds-ink-soft);border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.ds-seg button svg{width:13px;height:13px}.ds-seg button.on{background:var(--ds-surface);color:var(--ds-purple-700);box-shadow:var(--ds-sh-xs)}.ds-switch{width:42px;height:24px;border-radius:9999px;background:var(--ds-line);border:0;cursor:pointer;position:relative;transition:background .18s;flex-shrink:0}.ds-switch.on{background:var(--ds-green)}.ds-switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:9999px;background:#fff;box-shadow:var(--ds-sh-sm);transition:transform .18s}.ds-switch.on:after{transform:translate(18px)}.ds-tabs{display:flex;gap:4px;border-bottom:1px solid var(--ds-line);margin-bottom:22px}.ds-tab{padding:11px 16px;background:transparent;border:0;font-family:inherit;font-size:13.5px;font-weight:800;color:var(--ds-ink-soft);cursor:pointer;border-bottom:2.5px solid transparent;margin-bottom:-1px}.ds-tab:hover{color:var(--ds-ink)}.ds-tab.on{color:var(--ds-purple-700);border-bottom-color:var(--ds-purple)}.ds-pills{display:flex;gap:8px;flex-wrap:wrap}.ds-pill{padding:6px 13px;border-radius:9999px;background:var(--ds-surface);border:1px solid var(--ds-line);font-size:12.5px;font-weight:800;color:var(--ds-ink-soft);cursor:pointer;display:inline-flex;align-items:center;gap:6px}.ds-pill svg{width:13px;height:13px}.ds-pill.on{background:var(--ds-purple-50);border-color:#6d5ca84d;color:var(--ds-purple-700)}.ds-avatar{border-radius:9999px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:-.02em}.ds-av-sm{width:32px;height:32px;font-size:12px}.ds-av-md{width:40px;height:40px;font-size:14px}.ds-av-lg{width:56px;height:56px;font-size:20px}.av-violet{background:#e2d9f9;color:#4a3e74}.av-amber{background:#ffe6b8;color:#a66010}.av-sky{background:#c6e9f9;color:#1782ac}.av-mint{background:#bcebd4;color:#117a52}.av-rose{background:#fad3e4;color:#9c2f66}.av-coral{background:#ffd6c9;color:#b0421c}.av-lime{background:#e4f4b4;color:#4f6b0c}.av-rainbow{background:conic-gradient(from 210deg,#ff6b6b,#ffb84d,#f9f871,#6be585,#4fc3f7,#9b7bff,#ff6b6b);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.45)}.ds-swatches{display:flex;gap:8px;flex-wrap:wrap}.ds-swatch{width:28px;height:28px;border-radius:9999px;border:2px solid transparent;padding:0;cursor:pointer;box-shadow:0 0 0 1px var(--ds-line)}.ds-swatch.on{border-color:var(--ds-purple);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ds-purple)}.ds-modal-bg{position:fixed;inset:0;background:#29261b66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;animation:dsfade .18s ease-out;padding:24px}@keyframes dsfade{0%{opacity:0}to{opacity:1}}.ds-modal{background:var(--ds-surface);border-radius:var(--ds-r-xl);width:min(580px,100%);max-height:90vh;overflow:hidden;box-shadow:var(--ds-sh-xl);display:flex;flex-direction:column;animation:dspop .22s cubic-bezier(.2,.9,.3,1.2)}@keyframes dspop{0%{transform:translateY(10px) scale(.97);opacity:0}to{transform:none;opacity:1}}.ds-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 16px;border-bottom:1px solid var(--ds-line)}.ds-modal-head h3{font-size:19px;font-weight:800;margin:0;letter-spacing:-.01em}.ds-modal-head p{font-size:13px;color:var(--ds-ink-soft);margin:4px 0 0}.ds-modal-body{padding:22px 24px;overflow:auto;display:flex;flex-direction:column;gap:16px}.ds-modal-foot{padding:16px 24px;border-top:1px solid var(--ds-line);background:#fbfaf8;display:flex;gap:10px;align-items:center;justify-content:flex-end}.ds-toast{display:flex;align-items:center;gap:12px;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-r);box-shadow:var(--ds-sh-lg);padding:13px 16px;min-width:300px}.ds-toast .tci{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ds-toast .tci svg{width:17px;height:17px}.ds-toast.success .tci{background:var(--ds-green-50);color:var(--ds-green)}.ds-toast.error .tci{background:var(--ds-red-50);color:var(--ds-red)}.ds-toast .tb{flex:1;font-size:13px;font-weight:700}.ds-toast .tb small{display:block;font-weight:600;color:var(--ds-ink-soft);font-size:11.5px;margin-top:1px}.ds-skel{background:linear-gradient(90deg,var(--ds-surface-2) 25%,#EDEAE3 37%,var(--ds-surface-2) 63%);background-size:400% 100%;animation:dsskel 1.4s ease infinite;border-radius:7px}@keyframes dsskel{0%{background-position:100% 0}to{background-position:-100% 0}}.ds-spinner{width:20px;height:20px;border:2.5px solid var(--ds-line);border-top-color:var(--ds-purple);border-radius:9999px;animation:dsspin .8s linear infinite}.ds-spinner.lg{width:36px;height:36px;border-width:3px}@keyframes dsspin{to{transform:rotate(360deg)}}@keyframes dspulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes dsshim{0%{width:25%}50%{width:85%}to{width:70%}}@keyframes dsconfetti{0%{transform:translateY(-10px) rotate(0);opacity:1}to{transform:translateY(320px) rotate(560deg);opacity:0}}.ds-state{text-align:center;padding:56px 28px;max-width:440px;margin:0 auto}.ds-state .si{width:64px;height:64px;border-radius:18px;display:flex;align-items:center;justify-content:center;margin:0 auto 18px}.ds-state .si svg{width:30px;height:30px}.ds-state.empty .si{background:var(--ds-purple-50);color:var(--ds-purple)}.ds-state.error .si{background:var(--ds-red-50);color:var(--ds-red)}.ds-state h3{font-size:19px;font-weight:800;margin:0 0 8px;letter-spacing:-.01em}.ds-state p{font-size:14px;color:var(--ds-ink-soft);margin:0 0 22px;line-height:1.55}.ds-state .acts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.ds-row{display:flex;align-items:center;gap:10px}.ds-spacer{flex:1}.ds-muted{color:var(--ds-ink-soft)}.ds-faint{color:var(--ds-ink-faint)}.ds-mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.92em}.ds-divider{height:1px;background:var(--ds-line);margin:8px 0}.ds-progress{height:7px;background:var(--ds-surface-2);border-radius:9999px;overflow:hidden}.ds-progress .fill{height:100%;border-radius:9999px;background:linear-gradient(90deg,var(--ds-purple),#8E6AE6)}.ds-progress .fill.green{background:var(--ds-green)}.ds-study-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}@media(max-width:900px){.ds-study-grid{grid-template-columns:minmax(0,1fr)}}.ds-seg-row{display:flex;align-items:center;gap:6px}.ds-seg-btn{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;cursor:pointer;background:transparent;border:0;width:100%;text-align:left;font-family:inherit;color:inherit}.ds-seg-btn:hover{background:var(--ds-surface-2)}.ds-seg-btn.on{background:var(--ds-purple-50)}.ds-seg-btn:disabled{cursor:default;opacity:.55}.ds-seg-btn:disabled:hover{background:transparent}.ds-bar-indeterminate{position:absolute;top:0;bottom:0;width:40%;border-radius:9999px;background:linear-gradient(90deg,var(--ds-purple),#8E6AE6);animation:ds-bar-slide 1.4s ease-in-out infinite}@keyframes ds-bar-slide{0%{left:-40%}to{left:100%}}.ds-rail{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 12px;margin:0 -2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.ds-rail>*{flex:0 0 220px;scroll-snap-align:start}.ds-rail-card{display:flex;flex-direction:column;overflow:hidden;text-align:left;cursor:pointer;transition:transform .15s,box-shadow .15s}.ds-rail-card:hover{transform:translateY(-2px);box-shadow:var(--ds-sh-md)}.ds-rail-card .thumb{aspect-ratio:16/9;background:var(--ds-surface-2) center/cover;display:flex;align-items:center;justify-content:center;color:var(--ds-ink-faint)}.ds-rail-card .body{padding:12px 13px 13px;display:flex;flex-direction:column;gap:5px;flex:1}.ds-rail-card .ttl{font-weight:800;font-size:13.5px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ds-rail-card .meta{font-size:12px;color:var(--ds-ink-soft);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-rail-card .why{font-size:11.5px;color:var(--ds-ink-faint);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-rail-card .act{margin-top:auto;padding-top:6px}.ds-rail-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:18px 0 6px}.ds-rail-head h2{font-size:16px;font-weight:800;margin:0;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-hero{display:grid;grid-template-columns:minmax(200px,280px) minmax(0,1fr);gap:20px;align-items:center}.ds-hero .thumb{aspect-ratio:16/9;border-radius:var(--ds-r);background:var(--ds-surface-2) center/cover}@media(max-width:640px){.ds-hero{grid-template-columns:1fr}}.ds-home-greeting{display:flex;align-items:center;gap:22px;flex-wrap:wrap}@media(max-width:640px){.ds-home-greeting{flex-direction:column;align-items:stretch;gap:10px}.ds-home-greeting>*{width:100%}}.ds-chips{display:flex;gap:8px;flex-wrap:wrap}.ds-chip{padding:7px 13px;border-radius:9999px;background:var(--ds-surface);border:1px solid var(--ds-line);font-size:13px;font-weight:800;color:var(--ds-ink-soft);cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:inherit;line-height:1.2}.ds-chip:hover{border-color:#6d5ca866}.ds-chip.on{background:var(--ds-purple-50);border-color:#6d5ca84d;color:var(--ds-purple-700)}.ds-chip .x{display:inline-flex;margin:-2px -6px -2px 0;padding:2px;border-radius:9999px;color:var(--ds-ink-faint)}.ds-chip .x:hover{background:#0000000f;color:var(--ds-ink)}.ds-chip.add{border-style:dashed;color:var(--ds-purple)}:root{--tabbar-h:60px;--mtopbar-h:52px}.ds-mtopbar,.ds-tabbar,.ds-sheet-bg{display:none}@media(max-width:767px){.ds-app{flex-direction:column}.ds-sidebar{display:none}.ds-mtopbar{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:0;z-index:40;height:calc(var(--mtopbar-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(12px,env(safe-area-inset-right)) 0 max(4px,env(safe-area-inset-left));background:#ffffffeb;backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--ds-line)}.ds-mtopbar .ds-brand{padding:8px 10px}.ds-mtopbar .ds-brand img{height:26px}.ds-mtopbar .ds-userchip{flex:0 0 auto;border:0;background:transparent;padding:2px}.ds-tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:45;background:#fffffff5;backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-top:1px solid var(--ds-line);height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.ds-tabbar-item:hover{text-decoration:none}.ds-tabbar-item{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:transparent;color:var(--ds-ink-faint);font-family:inherit;font-size:10.5px;font-weight:800;text-decoration:none;cursor:pointer;position:relative;-webkit-tap-highlight-color:transparent}.ds-tabbar-item span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}.ds-tabbar-item.on{color:var(--ds-purple-700)}.ds-tabbar-item.on:before{content:"";position:absolute;top:0;left:30%;right:30%;height:3px;border-radius:0 0 3px 3px;background:var(--ds-purple)}.ds-sheet-bg{display:flex;position:fixed;inset:0;z-index:60;background:#29261b66;align-items:flex-end;animation:dsfade .18s ease-out}.ds-sheet{width:100%;background:var(--ds-surface);border-radius:20px 20px 0 0;box-shadow:var(--ds-sh-xl);outline:none;padding:6px 10px calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:2px;max-height:85vh;max-height:85dvh;overflow:auto;animation:dssheet .22s cubic-bezier(.2,.9,.3,1)}.ds-sheet-grip{width:40px;height:4px;border-radius:9999px;background:var(--ds-line);margin:4px auto 10px}.ds-sheet-user{display:flex;align-items:center;gap:12px;padding:10px;margin-bottom:6px;border:1px solid var(--ds-line);border-radius:var(--ds-r);background:var(--ds-surface-2);font-family:inherit;text-align:left;color:var(--ds-ink-faint);cursor:pointer}.ds-sheet-user .nm{display:block;font-weight:800;font-size:15px;color:var(--ds-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-sheet-user .em{display:block;font-size:12.5px;font-weight:600;color:var(--ds-ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-sheet .ds-nav-item{padding:13px 12px;font-size:15px}.ds-sheet .ds-nav-item.danger{color:var(--ds-red)}:where(.ds-content,.ds-fit) :where(:not(.katex,.katex *)){min-width:0}:where(.ds-content,.ds-fit) :where(.ds-btn,.ds-iconbtn,.ds-badge,.ds-avatar,.ds-switch,.ds-pill,.ds-tab,.ds-seg>button,.ds-stars,.ds-stars>button,svg,input[type=checkbox],input[type=radio]){flex-shrink:0;max-width:100%}:where(.ds-content,.ds-fit) :where(.ds-btn,.ds-iconbtn,.ds-badge,.ds-avatar,.ds-switch,.ds-pill,.ds-tab,.ds-seg>button,.ds-stars,.ds-stars>button,button){overflow-wrap:anywhere}:where(.ds-content,.ds-fit) :where(:has(>.ds-btn~.ds-btn),:has(>:first-child>.ds-btn:only-child):has(>:last-child:not(:first-child)>.ds-btn:only-child)){flex-wrap:wrap}.ds-fit{overflow-wrap:break-word}.ds-main,.ds-fit{overflow-x:auto}.ds-content{overflow-wrap:break-word;padding:16px max(16px,env(safe-area-inset-right)) calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 24px) max(16px,env(safe-area-inset-left))}.ds-page-head{margin-bottom:16px;gap:12px;align-items:stretch}.ds-page-head h1{font-size:23px}.ds-page-head .ph-eyebrow{margin-bottom:4px}.ds-page-head p{font-size:13.5px}.ds-page-head .actions{width:100%}.ds-page-head .actions>.ds-btn{flex:1 1 auto}.ds-crumbs>*{flex-shrink:0}.ds-crumbs>span:last-child{flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-card-pad{padding:16px}.ds-card-head{padding:14px 16px}.ds-stats{gap:10px;margin-bottom:16px}.ds-stat{padding:14px}.ds-stat .si{width:34px;height:34px;margin-bottom:10px}.ds-stat .sv{font-size:22px}.ds-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ds-tile{padding:14px;gap:8px}.ds-tile:hover{transform:none}.ds-tile .ti{width:38px;height:38px}.ds-tile h3{font-size:14px}.ds-tile p{display:none}.ds-tabs{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;margin-bottom:16px}.ds-tabs::-webkit-scrollbar{display:none}.ds-tab{white-space:nowrap;padding:11px 12px;flex-shrink:0;margin-bottom:0}.ds-seg{max-width:100%;overflow-x:auto;scrollbar-width:none}.ds-seg::-webkit-scrollbar{display:none}.ds-table th,.ds-table td{padding:10px 12px;font-size:13px}.ds-table th{white-space:nowrap}.ds-input:not(.ds-textarea){height:44px}.ds-input input,.ds-input select,.ds-input textarea{font-size:16px}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px}.ds-btn-sm{height:36px}.ds-btn-md{height:42px}.ds-modal-bg{align-items:flex-end;padding:0}.ds-modal{width:100%!important;max-height:92vh;max-height:92dvh;border-radius:20px 20px 0 0;animation:dssheet .24s cubic-bezier(.2,.9,.3,1)}.ds-modal-head{padding:18px 16px 12px}.ds-modal-head h3{font-size:17px}.ds-modal-body{padding:16px}.ds-modal-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom));flex-wrap:wrap}.ds-modal-foot .ds-btn{flex:1 1 auto}.ds-state{padding:36px 16px}.ds-rail>*{flex-basis:min(240px,70vw)}.ds-rail-card:hover{transform:none}.ds-hero{gap:14px}.ds-hero .ds-btn{width:100%}.ds-study-rail{position:static!important}.ds-learn .ds-page-head p,.ds-learn .ds-page-head .ph-eyebrow{display:none}.ds-match-row{grid-template-columns:minmax(0,1fr)!important;gap:4px!important;padding-bottom:12px;border-bottom:1px solid var(--ds-line)}.ds-match-row:last-child{border-bottom:0;padding-bottom:0}.ds-match-row .arrow{display:none}.ds-match-row select,.ds-blank-input{font-size:16px!important}.ds-scroll-x{max-width:100%;overflow-x:auto}.ds-fit-grid{grid-template-columns:minmax(0,1fr)}.ds-chips>.ds-chip{max-width:100%;overflow-x:auto}.ds-seg-btn{flex-wrap:wrap;row-gap:4px}.ds-seg-btn .seg-title{flex:1 1 100%!important;order:-1;white-space:normal!important}.ds-chrow{gap:10px!important;padding:10px 12px!important}.ds-chrow.ready{flex-wrap:nowrap!important}.ds-chrow>div:first-child{width:84px!important}.ds-chrow.ready .txt{min-width:0!important}.ds-chrow .txt .nm{white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13.5px!important}.ds-chrow .prog{width:100%!important}.ds-stack-mobile{grid-template-columns:minmax(0,1fr)!important}.ds-wrap-mobile{flex-wrap:wrap;gap:6px}.ds-hide-mobile{display:none!important}.ds-full-mobile{width:100%!important;min-width:0!important;max-width:none!important;flex:1 1 100%!important}}@media(min-width:768px){.ds-only-mobile{display:none!important}}@keyframes dssheet{0%{transform:translateY(100%)}to{transform:none}}
