:root{--color-primary:#00d992;--color-primary-soft:#2fd6a1;--color-primary-deep:#10b981;--color-on-primary:#101010;--color-ink:#f2f2f2;--color-ink-strong:#fff;--color-body:#bdbdbd;--color-mute:#8b949e;--color-hairline:#3d3a39;--color-hairline-soft:#b8b3b0;--color-canvas:#101010;--color-canvas-soft:#1a1a1a;--color-canvas-text-soft:#f5f6f7;--font-sans:Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--font-mono:SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, monospace;--text-display-xl:400 60px/60px var(--font-sans);--text-display-lg:400 36px/40px var(--font-sans);--text-display-md:700 24px/32px var(--font-sans);--text-display-sm:600 20px/28px var(--font-sans);--text-body-lg:400 18px/28px var(--font-sans);--text-body-md:400 16px/26px var(--font-sans);--text-body-sm:400 14px/20px var(--font-sans);--text-button-md:600 16px/24px var(--font-sans);--text-caption:400 12px/16px var(--font-sans);--text-code:400 13px/18px var(--font-mono);--space-xxs:2px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:20px;--space-2xl:24px;--space-3xl:32px;--space-4xl:40px;--space-5xl:48px;--space-6xl:64px;--radius-none:0px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:9999px;--glass-bg:#ffffff08;--glass-border:#ffffff14;--glass-blur:12px;--glass-shadow:0 4px 24px #0003;--sidebar-width:260px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font:var(--text-body-md);letter-spacing:0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--color-canvas);color:var(--color-ink);min-height:100vh}h1,h2,h3,h4{color:var(--color-ink-strong);font-weight:400}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img,svg{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}::selection{color:var(--color-ink-strong);background:#00d9924d}.code-chip{font:var(--text-code);padding:var(--space-xxs) var(--space-sm);background:var(--color-canvas-soft);color:var(--color-canvas-text-soft);border-radius:var(--radius-xs);word-break:break-all;display:inline-block}.status-pill{padding:var(--space-xs) var(--space-md);background:var(--color-canvas);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-pill);font-size:12px;font-weight:500;line-height:16px}.btn{padding:var(--space-md) var(--space-lg);font:var(--text-button-md);border-radius:var(--radius-sm);justify-content:center;align-items:center;min-height:44px;text-decoration:none;transition:opacity .2s;display:inline-flex}.btn:hover{opacity:.85}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-outline{background:var(--color-canvas);color:var(--color-ink);border:1px solid var(--color-hairline)}.btn-ghost{color:var(--color-primary-soft);background:0 0}.md-body{color:var(--color-body);line-height:1.8}.md-body h1,.md-body h2,.md-body h3,.md-body h4,.md-body h5,.md-body h6{color:var(--color-ink-strong);margin-top:var(--space-3xl);margin-bottom:var(--space-md)}.md-body h1{font:var(--text-display-sm)}.md-body h2{font:var(--text-body-lg);padding-bottom:var(--space-xs);border-bottom:1px solid var(--glass-border);font-weight:700}.md-body h3{font:var(--text-body-md);font-weight:700}.md-body p{margin-bottom:var(--space-lg)}.md-body a{color:#60a5fa;text-decoration:none}.md-body a:hover{text-decoration:underline}.md-body strong{color:var(--color-ink-strong)}.md-body ul,.md-body ol{padding-left:var(--space-2xl);margin-bottom:var(--space-lg)}.md-body li{margin-bottom:var(--space-xs)}.md-body blockquote{border-left:3px solid var(--color-primary);padding:var(--space-sm) var(--space-xl);margin:var(--space-lg) 0;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:#00d9920a}.md-body blockquote p{margin-bottom:0}.md-body code{font:var(--text-code);border-radius:var(--radius-xs);background:#ffffff0f;padding:2px 6px}.md-body pre{border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-xl);margin:var(--space-lg) 0;background:#0006;overflow-x:auto}.md-body pre code{background:0 0;padding:0;font-size:13px;line-height:1.6}.md-body table{border-collapse:collapse;width:100%;margin:var(--space-lg) 0}.md-body th,.md-body td{padding:var(--space-sm) var(--space-lg);border:1px solid var(--glass-border);text-align:left}.md-body th{color:var(--color-ink-strong);background:#ffffff0a;font-weight:600}.md-body hr{border:none;border-top:1px solid var(--glass-border);margin:var(--space-3xl) 0}.md-body img{border-radius:var(--radius-md);max-width:100%}.nav-link[data-v-1cc60793]{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-2xl);color:var(--color-body);font:var(--text-body-sm);border-radius:var(--radius-sm);margin:0 var(--space-sm);transition:all .25s;display:flex}.nav-link[data-v-1cc60793]:hover{color:var(--color-ink);background:#ffffff0d}.nav-link.active[data-v-1cc60793]{color:var(--color-ink);background:#00d99214}.nav-icon[data-v-1cc60793]{color:var(--color-mute);flex-shrink:0;transition:color .25s}.nav-link:hover .nav-icon[data-v-1cc60793]{color:var(--color-ink)}.nav-link.active .nav-icon[data-v-1cc60793]{color:var(--color-primary)}.nav-indicator[data-v-1cc60793]{background:var(--color-hairline);border-radius:50%;width:6px;height:6px;transition:background .2s}.nav-link.active .nav-indicator[data-v-1cc60793]{background:var(--color-primary)}.sidebar[data-v-230c06fd]{width:var(--sidebar-width);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));padding:var(--space-2xl) 0;z-index:100;border-right:none;flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:fixed;top:0;left:0}.sidebar[data-v-230c06fd]:after{content:"";background:linear-gradient(#0000 5%,#00d9920f 30%,#ffffff1a 50%,#00d9920f 70%,#0000 95%);width:1px;height:100%;position:absolute;top:0;right:0;box-shadow:0 0 2px #00d9920d}.sidebar-header[data-v-230c06fd]{padding:0 var(--space-2xl) var(--space-xl) var(--space-2xl);border-bottom:none;justify-content:space-between;align-items:center;display:flex;position:relative}.sidebar-header[data-v-230c06fd]:after{content:"";bottom:0;left:var(--space-2xl);right:var(--space-2xl);background:linear-gradient(90deg,#0000 5%,#00d99214 25%,#ffffff1a 50%,#00d99214 75%,#0000 95%);height:1px;position:absolute;box-shadow:0 0 2px #00d9920a}.avatar-group[data-v-230c06fd]{align-items:center;gap:var(--space-md);flex-direction:row;display:flex}.avatar[data-v-230c06fd]{border:2px solid var(--color-primary);cursor:pointer;background:#1a1a1a;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:relative;overflow:visible}.avatar svg[data-v-230c06fd]{border-radius:50%}.profile-card[data-v-230c06fd]{width:220px;padding:var(--space-xl);background:var(--color-canvas-soft);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--glass-shadow);z-index:200;gap:var(--space-md);flex-direction:column;display:flex;position:absolute;top:0;left:56px}.profile-name[data-v-230c06fd]{font:var(--text-body-md);color:var(--color-ink-strong);font-weight:600}.profile-intro[data-v-230c06fd]{font:var(--text-body-sm);color:var(--color-body)}.profile-contacts[data-v-230c06fd]{gap:var(--space-xs);padding:var(--space-sm) 0;border-top:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border);flex-direction:column;display:flex}.contact-row[data-v-230c06fd]{align-items:center;gap:var(--space-sm);display:flex}.contact-label[data-v-230c06fd]{font:var(--text-caption);color:var(--color-mute);min-width:32px}.contact-value[data-v-230c06fd]{font:var(--text-body-sm);color:var(--color-ink)}.profile-admin-btn[data-v-230c06fd]{text-align:center;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font:var(--text-body-sm);color:var(--color-primary);background:#00d9921a;border:1px solid #00d99233;font-weight:600;text-decoration:none;transition:all .2s;display:block}.profile-admin-btn[data-v-230c06fd]:hover{background:#00d99226}.back-btn[data-v-230c06fd]{width:44px;height:44px;color:var(--color-body);border:1px solid var(--glass-border);cursor:pointer;background:#ffffff0a;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.back-btn[data-v-230c06fd]:hover{color:var(--color-ink-strong);background:#ffffff14}.logo-text[data-v-230c06fd]{font:var(--text-display-sm);color:var(--color-ink-strong);letter-spacing:-.6px}.close-btn[data-v-230c06fd]{color:var(--color-mute);display:none}.sidebar-nav[data-v-230c06fd]{margin-top:var(--space-2xl);flex:1}.articles-nav[data-v-230c06fd]{margin-top:var(--space-xl);padding:0 var(--space-md);flex:1;overflow-y:auto}.cat-group[data-v-230c06fd]{margin-bottom:var(--space-xs)}.cat-header[data-v-230c06fd]{align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-ink-strong);font:var(--text-body-sm);font-weight:600;transition:background .2s;display:flex}.cat-header[data-v-230c06fd]:hover{background:#ffffff0a}.cat-arrow[data-v-230c06fd]{color:var(--color-mute);flex-shrink:0;transition:transform .2s}.cat-arrow.open[data-v-230c06fd]{transform:rotate(90deg)}.cat-name[data-v-230c06fd]{flex:1}.cat-count[data-v-230c06fd]{font:var(--text-caption);color:var(--color-mute)}.cat-list[data-v-230c06fd]{padding-left:var(--space-xl)}.article-item[data-v-230c06fd]{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);font:var(--text-body-sm);color:var(--color-body);cursor:pointer;margin-bottom:var(--space-xxs);text-decoration:none;transition:all .2s;display:block}.article-item[data-v-230c06fd]:hover{color:var(--color-ink-strong);background:#ffffff0a}.article-item.active[data-v-230c06fd]{color:var(--color-primary);background:#00d99214}.sidebar-footer[data-v-230c06fd]{padding:var(--space-xl) var(--space-2xl);position:relative}.sidebar-footer[data-v-230c06fd]:before{content:"";top:0;left:var(--space-2xl);right:var(--space-2xl);background:linear-gradient(90deg,#0000 5%,#00d99214 25%,#ffffff1a 50%,#00d99214 75%,#0000 95%);height:1px;position:absolute;box-shadow:0 0 2px #00d9920a}.icp[data-v-230c06fd]{font:var(--text-caption);color:var(--color-mute);text-align:center;justify-content:center;align-items:center;gap:var(--space-xxs);display:flex}.icp-icon[data-v-230c06fd]{flex-shrink:0}.sidebar-backdrop[data-v-230c06fd]{display:none}@media (width<=1023px){.sidebar[data-v-230c06fd]{transition:transform .3s;transform:translate(-100%)}.sidebar.open[data-v-230c06fd]{transform:translate(0)}.close-btn[data-v-230c06fd]{display:block}.sidebar-backdrop[data-v-230c06fd]{z-index:99;background:#0009;display:block;position:fixed;inset:0}}.admin-wrapper{background:var(--color-canvas);min-height:100vh}.app-shell{min-height:100vh;display:flex}.main-content{margin-left:var(--sidebar-width);background:var(--color-canvas);flex:1;overflow-y:auto}.mobile-header{align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));z-index:50;display:none;position:sticky;top:0}.hamburger{color:var(--color-ink)}.mobile-logo{font:var(--text-body-sm);color:var(--color-ink-strong);font-weight:600}@media (width<=1023px){.main-content{margin-left:0}.mobile-header{display:flex}}.home[data-v-97ec326e]{padding:var(--space-5xl) var(--space-3xl);max-width:1200px;margin:0 auto}.hero-section[data-v-97ec326e]{margin-bottom:var(--space-4xl);padding:var(--space-3xl) var(--space-2xl);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));position:relative;overflow:hidden}.hero-glow[data-v-97ec326e]{pointer-events:none;background:radial-gradient(circle,#00d99214 0%,#0000 70%);width:200px;height:200px;position:absolute;top:-60px;left:-60px}.hero-content[data-v-97ec326e]{justify-content:space-between;align-items:center;display:flex;position:relative}.hero-left[data-v-97ec326e]{gap:var(--space-sm);flex-direction:column;display:flex}.hero-time[data-v-97ec326e]{align-items:baseline;gap:var(--space-xs);display:flex}.time-hm[data-v-97ec326e]{font:var(--text-display-xl);letter-spacing:-.65px;color:var(--color-ink-strong);font-variant-numeric:tabular-nums;font-weight:300}.time-sec[data-v-97ec326e]{font:var(--text-body-lg);color:var(--color-primary);font-variant-numeric:tabular-nums;font-weight:500}.hero-meta[data-v-97ec326e]{align-items:center;gap:var(--space-md);display:flex}.meta-date[data-v-97ec326e]{font:var(--text-body-md);color:var(--color-body)}.meta-divider[data-v-97ec326e]{background:var(--color-hairline);width:1px;height:14px}.meta-greeting[data-v-97ec326e]{font:var(--text-body-md);color:var(--color-mute)}.hero-right[data-v-97ec326e]{align-items:center;display:flex}.zodiac-card[data-v-97ec326e]{align-items:center;gap:var(--space-sm);padding:var(--space-lg) var(--space-2xl);border-radius:var(--radius-md);background:#00d9920a;border:1px solid #00d99226;flex-direction:column;display:flex}.zodiac-header[data-v-97ec326e]{align-items:center;gap:var(--space-sm);display:flex}.zodiac-icon[data-v-97ec326e]{font-size:22px}.zodiac-name[data-v-97ec326e]{font:var(--text-body-md);color:var(--color-ink-strong);font-weight:600}.zodiac-stars[data-v-97ec326e]{gap:2px;display:flex}.star[data-v-97ec326e]{color:var(--color-hairline);font-size:13px;transition:color .3s}.star.active[data-v-97ec326e]{color:#fbbf24}.zodiac-desc[data-v-97ec326e]{font:var(--text-caption);color:var(--color-mute)}.home-grid[data-v-97ec326e]{gap:var(--space-2xl);grid-template-columns:1fr 1fr;display:grid}.home-card[data-v-97ec326e]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-xl);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur))}.card-header[data-v-97ec326e]{margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--glass-border);justify-content:space-between;align-items:center;display:flex}.card-title[data-v-97ec326e]{align-items:center;gap:var(--space-sm);font:var(--text-body-md);color:var(--color-ink-strong);font-weight:600;display:flex}.card-title svg[data-v-97ec326e]{color:var(--color-primary)}.card-more[data-v-97ec326e]{font:var(--text-caption);color:var(--color-mute);text-decoration:none;transition:color .2s}.card-more[data-v-97ec326e]:hover{color:var(--color-primary)}.card-status[data-v-97ec326e]{font:var(--text-caption);color:var(--color-mute)}.article-list[data-v-97ec326e]{gap:var(--space-sm);flex-direction:column;display:flex}.article-link[data-v-97ec326e]{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);color:var(--color-body);justify-content:space-between;align-items:center;text-decoration:none;transition:all .2s;display:flex}.article-link[data-v-97ec326e]:hover{color:var(--color-ink-strong);background:#ffffff0a}.article-title[data-v-97ec326e]{font:var(--text-body-sm)}.article-cat[data-v-97ec326e]{font:var(--text-caption);color:var(--color-mute);border-radius:var(--radius-pill);background:#00d9921a;padding:2px 8px}.news-error[data-v-97ec326e]{padding:var(--space-lg);text-align:center;color:var(--color-mute);font:var(--text-body-sm)}.skeleton-item[data-v-97ec326e]{pointer-events:none}.skeleton-line[data-v-97ec326e]{border-radius:var(--radius-sm);background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14 50%,#ffffff0a 75%) 0 0/200% 100%;animation:1.5s infinite shimmer-97ec326e}.skeleton-title[data-v-97ec326e]{width:70%;height:16px}.skeleton-tag[data-v-97ec326e]{width:48px;height:14px}@keyframes shimmer-97ec326e{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=1023px){.home-grid[data-v-97ec326e]{grid-template-columns:1fr}.hero-content[data-v-97ec326e]{align-items:flex-start;gap:var(--space-2xl);flex-direction:column}.time-hm[data-v-97ec326e]{font-size:48px;line-height:48px}}@media (width<=767px){.home[data-v-97ec326e]{padding:var(--space-3xl) var(--space-lg)}.time-hm[data-v-97ec326e]{font-size:40px;line-height:40px}.zodiac-card[data-v-97ec326e]{padding:var(--space-md) var(--space-lg);flex-direction:row}}.resources-page[data-v-65dbcc9b]{padding:var(--space-5xl) var(--space-3xl)}.resources-search[data-v-65dbcc9b]{margin-bottom:var(--space-3xl)}.search-input[data-v-65dbcc9b]{width:100%;max-width:400px;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-pill);border:1px solid var(--glass-border);color:var(--color-ink);font:var(--text-body-md);background:#0003;transition:border-color .2s}.search-input[data-v-65dbcc9b]:focus{border-color:var(--color-primary);outline:none}.resource-section[data-v-65dbcc9b]{margin-bottom:var(--space-4xl)}.section-title[data-v-65dbcc9b]{font:var(--text-display-sm);color:var(--color-ink-strong);margin-bottom:var(--space-xl);padding-bottom:var(--space-sm);border-bottom:1px solid var(--glass-border)}.resource-grid[data-v-65dbcc9b]{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.resource-card[data-v-65dbcc9b]{gap:var(--space-xs);padding:var(--space-lg);border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));flex-direction:column;text-decoration:none;transition:border-color .2s,transform .2s;display:flex}.resource-card[data-v-65dbcc9b]:hover{border-color:#00d99266;transform:translateY(-2px)}.resource-name[data-v-65dbcc9b]{font:var(--text-body-md);color:var(--color-ink-strong);font-weight:600}.resource-desc[data-v-65dbcc9b]{font:var(--text-body-sm);color:var(--color-mute)}.empty-state[data-v-65dbcc9b]{text-align:center;color:var(--color-mute);padding:var(--space-5xl);font:var(--text-body-lg)}@media (width<=767px){.resources-page[data-v-65dbcc9b]{padding:var(--space-3xl) var(--space-lg)}.resource-grid[data-v-65dbcc9b]{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}.mirrors-page[data-v-63a31058]{padding:var(--space-5xl) var(--space-3xl)}.filter-bar[data-v-63a31058]{gap:var(--space-sm);margin-bottom:var(--space-2xl);flex-wrap:wrap;display:flex}.filter-btn[data-v-63a31058]{padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-pill);font:var(--text-body-sm);color:var(--color-body);border:1px solid var(--glass-border);background:0 0;font-weight:500;transition:all .2s}.filter-btn[data-v-63a31058]:hover{color:var(--color-ink);border-color:#ffffff26}.filter-btn.active[data-v-63a31058]{color:var(--color-on-primary);background:var(--color-primary);border-color:var(--color-primary)}.table-wrap[data-v-63a31058]{border-radius:var(--radius-lg);border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));overflow-x:auto}.mirror-table[data-v-63a31058]{border-collapse:collapse;width:100%}.mirror-table th[data-v-63a31058]{font:var(--text-body-sm);color:var(--color-mute);text-align:left;padding:var(--space-lg) var(--space-2xl);border-bottom:1px solid var(--glass-border);white-space:nowrap;font-weight:600}.mirror-table td[data-v-63a31058]{padding:var(--space-lg) var(--space-2xl);vertical-align:middle;border-bottom:1px solid #ffffff08}.mirror-table tbody tr:last-child td[data-v-63a31058]{border-bottom:none}.mirror-table tbody tr[data-v-63a31058]:hover{background:#ffffff05}.col-name[data-v-63a31058]{gap:var(--space-xxs);flex-direction:column;display:flex}.mirror-name[data-v-63a31058]{font:var(--text-body-sm);color:var(--color-ink-strong);white-space:nowrap;font-weight:600}.mirror-desc[data-v-63a31058]{font:var(--text-caption);color:var(--color-mute)}.mirror-tag[data-v-63a31058]{font:var(--text-caption);padding:var(--space-xxs) var(--space-sm);border-radius:var(--radius-pill);white-space:nowrap}.tag-docker[data-v-63a31058]{color:#60a5fa;background:#3b82f61f}.tag-npm[data-v-63a31058]{color:#fb923c;background:#ea580c1f}.tag-php[data-v-63a31058]{color:#a78bfa;background:#8b5cf61f}.tag-python[data-v-63a31058]{color:#facc15;background:#eab3081f}.tag-综合[data-v-63a31058]{color:#f472b6;background:#ec48991f}.tag-软件[data-v-63a31058]{color:#22d3ee;background:#06b6d41f}.mirror-url[data-v-63a31058]{font:var(--text-code);color:#93c5fd;word-break:break-all;text-decoration:none}.mirror-url[data-v-63a31058]:hover{text-decoration:underline}.col-action-head[data-v-63a31058],.col-action[data-v-63a31058]{text-align:center;width:100px}.copy-btn[data-v-63a31058]{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);font:var(--text-body-sm);color:var(--color-primary);white-space:nowrap;text-align:center;background:0 0;border:1px solid #00d9924d;width:68px;transition:all .2s;display:block}.copy-btn[data-v-63a31058]:hover{background:#00d9921a}@media (width<=767px){.mirrors-page[data-v-63a31058]{padding:var(--space-3xl) var(--space-lg)}.mirror-table th[data-v-63a31058],.mirror-table td[data-v-63a31058]{padding:var(--space-md) var(--space-lg)}.mirror-desc[data-v-63a31058]{display:none}}.tools-page[data-v-238fa576]{padding:var(--space-5xl) var(--space-3xl)}.tool-grid[data-v-238fa576]{gap:var(--space-xl);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.tool-card[data-v-238fa576]{padding:var(--space-2xl);border-radius:var(--radius-lg);border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-shadow);transition:border-color .3s,transform .3s}.tool-card[data-v-238fa576]:hover{border-color:#00d9924d;transform:translateY(-2px)}.tool-name[data-v-238fa576]{font:var(--text-body-lg);color:var(--color-ink-strong);margin-bottom:var(--space-lg);font-weight:600}.tool-body[data-v-238fa576]{gap:var(--space-md);flex-direction:column;display:flex}.tool-input[data-v-238fa576],.tool-select[data-v-238fa576],.tool-textarea[data-v-238fa576]{width:100%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:1px solid var(--glass-border);color:var(--color-ink);font:var(--text-body-sm);background:#0003;transition:border-color .2s}.tool-textarea[data-v-238fa576]{resize:vertical;min-height:80px}.tool-input[data-v-238fa576]:focus,.tool-select[data-v-238fa576]:focus,.tool-textarea[data-v-238fa576]:focus{border-color:var(--color-primary);outline:none}.tool-row[data-v-238fa576]{align-items:center;gap:var(--space-sm);display:flex}.tool-row .tool-input[data-v-238fa576],.tool-row .tool-select[data-v-238fa576]{flex:1}.tool-arrow[data-v-238fa576]{color:var(--color-mute);flex-shrink:0;font-size:14px}.tool-result[data-v-238fa576]{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);color:var(--color-ink);font:var(--text-body-sm);word-break:break-all;background:#0003;align-items:center;min-height:32px;display:flex}.tool-result.mono[data-v-238fa576]{font-family:monospace}.tool-btn-group[data-v-238fa576]{gap:var(--space-sm);flex-wrap:wrap;display:flex}.tool-btn[data-v-238fa576]{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);font:var(--text-body-sm);cursor:pointer;font-weight:500;transition:opacity .2s}.tool-btn[data-v-238fa576]:hover{opacity:.85}.tool-divider[data-v-238fa576]{background:var(--color-hairline);height:1px;margin:var(--space-xs) 0}.qr-canvas[data-v-238fa576]{border-radius:var(--radius-sm);align-self:center}@media (width<=767px){.tools-page[data-v-238fa576]{padding:var(--space-3xl) var(--space-lg)}.page-title[data-v-238fa576]{font-size:32px;line-height:36px}.tool-grid[data-v-238fa576]{grid-template-columns:1fr}}.articles-page[data-v-baa0b6a6]{padding:var(--space-5xl) var(--space-3xl);max-width:900px;margin:0 auto}.article-empty[data-v-baa0b6a6]{min-height:300px;color:var(--color-mute);font:var(--text-body-md);justify-content:center;align-items:center;display:flex}@media (width<=767px){.articles-page[data-v-baa0b6a6]{padding:var(--space-3xl) var(--space-lg)}}.admin-shell[data-v-3fd1f8f8]{background:var(--color-canvas);min-height:100vh;display:flex}.admin-sidebar[data-v-3fd1f8f8]{background:var(--glass-bg);border-right:1px solid var(--glass-border);width:220px;padding:var(--space-2xl) 0;height:100vh;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));flex-direction:column;display:flex;position:fixed;top:0;left:0}.admin-logo[data-v-3fd1f8f8]{align-items:center;gap:var(--space-sm);padding:0 var(--space-xl) var(--space-xl);border-bottom:1px solid var(--glass-border);margin-bottom:var(--space-lg);font:var(--text-body-md);color:var(--color-ink-strong);font-weight:600;display:flex}.admin-logo svg[data-v-3fd1f8f8]{color:var(--color-primary)}.admin-nav[data-v-3fd1f8f8]{gap:var(--space-xs);padding:0 var(--space-md);flex-direction:column;flex:1;display:flex}.admin-nav-item[data-v-3fd1f8f8]{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font:var(--text-body-sm);color:var(--color-body);text-decoration:none;transition:all .2s;display:flex}.admin-nav-item[data-v-3fd1f8f8]:hover{color:var(--color-ink-strong);background:#ffffff0a}.admin-nav-item.active[data-v-3fd1f8f8]{color:var(--color-primary);background:#00d99214}.admin-sidebar-footer[data-v-3fd1f8f8]{padding:var(--space-md);border-top:1px solid var(--glass-border)}.back-link[data-v-3fd1f8f8]{color:var(--color-mute)}.admin-main[data-v-3fd1f8f8]{padding:var(--space-3xl);flex:1;margin-left:220px;overflow-y:auto}.login-page[data-v-7e08cf15]{background:var(--color-canvas);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card[data-v-7e08cf15]{width:360px;padding:var(--space-3xl);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur))}.login-header[data-v-7e08cf15]{align-items:center;gap:var(--space-md);margin-bottom:var(--space-2xl);color:var(--color-primary);display:flex}.login-title[data-v-7e08cf15]{font:var(--text-display-sm);color:var(--color-ink-strong)}.login-form[data-v-7e08cf15]{gap:var(--space-lg);flex-direction:column;display:flex}.form-field[data-v-7e08cf15]{gap:var(--space-xs);flex-direction:column;display:flex}.field-label[data-v-7e08cf15]{font:var(--text-caption);color:var(--color-mute)}.field-input[data-v-7e08cf15]{background:var(--color-canvas-soft);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:var(--space-md) var(--space-lg);font:var(--text-body-sm);color:var(--color-ink)}.field-input[data-v-7e08cf15]:focus{border-color:var(--color-primary);outline:none}.login-error[data-v-7e08cf15]{font:var(--text-body-sm);color:#f87171;text-align:center}.login-btn[data-v-7e08cf15]{padding:var(--space-md);background:var(--color-primary);color:var(--color-on-primary);border-radius:var(--radius-sm);font:var(--text-body-sm);cursor:pointer;border:none;font-weight:600;transition:opacity .2s}.login-btn[data-v-7e08cf15]:hover{opacity:.9}.login-btn[data-v-7e08cf15]:disabled{opacity:.5;cursor:not-allowed}.dashboard[data-v-b50078cb]{max-width:900px}.page-title[data-v-b50078cb]{font:var(--text-display-md);color:var(--color-ink-strong);margin-bottom:var(--space-3xl)}.stats-grid[data-v-b50078cb]{gap:var(--space-xl);margin-bottom:var(--space-4xl);grid-template-columns:repeat(3,1fr);display:grid}.stat-card[data-v-b50078cb]{align-items:center;gap:var(--space-lg);padding:var(--space-xl);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);display:flex}.stat-icon[data-v-b50078cb]{border-radius:var(--radius-sm);width:48px;height:48px;color:var(--color-primary);background:#00d99214;justify-content:center;align-items:center;display:flex}.stat-info[data-v-b50078cb]{gap:var(--space-xxs);flex-direction:column;display:flex}.stat-value[data-v-b50078cb]{font:var(--text-display-md);color:var(--color-ink-strong)}.stat-label[data-v-b50078cb]{font:var(--text-body-sm);color:var(--color-mute)}.section-title[data-v-b50078cb]{font:var(--text-body-md);color:var(--color-ink-strong);margin-bottom:var(--space-lg);font-weight:600}.action-grid[data-v-b50078cb]{gap:var(--space-lg);grid-template-columns:repeat(3,1fr);display:grid}.action-card[data-v-b50078cb]{padding:var(--space-lg) var(--space-xl);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--color-body);justify-content:space-between;align-items:center;text-decoration:none;transition:all .2s;display:flex}.action-card[data-v-b50078cb]:hover{border-color:var(--color-primary);color:var(--color-ink-strong)}.action-label[data-v-b50078cb]{font:var(--text-body-sm)}.action-arrow[data-v-b50078cb]{color:var(--color-mute)}.resources-admin[data-v-028753f1]{max-width:1100px}.page-header[data-v-028753f1]{margin-bottom:var(--space-2xl);justify-content:space-between;align-items:center;display:flex}.page-title[data-v-028753f1]{font:var(--text-display-md);color:var(--color-ink-strong)}.header-actions[data-v-028753f1]{gap:var(--space-sm);display:flex}.btn[data-v-028753f1]{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);font:var(--text-body-sm);cursor:pointer;border:none;font-weight:600;transition:all .2s}.btn-primary[data-v-028753f1]{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary[data-v-028753f1]:hover{opacity:.9}.btn-outline[data-v-028753f1]{color:var(--color-body);border:1px solid var(--glass-border);background:0 0}.btn-outline[data-v-028753f1]:hover{border-color:var(--color-primary);color:var(--color-ink-strong)}.btn-sm[data-v-028753f1]{padding:var(--space-xs) var(--space-md)}.btn-icon[data-v-028753f1]{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--color-primary);cursor:pointer;background:#00d9921a;border:none;justify-content:center;align-items:center;font-size:18px;font-weight:600;display:flex}.btn-icon-sm[data-v-028753f1]{border-radius:var(--radius-xs);width:22px;height:22px;color:var(--color-mute);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:16px;transition:all .2s;display:flex}.btn-icon-sm[data-v-028753f1]:hover{color:var(--color-ink-strong);background:#ffffff0f}.btn-icon-sm.danger[data-v-028753f1]:hover{color:#f87171;background:#f871711a}.resources-layout[data-v-028753f1]{gap:var(--space-xl);grid-template-columns:240px 1fr;display:grid}.categories-panel[data-v-028753f1]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-lg)}.panel-header[data-v-028753f1]{margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--glass-border);justify-content:space-between;align-items:center;display:flex}.panel-title[data-v-028753f1]{font:var(--text-body-sm);color:var(--color-ink-strong);font-weight:600}.category-list[data-v-028753f1]{gap:var(--space-xxs);flex-direction:column;display:flex}.category-item[data-v-028753f1]{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s;display:flex}.category-item[data-v-028753f1]:hover{background:#ffffff0a}.category-item.active[data-v-028753f1]{color:var(--color-primary);background:#00d99214}.cat-name[data-v-028753f1]{font:var(--text-body-sm);color:var(--color-body);flex:1}.category-item.active .cat-name[data-v-028753f1]{color:var(--color-primary)}.cat-count[data-v-028753f1]{font:var(--text-caption);color:var(--color-mute)}.links-panel[data-v-028753f1]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-xl)}.cat-name-input[data-v-028753f1]{border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-md);font:var(--text-body-sm);color:var(--color-ink-strong);background:0 0;width:200px;font-weight:600}.cat-name-input[data-v-028753f1]:focus{border-color:var(--color-primary);outline:none}.links-list[data-v-028753f1]{gap:var(--space-sm);flex-direction:column;display:flex}.link-row[data-v-028753f1]{align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-sm);background:#ffffff05;display:flex}.link-fields[data-v-028753f1]{gap:var(--space-sm);flex:1;display:flex}.field-input[data-v-028753f1]{border:1px solid var(--glass-border);border-radius:var(--radius-xs);padding:var(--space-xs) var(--space-sm);font:var(--text-body-sm);color:var(--color-ink);background:0 0;flex:1}.field-input[data-v-028753f1]:focus{border-color:var(--color-primary);outline:none}.field-url[data-v-028753f1]{flex:1.5}.empty-state[data-v-028753f1]{padding:var(--space-3xl);text-align:center;color:var(--color-mute);font:var(--text-body-sm)}.mirrors-admin[data-v-36ad3757]{max-width:1100px}.page-header[data-v-36ad3757]{margin-bottom:var(--space-2xl);justify-content:space-between;align-items:center;display:flex}.page-title[data-v-36ad3757]{font:var(--text-display-md);color:var(--color-ink-strong)}.header-actions[data-v-36ad3757]{gap:var(--space-sm);display:flex}.btn[data-v-36ad3757]{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);font:var(--text-body-sm);cursor:pointer;border:none;font-weight:600;transition:all .2s}.btn-primary[data-v-36ad3757]{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary[data-v-36ad3757]:hover{opacity:.9}.btn-outline[data-v-36ad3757]{color:var(--color-body);border:1px solid var(--glass-border);background:0 0}.btn-outline[data-v-36ad3757]:hover{border-color:var(--color-primary);color:var(--color-ink-strong)}.btn-icon-sm[data-v-36ad3757]{border-radius:var(--radius-xs);width:22px;height:22px;color:var(--color-mute);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:16px;transition:all .2s;display:flex}.btn-icon-sm.danger[data-v-36ad3757]:hover{color:#f87171;background:#f871711a}.toolbar[data-v-36ad3757]{align-items:center;gap:var(--space-md);margin-bottom:var(--space-xl);display:flex}.search-input[data-v-36ad3757]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-sm);max-width:300px;padding:var(--space-sm) var(--space-md);font:var(--text-body-sm);color:var(--color-ink);flex:1}.search-input[data-v-36ad3757]:focus{border-color:var(--color-primary);outline:none}.table-wrap[data-v-36ad3757]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);overflow:hidden}.data-table[data-v-36ad3757]{border-collapse:collapse;width:100%}.data-table th[data-v-36ad3757]{text-align:left;padding:var(--space-md) var(--space-lg);font:var(--text-caption);color:var(--color-mute);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--glass-border);background:#ffffff05;font-weight:600}.data-table td[data-v-36ad3757]{padding:var(--space-sm) var(--space-lg);border-bottom:1px solid #ffffff08}.data-table tr:last-child td[data-v-36ad3757]{border-bottom:none}.cell-input[data-v-36ad3757]{border-radius:var(--radius-xs);width:100%;padding:var(--space-xs) var(--space-sm);font:var(--text-body-sm);color:var(--color-ink);background:0 0;border:1px solid #0000}.cell-input[data-v-36ad3757]:focus{border-color:var(--color-primary);background:#ffffff05;outline:none}.cell-sm[data-v-36ad3757]{max-width:80px}.empty-cell[data-v-36ad3757]{text-align:center;color:var(--color-mute);padding:var(--space-2xl)!important}.articles-admin[data-v-aec2de53]{max-width:1000px}.page-header[data-v-aec2de53]{margin-bottom:var(--space-2xl);justify-content:space-between;align-items:center;display:flex}.page-title[data-v-aec2de53]{font:var(--text-display-md);color:var(--color-ink-strong)}.header-actions[data-v-aec2de53]{gap:var(--space-sm);display:flex}.btn[data-v-aec2de53]{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);font:var(--text-body-sm);cursor:pointer;border:none;font-weight:600;transition:all .2s}.btn-primary[data-v-aec2de53]{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary[data-v-aec2de53]:hover{opacity:.9}.btn-outline[data-v-aec2de53]{color:var(--color-body);border:1px solid var(--glass-border);background:0 0}.btn-outline[data-v-aec2de53]:hover{border-color:var(--color-primary);color:var(--color-ink-strong)}.btn-sm[data-v-aec2de53]{padding:var(--space-xs) var(--space-md)}.btn-icon-sm[data-v-aec2de53]{border-radius:var(--radius-xs);width:22px;height:22px;color:var(--color-mute);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;transition:all .2s;display:flex}.btn-icon-sm[data-v-aec2de53]:hover{color:var(--color-ink-strong);background:#ffffff0f}.btn-icon-sm.danger[data-v-aec2de53]:hover{color:#f87171;background:#f871711a}.table-wrap[data-v-aec2de53]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);overflow:hidden}.data-table[data-v-aec2de53]{border-collapse:collapse;width:100%}.data-table th[data-v-aec2de53]{text-align:left;padding:var(--space-md) var(--space-lg);font:var(--text-caption);color:var(--color-mute);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--glass-border);background:#ffffff05;font-weight:600}.data-table td[data-v-aec2de53]{padding:var(--space-md) var(--space-lg);border-bottom:1px solid #ffffff08}.data-table tr:last-child td[data-v-aec2de53]{border-bottom:none}.title-cell[data-v-aec2de53]{font:var(--text-body-sm);color:var(--color-ink-strong)}.date-cell[data-v-aec2de53]{font:var(--text-caption);color:var(--color-mute)}.cat-badge[data-v-aec2de53]{font:var(--text-caption);border-radius:var(--radius-pill);color:var(--color-primary);background:#00d9921a;padding:2px 8px}.row-actions[data-v-aec2de53]{gap:var(--space-xs);display:flex}.editor-panel[data-v-aec2de53]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-xl)}.editor-header[data-v-aec2de53]{align-items:center;gap:var(--space-lg);margin-bottom:var(--space-xl);display:flex}.editor-title-label[data-v-aec2de53]{font:var(--text-body-md);color:var(--color-ink-strong);flex:1;font-weight:600}.editor-meta[data-v-aec2de53]{gap:var(--space-lg);margin-bottom:var(--space-xl);flex-wrap:wrap;display:flex}.meta-field[data-v-aec2de53]{gap:var(--space-xs);flex-direction:column;display:flex}.meta-label[data-v-aec2de53]{font:var(--text-caption);color:var(--color-mute)}.meta-input[data-v-aec2de53]{border:1px solid var(--glass-border);border-radius:var(--radius-xs);padding:var(--space-sm) var(--space-md);font:var(--text-body-sm);color:var(--color-ink);background:0 0;min-width:200px}.meta-input[data-v-aec2de53]:focus{border-color:var(--color-primary);outline:none}.meta-sm[data-v-aec2de53]{min-width:120px}.editor-textarea[data-v-aec2de53]{border:1px solid var(--glass-border);border-radius:var(--radius-sm);width:100%;min-height:400px;padding:var(--space-lg);font:var(--text-code);color:var(--color-ink);resize:vertical;background:#ffffff05}.editor-textarea[data-v-aec2de53]:focus{border-color:var(--color-primary);outline:none}
