@property --cn-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}:root{--font-mono: ui-monospace, "Cascadia Code", Consolas, monospace;--radius: 4px;--radius-sm: 6px;--cn-clip-btn: polygon(14px 0, 100% 0, 100% calc(100% - 14px) , calc(100% - 14px) 100%, 0 100%, 0 14px);--cn-clip-btn-sm: polygon(8px 0, 100% 0, 100% calc(100% - 8px) , calc(100% - 8px) 100%, 0 100%, 0 8px);--cn-clip-chip: polygon(6px 0, 100% 0, 100% calc(100% - 6px) , calc(100% - 6px) 100%, 0 100%, 0 6px);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .3s;--dur-reveal: .55s}:root{--bg: #f1f1f3;--card: rgba(255, 255, 255, .72);--card-solid: #ffffff;--header-bg: rgba(246, 246, 248, .86);--field-bg: #ffffff;--text: #1c2333;--text-h: #101014;--muted: #55555e;--primary: #3b5bdb;--primary-hover: #2f4ac0;--primary-dark: #2f4ac0;--on-primary: #ffffff;--success: #2f9e44;--warning: #e8590c;--danger: #e03131;--on-danger: #ffffff;--border: rgba(16, 16, 20, .12);--border-strong: rgba(16, 16, 20, .34);--surface-muted: #f8f8fa;--surface-hover: rgba(16, 16, 20, .05);--surface-strong: rgba(16, 16, 20, .1);--accent-soft: rgba(59, 91, 219, .1);--success-soft: #e6f7ec;--warning-soft: #fff0e6;--muted-soft: #eef0f4;--danger-soft: #fdeceb;--overlay: rgba(16, 16, 20, .45);--code-bg: #e9e9ec;--ai-bubble: #f4f6fa;--ai-bubble-ai: #f0f4ff;--ai-box-bg: #f6f4ff;--ai-box-border: #ded8f5;--cn-glass: var(--card);--cn-glass-strong: rgba(255, 255, 255, .92);--cn-spotlight: rgba(16, 16, 20, .05);--cn-hud: rgba(16, 16, 20, .4);--cn-glow: rgba(91, 82, 235, .22);--cn-glow-strong: rgba(112, 72, 232, .38);--cn-sheen: rgba(255, 255, 255, .65);--cn-scanline: transparent;--aurora: linear-gradient(135deg, #3b5bdb 0%, #7048e8 100%);--aurora-from: #3b5bdb;--aurora-to: #7048e8;--aurora-soft: rgba(112, 72, 232, .13);--shadow-sm: 0 1px 2px rgba(20, 20, 45, .07), 0 0 0 1px rgba(20, 20, 45, .02);--shadow-md: 0 2px 6px rgba(20, 20, 45, .06), 0 10px 28px rgba(20, 20, 45, .12);--shadow-lg: 0 4px 12px rgba(20, 20, 45, .1), 0 26px 64px rgba(20, 20, 45, .18), 0 12px 44px rgba(59, 91, 219, .1);color-scheme:light}:root.theme-dark{--bg: #030304;--card: rgba(255, 255, 255, .04);--card-solid: #101013;--header-bg: rgba(4, 4, 6, .78);--field-bg: rgba(255, 255, 255, .04);--text: #b4b4bd;--text-h: #f6f6f7;--muted: #9d9da6;--primary: #748ffc;--primary-hover: #91a7ff;--primary-dark: #5c7cfa;--on-primary: #04050a;--success: #69db7c;--warning: #ffa94d;--danger: #ff8787;--on-danger: #04050a;--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .24);--surface-muted: rgba(255, 255, 255, .04);--surface-hover: rgba(255, 255, 255, .05);--surface-strong: rgba(255, 255, 255, .1);--accent-soft: rgba(116, 143, 252, .16);--success-soft: rgba(105, 219, 124, .14);--warning-soft: rgba(255, 169, 77, .13);--muted-soft: rgba(255, 255, 255, .06);--danger-soft: rgba(255, 135, 135, .14);--overlay: rgba(0, 0, 0, .7);--code-bg: #101013;--ai-bubble: rgba(255, 255, 255, .05);--ai-bubble-ai: rgba(116, 143, 252, .14);--ai-box-bg: rgba(139, 109, 252, .1);--ai-box-border: rgba(139, 109, 252, .3);--cn-glass: var(--card);--cn-glass-strong: rgba(10, 10, 13, .95);--cn-spotlight: rgba(139, 109, 252, .1);--cn-hud: rgba(255, 255, 255, .5);--cn-glow: rgba(109, 102, 250, .34);--cn-glow-strong: rgba(132, 94, 247, .5);--cn-sheen: rgba(255, 255, 255, .35);--cn-scanline: rgba(255, 255, 255, .016);--aurora: linear-gradient(135deg, #5c7cfa 0%, #845ef7 100%);--aurora-from: #5c7cfa;--aurora-to: #845ef7;--aurora-soft: rgba(132, 94, 247, .17);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .03);--shadow-md: 0 2px 6px rgba(0, 0, 0, .45), 0 12px 32px rgba(0, 0, 0, .5);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .5), 0 26px 64px rgba(0, 0, 0, .65), 0 12px 48px rgba(92, 124, 250, .14);color-scheme:dark}html{transition:background-color .25s ease,color .25s ease}::selection{background:var(--primary);color:var(--on-primary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.cn-index{display:inline-flex;align-items:center;gap:.9rem;font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}.cn-index:before{content:"";width:2.2rem;height:1px;background:var(--border-strong)}@keyframes cn-border-spin{to{--cn-angle: 360deg}}@keyframes cn-fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes cn-btn-pulse{0%,to{filter:drop-shadow(0 0 6px var(--cn-glow))}50%{filter:drop-shadow(0 0 14px var(--cn-glow-strong))}}@keyframes bar-sheen{to{transform:translate(100%)}}@keyframes aurora-breathe{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}:root.theme-dark body{background-color:var(--bg);background-image:radial-gradient(900px 480px at 75% -10%,rgba(76,101,219,.16),transparent 60%),radial-gradient(1000px 520px at 88% 16%,rgba(132,94,247,.12),transparent 62%),radial-gradient(700px 420px at -5% 25%,rgba(116,143,252,.09),transparent 55%),radial-gradient(2px 2px at 12% 22%,rgba(255,255,255,.55) 49%,transparent 51%),radial-gradient(1.5px 1.5px at 28% 64%,rgba(255,255,255,.4) 49%,transparent 51%),radial-gradient(2px 2px at 44% 14%,rgba(255,255,255,.45) 49%,transparent 51%),radial-gradient(1.5px 1.5px at 61% 42%,rgba(255,255,255,.35) 49%,transparent 51%),radial-gradient(2px 2px at 77% 74%,rgba(255,255,255,.4) 49%,transparent 51%),radial-gradient(1.5px 1.5px at 90% 18%,rgba(255,255,255,.5) 49%,transparent 51%),radial-gradient(1.5px 1.5px at 8% 84%,rgba(255,255,255,.3) 49%,transparent 51%);background-attachment:fixed}:root.theme-dark body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,var(--cn-scanline) 0 1px,transparent 1px 3px);pointer-events:none;z-index:9999}:root:not(.theme-dark) body{background-image:radial-gradient(1100px 460px at 75% -8%,var(--accent-soft),transparent 62%),radial-gradient(900px 480px at 92% 30%,rgba(112,72,232,.07),transparent 60%);background-attachment:fixed}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1100px;margin:0 auto;padding:0 16px}.topbar{background:var(--header-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}.topbar-inner{display:flex;align-items:center;gap:20px;height:56px;max-width:1100px;margin:0 auto;padding:0 16px}.brand{font-weight:700;font-size:18px;color:var(--text-h);letter-spacing:.04em;text-transform:uppercase}.brand:hover{text-decoration:none}.nav-links{display:flex;gap:16px;flex:1;flex-wrap:wrap}.nav-link{color:var(--muted);font-weight:500;transition:color .2s}.nav-link:hover{color:var(--text-h);text-decoration:none}.nav-link.router-link-active{color:var(--primary)}.theme-toggle{width:34px;height:34px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--muted);font-size:15px;line-height:1;cursor:pointer;transition:color .2s,border-color .2s,box-shadow .25s}.theme-toggle:hover{color:var(--primary);border-color:var(--border-strong);box-shadow:0 0 10px var(--cn-glow)}.card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color .3s var(--ease-out),transform .3s var(--ease-out),box-shadow .3s var(--ease-out)}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(240px circle at var(--mx, 50%) var(--my, 50%),var(--cn-spotlight),transparent 65%);opacity:0;transition:opacity .35s ease;pointer-events:none}.card:hover:before{opacity:1;background:linear-gradient(var(--cn-hud) 0 0) left 7px top 7px / 18px 1px no-repeat,linear-gradient(var(--cn-hud) 0 0) left 7px top 7px / 1px 18px no-repeat,linear-gradient(var(--cn-hud) 0 0) right 7px bottom 7px / 18px 1px no-repeat,linear-gradient(var(--cn-hud) 0 0) right 7px bottom 7px / 1px 18px no-repeat,radial-gradient(240px circle at var(--mx, 50%) var(--my, 50%),var(--cn-spotlight),transparent 65%)}.card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;padding:1px;background:conic-gradient(from var(--cn-angle),transparent 0deg,transparent 280deg,var(--aurora-from) 330deg,var(--aurora-to) 348deg,transparent 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;opacity:0;transition:opacity .35s ease;pointer-events:none}.card:hover:after{opacity:1;animation:cn-border-spin 5s linear infinite}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md),0 10px 36px var(--aurora-soft);transform:translateY(-2px)}.card>*{position:relative;z-index:1}a.card,a.card *{text-decoration:none;color:inherit}.bento{display:grid;gap:16px;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;grid-auto-flow:dense}.bento-auto{grid-auto-rows:minmax(150px,auto)}.bento-card{position:relative;display:flex;flex-direction:column;color:inherit;animation:cn-fade-up .55s ease backwards;animation-delay:calc(min(var(--i, 0),10)*55ms)}.bento-xl{grid-column:span 2;grid-row:span 2}.bento-w{grid-column:span 2}.bento-t{grid-row:span 2}.bento-full{grid-column:1 / -1}.bento-art{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;opacity:.75;pointer-events:none;transition:opacity .35s ease,transform .5s ease}.bento-card:hover .bento-art{opacity:1;transform:scale(1.03)}.bento-art i,.bento-art span{position:absolute;display:block}.bento-body{position:relative;z-index:2;display:flex;flex-direction:column;flex:1;min-height:0}.bento-code{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.22em;color:var(--muted);opacity:.8}.bento-title{margin:6px 0 0;font-size:16px;line-height:1.25;color:var(--text-h);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bento-desc{margin:8px 0 0;font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bento-foot{margin-top:auto;padding-top:10px;display:flex;gap:8px;flex-wrap:wrap}.bento-teacher{font-size:12px;margin-top:8px}.bento-xl .bento-title{font-size:22px;-webkit-line-clamp:3}.bento-xl .bento-desc{font-size:14px;-webkit-line-clamp:4;max-width:78%}.bento-t .bento-desc{-webkit-line-clamp:4}.bento-w .bento-desc{-webkit-line-clamp:1}.bento-s .bento-desc,.bento-s .bento-teacher,.bento-w .bento-teacher{display:none}.art-orbit .o-ring{top:20%;right:30%;bottom:20%;left:30%;border:1px dashed var(--border-strong);border-radius:50%;opacity:.5}.art-orbit .o-orbit{top:8%;right:16%;bottom:8%;left:16%;animation:art-spin 9s linear infinite}.art-orbit .o-orbit.r2{top:30%;right:38%;bottom:30%;left:38%;animation-duration:15s;animation-direction:reverse}.art-orbit .o-moon{top:-3px;left:50%;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:var(--primary);box-shadow:0 0 12px var(--cn-glow-strong)}.art-orbit .o-core{left:50%;top:50%;width:12px;height:12px;transform:translate(-50%,-50%);border-radius:50%;background:var(--primary);animation:art-core 3s ease-in-out infinite}.art-pulse .p-ring{left:68%;top:56%;width:64px;height:64px;margin:-32px;border:1px solid var(--primary);border-radius:50%;opacity:0;animation:art-radar 3.9s linear infinite}.art-pulse .p-dot{left:68%;top:56%;width:10px;height:10px;margin:-5px;border-radius:50%;background:var(--primary);box-shadow:0 0 14px var(--cn-glow-strong)}.art-eq .eq-bar{bottom:14px;width:5px;border-radius:2px;background:var(--primary);opacity:.6;height:20%;animation:art-eq 1.2s ease-in-out infinite}.art-eq .eq-bar:nth-of-type(1){left:56%;animation-duration:1.05s}.art-eq .eq-bar:nth-of-type(2){left:65%;animation-delay:.15s}.art-eq .eq-bar:nth-of-type(3){left:74%;animation-delay:.3s;animation-duration:1.4s}.art-eq .eq-bar:nth-of-type(4){left:83%;animation-delay:.45s}.art-eq .eq-bar:nth-of-type(5){left:92%;animation-delay:.2s;animation-duration:.95s}.art-stars .s-neb{width:190px;height:190px;right:-40px;top:-40px;border-radius:50%;background:radial-gradient(circle,var(--accent-soft),transparent 65%);filter:blur(6px);animation:art-drift 16s ease-in-out infinite alternate}.art-stars .s-dot{width:2.5px;height:2.5px;border-radius:50%;background:var(--text-h);opacity:.15;animation:art-twinkle 2.8s ease-in-out infinite}.art-wave .w-svg{position:absolute;left:0;width:200%;height:34px;bottom:8%;fill:none;stroke:var(--primary);stroke-width:1.5;opacity:.5;animation:art-wave 9s linear infinite}.art-wave .w2{stroke-width:1;opacity:.3;bottom:22%;animation-duration:13s;animation-direction:reverse}.art-comet .c-streak{left:-90px;width:80px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--primary));box-shadow:0 0 8px var(--cn-glow);opacity:0;animation:art-comet 7s linear infinite}.art-comet .c-streak:nth-of-type(1){top:30%}.art-comet .c-streak:nth-of-type(2){top:55%;animation-delay:2.3s;animation-duration:8s}.art-comet .c-streak:nth-of-type(3){top:75%;animation-delay:4.5s;animation-duration:9s}.art-scan .sc-grid{top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:28px 28px;opacity:.45;-webkit-mask-image:radial-gradient(120% 90% at 60% 100%,#000 30%,transparent 75%);mask-image:radial-gradient(120% 90% at 60% 100%,#000 30%,transparent 75%)}.art-scan .sc-beam{left:0;right:0;height:56px;top:-15%;background:linear-gradient(180deg,transparent,var(--accent-soft) 45%,var(--accent-soft) 55%,transparent);animation:art-scan 5.5s linear infinite}.art-cover img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.4;animation:art-ken 16s ease-in-out infinite alternate}.art-cover .cv-sheen{top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,transparent 30%,var(--cn-sheen) 50%,transparent 70%);opacity:.12;animation:art-sheen 6s ease-in-out infinite}.sk{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.sk:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--surface-hover),transparent);animation:sk-shimmer 1.6s ease infinite}@keyframes art-spin{to{transform:rotate(360deg)}}@keyframes art-core{0%,to{box-shadow:0 0 10px var(--cn-glow)}50%{box-shadow:0 0 22px var(--cn-glow-strong)}}@keyframes art-radar{0%{transform:scale(.25);opacity:.85}to{transform:scale(2.6);opacity:0}}@keyframes art-eq{0%,to{height:16%}50%{height:62%}}@keyframes art-twinkle{0%,to{opacity:.12;transform:scale(1)}50%{opacity:.9;transform:scale(1.6)}}@keyframes art-drift{0%{transform:translate(0)}to{transform:translate(-26px,18px)}}@keyframes art-wave{to{transform:translate(-50%)}}@keyframes art-comet{0%{transform:translate(0) rotate(-14deg);opacity:0}8%{opacity:.9}45%{opacity:.9}60%,to{transform:translate(560px) rotate(-14deg);opacity:0}}@keyframes art-scan{0%{transform:translateY(-40px)}to{transform:translateY(560px)}}@keyframes art-ken{0%{transform:scale(1)}to{transform:scale(1.15) translate(-10px,6px)}}@keyframes art-sheen{0%,to{transform:translate(-70%)}50%{transform:translate(70%)}}@keyframes sk-shimmer{to{transform:translate(100%)}}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border:none;clip-path:var(--cn-clip-btn);font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:var(--primary);color:var(--on-primary);overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background .2s ease,background-position .45s var(--ease-out),transform .16s var(--ease-spring),filter .25s ease}.btn:hover{background:var(--primary-hover);transform:translateY(-2px) scale(1.03);filter:drop-shadow(0 0 12px var(--cn-glow))}.btn:active{transform:translateY(1px) scale(.96);filter:none;transition-duration:.06s}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;filter:none}.btn:focus-visible{clip-path:none;border-radius:var(--radius);outline:2px solid var(--primary);outline-offset:2px}.btn:after{content:"";position:absolute;top:0;left:-80%;width:55%;height:100%;background:linear-gradient(100deg,transparent,var(--cn-sheen),transparent);transform:skew(-18deg);transition:left .55s ease;pointer-events:none}.btn:hover:after{left:130%}.btn-outline{background:var(--card);color:var(--primary);box-shadow:inset 0 0 0 1px var(--border-strong)}.btn-outline:hover{background:var(--accent-soft);filter:none}.btn-outline:hover:after{left:-80%}.btn-outline:disabled{background:var(--card)}.btn-danger{background:var(--danger);color:var(--on-danger)}.btn-danger:hover{background:var(--danger);filter:drop-shadow(0 0 10px var(--danger-soft))}.btn-danger:hover:after{left:130%}.btn-danger:focus-visible{outline-color:var(--danger)}.btn-sm{padding:5px 14px;font-size:11px;clip-path:var(--cn-clip-btn-sm)}.btn-aurora{background:var(--aurora);background-size:170% 170%;background-position:0% 50%;color:#fff}.btn-aurora:hover{background:var(--aurora);background-position:92% 50%;filter:drop-shadow(0 0 14px var(--cn-glow-strong))}.btn-aurora:hover:after{left:130%}.btn-aurora:focus-visible{outline-color:var(--aurora-to)}.btn-aurora:disabled{background:var(--aurora)}.field{margin-bottom:14px}.field label{display:block;font-size:11px;font-weight:700;margin-bottom:5px;color:var(--muted);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase}.field input,.field textarea,.field select{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:var(--font-mono);letter-spacing:.02em;background:var(--field-bg);color:var(--text-h);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.field textarea{resize:vertical;min-height:90px}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--aurora-from);background:var(--surface-muted);box-shadow:0 0 0 3px var(--aurora-soft)}.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.6}.badge{display:inline-block;padding:3px 10px;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;clip-path:var(--cn-clip-chip);background:var(--muted-soft);box-shadow:inset 0 0 0 1px var(--border);white-space:nowrap}.badge-green{background:var(--success-soft);color:var(--success)}.badge-gray{color:var(--muted)}.badge-blue{background:var(--accent-soft);color:var(--primary)}.badge-orange{background:var(--warning-soft);color:var(--warning)}.badge-aurora{background:var(--aurora);color:#fff;box-shadow:inset 0 0 0 1px #ffffff47,0 2px 10px var(--aurora-soft)}.error-text{color:var(--danger);font-size:14px;margin:8px 0}.muted{color:var(--muted);font-size:14px}.page-title{font-size:24px;font-weight:700;margin:24px 0 16px;color:var(--text-h);letter-spacing:-.01em}.page-head{margin:24px 0 16px;display:flex;flex-direction:column;gap:6px}.page-head .page-title,.page-head .muted{margin:0}.page-head-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin:24px 0 16px}.page-head-row .page-head{margin:0;flex:1 1 auto}.table{width:100%;border-collapse:collapse;background:var(--card);border-radius:var(--radius);overflow:hidden;font-variant-numeric:tabular-nums}.table th,.table td{padding:10px 14px;text-align:left;font-size:14px;border-bottom:1px solid var(--border)}.table th{background:var(--surface-muted);font-size:11px;font-family:var(--font-mono);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.table tbody tr{transition:background .2s var(--ease-out)}.table tbody tr:hover{background:var(--surface-hover)}.progress{background:var(--surface-muted);border-radius:20px;height:8px;overflow:hidden}.progress-bar{position:relative;overflow:hidden;background:var(--aurora);height:100%;border-radius:20px;transition:width .3s var(--ease-out)}.progress-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);animation:bar-sheen 2.6s var(--ease-out) infinite}.tab{padding:4px 10px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer;color:var(--muted);font-family:var(--font-mono)}.tab.active{background:var(--card-solid);color:var(--text);border:1px solid var(--border)}.tab em{color:var(--warning);font-style:normal}.flash{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--cn-glass-strong);backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);color:var(--text-h);padding:12px 22px;border-radius:var(--radius);border:1px solid var(--border);border-left:3px solid var(--primary);font-weight:600;z-index:200;box-shadow:var(--shadow-lg);animation:cn-fade-up .3s ease backwards}.flash-success{border-left-color:var(--success)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:150}.modal{width:min(520px,92vw)}.modal:before,.modal:after{content:"";position:absolute;width:16px;height:16px;border:1px solid var(--border-strong);pointer-events:none;z-index:2}.modal:before{top:8px;left:8px;border-right:none;border-bottom:none}.modal:after{bottom:8px;right:8px;border-left:none;border-top:none}.modal-close{position:absolute;top:12px;right:12px;z-index:3;width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-solid);color:var(--muted);font-size:16px;line-height:1;cursor:pointer}.modal-close:hover{color:var(--text);border-color:var(--border-strong)}.chain-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px}.chain-item:hover{background:var(--surface-hover)}.chain-item.active{background:var(--accent-soft)}.chain-item.disabled{opacity:.55;cursor:not-allowed}.chain-icon{width:20px;text-align:center}.chain-actions{display:none;gap:2px}.chain-item:hover .chain-actions{display:flex}.mini{border:0;background:transparent;cursor:pointer;font-size:13px;padding:2px 5px;border-radius:var(--radius-sm);color:var(--muted)}.mini:hover{background:var(--surface-strong);color:var(--text)}.ai-box{background:var(--ai-box-bg);border:1px solid var(--ai-box-border);border-radius:var(--radius-sm);padding:14px;margin-bottom:14px}.upload-row{display:flex;align-items:center;gap:12px;margin:12px 0 16px}.inline-input{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:var(--font-mono);letter-spacing:.02em;background:var(--field-bg);color:var(--text-h);transition:border-color .2s ease,box-shadow .2s ease}.inline-input:focus{outline:none;border-color:var(--aurora-from);box-shadow:0 0 0 3px var(--aurora-soft)}.lesson-list{display:flex;flex-direction:column;gap:6px;background:var(--card-solid);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px}.lesson-item{font-size:14px;padding:4px 0;border-bottom:1px solid var(--border)}.lesson-item:last-child{border-bottom:0}.personal-form{margin-top:8px;padding:10px;background:var(--surface-muted);border-radius:var(--radius-sm)}.row-highlight td{background:var(--accent-soft);transition:background .4s}.auth-card{max-width:440px;margin:60px auto}.auth-card h2{margin-top:0;color:var(--text-h)}.field-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:480px){.field-row-2{grid-template-columns:1fr}.auth-card{margin:32px auto}}.fade-enter-active,.fade-leave-active{transition:opacity .25s}.fade-enter-from,.fade-leave-to{opacity:0}@media(max-width:640px){.topbar-inner{flex-wrap:wrap;height:auto;padding:8px 16px;row-gap:4px}.nav-links{flex-wrap:wrap;row-gap:2px}}@media(max-width:980px){.bento{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.bento{grid-template-columns:1fr;grid-auto-rows:auto}.bento-xl,.bento-w,.bento-t{grid-column:span 1;grid-row:span 1}.bento-card{min-height:150px}.bento-xl{min-height:220px}.bento-s .bento-desc{display:-webkit-box}}
