*{margin:0;padding:0;box-sizing:border-box}:root{--od-bg: #ffffff;--od-text: #202124;--od-muted: #5f6368;--od-subtle: #3c4043;--od-accent: #4285f4;--od-accent-strong: #1a73e8;--od-accent-soft: rgba(66, 133, 244, .1);--od-accent-border: rgba(66, 133, 244, .35);--od-green: #34a853;--od-green-soft: rgba(52, 168, 83, .1);--od-green-border: rgba(52, 168, 83, .35);--od-yellow: #f9ab00;--od-yellow-soft: rgba(249, 171, 0, .1);--od-red: #ea4335;--od-red-soft: rgba(234, 67, 53, .1);--od-purple: #a142f4;--od-purple-soft: rgba(161, 66, 244, .1);--od-border: #e8eaed;--od-border-strong: #dadce0;--od-surface: #f8f9fa;--od-surface-2: #f1f3f4;--od-link-underline: rgba(66, 133, 244, .5);--od-selection: rgba(66, 133, 244, .15);--od-nav-bg: rgba(255, 255, 255, .97);--od-footer-bg: #f8f9fa;--od-nav-text: var(--od-text);--od-nav-muted: var(--od-muted);--od-nav-subtle: var(--od-subtle);--od-footer-text: var(--od-text);--od-footer-muted: var(--od-muted);--od-footer-subtle: var(--od-subtle)}:root[data-theme=white]{--od-bg: #ffffff;--od-text: #202124;--od-muted: #5f6368;--od-subtle: #3c4043;--od-accent: #4285f4;--od-accent-strong: #1a73e8;--od-accent-soft: rgba(66, 133, 244, .1);--od-accent-border: rgba(66, 133, 244, .35);--od-border: #e8eaed;--od-border-strong: #dadce0;--od-surface: #f8f9fa;--od-surface-2: #f1f3f4;--od-link-underline: rgba(66, 133, 244, .5);--od-selection: rgba(66, 133, 244, .15);--od-nav-bg: rgba(255, 255, 255, .97);--od-footer-bg: #f8f9fa;--od-nav-text: var(--od-text);--od-nav-muted: var(--od-muted);--od-nav-subtle: var(--od-subtle);--od-footer-text: var(--od-text);--od-footer-muted: var(--od-muted);--od-footer-subtle: var(--od-subtle)}:root[data-theme=black]{--od-nav-bg: rgba(32, 33, 36, .96);--od-footer-bg: #202124;--od-nav-text: #f8f9fa;--od-nav-muted: #9aa0a6;--od-nav-subtle: #bdc1c6;--od-footer-text: #f8f9fa;--od-footer-muted: #9aa0a6;--od-footer-subtle: #bdc1c6}html,body{font-family:Inter,IBM Plex Sans,HarmonyOS Sans,Source Han Sans SC,Noto Sans CJK SC,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.9;color:var(--od-text);background:var(--od-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-color:var(--od-link-underline)}button{cursor:pointer;border:none;background:none;font:inherit}img{max-width:100%;height:auto}::selection{background:var(--od-selection)}.navbar[data-v-49b011aa]{position:sticky;top:0;z-index:50;background:var(--od-nav-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--od-border)}.container[data-v-49b011aa]{max-width:1120px;margin:0 auto;padding:0 20px}.row[data-v-49b011aa]{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px}.brand[data-v-49b011aa]{display:flex;flex-direction:column;gap:2px;min-width:190px}.brand-title[data-v-49b011aa]{font-weight:800;letter-spacing:.02em;color:var(--od-nav-text);line-height:1;font-size:23px}.brand-subtitle[data-v-49b011aa]{font-size:15px;color:var(--od-nav-muted);line-height:1.2;white-space:nowrap}.menu-btn[data-v-49b011aa]{display:none;width:40px;height:40px;border-radius:999px;border:1px solid var(--od-border);background:transparent;color:var(--od-nav-text);align-items:center;justify-content:center}.menu-btn[data-v-49b011aa]:hover{background:var(--od-surface)}.menu-btn[data-v-49b011aa]:focus-visible{outline:2px solid var(--od-accent-border);outline-offset:2px}.menu-icon[data-v-49b011aa]{width:18px;height:12px;position:relative;display:inline-block}.menu-icon[data-v-49b011aa]:before,.menu-icon[data-v-49b011aa]:after,.menu-icon[data-v-49b011aa]{background:transparent}.menu-icon[data-v-49b011aa]:before,.menu-icon[data-v-49b011aa]:after{content:"";position:absolute;left:0;right:0;height:2px;background:currentColor;border-radius:999px}.menu-icon[data-v-49b011aa]:after,.menu-icon[data-v-49b011aa]:before{background:var(--od-nav-text)}.menu-icon[data-v-49b011aa]{color:var(--od-nav-text)}.menu-icon[data-v-49b011aa]:before,.menu-icon[data-v-49b011aa]:after{background:var(--od-nav-text)}.menu-icon[data-v-49b011aa]:before{top:0}.menu-icon[data-v-49b011aa]:after{bottom:0}.menu-icon[data-v-49b011aa]{width:18px;height:14px;position:relative;display:inline-block}.menu-icon[data-v-49b011aa]:before{content:"";position:absolute;left:0;right:0;top:2px;height:2px;border-radius:999px;background:var(--od-nav-text);box-shadow:0 5px 0 0 var(--od-nav-text),0 10px 0 0 var(--od-nav-text)}.nav[data-v-49b011aa]{display:flex;align-items:center;gap:18px;flex:1;justify-content:center}.nav-link[data-v-49b011aa]{font-size:13px;color:var(--od-nav-muted);padding:6px 0;transition:color .15s ease,text-decoration-color .15s ease}.nav-link[data-v-49b011aa]:hover{color:var(--od-nav-text);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px;text-decoration-color:color-mix(in oklab,var(--od-text) 18%,transparent)}.nav-link.router-link-active[data-v-49b011aa]{color:var(--od-accent);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px;text-decoration-color:var(--od-accent-strong)}.nav-link-portal[data-v-49b011aa]{font-weight:700;color:var(--od-nav-text)}.nav-link-portal.router-link-exact-active[data-v-49b011aa]{color:var(--od-accent)}.actions[data-v-49b011aa]{display:flex;align-items:center;gap:12px;min-width:240px;justify-content:flex-end}.profile-menu[data-v-49b011aa]{position:relative}.profile-trigger[data-v-49b011aa]{border:1px solid var(--od-border-strong);background:transparent;color:var(--od-nav-text);border-radius:999px;height:40px;padding:5px 12px 5px 5px;display:inline-flex;align-items:center;gap:8px;max-width:190px;min-width:108px}.profile-trigger[data-v-49b011aa]:hover{background:var(--od-surface)}.profile-avatar[data-v-49b011aa]{width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,#4f46e5,#0ea5e9)}.user-name[data-v-49b011aa]{font-size:13px;color:var(--od-nav-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dropdown[data-v-49b011aa]{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 10px 30px #0f172a26;padding:6px;display:flex;flex-direction:column;gap:4px;z-index:70}.profile-item[data-v-49b011aa]{border:none;background:transparent;border-radius:8px;text-align:left;padding:8px 10px;color:#374151;font-size:13px;display:inline-flex;align-items:center;gap:8px}.profile-item[data-v-49b011aa]:hover{background:#f3f4f6}.profile-item.danger[data-v-49b011aa]{color:#dc2626}.item-icon[data-v-49b011aa]{width:16px;text-align:center}.btn[data-v-49b011aa]{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 14px;border-radius:999px;font-size:14px;font-weight:600;border:1px solid transparent;transition:background .12s ease,border-color .12s ease,color .12s ease;white-space:nowrap}.btn-primary[data-v-49b011aa]{background:var(--od-accent);color:#fff;border-color:transparent}.btn-primary[data-v-49b011aa]:hover{background:var(--od-accent-strong)}.btn-enter-console[data-v-49b011aa]{border:1px solid var(--od-border-strong);background:#fff;color:var(--od-nav-text);box-shadow:0 1px #0f172a05}.btn-enter-console[data-v-49b011aa]:hover{background:var(--od-surface);border-color:#cbd5e1;color:#0f172a}.btn-enter-icon[data-v-49b011aa]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:15px;margin-right:6px}.btn-ghost[data-v-49b011aa]{background:transparent;color:var(--od-nav-muted);border-color:var(--od-border-strong)}.btn-ghost[data-v-49b011aa]:hover{background:var(--od-surface);color:var(--od-nav-text)}.mobile-overlay[data-v-49b011aa]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0b0e1161;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;justify-content:flex-end}.mobile-panel[data-v-49b011aa]{width:min(86vw,360px);height:100%;background:var(--od-nav-bg);border-left:1px solid var(--od-border);padding:18px 16px;display:flex;flex-direction:column;gap:16px}.mobile-nav[data-v-49b011aa]{display:flex;flex-direction:column;gap:8px}.mobile-link[data-v-49b011aa]{display:block;padding:10px 8px;border-radius:10px;color:var(--od-nav-text);font-size:15px}.mobile-link[data-v-49b011aa]:hover{background:var(--od-surface)}.mobile-link.router-link-active[data-v-49b011aa]{color:var(--od-accent);background:var(--od-accent-soft);box-shadow:inset 0 0 0 1px var(--od-accent-border)}.mobile-link-portal[data-v-49b011aa]{font-weight:700}.mobile-actions[data-v-49b011aa]{margin-top:auto;display:flex;flex-direction:column;gap:10px}.mobile-user[data-v-49b011aa]{color:var(--od-nav-muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-block[data-v-49b011aa]{width:100%}.fade-enter-active[data-v-49b011aa],.fade-leave-active[data-v-49b011aa]{transition:opacity .12s ease}.fade-enter-from[data-v-49b011aa],.fade-leave-to[data-v-49b011aa]{opacity:0}@media (max-width: 980px){.nav[data-v-49b011aa],.actions[data-v-49b011aa]{display:none}.menu-btn[data-v-49b011aa]{display:inline-flex}}.footer[data-v-96f9e2e2]{background:var(--od-footer-bg);border-top:1px solid var(--od-border);padding:46px 0 26px}.container[data-v-96f9e2e2]{max-width:1120px;margin:0 auto;padding:0 20px}.top[data-v-96f9e2e2]{display:flex;justify-content:space-between;gap:24px;padding-bottom:28px}.brand[data-v-96f9e2e2]{max-width:420px}.brand-title[data-v-96f9e2e2]{font-weight:800;letter-spacing:.02em;color:var(--od-footer-text);line-height:1;margin-bottom:6px}.brand-subtitle[data-v-96f9e2e2]{font-size:12px;color:var(--od-footer-muted);margin-bottom:12px}.brand-desc[data-v-96f9e2e2]{font-size:13px;line-height:1.7;color:var(--od-footer-subtle)}.theme[data-v-96f9e2e2]{margin-top:16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.theme-label[data-v-96f9e2e2]{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--od-footer-muted)}.theme-switch[data-v-96f9e2e2]{display:inline-flex;border:1px solid var(--od-border-strong);border-radius:999px;overflow:hidden;background:var(--od-surface-2)}.theme-btn[data-v-96f9e2e2]{padding:6px 10px;font-size:12px;font-weight:700;color:var(--od-footer-muted);border-right:1px solid var(--od-border)}.theme-btn[data-v-96f9e2e2]:last-child{border-right:none}.theme-btn[data-v-96f9e2e2]:hover{color:var(--od-footer-text);background:var(--od-surface)}.theme-btn[data-active=true][data-v-96f9e2e2]{color:var(--od-footer-text);background:var(--od-accent-soft);box-shadow:inset 0 0 0 1px var(--od-accent-border)}.links[data-v-96f9e2e2]{display:flex;gap:44px}.group-title[data-v-96f9e2e2]{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--od-footer-muted);text-transform:uppercase;margin-bottom:10px}.link[data-v-96f9e2e2]{display:block;color:var(--od-footer-subtle);font-size:13px;padding:6px 0}.link[data-v-96f9e2e2]:hover{color:var(--od-footer-text)}.bottom[data-v-96f9e2e2]{display:flex;justify-content:space-between;gap:12px;padding-top:18px;border-top:1px solid var(--od-border);color:var(--od-footer-muted);font-size:12px}.icp-link[data-v-96f9e2e2]{color:var(--od-footer-muted)}.icp-link[data-v-96f9e2e2]:hover{color:var(--od-footer-subtle)}@media (max-width: 840px){.top[data-v-96f9e2e2]{flex-direction:column}.links[data-v-96f9e2e2]{gap:28px}.bottom[data-v-96f9e2e2]{flex-direction:column}}.shell[data-v-8cdddd66]{min-height:100vh;display:flex;flex-direction:column}.main[data-v-8cdddd66]{flex:1}.skill-card[data-v-43cb1640]{display:flex;flex-direction:column;background:#fff;border:1px solid var(--od-border);border-left:3px solid var(--od-accent);border-radius:12px;padding:18px 20px 16px;cursor:pointer;transition:box-shadow .2s,transform .15s;gap:0}.skill-card[data-v-43cb1640]:hover{box-shadow:0 4px 20px #2021241f;transform:translateY(-2px)}.card-head[data-v-43cb1640]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.type-badge[data-v-43cb1640]{font-size:11px;font-weight:700;letter-spacing:.02em;padding:3px 8px;border-radius:100px;display:inline-flex;align-items:center;gap:4px}.sig-badge[data-v-43cb1640]{font-size:14px;opacity:.7;cursor:help}.card-title[data-v-43cb1640]{font-size:16px;font-weight:700;color:var(--od-text);margin:0 0 6px;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-meta[data-v-43cb1640]{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--od-muted);margin-bottom:10px}.meta-dot[data-v-43cb1640]{opacity:.5}.card-summary[data-v-43cb1640]{font-size:13px;line-height:1.7;color:var(--od-muted);margin:0 0 12px;flex:1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.card-tags[data-v-43cb1640]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.tag[data-v-43cb1640]{font-size:11px;padding:2px 8px;border-radius:100px;background:var(--od-surface-2, rgba(11, 14, 17, .05));color:var(--od-muted);border:1px solid var(--od-border);white-space:nowrap}.card-divider[data-v-43cb1640]{height:1px;background:var(--od-border);margin-bottom:12px}.card-actions[data-v-43cb1640]{display:flex;gap:8px;align-items:center}.action-btn[data-v-43cb1640]{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;font-size:13px;font-weight:600;border-radius:6px;border:1px solid var(--od-border-strong, rgba(11, 14, 17, .15));background:transparent;color:var(--od-text);cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.action-btn[data-v-43cb1640]:hover{background:var(--od-surface);border-color:var(--od-accent-border)}.action-primary[data-v-43cb1640]{background:var(--od-accent);color:#fff;border-color:transparent}.action-primary[data-v-43cb1640]:hover{background:var(--od-accent-strong);border-color:transparent;box-shadow:0 2px 6px #4285f459}.action-comment[data-v-43cb1640]{margin-left:auto;padding:6px 10px;opacity:.6}.action-comment[data-v-43cb1640]:hover{opacity:1}.action-icon[data-v-43cb1640]{font-size:14px}.world-tab[data-v-229063a6]{display:flex;flex-direction:column;gap:24px}.prompt-state[data-v-229063a6]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 0 60px;gap:10px;text-align:center}.prompt-icon[data-v-229063a6]{font-size:52px;opacity:.35;margin-bottom:4px}.prompt-main[data-v-229063a6]{font-size:15px;color:var(--od-text);font-weight:500;margin:0}.prompt-sub[data-v-229063a6]{font-size:13px;color:var(--od-muted);margin:0}.prompt-sub code[data-v-229063a6]{background:var(--od-surface);border:1px solid var(--od-border);border-radius:4px;padding:1px 6px;font-size:12px;color:var(--od-accent);font-family:monospace}.loading-state[data-v-229063a6]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 0;gap:12px;color:var(--od-muted);font-size:14px}.loading-spinner[data-v-229063a6]{width:32px;height:32px;border:3px solid var(--od-border-strong);border-top-color:var(--od-accent);border-radius:50%;animation:spin-229063a6 1s linear infinite}@keyframes spin-229063a6{to{transform:rotate(360deg)}}.empty-state[data-v-229063a6]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 0;gap:12px;text-align:center}.empty-icon[data-v-229063a6]{font-size:48px;opacity:.4}.empty-state p[data-v-229063a6]{font-size:14px;color:var(--od-muted);max-width:300px}.skill-section[data-v-229063a6]{display:flex;flex-direction:column;gap:16px}.section-title[data-v-229063a6]{font-size:15px;font-weight:800;color:var(--od-text);display:flex;align-items:center;gap:8px;margin:0;padding-bottom:12px;border-bottom:2px solid var(--od-border)}.section-icon[data-v-229063a6]{font-size:16px}.section-count[data-v-229063a6]{font-size:12px;font-weight:600;color:var(--od-muted);background:var(--od-surface);border:1px solid var(--od-border);border-radius:100px;padding:1px 8px;margin-left:auto}.skill-grid[data-v-229063a6]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.load-more[data-v-229063a6]{display:flex;justify-content:center;padding:16px 0}.load-more-btn[data-v-229063a6]{padding:10px 28px;font-size:14px;font-weight:600;border:1px solid var(--od-border-strong);border-radius:8px;color:var(--od-text);background:transparent;cursor:pointer;transition:all .15s}.load-more-btn[data-v-229063a6]:hover{background:var(--od-accent-soft);border-color:var(--od-accent-border);color:var(--od-accent)}@media (max-width: 600px){.skill-grid[data-v-229063a6]{grid-template-columns:1fr}}.mine-tab[data-v-3bc9c6da]{display:flex;flex-direction:column;gap:20px}.login-wall[data-v-3bc9c6da]{display:flex;align-items:center;justify-content:center;min-height:280px}.login-wall-inner[data-v-3bc9c6da]{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;max-width:320px}.login-wall-icon[data-v-3bc9c6da]{font-size:48px}.login-wall-inner h3[data-v-3bc9c6da]{font-size:17px;font-weight:700;color:var(--od-text);margin:0}.login-wall-inner p[data-v-3bc9c6da]{font-size:14px;color:var(--od-muted);margin:0}.sub-tabs[data-v-3bc9c6da]{display:flex;gap:0;border-bottom:2px solid var(--od-border)}.sub-tab[data-v-3bc9c6da]{padding:10px 20px;font-size:14px;font-weight:600;color:var(--od-muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.sub-tab.active[data-v-3bc9c6da]{color:var(--od-accent);border-bottom-color:var(--od-accent)}.loading-hint[data-v-3bc9c6da]{font-size:14px;color:var(--od-muted);padding:32px 0;text-align:center}.empty-hint[data-v-3bc9c6da]{display:flex;flex-direction:column;align-items:center;padding:64px 0;gap:8px;text-align:center}.empty-icon[data-v-3bc9c6da]{font-size:40px;opacity:.4;margin-bottom:4px}.empty-hint p[data-v-3bc9c6da]{font-size:14px;color:var(--od-muted);margin:0}.hint-sub[data-v-3bc9c6da]{font-size:13px!important;opacity:.7}.draft-list[data-v-3bc9c6da]{display:flex;flex-direction:column;gap:8px}.draft-item[data-v-3bc9c6da]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border:1px solid var(--od-border);border-radius:10px;gap:12px;cursor:pointer;transition:background .15s,border-color .15s}.draft-item[data-v-3bc9c6da]:hover{background:var(--od-surface);border-color:var(--od-accent-border)}.draft-item-left[data-v-3bc9c6da]{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.draft-icon[data-v-3bc9c6da]{font-size:20px;flex-shrink:0}.draft-info[data-v-3bc9c6da]{display:flex;flex-direction:column;min-width:0}.draft-title[data-v-3bc9c6da]{font-size:14px;font-weight:600;color:var(--od-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.draft-meta[data-v-3bc9c6da]{font-size:12px;color:var(--od-muted)}.draft-item-right[data-v-3bc9c6da]{display:flex;align-items:center;gap:8px;flex-shrink:0}.draft-date[data-v-3bc9c6da]{font-size:12px;color:var(--od-muted)}.draft-badge[data-v-3bc9c6da]{font-size:11px;font-weight:600;padding:2px 8px;border-radius:100px;background:#f9ab001a;color:#f9ab00;border:1px solid rgba(249,171,0,.25)}.draft-arrow[data-v-3bc9c6da]{font-size:18px;color:var(--od-muted);line-height:1}.pub-list[data-v-3bc9c6da]{display:flex;flex-direction:column;gap:8px}.pub-item[data-v-3bc9c6da]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border:1px solid var(--od-border);border-radius:10px;gap:12px;transition:background .15s}.pub-item[data-v-3bc9c6da]:hover{background:var(--od-surface)}.pub-item-left[data-v-3bc9c6da]{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.pub-type-icon[data-v-3bc9c6da]{font-size:20px;flex-shrink:0}.pub-info[data-v-3bc9c6da]{display:flex;flex-direction:column;min-width:0}.pub-title[data-v-3bc9c6da]{font-size:14px;font-weight:600;color:var(--od-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pub-meta[data-v-3bc9c6da]{font-size:12px;color:var(--od-muted)}.pub-item-right[data-v-3bc9c6da]{display:flex;align-items:center;gap:10px;flex-shrink:0}.install-list[data-v-3bc9c6da]{display:flex;flex-direction:column;gap:8px}.install-item[data-v-3bc9c6da]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border:1px solid var(--od-border);border-radius:10px;gap:12px}.install-item[data-v-3bc9c6da]:hover{background:var(--od-surface)}.install-item-left[data-v-3bc9c6da]{display:flex;align-items:flex-start;gap:10px;flex:1;min-width:0}.install-icon[data-v-3bc9c6da]{font-size:20px;flex-shrink:0;margin-top:1px}.install-info[data-v-3bc9c6da]{display:flex;flex-direction:column;gap:2px;min-width:0}.install-title[data-v-3bc9c6da]{font-size:14px;font-weight:600;color:var(--od-text)}.install-meta[data-v-3bc9c6da]{font-size:12px;color:var(--od-muted)}.sig-tag[data-v-3bc9c6da]{font-size:11px;color:#16a34a;background:#16a34a14;border:1px solid rgba(22,163,74,.2);border-radius:4px;padding:1px 6px;display:inline-block;width:fit-content}.install-item-right[data-v-3bc9c6da]{flex-shrink:0}.status-badge[data-v-3bc9c6da]{font-size:12px;font-weight:600;padding:3px 10px;border-radius:100px;white-space:nowrap}.status-badge.online[data-v-3bc9c6da],.status-badge.published[data-v-3bc9c6da]{background:#16a34a1a;color:#16a34a}.status-badge.offline[data-v-3bc9c6da]{background:#9ca3af26;color:#6b7280}.status-badge.deprecated[data-v-3bc9c6da]{background:#ef444414;color:#ef4444}.action-link[data-v-3bc9c6da]{font-size:13px;color:var(--od-accent);font-weight:600;transition:opacity .15s}.action-link[data-v-3bc9c6da]:hover{opacity:.7}.publish-actions[data-v-3bc9c6da]{padding-top:8px;display:flex;gap:10px;flex-wrap:wrap}.btn-primary[data-v-3bc9c6da]{padding:10px 24px;background:var(--od-accent);color:#fff;font-size:14px;font-weight:600;border-radius:24px;border:none;cursor:pointer;transition:background .15s,box-shadow .15s}.btn-primary[data-v-3bc9c6da]:hover{background:var(--od-accent-strong);box-shadow:0 2px 8px #4285f459}.btn-outline[data-v-3bc9c6da]{padding:9px 18px;background:transparent;border:1px solid var(--od-border-strong);color:var(--od-text);font-size:13px;font-weight:600;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s}.btn-outline[data-v-3bc9c6da]:hover{background:var(--od-surface);border-color:var(--od-accent-border)}.projects-tab[data-v-ea0830c2]{display:flex;flex-direction:column;gap:16px}.login-wall[data-v-ea0830c2]{display:flex;align-items:center;justify-content:center;min-height:280px}.login-wall-inner[data-v-ea0830c2]{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;max-width:320px}.login-wall-icon[data-v-ea0830c2]{font-size:48px}.login-wall-inner h3[data-v-ea0830c2]{font-size:17px;font-weight:700;color:var(--od-text);margin:0}.login-wall-inner p[data-v-ea0830c2]{font-size:14px;color:var(--od-muted);margin:0}.loading-hint[data-v-ea0830c2]{font-size:14px;color:var(--od-muted);padding:32px 0;text-align:center}.loading-hint.small[data-v-ea0830c2]{padding:12px 16px}.empty-hint[data-v-ea0830c2]{display:flex;flex-direction:column;align-items:center;padding:64px 0;gap:8px;text-align:center}.empty-icon[data-v-ea0830c2]{font-size:40px;opacity:.4;margin-bottom:4px}.empty-hint p[data-v-ea0830c2]{font-size:14px;color:var(--od-muted);margin:0}.hint-sub[data-v-ea0830c2]{font-size:13px!important;opacity:.7}.project-list[data-v-ea0830c2]{display:flex;flex-direction:column;gap:12px}.project-card[data-v-ea0830c2]{border:1px solid var(--od-border);border-radius:12px;overflow:hidden}.project-head[data-v-ea0830c2]{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;cursor:pointer;transition:background .15s;gap:12px}.project-head[data-v-ea0830c2]:hover{background:var(--od-surface)}.project-head-left[data-v-ea0830c2]{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.project-icon[data-v-ea0830c2]{font-size:20px;flex-shrink:0}.project-name-block[data-v-ea0830c2]{display:flex;flex-direction:column;gap:3px;min-width:0}.project-name-row[data-v-ea0830c2]{display:flex;align-items:center;gap:8px;min-width:0}.project-name[data-v-ea0830c2]{font-size:15px;font-weight:700;color:var(--od-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-meta-row[data-v-ea0830c2]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.project-id[data-v-ea0830c2]{font-size:11px;color:var(--od-muted);font-family:monospace}.proj-type-badge[data-v-ea0830c2]{font-size:10px;font-weight:600;padding:1px 7px;border-radius:100px;white-space:nowrap;flex-shrink:0}.proj-type-badge.type-node[data-v-ea0830c2]{background:#4285f41a;color:#4285f4;border:1px solid rgba(66,133,244,.25)}.proj-type-badge.type-project[data-v-ea0830c2]{background:#34a8531a;color:#34a853;border:1px solid rgba(52,168,83,.25)}.proj-rel-badge[data-v-ea0830c2]{font-size:10px;font-weight:600;padding:1px 7px;border-radius:100px;white-space:nowrap;flex-shrink:0}.proj-rel-badge.rel-owner[data-v-ea0830c2]{background:#ea433514;color:#ea4335;border:1px solid rgba(234,67,53,.2)}.proj-rel-badge.rel-admin[data-v-ea0830c2]{background:#f9ab001a;color:#f9ab00;border:1px solid rgba(249,171,0,.25)}.proj-rel-badge.rel-org[data-v-ea0830c2]{background:#a142f414;color:#a142f4;border:1px solid rgba(161,66,244,.2)}.proj-org-hint[data-v-ea0830c2]{font-size:10px;color:var(--od-muted);opacity:.8}.project-head-right[data-v-ea0830c2]{display:flex;align-items:center;gap:10px;flex-shrink:0}.skill-count-badge[data-v-ea0830c2]{font-size:12px;color:var(--od-muted);background:var(--od-surface);border:1px solid var(--od-border);border-radius:100px;padding:2px 10px;white-space:nowrap}.toggle-btn[data-v-ea0830c2]{font-size:16px;color:var(--od-muted);transition:transform .2s;line-height:1}.toggle-btn.expanded[data-v-ea0830c2]{transform:rotate(180deg)}.project-body[data-v-ea0830c2]{border-top:1px solid var(--od-border);padding:16px 18px;display:flex;flex-direction:column;gap:16px;background:var(--od-surface-2, rgba(11, 14, 17, .02))}.skills-section[data-v-ea0830c2]{display:flex;flex-direction:column;gap:10px}.skills-section-title[data-v-ea0830c2]{font-size:13px;font-weight:700;color:var(--od-text);display:flex;align-items:center;gap:6px;margin:0}.count[data-v-ea0830c2]{font-size:11px;color:var(--od-muted);background:var(--od-surface);border:1px solid var(--od-border);border-radius:100px;padding:0 6px}.no-skills[data-v-ea0830c2]{font-size:13px;color:var(--od-muted);padding:8px 0}.inline-link[data-v-ea0830c2]{color:var(--od-accent);font-weight:600;font-size:13px}.skill-item-list[data-v-ea0830c2]{display:flex;flex-direction:column;gap:6px}.skill-item[data-v-ea0830c2]{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--od-bg, #fff);border:1px solid var(--od-border);border-radius:8px}.skill-item-icon[data-v-ea0830c2]{font-size:16px;flex-shrink:0}.skill-item-info[data-v-ea0830c2]{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.skill-item-name[data-v-ea0830c2]{font-size:13px;font-weight:600;color:var(--od-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skill-item-meta[data-v-ea0830c2]{font-size:11px;color:var(--od-muted)}.skill-item-status[data-v-ea0830c2]{font-size:11px;font-weight:600;padding:2px 8px;border-radius:100px;flex-shrink:0}.skill-item-status.published[data-v-ea0830c2]{background:#16a34a1a;color:#16a34a}.skill-item-status.offline[data-v-ea0830c2]{background:#9ca3af26;color:#6b7280}.project-actions[data-v-ea0830c2]{display:flex;gap:8px}.btn-primary[data-v-ea0830c2]{padding:10px 24px;background:var(--od-accent);color:#fff;font-size:14px;font-weight:600;border-radius:24px;border:none;cursor:pointer;transition:background .15s,box-shadow .15s}.btn-primary[data-v-ea0830c2]:hover{background:var(--od-accent-strong);box-shadow:0 2px 8px #4285f459}.btn-outline[data-v-ea0830c2]{padding:8px 16px;background:transparent;border:1px solid var(--od-border-strong);color:var(--od-text);font-size:13px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-outline[data-v-ea0830c2]:hover{background:var(--od-surface);border-color:var(--od-accent-border)}.dialog-overlay[data-v-b674697e]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9000;padding:16px}.dialog[data-v-b674697e]{background:var(--od-bg, #fff);border:1px solid var(--od-border-strong);border-radius:16px;width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003;overflow:hidden}.dialog-header[data-v-b674697e]{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--od-border)}.dialog-title-row[data-v-b674697e]{display:flex;align-items:center;gap:10px}.dialog-icon[data-v-b674697e]{font-size:20px}.dialog-title[data-v-b674697e]{font-size:17px;font-weight:700;color:var(--od-text);margin:0}.close-btn[data-v-b674697e]{font-size:20px;color:var(--od-muted);width:30px;height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s}.close-btn[data-v-b674697e]:hover{background:var(--od-surface)}.resource-preview[data-v-b674697e]{padding:16px 24px;background:var(--od-surface);border-bottom:1px solid var(--od-border)}.resource-type[data-v-b674697e]{font-size:12px;font-weight:700;color:var(--od-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}.resource-title[data-v-b674697e]{font-size:15px;font-weight:700;color:var(--od-text);margin:0 0 6px}.resource-summary[data-v-b674697e]{font-size:13px;color:var(--od-muted);line-height:1.6;margin:0 0 8px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.sig-notice[data-v-b674697e]{font-size:12px;color:#16a34a;display:flex;align-items:center;gap:4px}.dialog-body[data-v-b674697e]{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:20px}.form-section[data-v-b674697e]{display:flex;flex-direction:column;gap:10px}.form-label[data-v-b674697e]{font-size:13px;font-weight:600;color:var(--od-text)}.required[data-v-b674697e]{color:#ef4444}.loading-hint[data-v-b674697e],.empty-hint[data-v-b674697e]{font-size:13px;color:var(--od-muted);padding:12px 0}.project-list[data-v-b674697e]{display:flex;flex-direction:column;gap:8px;max-height:180px;overflow-y:auto}.project-option[data-v-b674697e]{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--od-border);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s}.project-option[data-v-b674697e]:hover{border-color:var(--od-accent-border);background:var(--od-surface)}.project-option.selected[data-v-b674697e]{border-color:var(--od-accent);background:var(--od-accent-soft)}.sr-only[data-v-b674697e]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.proj-icon[data-v-b674697e]{font-size:18px}.proj-info[data-v-b674697e]{flex:1;display:flex;flex-direction:column}.proj-name[data-v-b674697e]{font-size:14px;font-weight:600;color:var(--od-text)}.proj-id[data-v-b674697e]{font-size:11px;color:var(--od-muted);font-family:monospace}.proj-check[data-v-b674697e]{color:var(--od-accent);font-weight:700}.install-note[data-v-b674697e]{display:flex;align-items:flex-start;gap:8px;padding:12px 14px;background:var(--od-surface);border-radius:8px;border:1px solid var(--od-border)}.note-icon[data-v-b674697e]{font-size:14px;flex-shrink:0;margin-top:1px}.install-note p[data-v-b674697e]{font-size:13px;color:var(--od-muted);line-height:1.6;margin:0}.error-msg[data-v-b674697e]{font-size:13px;color:#ef4444;display:flex;align-items:center;gap:6px;padding:10px 14px;background:#ef44440f;border-radius:8px;border:1px solid rgba(239,68,68,.2)}.dialog-footer[data-v-b674697e]{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--od-border)}.btn[data-v-b674697e]{padding:9px 20px;font-size:14px;font-weight:600;border-radius:8px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:all .15s}.btn[data-v-b674697e]:disabled{opacity:.5;cursor:not-allowed}.btn-ghost[data-v-b674697e]{background:transparent;border:1px solid var(--od-border-strong);color:var(--od-text)}.btn-ghost[data-v-b674697e]:hover:not(:disabled){background:var(--od-surface)}.btn-primary[data-v-b674697e]{background:var(--od-accent);border:none;color:#fff}.btn-primary[data-v-b674697e]:hover:not(:disabled){background:var(--od-accent-strong);box-shadow:0 2px 8px #4285f459}.spinner[data-v-b674697e]{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-b674697e .8s linear infinite}@keyframes spin-b674697e{to{transform:rotate(360deg)}}.portal-page[data-v-367768e7]{display:flex;flex-direction:column;min-height:calc(100vh - 64px)}.portal-header[data-v-367768e7]{background:#f9fafb;padding:20px 0 28px;border-bottom:1px solid var(--od-border)}.portal-header-inner[data-v-367768e7]{max-width:600px;margin:0 auto;padding:0 20px;display:flex;flex-direction:column;align-items:center;gap:28px}.portal-brand[data-v-367768e7]{text-align:center;display:flex;flex-direction:column;align-items:center;gap:0;padding-top:12px}.portal-logo[data-v-367768e7]{width:100%;max-width:420px;height:auto;display:block}.portal-slogan[data-v-367768e7]{font-size:26px;font-weight:700;margin:0;width:420px;max-width:100%;display:flex;align-items:center;justify-content:space-between;line-height:1.5}.slogan-char[data-v-367768e7]{display:inline-block}.slogan-char[data-v-367768e7]:nth-child(1){color:#4285f4}.slogan-char[data-v-367768e7]:nth-child(2){color:#0f9d58}.slogan-char[data-v-367768e7]:nth-child(3){color:#f4b400}.slogan-char[data-v-367768e7]:nth-child(4){color:#ea4335}.slogan-char[data-v-367768e7]:nth-child(5){color:#a142f4}.slogan-char[data-v-367768e7]:nth-child(6){color:#1a73e8}.portal-search-group[data-v-367768e7]{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px}.portal-subtitle[data-v-367768e7]{font-size:12px;font-weight:500;color:#9aa0a6;margin:0;letter-spacing:.18em}.portal-search-wrap[data-v-367768e7]{width:100%}.search-box[data-v-367768e7]{position:relative;display:flex;align-items:center;max-width:600px;margin:0 auto}.search-input[data-v-367768e7]{width:100%;padding:13px 100px 13px 22px;font-size:16px;border:1px solid var(--od-border-strong);border-radius:24px;background:var(--od-bg);color:var(--od-text);outline:none;transition:box-shadow .2s,border-color .2s;box-shadow:0 1px 3px #20212414}.search-input[data-v-367768e7]:hover{box-shadow:0 2px 8px #20212424;border-color:transparent}.search-input[data-v-367768e7]:focus{box-shadow:0 2px 8px #2021242e;border-color:transparent}.search-input[data-v-367768e7]::placeholder{color:#c0c4cc}.search-clear[data-v-367768e7]{position:absolute;right:54px;display:flex;align-items:center;justify-content:center;color:var(--od-muted);width:32px;height:32px;border-radius:50%;transition:background .15s,color .15s}.search-clear[data-v-367768e7]:hover{background:var(--od-surface-2);color:var(--od-text)}.search-btn[data-v-367768e7]{position:absolute;right:6px;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#4285f4,#e8453c);color:#fff;display:flex;align-items:center;justify-content:center;transition:opacity .15s,box-shadow .15s;flex-shrink:0;box-shadow:0 2px 6px #e8453c40}.search-btn[data-v-367768e7]:hover{opacity:.9;box-shadow:0 3px 10px #e8453c59}.search-history-dropdown[data-v-367768e7]{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--od-border);border-radius:12px;box-shadow:0 4px 20px #20212424;z-index:200;overflow:hidden}.search-history-header[data-v-367768e7]{display:flex;align-items:center;justify-content:space-between;padding:10px 16px 6px;font-size:12px;color:var(--od-muted);font-weight:600}.history-clear-all[data-v-367768e7]{background:none;border:none;color:var(--od-muted);font-size:12px;cursor:pointer;padding:2px 4px;border-radius:4px;transition:color .15s}.history-clear-all[data-v-367768e7]:hover{color:var(--od-accent)}.history-item[data-v-367768e7]{display:flex;align-items:center;gap:10px;width:100%;padding:9px 16px;background:none;border:none;text-align:left;font-size:14px;color:var(--od-text);cursor:pointer;transition:background .12s}.history-item[data-v-367768e7]:hover{background:var(--od-surface)}.history-item span[data-v-367768e7]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-keywords[data-v-367768e7]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.kw-label[data-v-367768e7]{font-size:13px;color:#3c4043;flex-shrink:0}.kw-tag[data-v-367768e7]{font-size:12px;padding:4px 14px;border:1px solid var(--od-border-strong);border-radius:100px;color:#3c4043;background:#fff;cursor:pointer;transition:all .15s;font-weight:500}.kw-tag[data-v-367768e7]:hover{border-color:var(--od-accent-border);color:var(--od-accent);box-shadow:0 1px 4px #4285f426}.tab-nav[data-v-367768e7]{background:var(--od-bg);border-bottom:1px solid var(--od-border);position:sticky;top:60px;z-index:10}.tab-nav-inner[data-v-367768e7]{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;gap:0}.tab-btn[data-v-367768e7]{padding:13px 20px;font-size:14px;font-weight:600;color:var(--od-muted);border-bottom:2px solid transparent;margin-bottom:-1px;display:flex;align-items:center;gap:6px;transition:color .15s,border-color .15s;white-space:nowrap}.tab-btn[data-v-367768e7]:hover{color:var(--od-text)}.tab-btn.active[data-v-367768e7]{color:var(--od-accent);border-bottom-color:var(--od-accent)}.tab-icon[data-v-367768e7]{font-size:15px}.tab-content[data-v-367768e7]{flex:1;padding:28px 0 48px}.tab-content-inner[data-v-367768e7]{max-width:1200px;margin:0 auto;padding:0 20px}.login-guard-overlay[data-v-367768e7]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:9500;padding:16px}.login-guard[data-v-367768e7]{background:var(--od-bg);border:1px solid var(--od-border-strong);border-radius:16px;padding:32px 28px;max-width:360px;width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;box-shadow:0 16px 48px #00000026}.login-guard-icon[data-v-367768e7]{font-size:40px;margin-bottom:4px}.login-guard h3[data-v-367768e7]{font-size:16px;font-weight:700;color:var(--od-text);margin:0}.login-guard p[data-v-367768e7]{font-size:14px;color:var(--od-muted);margin:0}.login-guard-actions[data-v-367768e7]{display:flex;gap:10px;margin-top:8px;width:100%;justify-content:center}.btn-ghost[data-v-367768e7]{padding:9px 18px;background:transparent;border:1px solid var(--od-border-strong);color:var(--od-text);font-size:14px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .15s}.btn-ghost[data-v-367768e7]:hover{background:var(--od-surface)}.btn-primary[data-v-367768e7]{padding:9px 20px;background:var(--od-accent);border:none;color:#fff;font-size:14px;font-weight:600;border-radius:8px;cursor:pointer;transition:background .15s,box-shadow .15s}.btn-primary[data-v-367768e7]:hover{background:var(--od-accent-strong);box-shadow:0 2px 8px #4285f459}@media (max-width: 600px){.portal-title[data-v-367768e7]{font-size:26px}.tab-btn[data-v-367768e7]{padding:12px 14px;font-size:13px}}
