.app-shell[data-v-21e7107d]{position:relative;min-height:100dvh;display:flex;isolation:isolate}.aurora[data-v-21e7107d]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;background:var(--bg)}.blob[data-v-21e7107d]{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55;will-change:transform}.b1[data-v-21e7107d]{width:520px;height:520px;top:-160px;right:-120px;background:radial-gradient(circle,var(--brand-3),transparent 70%);animation:drift1-21e7107d 22s ease-in-out infinite}.b2[data-v-21e7107d]{width:480px;height:480px;top:10%;left:-160px;background:radial-gradient(circle,var(--brand-1),transparent 70%);animation:drift2-21e7107d 26s ease-in-out infinite}.b3[data-v-21e7107d]{width:420px;height:420px;bottom:-160px;left:40%;background:radial-gradient(circle,var(--brand-2),transparent 70%);animation:drift3-21e7107d 30s ease-in-out infinite}@keyframes drift1-21e7107d{0%,to{transform:translate(0)}50%{transform:translate(-60px,80px)}}@keyframes drift2-21e7107d{0%,to{transform:translate(0)}50%{transform:translate(80px,40px)}}@keyframes drift3-21e7107d{0%,to{transform:translate(0)}50%{transform:translate(-50px,-60px)}}.sidebar[data-v-21e7107d]{position:sticky;top:0;align-self:flex-start;height:100dvh;width:278px;flex-shrink:0;display:flex;flex-direction:column;padding:1.5rem 1rem;border-right:1px solid var(--border);border-radius:0;z-index:50}.brand[data-v-21e7107d]{display:flex;align-items:center;gap:.75rem;text-decoration:none;padding:.35rem .5rem 1.25rem}.brand-mark[data-v-21e7107d]{width:46px;height:46px;display:grid;place-items:center;font-size:1.45rem;color:#fff;border-radius:var(--r-md);background:var(--grad-brand);box-shadow:var(--sh-brand)}.brand-text[data-v-21e7107d]{display:flex;flex-direction:column;line-height:1.1}.brand-name[data-v-21e7107d]{font-weight:800;font-size:1.3rem;color:var(--text);letter-spacing:-.02em}.brand-sub[data-v-21e7107d]{font-size:.72rem;font-weight:600;color:var(--text-mut);letter-spacing:.02em}.nav[data-v-21e7107d]{display:flex;flex-direction:column;gap:.3rem;margin-top:.5rem}.nav-label[data-v-21e7107d]{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--text-mut);margin:.5rem .75rem}.nav-item[data-v-21e7107d]{position:relative;display:flex;align-items:center;gap:.8rem;padding:.65rem .7rem;border-radius:var(--r-md);text-decoration:none;color:var(--text-soft);transition:all .22s ease}.nav-item[data-v-21e7107d]:hover{background:var(--grad-brand-soft);color:var(--brand-1)}.nav-icon[data-v-21e7107d]{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;font-size:1.15rem;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);transition:all .22s ease}.nav-texts[data-v-21e7107d]{display:flex;flex-direction:column;line-height:1.15}.nav-title[data-v-21e7107d]{font-weight:700;font-size:.92rem}.nav-desc[data-v-21e7107d]{font-size:.72rem;color:var(--text-mut)}.nav-dot[data-v-21e7107d]{margin-left:auto;width:7px;height:7px;border-radius:50%;background:transparent;transition:all .22s ease}.nav-item.active[data-v-21e7107d]{background:var(--grad-brand);color:#fff;box-shadow:var(--sh-brand)}.nav-item.active .nav-icon[data-v-21e7107d]{background:#ffffff38;border-color:transparent}.nav-item.active .nav-desc[data-v-21e7107d]{color:#fffc}.nav-item.active .nav-dot[data-v-21e7107d]{background:#fff;box-shadow:0 0 0 4px #ffffff40}.sidebar-foot[data-v-21e7107d]{margin-top:auto;padding-top:1rem}.foot-card[data-v-21e7107d]{display:flex;align-items:center;gap:.7rem;padding:.85rem;border-radius:var(--r-md);background:var(--grad-brand-soft);border:1px solid var(--border)}.foot-emoji[data-v-21e7107d]{font-size:1.3rem}.foot-card strong[data-v-21e7107d]{display:block;font-size:.82rem;color:var(--text)}.foot-card small[data-v-21e7107d]{font-size:.72rem;color:var(--text-mut)}.auth-btn[data-v-21e7107d]{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem;border-radius:var(--r-md);font:inherit;font-weight:700;font-size:.88rem;cursor:pointer;text-decoration:none;transition:all .2s ease}.auth-btn.login[data-v-21e7107d]{color:#fff;background:var(--grad-brand);border:1px solid transparent;box-shadow:var(--sh-brand)}.auth-btn.login[data-v-21e7107d]:hover{transform:translateY(-2px)}.auth-btn.logout[data-v-21e7107d]{color:var(--text-soft);background:var(--surface-2);border:1px solid var(--border)}.auth-btn.logout[data-v-21e7107d]:hover{color:var(--danger);border-color:var(--danger)}.overlay[data-v-21e7107d]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40}.main-area[data-v-21e7107d]{flex:1;min-width:0;display:flex;flex-direction:column}.topbar[data-v-21e7107d]{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:1rem;padding:.85rem 1.5rem;border-bottom:1px solid var(--border);border-radius:0}.topbar-title[data-v-21e7107d]{display:flex;align-items:center;gap:.5rem;font-size:.95rem;color:var(--text)}.crumb[data-v-21e7107d]{color:var(--text-mut);font-weight:600}.sep[data-v-21e7107d]{color:var(--border-strong)}.topbar-title strong[data-v-21e7107d]{font-weight:700}.theme-toggle[data-v-21e7107d]{margin-left:auto;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);cursor:pointer;font-size:1.1rem;transition:all .2s ease}.theme-toggle[data-v-21e7107d]:hover{transform:translateY(-2px);box-shadow:var(--sh-md);border-color:var(--brand-1)}.burger[data-v-21e7107d]{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);cursor:pointer;padding:0 10px}.burger span[data-v-21e7107d]{height:2px;width:100%;background:var(--text-soft);border-radius:2px;transition:all .2s}.content[data-v-21e7107d]{flex:1;padding:2.25rem 1.75rem 3.5rem}.content-inner[data-v-21e7107d]{max-width:1080px;margin:0 auto}@media (max-width: 1024px){.sidebar[data-v-21e7107d]{position:fixed;left:0;top:0;transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--sh-lg)}.sidebar.open[data-v-21e7107d]{transform:translate(0)}.burger[data-v-21e7107d]{display:flex}}@media (max-width: 560px){.content[data-v-21e7107d]{padding:1.25rem 1rem 2.5rem}.topbar[data-v-21e7107d]{padding:.7rem 1rem}}.error-boundary[data-v-06c11751]{display:flex;align-items:center;justify-content:center;min-height:50vh;padding:2rem}.error-content[data-v-06c11751]{text-align:center;max-width:400px}.error-icon[data-v-06c11751]{font-size:3rem;display:block;margin-bottom:1rem}.error-content h2[data-v-06c11751]{color:#1e293b;margin:0 0 .5rem}.error-message[data-v-06c11751]{color:#64748b;margin:0 0 .75rem}.error-code[data-v-06c11751]{display:inline-block;font-size:.75rem;background:#f1f5f9;padding:.25rem .75rem;border-radius:4px;color:#94a3b8;margin-bottom:1.5rem}.btn-retry[data-v-06c11751]{padding:.75rem 2rem;background:#6366f1;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-retry[data-v-06c11751]:hover{background:#4f46e5}:root{--brand-1: #6366f1;--brand-2: #8b5cf6;--brand-3: #d946ef;--grad-brand: linear-gradient(135deg, var(--brand-1), var(--brand-2) 55%, var(--brand-3));--grad-brand-soft: linear-gradient(135deg, rgba(99, 102, 241, .12), rgba(217, 70, 239, .1));--ok: #10b981;--warn: #f59e0b;--info: #0ea5e9;--danger: #ef4444;--bg: #f4f5fb;--surface: #ffffff;--surface-2: #fbfbfe;--surface-glass: rgba(255, 255, 255, .72);--border: #e6e8f0;--border-strong: #d6d9e6;--text: #0f172a;--text-soft: #475569;--text-mut: #94a3b8;--sh-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .05);--sh-md: 0 8px 24px rgba(15, 23, 42, .08);--sh-lg: 0 24px 60px rgba(15, 23, 42, .12);--sh-brand: 0 14px 32px rgba(99, 102, 241, .32);--r-sm: 10px;--r-md: 14px;--r-lg: 20px;--r-xl: 28px;--r-full: 999px;--sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Consolas, monospace;color-scheme:light dark;font-family:var(--sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{--bg: #0b0d17;--surface: #141622;--surface-2: #1a1d2b;--surface-glass: rgba(23, 26, 41, .66);--border: #262a3d;--border-strong: #333850;--text: #f1f5f9;--text-soft: #b8c0d4;--text-mut: #7c85a0;--sh-sm: 0 1px 2px rgba(0, 0, 0, .4);--sh-md: 0 10px 28px rgba(0, 0, 0, .45);--sh-lg: 0 28px 64px rgba(0, 0, 0, .55);--grad-brand-soft: linear-gradient(135deg, rgba(99, 102, 241, .2), rgba(217, 70, 239, .16))}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0b0d17;--surface: #141622;--surface-2: #1a1d2b;--surface-glass: rgba(23, 26, 41, .66);--border: #262a3d;--border-strong: #333850;--text: #f1f5f9;--text-soft: #b8c0d4;--text-mut: #7c85a0;--sh-sm: 0 1px 2px rgba(0, 0, 0, .4);--sh-md: 0 10px 28px rgba(0, 0, 0, .45);--sh-lg: 0 28px 64px rgba(0, 0, 0, .55);--grad-brand-soft: linear-gradient(135deg, rgba(99, 102, 241, .2), rgba(217, 70, 239, .16))}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100dvh;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.55;letter-spacing:.1px}#app{min-height:100dvh}h1,h2,h3,h4{color:var(--text);font-weight:700;line-height:1.15;margin:0;letter-spacing:-.02em}p{margin:0}a{color:var(--brand-1);text-decoration:none}.gradient-text{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.eyebrow{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}.glass{background:var(--surface-glass);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border:1px solid var(--border)}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .7rem;font-size:.74rem;font-weight:700;border-radius:var(--r-full);background:var(--grad-brand-soft);color:var(--brand-2);border:1px solid var(--border)}.badge.ok{color:var(--ok);background:#10b9811f}.badge.warn{color:var(--warn);background:#f59e0b24}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.72rem 1.3rem;font:inherit;font-weight:700;font-size:.92rem;border:1px solid transparent;border-radius:var(--r-md);cursor:pointer;transition:transform .18s ease,box-shadow .22s ease,background .22s ease,border-color .22s ease;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:active{transform:translateY(1px) scale(.99)}.btn-primary{color:#fff;background:var(--grad-brand);box-shadow:var(--sh-brand)}.btn-primary:hover{box-shadow:0 18px 40px #6366f16b;transform:translateY(-2px)}.btn-ghost{color:var(--text-soft);background:var(--surface);border-color:var(--border);box-shadow:var(--sh-sm)}.btn-ghost:hover{border-color:var(--brand-1);color:var(--brand-1);transform:translateY(-2px)}.btn:focus-visible{outline:2px solid var(--brand-2);outline-offset:2px}.field{width:100%;padding:.75rem .95rem;font:inherit;font-size:.95rem;color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r-md);transition:border-color .2s,box-shadow .2s}.field::placeholder{color:var(--text-mut)}.field:focus{outline:none;border-color:var(--brand-1);box-shadow:0 0 0 4px #6366f129}.label{display:block;font-size:.82rem;font-weight:700;color:var(--text-soft);margin-bottom:.4rem}.view-head{margin-bottom:1.75rem}.view-head h1,.view-head h2{font-size:clamp(1.5rem,3vw,2rem)}.view-head .sub{color:var(--text-mut);margin-top:.35rem;font-size:.98rem}.fade-enter-active,.fade-leave-active{transition:opacity .25s ease,transform .25s ease}.fade-enter-from{opacity:0;transform:translateY(8px)}.fade-leave-to{opacity:0;transform:translateY(-6px)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}
