:root{--bg-page: #f3f7fc;--bg-page-2: #eaf2fd;--bg-card: #ffffff;--bg-soft: #edf3fa;--bg-subtle: #f7faff;--bg-elevated: #ffffff;--text-primary: #162033;--text-secondary: #536278;--text-muted: #8794a8;--border-light: rgba(5, 15, 30, .08);--border-medium: rgba(5, 15, 30, .14);--primary: #1677ff;--primary-dark: #0958d9;--primary-light: #4096ff;--primary-bg: rgba(22, 119, 255, .08);--primary-soft: #e6f4ff;--success: #16a34a;--success-bg: #eafaf0;--warning: #d97706;--warning-bg: #fff7e6;--danger: #dc2626;--danger-bg: #fef2f2;--purple: #7c3aed;--purple-bg: #f3f0ff;--radius-sm: 7px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(20, 72, 128, .05);--shadow-md: 0 4px 14px rgba(20, 72, 128, .07);--shadow-lg: 0 12px 32px rgba(20, 72, 128, .1);--shadow-primary: 0 6px 16px rgba(22, 119, 255, .24);--sidebar-bg: #ffffff;--sidebar-text: #536278;--sidebar-active-bg: #e8f2ff;--sidebar-active-text: #0958d9;--sidebar-hover: #f2f7ff;--topbar-bg: rgba(255, 255, 255, .82);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace}[data-theme=dark]{--bg-page: #0f1117;--bg-page-2: #0b0d12;--bg-card: #171a23;--bg-soft: #12151d;--bg-subtle: #1a1e29;--bg-elevated: #202532;--text-primary: #f3f4f6;--text-secondary: #c4c9d4;--text-muted: #8f98aa;--border-light: rgba(255, 255, 255, .08);--border-medium: rgba(255, 255, 255, .14);--primary: #4096ff;--primary-dark: #1677ff;--primary-light: #69b1ff;--primary-bg: rgba(64, 150, 255, .13);--primary-soft: rgba(64, 150, 255, .16);--success: #4ade80;--success-bg: rgba(74, 222, 128, .12);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .12);--danger: #f87171;--danger-bg: rgba(248, 113, 113, .12);--purple: #a78bfa;--purple-bg: rgba(167, 139, 250, .14);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .24);--shadow-md: 0 4px 14px rgba(0, 0, 0, .3);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .4);--sidebar-bg: #14161e;--sidebar-text: #a7b0c0;--sidebar-active-bg: rgba(64, 150, 255, .14);--sidebar-active-text: #69b1ff;--sidebar-hover: rgba(255, 255, 255, .04);--topbar-bg: rgba(20, 22, 30, .82)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);background:var(--bg-page);color:var(--text-primary);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}button{font-family:inherit}::selection{background:#1677ff33}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#788caa4d;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#788caa80}::-webkit-scrollbar-track{background:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 16px;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);font-size:13.5px;font-weight:500;cursor:pointer;transition:all .18s ease;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:hover{border-color:var(--primary);color:var(--primary)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{border:none;background:linear-gradient(135deg,#3b8cff,#1677ff 55%,#0958d9);color:#fff;box-shadow:var(--shadow-primary)}.btn-primary:hover{color:#fff;filter:brightness(1.05);box-shadow:0 8px 22px #1677ff57}.btn-soft{border:none;background:var(--primary-bg);color:var(--primary)}.btn-soft:hover{background:var(--primary-soft);color:var(--primary-dark)}.btn-ghost{border-color:transparent;background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-soft);color:var(--text-primary)}.btn-danger{border-color:transparent;background:var(--danger-bg);color:var(--danger)}.btn-danger:hover{border-color:transparent;color:var(--danger);background:#dc262624}.btn-lg{height:46px;padding:0 24px;font-size:15px;border-radius:var(--radius-md)}.btn-sm{height:31px;padding:0 11px;font-size:12.5px}.btn-block{width:100%}.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .16s}.icon-btn:hover{background:var(--bg-soft);color:var(--text-primary)}.icon-btn .dot{position:absolute;top:8px;right:9px;width:6px;height:6px;border-radius:50%;background:#ef4444;border:1.5px solid var(--bg-card)}.card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:20px 22px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 22px;border-bottom:1px solid var(--border-light)}.card-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--text-primary)}.card-title small{font-size:12px;font-weight:400;color:var(--text-muted)}.card-body{padding:20px 22px}.card-actions{display:flex;align-items:center;gap:8px}.badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:6px;background:var(--bg-soft);color:var(--text-secondary);font-size:11.5px;font-weight:500;white-space:nowrap}.badge-primary{background:var(--primary-bg);color:var(--primary)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-purple{background:var(--purple-bg);color:var(--purple)}.badge-dot:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.chip{display:inline-flex;align-items:center;height:32px;padding:0 14px;border:1px solid var(--border-light);border-radius:8px;background:var(--bg-card);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .16s;white-space:nowrap}.chip:hover{border-color:var(--primary);color:var(--primary)}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 12px #1677ff33}.form-field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.form-field>label{font-size:13px;font-weight:500;color:var(--text-secondary)}.form-field .hint{font-size:12px;color:var(--text-muted)}.input,.select,.textarea{width:100%;height:40px;padding:0 13px;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);font-size:13.5px;font-family:inherit;outline:none;transition:border-color .16s,box-shadow .16s}.textarea{height:auto;min-height:96px;padding:10px 13px;resize:vertical;line-height:1.6}.input::placeholder,.textarea::placeholder{color:var(--text-muted)}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg)}.input-wrap{position:relative}.input-wrap .input{padding-left:38px}.input-wrap>svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;padding:10px 16px;font-size:12px;font-weight:500;color:var(--text-muted);background:var(--bg-subtle);border-bottom:1px solid var(--border-light);white-space:nowrap}.table td{padding:12px 16px;border-bottom:1px solid var(--border-light);font-size:13px;color:var(--text-secondary);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--bg-subtle)}.table .strong{color:var(--text-primary);font-weight:500}.tabs{display:flex;gap:4px;padding:4px;background:var(--bg-soft);border-radius:9px}.tab{height:32px;padding:0 14px;border:none;border-radius:7px;background:transparent;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .16s}.tab.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm);font-weight:500}.mono{font-family:var(--mono)}.muted{color:var(--text-muted)}.secondary{color:var(--text-secondary)}.strong{font-weight:600}.row{display:flex;align-items:center;gap:10px}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.wrap{flex-wrap:wrap}.spacer{flex:1}.empty{padding:40px 20px;text-align:center;color:var(--text-muted);font-size:13px}.empty .empty-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin:0 auto 10px;border-radius:14px;background:var(--bg-soft);color:var(--text-muted)}.divider{height:1px;background:var(--border-light);margin:16px 0}.code-block{position:relative;padding:14px 16px;border-radius:var(--radius-md);background:#0f172a;color:#dbeafe;font-family:var(--mono);font-size:12.5px;line-height:1.75;overflow-x:auto;white-space:pre}.code-block .token-key{color:#93c5fd}.code-block .token-str{color:#86efac}.code-block .token-com{color:#64748b}.copy-mini{position:absolute;top:9px;right:9px;display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border:1px solid rgba(255,255,255,.14);border-radius:5px;background:#ffffff0f;color:#cbd5e1;font-size:11px;cursor:pointer}.copy-mini:hover{background:#ffffff1f}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;display:flex;flex-direction:column;width:230px;background:var(--sidebar-bg);border-right:1px solid var(--border-light);transition:transform .25s ease}.sidebar-brand{display:flex;align-items:center;gap:10px;height:68px;padding:0 20px;cursor:pointer}.brand-mark{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,#4c9bff,#0958d9);color:#fff;box-shadow:0 5px 14px #1677ff4d}.brand-mark svg{width:23px;height:23px}.brand-text{display:flex;flex-direction:column;line-height:1.25}.brand-text strong{font-size:15px;letter-spacing:.3px}.brand-text span{font-size:9px;letter-spacing:2px;color:var(--text-muted)}.sidebar-nav{flex:1;overflow-y:auto;padding:6px 12px 12px}.nav-group{margin-top:14px}.nav-title{padding:0 10px 7px;font-size:11px;color:var(--text-muted);letter-spacing:.6px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;height:38px;padding:0 10px;border:none;border-radius:8px;background:transparent;color:var(--sidebar-text);font-size:13.5px;text-align:left;cursor:pointer;transition:all .16s;margin-bottom:2px}.nav-item svg{flex-shrink:0;opacity:.85}.nav-item span{flex:1}.nav-item:hover{background:var(--sidebar-hover);color:var(--text-primary)}.nav-item.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);font-weight:600}.nav-item.active svg{opacity:1}.nav-badge{font-style:normal;font-size:9px;font-weight:700;letter-spacing:.4px;padding:1px 5px;border-radius:4px;background:var(--primary-bg);color:var(--primary)}.sidebar-foot{padding:12px}.support-card{display:grid;grid-template-columns:32px 1fr;gap:9px;padding:13px;border-radius:11px;background:linear-gradient(150deg,var(--primary-soft),var(--bg-subtle));border:1px solid var(--border-light)}.support-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:var(--bg-card);color:var(--primary);box-shadow:var(--shadow-sm)}.support-card strong{display:block;font-size:12.5px}.support-card p{margin:2px 0 9px;font-size:11px;color:var(--text-muted);line-height:1.5}.support-btn{grid-column:1 / -1;height:30px;border:none;border-radius:7px;background:var(--primary);color:#fff;font-size:12px;cursor:pointer}.sidebar-version{padding:12px 4px 0;text-align:center;font-size:10.5px;color:var(--text-muted)}.main-wrap{flex:1;min-width:0;margin-left:230px}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px;padding:0 26px;background:var(--topbar-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border-light)}.topbar-left{display:flex;align-items:center;gap:10px;min-width:0}.menu-btn{display:none}.crumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted)}.crumb svg{transform:rotate(-90deg);opacity:.6}.crumb strong{color:var(--text-primary);font-weight:600;font-size:14px}.topbar-right{display:flex;align-items:center;gap:4px}.topbar-search{display:flex;align-items:center;gap:7px;width:220px;height:34px;padding:0 10px;margin-right:8px;border:1px solid var(--border-light);border-radius:8px;background:var(--bg-subtle);color:var(--text-muted)}.topbar-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--text-primary);font-size:12.5px}.topbar-search kbd{padding:1px 5px;border:1px solid var(--border-medium);border-radius:4px;font-size:10px;background:var(--bg-card)}.user-chip{position:relative;display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;margin-left:6px;border-radius:9px;cursor:pointer}.user-chip:hover{background:var(--bg-soft)}.avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,#60a5fa,#2563eb);color:#fff;font-size:13px;font-weight:700}.user-meta{display:flex;flex-direction:column;line-height:1.25}.user-meta strong{font-size:12.5px}.user-meta span{font-size:10.5px;color:var(--text-muted)}.user-chip>svg{color:var(--text-muted)}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:166px;padding:6px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:10px;box-shadow:var(--shadow-lg)}.user-dropdown button{display:flex;align-items:center;gap:9px;width:100%;height:34px;padding:0 10px;border:none;border-radius:7px;background:transparent;color:var(--text-secondary);font-size:12.5px;cursor:pointer}.user-dropdown button:hover{background:var(--bg-soft);color:var(--text-primary)}.user-dropdown button.danger{color:var(--danger)}.page-content{max-width:1440px;margin:0 auto;padding:24px 28px 48px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head h1{margin:0;font-size:23px;letter-spacing:-.3px}.page-head p{margin:5px 0 0;color:var(--text-muted);font-size:13px}.page-head .actions{display:flex;gap:9px;flex-wrap:wrap}.section-title{display:flex;align-items:center;justify-content:space-between;margin:26px 0 13px}.section-title h2{margin:0;font-size:16px}.section-title a{font-size:12.5px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:#0a142875;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:100%;max-width:460px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:16px;box-shadow:var(--shadow-lg);animation:modalIn .2s ease}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border-light)}.modal-head strong{font-size:15px}.modal-body{padding:20px 22px}.modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:15px 22px;border-top:1px solid var(--border-light)}@keyframes modalIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.modal-enter-active,.modal-leave-active{transition:opacity .18s}.modal-enter-from,.modal-leave-to{opacity:0}.toast-host{position:fixed;top:18px;right:18px;z-index:200;display:flex;flex-direction:column;gap:8px}.toast-item{display:flex;align-items:center;gap:8px;min-width:190px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:9px;box-shadow:var(--shadow-lg);font-size:13px}.toast-success svg{color:var(--success)}.toast-error svg{color:var(--danger)}.toast-info svg{color:var(--primary)}.toast-enter-active,.toast-leave-active{transition:all .22s ease}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(20px)}.skeleton{position:relative;overflow:hidden;background:var(--bg-soft);border-radius:6px}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:shimmer 1.3s infinite}@keyframes shimmer{to{transform:translate(100%)}}@media(max-width:960px){.sidebar{transform:translate(-100%);box-shadow:var(--shadow-lg)}.sidebar.open{transform:none}.sidebar-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;background:#0a142866}.main-wrap{margin-left:0}.menu-btn{display:inline-flex}.topbar{padding:0 16px}.topbar-search,.user-meta{display:none}.page-content{padding:18px 16px 40px}}@media(max-width:560px){.page-head h1{font-size:20px}.topbar-right .icon-btn:first-of-type{display:none}.crumb>span,.crumb>svg{display:none}}
