@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Manrope:wght@300;400;500;600;700&family=Source+Serif+4:wght@400;600&family=ZCOOL+XiaoWei&display=swap";:root{color-scheme:light;--bg: #f6f8f5;--surface: #ffffff;--surface-2: #f1f5f0;--border: #dde6dd;--text: #1f2a24;--muted: #5d6c62;--accent: #3f7f6a;--accent-soft: #9bc8b3;--danger: #b96464;--shadow: 0 14px 34px rgba(28, 46, 36, .08);--font-sans: "Manrope", "Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-display: "Source Serif 4", "Noto Serif SC", serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius: 18px}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);background-color:var(--bg);background-image:var(--app-bg-image);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed;background-blend-mode:normal;color:var(--text)}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{background:#ffffffc7;border-right:1px solid var(--border);padding:24px 20px;display:flex;flex-direction:column;gap:24px;position:sticky;top:0;height:100vh}.brand{font-family:"ZCOOL XiaoWei",var(--font-display);font-size:40px;font-weight:500;letter-spacing:1px;line-height:1.1}.brand a{display:inline-flex;align-items:center;gap:10px}.sidebar-nav{display:flex;flex-direction:column;gap:8px}.sidebar-nav a{padding:10px 12px;border-radius:12px;color:var(--muted);font-weight:500;transition:background .2s ease,color .2s ease}.sidebar-nav a.active{color:var(--text);background:var(--surface-2);border:1px solid var(--border)}.sidebar-actions a{padding:10px 12px;border-radius:12px;color:var(--muted);font-weight:500;border:1px solid transparent;transition:background .2s ease,color .2s ease,border-color .2s ease}.sidebar-actions a.active{color:var(--text);background:var(--surface-2);border-color:var(--border)}.sidebar-actions{margin-top:auto;display:grid;gap:10px}.main{padding:28px 32px}.main-inner{max-width:1180px;margin:0 auto}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--surface-2)}.auth-card{width:min(520px,100%);display:grid;gap:16px}.auth-brand{font-family:"ZCOOL XiaoWei",var(--font-display);font-size:52px;font-weight:500;letter-spacing:1.6px;line-height:1.1;color:var(--text);display:inline-flex;align-items:center;gap:12px}.brand-logo{width:42px;height:42px;color:var(--accent);display:inline-flex}.brand-logo svg{width:100%;height:100%}.brand-text{display:inline-block}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:10px 14px;border-radius:12px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.btn:hover{border-color:var(--accent-soft);box-shadow:0 8px 20px #1e362914;transform:translateY(-1px)}.btn.primary{border-color:transparent;background:var(--accent);color:#f7f9f6}.btn.danger:hover{color:var(--danger)}.btn.ghost{background:transparent;border:1px dashed var(--border)}.card{border:1px solid var(--border);background:#ffffffc7;border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}@media (max-width: 980px){.grid{grid-template-columns:1fr}}.title{font-family:var(--font-display);font-weight:600;margin-bottom:10px}.title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.link{color:var(--accent);font-weight:600}.muted{color:var(--muted);font-size:13px}.sep{height:1px;background:var(--border);margin:16px 0}.form{display:grid;gap:10px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.grow{flex:1}.label>div{font-size:13px;color:var(--muted);margin-bottom:6px}.input{width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.input:focus{border-color:var(--accent-soft);box-shadow:0 0 0 3px #6391782e}.textarea{min-height:140px;font-family:var(--font-mono);font-size:12px;line-height:1.4;white-space:pre}.code{font-family:var(--font-mono);font-size:12px;line-height:1.4;white-space:pre-wrap;word-break:break-word;border:1px solid var(--border);background:var(--surface-2);padding:10px;border-radius:12px}.list{display:grid;gap:10px}.item{border:1px solid var(--border);background:#f1f5f0b3;border-radius:14px;padding:12px}.badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--muted);margin-right:6px;margin-top:4px}.badge.ok{color:#2d6a4f;border-color:#2d6a4f4d}.badge.warn{color:#7a6b2f;border-color:#7a6b2f4d}.badge.err{color:var(--danger);border-color:#b9646459}.doc{display:grid;gap:6px}.doc-index{display:flex;flex-wrap:wrap;gap:10px}.doc-index a{padding:6px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);font-size:12px;transition:border-color .2s ease,color .2s ease}.doc-index a:hover{border-color:var(--accent-soft);color:var(--accent)}.highlight{color:#c23b3b;font-weight:600}@media (max-width: 960px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:none;border-bottom:1px solid var(--border)}.sidebar-nav{flex-direction:row;flex-wrap:wrap}.main{padding:24px}}
