.portal-footer-root{width:100%}.portal-footer-root .pageFoot{color:oklch(100% 0 0/.85);border-radius:var(--r-xl) var(--r-xl) 0 0;background:linear-gradient(135deg,oklch(28% .15 282) 0%,oklch(20% .1 285) 100%);margin-top:80px;padding:48px 64px 36px;position:relative;overflow:hidden}.portal-footer-root .pageFoot:before{content:"";pointer-events:none;background:radial-gradient(circle,oklch(60% .2 285/.4),#0000 70%);border-radius:50%;width:360px;height:360px;position:absolute;top:-120px;right:-120px}.portal-footer-root .footGrid{z-index:1;grid-template-columns:2fr 1fr 1fr;gap:48px;max-width:1280px;margin:0 auto;display:grid;position:relative}.portal-footer-root .footBrand .row{align-items:center;gap:14px;display:flex}.portal-footer-root .footLogo{color:#fff;background:linear-gradient(135deg,oklch(78% .18 280),oklch(50% .22 285));border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 8px 20px oklch(0% 0 0/.35)}.portal-footer-root .footLogo svg{width:26px;height:26px}.portal-footer-root .footBrand .bname{color:#fff;font-size:17px;font-weight:700}.portal-footer-root .footBrand .bsub{color:oklch(100% 0 0/.6);letter-spacing:.22em;font-size:10px;font-family:var(--font-mono);margin-top:3px}.portal-footer-root .footBrand p{color:oklch(100% 0 0/.65);max-width:380px;margin:12px 0 0;font-size:13px;line-height:1.7}.portal-footer-root .footCol h4{color:#fff;letter-spacing:.12em;font-size:12px;font-weight:600;font-family:var(--font-mono);margin:0 0 14px}.portal-footer-root .footCol a,.portal-footer-root .footCol .li{color:oklch(100% 0 0/.65);padding:5px 0;font-size:13px;text-decoration:none;display:block}.portal-footer-root .footCol a:hover{color:#fff}.portal-footer-root .footCol .li{align-items:center;gap:8px;display:flex}.portal-footer-root .footBottom{z-index:1;color:oklch(100% 0 0/.55);max-width:1280px;font-size:12px;font-family:var(--font-mono);letter-spacing:.04em;border-top:1px solid oklch(100% 0 0/.12);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:36px auto 0;padding-top:20px;display:flex;position:relative}@media (width<=768px){.portal-footer-root .pageFoot{padding:36px 24px 28px}.portal-footer-root .footGrid{grid-template-columns:1fr;gap:28px}.portal-footer-root .footBottom{text-align:center;justify-content:center}}.login-root{background:radial-gradient(80% 60% at 15% 20%, oklch(94% .07 285/.5) 0%, transparent 60%), radial-gradient(70% 60% at 90% 90%, oklch(92% .06 320/.4) 0%, transparent 60%), var(--background);flex:1;place-items:center;min-height:100%;padding:32px;display:grid;overflow-y:auto}.login-root .loginCard{background:var(--card);border-radius:28px;grid-template-columns:1fr 1fr;width:100%;max-width:1280px;min-height:min(820px,100vh - 64px);display:grid;overflow:hidden;box-shadow:0 40px 80px -20px oklch(40% .1 285/.18),0 12px 32px -8px oklch(40% .08 285/.08),inset 0 0 0 1px oklch(100% 0 0/.5)}.login-root .leftPanel{color:#fff;isolation:isolate;background:radial-gradient(60% 80% at 100% 0,oklch(60% .22 285/.55) 0%,#0000 55%),radial-gradient(70% 80% at 0 100%,oklch(50% .18 320/.5) 0%,#0000 55%),linear-gradient(155deg,oklch(38% .18 285) 0%,oklch(28% .15 280) 50%,oklch(22% .1 275) 100%);flex-direction:column;padding:56px;display:flex;position:relative;overflow:hidden}.login-root .leftPanel:before{content:"";z-index:0;background-image:linear-gradient(oklch(100% 0 0/.06) 1px,#0000 1px),linear-gradient(90deg,oklch(100% 0 0/.06) 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 70% at 30% 30%,#000,#0000 75%);mask-image:radial-gradient(80% 70% at 30% 30%,#000,#0000 75%)}.login-root .leftPanel:after{content:"";z-index:0;pointer-events:none;background:radial-gradient(2px 2px at 20% 25%,oklch(100% 0 0/.6),#0000 60%),radial-gradient(1.5px 1.5px at 80% 40%,oklch(100% 0 0/.4),#0000 60%),radial-gradient(2px 2px at 60% 18%,oklch(100% 0 0/.5),#0000 60%),radial-gradient(1px 1px at 40% 70%,oklch(100% 0 0/.45),#0000 60%),radial-gradient(2px 2px at 88% 78%,oklch(100% 0 0/.5),#0000 60%);position:absolute;inset:0}.login-root .orb{pointer-events:none;z-index:0;filter:blur(1px);border-radius:50%;position:absolute}.login-root .orb.o1{background:radial-gradient(circle at 30% 30%,oklch(80% .16 290/.55),#0000 65%);width:320px;height:320px;animation:11s ease-in-out infinite loginFloat;top:-80px;right:-60px}.login-root .orb.o2{background:radial-gradient(circle at 30% 30%,oklch(70% .18 320/.45),#0000 65%);width:220px;height:220px;animation:13s ease-in-out -4s infinite loginFloat;bottom:60px;right:40px}.login-root .orb.o3{background:radial-gradient(circle at 30% 30%,oklch(75% .16 220/.4),#0000 70%);width:140px;height:140px;animation:9s ease-in-out -6s infinite loginFloat;top:45%;right:35%}@keyframes loginFloat{0%,to{transform:translateY(0)translate(0)}50%{transform:translateY(-18px)translate(10px)}}.login-root .leftContent{z-index:2;flex-direction:column;height:100%;display:flex;position:relative}.login-root .brand{align-items:center;gap:14px;display:flex}.login-root .brand .mark{background:linear-gradient(135deg,oklch(78% .18 290),oklch(50% .22 285));border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 10px 24px oklch(0% 0 0/.35),inset 0 0 0 1px oklch(100% 0 0/.15)}.login-root .brand .mark svg{color:#fff;width:24px;height:24px}.login-root .brand .name{color:#fff;letter-spacing:.005em;font-size:18px;font-weight:700;line-height:1.2}.login-root .brand .sub{color:oklch(100% 0 0/.55);letter-spacing:.24em;font-size:10px;font-family:var(--font-mono);margin-top:4px;font-weight:500}.login-root .leftHero{max-width:460px;margin-top:auto}.login-root .eyebrow{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:.16em;font-size:11px;font-family:var(--font-mono);color:oklch(100% 0 0/.92);background:oklch(100% 0 0/.1);border:1px solid oklch(100% 0 0/.18);border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-weight:500;display:inline-flex}.login-root .eyebrow .dot{background:oklch(82% .18 150);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite loginPulse;box-shadow:0 0 0 4px oklch(82% .18 150/.22)}@keyframes loginPulse{0%,to{opacity:1}50%{opacity:.4}}.login-root .leftHero h1{letter-spacing:-.025em;background:linear-gradient(#fff 0%,oklch(86% .06 290) 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:22px 0 18px;font-size:48px;font-weight:800;line-height:1.08}.login-root .leftHero .lead{color:oklch(100% 0 0/.72);margin:0;font-size:15px;line-height:1.75}.login-root .pillars{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px;display:grid}.login-root .pillar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:oklch(100% 0 0/.06);border:1px solid oklch(100% 0 0/.1);border-radius:14px;padding:14px 16px}.login-root .pillar .icon{background:linear-gradient(135deg,oklch(75% .16 290),oklch(50% .2 285));border-radius:9px;place-items:center;width:32px;height:32px;display:grid;box-shadow:0 6px 14px oklch(0% 0 0/.25)}.login-root .pillar .icon svg{color:#fff;width:16px;height:16px}.login-root .pillar .t{color:#fff;margin-top:10px;font-size:13px;font-weight:600}.login-root .pillar .d{color:oklch(100% 0 0/.55);margin-top:2px;font-size:11px;line-height:1.5}.login-root .liveStrip{border-top:1px solid oklch(100% 0 0/.14);align-items:center;gap:18px;margin-top:36px;padding-top:24px;display:flex}.login-root .schoolAvs{align-items:center;display:flex}.login-root .schoolAv{color:#fff;background:linear-gradient(135deg,oklch(70% .18 290),oklch(48% .2 285));border:2px solid oklch(28% .15 282);border-radius:50%;place-items:center;width:34px;height:34px;margin-left:-10px;font-size:12px;font-weight:700;display:grid;box-shadow:0 4px 10px oklch(0% 0 0/.3)}.login-root .schoolAv:first-child{margin-left:0}.login-root .schoolAv.a2{background:linear-gradient(135deg,oklch(72% .15 320),oklch(50% .18 318))}.login-root .schoolAv.a3{background:linear-gradient(135deg,oklch(75% .14 220),oklch(48% .17 235))}.login-root .schoolAv.plus{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-family:var(--font-mono);background:oklch(100% 0 0/.14);font-size:11px}.login-root .liveText{color:oklch(100% 0 0/.82);font-size:13px;line-height:1.4}.login-root .rightPanel{flex-direction:column;padding:56px 64px;display:flex;position:relative;overflow-y:auto}.login-root .langSwitch{z-index:20;color:var(--foreground-subtle);position:absolute;top:18px;right:18px}.login-root .rightHead h2{color:var(--foreground);letter-spacing:-.015em;margin:0;font-size:30px;font-weight:700}.login-root .rightHead p{color:var(--muted-foreground);margin:8px 0 0;font-size:14px;line-height:1.6}.login-root .secLabel{align-items:center;gap:12px;margin:36px 0 14px;display:flex}.login-root .secLabel .t{letter-spacing:.18em;font-size:11px;font-family:var(--font-mono);color:var(--muted-foreground);font-weight:600}.login-root .secLabel .line{background:var(--border);flex:1;height:1px}.login-root .errBox{border-radius:var(--r-md);background:var(--danger-subtle);color:var(--danger-subtle-foreground);border:1px solid color-mix(in oklab, var(--danger-subtle-foreground) 30%, transparent);margin-top:14px;padding:12px 16px;font-size:13px}.login-root .tabs{background:var(--muted);border-radius:12px;gap:4px;width:fit-content;margin-bottom:22px;padding:4px;display:flex}.login-root .tab{color:var(--foreground-subtle);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);background:0 0;border:none;border-radius:9px;padding:8px 22px;font-family:inherit;font-size:13px;font-weight:500}.login-root .tab.active{background:var(--card);color:var(--foreground);box-shadow:var(--elevation-1), 0 0 0 1px var(--border);font-weight:600}.login-root .field{margin-bottom:18px}.login-root .field label{color:var(--foreground-subtle);letter-spacing:.02em;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;font-weight:500;display:flex}.login-root .field .hint{color:var(--muted-foreground);font-size:11px;font-family:var(--font-mono);letter-spacing:.04em}.login-root .inputWrap{background:var(--background);border:1px solid var(--border);border-radius:var(--r-md);transition:all var(--dur-fast) var(--ease-out);align-items:center;display:flex;position:relative;overflow:hidden}.login-root .inputWrap:focus-within{background:var(--card);border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab, var(--ring) 25%, transparent)}.login-root .inputWrap .leadIcon{color:var(--muted-foreground);place-items:center;padding:0 12px 0 14px;display:grid}.login-root .inputWrap input{min-width:0;color:var(--foreground);background:0 0;border:none;outline:none;flex:1;padding:14px 14px 14px 0;font-family:inherit;font-size:14px}.login-root .inputWrap input::placeholder{color:color-mix(in oklab, var(--muted-foreground) 70%, transparent)}.login-root .inputWrap .tail{color:var(--muted-foreground);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0 12px;font-size:12px;display:flex}.login-root .inputWrap .tail:hover{color:var(--primary-strong)}.login-root .inputWrap .codeBtn{color:var(--primary-strong);border:none;border-left:1px solid var(--border);cursor:pointer;background:var(--card);align-self:stretch;place-items:center;padding:0 16px;font-family:inherit;font-size:13px;font-weight:600;display:grid}.login-root .inputWrap .codeBtn:hover:not(:disabled){background:color-mix(in oklab, var(--primary) 10%, transparent)}.login-root .inputWrap .codeBtn:disabled{color:color-mix(in oklab, var(--muted-foreground) 70%, transparent);cursor:not-allowed}.login-root .optRow{justify-content:space-between;align-items:center;margin:8px 0 22px;display:flex}.login-root .remember{color:var(--foreground-subtle);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.login-root .remember input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.login-root .forgot{color:var(--primary-strong);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:13px;text-decoration:none}.login-root .forgot:hover{text-decoration:underline}.login-root .submitBtn{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff;border-radius:var(--r-md);cursor:pointer;width:100%;transition:all var(--dur-base) var(--ease-out);box-shadow:var(--shadow-brand);border:none;justify-content:center;align-items:center;gap:10px;padding:16px;font-family:inherit;font-size:15px;font-weight:600;display:flex}.login-root .submitBtn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 28px oklch(58% .2 285/.45)}.login-root .submitBtn:disabled{opacity:.65;cursor:not-allowed}.login-root .submitBtn svg{width:16px;height:16px}.login-root .registerLine{text-align:center;color:var(--muted-foreground);margin-top:18px;font-size:13px}.login-root .registerLine button{color:var(--primary-strong);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none}.login-root .registerLine button:hover{text-decoration:underline}.login-root .rightFoot{color:var(--muted-foreground);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:auto;padding-top:28px;font-size:12px;display:flex}.login-root .rightFoot .links{align-items:center;gap:18px;display:flex}.login-root .rightFoot .links a{color:var(--muted-foreground);text-decoration:none}.login-root .rightFoot .links a:hover{color:var(--primary-strong)}.login-root .rightFoot .copy{font-family:var(--font-mono);letter-spacing:.04em;font-size:11px}@media (width<=960px){.login-root{padding:16px}.login-root .loginCard{grid-template-columns:1fr;min-height:0}.login-root .leftPanel{display:none}.login-root .rightPanel{padding:40px 28px}}.home-root .shell{max-width:1320px;margin:0 auto;padding:28px 32px 48px}.home-root .hero{border-radius:var(--r-xl);color:#fff;isolation:isolate;background:radial-gradient(60% 90% at 100% 0,oklch(70% .18 285/.55) 0%,#0000 60%),radial-gradient(70% 100% at 0 100%,oklch(85% .1 200/.45) 0%,#0000 60%),linear-gradient(135deg,oklch(38% .18 285) 0%,oklch(30% .18 280) 50%,oklch(22% .12 275) 100%);padding:80px 80px 76px;position:relative;overflow:hidden}.home-root .gridLines{z-index:0;opacity:.18;pointer-events:none;background-image:linear-gradient(oklch(100% 0 0/.12) 1px,#0000 1px),linear-gradient(90deg,oklch(100% 0 0/.12) 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 70%,#000,#0000);mask-image:radial-gradient(80% 70%,#000,#0000)}.home-root .heroGrid{z-index:1;grid-template-columns:1fr 1fr;align-items:center;gap:56px;display:grid;position:relative}.home-root .heroEyebrow{border-radius:var(--r-pill);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:oklch(100% 0 0/.92);letter-spacing:.18em;font-size:12px;font-family:var(--font-mono);background:oklch(100% 0 0/.12);border:1px solid oklch(100% 0 0/.22);align-items:center;gap:8px;padding:6px 14px;font-weight:500;display:inline-flex}.home-root .heroEyebrow .live{background:oklch(80% .18 150);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite homePulse;box-shadow:0 0 0 4px oklch(80% .18 150/.25)}@keyframes homePulse{0%,to{opacity:1}50%{opacity:.35}}.home-root .hero h1{text-wrap:balance;letter-spacing:-.025em;margin:22px 0 18px;font-size:76px;font-weight:800;line-height:1.02}.home-root--latin .hero h1{background:linear-gradient(#fff 0%,oklch(86% .06 285) 100%);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(2rem,3.2vw,46px);line-height:1.12}.home-root .hero h1 em{font-style:normal;font-family:var(--font-serif);font-weight:700}.home-root .hero .lead{color:oklch(100% 0 0/.78);max-width:480px;margin:0 0 28px;font-size:17px;line-height:1.7}.home-root .heroCTAs{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.home-root .heroBtn{border-radius:var(--r-pill);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border:none;align-items:center;gap:8px;padding:12px 22px;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.home-root .heroBtn.primary{color:var(--primary-strong);background:#fff;box-shadow:0 10px 30px oklch(0% 0 0/.25)}.home-root .heroBtn.primary:hover{transform:translateY(-2px);box-shadow:0 16px 36px oklch(0% 0 0/.32)}.home-root .heroBtn.ghost{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:oklch(100% 0 0/.12);border:1px solid oklch(100% 0 0/.28)}.home-root .heroBtn.ghost:hover{background:oklch(100% 0 0/.18)}.home-root .heroBtn svg{width:14px;height:14px}.home-root .heroStats{border-top:1px solid oklch(100% 0 0/.16);grid-template-columns:repeat(4,auto);justify-content:start;gap:40px;margin-top:40px;padding-top:28px;display:grid}.home-root .heroStats .v{font-family:var(--font-num);letter-spacing:-.02em;color:#fff;font-size:28px;font-weight:700}.home-root .heroStats .l{color:oklch(100% 0 0/.6);letter-spacing:.12em;font-size:11px;font-family:var(--font-mono);margin-top:4px}.home-root .heroArt{height:420px;position:relative}.home-root .orb{border-radius:50%;position:absolute}.home-root .orb.o1{filter:blur(.5px);background:radial-gradient(circle at 30% 30%,oklch(92% .1 285/.65),oklch(55% .22 285/.35) 55%,#0000 75%);width:320px;height:320px;animation:9s ease-in-out infinite homeFloat;top:30px;right:20px}.home-root .orb.o2{filter:blur(.5px);background:radial-gradient(circle at 30% 30%,oklch(85% .14 200/.55),oklch(48% .18 220/.3) 55%,#0000 75%);width:180px;height:180px;animation:11s ease-in-out -3s infinite homeFloat;bottom:20px;left:20px}.home-root .orb.o3{filter:blur(.5px);background:radial-gradient(circle at 30% 30%,oklch(85% .16 340/.55),oklch(52% .18 340/.3) 55%,#0000 75%);width:110px;height:110px;animation:7s ease-in-out -5s infinite homeFloat;top:140px;left:110px}@keyframes homeFloat{0%,to{transform:translateY(0)translate(0)}50%{transform:translateY(-14px)translate(8px)}}.home-root .orbits{pointer-events:none;position:absolute;inset:0}.home-root .orbits svg{width:100%;height:100%;position:absolute;inset:0}.home-root .heroChip{border-radius:var(--r-md);-webkit-backdrop-filter:blur(14px)saturate(160%);color:#fff;background:oklch(100% 0 0/.14);border:1px solid oklch(100% 0 0/.26);align-items:center;gap:10px;padding:12px 16px;font-size:12px;display:flex;position:absolute;box-shadow:0 12px 32px oklch(0% 0 0/.25)}.home-root .heroChip .ic{background:linear-gradient(135deg,oklch(75% .16 285),oklch(50% .2 285));border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.home-root .heroChip .ic svg{color:#fff;width:16px;height:16px}.home-root .heroChip .lbl{opacity:.7;letter-spacing:.08em;font-size:10px;font-family:var(--font-mono)}.home-root .heroChip .val{margin-top:1px;font-size:14px;font-weight:600}.home-root .heroChip.a{animation:8s ease-in-out infinite homeFloat;top:30px;left:0}.home-root .heroChip.b{animation:10s ease-in-out -4s infinite homeFloat;top:200px;right:-10px}.home-root .heroChip.b .ic{background:linear-gradient(135deg,oklch(78% .14 200),oklch(48% .16 220))}.home-root .heroChip.c{animation:9s ease-in-out -6s infinite homeFloat;bottom:30px;left:130px}.home-root .heroChip.c .ic{background:linear-gradient(135deg,oklch(78% .14 340),oklch(52% .18 340))}.home-root .section{margin-top:80px}.home-root .sectionHead{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.home-root .sectionTitle h2{color:var(--foreground);letter-spacing:-.01em;flex-wrap:wrap;align-items:baseline;gap:14px;margin:0;font-size:32px;font-weight:700;display:flex}.home-root .sectionTitle h2 .en{font-family:var(--font-mono);color:var(--primary-strong);letter-spacing:.2em;font-size:12px;font-weight:500}.home-root .sectionTitle .desc{color:var(--muted-foreground);margin:8px 0 0;font-size:14px;line-height:1.6}.home-root .moreLink{color:var(--primary-strong);border-radius:var(--r-pill);background:var(--card);border:1px solid var(--border);cursor:pointer;white-space:nowrap;transition:all var(--dur-fast) var(--ease-out);flex-shrink:0;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.home-root .moreLink:hover{border-color:color-mix(in oklab, var(--primary) 50%, transparent);background:color-mix(in oklab, var(--primary) 10%, transparent)}.home-root .moreLink svg{width:13px;height:13px}.home-root .stageGrid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.home-root .stageCard{aspect-ratio:1/.98;border-radius:var(--r-xl);color:#fff;cursor:pointer;min-height:300px;transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);isolation:isolate;flex-direction:column;justify-content:space-between;padding:24px;text-decoration:none;display:flex;position:relative;overflow:hidden}.home-root .stageCard:hover{box-shadow:var(--elevation-4);transform:translateY(-6px)}.home-root .stageCard:after{content:"";z-index:0;pointer-events:none;background:repeating-linear-gradient(45deg,#0000 0 11px,oklch(100% 0 0/.05) 11px 13px);position:absolute;inset:0}.home-root .stageCard .deco{z-index:0;pointer-events:none;position:absolute;inset:0}.home-root .stageCard .head,.home-root .stageCard .foot{z-index:1;position:relative}.home-root .stageCard.k12{background:linear-gradient(150deg,oklch(80% .13 60) 0%,oklch(64% .17 50) 55%,oklch(48% .18 35) 100%)}.home-root .stageCard.mid{background:linear-gradient(150deg,oklch(78% .13 340) 0%,oklch(58% .17 340) 55%,oklch(42% .16 335) 100%)}.home-root .stageCard.high{background:linear-gradient(150deg,oklch(76% .12 200) 0%,oklch(54% .15 220) 55%,oklch(38% .15 235) 100%)}.home-root .stageBadge{border-radius:var(--r-pill);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.08em;font-size:11px;font-weight:500;font-family:var(--font-mono);background:oklch(100% 0 0/.18);border:1px solid oklch(100% 0 0/.28);align-items:center;gap:8px;padding:5px 12px;display:inline-flex}.home-root .stageGlyph{font-family:var(--font-serif);letter-spacing:-.03em;margin-top:18px;font-size:46px;font-weight:700;line-height:.98}.home-root .stageNum{z-index:1;font-family:var(--font-num);color:oklch(100% 0 0/.18);font-size:56px;font-weight:800;line-height:1;position:absolute;top:24px;right:22px}.home-root .stageDesc{color:oklch(100% 0 0/.82);max-width:260px;margin-bottom:18px;font-size:13px;line-height:1.65}.home-root .stageCTA{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--r-pill);transition:background var(--dur-fast) var(--ease-out);background:oklch(100% 0 0/.14);border:1px solid oklch(100% 0 0/.24);justify-content:space-between;align-items:center;padding:11px 18px;font-size:13px;font-weight:600;display:flex}.home-root .stageCard:hover .stageCTA{background:oklch(100% 0 0/.22)}.home-root .stageCTA svg{width:14px;height:14px}.home-root .labWrap{border-radius:var(--r-xl);border:1px solid var(--border);background:radial-gradient(60% 90% at 0 0,oklch(95% .05 285/.7) 0%,#0000 55%),radial-gradient(50% 90% at 100% 100%,oklch(92% .06 200/.55) 0%,#0000 55%),linear-gradient(135deg,oklch(97% .02 285) 0%,oklch(96% .02 270) 100%);padding:40px;position:relative;overflow:hidden}.home-root .labWrap:before{content:"";pointer-events:none;background:radial-gradient(circle,oklch(75% .16 285/.18),#0000 70%);border-radius:50%;width:320px;height:320px;position:absolute;top:-120px;right:-80px}.home-root .labGrid{z-index:1;grid-template-columns:1.05fr .95fr;align-items:stretch;gap:40px;display:grid;position:relative}.home-root .labIntro{flex-direction:column;justify-content:space-between;display:flex}.home-root .labIntro h3{color:var(--foreground);letter-spacing:-.005em;margin:0;font-size:28px;font-weight:700;line-height:1.25}.home-root .labIntro h3 em{color:var(--primary-strong);font-style:normal;font-family:var(--font-serif)}.home-root .labIntro p.labLead{color:var(--foreground-subtle);max-width:400px;margin:14px 0 24px;font-size:14px;line-height:1.75}.home-root .labSteps{flex-direction:column;gap:12px;display:flex}.home-root .labStep{border-radius:var(--r-md);background:var(--card);border:1px solid var(--border);align-items:center;gap:14px;padding:14px 18px;display:flex}.home-root .labStep .stepN{border-radius:var(--r-sm);width:32px;height:32px;font-family:var(--font-serif);color:#fff;flex-shrink:0;place-items:center;font-size:15px;font-weight:700;display:grid}.home-root .labStep:first-child .stepN{background:linear-gradient(135deg,oklch(74% .15 285),oklch(50% .2 285))}.home-root .labStep:nth-child(2) .stepN{background:linear-gradient(135deg,oklch(76% .13 200),oklch(54% .16 220))}.home-root .labStep:nth-child(3) .stepN{background:linear-gradient(135deg,oklch(76% .13 155),oklch(52% .15 165))}.home-root .labStep .tx h4{color:var(--foreground);margin:0;font-size:14px;font-weight:600}.home-root .labStep .tx p{color:var(--muted-foreground);margin:3px 0 0;font-size:12px;line-height:1.5}.home-root .labShowcase{grid-template-columns:1fr 1fr;gap:14px;display:grid}.home-root .labTile{aspect-ratio:1;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--border);transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);cursor:pointer;flex-direction:column;text-decoration:none;display:flex;position:relative;overflow:hidden}.home-root .labTile:hover{box-shadow:var(--elevation-3);transform:translateY(-3px)}.home-root .labTile.feat{aspect-ratio:auto;grid-row:span 2}.home-root .labTile .tileCover{background:linear-gradient(135deg,oklch(94% .04 285),oklch(90% .06 285));flex:1;min-height:90px;position:relative;overflow:hidden}.home-root .labTile.feat .tileCover{min-height:160px}.home-root .labTile .tileCover img{object-fit:cover;width:100%;height:100%}.home-root .labTile .tileTag{z-index:1;font-size:10px;font-family:var(--font-mono);letter-spacing:.1em;border-radius:var(--r-pill);color:var(--primary-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:oklch(100% 0 0/.85);padding:3px 9px;font-weight:600;position:absolute;top:12px;left:12px}.home-root .labTile h4{color:var(--foreground);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;padding:12px 14px 14px;font-size:14px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.home-root .labEmpty{border-radius:var(--r-lg);border:1px dashed color-mix(in oklab, var(--muted-foreground) 40%, transparent);min-height:200px;color:var(--muted-foreground);grid-column:span 2;place-items:center;font-size:14px;display:grid}.home-root .toolsGrid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.home-root .toolCard{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-fast) var(--ease-out);cursor:pointer;flex-direction:column;gap:14px;padding:24px;text-decoration:none;display:flex;position:relative;overflow:hidden}.home-root .toolCard:hover{box-shadow:var(--elevation-3);border-color:color-mix(in oklab, var(--primary) 30%, transparent);transform:translateY(-4px)}.home-root .toolCard:before{content:"";background:radial-gradient(circle, var(--accent-c,oklch(85% .15 285/.18)), transparent 65%);pointer-events:none;border-radius:50%;width:140px;height:140px;position:absolute;top:-40px;right:-40px}.home-root .toolHead{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.home-root .toolIcon{border-radius:var(--r-md);color:#fff;width:52px;height:52px;box-shadow:var(--elevation-2);flex-shrink:0;place-items:center;display:grid}.home-root .toolIcon svg{width:26px;height:26px}.home-root .toolNum{font-family:var(--font-num);color:var(--muted-foreground);letter-spacing:.04em;font-size:14px;font-weight:800}.home-root .toolCard h3{color:var(--foreground);letter-spacing:-.005em;margin:0;font-size:17px;font-weight:700}.home-root .toolTagline{color:var(--foreground-subtle);margin:0;font-size:13px;line-height:1.6}.home-root .toolDesc{color:var(--muted-foreground);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.7;display:-webkit-box;overflow:hidden}.home-root .toolFoot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:auto;padding-top:14px;display:flex}.home-root .toolTags{flex-wrap:wrap;gap:6px;display:flex}.home-root .toolTag{border-radius:var(--r-pill);background:color-mix(in oklab, var(--primary) 10%, transparent);color:var(--primary-strong);font-size:10px;font-weight:500;font-family:var(--font-mono);letter-spacing:.04em;padding:3px 9px}.home-root .toolGo{border-radius:var(--r-sm);background:var(--sunken);width:30px;height:30px;color:var(--foreground-subtle);transition:all var(--dur-fast) var(--ease-out);flex-shrink:0;place-items:center;display:grid}.home-root .toolCard:hover .toolGo{background:var(--primary);color:#fff}.home-root .toolGo svg{width:14px;height:14px}.home-root .toolCard.violet .toolIcon{background:linear-gradient(135deg,oklch(70% .17 285),oklch(48% .21 285))}.home-root .toolCard.violet{--accent-c:oklch(85% .15 285/.18)}.home-root .toolCard.cyan .toolIcon{background:linear-gradient(135deg,oklch(72% .13 200),oklch(50% .16 220))}.home-root .toolCard.cyan{--accent-c:oklch(85% .13 210/.18)}.home-root .toolCard.coral .toolIcon{background:linear-gradient(135deg,oklch(74% .16 30),oklch(56% .2 20))}.home-root .toolCard.coral{--accent-c:oklch(85% .15 25/.18)}.home-root .toolCard.lime .toolIcon{background:linear-gradient(135deg,oklch(76% .14 145),oklch(52% .16 155))}.home-root .toolCard.lime{--accent-c:oklch(85% .13 145/.18)}.home-root .toolCard.rose .toolIcon{background:linear-gradient(135deg,oklch(74% .14 340),oklch(54% .18 340))}.home-root .toolCard.rose{--accent-c:oklch(85% .14 340/.18)}.home-root .toolCard.amber .toolIcon{background:linear-gradient(135deg,oklch(80% .14 75),oklch(60% .17 55))}.home-root .toolCard.amber{--accent-c:oklch(85% .13 70/.18)}.home-root .eventWrap{grid-template-columns:1.4fr 1fr;gap:24px;display:grid}.home-root .eventHero{border-radius:var(--r-xl);color:#fff;isolation:isolate;background:radial-gradient(70% 100% at 100% 0,oklch(72% .15 200/.4) 0%,#0000 60%),linear-gradient(135deg,oklch(36% .16 240) 0%,oklch(28% .14 250) 60%,oklch(22% .1 260) 100%);flex-direction:column;justify-content:space-between;min-height:380px;padding:36px 40px;display:flex;position:relative;overflow:hidden}.home-root .eventHero:before{content:"";pointer-events:none;background:radial-gradient(circle,oklch(75% .16 200/.3),#0000 70%);border-radius:50%;width:360px;height:360px;position:absolute;bottom:-100px;right:-80px}.home-root .eventHero .eventTag{font-size:11px;font-family:var(--font-mono);letter-spacing:.18em;border-radius:var(--r-pill);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:oklch(100% 0 0/.15);border:1px solid oklch(100% 0 0/.25);align-self:flex-start;align-items:center;gap:6px;padding:5px 12px;display:inline-flex}.home-root .eventHero .yearMark{font-family:var(--font-serif);letter-spacing:-.04em;background:linear-gradient(#fff 0%,oklch(80% .1 200) 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:24px 0 6px;font-size:92px;font-weight:900;line-height:.95}.home-root .eventHero h2{letter-spacing:-.02em;color:#fff;margin:0;font-size:38px;font-weight:700;line-height:1.15}.home-root .eventHero .tagline{color:oklch(100% 0 0/.65);letter-spacing:.04em;max-width:360px;margin:16px 0 0;font-size:13px;line-height:1.7}.home-root .tracks{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:14px;display:grid}.home-root .trackCard{border-radius:var(--r-lg);border:1px solid var(--border);color:#fff;min-height:178px;transition:transform var(--dur-base) var(--ease-out);flex-direction:column;justify-content:flex-end;padding:18px;display:flex;position:relative;overflow:hidden}.home-root .trackCard:hover{transform:translateY(-3px)}.home-root .trackCard svg.bg{z-index:0;opacity:.7;width:100%;height:100%;position:absolute;inset:0}.home-root .trackCard .meta{z-index:1;position:relative}.home-root .trackCard .rank{font-family:var(--font-mono);letter-spacing:.16em;border-radius:var(--r-pill);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:oklch(100% 0 0/.22);border:1px solid oklch(100% 0 0/.3);padding:3px 9px;font-size:10px;font-weight:600;display:inline-block}.home-root .trackCard .title{margin-top:8px;font-size:15px;font-weight:700;line-height:1.4}.home-root .trackCard.t1{background:linear-gradient(135deg,oklch(80% .14 285),oklch(58% .2 285))}.home-root .trackCard.t2{background:linear-gradient(135deg,oklch(82% .11 175),oklch(60% .14 195))}.home-root .trackCard.t3{background:linear-gradient(135deg,oklch(82% .13 50),oklch(62% .17 35))}.home-root .trackCard.t4{background:linear-gradient(135deg,oklch(80% .13 340),oklch(58% .17 335))}@media (width<=1024px){.home-root .hero{padding:56px 40px 52px}.home-root .heroGrid{grid-template-columns:1fr;gap:40px}.home-root .heroArt{display:none}.home-root .hero h1{font-size:56px}.home-root .labGrid{grid-template-columns:1fr}.home-root .toolsGrid{grid-template-columns:repeat(2,1fr)}.home-root .eventWrap{grid-template-columns:1fr}}@media (width<=860px){.home-root .stageGrid{grid-template-columns:1fr;gap:16px}.home-root .stageCard{aspect-ratio:auto;min-height:0}.home-root .stageDesc{max-width:none}}@media (width<=640px){.home-root .shell{padding:20px 16px 40px}.home-root .hero{padding:40px 24px 36px}.home-root .hero h1{font-size:42px}.home-root .heroStats{gap:24px}.home-root .stageGrid,.home-root .toolsGrid{grid-template-columns:1fr}.home-root .sectionTitle h2{font-size:26px}}.admin-dashboard-root{flex-direction:column;gap:18px;min-width:0;padding:4px 2px 8px;display:flex}.admin-dashboard-root .anchorBar{z-index:10;background:color-mix(in oklab, var(--card) 82%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;display:flex;position:sticky;top:0}.admin-dashboard-root .anchorBar a{color:var(--foreground-subtle);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border-radius:999px;padding:4px 10px;font-size:12px;text-decoration:none}.admin-dashboard-root .anchorBar a:hover{background:color-mix(in oklab, var(--primary) 10%, transparent);color:var(--primary-strong)}.admin-dashboard-root .pageHead{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding:2px;display:flex}.admin-dashboard-root .pageHead h1{letter-spacing:-.015em;color:var(--foreground);margin:0;font-size:24px;font-weight:700}.admin-dashboard-root .pageHead .sub{color:var(--muted-foreground);flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;font-size:12px;display:flex}.admin-dashboard-root .pageHead .sub .scope{font-family:var(--font-mono);letter-spacing:.04em;align-items:center;gap:6px;display:inline-flex}.admin-dashboard-root .pageHead .sub .scope b{color:var(--foreground);font-weight:600}.admin-dashboard-root :where(.pageHead .sub .scope) :where(svg){width:13px;height:13px;color:var(--primary)}.admin-dashboard-root .pageHeadRight{align-items:center;gap:8px;display:flex}.admin-dashboard-root .kpiStrip{background:var(--card);border:1px solid var(--border);border-radius:14px;grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden}.admin-dashboard-root .kpiStrip.cols3{grid-template-columns:repeat(3,1fr)}.admin-dashboard-root .kpi{border-right:1px solid var(--border);transition:background var(--dur-fast) var(--ease-out);flex-direction:column;gap:8px;padding:16px 18px;display:flex;position:relative}.admin-dashboard-root .kpi:hover{background:color-mix(in oklab, var(--primary) 10%, transparent)}.admin-dashboard-root .kpi:last-child{border-right:none}.admin-dashboard-root .kpi .row1{align-items:center;gap:8px;display:flex}.admin-dashboard-root .kpi .icb{border-radius:7px;flex-shrink:0;place-items:center;width:26px;height:26px;display:grid}.admin-dashboard-root .kpi .icb :where(svg){color:#fff;width:14px;height:14px}.admin-dashboard-root .kpi.k1 .icb{background:var(--chip-1)}.admin-dashboard-root .kpi.k2 .icb{background:var(--chip-2)}.admin-dashboard-root .kpi.k3 .icb{background:var(--chip-3)}.admin-dashboard-root .kpi.k4 .icb{background:var(--chip-4)}.admin-dashboard-root .kpi.k5 .icb{background:var(--chip-5)}.admin-dashboard-root .kpi.k6 .icb{background:var(--chip-6)}.admin-dashboard-root .kpi .lbl{color:var(--muted-foreground);letter-spacing:.08em;font-size:11px;font-family:var(--font-mono);font-weight:500}.admin-dashboard-root .kpi .num{font-family:var(--font-num);font-variant-numeric:tabular-nums;align-items:baseline;gap:8px;display:flex}.admin-dashboard-root .kpi .num .v{letter-spacing:-.02em;color:var(--foreground);font-size:26px;font-weight:700}.admin-dashboard-root .kpi .num .u{color:var(--muted-foreground);font-size:11px;font-family:var(--font-mono);font-weight:500}.admin-dashboard-root .dash-section{scroll-margin-top:76px}.admin-dashboard-root .section{flex-direction:column;gap:14px;display:flex}.admin-dashboard-root .secHead{align-items:center;gap:12px;padding:0 2px;display:flex}.admin-dashboard-root .secHead .num{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff;border-radius:9px;flex-shrink:0;place-items:center;width:30px;height:30px;display:grid}.admin-dashboard-root .secHead .num :where(svg){width:15px;height:15px}.admin-dashboard-root .secHead .txt h2{color:var(--foreground);letter-spacing:-.005em;margin:0;font-size:16px;font-weight:700}.admin-dashboard-root .secHead .txt p{color:var(--muted-foreground);margin:2px 0 0;font-size:12px}.admin-dashboard-root .secToggle{width:28px;height:28px;color:var(--muted-foreground);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);background:0 0;border:none;border-radius:8px;place-items:center;margin-left:auto;display:grid}.admin-dashboard-root .secToggle:hover{background:var(--muted);color:var(--foreground)}.admin-dashboard-root .secToggle :where(svg){width:16px;height:16px;transition:transform var(--dur-base) var(--ease-out)}.admin-dashboard-root .secToggle[aria-expanded=true] :where(svg){transform:rotate(180deg)}.admin-dashboard-root .grid2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.admin-dashboard-root .grid3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.admin-dashboard-root .grid4{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.admin-dashboard-root .card{background:var(--card);border:1px solid var(--border);border-radius:14px;flex-direction:column;min-width:0;display:flex;overflow:hidden}.admin-dashboard-root .cardHead{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;display:flex}.admin-dashboard-root .cardTitle{align-items:center;gap:8px;min-width:0;display:flex}.admin-dashboard-root .cardTitle .ic{background:color-mix(in oklab, var(--primary) 10%, transparent);width:24px;height:24px;color:var(--primary-strong);border-radius:6px;flex-shrink:0;place-items:center;display:grid}.admin-dashboard-root .cardTitle .ic :where(svg){width:13px;height:13px}.admin-dashboard-root .cardTitle h3{color:var(--foreground);white-space:nowrap;margin:0;font-size:13px;font-weight:700}.admin-dashboard-root .cardBody{flex:1;min-width:0;padding:16px 18px}.admin-dashboard-root .resCard{background:var(--card);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:14px;min-width:0;padding:16px 18px;display:flex}.admin-dashboard-root .resCard .top{justify-content:space-between;align-items:center;gap:10px;display:flex}.admin-dashboard-root .resCard .lbl{color:var(--foreground);font-size:13px;font-weight:700}.admin-dashboard-root .resCard .ic{border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.admin-dashboard-root .resCard .ic :where(svg){color:#fff;width:14px;height:14px}.admin-dashboard-root .resCard .ic.chip3{background:var(--chip-3)}.admin-dashboard-root .resCard .ic.chip5{background:var(--chip-5)}.admin-dashboard-root .resCard .duo{grid-template-columns:1fr 1fr;gap:0 18px;display:grid}.admin-dashboard-root .resCard .duo .metric+.metric{border-left:1px solid var(--border);padding-left:18px}.admin-dashboard-root .resCard .duo .mlabel{color:var(--muted-foreground);letter-spacing:.08em;font-size:11px;font-family:var(--font-mono);font-weight:500}.admin-dashboard-root .resCard .vnum{font-family:var(--font-num);font-variant-numeric:tabular-nums;align-items:baseline;gap:8px;margin-top:6px;display:flex}.admin-dashboard-root .resCard .vnum .v{letter-spacing:-.02em;color:var(--foreground);font-size:26px;font-weight:700}.admin-dashboard-root .resCard .vnum .of{color:var(--muted-foreground);font-size:12px}.admin-dashboard-root .resCard .meta{color:var(--foreground-subtle);margin-top:4px;font-size:11px}.admin-dashboard-root .resCard .pbar{background:var(--muted);border-radius:2px;height:4px;margin-top:10px;overflow:hidden}.admin-dashboard-root .resCard .pbar .fill{background:linear-gradient(90deg, var(--primary), var(--primary-strong));border-radius:2px;height:100%}.admin-dashboard-root .stageBars{flex-direction:column;gap:14px;display:flex}.admin-dashboard-root .stageBar{font-size:12px}.admin-dashboard-root .stageBar .head{justify-content:space-between;align-items:center;gap:10px;display:flex}.admin-dashboard-root .stageBar .name{color:var(--foreground);font-weight:600}.admin-dashboard-root .stageBar .val{color:var(--foreground-subtle);font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:11px}.admin-dashboard-root .stageBar .val :where(b){color:var(--foreground);font-size:13px;font-weight:700}.admin-dashboard-root .stageBar .barTrack{background:var(--muted);border-radius:4px;height:8px;margin-top:6px;overflow:hidden}.admin-dashboard-root .stageBar .barTrack .seg{background:linear-gradient(90deg, var(--primary), var(--primary-strong));border-radius:4px;height:100%}.admin-dashboard-root .chartBox{width:100%}.admin-dashboard-root .emptyBox{min-height:180px;color:var(--muted-foreground);place-items:center;font-size:13px;display:grid}@media (width<=1200px){.admin-dashboard-root .kpiStrip,.admin-dashboard-root .kpiStrip.cols3{grid-template-columns:repeat(2,1fr)}.admin-dashboard-root .kpi:nth-child(2n){border-right:none}.admin-dashboard-root .grid4{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.admin-dashboard-root .grid2,.admin-dashboard-root .grid3{grid-template-columns:1fr}.admin-dashboard-root .resCard .duo{grid-template-columns:1fr;gap:14px}.admin-dashboard-root .resCard .duo .metric+.metric{border-left:none;border-top:1px solid var(--border);padding-top:14px;padding-left:0}}@media (width<=640px){.admin-dashboard-root .kpiStrip,.admin-dashboard-root .kpiStrip.cols3{grid-template-columns:1fr}.admin-dashboard-root .kpi{border-right:none}.admin-dashboard-root .grid4{grid-template-columns:1fr}}.course-detail-root .shell{max-width:1320px;margin:0 auto;padding:8px 32px 0}.course-detail-root .crumb{color:var(--muted-foreground);font-size:12px;font-family:var(--font-mono);letter-spacing:.04em;align-items:center;gap:8px;display:flex}.course-detail-root .crumb a{color:var(--muted-foreground);text-decoration:none}.course-detail-root .crumb a:hover{color:var(--primary-strong)}.course-detail-root .crumb .sep{color:color-mix(in oklab, var(--muted-foreground) 70%, transparent)}.course-detail-root .crumb .cur{color:var(--foreground);font-weight:600}.course-detail-root .hero{border-radius:var(--r-xl);background:var(--card);border:1px solid var(--border);box-shadow:var(--elevation-2);grid-template-columns:1fr 440px;margin-top:18px;display:grid;overflow:hidden}.course-detail-root .heroLeft{flex-direction:column;padding:40px 44px 36px;display:flex}.course-detail-root .heroTitle{color:var(--foreground);letter-spacing:-.02em;margin:0 0 14px;font-size:40px;font-weight:800;line-height:1.1}.course-detail-root .heroDesc{color:var(--foreground-subtle);max-width:480px;margin:0 0 28px;font-size:15px;line-height:1.7}.course-detail-root .heroMeta{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(0,max-content));justify-content:start;gap:36px;margin-bottom:28px;padding:22px 0;display:grid}.course-detail-root .heroMeta .it .l{color:var(--muted-foreground);letter-spacing:.14em;font-size:10px;font-family:var(--font-mono);font-weight:500}.course-detail-root .heroMeta .it .v{color:var(--foreground);font-size:18px;font-weight:700;font-family:var(--font-num);font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:6px}.course-detail-root .heroActions{align-items:center;gap:10px;margin-top:auto;display:flex}.course-detail-root .btnPrimary{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff;border-radius:var(--r-md);cursor:pointer;box-shadow:var(--shadow-brand);transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border:none;align-items:center;gap:8px;padding:12px 24px;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.course-detail-root .btnPrimary:hover{transform:translateY(-1px);box-shadow:0 14px 28px oklch(58% .2 285/.45)}.course-detail-root .btnPrimary svg{width:15px;height:15px}.course-detail-root .heroRight{background:linear-gradient(135deg,  var(--brand-400) 0%,  var(--brand-600) 55%,  var(--brand-800) 100%);color:#fff;flex-direction:column;justify-content:space-between;min-height:300px;padding:28px;display:flex;position:relative;overflow:hidden}.course-detail-root .heroRight.hasImg{padding:0}.course-detail-root .heroRight .coverImg{object-fit:cover;z-index:0;width:100%;height:100%;position:absolute;inset:0}.course-detail-root .heroRight:after{content:"";z-index:1;pointer-events:none;background:repeating-linear-gradient(45deg,#0000 0 12px,oklch(100% 0 0/.06) 12px 14px);position:absolute;inset:0}.course-detail-root .heroRight.hasImg:after{background:linear-gradient(oklch(0% 0 0/0) 40%,oklch(0% 0 0/.45) 100%)}.course-detail-root .coverHead{z-index:2;justify-content:space-between;align-items:flex-start;display:flex;position:relative}.course-detail-root .coverBadge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--r-pill);color:#fff;background:oklch(100% 0 0/.22);border:1px solid oklch(100% 0 0/.3);padding:5px 12px;font-size:11px;font-weight:500}.course-detail-root .coverBottom{z-index:2;justify-content:space-between;align-items:flex-end;display:flex;position:relative}.course-detail-root .coverGlyph{font-family:var(--font-serif);color:#fff;letter-spacing:-.02em;text-shadow:0 6px 28px oklch(0% 0 0/.28);max-width:320px;font-size:34px;font-weight:700;line-height:1.15}.course-detail-root .notice{background:var(--warning-subtle);border:1px solid color-mix(in oklab, var(--warning-subtle-foreground) 30%, transparent);border-radius:var(--r-md);align-items:center;gap:14px;margin-top:16px;padding:14px 18px;display:flex}.course-detail-root .notice .ic{border-radius:var(--r-sm);background:var(--warning-solid);color:#fff;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid;box-shadow:0 4px 10px oklch(74% .14 65/.35)}.course-detail-root .notice .ic svg{width:16px;height:16px}.course-detail-root .notice .txt{color:var(--warning-subtle-foreground);flex:1;font-size:13px;line-height:1.5}.course-detail-root .main{grid-template-columns:320px 1fr;align-items:flex-start;gap:24px;margin-top:28px;padding-bottom:32px;display:grid}.course-detail-root .main.maximized{grid-template-columns:1fr}.course-detail-root .side{flex-direction:column;gap:16px;display:flex;position:sticky;top:24px}.course-detail-root .sideCard{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.course-detail-root .sideHead{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.course-detail-root .sideHead h3{color:var(--foreground);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:700;display:flex}.course-detail-root .sideHead h3 svg{width:15px;height:15px;color:var(--primary)}.course-detail-root .sideHead .hint{color:var(--muted-foreground);font-size:11px;font-family:var(--font-mono);letter-spacing:.06em}.course-detail-root .progressMini{border-bottom:1px solid var(--border);background:linear-gradient(135deg, color-mix(in oklab, var(--primary) 10%, transparent), oklch(96% .025 245));padding:14px 20px}.course-detail-root .progressMini .row{justify-content:space-between;align-items:baseline;display:flex}.course-detail-root .progressMini .l{color:var(--muted-foreground);letter-spacing:.1em;font-size:11px;font-family:var(--font-mono);font-weight:500}.course-detail-root .progressMini .v{color:var(--primary-strong);font-size:18px;font-weight:700;font-family:var(--font-num)}.course-detail-root .progressBar{background:oklch(100% 0 0/.6);border-radius:3px;height:6px;margin-top:10px;overflow:hidden}.course-detail-root .progressBar .fill{background:linear-gradient(90deg, var(--primary), color-mix(in oklab, var(--primary) 75%, transparent));height:100%;transition:width var(--dur-base) var(--ease-out);border-radius:3px}.course-detail-root .progressMini .stats{color:var(--foreground-subtle);font-size:11px;font-family:var(--font-num);margin-top:10px}.course-detail-root .chapter{border-bottom:1px solid var(--border)}.course-detail-root .chapter:last-child{border-bottom:none}.course-detail-root .chapHead{background:var(--background);cursor:pointer;text-align:left;border:none;align-items:center;gap:12px;width:100%;padding:14px 20px;font-family:inherit;display:flex}.course-detail-root .chapHead:hover{background:var(--muted)}.course-detail-root .chapIcon{background:color-mix(in oklab, var(--primary) 10%, transparent);width:28px;height:28px;color:var(--primary-strong);border-radius:7px;flex-shrink:0;place-items:center;display:grid}.course-detail-root .chapIcon svg{width:14px;height:14px}.course-detail-root .chapInfo{flex:1;min-width:0}.course-detail-root .chapName{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.course-detail-root .chapMeta{color:var(--muted-foreground);font-size:11px;font-family:var(--font-mono);letter-spacing:.04em;margin-top:2px}.course-detail-root .chevron{color:var(--muted-foreground);transition:transform var(--dur-fast) var(--ease-out);flex-shrink:0}.course-detail-root .lessonList{padding:6px 0 12px}.course-detail-root .lessonItem{cursor:pointer;text-align:left;width:100%;color:var(--foreground-subtle);transition:background var(--dur-fast) var(--ease-out);background:0 0;border:none;border-left:2px solid #0000;align-items:center;gap:10px;padding:10px 20px 10px 42px;font-family:inherit;font-size:13px;display:flex}.course-detail-root .lessonItem:hover{background:var(--muted)}.course-detail-root .lessonItem.active{background:color-mix(in oklab, var(--primary) 10%, transparent);color:var(--primary-strong);border-left-color:var(--primary);font-weight:600}.course-detail-root .lessonItem .lIcon{width:16px;height:16px;color:var(--muted-foreground);flex-shrink:0}.course-detail-root .lessonItem.active .lIcon{color:var(--primary-strong)}.course-detail-root .lessonItem.done .lIcon{color:var(--success-solid)}.course-detail-root .lessonItem.progress .lIcon{color:var(--warning-solid)}.course-detail-root .lessonItem .lName{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.course-detail-root .lessonRow{align-items:stretch;display:flex}.course-detail-root .lessonRow .lessonItem{flex:1;width:auto;min-width:0}.course-detail-root .lessonFold{cursor:pointer;color:var(--muted-foreground);transition:color var(--dur-fast) var(--ease-out);background:0 0;border:none;align-items:center;padding:0 16px;display:flex}.course-detail-root .lessonFold:hover{color:var(--foreground-subtle)}.course-detail-root .resItem{padding-left:62px;font-size:12px}.course-detail-root .content{flex-direction:column;gap:20px;min-width:0;display:flex}.course-detail-root .secTitle{align-items:center;gap:12px;display:flex}.course-detail-root .secTitle .num{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff;width:30px;height:30px;box-shadow:var(--shadow-brand);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.course-detail-root .secTitle .num svg{width:16px;height:16px}.course-detail-root .secTitle h3{color:var(--foreground);letter-spacing:-.005em;text-overflow:ellipsis;margin:0;font-size:18px;font-weight:700;overflow:hidden}.course-detail-root .secTitle .toolbar{gap:6px;margin-left:auto;display:flex}.course-detail-root .secTitle .tbtn{border-radius:var(--r-sm);background:var(--card);border:1px solid var(--input);cursor:pointer;width:34px;height:34px;color:var(--muted-foreground);transition:all var(--dur-fast) var(--ease-out);place-items:center;display:grid}.course-detail-root .secTitle .tbtn:hover{border-color:color-mix(in oklab, var(--primary) 75%, transparent);color:var(--primary-strong);background:color-mix(in oklab, var(--primary) 10%, transparent)}.course-detail-root .secTitle .tbtn svg{width:15px;height:15px}.course-detail-root .lessonCard{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;padding:20px;display:flex}.course-detail-root .viewerFill{flex-direction:column;min-height:520px;display:flex}.course-detail-root .main.maximized .viewerFill{min-height:calc(100vh - 220px)}.course-detail-root .cardStack{flex-direction:column;gap:12px;display:flex}.course-detail-root .emptyHint{text-align:center;color:var(--muted-foreground);padding:48px 24px;font-size:13px}@media (width<=1024px){.course-detail-root .hero{grid-template-columns:1fr}.course-detail-root .heroRight{min-height:220px}.course-detail-root .main{grid-template-columns:1fr}.course-detail-root .side{position:static}}@media (width<=640px){.course-detail-root .shell{padding:8px 16px 0}.course-detail-root .heroLeft{padding:28px}.course-detail-root .heroTitle{font-size:30px}}.dataset-detail-root{--shadow-brand:0 8px 18px oklch(54% .195 280/.28);font-size:13px}.dataset-detail-root .shell{max-width:1320px;margin:0 auto;padding:8px 28px 40px}.dataset-detail-root .crumb{color:var(--muted-foreground);font-size:12px;font-family:var(--font-mono);letter-spacing:.04em;align-items:center;gap:8px;padding:8px 0 2px;display:flex}.dataset-detail-root .crumb a{color:var(--muted-foreground);text-decoration:none}.dataset-detail-root .crumb a:hover{color:var(--primary-strong)}.dataset-detail-root .crumb .sep{color:color-mix(in oklab, var(--muted-foreground) 70%, transparent)}.dataset-detail-root .crumb .cur{color:var(--foreground);font-weight:600}.dataset-detail-root .dsBar{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);margin-top:12px;padding:18px 24px}.dataset-detail-root .dsBarTop{justify-content:space-between;align-items:center;gap:16px;display:flex}.dataset-detail-root .dsHero{align-items:center;gap:16px;min-width:0;display:flex}.dataset-detail-root .dsAvatar{width:56px;height:56px;box-shadow:var(--shadow-brand);background:linear-gradient(135deg,oklch(28% .04 285),oklch(18% .03 285));border-radius:14px;flex-shrink:0;place-items:center;display:grid;position:relative;overflow:hidden}.dataset-detail-root .dsAvatar:after{content:"";background-image:linear-gradient(oklch(100% 0 0/.08) 1px,#0000 1px),linear-gradient(90deg,oklch(100% 0 0/.08) 1px,#0000 1px);background-size:8px 8px;position:absolute;inset:0}.dataset-detail-root .dsAvatar img{object-fit:cover;z-index:1;width:100%;height:100%;position:relative}.dataset-detail-root .dsAvatar .glyph{font-family:var(--font-serif);color:#fff;z-index:1;text-shadow:0 2px 8px oklch(0% 0 0/.5);font-size:26px;font-weight:900;position:relative}.dataset-detail-root .dsAvatar .glyph svg{color:#fff;width:28px;height:28px}.dataset-detail-root .dsTitle{flex-direction:column;gap:6px;min-width:0;display:flex}.dataset-detail-root .dsTitle h1{color:var(--foreground);letter-spacing:-.01em;flex-wrap:wrap;align-items:center;gap:12px;margin:0;font-size:20px;font-weight:700;display:flex}.dataset-detail-root .dsTitle h1 .id{color:var(--muted-foreground);font-size:11px;font-family:var(--font-mono);letter-spacing:.04em;font-weight:500}.dataset-detail-root .dsTitle .tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.dataset-detail-root .tagX{background:var(--muted);color:var(--foreground-subtle);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-flex}.dataset-detail-root .tagX.on{color:oklch(40% .13 155);background:oklch(95% .04 155)}.dataset-detail-root .tagX.on:before{content:"";background:var(--success-solid);border-radius:50%;width:5px;height:5px;box-shadow:0 0 0 3px oklch(60% .14 155/.18)}.dataset-detail-root .tagX.brand{background:color-mix(in oklab, var(--primary) 10%, transparent);color:var(--primary-strong)}.dataset-detail-root .tagX.ver{color:#fff;font-family:var(--font-mono);letter-spacing:.04em;background:linear-gradient(135deg,oklch(28% .15 282),oklch(20% .1 285))}.dataset-detail-root .tagX.locked{color:oklch(48% .16 55);background:oklch(96% .04 65)}.dataset-detail-root .tagX svg{width:11px;height:11px}.dataset-detail-root .barRight{flex-shrink:0;align-items:center;gap:8px;display:flex}.dataset-detail-root .btn{cursor:pointer;border:1px solid var(--input);background:var(--card);color:var(--foreground);transition:transform var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border-radius:9px;align-items:center;gap:6px;padding:9px 16px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.dataset-detail-root .btn:hover:not(:disabled){border-color:color-mix(in oklab, var(--primary) 75%, transparent);color:var(--primary-strong)}.dataset-detail-root .btn.primary{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff;box-shadow:var(--shadow-brand);border-color:#0000}.dataset-detail-root .btn.primary:hover:not(:disabled){color:#fff;transform:translateY(-1px)}.dataset-detail-root .btn:disabled{opacity:.55;cursor:not-allowed}.dataset-detail-root .btn svg{width:13px;height:13px}.dataset-detail-root .desc{color:var(--foreground-subtle);max-width:1020px;margin:16px 0 0;font-size:13px;line-height:1.65}.dataset-detail-root .content{flex-direction:column;gap:16px;padding:20px 0 0;display:flex}.dataset-detail-root .kpiStrip{background:var(--card);border:1px solid var(--border);border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid;overflow:hidden}.dataset-detail-root .kpi{border-right:1px solid var(--border);flex-direction:column;gap:4px;padding:14px 18px;display:flex}.dataset-detail-root .kpi:last-child{border-right:none}.dataset-detail-root .kpi .lbl{color:var(--muted-foreground);letter-spacing:.08em;font-size:11px;font-family:var(--font-mono);align-items:center;gap:6px;font-weight:500;display:flex}.dataset-detail-root .kpi .lbl svg{width:12px;height:12px;color:var(--primary)}.dataset-detail-root .kpi .v{font-family:var(--font-num);letter-spacing:-.02em;color:var(--foreground);font-variant-numeric:tabular-nums;align-items:baseline;gap:5px;font-size:22px;font-weight:700;display:flex}.dataset-detail-root .kpi .v .u{color:var(--muted-foreground);font-size:11px;font-family:var(--font-sans);font-weight:500}.dataset-detail-root .row{gap:16px;display:grid}.dataset-detail-root .row.r1{grid-template-columns:1.5fr 1fr}.dataset-detail-root .row.r2{grid-template-columns:1.7fr 1fr}.dataset-detail-root .card{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.dataset-detail-root .cardHead{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;display:flex}.dataset-detail-root .cardTitle{align-items:center;gap:8px;min-width:0;display:flex}.dataset-detail-root .cardTitle .ic{background:color-mix(in oklab, var(--primary) 10%, transparent);width:24px;height:24px;color:var(--primary-strong);border-radius:6px;flex-shrink:0;place-items:center;display:grid}.dataset-detail-root .cardTitle .ic svg{width:13px;height:13px}.dataset-detail-root .cardTitle h3{color:var(--foreground);margin:0;font-size:13px;font-weight:700}.dataset-detail-root .cardTitle .en{color:var(--muted-foreground);letter-spacing:.14em;font-size:10px;font-family:var(--font-mono);margin-left:2px;font-weight:500}.dataset-detail-root .cardBody{flex:1;padding:18px}.dataset-detail-root .cardBody.flush{padding:0}.dataset-detail-root .metaGrid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.dataset-detail-root .metaItem{background:var(--background);transition:border-color var(--dur-fast) var(--ease-out);border:1px solid #0000;border-radius:9px;align-items:flex-start;gap:12px;padding:12px;display:flex}.dataset-detail-root .metaItem:hover{border-color:color-mix(in oklab, var(--primary) 30%, transparent)}.dataset-detail-root .metaItem .ib{background:color-mix(in oklab, var(--primary) 10%, transparent);width:32px;height:32px;color:var(--primary-strong);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.dataset-detail-root .metaItem .ib svg{width:15px;height:15px}.dataset-detail-root .metaItem .k{color:var(--muted-foreground);font-size:10px;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.dataset-detail-root .metaItem .v{color:var(--foreground);word-break:break-word;margin-top:3px;font-size:13px;font-weight:500}.dataset-detail-root .metaItem .v a{color:var(--primary-strong);text-decoration:none}.dataset-detail-root .metaItem .v a:hover{text-decoration:underline}.dataset-detail-root .emptyHint{text-align:center;color:var(--muted-foreground);padding:24px 12px;font-size:12px}.dataset-detail-root .metaList{padding:4px 0 12px}.dataset-detail-root .metaRow{grid-template-columns:118px 1fr;align-items:baseline;gap:10px;padding:8px 18px;font-size:12px;display:grid}.dataset-detail-root .metaRow .k{color:var(--muted-foreground);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:600}.dataset-detail-root .metaRow .v{color:var(--foreground);word-break:break-word;font-weight:500}.dataset-detail-root .metaRow code{font-family:var(--font-mono);background:var(--muted);color:var(--primary-strong);border-radius:4px;padding:2px 7px;font-size:11px}.dataset-detail-root .schemaCols{border-top:1px dashed var(--border);flex-direction:column;gap:6px;margin-top:8px;padding:12px 18px 4px;display:flex}.dataset-detail-root .schemaCols .colRow{align-items:baseline;gap:10px;font-size:11px;display:flex}.dataset-detail-root .schemaCols .colName{font-family:var(--font-mono);color:var(--foreground);font-weight:600}.dataset-detail-root .schemaCols .colType{font-family:var(--font-mono);color:var(--primary-strong);background:var(--muted);border-radius:4px;padding:1px 6px}.dataset-detail-root .schemaCols .colDesc{color:var(--muted-foreground);margin-left:auto}.dataset-detail-root .versionList{flex-direction:column;gap:0;padding:14px 18px;display:flex;position:relative}.dataset-detail-root .versionList:before{content:"";background:var(--border);width:1.5px;position:absolute;top:32px;bottom:28px;left:27px}.dataset-detail-root .verItem{grid-template-columns:22px 1fr;align-items:flex-start;gap:14px;padding:12px 0;display:grid;position:relative}.dataset-detail-root .verItem:not(:last-child){border-bottom:1px dashed var(--border)}.dataset-detail-root .verDot{background:var(--card);border:2px solid color-mix(in oklab, var(--muted-foreground) 40%, transparent);width:22px;height:22px;color:var(--muted-foreground);font-size:9px;font-weight:700;font-family:var(--font-mono);z-index:1;border-radius:50%;place-items:center;margin-top:4px;display:grid}.dataset-detail-root .verItem.current .verDot{background:linear-gradient(135deg, var(--success-solid), oklch(45% .13 155));color:#fff;border-color:oklch(50% .13 155);box-shadow:0 0 0 4px oklch(60% .14 155/.18)}.dataset-detail-root .verBody{min-width:0}.dataset-detail-root .verHead{justify-content:space-between;align-items:center;gap:8px;display:flex}.dataset-detail-root .verHead .nm{color:var(--foreground);align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.dataset-detail-root .verHead .tagInline{font-size:10px;font-weight:600;font-family:var(--font-mono);letter-spacing:.06em;color:oklch(40% .13 155);background:oklch(95% .04 155);border-radius:5px;padding:2px 7px}.dataset-detail-root .verHead .date{color:var(--muted-foreground);font-size:10px;font-family:var(--font-mono);letter-spacing:.04em}.dataset-detail-root .verMeta{color:var(--muted-foreground);font-size:11px;font-family:var(--font-mono);letter-spacing:.04em;flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;display:flex}.dataset-detail-root .verMeta .dot{background:color-mix(in oklab, var(--muted-foreground) 40%, transparent);border-radius:50%;width:3px;height:3px}.dataset-detail-root .verMeta b{color:var(--foreground-subtle);font-weight:600}.dataset-detail-root .verNote{color:var(--foreground-subtle);margin-top:6px;font-size:11px;line-height:1.55}.dataset-detail-root .tagCloud{flex-wrap:wrap;gap:8px;display:flex}.dataset-detail-root .tagChip{background:var(--muted);color:var(--foreground-subtle);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:500}.dataset-detail-root .citationBox{white-space:pre-wrap;color:var(--foreground-subtle);background:var(--background);border:1px solid var(--border);border-radius:9px;padding:14px;font-size:12px;line-height:1.6}@media (width<=1024px){.dataset-detail-root .row.r1,.dataset-detail-root .row.r2{grid-template-columns:1fr}.dataset-detail-root .dsBarTop{flex-direction:column;align-items:flex-start}.dataset-detail-root .barRight{align-self:stretch}}@media (width<=640px){.dataset-detail-root .shell{padding:8px 16px 32px}.dataset-detail-root .metaGrid{grid-template-columns:1fr}}.project-detail-root{--shadow-brand:0 10px 24px oklch(54% .195 280/.32)}.project-detail-root .shell{max-width:1320px;margin:0 auto;padding:8px 32px 0}.project-detail-root .crumb{color:var(--muted-foreground);font-size:12px;font-family:var(--font-mono);letter-spacing:.04em;align-items:center;gap:8px;display:flex}.project-detail-root .crumb a{color:var(--muted-foreground);text-decoration:none}.project-detail-root .crumb a:hover{color:var(--primary-strong)}.project-detail-root .crumb .sep{color:color-mix(in oklab, var(--muted-foreground) 70%, transparent)}.project-detail-root .crumb .cur{color:var(--foreground);font-weight:600}.project-detail-root .hero{border-radius:var(--r-xl);color:#fff;isolation:isolate;background:radial-gradient(60% 90% at 100% 0,oklch(70% .18 280/.35) 0%,#0000 60%),radial-gradient(80% 100% at 0 100%,oklch(80% .1 220/.45) 0%,#0000 60%),linear-gradient(135deg,oklch(38% .16 282) 0%,oklch(26% .14 280) 50%,oklch(20% .1 275) 100%);grid-template-columns:1.05fr 1fr;gap:0;margin-top:18px;display:grid;position:relative;overflow:hidden}.project-detail-root .hero:before{content:"";z-index:-1;background-image:linear-gradient(oklch(100% 0 0/.06) 1px,#0000 1px),linear-gradient(90deg,oklch(100% 0 0/.06) 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 70%,#000,#0000);mask-image:radial-gradient(80% 70%,#000,#0000)}.project-detail-root .heroVisual{flex-direction:column;justify-content:space-between;min-height:440px;padding:36px;display:flex;position:relative;overflow:hidden}.project-detail-root .vHead{justify-content:space-between;align-items:flex-start;display:flex}.project-detail-root .vBadge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:.14em;font-size:11px;font-family:var(--font-mono);color:oklch(100% 0 0/.92);background:oklch(100% 0 0/.14);border:1px solid oklch(100% 0 0/.22);border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-weight:500;display:inline-flex}.project-detail-root .vBadge .live{background:oklch(82% .18 150);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pdPulse;box-shadow:0 0 0 4px oklch(82% .18 150/.22)}@keyframes pdPulse{0%,to{opacity:1}50%{opacity:.4}}.project-detail-root .coverFrame{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:oklch(100% 0 0/.05);border:1px solid oklch(100% 0 0/.12);border-radius:14px;flex:1;place-items:center;min-height:260px;margin:22px 0;display:grid;overflow:hidden}.project-detail-root .coverFrame img{object-fit:cover;width:100%;height:100%}.project-detail-root .coverFrame .coverGlyph{color:oklch(100% 0 0/.6);width:84px;height:84px}.project-detail-root .heroInfo{flex-direction:column;min-width:0;padding:38px 44px 38px 16px;display:flex}.project-detail-root .infoTags{flex-wrap:wrap;gap:8px;display:flex}.project-detail-root .infoTag{color:oklch(100% 0 0/.92);background:oklch(100% 0 0/.12);border:1px solid oklch(100% 0 0/.18);border-radius:999px;align-items:center;gap:5px;padding:4px 11px;font-size:11px;font-weight:500;display:inline-flex}.project-detail-root .infoTag.on{color:oklch(90% .1 150);background:oklch(82% .18 150/.22);border-color:oklch(82% .18 150/.5)}.project-detail-root .infoTag.on:before{content:"";background:oklch(82% .18 150);border-radius:50%;width:5px;height:5px}.project-detail-root .infoTitle{letter-spacing:-.02em;background:linear-gradient(#fff 0%,oklch(86% .06 285) 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:18px 0 14px;font-size:36px;font-weight:800;line-height:1.1}.project-detail-root .infoDesc{color:oklch(100% 0 0/.78);margin:0 0 24px;font-size:14px;line-height:1.7}.project-detail-root .metaStats{border-top:1px solid oklch(100% 0 0/.14);border-bottom:1px solid oklch(100% 0 0/.14);grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px;padding:18px 0;display:grid}.project-detail-root .metaStats .it{align-items:center;gap:10px;display:flex}.project-detail-root .metaStats .it .icb{background:oklch(100% 0 0/.1);border-radius:9px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.project-detail-root .metaStats .it .icb svg{color:#fff;opacity:.85;width:14px;height:14px}.project-detail-root .metaStats .it .l{color:oklch(100% 0 0/.55);letter-spacing:.1em;font-size:10px;font-family:var(--font-mono);font-weight:500}.project-detail-root .metaStats .it .v{font-family:var(--font-num);color:#fff;margin-top:2px;font-size:14px;font-weight:700}.project-detail-root .heroBtns{flex-wrap:wrap;align-items:center;gap:10px;margin-top:auto;display:flex}.project-detail-root .btnP{cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border:none;border-radius:11px;align-items:center;gap:8px;padding:13px 22px;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.project-detail-root .btnP.primary{color:var(--primary-strong);background:#fff;box-shadow:0 10px 30px oklch(0% 0 0/.25)}.project-detail-root .btnP.primary:hover{transform:translateY(-2px);box-shadow:0 16px 36px oklch(0% 0 0/.32)}.project-detail-root .btnP.ghost{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:oklch(100% 0 0/.12);border:1px solid oklch(100% 0 0/.28)}.project-detail-root .btnP.ghost:hover{background:oklch(100% 0 0/.18)}.project-detail-root .btnP svg{width:15px;height:15px}.project-detail-root .main{grid-template-columns:1fr 340px;align-items:flex-start;gap:24px;margin-top:28px;display:grid}.project-detail-root .content{flex-direction:column;gap:20px;min-width:0;display:flex}.project-detail-root .card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.project-detail-root .cardBody{padding:28px 32px}.project-detail-root .secHead{align-items:center;gap:12px;margin:0 0 22px;display:flex}.project-detail-root .secHead .num{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff;width:32px;height:32px;box-shadow:var(--shadow-brand);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.project-detail-root .secHead .num svg{width:16px;height:16px}.project-detail-root .secHead h2{color:var(--foreground);letter-spacing:-.005em;margin:0;font-size:19px;font-weight:700}.project-detail-root .secHead .en{color:var(--muted-foreground);letter-spacing:.18em;font-size:11px;font-family:var(--font-mono);margin-left:auto;font-weight:500}.project-detail-root .goalGrid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.project-detail-root .goalCard{background:linear-gradient(135deg, color-mix(in oklab, var(--primary) 10%, transparent), oklch(96% .025 245));border:1px solid color-mix(in oklab, var(--primary) 30%, transparent);border-radius:11px;gap:14px;padding:18px;display:flex}.project-detail-root .goalCard .ic{background:var(--primary);color:#fff;width:30px;height:30px;box-shadow:var(--shadow-brand);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.project-detail-root .goalCard .ic svg{width:14px;height:14px}.project-detail-root .goalCard .txt{color:var(--foreground);font-size:13px;line-height:1.65}.project-detail-root .prereqText{color:var(--foreground-subtle);white-space:pre-line;margin:0;font-size:14px;line-height:1.75}.project-detail-root .steps{flex-direction:column;gap:14px;display:flex}.project-detail-root .step{grid-template-columns:64px 1fr;align-items:stretch;gap:18px;display:grid}.project-detail-root .step .left{flex-direction:column;align-items:center;padding-top:6px;display:flex}.project-detail-root .step .stNum{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff;width:44px;height:44px;font-family:var(--font-num);box-shadow:var(--shadow-brand);letter-spacing:-.02em;border-radius:12px;flex-shrink:0;place-items:center;font-size:17px;font-weight:700;display:grid}.project-detail-root .step .stLine{background:linear-gradient(180deg, color-mix(in oklab, var(--primary) 30%, transparent), transparent);flex:1;width:2px;min-height:28px;margin-top:8px}.project-detail-root .step:last-child .stLine{display:none}.project-detail-root .step .right{background:var(--background);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:8px;min-width:0;padding:18px 22px;display:flex}.project-detail-root .step .right h3{color:var(--foreground);margin:0;font-size:16px;font-weight:700}.project-detail-root .step .right p{color:var(--foreground-subtle);margin:0;font-size:13px;line-height:1.65}.project-detail-root .toolGrid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.project-detail-root .toolCard{background:var(--background);border:1px solid var(--border);transition:all var(--dur-fast) var(--ease-out);border-radius:12px;align-items:flex-start;gap:14px;padding:16px;display:flex}.project-detail-root .toolCard:hover{background:var(--card);border-color:color-mix(in oklab, var(--primary) 50%, transparent);box-shadow:var(--elevation-2)}.project-detail-root .toolCard .ico{color:#fff;width:44px;height:44px;font-family:var(--font-serif);text-transform:uppercase;background:linear-gradient(135deg,oklch(28% .04 285),oklch(18% .03 285));border-radius:11px;flex-shrink:0;place-items:center;font-size:18px;font-weight:700;display:grid}.project-detail-root .toolCard .body{flex:1;min-width:0}.project-detail-root .toolCard .body .nm{color:var(--foreground);font-size:14px;font-weight:700}.project-detail-root .toolCard .body .desc{color:var(--muted-foreground);margin-top:5px;font-size:12px;line-height:1.55}.project-detail-root .dsList{flex-direction:column;gap:12px;display:flex}.project-detail-root .dsCard{background:var(--background);border:1px solid var(--border);border-radius:12px;grid-template-columns:92px 1fr;gap:0;padding:0;display:grid;overflow:hidden}.project-detail-root .dsCover{color:#fff;font-family:var(--font-serif);text-transform:uppercase;text-shadow:0 2px 8px oklch(0% 0 0/.5);background:linear-gradient(135deg,oklch(28% .04 285),oklch(18% .03 285));place-items:center;font-size:32px;font-weight:900;display:grid}.project-detail-root .dsBody{min-width:0;padding:16px 20px}.project-detail-root .dsBody .nm{color:var(--foreground);flex-wrap:wrap;align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.project-detail-root .dsBody .ver{background:color-mix(in oklab, var(--primary) 15%, transparent);color:var(--primary-strong);font-size:10px;font-family:var(--font-mono);border-radius:5px;padding:2px 7px;font-weight:600}.project-detail-root .dsBody .desc{color:var(--muted-foreground);margin-top:5px;font-size:12px;line-height:1.55}.project-detail-root .kpWrap{flex-wrap:wrap;gap:8px;display:flex}.project-detail-root .kp{background:color-mix(in oklab, var(--primary) 10%, transparent);color:var(--primary-strong);border:1px solid color-mix(in oklab, var(--primary) 15%, transparent);border-radius:999px;padding:6px 13px;font-size:12px}.project-detail-root .embedBody{padding:8px 24px 24px}.project-detail-root .asgList{flex-direction:column;gap:12px;display:flex}.project-detail-root .asgRow{background:var(--background);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.project-detail-root .asgRow .info{align-items:center;gap:12px;min-width:0;display:flex}.project-detail-root .asgRow .info svg{width:18px;height:18px;color:var(--primary);flex-shrink:0}.project-detail-root .asgRow .nm{color:var(--foreground);font-size:14px;font-weight:600}.project-detail-root .asgRow .due{color:var(--muted-foreground);font-size:11px;font-family:var(--font-mono);align-items:center;gap:4px;margin-top:2px;display:flex}.project-detail-root .asgRow .due svg{width:12px;height:12px}.project-detail-root .asgBtn{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff;box-shadow:var(--shadow-brand);transition:transform var(--dur-fast) var(--ease-out);border-radius:10px;align-items:center;gap:6px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.project-detail-root .asgBtn:hover{transform:translateY(-1px)}.project-detail-root .sidePanel{flex-direction:column;gap:16px;display:flex;position:sticky;top:88px}.project-detail-root .sCard{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.project-detail-root .sCardHead{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.project-detail-root .sCardHead h3{color:var(--foreground);align-items:center;gap:7px;margin:0;font-size:13px;font-weight:700;display:flex}.project-detail-root .sCardHead h3 svg{width:14px;height:14px;color:var(--primary)}.project-detail-root .sCardHead .en{color:var(--muted-foreground);font-size:10px;font-family:var(--font-mono);letter-spacing:.1em;font-weight:500}.project-detail-root .ovList{padding:4px 0}.project-detail-root .ovRow{grid-template-columns:90px 1fr;align-items:center;gap:10px;padding:9px 18px;font-size:12px;display:grid}.project-detail-root .ovRow .k{color:var(--muted-foreground);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:600}.project-detail-root .ovRow .v{color:var(--foreground);font-weight:600}.project-detail-root .ovRow .v .tag{background:color-mix(in oklab, var(--primary) 10%, transparent);color:var(--primary-strong);border-radius:5px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.project-detail-root .ovRow.diff .v{align-items:center;gap:8px;display:flex}.project-detail-root .diffBar{gap:3px;display:flex}.project-detail-root .diffBar i{background:var(--muted);border-radius:2px;width:14px;height:5px;display:block}.project-detail-root .diffBar i.on{background:linear-gradient(90deg, color-mix(in oklab, var(--primary) 75%, transparent), var(--primary-strong))}.project-detail-root .sCTA{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff;border-radius:11px;flex-direction:column;gap:10px;margin:0 18px 18px;padding:14px;display:flex}.project-detail-root .sCTA .lbl{color:oklch(100% 0 0/.7);letter-spacing:.12em;font-size:10px;font-family:var(--font-mono);font-weight:600}.project-detail-root .sCTA .actions{gap:8px;display:flex}.project-detail-root .sCTA .actions .b{cursor:pointer;border:none;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:6px;padding:11px;font-family:inherit;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.project-detail-root .sCTA .actions .b.fav{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:oklch(100% 0 0/.16)}.project-detail-root .sCTA .actions .b.fav:hover{background:oklch(100% 0 0/.24)}.project-detail-root .sCTA .actions .b.go{color:var(--primary-strong);background:#fff}.project-detail-root .sCTA .actions .b.go:hover{transform:translateY(-1px)}.project-detail-root .sCTA .actions .b svg{width:13px;height:13px}.project-detail-root .infoCardBody{padding:4px 0 16px}.project-detail-root .infoRowS{grid-template-columns:18px 1fr auto;align-items:center;gap:10px;padding:9px 18px;font-size:12px;display:grid}.project-detail-root .infoRowS svg{width:13px;height:13px;color:var(--muted-foreground)}.project-detail-root .infoRowS .k{color:var(--foreground-subtle)}.project-detail-root .infoRowS .v{color:var(--foreground);font-weight:500;font-family:var(--font-mono);letter-spacing:.04em;text-align:right;font-size:11px}@media (width<=1024px){.project-detail-root .hero{grid-template-columns:1fr}.project-detail-root .heroInfo{padding:32px}.project-detail-root .main{grid-template-columns:1fr}.project-detail-root .sidePanel{position:static}}@media (width<=640px){.project-detail-root .shell{padding:8px 16px 0}.project-detail-root .goalGrid,.project-detail-root .toolGrid{grid-template-columns:1fr}.project-detail-root .cardBody{padding:22px 20px}}.tool-detail-root{--shadow-brand:0 10px 24px oklch(54% .195 280/.32)}.tool-detail-root .shell{max-width:1320px;margin:0 auto;padding:8px 32px 0}.tool-detail-root .crumb{color:var(--muted-foreground);font-size:12px;font-family:var(--font-mono);letter-spacing:.04em;align-items:center;gap:8px;display:flex}.tool-detail-root .crumb a{color:var(--muted-foreground);text-decoration:none}.tool-detail-root .crumb a:hover{color:var(--primary-strong)}.tool-detail-root .crumb .sep{color:color-mix(in oklab, var(--muted-foreground) 70%, transparent)}.tool-detail-root .crumb .cur{color:var(--foreground);font-weight:600}.tool-detail-root .hero{border-radius:var(--r-xl);color:#fff;isolation:isolate;background:radial-gradient(70% 80% at 100% 0,oklch(80% .16 60/.45) 0%,#0000 55%),radial-gradient(80% 100% at 0 100%,oklch(78% .13 220/.45) 0%,#0000 60%),linear-gradient(135deg,oklch(34% .14 282) 0%,oklch(22% .1 270) 100%);grid-template-columns:1.05fr 1fr;gap:0;margin-top:18px;display:grid;position:relative;overflow:hidden}.tool-detail-root .hero:before{content:"";z-index:-1;background-image:linear-gradient(oklch(100% 0 0/.06) 1px,#0000 1px),linear-gradient(90deg,oklch(100% 0 0/.06) 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 70%,#000,#0000);mask-image:radial-gradient(80% 70%,#000,#0000)}.tool-detail-root .heroVisual{flex-direction:column;justify-content:space-between;min-height:420px;padding:36px;display:flex;position:relative;overflow:hidden}.tool-detail-root .vHead{justify-content:space-between;align-items:flex-start;display:flex}.tool-detail-root .vBadge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:.14em;font-size:11px;font-family:var(--font-mono);color:oklch(100% 0 0/.92);background:oklch(100% 0 0/.14);border:1px solid oklch(100% 0 0/.22);border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-weight:500;display:inline-flex}.tool-detail-root .vBadge .live{background:oklch(82% .18 150);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite tdPulse;box-shadow:0 0 0 4px oklch(82% .18 150/.22)}@keyframes tdPulse{0%,to{opacity:1}50%{opacity:.4}}.tool-detail-root .coverFrame{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:oklch(100% 0 0/.05);border:1px solid oklch(100% 0 0/.12);border-radius:14px;flex:1;place-items:center;min-height:240px;margin:22px 0;display:grid;overflow:hidden}.tool-detail-root .coverFrame img{object-fit:cover;width:100%;height:100%}.tool-detail-root .coverFrame .coverGlyph{color:oklch(100% 0 0/.6);width:84px;height:84px}.tool-detail-root .heroInfo{flex-direction:column;min-width:0;padding:38px 44px 38px 16px;display:flex}.tool-detail-root .infoTags{flex-wrap:wrap;gap:8px;display:flex}.tool-detail-root .infoTag{color:oklch(100% 0 0/.92);background:oklch(100% 0 0/.12);border:1px solid oklch(100% 0 0/.18);border-radius:999px;align-items:center;gap:5px;padding:4px 11px;font-size:11px;font-weight:500;display:inline-flex}.tool-detail-root .infoTag.on{color:oklch(90% .1 150);background:oklch(82% .18 150/.22);border-color:oklch(82% .18 150/.5)}.tool-detail-root .infoTag.on:before{content:"";background:oklch(82% .18 150);border-radius:50%;width:5px;height:5px}.tool-detail-root .infoTitle{letter-spacing:-.025em;background:linear-gradient(#fff 0%,oklch(86% .06 285) 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:18px 0 14px;font-size:38px;font-weight:800;line-height:1.05}.tool-detail-root .infoDesc{color:oklch(100% 0 0/.78);margin:0 0 24px;font-size:14px;line-height:1.7}.tool-detail-root .metaStats{border-top:1px solid oklch(100% 0 0/.14);border-bottom:1px solid oklch(100% 0 0/.14);grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px;padding:18px 0;display:grid}.tool-detail-root .metaStats .it{align-items:center;gap:10px;display:flex}.tool-detail-root .metaStats .it .icb{background:oklch(100% 0 0/.1);border-radius:9px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.tool-detail-root .metaStats .it .icb svg{color:#fff;opacity:.85;width:14px;height:14px}.tool-detail-root .metaStats .it .l{color:oklch(100% 0 0/.55);letter-spacing:.1em;font-size:10px;font-family:var(--font-mono);font-weight:500}.tool-detail-root .metaStats .it .v{font-family:var(--font-num);color:#fff;margin-top:2px;font-size:14px;font-weight:700}.tool-detail-root .heroBtns{align-items:center;gap:10px;margin-top:auto;display:flex}.tool-detail-root .btnP{cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border:none;border-radius:11px;align-items:center;gap:8px;padding:13px 22px;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.tool-detail-root .btnP.primary{color:var(--primary-strong);background:#fff;box-shadow:0 10px 30px oklch(0% 0 0/.25)}.tool-detail-root .btnP.primary:hover{transform:translateY(-2px);box-shadow:0 16px 36px oklch(0% 0 0/.32)}.tool-detail-root .btnP.disabled{color:oklch(100% 0 0/.55);cursor:not-allowed;background:oklch(100% 0 0/.12);border:1px solid oklch(100% 0 0/.18)}.tool-detail-root .btnP.ghost{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:oklch(100% 0 0/.12);border:1px solid oklch(100% 0 0/.28)}.tool-detail-root .btnP.ghost:hover{background:oklch(100% 0 0/.18)}.tool-detail-root .btnP svg{width:15px;height:15px}.tool-detail-root .main{grid-template-columns:1fr 340px;align-items:flex-start;gap:24px;margin-top:28px;display:grid}.tool-detail-root .content{flex-direction:column;gap:20px;display:flex}.tool-detail-root .card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.tool-detail-root .cardBody{padding:28px 32px}.tool-detail-root .secHead{align-items:center;gap:12px;margin:0 0 22px;display:flex}.tool-detail-root .secHead .num{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff;width:32px;height:32px;box-shadow:var(--shadow-brand);border-radius:9px;place-items:center;display:grid}.tool-detail-root .secHead .num svg{width:16px;height:16px}.tool-detail-root .secHead h2{color:var(--foreground);letter-spacing:-.005em;margin:0;font-size:19px;font-weight:700}.tool-detail-root .secHead .en{color:var(--muted-foreground);letter-spacing:.18em;font-size:11px;font-family:var(--font-mono);margin-left:auto;font-weight:500}.tool-detail-root .featureGrid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.tool-detail-root .featCard{background:var(--background);border:1px solid var(--border);transition:all var(--dur-fast) var(--ease-out);border-radius:12px;flex-direction:column;gap:12px;padding:22px;display:flex}.tool-detail-root .featCard:hover{background:var(--card);border-color:color-mix(in oklab, var(--primary) 50%, transparent);box-shadow:var(--elevation-2);transform:translateY(-2px)}.tool-detail-root .featCard .top{align-items:center;gap:12px;display:flex}.tool-detail-root .featCard .ic{color:#fff;width:36px;height:36px;box-shadow:var(--elevation-2);background:linear-gradient(135deg, color-mix(in oklab, var(--primary) 75%, transparent), var(--primary-strong));font-family:var(--font-num);border-radius:10px;flex-shrink:0;place-items:center;font-size:14px;font-weight:700;display:grid}.tool-detail-root .featCard .seq{color:var(--muted-foreground);letter-spacing:.16em;font-size:10px;font-family:var(--font-mono);font-weight:600}.tool-detail-root .featCard .nm{color:var(--foreground);font-size:15px;font-weight:700;line-height:1.4}.tool-detail-root .sidePanel{flex-direction:column;gap:16px;display:flex;position:sticky;top:88px}.tool-detail-root .sCard{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.tool-detail-root .sCardHead{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.tool-detail-root .sCardHead h3{color:var(--foreground);align-items:center;gap:7px;margin:0;font-size:13px;font-weight:700;display:flex}.tool-detail-root .sCardHead h3 svg{width:14px;height:14px;color:var(--primary)}.tool-detail-root .sCardHead .en{color:var(--muted-foreground);font-size:10px;font-family:var(--font-mono);letter-spacing:.1em;font-weight:500}.tool-detail-root .ctaCard{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff;padding:22px;position:relative;overflow:hidden}.tool-detail-root .ctaCard:after{content:"";background:radial-gradient(circle,oklch(100% 0 0/.18),#0000 65%);border-radius:50%;width:180px;height:180px;position:absolute;top:-60px;right:-60px}.tool-detail-root .ctaCard .lbl{letter-spacing:.16em;font-size:11px;font-family:var(--font-mono);color:oklch(100% 0 0/.7);font-weight:600}.tool-detail-root .ctaCard .h{color:#fff;margin-top:6px;font-size:20px;font-weight:700}.tool-detail-root .ctaCard .d{color:oklch(100% 0 0/.78);margin-top:6px;font-size:12px;line-height:1.5}.tool-detail-root .ctaCard .actions{z-index:1;flex-direction:column;gap:8px;margin-top:18px;display:flex;position:relative}.tool-detail-root .ctaBtn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:12px;font-family:inherit;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.tool-detail-root .ctaBtn.main{color:var(--primary-strong);background:#fff}.tool-detail-root .ctaBtn.main:hover{transform:translateY(-1px)}.tool-detail-root .ctaBtn.ghost{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:oklch(100% 0 0/.14)}.tool-detail-root .ctaBtn.ghost:hover{background:oklch(100% 0 0/.2)}.tool-detail-root .ctaBtn.disabled{color:oklch(100% 0 0/.55);cursor:not-allowed;background:oklch(100% 0 0/.14)}.tool-detail-root .ctaBtn svg{width:13px;height:13px}.tool-detail-root .ratingRow{z-index:1;border-top:1px solid oklch(100% 0 0/.18);align-items:center;gap:10px;margin-top:16px;padding-top:14px;display:flex;position:relative}.tool-detail-root .ratingRow .meta{color:oklch(100% 0 0/.7);font-size:11px;font-family:var(--font-mono);letter-spacing:.04em}.tool-detail-root .ratingRow .meta b{color:#fff;font-weight:600}.tool-detail-root .infoCardBody{padding:4px 0 16px}.tool-detail-root .infoRowS{grid-template-columns:18px 92px 1fr;align-items:center;gap:10px;padding:9px 18px;font-size:12px;display:grid}.tool-detail-root .infoRowS svg{width:13px;height:13px;color:var(--muted-foreground)}.tool-detail-root .infoRowS .k{color:var(--muted-foreground);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:600}.tool-detail-root .infoRowS .v{color:var(--foreground);font-weight:500}.tool-detail-root .infoRowS .v.mono{font-family:var(--font-mono);letter-spacing:.04em;font-size:11px}.tool-detail-root .infoRowS .v code{font-family:var(--font-mono);background:var(--muted);color:var(--primary-strong);border-radius:4px;padding:2px 7px;font-size:11px;font-weight:600}.tool-detail-root .infoRowS .v .ok{background:var(--success-subtle);color:var(--success-subtle-foreground);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.tool-detail-root .infoRowS .v .ok:before{content:"";background:var(--success-solid);border-radius:50%;width:5px;height:5px}@media (width<=1024px){.tool-detail-root .hero{grid-template-columns:1fr}.tool-detail-root .heroInfo{padding:32px}.tool-detail-root .main{grid-template-columns:1fr}.tool-detail-root .sidePanel{position:static}}@media (width<=640px){.tool-detail-root .shell{padding:8px 16px 0}.tool-detail-root .featureGrid{grid-template-columns:1fr}}.course-design-root{min-width:0;color:var(--foreground);flex-direction:column;gap:18px;font-size:13px;display:flex}.course-design-root .stateBox{flex-direction:column;align-items:flex-start;gap:14px;padding:40px 8px;display:flex}.course-design-root .stateBox p{color:var(--muted-foreground);margin:0;font-size:14px}.course-design-root .courseBar{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden}.course-design-root .courseBarTop{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px 14px;display:flex}.course-design-root .barLeft{align-items:center;gap:16px;min-width:0;display:flex}.course-design-root .backBtn{background:var(--muted);color:var(--foreground-subtle);cursor:pointer;border:none;border-radius:9px;align-items:center;gap:6px;padding:7px 12px;font-family:inherit;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.course-design-root .backBtn:hover{background:color-mix(in oklab, var(--primary) 16%, transparent);color:var(--primary-strong)}.course-design-root .backBtn svg{width:14px;height:14px}.course-design-root .courseTitle{flex-direction:column;gap:4px;min-width:0;display:flex}.course-design-root .courseTitle h1{color:var(--foreground);letter-spacing:-.005em;flex-wrap:wrap;align-items:center;gap:10px;min-width:0;margin:0;font-size:18px;font-weight:700;display:flex}.course-design-root .courseTitle h1 .id{color:var(--muted-foreground);font-size:11px;font-family:var(--font-mono);letter-spacing:.04em;font-weight:500}.course-design-root .courseMetaInline{color:var(--muted-foreground);font-size:11px;font-family:var(--font-mono);letter-spacing:.04em;flex-wrap:wrap;align-items:center;gap:12px;display:flex}.course-design-root .courseMetaInline .dot{background:color-mix(in oklab, var(--muted-foreground) 50%, transparent);border-radius:50%;width:3px;height:3px}.course-design-root .badge.status{font-size:11px;font-weight:600;font-family:var(--font-mono);letter-spacing:.06em;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.course-design-root .badge.status:before{content:"";border-radius:50%;width:6px;height:6px}.course-design-root .badge.status.draft{background:var(--warning-subtle);color:var(--warning-subtle-foreground);border:1px solid color-mix(in oklab, var(--warning-subtle-foreground) 30%, transparent)}.course-design-root .badge.status.draft:before{background:var(--warning-solid)}.course-design-root .badge.status.published{background:var(--success-subtle);color:var(--success-subtle-foreground);border:1px solid color-mix(in oklab, var(--success-subtle-foreground) 30%, transparent)}.course-design-root .badge.status.published:before{background:var(--success-solid)}.course-design-root .badge.status.archived{background:var(--muted);color:var(--foreground-subtle);border:1px solid var(--border)}.course-design-root .badge.status.archived:before{background:var(--muted-foreground)}.course-design-root .barRight{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.course-design-root .btn{cursor:pointer;border:1px solid var(--input);background:var(--card);color:var(--foreground);border-radius:9px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.course-design-root .btn:hover:not(:disabled){border-color:color-mix(in oklab, var(--primary) 75%, transparent);color:var(--primary-strong)}.course-design-root .btn:disabled{opacity:.5;cursor:not-allowed}.course-design-root .btn.primary{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff;box-shadow:0 8px 20px color-mix(in oklab, var(--primary) 32%, transparent);border-color:#0000}.course-design-root .btn.primary:hover:not(:disabled){color:#fff;transform:translateY(-1px)}.course-design-root .btn.danger{color:var(--danger-subtle-foreground)}.course-design-root .btn.danger:hover:not(:disabled){border-color:var(--danger-solid);color:var(--danger-subtle-foreground);background:var(--danger-subtle)}.course-design-root .btn svg{width:13px;height:13px}.course-design-root .courseTabs{border-top:1px solid var(--border);align-items:center;gap:0;padding:0 20px;display:flex}.course-design-root .courseTab{color:var(--foreground-subtle);cursor:default;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:12px 16px;font-family:inherit;font-size:13px;font-weight:500;display:inline-flex}.course-design-root .courseTab.active{color:var(--primary-strong);border-bottom-color:var(--primary);font-weight:600}.course-design-root .courseTab svg{width:14px;height:14px}.course-design-root .courseTab .ct{background:color-mix(in oklab, var(--primary) 16%, transparent);color:var(--primary-strong);font-size:10px;font-family:var(--font-mono);border-radius:999px;padding:1px 6px;font-weight:600}.course-design-root .pageHeader{justify-content:space-between;align-items:flex-end;gap:16px;padding:2px 4px 0;display:flex}.course-design-root .pageHeader h2{color:var(--foreground);align-items:center;gap:10px;margin:0;font-size:16px;font-weight:700;display:flex}.course-design-root .pageHeader h2 svg{width:18px;height:18px;color:var(--primary)}.course-design-root .pageHeader p{color:var(--muted-foreground);margin:4px 0 0;font-size:12px}.course-design-root .pageHeader .lock{color:var(--warning-subtle-foreground);margin-left:6px;font-weight:600}.course-design-root .chList{flex-direction:column;gap:14px;display:flex}.course-design-root .emptyLine{text-align:center;color:var(--muted-foreground);padding:28px 8px;font-size:13px}.course-design-root .chapter{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden}.course-design-root .chapHead{background:linear-gradient(180deg, color-mix(in oklab, var(--muted) 50%, var(--card)), var(--card));border-bottom:1px solid var(--border);grid-template-columns:20px 38px 1fr auto auto;align-items:center;gap:14px;padding:16px 18px;display:grid}.course-design-root .chapter[data-open=false] .chapHead{border-bottom:none}.course-design-root .drag{width:18px;height:18px;color:var(--muted-foreground);place-items:center;display:grid}.course-design-root .drag svg{width:14px;height:14px}.course-design-root .chapNum{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff;width:38px;height:38px;font-family:var(--font-num);letter-spacing:-.02em;border-radius:10px;place-items:center;font-size:15px;font-weight:700;display:grid}.course-design-root .chapInfo{min-width:0}.course-design-root .chapInfo .ttl{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.course-design-root .chapInfo .sub{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:12px;overflow:hidden}.course-design-root .chapInfo .stats{color:var(--muted-foreground);font-size:11px;font-family:var(--font-mono);letter-spacing:.04em;flex-wrap:wrap;align-items:center;gap:12px;margin-top:5px;display:flex}.course-design-root .chapInfo .stats .dot{background:color-mix(in oklab, var(--muted-foreground) 50%, transparent);border-radius:50%;width:3px;height:3px}.course-design-root .chapInfo .stats b{color:var(--foreground-subtle);font-weight:600}.course-design-root .chapActs{align-items:center;gap:6px;display:flex}.course-design-root .iconBtn{width:28px;height:28px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:none;border-radius:7px;place-items:center;display:grid}.course-design-root .iconBtn:hover:not(:disabled){background:var(--muted);color:var(--primary-strong)}.course-design-root .iconBtn:disabled{opacity:.4;cursor:not-allowed}.course-design-root .iconBtn.danger:hover:not(:disabled){background:var(--danger-subtle);color:var(--danger-subtle-foreground)}.course-design-root .iconBtn svg{width:15px;height:15px}.course-design-root .iconBtn .chevron{transition:transform var(--dur-fast) var(--ease-out)}.course-design-root .chapter[data-open=false] .iconBtn .chevron{transform:rotate(-90deg)}.course-design-root .chapter[data-open=false] .lessonStack,.course-design-root .chapter[data-open=false] .lessonAdd{display:none}.course-design-root .pubChip{font-size:11px;font-weight:600;font-family:var(--font-mono);letter-spacing:.06em;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 11px;display:inline-flex}.course-design-root .pubChip:before{content:"";border-radius:50%;width:5px;height:5px}.course-design-root .pubChip.draft{background:var(--muted);color:var(--foreground-subtle)}.course-design-root .pubChip.draft:before{background:var(--muted-foreground)}.course-design-root .pubChip.live{background:var(--success-subtle);color:var(--success-subtle-foreground)}.course-design-root .pubChip.live:before{background:var(--success-solid);box-shadow:0 0 0 3px oklch(60% .14 155/.18)}.course-design-root .lessonStack{flex-direction:column;display:flex}.course-design-root .lesson{border-bottom:1px solid var(--border);transition:background var(--dur-fast) var(--ease-out)}.course-design-root .lesson:last-child{border-bottom:none}.course-design-root .lesson:hover,.course-design-root .lesson[data-expanded=true] .lessonRow{background:color-mix(in oklab, var(--muted) 50%, var(--card))}.course-design-root .lessonRow{grid-template-columns:18px 24px auto 1fr auto auto auto;align-items:center;gap:12px;padding:12px 18px;display:grid}.course-design-root .lessonNum{background:color-mix(in oklab, var(--primary) 10%, transparent);width:24px;height:24px;color:var(--primary-strong);font-family:var(--font-num);border-radius:6px;place-items:center;font-size:11px;font-weight:700;display:grid}.course-design-root .typeChip{background:var(--muted);color:var(--foreground-subtle);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:500;display:inline-flex}.course-design-root .typeChip svg{width:11px;height:11px}.course-design-root .typeChip.text{background:color-mix(in oklab, var(--primary) 10%, transparent);color:var(--primary-strong)}.course-design-root .typeChip.video{color:oklch(52% .2 22);background:oklch(95% .04 25/.5)}.course-design-root .typeChip.code{color:oklch(48% .18 245);background:oklch(95% .04 245)}.course-design-root .typeChip.live{color:oklch(50% .18 328);background:oklch(96% .04 330)}.course-design-root .lessonTitle{min-width:0}.course-design-root .lessonTitle .nm{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.course-design-root .lessonTitle .meta{color:var(--muted-foreground);font-size:11px;font-family:var(--font-mono);letter-spacing:.04em;flex-wrap:wrap;align-items:center;gap:8px;margin-top:3px;display:flex}.course-design-root .resCounts{align-items:center;gap:6px;display:flex}.course-design-root .rCount{background:var(--muted);color:color-mix(in oklab, var(--muted-foreground) 70%, transparent);border-radius:7px;align-items:center;gap:5px;padding:4px 9px;font-size:11px;font-weight:500;display:inline-flex}.course-design-root .rCount svg{width:11px;height:11px}.course-design-root .rCount.has.r{color:oklch(58% .16 245);background:oklch(95% .04 245)}.course-design-root .rCount.has.d{color:oklch(48% .16 55);background:oklch(96% .04 65)}.course-design-root .rCount.has.t{color:oklch(58% .14 175);background:oklch(95% .03 175)}.course-design-root .rCount.has.sv{color:oklch(55% .16 230);background:oklch(95% .03 230)}.course-design-root .rCount.has.p{color:oklch(58% .2 330);background:oklch(96% .04 330)}.course-design-root .rCount .num{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-weight:700}.course-design-root .lessonBody{background:color-mix(in oklab, var(--muted) 50%, var(--card));border-top:1px dashed var(--border);padding:0 18px 18px;display:none}.course-design-root .lesson[data-expanded=true] .lessonBody{display:block}.course-design-root .mountBar{flex-wrap:wrap;align-items:center;gap:8px;padding:14px 0 12px;display:flex}.course-design-root .mountBtn{color:var(--foreground-subtle);background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:7px;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:500;display:inline-flex}.course-design-root .mountBtn:hover:not(:disabled){border-color:color-mix(in oklab, var(--primary) 50%, transparent);color:var(--primary-strong);background:color-mix(in oklab, var(--primary) 10%, transparent)}.course-design-root .mountBtn:disabled{opacity:.5;cursor:not-allowed}.course-design-root .mountBtn svg{width:12px;height:12px}.course-design-root .mountListLabel{color:var(--muted-foreground);font-size:11px;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;padding:2px 2px 8px;font-weight:600}.course-design-root .lessonAdd{border:1.5px dashed var(--input);background:color-mix(in oklab, var(--muted) 50%, var(--card));color:var(--primary-strong);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:7px;width:calc(100% - 36px);margin:6px 18px 16px;padding:12px;font-family:inherit;font-size:12px;font-weight:600;display:flex}.course-design-root .lessonAdd:hover:not(:disabled){background:color-mix(in oklab, var(--primary) 10%, transparent);border-color:color-mix(in oklab, var(--primary) 75%, transparent)}.course-design-root .lessonAdd:disabled{opacity:.5;cursor:not-allowed}.course-design-root .lessonAdd svg,.course-design-root .chapterAdd svg{width:14px;height:14px}.course-design-root .chapterAdd{border:1.5px dashed var(--input);background:var(--card);color:var(--primary-strong);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:7px;padding:16px;font-family:inherit;font-size:13px;font-weight:600;display:flex}.course-design-root .chapterAdd:hover:not(:disabled){background:color-mix(in oklab, var(--primary) 10%, transparent);border-color:color-mix(in oklab, var(--primary) 75%, transparent)}.course-design-root .chapterAdd:disabled{opacity:.5;cursor:not-allowed}@media (width<=640px){.course-design-root .lessonRow{grid-template-columns:18px 24px 1fr auto}.course-design-root .lessonRow .typeChip,.course-design-root .lessonRow .resCounts{display:none}}
