.portal-header[data-v-951ebd29]{position:sticky;top:0;z-index:50;background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.06)}:root.dark .portal-header[data-v-951ebd29]{background:#0a0a0aeb;border-bottom-color:#ffffff0f}.portal-header-inner[data-v-951ebd29]{max-width:1200px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;height:52px}@media(min-width:768px){.portal-header-inner[data-v-951ebd29]{padding:0 2rem}}.theme-toggle-btn[data-v-951ebd29]{position:relative;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid rgba(0,0,0,.06);background:transparent;color:#6b7280;cursor:pointer;transition:all .15s ease;overflow:hidden}:root.dark .theme-toggle-btn[data-v-951ebd29]{border-color:#ffffff14;color:#9ca3af}.theme-toggle-btn[data-v-951ebd29]:hover{background:#f3f4f6;color:#374151;border-color:#0000001a}:root.dark .theme-toggle-btn[data-v-951ebd29]:hover{background:#ffffff0f;color:#e5e7eb;border-color:#ffffff1f}.search-trigger[data-v-951ebd29]{display:flex;align-items:center;gap:8px;height:32px;padding:0 10px;border-radius:8px;border:1px solid rgba(0,0,0,.08);background:#00000005;color:#9ca3af;cursor:pointer;transition:all .15s ease;font-size:13px}.search-trigger[data-v-951ebd29]:hover{background:#f3f4f6;border-color:#0000001a;color:#6b7280}:root.dark .search-trigger[data-v-951ebd29]{border-color:#ffffff14;background:#ffffff08;color:#6b7280}:root.dark .search-trigger[data-v-951ebd29]:hover{background:#ffffff0f;border-color:#ffffff1f;color:#9ca3af}.search-trigger-text[data-v-951ebd29]{font-size:13px;color:#9ca3af;font-weight:400}:root.dark .search-trigger-text[data-v-951ebd29]{color:#6b7280}.search-trigger-kbd[data-v-951ebd29]{font-size:10px;font-weight:500;font-family:inherit;padding:1px 5px;border-radius:4px;background:#0000000f;border:1px solid rgba(0,0,0,.06);color:#a3a3a3;line-height:1.5}:root.dark .search-trigger-kbd[data-v-951ebd29]{background:#ffffff0f;border-color:#ffffff0f;color:#6b7280}.portal-footer[data-v-74be54a0]{background:#fff;border-top:1px solid rgba(0,0,0,.06);padding:48px 0 32px}:root.dark .portal-footer[data-v-74be54a0]{background:#0a0a0a;border-top-color:#ffffff0a}.portal-footer-inner[data-v-74be54a0]{max-width:1200px;margin:0 auto;padding:0 1.5rem}@media(min-width:768px){.portal-footer-inner[data-v-74be54a0]{padding:0 2rem}}.powered-by-wrapper[data-v-7e2da752]{position:fixed;bottom:20px;left:20px;z-index:50;display:flex;justify-content:center}.powered-by-link[data-v-7e2da752]{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:100px;background:hsl(var(--card,0 0% 100%));border:1px solid hsl(var(--border,214 32% 91%));box-shadow:0 4px 14px #0000000f,0 1px 3px #0000000a;text-decoration:none;transition:all .25s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}:root.dark .powered-by-link[data-v-7e2da752]{box-shadow:0 4px 14px #0000004d,0 1px 3px #0003}.powered-by-link[data-v-7e2da752]:hover{background:#f5f5f5;transform:translateY(-2px);box-shadow:0 8px 20px #0000001a,0 2px 6px #0000000f}:root.dark .powered-by-link[data-v-7e2da752]:hover{background:#262626;box-shadow:0 8px 20px #0006}.pb-text[data-v-7e2da752]{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#737373;transition:color .2s}:root.dark .pb-text[data-v-7e2da752]{color:#a3a3a3}.pb-logo-wrap[data-v-7e2da752]{display:flex;align-items:center;gap:5px;opacity:.6;filter:grayscale(1);transition:opacity .25s,filter .25s}.pb-logo-img[data-v-7e2da752]{width:14px;height:14px;-o-object-fit:contain;object-fit:contain;border-radius:3px}.powered-by-link:hover .pb-text[data-v-7e2da752]{color:hsl(var(--foreground,222 47% 11%)/.8)}.powered-by-link:hover .pb-logo-wrap[data-v-7e2da752]{opacity:1;filter:grayscale(0)}.pb-brand[data-v-7e2da752]{font-size:12px;font-weight:800;color:hsl(var(--foreground,222 47% 11%));letter-spacing:-.01em}@keyframes shake-90ca5144{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.animate-shake[data-v-90ca5144]{animation:shake-90ca5144 .5s cubic-bezier(.36,.07,.19,.97) both}
