.forest-skyline[data-v-9f9b049a]{width:100%;display:block;pointer-events:none;flex-shrink:0}.hill-a[data-v-9f9b049a]{fill:#10b981;opacity:.12}.hill-b[data-v-9f9b049a]{fill:#059669;opacity:.1}.trees[data-v-9f9b049a]{fill:#10b981}.tone-sky .trees[data-v-9f9b049a]{opacity:.16}.tone-mid .trees[data-v-9f9b049a]{opacity:.24}.global-sidebar[data-v-2111b7f3]{width:var(--sidebar-w);flex-shrink:0;height:100%;display:flex;flex-direction:column;background:var(--glass-sidebar);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);border-right:1px solid rgba(16,185,129,.12);padding:18px 14px 16px;z-index:50}.gs-logo[data-v-2111b7f3]{display:flex;align-items:center;gap:11px;padding:0 8px 16px;border-bottom:1px solid var(--border-light)}.gs-logo-badge[data-v-2111b7f3]{width:42px;height:42px;flex-shrink:0;border-radius:var(--radius);display:grid;place-items:center;background:var(--bg-white);border:1px solid var(--green-border);box-shadow:0 2px 10px var(--green-shadow);animation:badge-glow 3.5s var(--ease-standard) infinite}.gs-forest[data-v-2111b7f3]{margin:0 -14px -16px;opacity:.9}.gs-brand[data-v-2111b7f3]{display:flex;flex-direction:column;gap:2px;min-width:0}.gs-brand strong[data-v-2111b7f3]{font-size:16px;font-weight:700;letter-spacing:1px;color:var(--text-primary);white-space:nowrap}.gs-brand span[data-v-2111b7f3]{font-size:11px;color:var(--text-tertiary);white-space:nowrap}.gs-nav[data-v-2111b7f3]{flex:1;display:flex;flex-direction:column;gap:6px;padding-top:16px;overflow-y:auto}.gs-nav-item[data-v-2111b7f3]{position:relative;display:flex;align-items:center;gap:11px;min-height:46px;padding:0 14px;border-radius:8px;font-size:14px;color:var(--text-secondary);transition:all .18s ease;width:100%;text-align:left}.gs-nav-item[data-v-2111b7f3]:hover{background:var(--green-hover);color:var(--color-primary)}.gs-nav-item.active[data-v-2111b7f3]{background:linear-gradient(90deg,#10b98129,#10b9810d);color:var(--color-primary);font-weight:600;box-shadow:inset 0 1px #ffffff8c,0 2px 10px #10b9811a}.gs-nav-item.active[data-v-2111b7f3]:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;border-radius:0 3px 3px 0;background:var(--color-gold);box-shadow:0 0 8px var(--gold-glow-strong)}.gs-nav-icon[data-v-2111b7f3]{width:20px;height:20px;flex-shrink:0}.gs-role-tag[data-v-2111b7f3]{margin-left:auto;font-size:10px;padding:2px 6px;border-radius:999px;background:var(--bg-gold-soft);color:var(--color-gold)}.gs-foot[data-v-2111b7f3]{border-top:1px solid var(--border-light);padding-top:12px;display:flex;flex-direction:column;gap:6px}.role-switch[data-v-2111b7f3]{color:var(--color-gold)}.role-switch[data-v-2111b7f3]:hover{background:var(--bg-gold-soft);color:var(--color-gold)}.toast-host[data-v-56429490]{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:var(--z-index-toast);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast[data-v-56429490]{min-height:44px;display:flex;align-items:center;padding:10px 20px;border-radius:999px;font-size:13.5px;font-weight:500;color:var(--text-primary);background:var(--glass-card-strong);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-light);box-shadow:var(--shadow-elevated);white-space:nowrap}.toast.success[data-v-56429490]{border-color:var(--green-border);color:var(--color-primary-deep)}.toast.gold[data-v-56429490]{border-color:var(--gold-emboss);color:var(--color-gold);background:linear-gradient(135deg,rgba(255,251,235,.92),var(--glass-card-strong))}.toast.info[data-v-56429490]{color:var(--color-secondary)}.toast-slide-enter-active[data-v-56429490]{transition:all var(--duration-normal) var(--ease-decelerate)}.toast-slide-leave-active[data-v-56429490]{transition:all var(--duration-normal) var(--ease-accelerate)}.toast-slide-enter-from[data-v-56429490]{opacity:0;transform:translateY(-20px) scale(.96)}.toast-slide-leave-to[data-v-56429490]{opacity:0;transform:translateY(-16px) scale(.97)}.star-corner[data-v-ea349494]{position:absolute;display:inline-block;pointer-events:none;filter:drop-shadow(0 0 6px rgba(212,175,55,.45));animation:star-twinkle-ea349494 2.8s var(--ease-standard) infinite}.star-corner.top-right[data-v-ea349494]{top:10px;right:14px}.star-corner.top-left[data-v-ea349494]{top:10px;left:14px}.star-corner.bottom-right[data-v-ea349494]{bottom:10px;right:14px}@keyframes star-twinkle-ea349494{0%,to{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}.modal-body[data-v-5c45fff7]{color:var(--text-secondary);font-size:14px}.modal-gold-line[data-v-5c45fff7]{position:absolute;top:0;left:20px;right:20px;height:1px;background:var(--deco-gold-line)}.modal-wrap-enter-active[data-v-5c45fff7]{transition:opacity var(--duration-normal) var(--ease-decelerate)}.modal-wrap-leave-active[data-v-5c45fff7]{transition:opacity var(--duration-normal) var(--ease-accelerate)}.modal-wrap-enter-from[data-v-5c45fff7],.modal-wrap-leave-to[data-v-5c45fff7]{opacity:0}.modal-wrap-enter-active .modal[data-v-5c45fff7]{animation:modal-panel-in-5c45fff7 var(--duration-normal) var(--ease-standard)}.modal-wrap-leave-active .modal[data-v-5c45fff7]{animation:modal-panel-out-5c45fff7 var(--duration-normal) var(--ease-accelerate)}@keyframes modal-panel-in-5c45fff7{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modal-panel-out-5c45fff7{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(16px) scale(.97)}}.quick-ai-menu[data-v-a25a9465]{position:fixed;z-index:260;display:flex;flex-direction:column;gap:2px;padding:6px;background:var(--glass-card-strong);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-light);border-radius:var(--radius);box-shadow:var(--shadow-elevated);animation:pop-in .18s ease-out}.qa-item[data-v-a25a9465]{display:flex;align-items:center;gap:9px;min-height:44px;padding:0 16px;border-radius:8px;font-size:13.5px;color:var(--text-secondary);text-align:left;transition:all .15s}.qa-item[data-v-a25a9465]:hover{background:var(--bg-green-soft);color:var(--color-primary)}.qa-icon[data-v-a25a9465]{font-size:15px}.qa-result[data-v-a25a9465]{color:var(--text-primary);font-size:14px;line-height:1.8;max-height:60vh;overflow-y:auto}.onboarding[data-v-f350290b]{z-index:200;background:#f0f7ffd1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.onb-card[data-v-f350290b]{width:min(560px,94vw);background:var(--glass-card-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border-light);border-radius:18px;box-shadow:var(--shadow-elevated);padding:30px 30px 24px;animation:pop-in .25s ease-out}.onb-progress[data-v-f350290b]{display:flex;justify-content:center;gap:10px;margin-bottom:22px}.onb-dot[data-v-f350290b]{width:34px;height:6px;border-radius:999px;background:var(--border-light);transition:all .25s}.onb-dot.active[data-v-f350290b]{background:linear-gradient(90deg,var(--color-primary),var(--color-secondary));box-shadow:0 0 10px var(--green-glow-icon)}.onb-dot.done[data-v-f350290b]{background:var(--color-primary);opacity:.6}.onb-step[data-v-f350290b]{text-align:center}.agreement-box[data-v-f350290b]{text-align:left;background:var(--bg-white);border:1px solid var(--border-light);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px;max-height:220px;overflow-y:auto}.agree-item[data-v-f350290b]{font-size:12.5px;color:var(--text-secondary);line-height:1.7;margin-bottom:6px}.agree-item strong[data-v-f350290b]{color:var(--text-primary)}.agree-more[data-v-f350290b]{min-height:36px;font-size:12.5px;margin-top:4px}.agreement-full[data-v-f350290b]{border-top:1px dashed var(--border-light);margin-top:10px;padding-top:10px}.agree-full-block h4[data-v-f350290b]{font-size:13px;font-weight:600;color:var(--color-primary);margin:8px 0 4px}.agree-full-block .doc-text[data-v-f350290b]{font-size:12px;color:var(--text-secondary);line-height:1.7;white-space:pre-line}.agree-check[data-v-f350290b]{display:flex;align-items:flex-start;gap:8px;text-align:left;font-size:12.5px;color:var(--text-secondary);line-height:1.6;cursor:pointer;padding:4px 2px}.agree-check input[data-v-f350290b]{accent-color:var(--color-primary);margin-top:2px;width:16px;height:16px;flex-shrink:0}.onb-icon[data-v-f350290b]{font-size:44px;margin-bottom:10px;filter:drop-shadow(0 0 16px var(--green-glow-icon))}.onb-step h2[data-v-f350290b]{font-size:19px;font-weight:700;color:var(--text-primary)}.onb-desc[data-v-f350290b]{margin-top:8px;font-size:13.5px;color:var(--text-secondary);line-height:1.7;margin-bottom:20px}.onb-error[data-v-f350290b]{color:var(--danger);font-size:13px;margin-top:4px;text-align:left}.subject-box[data-v-f350290b]{display:flex;flex-wrap:wrap;gap:8px;text-align:left}.subject-item[data-v-f350290b]{display:inline-flex;align-items:center;gap:5px;min-height:40px;padding:0 14px;border-radius:var(--radius-input);border:1px solid var(--border-light);background:var(--bg-white);font-size:13px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.subject-item input[data-v-f350290b]{display:none}.subject-item.picked[data-v-f350290b]{background:var(--bg-green-soft);border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.feat-grid[data-v-f350290b]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.feat-card[data-v-f350290b]{padding:16px 12px;border-radius:var(--radius);border:1px solid var(--border-light);background:var(--glass-card);text-align:center}.feat-icon[data-v-f350290b]{font-size:26px}.feat-card h3[data-v-f350290b]{margin-top:8px;font-size:13.5px;font-weight:600;color:var(--text-primary)}.feat-card p[data-v-f350290b]{margin-top:5px;font-size:12px;color:var(--text-secondary);line-height:1.6}.demo-row[data-v-f350290b]{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.onb-foot[data-v-f350290b]{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.onb-foot .btn[data-v-f350290b]{min-width:120px}.stardust[data-v-beeae616]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.7}.app-shell[data-v-c41ebca6]{position:relative;z-index:1}.growth-tips[data-v-c41ebca6]{position:fixed;top:70px;right:24px;z-index:var(--z-index-toast);display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}.growth-tip[data-v-c41ebca6]{padding:8px 16px;border-radius:999px;border:1px solid var(--gold-emboss);background:linear-gradient(135deg,rgba(255,251,235,.95),var(--glass-card-strong));-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-elevated);font-size:13px;font-weight:700;color:var(--color-gold)}.growth-tip[data-v-c41ebca6]:before{content:"🌳 ";animation:tree-wiggle-c41ebca6 .6s var(--ease-elastic);display:inline-block}@keyframes tree-wiggle-c41ebca6{0%{transform:rotate(0)}30%{transform:rotate(-10deg) scale(1.15)}60%{transform:rotate(8deg)}to{transform:rotate(0) scale(1)}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{--bg-page: #f0f7ff;--bg-card: #f8fdfa;--bg-sidebar: #f5f9ff;--bg-white: #ffffff;--bg-green-soft: rgba(16, 185, 129, .1);--bg-gold-soft: rgba(212, 175, 55, .15);--bg-blue-soft: rgba(59, 130, 246, .1);--bg-gray-soft: #f1f5f9;--color-primary: #10b981;--color-primary-deep: #059669;--color-secondary: #3b82f6;--color-gold: #d4af37;--color-gold-light: #f59e0b;--text-primary: #1e293b;--text-secondary: #64748b;--text-tertiary: #94a3b8;--text-on-primary: #ffffff;--border-light: #e2e8f0;--border-gold: rgba(212, 175, 55, .6);--border-gold-fine: rgba(212, 175, 55, .15);--bg-gradient: linear-gradient(160deg, #edf6ff 0%, #f1faf7 42%, #eaf6fc 100%);--texture-noise: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='180'%20height='180'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.8'%20numOctaves='2'%20stitchTiles='stitch'/%3E%3C/filter%3E%3Crect%20width='180'%20height='180'%20filter='url(%23n)'%20opacity='0.05'/%3E%3C/svg%3E");--glass-card: rgba(248, 253, 250, .72);--glass-card-strong: rgba(255, 255, 255, .88);--glass-sidebar: rgba(246, 250, 255, .82);--glass-input: rgba(255, 255, 255, .78);--glass-blur: blur(16px) saturate(150%);--gold-emboss: rgba(212, 175, 55, .55);--gold-emboss-soft: rgba(212, 175, 55, .32);--gold-text-gradient: linear-gradient(135deg, #f59e0b 0%, #d4af37 100%);--btn-primary-gradient: linear-gradient(135deg, #10b981 0%, #059669 100%);--shadow-soft: 0 2px 10px rgba(16, 185, 129, .07), 0 1px 3px rgba(30, 41, 59, .05);--shadow-elevated: 0 12px 32px rgba(16, 185, 129, .15), 0 4px 12px rgba(30, 41, 59, .08);--shadow-card: var(--shadow-soft);--shadow-hover: var(--shadow-elevated);--shadow-gold: 0 4px 14px rgba(212, 175, 55, .25);--code-bg: #0f172a;--code-text: #d7e5df;--code-inline: #047857;--green-hover: rgba(16, 185, 129, .06);--green-bubble: rgba(16, 185, 129, .08);--green-ring: rgba(16, 185, 129, .12);--green-strong: rgba(16, 185, 129, .14);--green-shadow: rgba(16, 185, 129, .16);--green-line: rgba(16, 185, 129, .22);--green-line-strong: rgba(16, 185, 129, .28);--green-border: rgba(16, 185, 129, .3);--green-border-strong: rgba(16, 185, 129, .4);--green-dash: rgba(16, 185, 129, .45);--green-hover-border: rgba(16, 185, 129, .35);--green-glow-icon: rgba(16, 185, 129, .25);--green-area-hi: rgba(16, 185, 129, .28);--green-area-lo: rgba(16, 185, 129, .02);--gold-dim: rgba(212, 175, 55, .25);--gold-glow: rgba(212, 175, 55, .3);--gold-glow-strong: rgba(212, 175, 55, .4);--gold-shadow-hover: rgba(212, 175, 55, .34);--gold-topline: rgba(212, 175, 55, .45);--gold-border: rgba(212, 175, 55, .5);--gold-border-strong: rgba(212, 175, 55, .55);--gold-text-shadow: rgba(120, 80, 0, .25);--white-inset: rgba(255, 255, 255, .25);--white-inset-strong: rgba(255, 255, 255, .3);--white-inset-soft: rgba(255, 255, 255, .2);--danger-line: rgba(239, 68, 68, .35);--danger-line-strong: rgba(239, 68, 68, .4);--danger-border: rgba(239, 68, 68, .5);--overlay-mask: rgba(30, 41, 59, .38);--modal-shadow: rgba(30, 41, 59, .16);--code-border: rgba(148, 163, 184, .2);--scrollbar-thumb: rgba(100, 116, 139, .25);--scrollbar-thumb-hover: rgba(100, 116, 139, .45);--spinner-border: rgba(100, 116, 139, .18);--card-border: rgba(226, 232, 240, .75);--chart-grid: rgba(226, 232, 240, .9);--blue-line: rgba(59, 130, 246, .4);--page-glow-blue: rgba(59, 130, 246, .06);--page-glow-green: rgba(16, 185, 129, .05);--radius: 12px;--radius-sm: 8px;--radius-input: 10px;--font: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, -apple-system, sans-serif;--mono: "Cascadia Code", "JetBrains Mono", Consolas, "Courier New", monospace;--sidebar-w: 220px;--danger: #ef4444;--danger-soft: rgba(239, 68, 68, .1);--ease-standard: cubic-bezier(.22, 1, .36, 1);--ease-accelerate: cubic-bezier(.4, 0, 1, 1);--ease-decelerate: cubic-bezier(0, 0, .2, 1);--ease-elastic: cubic-bezier(.34, 1.56, .64, 1);--duration-micro: .1s;--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .3s;--duration-stagger: 50ms;--z-index-dropdown: 1000;--z-index-sticky: 1020;--z-index-drawer: 1040;--z-index-modal: 1060;--z-index-toast: 1080;--deco-gold-line: linear-gradient(90deg, transparent, rgba(212, 175, 55, .55) 30%, rgba(16, 185, 129, .4) 70%, transparent);--deco-forest-sky: rgba(16, 185, 129, .07);--deco-forest-mid: rgba(16, 185, 129, .11);--deco-star-primary: rgba(16, 185, 129, .5);--deco-star-gold: rgba(212, 175, 55, .55);--deco-star-blue: rgba(59, 130, 246, .45);--deco-glow-green: radial-gradient(600px 260px at 50% 0%, rgba(16, 185, 129, .07), transparent 70%)}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:var(--font);font-size:14px;color:var(--text-primary);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Ccircle cx='28' cy='44' r='1.3' fill='%2310b981' opacity='0.4'/%3E%3Ccircle cx='86' cy='26' r='1' fill='%23d4af37' opacity='0.45'/%3E%3Ccircle cx='150' cy='58' r='1.2' fill='%233b82f6' opacity='0.35'/%3E%3Ccircle cx='210' cy='30' r='1.4' fill='%2310b981' opacity='0.4'/%3E%3Ccircle cx='238' cy='96' r='1' fill='%23d4af37' opacity='0.5'/%3E%3Ccircle cx='52' cy='120' r='1.1' fill='%2310b981' opacity='0.35'/%3E%3Ccircle cx='120' cy='104' r='1.2' fill='%23d4af37' opacity='0.4'/%3E%3Ccircle cx='196' cy='140' r='1' fill='%233b82f6' opacity='0.3'/%3E%3Ccircle cx='30' cy='188' r='1.3' fill='%2310b981' opacity='0.35'/%3E%3Ccircle cx='92' cy='210' r='1' fill='%23d4af37' opacity='0.4'/%3E%3Ccircle cx='164' cy='198' r='1.2' fill='%2310b981' opacity='0.35'/%3E%3Ccircle cx='226' cy='212' r='1.1' fill='%233b82f6' opacity='0.35'/%3E%3C/svg%3E") 0 0 / 260px 260px repeat,var(--texture-noise) 0 0 / 180px 180px repeat,radial-gradient(900px 520px at 88% -8%,rgba(59,130,246,.1),transparent 62%),radial-gradient(780px 460px at -6% 108%,rgba(16,185,129,.1),transparent 62%),radial-gradient(560px 320px at 52% 118%,rgba(212,175,55,.05),transparent 65%),var(--bg-gradient);overflow:hidden;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.pen-hover-ready:has(*:hover){outline:2px solid rgba(16,185,129,.25);outline-offset:2px;border-radius:var(--radius-input)}input,select,textarea{font-family:inherit;color:var(--text-primary)}a{color:inherit;text-decoration:none}::selection{background:#10b98133}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-track{background:transparent}.app-shell{display:flex;height:100%}.app-main{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;overflow:hidden}.page{flex:1;min-height:0;overflow-y:auto;padding:26px 32px 44px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}.page-title{position:relative;font-size:22px;font-weight:600;color:var(--text-primary);letter-spacing:.5px;display:flex;align-items:center;gap:10px}.page-title:before{content:"";width:24px;height:24px;flex-shrink:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M32 54C32 34 24 24 12 18c8 2 14 8 18 16 0-8-3-16-11-22 10 2 17 10 21 24h4c4-14 11-22 21-24-8 6-11 14-11 22 4-8 10-14 18-16-12 6-20 16-20 36z' fill='%2310b981' opacity='0.85'/%3E%3Ccircle cx='32' cy='52' r='3' fill='%23d4af37'/%3E%3C/svg%3E") no-repeat center / contain;filter:drop-shadow(0 0 8px var(--green-glow-icon))}.page-title:after{content:"";position:absolute;left:0;bottom:-7px;width:92px;height:2px;border-radius:2px;background:var(--deco-gold-line)}.page-sub{margin-top:6px;font-size:13px;color:var(--text-secondary)}.card{position:relative;background:var(--glass-card);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid rgba(16,185,129,.16);border-radius:var(--radius);box-shadow:inset 0 1px #fff9,0 1px 3px #1e293b0a,var(--shadow-soft);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;animation:card-in .35s ease both}.card:before{content:"";position:absolute;top:0;left:16px;right:16px;height:1px;border-radius:1px;background:var(--border-gold-fine);pointer-events:none}.card-hover:hover{transform:translateY(-3px);border-color:#10b98152;box-shadow:inset 0 1px #ffffffa6,0 2px 6px #1e293b0d,var(--shadow-elevated)}.card-title{font-size:16px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px}.card-title:before{content:"";width:4px;height:16px;border-radius:3px;background:linear-gradient(180deg,var(--color-primary),var(--color-secondary))}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 20px;border-radius:var(--radius);font-size:14px;font-weight:500;letter-spacing:.3px;transition:transform var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),filter var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),opacity var(--duration-normal) var(--ease-standard);-webkit-user-select:none;user-select:none;white-space:nowrap;position:relative;will-change:transform}.btn:not(:disabled):hover{transform:translateY(-1px);filter:brightness(1.05)}.btn:active:not(:disabled){transform:scale(.97);filter:brightness(.98);transition-duration:var(--duration-micro)}.btn:disabled{opacity:.5;cursor:not-allowed;filter:none;transition-duration:var(--duration-normal)}.btn.loading{pointer-events:none}.btn.loading .btn-label{opacity:0}.btn.loading .btn-loader{display:inline-block;width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:currentColor;position:relative;animation:btn-spin .8s linear infinite}.btn.loading .btn-loader:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:1.5px solid rgba(255,255,255,.18);border-bottom-color:currentColor;animation:btn-spin 1.2s linear infinite reverse}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn-primary,.btn-brand{background:var(--btn-primary-gradient);border:1px solid var(--gold-emboss);color:var(--text-on-primary);text-shadow:0 1px 2px rgba(0,80,50,.28);box-shadow:inset 0 1px #ffffff4d,inset 0 -1px 3px #003c2824,0 4px 14px #10b9813d}.btn-primary:hover:not(:disabled),.btn-brand:hover:not(:disabled){filter:brightness(1.05);border-color:#d4af37c7;box-shadow:inset 0 1px #ffffff52,inset 0 -1px 3px #003c2824,0 8px 22px #10b98152}.btn-secondary,.btn-ghost{background:var(--glass-card-strong);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border-light);color:var(--color-primary);box-shadow:inset 0 1px #ffffffb3,var(--shadow-soft)}.btn-secondary:hover:not(:disabled),.btn-ghost:hover:not(:disabled){border-color:var(--color-primary);background:var(--bg-green-soft);color:var(--color-primary-deep);box-shadow:inset 0 1px #ffffffb3,var(--shadow-elevated)}.btn-gold{background:linear-gradient(135deg,var(--color-gold-light),var(--color-gold));border:1px solid rgba(212,175,55,.7);color:var(--text-on-primary);text-shadow:0 1px 3px rgba(120,80,0,.3);box-shadow:inset 0 1px #ffffff59,inset 0 -1px 3px #78500026,0 4px 14px #d4af373d}.btn-gold:hover:not(:disabled){filter:brightness(1.06);box-shadow:inset 0 1px #ffffff61,inset 0 -1px 3px #78500026,0 8px 22px #d4af3752}.btn-danger{background:var(--glass-card-strong);border:1px solid var(--danger-line);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.icon-btn{width:44px;height:44px;min-height:44px;border-radius:var(--radius-sm);display:grid;place-items:center;font-size:15px;color:var(--text-secondary);transition:all .15s}.icon-btn:hover{background:var(--bg-green-soft);color:var(--color-primary)}.gold-text{background:var(--gold-text-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.input,.select,.textarea{width:100%;min-height:40px;padding:0 12px;border-radius:var(--radius-input);border:1px solid var(--border-light);background:var(--glass-input);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:14px;color:var(--text-primary);outline:none;box-shadow:inset 0 1px 2px #1e293b08;transition:border-color .18s,box-shadow .18s}.input::placeholder,.textarea::placeholder{color:var(--text-tertiary)}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--green-ring),inset 0 1px 2px #1e293b08}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:36px;cursor:pointer}.select option{background:var(--bg-white);color:var(--text-primary)}.textarea{padding:10px 12px;line-height:1.65;min-height:88px;resize:vertical}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:7px}.field .required{color:var(--danger);margin-left:2px}.field-hint{font-size:12px;color:var(--text-tertiary);line-height:1.65;margin-top:-8px;margin-bottom:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-grid .span-2{grid-column:1 / -1}.chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;font-size:12px;white-space:nowrap;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.chip.brand{background:var(--bg-green-soft);color:var(--color-primary)}.chip.blue{background:var(--bg-blue-soft);color:var(--color-secondary)}.chip.gold{background:var(--bg-gold-soft);color:var(--color-gold)}.chip.gray{background:var(--bg-gray-soft);color:var(--text-secondary)}.stars{color:var(--color-gold);letter-spacing:1px;font-size:14px;text-shadow:0 0 10px var(--gold-glow)}.stars .dim{color:var(--gold-dim);text-shadow:none}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 20px;text-align:center}.empty-state .empty-icon{font-size:52px;filter:drop-shadow(0 0 20px var(--green-glow-icon));animation:float 4.5s ease-in-out infinite}.empty-state h3{margin-top:16px;font-size:17px;font-weight:600;color:var(--text-primary)}.empty-state p{margin-top:8px;font-size:13.5px;color:var(--text-secondary);max-width:380px;line-height:1.7}.empty-state .empty-action{margin-top:22px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--overlay-mask);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;animation:fade-in .18s ease-out}.modal{width:min(560px,100%);max-height:88vh;overflow-y:auto;background:var(--glass-card-strong);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-light);border-radius:16px;box-shadow:inset 0 1px #ffffffb3,0 12px 40px var(--modal-shadow);padding:24px 26px;animation:pop-in .22s ease-out}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-head h2{font-size:17px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.markdown{line-height:1.75}.markdown>*+*{margin-top:.65em}.markdown h1,.markdown h2,.markdown h3,.markdown h4{font-weight:600;line-height:1.4;margin-top:1.1em;color:var(--text-primary)}.markdown h1{font-size:1.3em}.markdown h2{font-size:1.16em}.markdown h3{font-size:1.05em}.markdown h1:first-child,.markdown h2:first-child,.markdown h3:first-child{margin-top:0}.markdown ul,.markdown ol{padding-left:1.4em}.markdown li{margin-top:.25em}.markdown code{font-family:var(--mono);font-size:.88em;background:var(--bg-green-soft);padding:.15em .45em;border-radius:5px;color:var(--code-inline)}.markdown pre{background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius-sm);padding:12px 14px;overflow-x:auto;margin:.8em 0}.markdown pre code{background:none;padding:0;color:var(--code-text);font-size:13px;line-height:1.6}.markdown blockquote{border-left:3px solid var(--color-primary);padding:4px 14px;color:var(--text-secondary);background:var(--bg-green-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.markdown table{border-collapse:collapse;width:100%;font-size:13.5px;margin:.8em 0}.markdown th,.markdown td{border:1px solid var(--border-light);padding:7px 11px;text-align:left}.markdown th{background:var(--bg-green-soft);color:var(--color-primary);font-weight:600}.markdown a{color:var(--color-secondary);text-decoration:none;border-bottom:1px dashed var(--blue-line)}.markdown a:hover{border-bottom-style:solid}.markdown hr{border:none;border-top:1px solid var(--border-light);margin:1em 0}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes item-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.stagger-item{opacity:0;animation:item-in var(--duration-normal) var(--ease-standard) both;animation-delay:var(--d, 0ms);will-change:transform,opacity}@keyframes skeleton-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#e2e8f08c 25%,#e2e8f0e6,#e2e8f08c 75%);background-size:800px 100%;animation:skeleton-shimmer 1.5s infinite linear}.skeleton-card{border-radius:var(--radius);background:var(--glass-card);border:1px solid var(--border-light);padding:20px;display:flex;flex-direction:column;gap:14px}.skeleton-line{height:14px;border-radius:7px}.skeleton-line.w60{width:60%}.skeleton-line.w40{width:40%}.skeleton-line.w80{width:80%}.skeleton-fade-enter-active,.skeleton-fade-leave-active{transition:opacity var(--duration-normal) var(--ease-standard)}.skeleton-fade-enter-from,.skeleton-fade-leave-to{opacity:0}.modal-mask-enter-active{transition:opacity var(--duration-normal) var(--ease-decelerate)}.modal-mask-leave-active{transition:opacity var(--duration-normal) var(--ease-accelerate)}.modal-mask-enter-from,.modal-mask-leave-to{opacity:0}.modal-panel-enter-active{transition:transform var(--duration-normal) var(--ease-standard),opacity var(--duration-normal) var(--ease-standard)}.modal-panel-leave-active{transition:transform var(--duration-normal) var(--ease-accelerate),opacity var(--duration-normal) var(--ease-accelerate)}.modal-panel-enter-from{opacity:0;transform:translateY(24px) scale(.96)}.modal-panel-leave-to{opacity:0;transform:translateY(16px) scale(.97)}.tab-slide-enter-active,.tab-slide-leave-active{transition:transform var(--duration-normal) var(--ease-standard),opacity var(--duration-normal) var(--ease-standard)}.tab-slide-enter-from{transform:translate(24px);opacity:0}.tab-slide-leave-to{transform:translate(-24px);opacity:0}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.input-error{border-color:var(--danger)!important;animation:shake .4s var(--ease-standard)}@keyframes star-pop{0%{transform:scale(.4);opacity:.4}60%{transform:scale(1.25)}to{transform:scale(1);opacity:1}}.star-pop{display:inline-block;animation:star-pop var(--duration-fast) var(--ease-elastic) both}html.paused *,html.paused *:before,html.paused *:after{animation-play-state:paused!important}.progress-track .progress-fill,.mini-track .mini-fill,.live-track .live-fill,.stu-kp-track .stu-kp-fill,.target-track .target-fill{transition:width var(--duration-slow) var(--ease-standard)}@keyframes card-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes spin{to{transform:rotate(360deg)}}.page-fade-leave-active{transition:opacity var(--duration-normal) var(--ease-accelerate),transform var(--duration-normal) var(--ease-accelerate)}.page-fade-leave-to{opacity:0;transform:translate(12px)}.page-fade-enter-active{transition:opacity var(--duration-slow) var(--ease-standard),transform var(--duration-slow) var(--ease-standard)}.page-fade-enter-from{opacity:0;transform:translate(-12px)}.spinner{width:16px;height:16px;border:2px solid var(--spinner-border);border-top-color:currentColor;border-radius:50%;animation:spin .7s linear infinite}.deco-gold-line{height:1px;border:none;background:var(--deco-gold-line);margin:0}.deco-forest{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 90' preserveAspectRatio='none'%3E%3Cpath d='M0 88 C60 66 110 78 170 62 C230 46 290 72 420 50 L420 90 L0 90 Z' fill='%2310b981' opacity='0.1'/%3E%3Cpath d='M0 90 C80 74 150 84 230 70 C310 56 360 78 420 64 L420 90 L0 90 Z' fill='%23059369' opacity='0.08'/%3E%3Cg fill='%2310b981' opacity='0.12'%3E%3Cpath d='M34 90 L44 52 L54 90 Z'/%3E%3Cpath d='M66 90 L78 40 L90 90 Z'/%3E%3Cpath d='M120 90 L132 48 L144 90 Z'/%3E%3Cpath d='M170 90 L182 56 L194 90 Z'/%3E%3Cpath d='M236 90 L248 44 L260 90 Z'/%3E%3Cpath d='M286 90 L298 54 L310 90 Z'/%3E%3Cpath d='M340 90 L352 42 L364 90 Z'/%3E%3Cpath d='M384 90 L394 58 L404 90 Z'/%3E%3C/g%3E%3C/svg%3E");background-repeat:repeat-x;background-position:bottom center;background-size:auto 100%}.deco-stardust{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Ccircle cx='22' cy='30' r='1.1' fill='%2310b981' opacity='0.4'/%3E%3Ccircle cx='72' cy='14' r='1' fill='%23d4af37' opacity='0.45'/%3E%3Ccircle cx='128' cy='38' r='1.2' fill='%233b82f6' opacity='0.32'/%3E%3Ccircle cx='158' cy='80' r='1' fill='%2310b981' opacity='0.35'/%3E%3Ccircle cx='44' cy='104' r='1.1' fill='%23d4af37' opacity='0.4'/%3E%3Ccircle cx='112' cy='130' r='1' fill='%2310b981' opacity='0.32'/%3E%3Ccircle cx='164' cy='152' r='1.2' fill='%23d4af37' opacity='0.35'/%3E%3C/svg%3E");background-repeat:repeat;background-size:180px 180px}.deco-top-glow{background:var(--deco-glow-green)}@keyframes twinkle{0%,to{opacity:1}50%{opacity:.35}}.star-twinkle{animation:twinkle 2.6s var(--ease-standard) infinite}@keyframes badge-glow{0%,to{box-shadow:0 0 10px #10b98129}50%{box-shadow:0 0 22px #10b98157}}@media(max-width:1024px){.page{padding:20px 20px 36px}.form-grid{grid-template-columns:1fr}}
