:root{--bg:#fbfbfa;--surface:#fff;--surface-subtle:#f4f4f2;--border:#e6e4e1;--text:#17161a;--text-muted:#6b6862;--accent:#4f46e5;--accent-contrast:#fff;--radius:14px;--radius-sm:8px;--wrap:68rem;--font-sans:system-ui, -apple-system, "Segoe UI", "Noto Sans CJK SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:ui-monospace, "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0d0d0f;--surface:#17171a;--surface-subtle:#1f1f23;--border:#2a2a2f;--text:#f4f4f2;--text-muted:#a1a1a8;--accent:#8b85f5;--accent-contrast:#101014;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}html.light{--bg:#fbfbfa;--surface:#fff;--surface-subtle:#f4f4f2;--border:#e6e4e1;--text:#17161a;--text-muted:#6b6862;--accent:#4f46e5;--accent-contrast:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html.dark{--bg:#0d0d0f;--surface:#17171a;--surface-subtle:#1f1f23;--border:#2a2a2f;--text:#f4f4f2;--text-muted:#a1a1a8;--accent:#8b85f5;--accent-contrast:#101014;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{min-height:100vh;font-family:var(--font-sans);color:var(--text);background-color:var(--bg);background-image:var(--bg-image,none);-webkit-font-smoothing:antialiased;background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;flex-direction:column;margin:0;font-size:16px;line-height:1.7;display:flex}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 1.5rem}.site-main{flex:1;padding-bottom:5rem}.site-header{z-index:10;border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(10px);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:1.5rem;height:4rem;display:flex}.brand{letter-spacing:-.01em;color:var(--text);font-size:1.0625rem;font-weight:650}.brand:hover{color:var(--accent);text-decoration:none}.site-nav{gap:1.5rem;display:flex}.site-nav a{color:var(--text-muted);font-size:.9375rem}.site-nav a:hover{color:var(--text);text-decoration:none}.site-footer{border-top:1px solid var(--border);padding:2rem 0;font-size:.875rem}.hero{padding:5.5rem 0 2rem}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 1rem;font-size:.8125rem;font-weight:600}.hero-title{letter-spacing:-.03em;max-width:20ch;margin:0 0 1.25rem;font-size:clamp(2.25rem,6vw,3.75rem);font-weight:700;line-height:1.12}.lede{color:var(--text-muted);max-width:46ch;margin:0 0 1.5rem;font-size:1.125rem}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:.625rem 1.25rem;font-size:.9375rem;font-weight:500;display:inline-block}.btn:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-primary:hover{color:var(--accent-contrast);filter:brightness(1.08)}.section{padding-top:3.5rem}.section-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.5rem;display:flex}.section-head h2,.group h2{letter-spacing:-.02em;margin:0;font-size:1.375rem}.more{color:var(--text-muted);font-size:.9375rem}.group{margin-bottom:3rem}.group h2{margin-bottom:1.25rem}.card-list{gap:1rem;display:grid}@media (width>=46rem){.card-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1.5rem;transition:border-color .15s,transform .15s}.card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));transform:translateY(-2px)}.card-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.card-title{letter-spacing:-.01em;color:var(--text);font-size:1.125rem;font-weight:600}.card-title:hover{color:var(--accent)}.card-meta{color:var(--text-muted);margin:.375rem 0 .75rem;font-size:.8125rem}.card-summary{color:var(--text-muted);margin:0 0 1rem;font-size:.9375rem}.tag-row{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.tag-row-lg{margin-bottom:2rem}.tag{border:1px solid var(--border);background:var(--surface-subtle);color:var(--text-muted);border-radius:999px;padding:.1875rem .625rem;font-size:.8125rem;display:inline-block}.tag:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}.tag-plain:hover{color:var(--text-muted);border-color:var(--border)}.badge{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);padding:.125rem .5rem;font-size:.75rem;font-weight:600}.page-header{padding:4rem 0 2rem}.page-header h1{letter-spacing:-.025em;margin:0 0 .75rem;font-size:clamp(1.875rem,4vw,2.5rem);line-height:1.15}.article .page-header{border-bottom:1px solid var(--border);margin-bottom:2rem;padding-bottom:1.5rem}.prose{max-width:42rem;font-size:1.0625rem}.prose h2{letter-spacing:-.02em;margin:2.5rem 0 1rem;font-size:1.5rem}.prose h3{margin:2rem 0 .75rem;font-size:1.1875rem}.prose p{margin:0 0 1.25rem}.prose ul,.prose ol{margin:0 0 1.25rem;padding-left:1.5rem}.prose li{margin-bottom:.375rem}.prose blockquote{border-left:3px solid var(--accent);color:var(--text-muted);margin:0 0 1.25rem;padding:.25rem 0 .25rem 1.25rem}.prose code{background:var(--surface-subtle);font-family:var(--font-mono);border-radius:5px;padding:.125rem .375rem;font-size:.875em}.prose pre{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-subtle);margin:0 0 1.5rem;padding:1.25rem;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose table{border-collapse:collapse;width:100%;margin:0 0 1.5rem;font-size:.9375rem}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:.5rem .75rem}.prose th{background:var(--surface-subtle);font-weight:600}.prose img{border-radius:var(--radius-sm);max-width:100%;height:auto}.muted{color:var(--text-muted)}.error{color:#c2410c}html.dark .error{color:#fb923c}.back{margin-top:2.5rem}.header-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:1.25rem;display:flex}.segmented{border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.segmented-btn{background:var(--surface);color:var(--text-muted);font:inherit;cursor:pointer;white-space:nowrap;border:0;padding:.3125rem .625rem;font-size:.8125rem}.segmented-btn:hover{color:var(--text)}.segmented-btn.active{background:var(--accent);color:var(--accent-contrast)}.settings{gap:1.5rem;max-width:46rem;display:grid}.setting{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1.5rem}.setting h2{margin:0 0 .5rem;font-size:1.125rem}.setting .muted{margin:0 0 1rem;font-size:.9375rem}.field-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.text-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);min-width:0;color:var(--text);font:inherit;flex:18rem;padding:.5rem .75rem;font-size:.9375rem}.text-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.color-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;width:3rem;height:2.375rem;padding:.125rem}button.btn{font:inherit;cursor:pointer}.notice{min-height:1.5rem;color:var(--text-muted);margin:0;font-size:.9375rem}@media (width<=44rem){.site-nav{gap:1rem}.header-inner{height:auto;padding:.75rem 0}}.user-menu{align-items:center;gap:.875rem;font-size:.9375rem;display:flex}.user-menu a{color:var(--text-muted)}.user-menu a:hover{color:var(--text);text-decoration:none}.user-name{font-weight:500;color:var(--text)!important}.link-button{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:.9375rem}.link-button:hover{color:var(--text);text-decoration:underline}.auth-form{gap:1rem;max-width:24rem;display:grid}.field{gap:.375rem;display:grid}.field>span{font-size:.9375rem;font-weight:500}.field input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;padding:.5rem .75rem;font-size:.9375rem}.field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.field small{font-size:.8125rem}.auth-form .btn{justify-self:start}.auth-alt{margin-top:1.5rem;font-size:.9375rem}button:disabled{opacity:.6;cursor:progress}.upload-row{border-top:1px dashed var(--border);margin-top:.875rem;padding-top:.875rem}input[type=file]{min-width:0;font:inherit;color:var(--text-muted);flex:18rem;font-size:.875rem}input[type=file]::file-selector-button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--text);font:inherit;cursor:pointer;margin-right:.75rem;padding:.375rem .75rem;font-size:.875rem}.comments,.reviews{border-top:1px solid var(--border);max-width:42rem;margin-top:4rem;padding-top:2rem}.comments h2,.reviews h2{margin:0 0 1.5rem;font-size:1.25rem}.comment-list,.review-list{gap:1rem;display:grid}.comment,.review{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1rem 1.25rem}.comment-replies{border-left:2px solid var(--border);gap:.875rem;margin-top:.875rem;padding-left:1rem;display:grid}.comment-meta,.review-meta{align-items:center;gap:.75rem;margin:0 0 .5rem;font-size:.875rem;display:flex}.comment-author{color:var(--text);font-weight:600}.comment-time{color:var(--text-muted);font-size:.8125rem}.comment-body{font-size:1rem}.comment-body>:last-child{margin-bottom:0}.comment-form{justify-items:start;gap:.75rem;margin-top:1.5rem;display:grid}.comment-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);font:inherit;resize:vertical;padding:.625rem .75rem;font-size:.9375rem}.comment-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.reply-hint{align-items:center;gap:.5rem;margin:0;font-size:.875rem;display:flex}.review-summary{align-items:baseline;gap:.5rem;margin:0 0 1.25rem;font-size:1.125rem;display:flex}.stars{color:var(--accent);letter-spacing:.08em}.review-body{white-space:pre-wrap;margin:0}.review-reply{border-radius:var(--radius-sm);background:var(--surface-subtle);margin-top:.75rem;padding:.625rem .875rem;font-size:.9375rem}.review-reply strong{color:var(--accent)}.review-meta strong{color:var(--text)}.admin-nav{border:1px solid var(--border);background:var(--surface-subtle);border-radius:999px;flex-wrap:wrap;gap:.25rem;width:fit-content;max-width:100%;margin-bottom:2rem;padding:.25rem;display:flex}.admin-nav a{color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:.4375rem 1rem;font-size:.9375rem;text-decoration:none}.admin-nav a:hover{color:var(--text);text-decoration:none}.admin-nav a.active{background:var(--surface);color:var(--accent);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.08)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1rem;display:grid}.stat{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);gap:.25rem;padding:1.25rem 1.25rem 1.25rem 1.5rem;transition:transform .15s,box-shadow .15s,border-color .15s;display:grid;position:relative;overflow:hidden}.stat:before{content:"";background:var(--accent);opacity:.75;width:4px;position:absolute;inset:0 auto 0 0}.stat:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));text-decoration:none;transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.07)}.stat-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.875rem;font-weight:700;line-height:1.1}.stat-label{color:var(--text-muted);font-size:.875rem}.admin-list{gap:.75rem;display:grid}.admin-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"meta actions""body actions";align-items:center;gap:.5rem 1rem;padding:.875rem 1.125rem;transition:border-color .15s,box-shadow .15s;display:grid}.admin-row:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));box-shadow:0 6px 18px rgba(0,0,0,.05)}.admin-meta{flex-wrap:wrap;grid-area:meta;align-items:center;gap:.625rem;margin:0;font-size:.875rem;display:flex}.admin-body{white-space:pre-wrap;grid-area:body;margin:0}.admin-actions{flex-wrap:wrap;grid-area:actions;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.admin-image{font-family:var(--font-mono);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:26rem;font-size:.75rem;overflow:hidden}.admin-quick{margin-top:2rem}.admin-section-title{color:var(--text-muted);margin:0 0 .75rem;font-size:.9375rem;font-weight:600}.notice+.field-row{margin-bottom:1.25rem}@media (width<=720px){.admin-row{grid-template-columns:1fr;grid-template-areas:"meta""body""actions"}.admin-actions{justify-content:flex-start}.admin-image{max-width:100%}}.status{border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--text-muted);padding:.125rem .5rem;font-size:.75rem;font-weight:600}.status-pending{color:#92400e;background:#fef3c7}.status-approved{color:#065f46;background:#d1fae5}.status-rejected,.status-banned{color:#991b1b;background:#fee2e2}.status-active{color:#1e40af;background:#dbeafe}.status-running,.status-healthy{color:#166534;background:#dcfce7}.status-exited,.status-unhealthy{color:#991b1b;background:#fee2e2}.status-role-admin{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent)}html.dark .status-pending{color:#fcd34d;background:#422006}html.dark .status-approved{color:#6ee7b7;background:#052e2b}html.dark .status-rejected,html.dark .status-banned{color:#fca5a5;background:#450a0a}html.dark .status-active{color:#93c5fd;background:#172554}html.dark .status-running,html.dark .status-healthy{color:#86efac;background:#052e16}html.dark .status-exited,html.dark .status-unhealthy{color:#fca5a5;background:#450a0a}.btn-small{padding:.3125rem .75rem;font-size:.875rem}.btn-danger{color:#b91c1c;border-color:color-mix(in srgb, #b91c1c 35%, var(--border))}.btn-danger:hover{color:#fff;background:#b91c1c;border-color:#b91c1c}html.dark .btn-danger{color:#fca5a5}html.dark .btn-danger:hover{color:#fff;background:#b91c1c}.btn.active{border-color:var(--accent);color:var(--accent)}.admin-row .field{margin-bottom:.875rem}.sky-list{gap:2.5rem;display:grid}.sky-item{border-bottom:1px solid var(--border);padding-bottom:2rem}.sky-item:last-child{border-bottom:0;padding-bottom:0}.sky-item h2{letter-spacing:-.02em;margin:0 0 .25rem;font-size:1.375rem}.sky-cover{border-radius:var(--radius);width:100%;max-width:32rem;margin:1rem 0;display:block}.author{color:var(--text-muted)}.author a{color:var(--text-muted);text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:2px}.author a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.page-updated{margin-top:2.5rem;font-size:.875rem}.toggle-list{gap:.625rem;margin-bottom:1.25rem;display:grid}.toggle-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;align-items:center;gap:.875rem;padding:.75rem 1rem;display:flex}.toggle-row:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.toggle-row input[type=checkbox]{width:1.125rem;height:1.125rem;accent-color:var(--accent);flex:none}.toggle-text{gap:.125rem;display:grid}.toggle-text small{color:var(--text-muted);font-size:.8125rem}.channel-list{gap:1rem;margin-bottom:1rem;display:grid}.channel-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:1rem 1.25rem}.channel-head{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.875rem;display:flex}.channel-name{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-width:0;color:var(--text);font:inherit;flex:14rem;padding:.5rem .75rem;font-size:.9375rem;font-weight:600}.channel-toggle{cursor:pointer;align-items:center;gap:.375rem;font-size:.875rem;display:flex}.channel-toggle input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent)}.channel-card .field-row{align-items:end}.field-grow{flex:20rem;min-width:0}.field-grow input{width:100%}.field-inline{align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.field-inline input[type=number]{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:6rem;color:var(--text);font:inherit;padding:.5rem .75rem;font-size:.9375rem}.field-inline input[type=number]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.channel-card select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;padding:.5rem .75rem;font-size:.9375rem}.admin-subsection-title{color:var(--text-muted);margin:1.5rem 0 .5rem;font-size:.875rem;font-weight:600}.sync-status{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--text-muted);white-space:pre-wrap;word-break:break-all;max-height:12rem;margin:0;padding:.75rem 1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem;line-height:1.6;overflow-y:auto}