.top-bar[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);height:56px;background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);position:relative;z-index:100}.top-bar-left[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:var(--space-4)}.top-bar-logo[data-astro-cid-3ef6ksr2]{font-weight:var(--weight-bold);font-size:var(--text-xl);text-decoration:none;color:var(--color-primary)}.top-bar-nav-wrap[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:var(--space-6)}.top-bar-nav[data-astro-cid-3ef6ksr2]{display:flex;gap:var(--space-4);list-style:none;margin:0;padding:0}.top-bar-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{text-decoration:none;color:var(--color-fg);font-size:var(--text-sm);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:color .15s}.top-bar-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{color:var(--color-primary)}.top-bar-actions[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:var(--space-3)}.nav-auth[data-astro-cid-3ef6ksr2] .nav-link[data-astro-cid-3ef6ksr2]{text-decoration:none;color:var(--color-fg-muted);font-size:var(--text-sm);padding:var(--space-1) var(--space-2);transition:color .15s}.nav-auth[data-astro-cid-3ef6ksr2] .nav-link[data-astro-cid-3ef6ksr2]:hover{color:var(--color-primary)}.user-menu[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:var(--space-2)}.user-avatar-link[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:var(--space-2);text-decoration:none;color:var(--color-fg)}.user-avatar[data-astro-cid-3ef6ksr2]{border-radius:50%;object-fit:cover}.username[data-astro-cid-3ef6ksr2]{font-size:var(--text-sm)}.menu-toggle[data-astro-cid-3ef6ksr2]{display:none;background:none;border:none;cursor:pointer;padding:var(--space-2);color:var(--color-fg);-webkit-tap-highlight-color:transparent}.menu-icon[data-astro-cid-3ef6ksr2],.menu-icon[data-astro-cid-3ef6ksr2]:before,.menu-icon[data-astro-cid-3ef6ksr2]:after{display:block;width:20px;height:2px;border-radius:1px;background:currentColor;transition:transform .2s ease,opacity .2s ease}.menu-icon[data-astro-cid-3ef6ksr2]{position:relative}.menu-icon[data-astro-cid-3ef6ksr2]:before,.menu-icon[data-astro-cid-3ef6ksr2]:after{content:"";position:absolute;left:0}.menu-icon[data-astro-cid-3ef6ksr2]:before{top:-6px}.menu-icon[data-astro-cid-3ef6ksr2]:after{top:6px}.menu-open[data-astro-cid-3ef6ksr2] .menu-icon[data-astro-cid-3ef6ksr2]{background:transparent}.menu-open[data-astro-cid-3ef6ksr2] .menu-icon[data-astro-cid-3ef6ksr2]:before{top:0;transform:rotate(45deg)}.menu-open[data-astro-cid-3ef6ksr2] .menu-icon[data-astro-cid-3ef6ksr2]:after{top:0;transform:rotate(-45deg)}.theme-toggle[data-astro-cid-3ef6ksr2]{background:none;border:1px solid var(--color-border);border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-fg);padding:0;transition:border-color .15s}.theme-toggle[data-astro-cid-3ef6ksr2]:hover{border-color:var(--color-primary)}.theme-icon-dark[data-astro-cid-3ef6ksr2],.tone-dark .theme-icon-light[data-astro-cid-3ef6ksr2]{display:none}.tone-dark .theme-icon-dark[data-astro-cid-3ef6ksr2]{display:block}@media(max-width:768px){.menu-toggle[data-astro-cid-3ef6ksr2]{display:flex}.top-bar-nav-wrap[data-astro-cid-3ef6ksr2]{position:fixed;top:56px;left:0;right:0;background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);flex-direction:column;align-items:stretch;gap:0;padding:var(--space-3);transform:translateY(-110%);opacity:0;transition:transform .25s ease,opacity .2s ease;z-index:99;pointer-events:none}.menu-open[data-astro-cid-3ef6ksr2] .top-bar-nav-wrap[data-astro-cid-3ef6ksr2]{transform:translateY(0);opacity:1;pointer-events:auto}.top-bar-nav[data-astro-cid-3ef6ksr2]{flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.top-bar-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2],.nav-auth[data-astro-cid-3ef6ksr2] .nav-link[data-astro-cid-3ef6ksr2]{display:block;padding:var(--space-2) var(--space-3);font-size:var(--text-base)}.nav-auth[data-astro-cid-3ef6ksr2]{border-top:1px solid var(--color-border);padding-top:var(--space-3)}.user-menu[data-astro-cid-3ef6ksr2]{flex-direction:column;align-items:stretch;gap:var(--space-1)}.auth-links[data-astro-cid-3ef6ksr2]{display:flex;flex-direction:column;gap:var(--space-1)}.top-bar-actions[data-astro-cid-3ef6ksr2]{flex-shrink:0}}@media(prefers-reduced-motion:reduce){.top-bar-nav-wrap[data-astro-cid-3ef6ksr2]{transition:none}.menu-icon[data-astro-cid-3ef6ksr2],.menu-icon[data-astro-cid-3ef6ksr2]:before,.menu-icon[data-astro-cid-3ef6ksr2]:after{transition:none}}.site-footer[data-astro-cid-sz7xmlte]{background:var(--color-bg-elevated);border-top:1px solid var(--color-border);padding:var(--space-6) var(--space-4);margin-top:auto}.footer-content[data-astro-cid-sz7xmlte]{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm)}.footer-links[data-astro-cid-sz7xmlte]{display:flex;gap:var(--space-4)}.footer-links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{text-decoration:none;color:var(--color-fg-muted)}.footer-links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--color-primary)}.footer-copyright[data-astro-cid-sz7xmlte]{color:var(--color-fg-muted)}.footer-copyright[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:inherit;text-decoration:none}.footer-powered[data-astro-cid-sz7xmlte]{font-size:var(--text-xs);color:var(--color-fg-subtle);opacity:.7}@media(max-width:640px){.footer-content[data-astro-cid-sz7xmlte]{flex-direction:column;gap:.5rem;text-align:center}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:9999;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.5rem;background:var(--color-surface, #ffffff);border-top:1px solid var(--color-border, #ccc);color:var(--color-fg);font-size:.875rem;line-height:1.5;box-shadow:0 -2px 12px #0000001a;animation:cookie-enter .4s ease-out forwards}.cookie-consent-text{margin:0;flex:1;max-width:640px}.cookie-consent-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.cookie-consent-accept{display:inline-flex;align-items:center;padding:.5rem 1rem;border:none;border-radius:6px;background:var(--color-primary, #00A7DA);color:#fff;font-size:.8125rem;font-weight:600;cursor:pointer;transition:opacity .15s ease,transform .1s ease;white-space:nowrap}.cookie-consent-accept:hover{opacity:.9}.cookie-consent-accept:active{transform:scale(.97)}.cookie-consent-accept:focus-visible{outline:2px solid var(--color-primary, #00A7DA);outline-offset:2px}.cookie-consent-learn{display:inline-flex;align-items:center;padding:.5rem .75rem;border-radius:6px;background:transparent;color:var(--color-text-secondary, #888);font-size:.8125rem;text-decoration:underline;text-underline-offset:2px;transition:color .15s ease,background .15s ease;white-space:nowrap}.cookie-consent-learn:hover{color:var(--color-primary, #00A7DA);background:#0000000a}.cookie-consent-learn:focus-visible{outline:2px solid var(--color-primary, #00A7DA);outline-offset:2px}.tone-dark .cookie-consent{background:var(--color-surface, #1e1e1e);border-top-color:var(--color-border, #333);box-shadow:0 -2px 12px #0000004d}.tone-dark .cookie-consent-learn{color:var(--color-text-secondary, #999)}.tone-dark .cookie-consent-learn:hover{color:var(--color-primary, #4fc3f7);background:#ffffff0f}@keyframes cookie-enter{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.growl{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:10000;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:8px;box-shadow:0 4px 16px #00000026;font-size:.875rem;line-height:1.4;min-width:280px;max-width:480px;pointer-events:auto;animation:growl-enter .3s ease-out forwards}.growl.growl-exit{animation:growl-exit .3s ease-in forwards}.growl-success{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.growl-error{background:#fef2f2;color:#d32f2f;border:1px solid #fecaca}.growl-info{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.growl-message{flex:1;word-break:break-word}.growl-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:4px;background:transparent;color:inherit;cursor:pointer;font-size:1.25rem;line-height:1;opacity:.6;transition:opacity .15s ease,background .15s ease}.growl-close:hover{opacity:1;background:#0000000f}.growl-close:focus-visible{outline:2px solid currentColor;outline-offset:2px}@keyframes growl-enter{0%{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%)}}@keyframes growl-exit{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-10px)}}.tone-dark .growl-success{background:#1a2d1a;border-color:#1a4a1a;color:#4ade80}.tone-dark .growl-error{background:#2d1b1b;border-color:#5c2020;color:#f87171}.tone-dark .growl-info{background:#1e1e2e;border-color:#2a2a3e;color:#60a5fa}.tone-dark .growl-close:hover{background:#ffffff1a}:root{--font-sans: "Inter", "PingFang SC", "Microsoft YaHei", "Source Han Sans CN", "Noto Sans CJK SC", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Menlo", monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .9375rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--text-4xl: 3rem;--text-display: 4rem;--leading-tight: 1.15;--leading-snug: 1.3;--leading-base: 1.5;--leading-relaxed: 1.65;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700}:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px}:root{--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-pill: 999px}:root{--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12)}:root,.tone-light{--color-primary: #00a7da;--color-primary-hover: #0095c4;--color-primary-light: #e0f5fe;--color-primary-fg: #ffffff;--color-bg: #f8f8fa;--color-bg-elevated: #ffffff;--color-bg-sunken: #eeeef0;--color-surface: #ffffff;--color-fg: #1a1a1e;--color-fg-muted: #6a6a76;--color-fg-subtle: #8a8a96;--color-border: #d9d9de;--color-border-strong: #b6b6bf;--color-hover: #f0f0f2;--color-active: #e4e4e7;--color-success: #16a34a;--color-success-bg: #f0fdf4;--color-success-border: #bbf7d0;--color-error: #dc2626;--color-error-bg: #fef2f2;--color-error-border: #fecaca;--color-warning: #d97706;--color-warning-bg: #fffbeb;--color-warning-border: #fde68a;--color-info: #0284c7;--color-info-bg: #eff6ff;--color-info-border: #bfdbfe}.tone-dark{--color-primary: #4fc3f7;--color-primary-hover: #67cff8;--color-primary-light: #1a3a4a;--color-primary-fg: #121214;--color-bg: #121214;--color-bg-elevated: #1c1c1f;--color-bg-sunken: #0a0a0c;--color-surface: #1c1c1f;--color-fg: #e4e4e7;--color-fg-muted: #a1a1aa;--color-fg-subtle: #71717a;--color-border: #2a2a2e;--color-border-strong: #3f3f46;--color-hover: #27272a;--color-active: #3f3f46;--color-success: #4ade80;--color-success-bg: #1a2d1a;--color-success-border: #1a4a1a;--color-error: #f87171;--color-error-bg: #2d1b1b;--color-error-border: #5c2020;--color-warning: #fbbf24;--color-warning-bg: #2d2815;--color-warning-border: #5c4a1a;--color-info: #60a5fa;--color-info-bg: #1e1e3a;--color-info-border: #2a2a5e}:root,.tone-light,.tone-dark{--color-link: var(--color-primary);--color-link-visited: var(--color-primary);--color-link-hover: var(--color-primary-hover);--color-focus-ring: var(--color-primary);--color-code-bg: var(--color-bg-sunken);--color-code-fg: var(--color-fg);--color-overlay: rgba(0, 0, 0, .5);--color-stripe: color-mix(in srgb, var(--color-fg) 3%, var(--color-bg));--color-image-placeholder: var(--color-bg-sunken)}*,*:before,*:after{box-sizing:border-box}html{transition:background-color .2s ease,color .2s ease}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-base);color:var(--color-fg);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid transparent;border-radius:var(--radius-sm);font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:1.4;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease;user-select:none;-webkit-tap-highlight-color:transparent}.btn:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--color-primary);color:var(--color-primary-fg);border-color:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-fg);border-color:var(--color-border)}.btn-secondary:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn-ghost{background:transparent;color:var(--color-fg);border-color:transparent}.btn-ghost:hover{background:var(--color-hover)}.btn-danger{background:var(--color-error);color:#fff;border-color:var(--color-error)}.btn-danger:hover{filter:brightness(1.1)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-lg{padding:var(--space-3) var(--space-5);font-size:var(--text-md)}.btn-full{width:100%}@media(max-width:640px){.btn,.btn-sm{min-height:44px;padding-top:var(--space-3);padding-bottom:var(--space-3)}.table-wrapper{background:linear-gradient(to right,var(--color-surface) 30%,transparent),linear-gradient(to left,var(--color-surface) 30%,transparent) 100% 0,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.1),transparent),radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.1),transparent) 100% 0;background-repeat:no-repeat;background-attachment:local,local,scroll,scroll;background-size:40px 100%,40px 100%,14px 100%,14px 100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
