:root{color-scheme:light;--accent: #6D4AFF;--accent-strong: #5A34F2;--accent-2: #A78BFF;--accent-ink: #4324BE;--accent-soft: color-mix(in srgb, var(--accent) 12%, transparent);--accent-softer: color-mix(in srgb, var(--accent) 7%, transparent);--on-accent: #ffffff;--bg: #EDEAF5;--ink: #17141F;--ink-2: #544E62;--ink-3: #656070;--line: rgba(23, 20, 31, .09);--line-2: rgba(23, 20, 31, .14);--line-soft: rgba(23, 20, 31, .055);--ok: #147C48;--ok-bg: rgba(20, 124, 72, .12);--ok-line: rgba(20, 124, 72, .26);--warn: #925300;--warn-bg: rgba(199, 119, 0, .15);--warn-line: rgba(199, 119, 0, .28);--danger: #BC2718;--danger-bg: rgba(196, 43, 28, .11);--danger-line: rgba(196, 43, 28, .24);--info: #0A5FBE;--info-bg: rgba(10, 95, 190, .11);--info-line: rgba(10, 95, 190, .22);--glass-bg: rgba(255, 255, 255, .52);--glass-bg-soft: rgba(255, 255, 255, .34);--glass-hi: rgba(255, 255, 255, .8);--glass-edge: rgba(255, 255, 255, .62);--glass-ring: rgba(24, 14, 56, .065);--blur: 26px;--sat: 180%;--r-xl: 30px;--r-lg: 24px;--r-md: 18px;--r-sm: 13px;--r-xs: 10px;--nav-w: 248px;--pad-x: 28px;--shadow-1: inset 0 1px 0 var(--glass-hi), inset 0 -1px 0 rgba(255, 255, 255, .24), 0 0 0 1px var(--glass-ring), 0 1px 2px rgba(24, 14, 56, .05), 0 12px 28px -18px rgba(24, 14, 56, .3), 0 44px 80px -56px rgba(24, 14, 56, .42);--shadow-2: inset 0 1px 0 var(--glass-hi), inset 0 -1px 0 rgba(255, 255, 255, .22), 0 0 0 1px var(--glass-ring), 0 2px 6px rgba(24, 14, 56, .07), 0 24px 56px -26px rgba(24, 14, 56, .38), 0 70px 120px -70px rgba(24, 14, 56, .55);--shadow-pop: 0 1px 0 rgba(255, 255, 255, .3) inset, 0 18px 50px -18px rgba(24, 14, 56, .38), 0 60px 120px -60px rgba(24, 14, 56, .55);--spring: cubic-bezier(.34, 1.42, .64, 1);--spring-soft: cubic-bezier(.25, 1.12, .38, 1);--ease: cubic-bezier(.32, .72, 0, 1);--fast: .14s;--base: .22s;--slow: .38s;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "PingFang SC", "Segoe UI Variable Text", "Segoe UI", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;--font-num: "SF Pro Display", "Segoe UI Variable Display", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "SF Mono", "Cascadia Code", "JetBrains Mono", Consolas, monospace;--focus: var(--accent)}[data-theme=dark]{color-scheme:dark;--bg: #08070D;--ink: #F5F2FB;--ink-2: #BDB6CC;--ink-3: #948CA6;--line: rgba(255, 255, 255, .1);--line-2: rgba(255, 255, 255, .16);--line-soft: rgba(255, 255, 255, .06);--accent: #8E6FFF;--accent-strong: #7B58FF;--accent-2: #B9A6FF;--accent-ink: #CDBFFF;--accent-soft: color-mix(in srgb, var(--accent) 18%, transparent);--accent-softer: color-mix(in srgb, var(--accent) 10%, transparent);--ok: #63D69A;--ok-bg: rgba(46, 158, 91, .18);--ok-line: rgba(99, 214, 154, .28);--warn: #F2B45E;--warn-bg: rgba(199, 119, 0, .2);--warn-line: rgba(242, 180, 94, .28);--danger: #FF8A7A;--danger-bg: rgba(196, 43, 28, .22);--danger-line: rgba(255, 138, 122, .26);--info: #7CB8FF;--info-bg: rgba(10, 95, 190, .24);--info-line: rgba(124, 184, 255, .26);--glass-bg: rgba(34, 29, 48, .54);--glass-bg-soft: rgba(40, 34, 56, .36);--glass-hi: rgba(255, 255, 255, .17);--glass-edge: rgba(255, 255, 255, .12);--glass-ring: rgba(0, 0, 0, .42);--shadow-1: inset 0 1px 0 var(--glass-hi), inset 0 -1px 0 rgba(255, 255, 255, .06), 0 0 0 1px var(--glass-ring), 0 2px 6px rgba(0, 0, 0, .35), 0 20px 50px -20px rgba(0, 0, 0, .7), 0 60px 110px -60px rgba(0, 0, 0, .85);--shadow-2: inset 0 1px 0 var(--glass-hi), inset 0 -1px 0 rgba(255, 255, 255, .05), 0 0 0 1px var(--glass-ring), 0 6px 18px rgba(0, 0, 0, .45), 0 40px 90px -30px rgba(0, 0, 0, .8);--shadow-pop: 0 1px 0 rgba(255, 255, 255, .14) inset, 0 30px 80px -24px rgba(0, 0, 0, .8), 0 80px 140px -70px rgba(0, 0, 0, .95);--focus: #C0AEFF}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.5;color:var(--ink);background:var(--bg);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4,p,ul,ol,figure{margin:0}ul,ol{padding:0;list-style:none}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:0;padding:0;cursor:pointer}a{color:inherit;text-decoration:none}img,svg{display:block}::selection{background:color-mix(in srgb,var(--accent) 28%,transparent)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}.sprite{position:absolute;width:0;height:0;overflow:hidden}.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.ic-14{width:14px;height:14px}.ic-16{width:16px;height:16px}.ic-18{width:18px;height:18px}.ic-22{width:22px;height:22px}.ic-26{width:26px;height:26px}.ic-32{width:32px;height:32px}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.mono{font-family:var(--font-mono);font-size:12px}.muted{color:var(--ink-2)}.dim{color:var(--ink-3)}.tiny{font-size:11.5px}.small{font-size:12.5px}.strong{font-weight:600}.nowrap{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:fixed;left:16px;top:-60px;z-index:200;padding:10px 16px;border-radius:12px;background:var(--accent);color:#fff;font-weight:600;transition:top var(--base) var(--spring)}.skip-link:focus{top:12px}.ambient{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-3;overflow:hidden;background:radial-gradient(120% 100% at 50% -10%,color-mix(in srgb,var(--accent) 6%,transparent),transparent 60%),var(--bg)}.ambient:after{content:"";position:absolute;top:-10%;right:-10%;bottom:-10%;left:-10%;background:radial-gradient(46% 42% at 9% 6%,color-mix(in srgb,var(--accent) 30%,transparent),transparent 66%),radial-gradient(38% 36% at 94% 4%,rgba(62,191,255,.3),transparent 64%),radial-gradient(44% 40% at 88% 96%,rgba(255,106,176,.24),transparent 66%),radial-gradient(38% 36% at 16% 94%,rgba(48,214,160,.22),transparent 64%),radial-gradient(30% 28% at 58% 62%,rgba(167,139,255,.14),transparent 68%);filter:blur(8px)}.ambient i{position:absolute;border-radius:50%;filter:blur(66px);opacity:.55;animation:drift 42s var(--ease) infinite alternate;will-change:transform}.a1{width:46vw;height:46vw;left:-10vw;top:-14vw;background:radial-gradient(circle at 42% 42%,#7c5cff,#7c5cff00 68%)}.a2{width:40vw;height:40vw;right:-8vw;top:-10vw;animation-delay:-9s;background:radial-gradient(circle at 50% 46%,#37c3ff,#37c3ff00 66%)}.a3{width:42vw;height:42vw;right:0;bottom:-18vw;animation-delay:-17s;opacity:.42;background:radial-gradient(circle at 50% 50%,#ff6fb5,#ff6fb500 66%)}.a4{width:36vw;height:36vw;left:6vw;bottom:-16vw;animation-delay:-25s;opacity:.38;background:radial-gradient(circle at 50% 50%,#2fd6a2,#2fd6a200 66%)}.a5{width:26vw;height:26vw;left:46vw;top:30vh;animation-delay:-33s;opacity:.3;background:radial-gradient(circle at 50% 50%,#c9b8ff,#c9b8ff00 70%)}[data-theme=dark] .ambient:after{background:radial-gradient(50% 46% at 8% 2%,color-mix(in srgb,var(--accent) 40%,transparent),transparent 66%),radial-gradient(42% 40% at 96% 0%,rgba(24,150,224,.34),transparent 64%),radial-gradient(46% 44% at 90% 100%,rgba(226,68,148,.26),transparent 66%),radial-gradient(40% 40% at 10% 98%,rgba(24,176,136,.2),transparent 64%)}[data-theme=dark] .ambient i{opacity:.4}@keyframes drift{0%{transform:translateZ(0) scale(1)}50%{transform:translate3d(3vw,4vh,0) scale(1.08)}to{transform:translate3d(-2vw,-3vh,0) scale(.96)}}body.is-scrolling .ambient i{animation-play-state:paused}.grain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none;opacity:.22;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}.glass{position:relative;background-color:var(--glass-bg);background-image:linear-gradient(158deg,#ffffff4d,#ffffff0a 40%,#fff0 56%,color-mix(in srgb,var(--accent) 5%,transparent));-webkit-backdrop-filter:blur(var(--blur)) saturate(var(--sat));backdrop-filter:blur(var(--blur)) saturate(var(--sat));border:1px solid var(--glass-edge);border-radius:var(--r-lg);box-shadow:var(--shadow-1);corner-shape:squircle;isolation:isolate}[data-theme=dark] .glass{background-image:linear-gradient(158deg,#ffffff1a,#ffffff05 38%,#0000001a 66%,color-mix(in srgb,var(--accent) 12%,transparent))}.glass:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;padding:1px;background:linear-gradient(146deg,#fffffffa,#ffffff4d 18%,#ffffff05 42%,#fff0 56%,#ffffff29 80%,#ffffff9e);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none}[data-theme=dark] .glass:before{background:linear-gradient(146deg,#ffffff8f,#ffffff1a 20%,#fff0 46%,#ffffff0a 76%,#ffffff42)}.glass:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;pointer-events:none;background:radial-gradient(130% 88% at 10% -22%,rgba(255,255,255,.48),transparent 58%),radial-gradient(46% 46% at var(--mx, 50%) var(--my, -10%),rgba(255,255,255,.3),transparent 62%);opacity:.75;transition:opacity var(--base) var(--ease)}[data-theme=dark] .glass:after{background:radial-gradient(130% 88% at 10% -22%,rgba(255,255,255,.16),transparent 58%),radial-gradient(46% 46% at var(--mx, 50%) var(--my, -10%),rgba(255,255,255,.14),transparent 62%);opacity:.6}.glass-lens:hover:after{opacity:.95}.glass-soft{background-color:var(--glass-bg-soft);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-hi),0 0 0 1px var(--glass-ring),0 6px 18px -12px #180e3847}.glass-deep{--blur: 40px;--shadow-1: var(--shadow-2)}.app{display:grid;grid-template-columns:var(--nav-w) minmax(0,1fr);gap:14px;height:100vh;height:100dvh;padding:14px;transition:grid-template-columns var(--slow) var(--spring-soft)}.app[data-nav=collapsed]{--nav-w: 84px}.sidebar{display:flex;flex-direction:column;min-height:0;padding:12px 10px 10px;border-radius:28px;--blur: 34px}.shell{display:flex;flex-direction:column;min-width:0;min-height:0}.view{flex:1;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;padding:2px 6px 24px;scrollbar-gutter:stable;outline:none;overscroll-behavior:contain}.view.is-enter{animation:pageIn var(--slow) var(--spring) both}@keyframes pageIn{0%{opacity:0;transform:translateY(10px) scale(.996)}to{opacity:1;transform:none}}.brand{display:flex;align-items:center;gap:10px;padding:4px 6px 12px}.logo{width:38px;height:38px;border-radius:12px;flex:none;display:grid;place-items:center;background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 62%,#ffffff) 0%,var(--accent) 46%,var(--accent-strong) 100%);box-shadow:inset 0 1px #ffffff8c,inset 0 -1px #ffffff24,0 8px 18px -8px color-mix(in srgb,var(--accent) 75%,transparent);corner-shape:squircle}.logo svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:1.5;stroke-linejoin:round}.brand-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.brand-text strong{font-size:14.5px;font-weight:650;letter-spacing:-.01em;white-space:nowrap}.brand-text small{font-size:10.5px;color:var(--ink-3);letter-spacing:.06em;white-space:nowrap}.nav-toggle{margin-left:auto}.org-chip{display:flex;align-items:center;gap:9px;width:100%;padding:8px 9px;margin-bottom:8px;border-radius:14px;background:color-mix(in srgb,var(--glass-bg) 70%,transparent);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-hi),0 0 0 1px var(--glass-ring);text-align:left;transition:background var(--fast) var(--ease),transform var(--base) var(--spring)}.org-chip:hover{background:color-mix(in srgb,var(--glass-bg) 92%,transparent);transform:translateY(-1px)}.org-chip:active{transform:scale(.985)}.org-mark{width:26px;height:26px;border-radius:9px;flex:none;display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--accent-ink);background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent)}.org-text{display:flex;flex-direction:column;flex:1;min-width:0}.org-text b{font-size:12.5px;font-weight:600;white-space:nowrap}.org-text small{font-size:10.5px;color:var(--ink-3);white-space:nowrap}.org-chip>.ic{color:var(--ink-3)}.nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:2px 0 8px}.nav-group{padding-top:10px}.nav-label{font-size:10.5px;font-weight:600;letter-spacing:.1em;color:var(--ink-3);padding:0 12px 6px;text-transform:uppercase}.nav-item{position:relative;display:flex;align-items:center;gap:10px;height:40px;padding:0 12px;margin:1px 0;border-radius:12px;color:var(--ink-2);font-size:13.5px;font-weight:500;transition:background var(--fast) var(--ease),color var(--fast) var(--ease),transform var(--base) var(--spring),box-shadow var(--base) var(--ease)}.nav-item .ic{color:var(--ink-3);transition:color var(--fast) var(--ease)}.nav-item:hover{background:color-mix(in srgb,#fff 46%,transparent);color:var(--ink)}[data-theme=dark] .nav-item:hover{background:#ffffff0f}.nav-item:hover .ic{color:var(--ink-2)}.nav-item:active{transform:scale(.985)}.nav-item.is-active{color:var(--accent-ink);font-weight:600;background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 20%,transparent),color-mix(in srgb,var(--accent) 9%,transparent));box-shadow:inset 0 1px #ffffff6b,inset 0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent),0 8px 20px -14px color-mix(in srgb,var(--accent) 65%,transparent)}[data-theme=dark] .nav-item.is-active{color:var(--accent-ink)}.nav-item.is-active .ic{color:var(--accent);filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 55%,transparent))}.nav-item.is-active:before{content:"";position:absolute;left:-10px;top:11px;bottom:11px;width:3px;border-radius:0 3px 3px 0;background:var(--accent);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 70%,transparent)}.nav-item>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-badge{font-style:normal;font-size:10.5px;font-weight:600;line-height:1;padding:3px 6px;border-radius:999px;color:var(--accent-ink);background:var(--accent-soft);font-variant-numeric:tabular-nums}.nav-badge-dot{width:7px;height:7px;padding:0;background:var(--danger);box-shadow:0 0 8px var(--danger)}.sidebar-foot{padding-top:8px;border-top:1px solid var(--line-soft)}@media(max-height:820px){.sidebar{padding:10px 8px 8px}.brand{padding-bottom:8px}.org-chip{margin-bottom:2px}.nav-group{padding-top:4px}.nav-label{font-size:9.5px;padding:0 10px 3px}.nav-item{height:34px;margin:0;border-radius:10px;font-size:13px}.nav-item .ic{width:17px;height:17px}.sidebar-foot{padding-top:4px}}.user-mini{display:flex;align-items:center;gap:9px;padding:6px 6px 4px;border-radius:12px}.user-mini-text{display:flex;flex-direction:column;min-width:0;flex:1}.user-mini-text b{font-size:12.5px;font-weight:600;white-space:nowrap}.user-mini-text small{font-size:10.5px;color:var(--ink-3);white-space:nowrap}.foot-row{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:4px 6px 2px}.scope-chip{display:inline-flex;align-items:center;gap:5px;min-width:0;font-size:10px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scope-chip .ic{color:var(--ok)}.foot-actions{display:flex;gap:2px;flex:none}.app[data-nav=collapsed] .brand{justify-content:center;padding:4px 0 12px}.app[data-nav=collapsed] .brand-text,.app[data-nav=collapsed] .nav-toggle,.app[data-nav=collapsed] .org-text,.app[data-nav=collapsed] .org-chip>.ic,.app[data-nav=collapsed] .nav-label,.app[data-nav=collapsed] .nav-item>span,.app[data-nav=collapsed] .nav-badge,.app[data-nav=collapsed] .user-mini-text,.app[data-nav=collapsed] #userMore,.app[data-nav=collapsed] .scope-chip{display:none}.app[data-nav=collapsed] .org-chip{justify-content:center;padding:8px 0}.app[data-nav=collapsed] .nav-item{justify-content:center;padding:0;width:44px;margin:2px auto}.app[data-nav=collapsed] .nav-item.is-active:before{left:-8px}.app[data-nav=collapsed] .user-mini,.app[data-nav=collapsed] .foot-row{justify-content:center}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:58px;padding:0 6px 0 4px;flex:none}.search-trigger{display:flex;align-items:center;gap:9px;width:clamp(240px,30vw,390px);height:38px;padding:0 10px 0 12px;border-radius:13px;color:var(--ink-3);background:var(--glass-bg-soft);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-hi),0 0 0 1px var(--glass-ring),0 8px 20px -18px #180e3866;-webkit-backdrop-filter:blur(20px) saturate(170%);backdrop-filter:blur(20px) saturate(170%);transition:background var(--fast) var(--ease),transform var(--base) var(--spring),box-shadow var(--base) var(--ease)}.search-trigger:hover{background:color-mix(in srgb,var(--glass-bg) 86%,transparent);transform:translateY(-1px)}.search-trigger:active{transform:scale(.99)}.search-text{flex:1;text-align:left;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-trigger kbd{font-family:var(--font);font-size:10px;font-weight:600;color:var(--ink-3);padding:3px 6px;border-radius:6px;background:color-mix(in srgb,var(--ink) 5%,transparent);border:1px solid var(--line)}.topbar-right{display:flex;align-items:center;gap:8px}.demo-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 9px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-line)}.demo-chip i{width:6px;height:6px;border-radius:50%;background:currentColor}.theme-switch{position:relative;display:flex;align-items:center;padding:2px;height:32px;border-radius:999px;background:var(--glass-bg-soft);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-hi),0 0 0 1px var(--glass-ring)}.theme-switch button{position:relative;z-index:1;width:30px;height:26px;display:grid;place-items:center;border-radius:999px;color:var(--ink-3);transition:color var(--base) var(--ease)}.theme-switch button[aria-pressed=true]{color:var(--accent-ink)}.theme-thumb{position:absolute;top:2px;left:2px;width:30px;height:26px;border-radius:999px;background:color-mix(in srgb,#fff 68%,transparent);box-shadow:inset 0 1px #fff,0 2px 8px #180e3829;transition:transform var(--slow) var(--spring)}[data-theme=dark] .theme-thumb{transform:translate(30px);background:color-mix(in srgb,#fff 16%,transparent);box-shadow:inset 0 1px #ffffff47,0 2px 10px #00000080}.icon-btn{width:36px;height:36px;border-radius:12px;display:inline-grid;place-items:center;color:var(--ink-2);transition:background var(--fast) var(--ease),color var(--fast) var(--ease),transform var(--base) var(--spring)}.icon-btn:hover{background:color-mix(in srgb,#fff 48%,transparent);color:var(--ink)}[data-theme=dark] .icon-btn:hover{background:#ffffff12}.icon-btn:active{transform:scale(.92)}.icon-btn-sm{width:28px;height:28px;border-radius:9px}.icon-btn-sm .ic{width:16px;height:16px}#bellBtn{position:relative}.badge-dot{position:absolute;top:3px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:9.5px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 2px color-mix(in srgb,var(--bg) 80%,transparent)}.badge-dot.is-zero{display:none}.user-chip{display:flex;align-items:center;gap:8px;height:40px;padding:3px 8px 3px 3px;border-radius:999px;background:var(--glass-bg-soft);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-hi),0 0 0 1px var(--glass-ring);transition:background var(--fast) var(--ease),transform var(--base) var(--spring)}.user-chip:hover{background:color-mix(in srgb,var(--glass-bg) 85%,transparent)}.user-chip:active{transform:scale(.98)}.user-chip-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.user-chip-text b{font-size:12px;font-weight:600}.user-chip-text small{font-size:10px;color:var(--ink-3)}.user-chip>.ic{color:var(--ink-3)}.avatar{width:34px;height:34px;border-radius:50%;flex:none;display:grid;place-items:center;color:#fff;font-size:12.5px;font-weight:650;box-shadow:inset 0 1px #ffffff73,0 2px 8px -2px #180e384d;letter-spacing:.02em}.avatar-sm{width:28px;height:28px;font-size:11px}.avatar-lg{width:56px;height:56px;font-size:20px;border-radius:20px;corner-shape:squircle}.avatar-xl{width:68px;height:68px;font-size:24px;border-radius:24px;corner-shape:squircle}.av-1{background:linear-gradient(150deg,#8e72ff,#5b36e8)}.av-2{background:linear-gradient(150deg,#37c3e8,#0b7fb0)}.av-3{background:linear-gradient(150deg,#f0a85c,#c0690e)}.av-4{background:linear-gradient(150deg,#f27dae,#c03572)}.av-5{background:linear-gradient(150deg,#5ac79a,#147c48)}.av-6{background:linear-gradient(150deg,#7fa0ff,#3557c7)}.demobar{flex:none;height:28px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 8px;font-size:10.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden}.demobar-left,.demobar-right{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis}.demobar-left .ic{color:var(--accent)}.demobar-right .live-dot{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 6px var(--ok)}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ok)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:12px 8px 18px;flex-wrap:wrap}.page-head-main{min-width:0}.eyebrow{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;letter-spacing:.04em;color:var(--ink-3);margin-bottom:6px}.eyebrow .ic{color:var(--accent)}.page-title{font-size:clamp(22px,2vw,28px);font-weight:660;letter-spacing:-.025em;line-height:1.16;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.page-sub{font-size:12.5px;color:var(--ink-2);margin-top:5px}.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.head-demo{font-size:9.5px;font-weight:700;letter-spacing:.08em;color:var(--ink-3);padding:3px 7px;border-radius:6px;background:color-mix(in srgb,var(--ink) 5%,transparent);border:1px solid var(--line);vertical-align:middle}.grid,.stack{display:grid;gap:14px;min-width:0}.row{display:flex;align-items:center;gap:8px;min-width:0}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.span-2{grid-column:span 2}.card{position:relative;min-width:0;padding:18px 20px;border-radius:var(--r-lg)}.card-tight{padding:14px 16px}.card-flush{padding:0;overflow:hidden}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.card-head-tight{margin-bottom:10px}.card-title{font-size:14.5px;font-weight:640;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}.card-title .ic{color:var(--accent)}.card-sub{font-size:11.5px;color:var(--ink-3);margin-top:3px}.card-actions{display:flex;align-items:center;gap:6px;flex:none}.card-hr{height:1px;background:var(--line-soft);margin:12px 0;border:0}.section-label{font-size:11px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;border-radius:11px;font-size:12.5px;font-weight:600;white-space:nowrap;color:var(--ink);background:color-mix(in srgb,#fff 52%,transparent);border:1px solid var(--glass-edge);box-shadow:inset 0 1px #ffffffb3,0 0 0 1px var(--glass-ring),0 6px 16px -14px #180e3866;transition:transform var(--base) var(--spring),background var(--fast) var(--ease),box-shadow var(--base) var(--ease)}.btn:hover{background:color-mix(in srgb,#fff 72%,transparent);transform:translateY(-1px)}.btn:active{transform:scale(.97)}.btn .ic{width:16px;height:16px}[data-theme=dark] .btn:not(.btn-primary){background:#ffffff12;box-shadow:inset 0 1px #ffffff24,0 0 0 1px #0000004d}[data-theme=dark] .btn:not(.btn-primary):hover{background:#ffffff1f}.btn-primary{color:var(--on-accent);border-color:transparent;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 82%,#ffffff) 0%,var(--accent) 52%,var(--accent-strong) 100%);box-shadow:inset 0 1px #ffffff6b,inset 0 -1px #00000029,0 1px 2px #17141f2e,0 10px 24px -10px color-mix(in srgb,var(--accent) 80%,transparent)}.btn-primary:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 74%,#ffffff) 0%,color-mix(in srgb,var(--accent) 92%,#ffffff) 52%,var(--accent-strong) 100%);filter:brightness(1.04)}.btn-ghost{background:transparent;border-color:var(--line-2);box-shadow:none}.btn-ghost:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.btn-quiet{background:transparent;border-color:transparent;box-shadow:none;color:var(--ink-2)}.btn-quiet:hover{background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink)}.btn-danger{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-line);box-shadow:none}.btn-danger:hover{background:color-mix(in srgb,var(--danger) 18%,transparent)}.btn-sm{height:28px;padding:0 10px;border-radius:9px;font-size:11.5px}.btn-sm .ic{width:14px;height:14px}.btn-lg{height:40px;padding:0 18px;border-radius:13px;font-size:13.5px}.btn[disabled]{opacity:.48;pointer-events:none;filter:saturate(.55)}.btn-block{width:100%}.btn.is-active{color:var(--accent-ink);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 30%,transparent);box-shadow:inset 0 1px #ffffff8c,0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent)}[data-theme=dark] .btn.is-active{background:color-mix(in srgb,var(--accent) 26%,transparent);box-shadow:inset 0 1px #ffffff1f}.btn.is-loading{position:relative;color:transparent!important;pointer-events:none}.btn.is-loading .ic{opacity:0}.btn.is-loading:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:15px;height:15px;border-radius:50%;border:2px solid color-mix(in srgb,var(--ink) 20%,transparent);border-top-color:var(--accent);animation:spin .7s linear infinite}.btn-primary.is-loading:after,.btn-danger.is-loading:after{border-color:#ffffff59;border-top-color:#fff}.link-btn{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;color:var(--accent-ink);border-radius:6px;padding:2px}.link-btn:hover{text-decoration:underline;text-underline-offset:3px}.link-btn .ic{width:13px;height:13px}.pill{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:999px;font-size:10.5px;font-weight:600;line-height:1;white-space:nowrap;color:var(--ink-2);background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid transparent}.pill .dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}.pill-ok{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-line)}.pill-warn{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-line)}.pill-danger{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-line)}.pill-info{color:var(--info);background:var(--info-bg);border-color:var(--info-line)}.pill-accent{color:var(--accent-ink);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 24%,transparent)}.pill-muted{color:var(--ink-3);background:color-mix(in srgb,var(--ink) 5%,transparent);border-color:var(--line)}.pill-lg{height:26px;padding:0 10px;font-size:11px}.tag{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:7px;font-size:10.5px;font-weight:500;color:var(--ink-2);background:color-mix(in srgb,var(--ink) 5%,transparent);border:1px solid var(--line);white-space:nowrap}.tag .ic{width:12px;height:12px}.status-dot{width:7px;height:7px;border-radius:50%;flex:none}.s-ok{background:var(--ok);box-shadow:0 0 0 3px var(--ok-bg)}.s-warn{background:var(--warn);box-shadow:0 0 0 3px var(--warn-bg)}.s-danger{background:var(--danger);box-shadow:0 0 0 3px var(--danger-bg)}.s-info{background:var(--info);box-shadow:0 0 0 3px var(--info-bg)}.s-idle{background:var(--ink-3);box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 8%,transparent)}.segmented{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:12px;background:color-mix(in srgb,var(--ink) 5%,transparent);border:1px solid var(--line-soft)}.segmented button{height:28px;padding:0 11px;border-radius:9px;font-size:11.5px;font-weight:600;color:var(--ink-3);transition:color var(--fast) var(--ease),background var(--fast) var(--ease),box-shadow var(--base) var(--ease),transform var(--base) var(--spring);white-space:nowrap}.segmented button:hover{color:var(--ink)}.segmented button[aria-pressed=true],.segmented button[aria-selected=true]{color:var(--ink);background:color-mix(in srgb,#fff 78%,transparent);box-shadow:inset 0 1px #fff,0 2px 8px -4px #180e384d,0 0 0 1px var(--line-soft)}[data-theme=dark] .segmented button[aria-pressed=true],[data-theme=dark] .segmented button[aria-selected=true]{background:#ffffff21;box-shadow:inset 0 1px #ffffff2e,0 2px 10px -4px #00000080}.segmented button:active{transform:scale(.96)}.tabs{display:flex;align-items:center;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{position:relative;flex:none;height:40px;padding:0 12px;border-radius:10px 10px 0 0;font-size:12.5px;font-weight:550;color:var(--ink-3);transition:color var(--fast) var(--ease),background var(--fast) var(--ease)}.tab:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 3%,transparent)}.tab[aria-selected=true]{color:var(--accent-ink);font-weight:650}.tab[aria-selected=true]:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--accent);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 70%,transparent)}.tab-count{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:999px;font-size:9.5px;background:var(--accent-soft);color:var(--accent-ink);font-variant-numeric:tabular-nums}.tab-panel[hidden]{display:none}.list{display:flex;flex-direction:column;min-width:0}.list-row{display:flex;align-items:center;gap:11px;padding:10px 8px;border-radius:12px;min-width:0;transition:background var(--fast) var(--ease),transform var(--base) var(--spring)}.list-row+.list-row{border-top:1px solid var(--line-soft)}.list-row.is-hoverable:hover{background:color-mix(in srgb,#fff 40%,transparent)}[data-theme=dark] .list-row.is-hoverable:hover{background:#ffffff0d}.list-main{flex:1;min-width:0}.list-title{font-size:12.5px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-meta{font-size:11px;color:var(--ink-3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-end{margin-left:auto;display:flex;align-items:center;gap:8px;flex:none}.meter{height:6px;border-radius:999px;background:color-mix(in srgb,var(--ink) 8%,transparent);overflow:hidden}.meter>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-2),var(--accent));box-shadow:0 0 8px color-mix(in srgb,var(--accent) 55%,transparent);transition:width .7s var(--spring-soft)}.meter.is-ok>i{background:linear-gradient(90deg,#6FE0A5,var(--ok));box-shadow:0 0 8px color-mix(in srgb,var(--ok) 45%,transparent)}.meter.is-warn>i{background:linear-gradient(90deg,#FFC97A,var(--warn));box-shadow:0 0 8px color-mix(in srgb,var(--warn) 40%,transparent)}.meter.is-danger>i{background:linear-gradient(90deg,#FF9C8E,var(--danger));box-shadow:0 0 8px color-mix(in srgb,var(--danger) 40%,transparent)}.ring{--p: 60;--size: 64px;--thick: 6px;width:var(--size);height:var(--size);border-radius:50%;flex:none;background:conic-gradient(var(--accent) calc(var(--p) * 1%),color-mix(in srgb,var(--ink) 9%,transparent) 0);display:grid;place-items:center;position:relative}.ring:before{content:"";position:absolute;inset:var(--thick);border-radius:50%;background:color-mix(in srgb,var(--bg) 62%,#fff 38%);box-shadow:inset 0 1px 2px #180e381a}[data-theme=dark] .ring:before{background:#1b1626}.ring>span{position:relative;z-index:1;font-size:12.5px;font-weight:650;font-variant-numeric:tabular-nums}.spark{width:100%;height:34px;overflow:visible}.spark path.line{fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round}.spark path.area{fill:url(#sparkFill);opacity:.35;stroke:none}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0c071a57;-webkit-backdrop-filter:blur(5px) saturate(120%);backdrop-filter:blur(5px) saturate(120%);opacity:0;transition:opacity var(--base) var(--ease)}.scrim.is-open{opacity:1}[data-theme=dark] .scrim{background:#00000085}.modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:grid;place-items:center;padding:24px;pointer-events:none}.modal-wrap>*{pointer-events:auto}.modal{width:min(560px,100%);max-height:min(86vh,720px);display:flex;flex-direction:column;border-radius:var(--r-xl);--blur: 40px;--shadow-1: var(--shadow-pop);opacity:0;transform:translateY(14px) scale(.97);transition:opacity var(--base) var(--ease),transform var(--slow) var(--spring)}.modal.is-open{opacity:1;transform:none}.modal-lg{width:min(760px,100%)}.modal-sm{width:min(420px,100%)}.modal-head{display:flex;align-items:flex-start;gap:12px;padding:18px 20px 12px}.modal-head h2{font-size:16px;font-weight:650;letter-spacing:-.015em}.modal-head p{font-size:11.5px;color:var(--ink-3);margin-top:3px}.modal-head .icon-btn{margin-left:auto;flex:none}.modal-body{padding:4px 20px 18px;overflow-y:auto;min-height:0}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px 18px;border-top:1px solid var(--line-soft)}.modal-foot .grow{flex:1}.drawer-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:75;pointer-events:none}.drawer{position:absolute;top:12px;right:12px;bottom:12px;width:min(460px,calc(100vw - 24px));display:flex;flex-direction:column;border-radius:var(--r-xl);--blur: 42px;--shadow-1: var(--shadow-pop);transform:translate(calc(100% + 24px));transition:transform var(--slow) var(--spring);pointer-events:auto}.drawer.is-open{transform:none}.drawer-head{display:flex;align-items:flex-start;gap:12px;padding:18px 20px 12px}.drawer-head h2{font-size:16px;font-weight:650;letter-spacing:-.015em}.drawer-head p{font-size:11.5px;color:var(--ink-3);margin-top:3px}.drawer-head .icon-btn{margin-left:auto}.drawer-body{flex:1;min-height:0;overflow-y:auto;padding:4px 20px 20px}.drawer-foot{display:flex;gap:8px;padding:12px 20px 18px;border-top:1px solid var(--line-soft)}.drawer-foot .btn{flex:1}#paletteRoot{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;pointer-events:none}.palette-wrap{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;padding:10vh 20px 20px;background:#0c071a4d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:auto;opacity:0;transition:opacity var(--base) var(--ease)}.palette-wrap.is-open{opacity:1}.palette{width:min(620px,100%);height:max-content;max-height:68vh;display:flex;flex-direction:column;border-radius:26px;--blur: 44px;--shadow-1: var(--shadow-pop);transform:translateY(-10px) scale(.98);transition:transform var(--slow) var(--spring)}.palette-wrap.is-open .palette{transform:none}.palette-search{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.palette-search .ic{color:var(--ink-3)}.palette-search input{flex:1;border:0;background:none;outline:none;font-size:14px;color:var(--ink)}.palette-search input::placeholder{color:var(--ink-3)}.palette-list{overflow-y:auto;padding:8px}.palette-group{padding:6px 10px 4px;font-size:10px;font-weight:650;letter-spacing:.08em;color:var(--ink-3);text-transform:uppercase}.palette-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:11px;cursor:pointer;font-size:12.5px;color:var(--ink-2)}.palette-item .ic{color:var(--ink-3)}.palette-item .pi-meta{margin-left:auto;font-size:10.5px;color:var(--ink-3)}.palette-item.is-active{background:var(--accent-soft);color:var(--accent-ink)}.palette-item.is-active .ic{color:var(--accent)}.palette-empty{padding:28px 12px;text-align:center;color:var(--ink-3);font-size:12px}.palette-foot{display:flex;align-items:center;gap:12px;padding:9px 14px;border-top:1px solid var(--line-soft);font-size:10px;color:var(--ink-3)}.kbd{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:5px;font-family:var(--font);font-size:10px;color:var(--ink-3);background:color-mix(in srgb,var(--ink) 5%,transparent);border:1px solid var(--line)}.toast-wrap{position:fixed;left:50%;bottom:34px;z-index:90;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;width:min(92vw,520px)}.toast{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;font-size:12.5px;color:var(--ink);background:color-mix(in srgb,#fff 78%,transparent);border:1px solid var(--glass-edge);box-shadow:var(--shadow-pop),inset 0 1px #fff;-webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%);pointer-events:auto;animation:toastIn .46s var(--spring) both;max-width:100%}[data-theme=dark] .toast{background:color-mix(in srgb,#2A2338 82%,transparent);box-shadow:0 20px 60px -20px #000c,inset 0 1px #ffffff29}.toast.is-out{animation:toastOut .22s var(--ease) both}.toast .ic{color:var(--accent)}.toast.ok .ic{color:var(--ok)}.toast.warn .ic{color:var(--warn)}.toast.danger .ic{color:var(--danger)}.toast span{min-width:0}.toast button{margin-left:4px;font-size:11.5px;font-weight:650;color:var(--accent-ink);padding:3px 7px;border-radius:7px;flex:none}.toast button:hover{background:var(--accent-soft)}@keyframes toastIn{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}@keyframes toastOut{to{opacity:0;transform:translateY(10px) scale(.97)}}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:11.5px;font-weight:600;color:var(--ink-2)}.input,.select,.textarea{width:100%;height:38px;padding:0 11px;border-radius:11px;font-size:12.5px;color:var(--ink);background:color-mix(in srgb,#fff 46%,transparent);border:1px solid var(--line-2);box-shadow:inset 0 1px 2px #180e380d;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),background var(--fast) var(--ease);outline:none}.textarea{height:auto;min-height:84px;padding:9px 11px;resize:vertical;line-height:1.55}.input:focus,.select:focus,.textarea:focus{border-color:color-mix(in srgb,var(--accent) 60%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);background:color-mix(in srgb,#fff 70%,transparent)}[data-theme=dark] .input,[data-theme=dark] .select,[data-theme=dark] .textarea{background:#ffffff0f;border-color:#ffffff26;box-shadow:inset 0 1px 2px #0000004d}[data-theme=dark] .input:focus,[data-theme=dark] .select:focus,[data-theme=dark] .textarea:focus{background:#ffffff17}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236E6879' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9.6 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px}.input::placeholder,.textarea::placeholder{color:var(--ink-3)}.check{display:flex;align-items:flex-start;gap:9px;cursor:pointer;font-size:12px}.check input{margin:2px 0 0;accent-color:var(--accent);width:15px;height:15px;flex:none}.kv{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 0;font-size:12px}.kv+.kv{border-top:1px solid var(--line-soft)}.kv dt{color:var(--ink-3);flex:none}.kv dd{margin:0;text-align:right;min-width:0}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 16px;text-align:center;color:var(--ink-3)}.empty .empty-ico{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;background:var(--accent-softer);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 16%,transparent)}.empty b{font-size:13px;color:var(--ink-2)}.empty p{font-size:11.5px;max-width:300px}@media(max-width:1439px){:root{--pad-x: 22px}.app{gap:12px;padding:12px}.view{padding:2px 4px 22px}.card{padding:16px 18px}}@media(max-width:1279px){.topbar{height:54px}.search-trigger{width:clamp(210px,26vw,320px)}.demo-chip{display:none}.g4{gap:12px}}@media(max-width:1100px){.app{--nav-w: 84px}.brand{justify-content:center;padding:4px 0 12px}.brand-text,.nav-toggle,.org-text,.org-chip>.ic,.nav-label,.nav-item>span,.nav-badge,.user-mini-text,#userMore,.scope-chip{display:none}.org-chip{justify-content:center;padding:8px 0}.nav-item{justify-content:center;padding:0;width:44px;margin:2px auto}.nav-item.is-active:before{left:-8px}.user-mini,.foot-row{justify-content:center}.user-chip-text{display:none}.user-chip{padding:3px}.demobar-mid{display:none}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.page-title{font-size:23px}.page-head{padding:8px 4px 14px}.card{padding:14px 16px;border-radius:22px}.view{padding:2px 2px 20px}}@media(max-width:900px){.g3,.g2{grid-template-columns:minmax(0,1fr)}.span-2{grid-column:auto}.topbar-help,.search-trigger kbd{display:none}}@media(max-height:760px){.demobar{height:24px}.topbar{height:50px}.page-head{padding-top:4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.ambient i{animation:none}}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ink) 22%,transparent) transparent}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ink) 20%,transparent);border-radius:999px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--ink) 32%,transparent);background-clip:padding-box}.stack{align-content:start}.stack-6{display:grid;gap:6px}.stack-8{display:grid;gap:8px}.stack-10{display:grid;gap:10px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.w-full{width:100%}.tnum{font-variant-numeric:tabular-nums}.clip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.divider{height:1px;background:var(--line-soft);margin:12px 0}.hero-glow{position:relative;overflow:hidden}.hero-glow:after{content:"";position:absolute;width:260px;height:260px;right:-70px;top:-120px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 34%,transparent),transparent 68%);filter:blur(12px);z-index:-1}.home-grid{display:grid;grid-template-columns:minmax(0,1.68fr) minmax(300px,.92fr);gap:14px}.kpi{padding:16px 18px 14px;overflow:hidden}.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.kpi-label{font-size:11.5px;font-weight:600;color:var(--ink-2);display:flex;align-items:center;gap:6px}.kpi-label .ic{width:15px;height:15px;color:var(--accent)}.kpi-value{font-size:31px;font-weight:660;letter-spacing:-.035em;line-height:1.1;margin-top:9px}.kpi-value small{font-size:12px;font-weight:550;color:var(--ink-3);margin-left:3px;letter-spacing:0}.kpi-foot{display:flex;align-items:center;flex-wrap:wrap;gap:2px 8px;margin-top:6px;font-size:10.5px;color:var(--ink-3)}.kpi-foot>span+span:before{content:"·";margin-right:6px;color:currentColor;opacity:.85}.delta{display:inline-flex;align-items:center;gap:2px;font-weight:650;font-size:10.5px}.delta.up{color:var(--ok)}.delta.down{color:var(--danger)}.kpi .kpi-spark{position:absolute;right:12px;top:44px;width:84px;opacity:.55;pointer-events:none}.kpi .kpi-spark svg{height:30px}.kpi[data-tone=warn] .kpi-label .ic{color:var(--warn)}.risk-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:13px;min-width:0;border:1px solid transparent;transition:background var(--fast) var(--ease),transform var(--base) var(--spring)}.risk-item+.risk-item{margin-top:4px}.risk-item:hover{transform:translate(1px)}.risk-item[data-tone=danger]{background:color-mix(in srgb,var(--danger) 7%,transparent);border-color:color-mix(in srgb,var(--danger) 16%,transparent)}.risk-item[data-tone=warn]{background:color-mix(in srgb,var(--warn) 8%,transparent);border-color:color-mix(in srgb,var(--warn) 18%,transparent)}.risk-icon{width:30px;height:30px;border-radius:10px;flex:none;display:grid;place-items:center;background:color-mix(in srgb,#fff 42%,transparent)}.risk-item[data-tone=danger] .risk-icon{color:var(--danger)}.risk-item[data-tone=warn] .risk-icon{color:var(--warn)}.risk-main{flex:1;min-width:0}.risk-title{font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px}.risk-title em{font-style:normal;font-weight:500;color:var(--ink-3);font-size:10.5px}.risk-desc{font-size:11px;color:var(--ink-2);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.risk-item .link-btn{flex:none}.today-list{display:flex;flex-direction:column}.today-item{display:grid;grid-template-columns:58px 22px minmax(0,1fr);gap:0;align-items:stretch;min-width:0}.today-time{font-size:10.5px;color:var(--ink-3);padding-top:13px;font-variant-numeric:tabular-nums;text-align:right;padding-right:4px}.today-time b{display:block;font-size:12px;font-weight:650;color:var(--ink)}.today-rail{position:relative;display:flex;justify-content:center}.today-rail:before{content:"";position:absolute;top:0;bottom:0;width:1px;background:var(--line)}.today-rail i{position:relative;z-index:1;width:9px;height:9px;border-radius:50%;margin-top:18px;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.today-item[data-state=done] .today-rail i{background:var(--ok);box-shadow:0 0 0 3px var(--ok-bg)}.today-item[data-state=live] .today-rail i{background:var(--danger);box-shadow:0 0 0 3px var(--danger-bg);animation:livePulse 2s var(--ease) infinite}.today-item[data-state=next] .today-rail i{background:var(--warn);box-shadow:0 0 0 3px var(--warn-bg)}.today-body{padding:9px 0 12px 12px;min-width:0}.lesson-card{padding:10px 12px;border-radius:13px;min-width:0;background:color-mix(in srgb,#fff 34%,transparent);border:1px solid var(--line-soft);transition:background var(--fast) var(--ease),transform var(--base) var(--spring),box-shadow var(--base) var(--ease);cursor:pointer}.lesson-card:hover{background:color-mix(in srgb,#fff 58%,transparent);transform:translateY(-1px);box-shadow:0 10px 24px -18px #180e3866}[data-theme=dark] .lesson-card{background:#ffffff0b}[data-theme=dark] .lesson-card:hover{background:#ffffff14}.today-item[data-state=live] .lesson-card{background:linear-gradient(140deg,color-mix(in srgb,var(--danger) 10%,transparent),color-mix(in srgb,#fff 30%,transparent));border-color:color-mix(in srgb,var(--danger) 24%,transparent)}.lesson-top{display:flex;align-items:center;gap:8px;min-width:0}.lesson-title{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-meta{display:flex;align-items:center;gap:10px;margin-top:4px;font-size:10.5px;color:var(--ink-3);flex-wrap:wrap}.lesson-meta span{display:inline-flex;align-items:center;gap:3px}.lesson-meta .ic{width:12px;height:12px}.lesson-state{margin-left:auto;flex:none}.live-pulse{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;color:var(--danger)}.live-pulse i{width:6px;height:6px;border-radius:50%;background:var(--danger);animation:livePulse 1.6s var(--ease) infinite}@keyframes livePulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--danger) 45%,transparent)}50%{box-shadow:0 0 0 5px transparent}}.todo-row{display:flex;align-items:center;gap:9px;padding:8px 4px;border-radius:10px;min-width:0}.todo-row+.todo-row{border-top:1px solid var(--line-soft)}.todo-check{width:19px;height:19px;border-radius:7px;flex:none;border:1.5px solid var(--line-2);display:grid;place-items:center;color:transparent;transition:all var(--base) var(--spring)}.todo-check .ic{width:12px;height:12px;stroke-width:2.4}.todo-row.is-done .todo-check{background:var(--accent);border-color:var(--accent);color:#fff}.todo-row.is-done .todo-main b{text-decoration:line-through;color:var(--ink-3);font-weight:500}.todo-main{flex:1;min-width:0}.todo-main b{display:block;font-size:12px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.todo-main small{font-size:10.5px;color:var(--ink-3)}.todo-row .pill{flex:none}.todo-progress{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:10.5px;color:var(--ink-3)}.todo-progress .meter{flex:1}.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.quick-btn{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:10px;border-radius:13px;min-width:0;background:color-mix(in srgb,#fff 28%,transparent);border:1px solid var(--line-soft);font-size:11px;font-weight:550;color:var(--ink-2);text-align:left;transition:all var(--base) var(--spring)}.quick-btn:hover{background:color-mix(in srgb,#fff 52%,transparent);transform:translateY(-2px);color:var(--ink)}[data-theme=dark] .quick-btn{background:#ffffff0a}[data-theme=dark] .quick-btn:hover{background:#ffffff14}.quick-btn .quick-ico{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.quick-btn .ic{width:15px;height:15px}.notice-mini{display:flex;gap:10px;padding:9px 0}.notice-mini+.notice-mini{border-top:1px solid var(--line-soft)}.notice-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);margin-top:6px;flex:none}.notice-mini b{font-size:12px;font-weight:550;display:block}.notice-mini small{font-size:10.5px;color:var(--ink-3)}.student-hero{padding:22px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;background-color:var(--glass-bg);background-image:radial-gradient(120% 140% at 0% 0%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 58%),linear-gradient(158deg,#ffffff57,#fff0 58%)}[data-theme=dark] .student-hero{background-image:radial-gradient(120% 140% at 0% 0%,color-mix(in srgb,var(--accent) 26%,transparent),transparent 58%),linear-gradient(158deg,#ffffff14,#fff0 58%)}.student-id{min-width:0;flex:1}.student-name{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.student-name h2{font-size:24px;font-weight:660;letter-spacing:-.025em}.student-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px;font-size:11.5px;color:var(--ink-2)}.student-meta span{display:inline-flex;align-items:center;gap:4px}.student-meta .ic{width:13px;height:13px;color:var(--ink-3)}.student-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.student-actions{display:flex;gap:8px;flex-wrap:wrap}.metric-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:4px}.metric{padding:12px 14px;min-width:0;border-radius:16px}.metric+.metric{border-left:1px solid var(--line-soft);border-radius:0}.metric-label{font-size:10.5px;color:var(--ink-3);display:flex;align-items:center;gap:4px}.metric-value{font-size:22px;font-weight:650;letter-spacing:-.03em;margin-top:4px}.metric-value small{font-size:10.5px;font-weight:500;color:var(--ink-3);margin-left:2px;letter-spacing:0}.metric-foot{font-size:10px;color:var(--ink-3);margin-top:2px}.metric[data-tone=danger] .metric-value{color:var(--danger)}.metric[data-tone=warn] .metric-value{color:var(--warn)}.tab-card{padding:8px 14px 18px}.tab-card .tabs{margin:0 -2px 16px}.profile-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:14px}.panel-sub{padding:14px 16px;border-radius:16px;background:color-mix(in srgb,#fff 26%,transparent);border:1px solid var(--line-soft);min-width:0}[data-theme=dark] .panel-sub{background:#ffffff09}.panel-sub-title{font-size:12px;font-weight:640;margin-bottom:6px;display:flex;align-items:center;gap:6px}.panel-sub-title .ic{width:14px;height:14px;color:var(--accent)}.timeline{position:relative;padding-left:18px}.timeline:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--line)}.tl-item{position:relative;padding:0 0 14px}.tl-item:last-child{padding-bottom:0}.tl-item:before{content:"";position:absolute;left:-17px;top:5px;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-softer)}.tl-item[data-tone=ok]:before{background:var(--ok);box-shadow:0 0 0 3px var(--ok-bg)}.tl-item[data-tone=warn]:before{background:var(--warn);box-shadow:0 0 0 3px var(--warn-bg)}.tl-time{font-size:10px;color:var(--ink-3);font-variant-numeric:tabular-nums}.tl-title{font-size:12px;font-weight:550;margin-top:1px}.tl-desc{font-size:11px;color:var(--ink-3);margin-top:1px}.detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.detail-list .kv{font-size:11.5px}.detail-list .kv dd{font-weight:500}.more-fields{margin-top:8px;border-top:1px dashed var(--line);padding-top:8px}.more-fields summary{cursor:pointer;font-size:11px;color:var(--accent-ink);font-weight:600;list-style:none;display:inline-flex;align-items:center;gap:4px}.more-fields summary::-webkit-details-marker{display:none}.more-fields summary .ic{width:13px;height:13px;transition:transform var(--base) var(--ease)}.more-fields[open] summary .ic{transform:rotate(90deg)}.heat{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));gap:4px}.heat i{aspect-ratio:1;border-radius:4px;display:block;background:color-mix(in srgb,var(--ink) 6%,transparent)}.heat i[data-l="1"]{background:color-mix(in srgb,var(--ok) 22%,transparent)}.heat i[data-l="2"]{background:color-mix(in srgb,var(--ok) 38%,transparent)}.heat i[data-l="3"]{background:color-mix(in srgb,var(--ok) 62%,transparent)}.heat i[data-l=late]{background:var(--warn-bg);box-shadow:inset 0 0 0 1px var(--warn-line)}.heat i[data-l=off]{background:var(--danger-bg);box-shadow:inset 0 0 0 1px var(--danger-line)}.heat-legend{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:10px;color:var(--ink-3)}.heat-legend span{display:inline-flex;align-items:center;gap:4px}.heat-legend i{width:9px;height:9px;border-radius:3px}.score-row{display:flex;align-items:center;gap:10px;padding:9px 0}.score-row+.score-row{border-top:1px solid var(--line-soft)}.score-subject{font-size:12px;font-weight:550}.score-date{font-size:10.5px;color:var(--ink-3)}.score-value{margin-left:auto;font-family:var(--font-num);font-size:15px;font-weight:650;font-variant-numeric:tabular-nums}.score-value small{font-size:10px;color:var(--ink-3);font-weight:500}.enroll-card{display:flex;gap:14px;align-items:flex-start}.enroll-badge{width:46px;height:46px;border-radius:15px;flex:none;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.enroll-badge .ic{width:22px;height:22px}.enroll-title{font-size:13px;font-weight:620}.enroll-meta{font-size:11px;color:var(--ink-3);margin-top:2px}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.week-nav{display:flex;align-items:center;gap:6px}.week-label{font-size:13px;font-weight:640;font-variant-numeric:tabular-nums;padding:0 6px}.week-label small{display:block;font-size:10px;color:var(--ink-3);font-weight:500}.cal-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cal-card{padding:12px 14px 14px}.cal-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;font-size:10.5px;color:var(--ink-3)}.cal-legend span{display:inline-flex;align-items:center;gap:4px}.cal-legend i{width:8px;height:8px;border-radius:3px;background:var(--c, var(--accent))}.cal{display:grid;grid-template-columns:56px repeat(7,minmax(0,1fr));gap:4px;min-width:0}.cal-day{padding:5px 4px 7px;text-align:center;border-radius:10px;font-size:10.5px;color:var(--ink-3);line-height:1.3}.cal-day b{display:block;font-size:12.5px;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.cal-day.is-today{background:var(--accent-soft);color:var(--accent-ink)}.cal-day.is-today b{color:var(--accent-ink)}.cal-time{font-size:9.5px;color:var(--ink-3);text-align:right;padding:8px 4px 0 0;font-variant-numeric:tabular-nums;border-top:1px solid var(--line-soft)}.cal-cell{min-height:78px;border-top:1px solid var(--line-soft);border-left:1px solid var(--line-soft);padding:3px;border-radius:0 0 8px 8px;min-width:0;transition:background var(--fast) var(--ease)}.cal-cell:hover{background:color-mix(in srgb,#fff 24%,transparent)}[data-theme=dark] .cal-cell:hover{background:#ffffff09}.cal-cell.is-today{background:color-mix(in srgb,var(--accent) 4%,transparent)}.cal-block{--c: var(--accent);position:relative;height:100%;min-height:70px;width:100%;padding:7px 8px 7px 10px;border-radius:10px;text-align:left;background:color-mix(in srgb,var(--c) 13%,transparent);border:1px solid color-mix(in srgb,var(--c) 24%,transparent);overflow:hidden;transition:transform var(--base) var(--spring),box-shadow var(--base) var(--ease),background var(--fast) var(--ease);display:flex;flex-direction:column;gap:2px}.cal-block:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--c)}.cal-block:hover{transform:translateY(-1px) scale(1.012);z-index:2;background:color-mix(in srgb,var(--c) 20%,transparent);box-shadow:0 10px 24px -14px color-mix(in srgb,var(--c) 70%,transparent)}.cal-block b{font-size:10.5px;font-weight:650;line-height:1.25;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cal-block small{font-size:9px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-block .cb-foot{margin-top:auto;display:flex;align-items:center;gap:4px;font-size:8.5px;color:var(--ink-3)}.cal-block[data-state=live]{border-color:color-mix(in srgb,var(--danger) 45%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--danger) 20%,transparent)}.cal-block[data-state=live]:after{content:"LIVE";position:absolute;top:5px;right:5px;font-size:7.5px;font-weight:800;letter-spacing:.06em;color:#fff;background:var(--danger);padding:1px 4px;border-radius:4px}.c-js{--c: #6D4AFF}.c-go{--c: #0E8FB8}.c-vue{--c: #178A50}.c-db{--c: #A85B00}.c-redis{--c: #C0392B}.c-proj{--c: #B0307A}.c-live{--c: #0B62C4}.resource-bar{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.resource-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:9px;font-size:10.5px;background:color-mix(in srgb,#fff 30%,transparent);border:1px solid var(--line-soft);color:var(--ink-2);transition:all var(--fast) var(--ease)}.resource-chip:hover{background:color-mix(in srgb,#fff 55%,transparent);color:var(--ink)}.resource-chip b{font-weight:600;color:var(--ink)}.resource-chip .dot{width:6px;height:6px;border-radius:50%;background:var(--c, var(--accent))}.resource-chip.is-active{border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:var(--accent-soft);color:var(--accent-ink)}.lesson-hero{padding:18px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;background-image:radial-gradient(110% 160% at 100% 0%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 60%),linear-gradient(158deg,#ffffff4d,#fff0 60%)}.lesson-hero-main{flex:1;min-width:260px}.lesson-hero h2{font-size:18px;font-weight:650;letter-spacing:-.02em;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lesson-hero .meta{display:flex;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-3);margin-top:5px}.lesson-hero .meta span{display:inline-flex;align-items:center;gap:4px}.lesson-hero .meta .ic{width:13px;height:13px}.attend-stats{display:flex;align-items:stretch;gap:2px;flex-wrap:wrap}.attend-stat{padding:2px 14px;text-align:center}.attend-stat+.attend-stat{border-left:1px solid var(--line-soft)}.attend-stat b{display:block;font-family:var(--font-num);font-size:19px;font-weight:650;font-variant-numeric:tabular-nums}.attend-stat small{font-size:10px;color:var(--ink-3)}.attend-stat[data-tone=ok] b{color:var(--ok)}.attend-stat[data-tone=warn] b{color:var(--warn)}.attend-stat[data-tone=danger] b{color:var(--danger)}.attend-stat[data-tone=info] b{color:var(--info)}.attend-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(280px,.9fr);gap:14px}.roster{display:flex;flex-direction:column}.roster-row{display:flex;align-items:center;gap:10px;padding:7px 6px;border-radius:12px;min-width:0;transition:background var(--fast) var(--ease)}.roster-row+.roster-row{border-top:1px solid var(--line-soft)}.roster-row:hover{background:color-mix(in srgb,#fff 30%,transparent)}[data-theme=dark] .roster-row:hover{background:#ffffff0a}.roster-name{flex:1;min-width:0}.roster-name b{font-size:12px;font-weight:550;display:flex;align-items:center;gap:6px}.roster-name small{font-size:10px;color:var(--ink-3)}.roster-flag{font-size:9.5px;color:var(--warn);background:var(--warn-bg);padding:1px 5px;border-radius:5px}.status-set{display:inline-flex;gap:2px;padding:2px;border-radius:9px;background:color-mix(in srgb,var(--ink) 5%,transparent);flex:none}.status-set button{height:24px;min-width:34px;padding:0 7px;border-radius:7px;font-size:10px;font-weight:600;color:var(--ink-3);transition:all var(--fast) var(--ease)}.status-set button:hover{color:var(--ink)}.status-set button[aria-checked=true]{color:#fff}.status-set button[data-st=present][aria-checked=true]{background:var(--ok)}.status-set button[data-st=late][aria-checked=true]{background:var(--warn)}.status-set button[data-st=leave][aria-checked=true]{background:var(--info)}.status-set button[data-st=absent][aria-checked=true]{background:var(--danger)}.status-set[disabled]{opacity:.55;pointer-events:none}.submit-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--accent) 6%,transparent);border:1px solid color-mix(in srgb,var(--accent) 16%,transparent)}.submit-bar .grow{flex:1;min-width:160px}.submit-bar b{font-size:12px}.submit-bar small{font-size:10.5px;color:var(--ink-3);display:block}.side-note{padding:10px 12px;border-radius:12px;font-size:11px;line-height:1.6;background:var(--info-bg);border:1px solid var(--info-line);color:var(--ink-2);display:flex;gap:8px}.side-note .ic{color:var(--info);flex:none;margin-top:1px}.side-note[data-tone=warn]{background:var(--warn-bg);border-color:var(--warn-line)}.side-note[data-tone=warn] .ic{color:var(--warn)}.online-hero{position:relative;overflow:hidden;padding:22px 24px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;background-image:radial-gradient(90% 150% at 88% 0%,color-mix(in srgb,#3FC6FF 22%,transparent),transparent 62%),radial-gradient(80% 150% at 100% 100%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 60%),linear-gradient(150deg,#ffffff52,#fff0 62%)}.online-hero-copy{flex:1;min-width:260px}.online-hero h2{font-size:22px;font-weight:660;letter-spacing:-.025em}.online-hero p{font-size:12px;color:var(--ink-2);margin-top:5px;max-width:520px}.hero-stats{display:flex;gap:22px;margin-top:14px;flex-wrap:wrap}.hero-stat b{display:block;font-family:var(--font-num);font-size:20px;font-weight:650;letter-spacing:-.03em}.hero-stat small{font-size:10.5px;color:var(--ink-3)}.online-hero-art{width:190px;height:120px;flex:none;position:relative;border-radius:20px;overflow:hidden;background:linear-gradient(145deg,#6d4aff42,#3fc6ff2e);border:1px solid rgba(255,255,255,.35);box-shadow:inset 0 1px #ffffff80,0 20px 40px -22px #180e3880}.online-hero-art svg{width:100%;height:100%}@media(max-width:1100px){.online-hero-art{display:none}}.live-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.live-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;min-width:0;cursor:pointer;background:color-mix(in srgb,#fff 28%,transparent);border:1px solid var(--line-soft);transition:all var(--base) var(--spring)}.live-card:hover{background:color-mix(in srgb,#fff 50%,transparent);transform:translateY(-1px)}.live-time{flex:none;padding:6px 8px;border-radius:9px;text-align:center;background:var(--accent-soft);color:var(--accent-ink);font-family:var(--font-num);font-size:11px;font-weight:650;font-variant-numeric:tabular-nums}.live-time small{display:block;font-size:8.5px;font-weight:500;opacity:.8}.live-card b{display:block;font-size:11.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-card small{font-size:10px;color:var(--ink-3)}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.course-card{padding:0;overflow:hidden;border-radius:20px;cursor:pointer;transition:transform var(--base) var(--spring),box-shadow var(--base) var(--ease)}.course-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}.cover{position:relative;aspect-ratio:16 / 8.4;overflow:hidden;background:linear-gradient(145deg,#6d4aff,#3fc6ff);display:flex;align-items:flex-end;padding:12px 14px}.cover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(70% 90% at 82% 12%,rgba(255,255,255,.38),transparent 60%),linear-gradient(180deg,#0000 30%,#0a061875)}.cover-art{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.85}.cover-art svg{width:100%;height:100%}.cover-title{position:relative;z-index:1;color:#fff;font-size:14px;font-weight:650;letter-spacing:-.01em;text-shadow:0 1px 6px rgba(0,0,0,.28)}.cover-badge{position:absolute;z-index:1;top:10px;left:10px;display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:9.5px;font-weight:650;color:#fff;background:#0c081857;border:1px solid rgba(255,255,255,.28);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cover-duration{position:absolute;z-index:1;right:10px;bottom:10px;font-size:9.5px;color:#fff;padding:2px 6px;border-radius:5px;background:#0c08186b;border:1px solid rgba(255,255,255,.18)}.cover.v2{background:linear-gradient(145deg,#0e8fb8,#2fd6a2)}.cover.v3{background:linear-gradient(145deg,#a85b00,#f2b45e)}.cover.v4{background:linear-gradient(145deg,#b0307a,#ff8a7a)}.cover.v5{background:linear-gradient(145deg,#3557c7,#7fa0ff)}.cover.v6{background:linear-gradient(145deg,#147c48,#7cd9a8)}.course-body{padding:11px 14px 13px}.course-meta{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--ink-3);flex-wrap:wrap}.course-title{font-size:13px;font-weight:620;margin-top:4px}.course-foot{display:flex;align-items:center;gap:8px;margin-top:9px}.course-foot .meter{flex:1}.course-foot small{font-size:9.5px;color:var(--ink-3);white-space:nowrap}.filter-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.filter-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.search-inline{display:flex;align-items:center;gap:7px;height:32px;padding:0 10px;border-radius:10px;background:color-mix(in srgb,#fff 32%,transparent);border:1px solid var(--line);color:var(--ink-3);min-width:180px}.search-inline input{border:0;background:none;outline:none;font-size:11.5px;color:var(--ink);width:100%}.search-inline .ic{width:14px;height:14px}.learn-grid{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(280px,.9fr);gap:14px}.player-card{padding:10px;overflow:hidden}.player{position:relative;aspect-ratio:16 / 9;border-radius:18px;overflow:hidden;background:#0b0912;box-shadow:inset 0 0 0 1px #ffffff14}.player-stage{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(80% 90% at 68% 22%,rgba(109,74,255,.48),transparent 60%),radial-gradient(70% 70% at 22% 84%,rgba(63,198,255,.28),transparent 62%),linear-gradient(150deg,#191327,#0b0912 62%)}.player-stage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(70% 70% at 50% 45%,#000 30%,transparent 100%);mask-image:radial-gradient(70% 70% at 50% 45%,#000 30%,transparent 100%)}.stage-code{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:flex-start;padding:6% 7%;color:#ffffffeb;font-family:var(--font-mono);font-size:clamp(8px,.78vw,11px);line-height:1.85;opacity:.92;pointer-events:none}.stage-code pre{margin:0;padding:14px 16px;max-width:54%;max-height:88%;overflow:hidden;white-space:pre;text-align:left;font:inherit;line-height:inherit;border-radius:12px;background:#0a081257;border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px #ffffff14;-webkit-backdrop-filter:blur(8px) saturate(140%);backdrop-filter:blur(8px) saturate(140%)}.stage-code .k{color:#c9b8ff}.stage-code .s{color:#7cd9a8}.stage-code .c{color:#ffffff57}.stage-code .f{color:#7cb8ff}.stage-watermark{position:absolute;right:14px;top:12px;z-index:3;font-size:9px;letter-spacing:.08em;color:#ffffff80;padding:3px 7px;border-radius:6px;border:1px solid rgba(255,255,255,.14);background:#0000002e}.stage-center{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center}.play-orb{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#ffffff29;border:1px solid rgba(255,255,255,.4);box-shadow:inset 0 1px #ffffff8c,0 16px 40px -16px #000c;-webkit-backdrop-filter:blur(18px) saturate(180%);backdrop-filter:blur(18px) saturate(180%);transition:transform var(--base) var(--spring),background var(--fast) var(--ease)}.play-orb:hover{transform:scale(1.06);background:#ffffff3d}.play-orb:active{transform:scale(.96)}.play-orb .ic{width:28px;height:28px;margin-left:2px}.player.is-playing .play-orb{opacity:0;pointer-events:none}.stage-eq{position:absolute;left:16px;bottom:60px;z-index:2;display:flex;gap:3px;align-items:flex-end;height:26px;opacity:0;transition:opacity var(--base) var(--ease)}.player.is-playing .stage-eq{opacity:.8}.stage-eq i{width:3px;border-radius:2px;background:#ffffffbd;animation:eq 1.1s var(--ease) infinite alternate}.stage-eq i:nth-child(2){animation-delay:.15s}.stage-eq i:nth-child(3){animation-delay:.3s}.stage-eq i:nth-child(4){animation-delay:.45s}.stage-eq i:nth-child(5){animation-delay:.6s}@keyframes eq{0%{height:5px}to{height:24px}}.player-controls{position:absolute;left:10px;right:10px;bottom:9px;z-index:4;display:flex;flex-direction:column;gap:6px;padding:8px 10px 7px;border-radius:12px;background:#0c09166b;border:1px solid rgba(255,255,255,.14);-webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%);color:#ffffffe6}.pc-track{height:4px;border-radius:99px;background:#ffffff2e;overflow:hidden;cursor:pointer}.pc-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#c9b8ff,#fff);box-shadow:0 0 8px #ffffff80;transition:width .3s linear}.pc-row{display:flex;align-items:center;gap:8px;font-size:9.5px}.pc-row .ic{width:16px;height:16px}.pc-btn{color:#ffffffdb;padding:3px;border-radius:6px}.pc-btn:hover{background:#ffffff24;color:#fff}.pc-time{font-variant-numeric:tabular-nums;color:#ffffffb8}.pc-right{margin-left:auto;display:flex;align-items:center;gap:4px}.pc-speed{font-size:9px;font-weight:700;padding:2px 6px;border-radius:5px;border:1px solid rgba(255,255,255,.24)}.player-foot{display:flex;align-items:center;gap:10px;padding:12px 8px 4px;flex-wrap:wrap}.player-foot h2{font-size:15px;font-weight:640}.player-foot .page-sub{margin-top:2px}.outline-card{padding:14px 12px}.outline{display:flex;flex-direction:column;gap:2px}.chapter{border-radius:12px}.chapter-head{display:flex;align-items:center;gap:8px;width:100%;padding:8px;border-radius:10px;text-align:left;transition:background var(--fast) var(--ease)}.chapter-head:hover{background:color-mix(in srgb,#fff 26%,transparent)}.chapter-head b{font-size:11.5px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chapter-head small{font-size:9.5px;color:var(--ink-3);flex:none}.chapter-head .ic{width:14px;height:14px;color:var(--ink-3);transition:transform var(--base) var(--ease)}.chapter.is-open .chapter-head .ic{transform:rotate(180deg)}.chapter-body{padding:2px 0 4px 6px}.lesson-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border-radius:9px;text-align:left;font-size:11px;color:var(--ink-2);transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}.lesson-item:hover{background:color-mix(in srgb,#fff 30%,transparent);color:var(--ink)}.lesson-item.is-current{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.lesson-item .li-state{width:15px;height:15px;flex:none;display:grid;place-items:center;color:var(--ink-3)}.lesson-item.is-done .li-state{color:var(--ok)}.lesson-item.is-current .li-state{color:var(--accent)}.lesson-item .li-state .ic{width:13px;height:13px}.lesson-item .li-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-item .li-time{font-size:9px;color:var(--ink-3);flex:none}.learn-lower{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px}.quiz-question{font-size:13px;font-weight:600;line-height:1.6;margin:4px 0 10px}.quiz-option{display:flex;align-items:center;gap:9px;width:100%;padding:9px 11px;margin-top:6px;border-radius:11px;text-align:left;font-size:12px;color:var(--ink-2);background:color-mix(in srgb,#fff 26%,transparent);border:1px solid var(--line);transition:all var(--fast) var(--ease)}.quiz-option:hover{background:color-mix(in srgb,#fff 48%,transparent);color:var(--ink)}.quiz-option .qk{width:20px;height:20px;border-radius:7px;flex:none;display:grid;place-items:center;font-size:10px;font-weight:700;background:color-mix(in srgb,var(--ink) 6%,transparent)}.quiz-option.is-correct{border-color:var(--ok-line);background:var(--ok-bg);color:var(--ok)}.quiz-option.is-correct .qk{background:var(--ok);color:#fff}.quiz-option.is-wrong{border-color:var(--danger-line);background:var(--danger-bg);color:var(--danger)}.quiz-option.is-wrong .qk{background:var(--danger);color:#fff}.quiz-feedback{margin-top:9px;font-size:11px;color:var(--ink-2);padding:8px 10px;border-radius:10px;background:var(--accent-softer);border:1px solid color-mix(in srgb,var(--accent) 14%,transparent)}.quiz-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.quiz-progress{font-size:10px;color:var(--ink-3)}.note-item{padding:9px 0}.note-item+.note-item{border-top:1px solid var(--line-soft)}.note-time{font-size:9.5px;color:var(--accent-ink);font-weight:600;font-variant-numeric:tabular-nums}.note-text{font-size:11.5px;color:var(--ink-2);margin-top:2px;line-height:1.55}.hw-stats{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.hw-stat b{font-family:var(--font-num);font-size:20px;font-weight:650;letter-spacing:-.03em;display:block}.hw-stat small{font-size:10px;color:var(--ink-3)}.hw-stat[data-tone=warn] b{color:var(--warn)}.hw-stat[data-tone=ok] b{color:var(--ok)}.hw-grid{display:grid;grid-template-columns:292px minmax(0,1fr);gap:14px;align-items:start}.hw-list{padding:10px}.hw-item{display:flex;flex-direction:column;gap:4px;width:100%;padding:10px 11px;border-radius:13px;text-align:left;transition:background var(--fast) var(--ease),box-shadow var(--base) var(--ease)}.hw-item:hover{background:color-mix(in srgb,#fff 34%,transparent)}.hw-item.is-active{background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent)}.hw-item-title{font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px}.hw-item-meta{font-size:10px;color:var(--ink-3);display:flex;gap:8px;flex-wrap:wrap}.hw-item-bar{display:flex;align-items:center;gap:6px;margin-top:2px}.hw-item-bar .meter{flex:1;height:4px}.hw-item-bar small{font-size:9px;color:var(--ink-3)}.grade-card{padding:0;overflow:hidden}.grade-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}.grade-head-main{flex:1;min-width:200px}.grade-head h3{font-size:13.5px;font-weight:640}.grade-head small{font-size:10.5px;color:var(--ink-3)}.grade-body{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.9fr)}.grade-submit{padding:16px 18px;border-right:1px solid var(--line-soft);min-width:0}.grade-side{padding:16px 18px;min-width:0}.submission-box{padding:12px;border-radius:13px;background:color-mix(in srgb,#fff 24%,transparent);border:1px solid var(--line-soft)}[data-theme=dark] .submission-box{background:#ffffff09}.file-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:9px;font-size:10.5px;background:color-mix(in srgb,#fff 36%,transparent);border:1px solid var(--line)}.file-chip .ic{color:var(--accent);width:14px;height:14px}.code{margin:10px 0 0;padding:12px 13px;border-radius:12px;overflow-y:auto;overflow-x:hidden;background:#141021;color:#e9e4f5;font-family:var(--font-mono);font-size:10.5px;line-height:1.75;border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px #ffffff0f;max-height:240px;-moz-tab-size:2;tab-size:2;white-space:pre-wrap;overflow-wrap:anywhere}.code::-webkit-scrollbar{width:8px}.code::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:999px}.code::-webkit-scrollbar-track{background:transparent}.code .k{color:#c9b8ff}.code .s{color:#7cd9a8}.code .c{color:#6e6879}.code .f{color:#7cb8ff}.code .p{color:#ffc97a}.student-note{font-size:11px;color:var(--ink-2);line-height:1.6;margin-top:8px}.rubric{display:grid;gap:6px}.rubric-row{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:10px;background:color-mix(in srgb,#fff 22%,transparent);border:1px solid var(--line-soft)}.rubric-row label{font-size:11px;color:var(--ink-2);flex:1;min-width:0}.rubric-row small{font-size:9.5px;color:var(--ink-3)}.stepper{display:flex;align-items:center;gap:2px;flex:none}.stepper button{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;color:var(--ink-2);background:color-mix(in srgb,var(--ink) 5%,transparent)}.stepper button:hover{background:color-mix(in srgb,var(--ink) 10%,transparent)}.stepper input{width:34px;height:24px;text-align:center;border:0;background:none;font-size:11.5px;font-weight:650;font-variant-numeric:tabular-nums;outline:none;-moz-appearance:textfield}.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.rubric-total{display:flex;align-items:center;justify-content:space-between;padding:9px 4px 2px;font-size:11.5px}.rubric-total b{font-family:var(--font-num);font-size:20px;font-weight:660;letter-spacing:-.03em}.grade-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.grade-actions .btn-primary{flex:1}.hw-progress{font-size:10px;color:var(--ink-3);text-align:right;margin-top:6px}.fin-summary{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:18px 20px;background-image:radial-gradient(120% 180% at 0% 0%,color-mix(in srgb,var(--accent) 15%,transparent),transparent 58%),linear-gradient(158deg,#ffffff4d,#fff0 62%)}.fin-amount{flex:none}.fin-amount small{font-size:10.5px;color:var(--ink-3)}.fin-amount b{display:block;font-family:var(--font-num);font-size:28px;font-weight:660;letter-spacing:-.035em}.fin-split{display:flex;gap:22px;flex-wrap:wrap}.fin-split div small{display:block;font-size:10px;color:var(--ink-3)}.fin-split div b{font-family:var(--font-num);font-size:16px;font-weight:640}.fin-split .due b{color:var(--danger)}.fin-summary .grow{flex:1}.fin-summary .btn{flex:none}.finance-grid{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(300px,.9fr);gap:14px;align-items:start}.bill-row{display:grid;grid-template-columns:minmax(0,1.5fr) 92px 92px 82px auto;align-items:center;gap:10px;padding:11px 8px;border-radius:12px;min-width:0}.bill-row+.bill-row{border-top:1px solid var(--line-soft)}.bill-row.is-head{font-size:9.5px;color:var(--ink-3);font-weight:600;letter-spacing:.04em;padding-top:0}.bill-name{font-size:12px;font-weight:550;display:flex;align-items:center;gap:6px;min-width:0}.bill-name small{display:block;font-size:9.5px;color:var(--ink-3);font-weight:400}.bill-amt{font-family:var(--font-num);font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums;text-align:right}.bill-amt.due{color:var(--danger)}.bill-actions{display:flex;justify-content:flex-end}.installments{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:4px}.inst{position:relative;padding:26px 8px 0;text-align:center}.inst:before{content:"";position:absolute;top:9px;left:0;right:0;height:2px;background:var(--line)}.inst:first-child:before{left:50%}.inst:last-child:before{right:50%}.inst.is-paid:before{background:color-mix(in srgb,var(--ok) 55%,transparent)}.inst-dot{position:absolute;top:3px;left:50%;transform:translate(-50%);width:14px;height:14px;border-radius:50%;background:color-mix(in srgb,var(--ink) 12%,transparent);border:3px solid color-mix(in srgb,var(--bg) 45%,#fff 55%);box-shadow:0 0 0 1px var(--line)}.inst.is-paid .inst-dot{background:var(--ok);box-shadow:0 0 0 1px var(--ok),0 0 10px color-mix(in srgb,var(--ok) 40%,transparent)}.inst.is-due .inst-dot{background:var(--danger);box-shadow:0 0 0 1px var(--danger),0 0 12px color-mix(in srgb,var(--danger) 45%,transparent)}.inst b{display:block;font-family:var(--font-num);font-size:13px;font-weight:640;font-variant-numeric:tabular-nums}.inst small{display:block;font-size:9.5px;color:var(--ink-3);margin-top:1px}.inst .pill{margin-top:5px}.refund-calc{border-radius:14px;background:color-mix(in srgb,#fff 24%,transparent);border:1px solid var(--line-soft);padding:11px 12px}[data-theme=dark] .refund-calc{background:#ffffff09}.rc-line{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--ink-2);padding:3px 0}.rc-line b{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}.rc-line.is-negative b{color:var(--danger)}.rc-total{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:7px;padding-top:8px;border-top:1px dashed var(--line);font-size:11px}.rc-total b{font-family:var(--font-num);font-size:20px;font-weight:660;color:var(--accent-ink)}.fin-tabs{margin-bottom:12px}.dorm-grid{display:grid;grid-template-columns:minmax(0,1.68fr) minmax(286px,.86fr);gap:14px;align-items:start}.dorm-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.floor{margin-top:14px}.floor:first-child{margin-top:0}.floor-head{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-3);margin-bottom:8px}.floor-head:after{content:"";flex:1;height:1px;background:var(--line-soft)}.room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.room{padding:10px 11px;border-radius:14px;min-width:0;background:color-mix(in srgb,#fff 26%,transparent);border:1px solid var(--line-soft);transition:background var(--fast) var(--ease),box-shadow var(--base) var(--ease)}.room:hover{background:color-mix(in srgb,#fff 42%,transparent)}.room.is-full{border-color:color-mix(in srgb,var(--accent) 16%,transparent)}.room-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:7px}.room-head b{font-size:12px;font-weight:640;font-variant-numeric:tabular-nums}.room-head small{font-size:9.5px;color:var(--ink-3)}.beds{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.bed{position:relative;height:38px;border-radius:10px;min-width:0;display:grid;place-items:center;font-size:10.5px;font-weight:600;transition:transform var(--base) var(--spring),background var(--fast) var(--ease)}.bed:hover{transform:translateY(-1px) scale(1.03)}.bed.is-occupied{color:var(--accent-ink);background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 20%,transparent),color-mix(in srgb,var(--accent) 10%,transparent));border:1px solid color-mix(in srgb,var(--accent) 22%,transparent)}.bed.is-empty{color:var(--ink-3);background:transparent;border:1px dashed var(--line-2)}.bed.is-empty:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-softer)}.bed.is-maint{color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-line)}.bed.is-reserved{color:var(--info);background:var(--info-bg);border:1px solid var(--info-line)}.bed .bed-no{position:absolute;top:3px;left:5px;font-size:8px;font-weight:500;opacity:.7}.bed .ic{width:13px;height:13px}.bed.is-empty .ic{opacity:.7}.bed-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:10px;color:var(--ink-3);margin-top:12px}.bed-legend span{display:inline-flex;align-items:center;gap:4px}.bed-legend i{width:9px;height:9px;border-radius:3px}.inspect-row{display:flex;align-items:center;gap:8px;padding:8px 0}.inspect-row+.inspect-row{border-top:1px solid var(--line-soft)}.inspect-row b{font-size:11.5px;font-weight:600}.inspect-row small{display:block;font-size:9.5px;color:var(--ink-3)}.inspect-row .status-set{margin-left:auto}.inspect-row .status-set button{min-width:30px;font-size:9.5px;padding:0 5px}.donut-wrap{display:flex;align-items:center;gap:14px}.donut{--p: 80;width:92px;height:92px;border-radius:50%;flex:none;position:relative;background:conic-gradient(var(--accent) calc(var(--p) * 1%),color-mix(in srgb,var(--ink) 8%,transparent) 0);display:grid;place-items:center}.donut:before{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border-radius:50%;background:color-mix(in srgb,var(--bg) 55%,#fff 45%);box-shadow:inset 0 1px 3px #180e381f}[data-theme=dark] .donut:before{background:#1a1524}.donut b{position:relative;z-index:1;font-family:var(--font-num);font-size:19px;font-weight:660;letter-spacing:-.03em}.donut b small{font-size:9px;font-weight:500;color:var(--ink-3)}.identity-hero{padding:22px 24px;display:grid;grid-template-columns:minmax(0,1fr) 190px minmax(0,1fr);gap:18px;align-items:center;background-image:radial-gradient(100% 160% at 50% 0%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 64%),linear-gradient(158deg,#ffffff4d,#fff0 62%)}.id-card{display:flex;align-items:center;gap:12px;min-width:0}.id-card .id-text{min-width:0}.id-card b{font-size:15px;font-weight:650;display:block}.id-card small{font-size:10.5px;color:var(--ink-3);display:block}.id-card .mono{margin-top:4px;color:var(--ink-2)}.id-side{text-align:right}.id-side small{font-size:9.5px;color:var(--ink-3);display:block}.id-side .pill{margin-top:5px}.switch-visual{position:relative;height:76px;display:grid;place-items:center}.switch-line{position:absolute;left:8%;right:8%;top:50%;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.45}.switch-line:after{content:"";position:absolute;top:-2px;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);animation:travel 3.6s var(--ease) infinite}@keyframes travel{0%{left:0;opacity:0}12%{opacity:1}88%{opacity:1}to{left:calc(100% - 6px);opacity:0}}.switch-orb{position:relative;z-index:1;width:52px;height:52px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(150deg,#8f73ff,#5a34f2);color:#fff;border:1px solid rgba(255,255,255,.4);box-shadow:inset 0 1px #ffffff80,0 14px 30px -12px #6d4affcc}.switch-orb .ic{width:24px;height:24px}.sys-badge{display:inline-flex;align-items:center;gap:5px;font-size:9.5px;font-weight:600;color:var(--ink-3);margin-top:6px}.sys-badge i{width:6px;height:6px;border-radius:50%;background:var(--accent)}.sys-badge.pd i{background:#0e8fb8}.cross-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cross-panel{padding:16px 18px;border-radius:18px;background:color-mix(in srgb,#fff 22%,transparent);border:1px solid var(--line-soft)}[data-theme=dark] .cross-panel{background:#ffffff08}.cross-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.cross-head b{font-size:12.5px;font-weight:640;display:flex;align-items:center;gap:6px}.cross-head .ic{width:15px;height:15px;color:var(--accent)}.cross-head.pd .ic{color:#37b6da}.cross-head small{font-size:9.5px;color:var(--ink-3)}.cross-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:6px 0;font-size:11.5px}.cross-row+.cross-row{border-top:1px solid var(--line-soft)}.cross-row span{color:var(--ink-3)}.cross-row b{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-weight:620}.cross-row b.warn{color:var(--warn)}.cross-row b.ok{color:var(--ok)}.cross-row b.danger{color:var(--danger)}.elig-card{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.elig-ico{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:var(--ok-bg);color:var(--ok);flex:none}.elig-ico.is-paused{background:var(--danger-bg);color:var(--danger)}.elig-main{flex:1;min-width:200px}.elig-main b{font-size:13px;font-weight:640;display:flex;align-items:center;gap:8px}.elig-main p{font-size:10.5px;color:var(--ink-3);margin-top:2px}.sync-table{width:100%}.sync-row{display:grid;grid-template-columns:minmax(0,1.5fr) 80px 76px 86px;gap:8px;align-items:center;padding:9px 4px;font-size:11px}.sync-row+.sync-row{border-top:1px solid var(--line-soft)}.sync-row.is-head{font-size:9.5px;color:var(--ink-3);font-weight:600;letter-spacing:.04em}.sync-name{display:flex;align-items:center;gap:7px;min-width:0}.sync-name b{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sync-time{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:10px}.map-row{display:flex;align-items:center;gap:10px;padding:9px 4px;min-width:0}.map-row+.map-row{border-top:1px solid var(--line-soft)}.map-name{flex:1;min-width:0}.map-name b{font-size:11.5px;font-weight:550;display:block}.map-name small{font-size:9.5px;color:var(--ink-3)}.map-arrow{color:var(--ink-3);flex:none}.map-arrow .ic{width:14px;height:14px}.map-account{font-family:var(--font-mono);font-size:10px;color:var(--ink-2);flex:none}.boundary-note{display:flex;gap:10px;padding:11px 12px;border-radius:13px;background:var(--warn-bg);border:1px solid var(--warn-line);font-size:11px;line-height:1.6;color:var(--ink-2)}.boundary-note .ic{color:var(--warn);flex:none;margin-top:1px}.boundary-note b{color:var(--ink)}@media(max-width:1279px){.home-grid{grid-template-columns:minmax(0,1.55fr) minmax(280px,.9fr)}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.attend-grid{grid-template-columns:minmax(0,1.6fr) minmax(260px,.9fr)}.hw-grid{grid-template-columns:260px minmax(0,1fr)}.finance-grid{grid-template-columns:minmax(0,1.5fr) minmax(280px,.9fr)}.dorm-grid{grid-template-columns:minmax(0,1.55fr) minmax(260px,.85fr)}.room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bill-row{grid-template-columns:minmax(0,1.4fr) 78px 78px 70px auto}}@media(max-width:1150px){.home-grid,.attend-grid{grid-template-columns:minmax(0,1fr)}.learn-grid{grid-template-columns:minmax(0,1.6fr) minmax(250px,.9fr)}.finance-grid,.dorm-grid{grid-template-columns:minmax(0,1fr)}.metric-strip{grid-template-columns:repeat(5,minmax(0,1fr))}.identity-hero{grid-template-columns:minmax(0,1fr) 120px minmax(0,1fr)}.hw-grid{grid-template-columns:240px minmax(0,1fr)}.grade-body{grid-template-columns:minmax(0,1.15fr) minmax(240px,.9fr)}}@media(max-width:1024px){.learn-lower{grid-template-columns:minmax(0,1fr)}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.live-strip,.hw-grid{grid-template-columns:minmax(0,1fr)}.hw-list{display:block}#hwList{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:start}.grade-body{grid-template-columns:minmax(0,1fr)}.grade-submit{border-right:0;border-bottom:1px solid var(--line-soft)}.room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.identity-hero{grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);text-align:left;gap:10px}.identity-hero>.id-side{justify-content:flex-end!important}.switch-visual{height:60px}.switch-line{display:none}.id-side{text-align:right}.cross-grid{grid-template-columns:minmax(0,1fr)}.installments{gap:0}}@media(max-width:860px){.metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.metric:nth-child(3),.metric:nth-child(5){border-left:0}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#hwList,.course-grid,.detail-list{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.switch-line:after,.live-pulse i,.stage-eq i,.today-item[data-state=live] .today-rail i{animation:none!important}}.risk-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:14px;border-radius:18px;border:1px solid var(--danger-line);background:linear-gradient(100deg,var(--danger-bg),color-mix(in srgb,var(--danger-bg) 40%,transparent));box-shadow:inset 0 1px #ffffff80,0 8px 22px -18px #bc271899;color:var(--ink)}.risk-banner[data-tone=warn]{border-color:var(--warn-line);background:linear-gradient(100deg,var(--warn-bg),color-mix(in srgb,var(--warn-bg) 36%,transparent))}.risk-banner[data-tone=info]{border-color:var(--info-line);background:linear-gradient(100deg,var(--info-bg),color-mix(in srgb,var(--info-bg) 36%,transparent))}.risk-banner .rb-ico{width:34px;height:34px;flex:none;border-radius:11px;display:grid;place-items:center;color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-line)}.risk-banner[data-tone=warn] .rb-ico{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-line)}.risk-banner[data-tone=info] .rb-ico{color:var(--info);background:var(--info-bg);border-color:var(--info-line)}.risk-banner b{font-size:12.5px;font-weight:650;letter-spacing:-.01em}.risk-banner p{margin:2px 0 0;font-size:11.5px;color:var(--ink-2);line-height:1.5}.cal-block.is-dim{opacity:.28}.truncate{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bed span.truncate{padding:0 3px;max-width:100%}.roster{max-height:clamp(220px,calc(100vh - 470px),440px);overflow-y:auto;padding-right:2px;scrollbar-gutter:stable}.page-title:focus,.page-title:focus-visible{outline:none}.risk-foot{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft);display:grid;gap:4px;font-size:11px;color:var(--ink-3);line-height:1.55}.risk-foot b{color:var(--ink-2);font-weight:600;margin-right:8px}.view-chip{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 9px 0 10px;border-radius:999px;color:var(--ink);background:var(--glass-fill, var(--accent-softer));border:1px solid var(--line);box-shadow:0 1px 0 var(--glass-rim, rgba(255,255,255,.5)) inset;cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease),transform .18s var(--ease)}.view-chip:hover{background:var(--accent-soft);border-color:var(--accent-line, var(--accent))}.view-chip:active{transform:scale(.98)}.view-chip .ic{color:var(--accent);flex:none}.view-chip-text{display:flex;flex-direction:column;line-height:1.15;text-align:left}.view-chip-text b{font-size:12px;font-weight:650;letter-spacing:-.01em}.view-chip-text small{font-size:10px;color:var(--ink-3)}.view-count{display:inline-flex;align-items:baseline;gap:1px;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent-ink);background:var(--accent-soft)}.view-count i{font-style:normal;font-size:9px;font-weight:500;opacity:.8}.view-chip.is-online{border-color:color-mix(in srgb,var(--accent) 34%,transparent)}.view-menu{display:grid;gap:8px}.view-option{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border-radius:16px;text-align:left;cursor:pointer;background:var(--accent-softer);border:1px solid var(--line);transition:border-color .2s var(--ease),background .2s var(--ease),transform .18s var(--ease)}.view-option:hover{border-color:var(--accent-line, var(--accent));transform:translateY(-1px)}.view-option.is-on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-softer)}.vo-ico{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line, var(--line))}.vo-main{min-width:0;display:grid;gap:2px}.vo-main b{font-size:13px;font-weight:650}.vo-main small{font-size:11.5px;color:var(--ink-2)}.vo-nav{font-size:10.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav.is-swapping .nav-item{animation:navIn .34s var(--ease) both;animation-delay:calc(var(--i, 0) * 18ms)}@keyframes navIn{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.nav.is-swapping .nav-item,.view-option{animation:none!important;transition:none!important}}.type-tag{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:650;letter-spacing:.01em;border:1px solid var(--line);background:var(--accent-softer);color:var(--ink-2)}.type-tag em{font-style:normal;font-size:9.5px;font-weight:600;letter-spacing:.08em;opacity:.72}.type-tag[data-type=ONLINE]{color:var(--accent-ink);background:var(--accent-soft);border-color:var(--accent-line, var(--accent))}.type-tag[data-type=BLENDED]{color:var(--info);background:var(--info-bg);border-color:var(--info-line)}.type-tag[data-type=OFFLINE]{color:var(--ink-2);background:color-mix(in srgb,var(--ink) 5%,transparent)}.lab-layout{display:grid;grid-template-columns:minmax(300px,370px) minmax(0,1fr);gap:12px;align-items:start}.lab-filter{margin-bottom:10px}.lab-group{border-top:1px solid var(--line-soft);padding-top:8px;margin-top:8px}.lab-group:first-child{border-top:0;padding-top:0;margin-top:0}.lab-group-head{display:flex;align-items:baseline;gap:8px;padding:2px 4px 6px}.lab-group-head b{font-size:11.5px;font-weight:650;color:var(--ink-2)}.lab-group-head span{font-size:10.5px;color:var(--ink-3)}.lab-task{width:100%;display:flex;align-items:center;gap:8px;text-align:left;padding:9px 10px;border-radius:12px;cursor:pointer;background:transparent;border:1px solid transparent;transition:background .18s var(--ease),border-color .18s var(--ease)}.lab-task:hover{background:var(--accent-softer)}.lab-task.is-active{background:var(--accent-soft);border-color:var(--accent-line, var(--accent))}.lab-task-main{min-width:0;display:grid;gap:3px;flex:1}.lab-task-main b{font-size:12px;font-weight:600;line-height:1.35}.lab-task-main small{font-size:10px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lab-task-end{display:inline-flex;align-items:center;gap:4px;flex:none;color:var(--ink-3)}.lab-empty{display:grid;place-items:center;gap:4px;padding:26px 10px;color:var(--ink-3);text-align:center}.lab-empty .ic{width:24px;height:24px;opacity:.6}.lab-empty b{font-size:12px;color:var(--ink-2)}.lab-empty small{font-size:11px}.lab-detail-card{--pad: 16px}.lab-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:10.5px;color:var(--ink-3)}.lab-breadcrumb span{opacity:.5}.lab-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin:6px 0 4px}.lab-title-row h2{margin:0;font-size:18px;font-weight:680;letter-spacing:-.02em;line-height:1.25}.lab-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:11px;color:var(--ink-2)}.lab-meta>span{display:inline-flex;align-items:center;gap:4px}.lab-meta .pill{height:18px;padding:0 7px;font-size:10px}.lab-goal{display:flex;gap:8px;align-items:flex-start;margin:10px 0 0;padding:9px 10px;border-radius:12px;font-size:11.5px;line-height:1.55;color:var(--ink-2);background:var(--accent-softer);border:1px solid var(--line-soft)}.lab-goal b{color:var(--ink);font-weight:650;margin-right:6px}.lab-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.lab-result{margin-top:12px;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:var(--accent-softer)}.lab-result[data-tone=danger]{background:var(--danger-bg);border-color:var(--danger-line)}.lab-result[data-tone=ok]{background:var(--ok-bg);border-color:var(--ok-line)}.lab-result[data-tone=muted]{background:color-mix(in srgb,var(--ink) 4%,transparent)}.lab-result-head{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:12px}.lab-result-head .ic{flex:none}.lab-result[data-tone=danger] .lab-result-head .ic{color:var(--danger)}.lab-result[data-tone=ok] .lab-result-head .ic{color:var(--ok)}.lab-result-head b{font-weight:680}.lab-result-time{margin-left:auto;font-size:10px;color:var(--ink-3)}.lab-result-reason{margin:6px 0 0;font-size:11.5px;line-height:1.55;color:var(--ink);font-weight:550}.lab-result-detail{margin:3px 0 0;font-size:11px;line-height:1.55;color:var(--ink-2)}.lab-logs{margin-top:7px}.lab-logs summary{cursor:pointer;font-size:10.5px;color:var(--ink-2)}.lab-logs pre{margin:6px 0 0;padding:8px 10px;border-radius:10px;overflow:auto;font-family:var(--font-mono);font-size:10.5px;line-height:1.6;color:#d8e0f0;background:#12151c;border:1px solid rgba(255,255,255,.08)}.lab-section{margin-top:14px;border-top:1px solid var(--line-soft);padding-top:12px}.lab-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.lab-section-head h3{margin:0;font-size:12.5px;font-weight:650;letter-spacing:-.01em}.placeholder-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:600;color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-line)}.placeholder-tag .ic{width:12px;height:12px}.lab-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}.lab-step{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:9px;align-items:start;padding:9px 10px;border-radius:12px;border:1px solid var(--line-soft);background:color-mix(in srgb,var(--ink) 2.5%,transparent)}.lab-step[data-state=pass]{border-color:var(--ok-line);background:var(--ok-bg)}.lab-step[data-state=fail]{border-color:var(--danger-line);background:var(--danger-bg)}.step-no{width:26px;height:26px;display:grid;place-items:center;border-radius:9px;font-size:11px;font-weight:700;color:var(--ink-2);background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid var(--line)}.lab-step[data-state=pass] .step-no{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-line)}.lab-step[data-state=fail] .step-no{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-line)}.step-no .ic{width:14px;height:14px}.step-main{min-width:0}.step-main b{display:block;font-size:11.5px;font-weight:650}.step-main p{margin:2px 0 0;font-size:10.5px;line-height:1.5;color:var(--ink-2)}.step-main small{display:block;margin-top:3px;font-size:10px;color:var(--ink-3)}.step-state{font-size:10px;font-weight:650;color:var(--ink-3);white-space:nowrap}.lab-step[data-state=pass] .step-state{color:var(--ok)}.lab-step[data-state=fail] .step-state{color:var(--danger)}.lab-env{border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:#0e1117}.lab-env-bar{display:flex;align-items:center;gap:8px;padding:7px 10px;background:#171b23;border-bottom:1px solid rgba(255,255,255,.07)}.env-dots{display:inline-flex;gap:4px}.env-dots i{width:7px;height:7px;border-radius:50%;background:#3a4150}.env-dots i:first-child{background:#e5675c}.env-dots i:nth-child(2){background:#e2b34e}.env-dots i:nth-child(3){background:#5fbf75}.env-tab{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:7px;font-size:10px;color:#8c95a8}.env-tab .ic{width:12px;height:12px}.env-tab.is-on{color:#e6ebf5;background:#ffffff12}.env-live{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:9.5px;color:#8c95a8}.env-live i{width:6px;height:6px;border-radius:50%;background:#5fbf75;box-shadow:0 0 0 3px #5fbf7526}.lab-env-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:1px;background:#ffffff12}.term,.editor{position:relative;min-height:230px;padding:10px 12px;background:#0e1117}.term{font-family:var(--font-mono);font-size:10.5px;line-height:1.75;color:#c7d0e0;overflow:auto}.term-line{white-space:pre-wrap;word-break:break-word}.term-line.dim{color:#79839a}.term-line.ok{color:#6fd08c}.term-line.bad{color:#f08a80}.term-prompt{color:#8e6fff}.term-path{color:#6fa8ff}.term-cursor{display:flex;align-items:center;gap:5px}.caret{display:inline-block;width:6px;height:12px;background:#c7d0e0;animation:caret 1.1s steps(1) infinite}@keyframes caret{50%{opacity:0}}.term-note,.editor-note{position:absolute;left:10px;right:10px;bottom:7px;display:flex;align-items:center;gap:4px;font-family:var(--font);font-size:9px;color:#79839a}.term-note .ic,.editor-note .ic{width:11px;height:11px}.editor{display:flex;gap:8px;overflow:auto}.editor-gutter{flex:none;font-family:var(--font-mono);font-size:10.5px;line-height:1.75;color:#4c5568;text-align:right;-webkit-user-select:none;user-select:none}.editor-code{margin:0;font-family:var(--font-mono);font-size:10.5px;line-height:1.75;color:#c7d0e0}.editor-code .hl{color:#c9a7ff}.lab-env-foot{display:flex;align-items:flex-start;gap:6px;padding:8px 10px;font-size:10px;line-height:1.5;color:#e9c77e;background:#1a1710;border-top:1px solid rgba(255,255,255,.06)}.lab-env-foot .ic{width:12px;height:12px;flex:none;margin-top:1px}.lab-env-foot strong{font-weight:700}.lab-submit{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:8px;align-items:center}.lab-submit-opt{display:inline-flex;align-items:center;gap:7px;cursor:pointer;padding:7px 9px;border-radius:11px;border:1px solid var(--line);background:color-mix(in srgb,var(--ink) 3%,transparent)}.lab-submit-opt.is-on{border-color:var(--accent-line, var(--accent));background:var(--accent-soft)}.lab-submit-opt input{accent-color:var(--accent);margin:0}.lab-submit-opt .ic{width:14px;height:14px;color:var(--accent)}.lab-submit-opt span{display:grid;line-height:1.2}.lab-submit-opt b{font-size:11px;font-weight:600}.lab-submit-opt small{font-size:9.5px;color:var(--ink-3)}.lab-submit-input{min-width:0}.review-list{display:grid;gap:8px}.review-row{padding:10px;border-radius:13px;border:1px solid var(--line-soft);background:color-mix(in srgb,var(--ink) 2%,transparent)}.review-top{display:flex;align-items:center;gap:8px}.review-top>div{min-width:0;flex:1}.review-top b{display:block;font-size:11.5px;font-weight:650}.review-top small{display:block;font-size:10px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-note{display:flex;align-items:center;gap:5px;margin-top:6px;font-size:10.5px;color:var(--ink-2)}.review-note .ic{width:12px;height:12px;flex:none}.review-note em{margin-left:auto;font-style:normal;color:var(--ink-3);font-size:10px;white-space:nowrap}.review-reason{display:flex;gap:5px;margin-top:6px;padding:6px 8px;border-radius:9px;font-size:10px;line-height:1.5;color:var(--ink-2);background:var(--danger-bg);border:1px solid var(--danger-line)}.review-reason .ic{width:12px;height:12px;flex:none;color:var(--danger);margin-top:1px}.review-reason b{display:block;color:var(--danger);font-weight:650;margin-bottom:1px}.review-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:7px}.btn-ghost-danger{color:var(--danger);border-color:var(--danger-line);background:transparent}.btn-ghost-danger:hover{background:var(--danger-bg)}.field-label{display:block;font-size:11px;font-weight:600;color:var(--ink-2);margin-bottom:5px}.seg{display:inline-flex;gap:2px;padding:2px;border-radius:10px;background:color-mix(in srgb,var(--ink) 5%,transparent);border:1px solid var(--line-soft)}.seg button{padding:4px 10px;border-radius:8px;font-size:10.5px;color:var(--ink-2);background:transparent}.seg button.is-on{color:var(--ink);background:var(--accent-soft);box-shadow:0 1px #fff6 inset;font-weight:600}.hero-type{display:inline-flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}.hero-type .tiny{font-size:10px;color:var(--ink-3)}@media(max-width:1240px){.lab-layout{grid-template-columns:minmax(280px,330px) minmax(0,1fr)}.lab-submit{grid-template-columns:auto auto minmax(0,1fr)}.lab-submit .btn{grid-column:1 / -1;justify-self:end}}@media(max-width:1100px){.lab-layout,.lab-env-grid{grid-template-columns:minmax(0,1fr)}.term,.editor{min-height:180px}}@media(max-width:860px){.lab-submit{grid-template-columns:minmax(0,1fr)}.lab-submit .btn{justify-self:stretch}.lab-title-row{flex-direction:column}.view-chip-text small{display:none}}.plan-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);gap:12px;align-items:start}.plan-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.plan-day{border:1px solid var(--line-soft);border-radius:13px;padding:8px;background:color-mix(in srgb,var(--ink) 2.5%,transparent);min-width:0}.plan-day.is-today{border-color:var(--accent-line, var(--accent));background:var(--accent-softer)}.plan-day-head{display:grid;gap:1px;margin-bottom:7px}.plan-day-head b{font-size:11px;font-weight:650}.plan-day-head span{font-size:9.5px;color:var(--ink-3)}.plan-day.is-today .plan-day-head b{color:var(--accent-ink)}.plan-day-body{display:grid;gap:5px}.plan-item{display:grid;gap:2px;text-align:left;padding:6px 7px;border-radius:9px;cursor:pointer;border:1px solid var(--line-soft);background:var(--glass-fill, var(--accent-softer));transition:border-color .18s var(--ease),transform .18s var(--ease)}.plan-item:hover{border-color:var(--accent-line, var(--accent));transform:translateY(-1px)}.plan-item[data-tone=info]{border-left:2px solid var(--info)}.plan-item[data-tone=accent]{border-left:2px solid var(--accent)}.plan-item[data-tone=warn]{border-left:2px solid var(--warn)}.plan-item[data-tone=danger]{border-left:2px solid var(--danger)}.plan-item-time{font-size:9px;font-weight:700;color:var(--ink-3);font-variant-numeric:tabular-nums}.plan-item-title{font-size:10.5px;line-height:1.35;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.plan-item-meta{font-size:9px;color:var(--ink-3)}.plan-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:space-between;margin-top:10px;padding-top:9px;border-top:1px solid var(--line-soft);font-size:10px;color:var(--ink-3)}.plan-foot span{display:inline-flex;align-items:center;gap:4px}.plan-foot .ic{width:12px;height:12px}.plan-dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--accent)}.plan-dot[data-tone=warn]{background:var(--warn)}.plan-dot[data-tone=ok]{background:var(--ok)}.pace-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 8px;padding:7px 0;border-bottom:1px solid var(--line-soft);font-size:11px;color:var(--ink-2)}.pace-row:last-of-type{border-bottom:0}.pace-row b{font-size:12px;font-variant-numeric:tabular-nums}.pace-row .meter{grid-column:1 / -1}.live-hero{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:16px;padding:18px;align-items:center}.live-badge{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:650;color:var(--accent-ink)}.live-badge i{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);animation:livePulse 1.8s var(--ease) infinite}@keyframes livePulse{50%{box-shadow:0 0 0 7px transparent}}.live-hero-main h2{margin:6px 0 4px;font-size:20px;font-weight:700;letter-spacing:-.025em}.live-hero-main>p{margin:0;font-size:12px;color:var(--ink-2);line-height:1.6;max-width:620px}.live-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:9px;font-size:11px;color:var(--ink-2)}.live-meta>span{display:inline-flex;align-items:center;gap:4px}.live-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.live-hero-side{display:grid;gap:10px}.live-count{display:grid;place-items:center;gap:2px;padding:14px;border-radius:16px;background:var(--accent-soft);border:1px solid var(--accent-line, var(--line))}.live-count b{font-size:26px;font-weight:720;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--accent-ink)}.live-count span{font-size:10px;color:var(--ink-3)}.live-side-note{display:flex;gap:6px;font-size:10px;line-height:1.5;color:var(--ink-2);padding:8px 10px;border-radius:11px;background:var(--warn-bg);border:1px solid var(--warn-line)}.live-side-note .ic{width:12px;height:12px;flex:none;color:var(--warn);margin-top:1px}.live-side-note strong{font-weight:700}.live-list{display:grid;gap:6px}.live-row{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-radius:12px;border:1px solid var(--line-soft);background:color-mix(in srgb,var(--ink) 2%,transparent)}.live-row[data-state=待开播]{border-color:var(--accent-line, var(--line));background:var(--accent-softer)}.live-date{display:grid;gap:1px}.live-date b{font-size:11px;font-weight:650}.live-date span{font-size:10px;color:var(--ink-3);font-variant-numeric:tabular-nums}.live-row-main{min-width:0}.live-row-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px;font-weight:600}.live-row-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:3px;font-size:10px;color:var(--ink-3)}.live-row-meta>span{display:inline-flex;align-items:center;gap:4px}.live-row-end{display:flex;gap:6px}.live-foot{display:flex;align-items:center;gap:5px;margin-top:10px;padding-top:9px;border-top:1px solid var(--line-soft);font-size:10px;color:var(--ink-3)}.live-foot .ic{width:12px;height:12px;flex:none}.assign-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.85fr);gap:12px;align-items:start}.assign-list{display:grid;gap:6px}.assign-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-radius:12px;border:1px solid var(--line-soft);background:color-mix(in srgb,var(--ink) 2%,transparent)}.assign-row[data-state=待提交],.assign-row[data-state=待参加]{border-color:var(--warn-line);background:var(--warn-bg)}.assign-type{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:8px;font-size:10px;font-weight:650;color:var(--accent-ink);background:var(--accent-soft)}.assign-type[data-type=考试]{color:var(--danger);background:var(--danger-bg)}.assign-type .ic{width:12px;height:12px}.assign-main{min-width:0}.assign-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px;font-weight:600}.assign-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:3px;font-size:10px;color:var(--ink-3)}.assign-meta>span{display:inline-flex;align-items:center;gap:4px}.assign-end{display:flex;gap:6px}.deadline-list{display:grid;gap:5px}.deadline-row{display:grid;grid-template-columns:84px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 8px;border-radius:10px;background:color-mix(in srgb,var(--ink) 2.5%,transparent);border:1px solid var(--line-soft);font-size:10.5px}.deadline-row b{font-size:10px;color:var(--ink-2);font-variant-numeric:tabular-nums}.deadline-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deadline-row em{font-style:normal;font-size:9.5px;color:var(--ink-3);white-space:nowrap}.deadline-row[data-tone=danger]{border-color:var(--danger-line);background:var(--danger-bg)}.deadline-row[data-tone=danger] em{color:var(--danger);font-weight:650}.deadline-row[data-tone=warn] em{color:var(--warn);font-weight:650}.feedback-row{padding:9px 0;border-bottom:1px solid var(--line-soft)}.feedback-row:last-child{border-bottom:0}.feedback-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.5px}.feedback-head b{font-weight:650}.feedback-row p{margin:4px 0;font-size:10.5px;line-height:1.55;color:var(--ink-2)}.feedback-row small{font-size:9.5px;color:var(--ink-3)}.qa-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:12px;align-items:start}.qa-list{display:grid;gap:5px}.qa-item{display:flex;gap:8px;align-items:flex-start;text-align:left;padding:9px 10px;border-radius:12px;border:1px solid transparent;cursor:pointer;transition:background .18s var(--ease),border-color .18s var(--ease)}.qa-item:hover{background:var(--accent-softer)}.qa-item.is-active{background:var(--accent-soft);border-color:var(--accent-line, var(--accent))}.qa-item-main{flex:1;min-width:0;display:grid;gap:3px}.qa-item-title{font-size:11.5px;line-height:1.45;color:var(--ink)}.qa-item-meta{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qa-item-meta .ic{width:11px;height:11px}.qa-detail-head{border-bottom:1px solid var(--line-soft);padding-bottom:10px}.qa-detail-meta{font-size:10px;color:var(--ink-3);display:flex;align-items:center;gap:4px}.qa-detail-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin:5px 0 8px}.qa-detail-title h2{margin:0;font-size:17px;font-weight:680;line-height:1.3;letter-spacing:-.02em}.qa-author{display:flex;align-items:center;gap:8px}.qa-author b{display:block;font-size:11.5px}.qa-author small{display:block;font-size:10px;color:var(--ink-3)}.qa-body{margin:10px 0;font-size:12px;line-height:1.65;color:var(--ink-2)}.qa-answers{display:grid;gap:8px}.qa-answer{padding:10px;border-radius:12px;background:var(--accent-softer);border:1px solid var(--line-soft)}.qa-answer-head{display:flex;align-items:center;gap:7px}.qa-answer-head>div{flex:1;min-width:0}.qa-answer-head b{display:block;font-size:11px}.qa-answer-head small{display:block;font-size:9.5px;color:var(--ink-3)}.qa-answer p{margin:7px 0 0;font-size:11.5px;line-height:1.65;color:var(--ink)}.qa-empty{display:grid;place-items:center;gap:3px;padding:18px;text-align:center;color:var(--ink-3);border:1px dashed var(--line);border-radius:12px}.qa-empty .ic{width:22px;height:22px;opacity:.6}.qa-empty b{font-size:11.5px;color:var(--ink-2)}.qa-empty small{font-size:10px}.qa-reply{margin-top:12px;padding-top:10px;border-top:1px solid var(--line-soft)}.qa-reply-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px}.qa-reply-foot span{display:inline-flex;align-items:center;gap:4px}.qa-reply-foot .ic{width:12px;height:12px}@media(max-width:1200px){.plan-layout,.assign-layout,.qa-layout{grid-template-columns:minmax(0,1fr)}.live-hero{grid-template-columns:minmax(0,1fr) 210px}}@media(max-width:1100px){.plan-week{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:860px){.plan-week{grid-template-columns:repeat(2,minmax(0,1fr))}.live-hero{grid-template-columns:minmax(0,1fr)}.live-row{grid-template-columns:1fr}.live-row-end{justify-content:flex-end}.assign-row{grid-template-columns:minmax(0,1fr)}.assign-end{justify-content:flex-end}.view-chip{padding:0 8px}.view-chip-text,.view-count{display:none}}.online-live{display:flex;align-items:center;gap:14px;padding:10px 12px;border-radius:14px;background:var(--accent-softer);border:1px solid var(--accent-line, var(--line-soft))}.online-live-main{flex:1;min-width:0}.online-live-main>b{display:block;font-size:13.5px;font-weight:660;letter-spacing:-.01em}.online-live-main>p{margin:3px 0 0;font-size:11px;line-height:1.55;color:var(--ink-2)}.online-chapters{margin-top:10px}.online-sub-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:0 2px 6px;border-bottom:1px solid var(--line-soft)}.online-sub-head b{font-size:11.5px;font-weight:650}.online-sub-head span{font-size:10px;color:var(--ink-3)}.chapter-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px 2px;border-bottom:1px solid var(--line-soft)}.chapter-row:last-child{border-bottom:0}.chapter-id{font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);border-radius:7px;padding:3px 0;text-align:center}.chapter-main{min-width:0}.chapter-main b{display:block;font-size:11.5px;font-weight:600}.chapter-main small{display:block;font-size:10px;color:var(--ink-3);margin-bottom:4px}.chapter-main .meter{height:3px}.progress-hero{display:flex;align-items:center;gap:14px;padding:6px 0 10px}.progress-hero-main{flex:1;min-width:0}.progress-hero-main>b{display:block;font-size:12.5px;font-weight:650}.progress-hero-main>small{display:block;font-size:10.5px;color:var(--ink-3);margin-top:2px}.progress-line{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0 4px;font-size:10.5px;color:var(--ink-2)}.progress-line b{font-variant-numeric:tabular-nums}.kpi-ico{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:10px;color:var(--accent);background:var(--accent-soft)}.kpi-ico .ic{width:15px;height:15px}@media(max-width:1024px){.online-live{align-items:flex-start;flex-direction:column}.online-live .btn{align-self:flex-end}}.page-wrap{display:grid;gap:14px;align-content:start;padding-bottom:8px}code{font-family:var(--font-mono);font-size:11.5px;padding:1px 5px;border-radius:5px;background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid var(--line-soft);word-break:break-all}.ta-right{text-align:right}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.back-link{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:8px}.back-link:hover{color:var(--accent)}.mono{font-family:var(--font-mono);font-size:12px;color:var(--ink-3)}.pill.tone-ok{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-line)}.pill.tone-warn{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-line)}.pill.tone-danger{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-line)}.pill.tone-blue{color:var(--info);background:var(--info-bg);border-color:var(--info-line)}.pill.tone-violet{color:var(--accent-ink);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 24%,transparent)}.pill.tone-teal{color:#0a7a6c;background:#0a91801f;border-color:#0a918042}[data-theme=dark] .pill.tone-teal{color:#6fe3d2;background:#0a918038;border-color:#6fe3d247}.pill.tone-muted{color:var(--ink-3);background:color-mix(in srgb,var(--ink) 5%,transparent);border-color:var(--line)}.chip-soft{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:999px;font-size:10.5px;font-weight:600;color:var(--ink-2);background:color-mix(in srgb,var(--ink) 5%,transparent);border:1px solid var(--line);white-space:nowrap}.top-search{padding:0 8px 0 12px}.top-search input{flex:1;min-width:0;height:100%;border:0;background:transparent;outline:none;font-size:12.5px;color:var(--ink)}.top-search input::placeholder{color:var(--ink-3)}.top-search input::-webkit-search-cancel-button{display:none}.mode-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 9px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--ok);background:var(--ok-bg);border:1px solid var(--ok-line);white-space:nowrap}.mode-chip i{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor}.mode-chip.is-warn{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-line)}.nav-note{padding:2px 10px 0;font-size:10.5px;line-height:1.5;color:var(--ink-3)}.app[data-nav=collapsed] .nav-note{display:none}.segmented button.is-active,.segmented button[aria-pressed=true]{color:var(--ink);background:color-mix(in srgb,#fff 78%,transparent);box-shadow:inset 0 1px #fffc,0 2px 8px -2px #180e382e}[data-theme=dark] .segmented button.is-active{background:color-mix(in srgb,var(--ink) 14%,transparent);box-shadow:inset 0 1px #ffffff14}.toolbar-card{padding:14px 16px}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft);font-size:11.5px;color:var(--ink-2)}.search-field{flex-direction:row;align-items:center;gap:8px;height:34px;padding:0 11px;border-radius:11px;background:var(--glass-bg-soft);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-hi),0 0 0 1px var(--glass-ring);color:var(--ink-3);min-width:240px;flex:1;max-width:360px}.search-field input{flex:1;min-width:0;border:0;background:transparent;outline:none;font-size:12.5px;color:var(--ink)}.search-field input::placeholder{color:var(--ink-3)}.select-field{flex-direction:row;align-items:center;gap:6px;height:34px;padding:0 8px 0 11px;border-radius:11px;background:var(--glass-bg-soft);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-hi),0 0 0 1px var(--glass-ring);color:var(--ink-3)}.select-field select{border:0;background:transparent;outline:none;font-size:12px;color:var(--ink);padding-right:4px;cursor:pointer}.select-field select option{color:var(--ink);background:var(--bg)}.table-card{padding:6px 8px 8px}.data-table{display:grid;min-width:0}.data-head,.data-row{display:grid;grid-template-columns:minmax(170px,1.5fr) 92px minmax(150px,1.25fr) minmax(110px,1fr) 84px 92px;gap:12px;align-items:center;padding:10px 12px}.data-head{font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase;border-bottom:1px solid var(--line)}.data-row{border-radius:13px;border-bottom:1px solid var(--line-soft);font-size:12.5px;color:var(--ink-2);transition:background var(--fast) var(--ease),transform var(--fast) var(--ease)}.data-row:last-child{border-bottom:0}.data-row:hover{background:color-mix(in srgb,#fff 46%,transparent)}[data-theme=dark] .data-row:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}.data-row b{font-weight:600;color:var(--ink)}.data-row small{font-size:10.5px;color:var(--ink-3)}.cell-student{display:flex;align-items:center;gap:9px;min-width:0}.cell-stack{display:flex;flex-direction:column;gap:2px;min-width:0}.cell-stack b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-arrow{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;font-weight:600;color:var(--accent);white-space:nowrap}.data-row:hover .link-arrow{text-decoration:underline}.enrollment-table .data-head,.enrollment-table .data-row{grid-template-columns:minmax(180px,1.6fr) 96px 88px minmax(160px,1.2fr) minmax(120px,.9fr) 110px}.roster-table .data-head,.roster-table .data-row{grid-template-columns:minmax(150px,1.3fr) 80px minmax(100px,.8fr) minmax(220px,1.4fr)}.roster-table .data-row{padding-top:8px;padding-bottom:8px}.pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 8px 6px;border-top:1px solid var(--line-soft);margin-top:4px}.pager-text{font-size:11.5px;color:var(--ink-2)}.skeleton-rows{display:grid;gap:10px;padding:12px}.skeleton-row{height:54px;border-radius:14px;background:linear-gradient(100deg,color-mix(in srgb,var(--ink) 5%,transparent) 20%,color-mix(in srgb,var(--ink) 10%,transparent),color-mix(in srgb,var(--ink) 5%,transparent) 56%);background-size:220% 100%;animation:shimmer 1.4s linear infinite}.skeleton-detail{display:grid;gap:12px;padding:18px}@keyframes shimmer{0%{background-position:140% 0}to{background-position:-60% 0}}.state-card{display:flex;gap:14px;padding:18px 20px;border-radius:var(--r-md);background:var(--glass-bg);border:1px solid var(--line);box-shadow:inset 0 1px 0 var(--glass-hi)}.error-card{align-items:flex-start}.state-icon{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:13px;color:var(--ink-3);background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid var(--line)}.state-icon .ic{width:20px;height:20px}.state-icon-danger{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-line)}.state-body{min-width:0;flex:1}.state-body h3{font-size:13.5px;font-weight:650;margin-bottom:4px}.state-body p{font-size:12px;color:var(--ink-2)}.state-body .btn{margin-top:10px}.state-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;font-size:10.5px}.code-chip{font-family:var(--font-mono);font-size:10.5px;padding:2px 6px;border-radius:6px;color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-line)}.error-details{margin-top:8px;display:grid;gap:4px;font-size:11px;color:var(--ink-2)}.error-details li:before{content:"· ";color:var(--danger)}.empty-card{align-items:center;padding:26px 20px}.notice{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:12px;font-size:11.5px;line-height:1.55;border:1px solid var(--line);background:color-mix(in srgb,var(--ink) 4%,transparent);color:var(--ink-2)}.notice>.ic{flex:none;margin-top:1px}.notice b{color:var(--ink)}.notice p{margin-top:3px}.notice-warn{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-line)}.notice-warn b{color:var(--warn)}.notice-danger{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-line)}.notice-danger b{color:var(--danger)}.notice-ok{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-line)}.notice-ok b{color:var(--ok)}.notice-info{color:var(--info);background:var(--info-bg);border-color:var(--info-line)}.blank-shell{height:100vh;height:100dvh;overflow-y:auto;overflow-x:hidden;display:grid;place-items:center;padding:28px}.auth-shell{width:min(1100px,100%);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);gap:26px;align-items:stretch;position:relative;z-index:1}.auth-hero{display:flex;flex-direction:column;gap:26px;padding:18px 8px 10px;min-width:0}.auth-brand{display:flex;align-items:center;gap:11px}.auth-brand .brand-text strong{font-size:16px}.auth-copy{flex:1;display:flex;flex-direction:column;justify-content:center;gap:16px}.auth-copy h1{font-size:clamp(30px,3.4vw,46px);line-height:1.12;font-weight:680;letter-spacing:-.035em}.auth-lead{font-size:13px;line-height:1.7;color:var(--ink-2);max-width:46ch}.auth-lead code{font-size:11.5px}.auth-points{display:grid;gap:9px;margin-top:2px}.auth-points li{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--ink-2)}.auth-points .ic{color:var(--accent);flex:none}.auth-endpoint{padding:14px 16px;border-radius:var(--r-md);background:var(--glass-bg-soft);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-hi),0 0 0 1px var(--glass-ring);display:grid;gap:8px;font-size:11.5px}.endpoint-row{display:flex;align-items:center;gap:8px;min-width:0}.endpoint-label{flex:none;width:38px;font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--ink-3)}.endpoint-error{color:var(--danger);font-size:11px;line-height:1.6}.status-dot.is-ok{background:var(--ok);box-shadow:0 0 6px var(--ok)}.status-dot.is-bad{background:var(--danger);box-shadow:0 0 6px var(--danger)}.status-dot.is-idle{background:var(--ink-3)}.glass-panel{border-radius:var(--r-xl);padding:26px 26px 22px;background:var(--glass-bg);border:1px solid var(--glass-edge);box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(var(--blur)) saturate(var(--sat));backdrop-filter:blur(var(--blur)) saturate(var(--sat));position:relative;overflow:hidden}.glass-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:linear-gradient(150deg,#ffffffbf,#ffffff0f 46%,#ffffff80);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.auth-panel{align-self:center;display:flex;flex-direction:column;gap:14px}.auth-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.auth-panel-head h2{font-size:19px;font-weight:660;letter-spacing:-.02em}.auth-panel-head p{font-size:11.5px;color:var(--ink-3);margin-top:3px}.auth-steps{display:grid;gap:7px;font-size:11.5px;color:var(--ink-2)}.auth-steps li{display:flex;align-items:flex-start;gap:8px;line-height:1.5}.auth-steps b{flex:none;width:18px;height:18px;display:grid;place-items:center;border-radius:6px;font-size:10px;color:var(--accent-ink);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent)}.auth-submit{margin-top:2px}.auth-foot{font-size:10.5px;line-height:1.6;color:var(--ink-3)}.callback-card{width:min(460px,100%);display:grid;justify-items:center;text-align:center;gap:12px;padding:34px 30px;position:relative;z-index:1}.callback-logo{width:52px;height:52px;border-radius:16px}.callback-logo svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:1.5;stroke-linejoin:round}.callback-card h1{font-size:20px;font-weight:660}.callback-card p{font-size:12.5px;color:var(--ink-2);line-height:1.65}.callback-error{color:var(--danger)!important}.spinner{width:26px;height:26px;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent) 24%,transparent);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.profile-hero{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.profile-main{flex:1;min-width:220px}.profile-name{font-size:24px;font-weight:660;letter-spacing:-.02em}.profile-sub{font-size:11.5px;color:var(--ink-3);margin-top:5px}.profile-kpis{display:grid;grid-template-columns:repeat(4,minmax(78px,auto));gap:14px;padding-left:16px;border-left:1px solid var(--line)}.kpi-mini{display:flex;flex-direction:column;gap:2px;min-width:0}.kpi-mini small{font-size:10px;color:var(--ink-3);letter-spacing:.03em}.kpi-mini b{font-size:13px;font-weight:620;font-family:var(--font-num)}.week-head-card{padding:14px 18px;display:grid;gap:10px}.week-title{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.week-title h2{font-size:18px;font-weight:660;letter-spacing:-.02em}.week-title p{font-size:11px;margin-top:3px}.week-card{padding:12px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.week-day{min-width:0;border-radius:16px;padding:8px;background:color-mix(in srgb,var(--ink) 3%,transparent);border:1px solid var(--line-soft);display:flex;flex-direction:column;gap:8px;min-height:160px}.week-day.is-today{border-color:color-mix(in srgb,var(--accent) 34%,transparent);background:var(--accent-softer)}.week-day-head{display:flex;align-items:baseline;gap:5px;padding:1px 2px 6px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}.week-day-head b{font-size:11.5px;font-weight:660}.week-day-head span{font-size:10px;color:var(--ink-3)}.week-day-head em{font-style:normal;font-size:9px;font-weight:700;padding:1px 5px;border-radius:999px;color:var(--accent-ink);background:var(--accent-soft);margin-left:auto}.week-day-body{display:grid;gap:6px;align-content:start;flex:1}.week-empty{text-align:center;color:var(--ink-3);font-size:11px;padding:12px 0}.lesson-card{display:flex;flex-direction:column;gap:3px;padding:8px 9px;border-radius:12px;background:var(--glass-bg);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-hi),0 6px 16px -14px #180e3880;transition:transform var(--fast) var(--spring),box-shadow var(--fast) var(--ease),background var(--fast) var(--ease);min-width:0}.lesson-card:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--glass-bg) 80%,#fff);box-shadow:var(--shadow-pop)}[data-theme=dark] .lesson-card:hover{background:color-mix(in srgb,var(--glass-bg) 85%,#fff 4%)}.lesson-card.is-cancelled{opacity:.62}.lesson-card.is-done{border-color:var(--ok-line)}.lesson-time{font-family:var(--font-num);font-size:10px;font-weight:700;color:var(--accent);letter-spacing:.01em}.lesson-name{font-size:11.5px;font-weight:650;line-height:1.35}.lesson-class{font-size:10px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.lesson-tags .pill{height:17px;padding:0 5px;font-size:9px}.lesson-meta{display:flex;align-items:center;gap:3px;font-size:9.5px;color:var(--ink-3)}.lesson-meta .ic{width:11px;height:11px}.lesson-cancel{font-size:9.5px;color:var(--danger);line-height:1.35}.lesson-cta{margin-top:2px;font-size:9.5px;font-weight:700;color:var(--accent)}.page-footnote{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--ink-3);padding:0 10px}.page-footnote .ic{color:var(--accent)}.att-layout{display:grid;grid-template-columns:296px minmax(0,1fr);gap:14px;align-items:start}.lesson-picker{padding:12px 10px 10px;display:grid;gap:5px;align-content:start;max-height:620px;overflow-y:auto}.lesson-picker .card-head{padding:0 4px 6px}.lesson-option{display:flex;align-items:center;gap:8px;padding:8px;border-radius:12px;text-align:left;border:1px solid transparent;transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease)}.lesson-option:hover{background:color-mix(in srgb,#fff 46%,transparent)}[data-theme=dark] .lesson-option:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}.lesson-option.is-active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.lesson-option.is-cancelled{opacity:.62}.lesson-option-date{flex:none;width:40px;height:40px;display:grid;place-items:center;border-radius:10px;font-family:var(--font-num);font-size:11px;font-weight:700;color:var(--ink-2);background:color-mix(in srgb,var(--ink) 5%,transparent);border:1px solid var(--line)}.lesson-option.is-active .lesson-option-date{color:var(--accent-ink);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 22%,transparent)}.lesson-option-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lesson-option-main b{font-size:11.5px;font-weight:620;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-option-main small{font-size:9.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-option .pill{height:18px;padding:0 6px;font-size:9px;flex:none}.att-main{display:grid;gap:14px;min-width:0}.roster-head{display:grid;gap:12px}.roster-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.roster-title h2{font-size:19px;font-weight:660;letter-spacing:-.02em}.roster-title .muted{font-size:11px;margin-top:3px}.summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.summary-item{padding:9px 10px;border-radius:11px;background:color-mix(in srgb,var(--ink) 4%,transparent);border:1px solid var(--line-soft);display:flex;flex-direction:column;gap:1px}.summary-item small{font-size:9.5px;color:var(--ink-3);letter-spacing:.03em}.summary-item b{font-size:18px;font-weight:660;font-family:var(--font-num);line-height:1.15}.summary-item.is-ok b{color:var(--ok)}.summary-item.is-warn b{color:var(--warn)}.summary-item.is-blue b{color:var(--info)}.summary-item.is-danger b{color:var(--danger)}.roster-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:10px;border-top:1px solid var(--line-soft)}.roster-actions .muted{font-size:11px}.status-picker{display:flex;gap:4px;flex-wrap:wrap}.status-btn{height:26px;padding:0 9px;border-radius:8px;font-size:10.5px;font-weight:600;color:var(--ink-3);background:color-mix(in srgb,var(--ink) 4%,transparent);border:1px solid var(--line);transition:all var(--fast) var(--ease)}.status-btn:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent)}.status-btn[disabled]{opacity:.45;pointer-events:none}.status-btn.is-active.is-present{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-line)}.status-btn.is-active.is-late{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-line)}.status-btn.is-active.is-leave{color:var(--info);background:var(--info-bg);border-color:var(--info-line)}.status-btn.is-active.is-absent{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-line)}.page-enter-active,.page-leave-active{transition:opacity .16s var(--ease),transform .16s var(--ease)}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0;transform:translateY(-4px)}@media(max-width:1279px){.week-grid{grid-template-columns:1fr}.week-day{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px;min-height:0;padding:8px 10px}.week-day-head{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;border-bottom:0;border-right:1px solid var(--line-soft);padding:0 10px 0 2px}.week-day-head em{margin-left:0}.week-day-body{grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:6px}.week-empty{padding:0;text-align:left;align-self:center}.lesson-card{padding:7px 9px}.profile-kpis{grid-template-columns:repeat(4,minmax(0,1fr));width:100%;padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:12px}.att-layout{grid-template-columns:1fr}.lesson-picker{max-height:260px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.lesson-picker .card-head,.lesson-picker .skeleton-rows,.lesson-picker .state-card{grid-column:1 / -1}}@media(max-width:1100px){.data-head,.data-row{grid-template-columns:minmax(150px,1.5fr) 80px minmax(130px,1.2fr) 78px 84px;gap:10px}.data-head>:nth-child(4),.data-row>:nth-child(4){display:none}.enrollment-table .data-head,.enrollment-table .data-row{grid-template-columns:minmax(160px,1.6fr) 92px 80px 100px}.enrollment-table .data-head>:nth-child(4),.enrollment-table .data-row>:nth-child(4){display:none}.enrollment-table .data-head>:nth-child(5),.enrollment-table .data-row>:nth-child(5){display:none}.roster-table .data-head,.roster-table .data-row{grid-template-columns:minmax(140px,1.3fr) minmax(90px,.8fr) minmax(210px,1.4fr)}.roster-table .data-head>:nth-child(2),.roster-table .data-row>:nth-child(2){display:none}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1024px){:root{--pad-x: 20px}.top-search{width:clamp(200px,26vw,280px)}.mode-chip{display:none}.auth-shell{grid-template-columns:1fr;gap:18px}.auth-hero{padding-bottom:0;gap:18px}.auth-copy h1{font-size:30px}.auth-lead{font-size:12.5px}.auth-panel{max-width:520px;width:100%;justify-self:center}.page-title{font-size:24px}.profile-hero{gap:12px}}@media(max-width:760px){.blank-shell{padding:16px}.auth-shell{gap:12px}.auth-points{display:none}.profile-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.accent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-top:8px}.accent-swatch{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--glass-bg-soft);color:var(--ink-2);font-size:12px;cursor:pointer;transition:border-color .16s ease,transform .16s ease,background .16s ease}.accent-swatch:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--ink) 18%,transparent)}.accent-swatch.is-active{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:var(--accent-soft);color:var(--ink);font-weight:600}.accent-dot{width:26px;height:26px;border-radius:999px;display:grid;place-items:center;color:#fff;box-shadow:inset 0 0 0 1px #0000001f,0 1px 3px #0000002e}.accent-picker{width:40px;height:38px;padding:2px;border:1px solid var(--line);border-radius:10px;background:var(--glass-bg-soft);cursor:pointer}.accent-error{margin-top:6px;font-size:12px;color:var(--danger)}.accent-preview{margin-top:16px;padding:14px;border:1px dashed color-mix(in srgb,var(--ink) 14%,transparent);border-radius:var(--r-sm);background:var(--glass-bg-soft)}.accent-link{color:var(--accent);font-weight:600;font-size:13px}.accent-metric{margin-top:10px;font-size:12px;color:var(--ink-2)}.accent-metric .ok{color:var(--ok);margin-left:6px}.accent-metric .bad{color:var(--danger);margin-left:6px}.form-grid{display:grid;gap:12px;padding-top:6px}.form-span{grid-column:1 / -1}.form-grid label.field>span,.form-grid .field>span{display:block;font-size:11.5px;font-weight:600;color:var(--ink-2);margin-bottom:6px}.form-hint{font-size:11.5px;color:var(--ink-3);line-height:1.6}.form-error{font-size:12px;color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-line);border-radius:10px;padding:8px 10px}.input-with-action{display:flex;gap:8px;align-items:center}.input-with-action .input{flex:1;min-width:0}.lookup-result{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-2);padding:10px 12px;border-radius:10px;border:1px dashed var(--line);background:var(--glass-bg-soft)}.lookup-result b{color:var(--ink)}.detail-card{padding:16px 18px 18px;display:grid;gap:12px}.detail-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px}.detail-meta>div{display:flex;flex-direction:column;gap:3px;min-width:0}.detail-meta small{font-size:10.5px;color:var(--ink-3)}.detail-meta b{font-size:13px;font-weight:620;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.is-ok{color:var(--ok)}.is-danger,.is-danger-text{color:var(--danger)}.btn-ok{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-line);box-shadow:none}.btn-ok:hover{background:color-mix(in srgb,var(--ok) 18%,transparent)}.skeleton-detail{display:grid;gap:10px;padding:4px 0}.skeleton-card{height:168px;border-radius:var(--r-md)}.modal-section-head{padding:4px 0 0;align-items:center}.modal-section-head h3{font-size:13.5px;font-weight:650}.modal-section-head p{font-size:11.5px;color:var(--ink-3);margin-top:2px}.finance-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between}.finance-toolbar{flex-wrap:wrap}.contract-summary,.enroll-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.contract-table .data-head,.contract-table .data-row{grid-template-columns:minmax(150px,1.4fr) minmax(110px,.9fr) 96px 96px 96px 92px 76px}.installment-table .data-head,.installment-table .data-row{grid-template-columns:100px 130px minmax(120px,1fr) 120px minmax(100px,1fr)}.payment-table .data-head,.payment-table .data-row{grid-template-columns:minmax(160px,1.5fr) minmax(150px,1.3fr) 100px 96px 96px minmax(120px,1.1fr) 72px}.charge-table .data-head,.charge-table .data-row{grid-template-columns:minmax(180px,1.6fr) 80px 120px 110px}.plan-table .data-head,.plan-table .data-row{grid-template-columns:100px 140px minmax(120px,1fr) 110px}.payment-detail-table .data-head,.payment-detail-table .data-row{grid-template-columns:minmax(160px,1.5fr) 90px 100px 90px 90px minmax(140px,1.2fr) 76px}.refund-table .data-head,.refund-table .data-row{grid-template-columns:minmax(160px,1.6fr) minmax(100px,1fr) minmax(100px,1fr)}.refund-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}.refund-grid>div{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:12px;border:1px solid var(--line-soft);background:var(--glass-bg-soft)}.refund-grid small{font-size:10.5px;color:var(--ink-3)}.refund-grid b{font-size:16px;font-weight:650;font-family:var(--font-num)}.refund-rule{font-size:11.5px;color:var(--ink-3);margin-bottom:10px}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.course-card{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:var(--r-md);min-height:168px}.course-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.course-type{font-size:11px;color:var(--ink-3)}.course-title-link{color:inherit}.course-title-link h3{font-size:15.5px;font-weight:650;letter-spacing:-.01em;line-height:1.35}.course-title-link:hover h3{color:var(--accent)}.course-no{margin-top:-4px}.course-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:2px}.course-meta dt{font-size:10px;color:var(--ink-3)}.course-meta dd{font-size:12px;font-weight:600;margin-top:2px}.course-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:10px;border-top:1px solid var(--line-soft)}.course-card-foot .muted{font-size:11px}.course-publish{display:flex;justify-content:flex-end}.price-list{display:flex;flex-wrap:wrap;gap:10px}.price-item{display:flex;align-items:baseline;gap:8px;padding:8px 12px;border-radius:10px;border:1px solid var(--line-soft);background:var(--glass-bg-soft);font-size:12px}.price-item b{font-family:var(--font-num)}.price-item small{color:var(--ink-3);font-size:10.5px}.chapter-list{display:grid;gap:12px}.chapter-item{border:1px solid var(--line-soft);border-radius:12px;overflow:hidden;background:var(--glass-bg-soft)}.chapter-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}.chapter-index{width:24px;height:24px;flex:none;display:grid;place-items:center;border-radius:8px;font-size:11.5px;font-weight:700;color:var(--accent-ink);background:var(--accent-soft)}.chapter-head h3{font-size:13.5px;font-weight:640}.chapter-head small{font-size:10.5px;color:var(--ink-3)}.lesson-list{display:grid}.lesson-item{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--line-soft)}.lesson-item:last-child{border-bottom:0}.lesson-icon{width:26px;height:26px;flex:none;display:grid;place-items:center;border-radius:8px;color:var(--accent);background:var(--accent-softer)}.lesson-main{display:flex;flex-direction:column;gap:2px;min-width:0}.lesson-main b{font-size:12.5px;font-weight:600}.lesson-main small{font-size:10.5px;color:var(--ink-3)}.online-enroll-table .data-head,.online-enroll-table .data-row{grid-template-columns:minmax(150px,1.4fr) minmax(110px,.9fr) minmax(120px,1fr) minmax(160px,1.4fr) 90px 72px 72px}.progress-table .data-head,.progress-table .data-row{grid-template-columns:minmax(150px,1.4fr) 100px 100px 100px minmax(130px,1.2fr)}.live-table .data-head,.live-table .data-row{grid-template-columns:minmax(150px,1.4fr) minmax(140px,1.3fr) minmax(150px,1.4fr) 90px 90px 110px 72px}.type-change-table .data-head,.type-change-table .data-row{grid-template-columns:minmax(150px,1.4fr) minmax(150px,1.4fr) minmax(170px,1.6fr) minmax(130px,1.3fr) 96px minmax(130px,1.2fr) 130px}.row-button{width:100%;text-align:left;border-left:0;border-right:0;border-top:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.row-button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.row-actions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}.type-change{display:inline-flex;align-items:center;gap:6px}.type-change .ic{color:var(--ink-3)}.enroll-summary{margin-bottom:14px}.enroll-meta{margin-bottom:16px}@media(max-width:1100px){.contract-table .data-head,.contract-table .data-row{grid-template-columns:minmax(140px,1.4fr) minmax(110px,.9fr) 90px 90px 88px}.contract-table .data-head>:nth-child(4),.contract-table .data-row>:nth-child(4){display:none}.payment-table .data-head,.payment-table .data-row{grid-template-columns:minmax(150px,1.4fr) minmax(140px,1.2fr) 96px 90px 110px 72px}.payment-table .data-head>:nth-child(4),.payment-table .data-row>:nth-child(4){display:none}.payment-detail-table .data-head,.payment-detail-table .data-row{grid-template-columns:minmax(150px,1.4fr) 80px 90px 90px minmax(130px,1.1fr) 72px}.payment-detail-table .data-head>:nth-child(5),.payment-detail-table .data-row>:nth-child(5){display:none}.online-enroll-table .data-head,.online-enroll-table .data-row{grid-template-columns:minmax(150px,1.4fr) minmax(110px,.9fr) minmax(150px,1.3fr) 90px 72px 72px}.online-enroll-table .data-head>:nth-child(3),.online-enroll-table .data-row>:nth-child(3){display:none}.live-table .data-head,.live-table .data-row{grid-template-columns:minmax(150px,1.4fr) minmax(150px,1.4fr) 90px 90px 72px}.live-table .data-head>:nth-child(2),.live-table .data-row>:nth-child(2){display:none}.live-table .data-head>:nth-child(4),.live-table .data-row>:nth-child(4){display:none}.type-change-table .data-head,.type-change-table .data-row{grid-template-columns:minmax(150px,1.4fr) minmax(150px,1.4fr) minmax(170px,1.6fr) 96px minmax(130px,1.2fr) 130px}.type-change-table .data-head>:nth-child(4),.type-change-table .data-row>:nth-child(4){display:none}.detail-meta{grid-template-columns:repeat(3,minmax(0,1fr))}.contract-summary,.enroll-summary{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:760px){.finance-tabs{align-items:stretch}.course-grid{grid-template-columns:1fr}.refund-grid,.contract-summary,.enroll-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.modal-wrap{background:#09070e57;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
