:root{--bg:#060912;--bg-2:#0a1020;--glass:rgba(18,26,48,.55);--glass-brd:rgba(94,140,255,.22);--text:#e8edff;--muted:#7e8bb5;--accent:#4fd1ff;--accent-2:#7c5cff;--danger:#ff5b7a;--ok:#36e0a4;--glow:0 0 24px rgba(79,209,255,.25)}html[data-mode=light]{--bg:#eef2fb;--bg-2:#f7f9ff;--glass:hsla(0,0%,100%,.72);--glass-brd:rgba(94,140,255,.3);--text:#1a2440;--muted:#5f6c94;--accent:#0e8fc7;--accent-2:#6a4df0;--danger:#e03455;--ok:#0da678;--glow:0 0 20px rgba(14,143,199,.18)}html[data-mode=light] body{background:radial-gradient(1200px 600px at 15% -10%,rgba(124,92,255,.1),transparent 60%),radial-gradient(1000px 500px at 100% 0,rgba(79,209,255,.12),transparent 55%),linear-gradient(180deg,var(--bg-2),var(--bg))}html[data-mode=light] .btn-primary{color:#fff}html[data-mode=light] input,html[data-mode=light] select,html[data-mode=light] textarea{background:#ffffffd9}html[data-mode=light] .btn-ghost{background:#fff9}html[data-mode=light] .toast{background:#fffffff2}html[data-mode=light] .spin{border-color:#1a2440 rgba(26,36,64,.3) rgba(26,36,64,.3)}html[data-mode=light] .model-list{background:#fff9}*{box-sizing:border-box}body{background:radial-gradient(1200px 600px at 15% -10%,rgba(124,92,255,.18),transparent 60%),radial-gradient(1000px 500px at 100% 0,rgba(79,209,255,.15),transparent 55%),linear-gradient(180deg,var(--bg-2),var(--bg));color:var(--text);font-family:Segoe UI,PingFang SC,Microsoft YaHei,system-ui,sans-serif;margin:0;min-height:100vh}button{border:none;border-radius:10px;cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;letter-spacing:.3px;padding:9px 18px;transition:all .18s ease}button:disabled{cursor:not-allowed;opacity:.45}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:var(--glow);color:#04111f}.btn-primary:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.btn-ghost{background:#ffffff08;border:1px solid var(--glass-brd);color:var(--muted)}.btn-ghost:hover{border-color:var(--accent);box-shadow:var(--glow);color:var(--text)}a.btn-ghost,a.btn-primary{align-items:center;border-radius:10px;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:600;justify-content:center;letter-spacing:.3px;padding:9px 18px;text-decoration:none;transition:all .18s ease;white-space:nowrap}.btn-danger{background:#ff5b7a14;border:1px solid rgba(255,91,122,.4);color:var(--danger)}.btn-danger:hover{background:#ff5b7a2e}input,select,textarea{background:#060b19b3;border:1px solid var(--glass-brd);border-radius:10px;color:var(--text);font-family:inherit;font-size:14px;outline:none;padding:11px 13px;transition:all .15s;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--glow)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}label{color:var(--muted);display:block;font-size:12.5px;letter-spacing:.4px;margin:14px 0 7px}.label-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.label-row label{margin-bottom:7px}.ai-hint{color:#f59e0b;font-size:12px;line-height:1.5;margin:0 0 8px}.btn-mini{background:transparent;border:1px solid var(--glass-brd);border-radius:8px;color:var(--accent);font-size:12px;padding:5px 12px;white-space:nowrap}.btn-mini:hover:not(:disabled){border-color:var(--accent);box-shadow:var(--glow)}.btn-mini:disabled{cursor:not-allowed;opacity:.5}.container{margin:0 auto;max-width:1180px;padding:30px 22px 80px}.topbar{flex-wrap:wrap;gap:14px;justify-content:space-between;margin-bottom:28px}.brand,.topbar{align-items:center;display:flex}.brand{gap:12px}.brand .logo{background:linear-gradient(135deg,var(--accent),var(--accent-2));border-radius:11px;box-shadow:var(--glow);height:38px;position:relative;width:38px}.brand .logo:after{border-color:transparent transparent rgba(4,17,31,.85) rgba(4,17,31,.85);border-radius:50%;border-style:solid;border-width:2px;content:"";inset:9px;position:absolute}.topbar h1{font-size:21px;font-weight:700;letter-spacing:.5px;margin:0}.topbar .sub{color:var(--muted);font-size:12px}.grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(310px,1fr))}.card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:var(--glass);border:1px solid var(--glass-brd);border-radius:16px;overflow:hidden;padding:20px;position:relative;transition:all .2s ease}.card:before{background:linear-gradient(90deg,transparent,var(--accent),var(--accent-2),transparent);content:"";height:2px;left:0;opacity:.6;position:absolute;right:0;top:0}.card:hover{border-color:#4fd1ff66;box-shadow:0 12px 40px #4fd1ff1f;transform:translateY(-3px)}.card-head{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:14px}.card-head .name{font-size:17px;font-weight:700}.card-desc{color:var(--muted);display:-webkit-box;font-size:12.5px;-webkit-line-clamp:2;line-clamp:2;line-height:1.6;margin:-6px 0 12px;-webkit-box-orient:vertical;overflow:hidden}.badge{border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.4px;padding:4px 11px}.badge.active{background:#36e0a424;border:1px solid rgba(54,224,164,.35);color:var(--ok)}.badge.inactive{background:#7e8bb51f;border:1px solid rgba(126,139,181,.3);color:var(--muted)}.field{display:flex;font-size:13px;gap:8px;margin:8px 0}.field .k{color:var(--muted);min-width:52px;white-space:nowrap}.field .v{color:var(--text);word-break:break-all}.field .v.mono{color:var(--accent);font-family:SFMono-Regular,Consolas,monospace}a.v.mono{text-decoration:none}a.v.mono:hover{text-decoration:underline}.keyid-chip{align-items:center;background:#4fd1ff14;border:1px solid rgba(79,209,255,.25);border-radius:8px;color:var(--accent);display:inline-flex;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;gap:6px;padding:3px 9px}.card-actions{display:flex;flex-wrap:nowrap;gap:9px;margin-top:16px}.card-actions .btn-danger,.card-actions .btn-ghost,.card-actions .btn-primary{flex:0 0 auto;white-space:nowrap}.modal-mask{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#03060eb3;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:100}.modal{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--glass);border:1px solid var(--glass-brd);border-radius:18px;box-shadow:0 20px 60px #00000080;max-height:90vh;max-width:500px;overflow-y:auto;padding:26px;width:100%}.modal h2{font-size:19px;margin:0 0 6px}.modal .hint{color:var(--muted);font-size:12.5px;margin:0 0 4px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}.model-list{background:#080c1966;border:1px solid var(--glass-brd);border-radius:10px;margin:4px 0 8px;max-height:200px;overflow-y:auto;padding:6px}.model-item{align-items:center;border-radius:8px;cursor:pointer;display:flex;font-size:13px;gap:8px;padding:6px 8px}.model-item:hover{background:#5e8cff1f}.model-item input[type=radio]{accent-color:var(--accent)}.model-item .pick{color:var(--ok);font-size:11px;margin-left:auto}.add-model{display:flex;gap:8px;margin-top:4px}.add-model input{flex:1}.empty{border:1px dashed var(--glass-brd);border-radius:16px;color:var(--muted);padding:70px 0;text-align:center}.login-box{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--glass);border:1px solid var(--glass-brd);border-radius:18px;box-shadow:0 20px 60px #00000080;margin:90px auto;max-width:380px;padding:32px}.login-box h2{margin:0 0 6px}.login-box p{color:var(--muted);font-size:13px;margin:0 0 18px}.err{color:var(--danger);font-size:13px;margin-top:12px}.toast{background:#121a30f2;border:1px solid var(--glass-brd);border-radius:12px;bottom:26px;box-shadow:var(--glow);font-size:14px;left:50%;padding:11px 20px;position:fixed;transform:translate(-50%);z-index:200}.spin{animation:sp .7s linear infinite;border:2px solid rgba(4,17,31,.4);border-radius:50%;border-top-color:#04111f;display:inline-block;height:14px;margin-right:6px;vertical-align:-2px;width:14px}@keyframes sp{to{transform:rotate(1turn)}}.model-tag{background:#7c5cff1f;border:1px solid rgba(124,92,255,.3);border-radius:7px;color:#b9aaff;display:inline-block;font-size:11.5px;margin:3px 4px 0 0;padding:2px 9px}.mini{background:#4fd1ff1f;border:1px solid rgba(79,209,255,.3);color:var(--accent);font-size:11px;padding:3px 9px}.mini:hover{background:#4fd1ff33}.theme-btn{align-items:center;display:inline-flex;gap:7px}.theme-dot{border-radius:4px;box-shadow:var(--glow);display:inline-block;height:14px;width:14px}.theme-panel{align-items:flex-start;background:#03060e59;display:flex;inset:0;justify-content:flex-end;position:fixed;z-index:150}.theme-pop{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--glass);border:1px solid var(--glass-brd);border-radius:16px;box-shadow:0 20px 60px #00000080;margin:76px 22px;padding:20px;width:300px}.theme-pop-head{align-items:center;display:flex;font-size:15px;font-weight:700;justify-content:space-between;margin-bottom:6px}.theme-pop-head .x{background:transparent;color:var(--muted);font-size:16px;padding:2px 8px}.theme-pop-head .x:hover{color:var(--text)}.theme-pop label{color:var(--muted);display:block;font-size:12.5px;margin:14px 0 8px}.swatches{display:grid;gap:9px;grid-template-columns:repeat(3,1fr)}.swatch{align-items:flex-end;border:1px solid hsla(0,0%,100%,.08);border-radius:10px;display:flex;height:46px;justify-content:center;overflow:hidden;padding:0;position:relative;transition:transform .15s}.swatch:hover{transform:translateY(-2px)}.swatch-name{background:#00000059;color:#fffffff2;font-size:11px;padding:3px 0;text-align:center;width:100%}.custom-row{align-items:center;display:flex;gap:8px}.color-input{background:transparent;border:1px solid var(--glass-brd);cursor:pointer;flex:0 0 auto;height:38px;padding:3px;width:42px}.color-hex{flex:1;font-family:SFMono-Regular,Consolas,monospace;text-transform:uppercase}.reset-theme{margin-top:14px;width:100%}.theme-fade-enter-active,.theme-fade-leave-active{transition:opacity .2s}.theme-fade-enter-from,.theme-fade-leave-to{opacity:0}.bg-list{display:flex;flex-direction:column;gap:9px}.bg-item{align-items:center;background:#ffffff08;border:1px solid var(--glass-brd);border-radius:10px;color:var(--text);display:flex;justify-content:space-between;padding:11px 14px}.bg-item:hover{border-color:var(--accent);box-shadow:var(--glow);color:var(--text)}.bg-go{color:var(--accent);font-size:12px}.bg-preview{margin-top:14px}.bg-preview img{border:1px solid var(--glass-brd);border-radius:10px;display:block;margin-bottom:10px;width:100%}.ph[data-v-460c2bb2]{color:var(--muted);font-size:13px}.toolbar[data-v-460c2bb2]{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 18px}.search[data-v-460c2bb2]{flex:1;min-width:220px}.plat-grid[data-v-460c2bb2]{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.plat-card[data-v-460c2bb2]{animation:fadeUp-460c2bb2 .4s ease both;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--glass);border:1px solid var(--glass-brd);border-radius:14px;cursor:pointer;outline:none;padding:16px;position:relative;transition:all .2s ease}.plat-card[data-v-460c2bb2]:hover{border-color:#4fd1ff66;box-shadow:0 12px 40px #4fd1ff1f;transform:translateY(-3px)}.plat-head[data-v-460c2bb2]{align-items:center;display:flex;justify-content:space-between}.plat-name[data-v-460c2bb2]{font-size:15px;font-weight:700}.arrow[data-v-460c2bb2]{color:var(--accent);font-size:22px;transition:transform .2s}.plat-card:hover .arrow[data-v-460c2bb2]{transform:translate(4px)}.plat-desc[data-v-460c2bb2]{color:var(--muted);font-size:12px;margin:4px 0 10px}.plat-tags[data-v-460c2bb2]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.tag[data-v-460c2bb2]{background:#7c5cff1f;border:1px solid rgba(124,92,255,.3);border-radius:20px;color:#b9aaff;font-size:11px;padding:2px 9px}.plat-install[data-v-460c2bb2]{display:flex;flex-direction:column;gap:4px}.plat-install .k[data-v-460c2bb2]{color:var(--muted);font-size:11px}.code[data-v-460c2bb2],.plat-install code[data-v-460c2bb2]{background:#060b19b3;border:1px solid var(--glass-brd);border-radius:8px;color:var(--accent);font-size:12px;margin:0;padding:8px 10px;white-space:pre-wrap;word-break:break-all}.plat-install code[data-v-460c2bb2]{cursor:pointer}.plat-install code[data-v-460c2bb2]:hover{border-color:var(--accent)}.copy-btn[data-v-460c2bb2]{align-self:flex-start;background:#4fd1ff1f;border:1px solid rgba(79,209,255,.3);color:var(--accent);font-size:12px;margin-top:2px;padding:4px 12px}.copy-btn[data-v-460c2bb2]:hover{background:#4fd1ff33}.card-actions[data-v-460c2bb2]{display:flex;gap:8px;margin-top:12px}.card-tip[data-v-460c2bb2]{background:#0f1620;border:1px solid rgba(79,209,255,.35);border-radius:10px;bottom:calc(100% + 8px);box-shadow:0 10px 30px #00000073;color:var(--text);font-size:12px;left:8px;line-height:1.6;opacity:0;padding:10px 12px;pointer-events:none;position:absolute;right:8px;text-align:left;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease;white-space:pre-wrap;z-index:20}.card-tip .tip-row b[data-v-460c2bb2]{color:var(--accent);font-weight:600}.plat-card:hover .card-tip[data-v-460c2bb2]{opacity:1;transform:translateY(0)}.plat-card[data-v-460c2bb2]:hover{z-index:10}.plat-home[data-v-460c2bb2]{color:var(--accent);display:inline-block;font-size:12px;margin-top:10px;text-decoration:none}.plat-home[data-v-460c2bb2]:hover{text-decoration:underline}.modal-head[data-v-460c2bb2]{align-items:center;display:flex;justify-content:space-between}.modal-head .x[data-v-460c2bb2]{background:transparent;color:var(--muted);font-size:18px;padding:4px 10px}.modal-head .x[data-v-460c2bb2]:hover{color:var(--text)}.home-link[data-v-460c2bb2]{color:var(--accent);font-size:13px;text-decoration:none;word-break:break-all}.home-link[data-v-460c2bb2]:hover{text-decoration:underline}.detail[data-v-460c2bb2]{background:#060b19b3;border:1px solid var(--glass-brd);border-radius:10px;color:var(--text);line-height:1.7;margin:0;padding:12px;white-space:pre-wrap;word-break:break-all}.detail[data-v-460c2bb2],.hint[data-v-460c2bb2]{font-size:12.5px}.hint[data-v-460c2bb2]{margin:0 0 4px}.empty[data-v-460c2bb2],.hint[data-v-460c2bb2]{color:var(--muted)}.empty[data-v-460c2bb2]{padding:40px 0;text-align:center}.stat-bar[data-v-460c2bb2]{color:var(--muted);display:flex;font-size:13px;gap:18px;margin:4px 0 16px}.stat-bar .stat-item b[data-v-460c2bb2]{color:var(--text);font-size:15px;margin-left:4px}.stat-bar .stat-item.ok b[data-v-460c2bb2]{color:#36d399}.stat-bar .stat-item.off b[data-v-460c2bb2]{color:#f59e0b}.spin[data-v-460c2bb2]{animation:spin-460c2bb2 .8s linear infinite;border:2px solid var(--muted);border-radius:50%;border-top:2px solid transparent;display:inline-block;height:14px;margin-right:6px;vertical-align:-2px;width:14px}@keyframes spin-460c2bb2{to{transform:rotate(1turn)}}@keyframes fadeUp-460c2bb2{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.ph[data-v-ed8849f4]{color:var(--muted);font-size:13px}.toolbar[data-v-ed8849f4]{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 18px}.search[data-v-ed8849f4]{flex:1;min-width:220px}.sk-grid[data-v-ed8849f4]{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.sk-card[data-v-ed8849f4]{animation:fadeUp-ed8849f4 .4s ease both;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--glass);border:1px solid var(--glass-brd);border-radius:14px;cursor:pointer;outline:none;padding:16px;position:relative;transition:all .2s ease}.sk-card[data-v-ed8849f4]:hover{border-color:#4fd1ff66;box-shadow:0 12px 40px #4fd1ff1f;transform:translateY(-3px)}.sk-head[data-v-ed8849f4]{align-items:center;display:flex;justify-content:space-between}.sk-name[data-v-ed8849f4]{font-size:15px;font-weight:700}.arrow[data-v-ed8849f4]{color:var(--accent);font-size:22px;transition:transform .2s}.sk-card:hover .arrow[data-v-ed8849f4]{transform:translate(4px)}.sk-intro[data-v-ed8849f4]{color:var(--muted);font-size:12.5px;line-height:1.6;margin:6px 0 12px}.sk-link[data-v-ed8849f4]{color:var(--accent);display:inline-block;font-size:12px;text-decoration:none}.sk-link[data-v-ed8849f4]:hover{text-decoration:underline}.card-actions[data-v-ed8849f4]{display:flex;gap:8px;margin-top:12px}.card-tip[data-v-ed8849f4]{background:#0f1620;border:1px solid rgba(79,209,255,.35);border-radius:10px;bottom:calc(100% + 8px);box-shadow:0 10px 30px #00000073;color:var(--text);font-size:12px;left:8px;line-height:1.6;opacity:0;padding:10px 12px;pointer-events:none;position:absolute;right:8px;text-align:left;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease;white-space:pre-wrap;z-index:20}.card-tip .tip-row b[data-v-ed8849f4]{color:var(--accent);font-weight:600}.sk-card:hover .card-tip[data-v-ed8849f4]{opacity:1;transform:translateY(0)}.sk-card[data-v-ed8849f4]:hover{z-index:10}.modal-head[data-v-ed8849f4]{align-items:center;display:flex;justify-content:space-between}.modal-head .x[data-v-ed8849f4]{background:transparent;color:var(--muted);font-size:18px;padding:4px 10px}.modal-head .x[data-v-ed8849f4]:hover{color:var(--text)}.home-link[data-v-ed8849f4]{color:var(--accent);font-size:13px;text-decoration:none;word-break:break-all}.home-link[data-v-ed8849f4]:hover{text-decoration:underline}.hint[data-v-ed8849f4]{color:var(--muted);font-size:12.5px;margin:0 0 4px}.label-row[data-v-ed8849f4]{align-items:center;display:flex;justify-content:space-between}.btn-mini[data-v-ed8849f4]{background:#7c5cff1f;border:1px solid rgba(124,92,255,.3);color:#b9aaff;font-size:12px;padding:3px 10px}.btn-mini[data-v-ed8849f4]:hover:not(:disabled){background:#7c5cff38}.btn-mini[data-v-ed8849f4]:disabled{cursor:default;opacity:.6}.ai-hint[data-v-ed8849f4]{color:#f59e0b;font-size:12px;line-height:1.5;margin:0 0 8px}.empty[data-v-ed8849f4]{color:var(--muted);padding:40px 0;text-align:center}.spin[data-v-ed8849f4]{animation:spin-ed8849f4 .8s linear infinite;border:2px solid var(--muted);border-radius:50%;border-top:2px solid transparent;display:inline-block;height:14px;margin-right:6px;vertical-align:-2px;width:14px}@keyframes spin-ed8849f4{to{transform:rotate(1turn)}}@keyframes fadeUp-ed8849f4{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.ph[data-v-092c5ad8]{color:var(--muted);font-size:13px}.toolbar[data-v-092c5ad8]{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 18px}.search[data-v-092c5ad8]{flex:1;min-width:220px}.vpn-grid[data-v-092c5ad8]{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.vpn-card[data-v-092c5ad8]{animation:fadeUp-092c5ad8 .4s ease both;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--glass);border:1px solid var(--glass-brd);border-radius:14px;cursor:pointer;outline:none;padding:16px;position:relative;transition:all .2s ease}.vpn-card[data-v-092c5ad8]:hover{border-color:#4fd1ff66;box-shadow:0 12px 40px #4fd1ff1f;transform:translateY(-3px)}.vpn-head[data-v-092c5ad8]{align-items:center;display:flex;justify-content:space-between}.vpn-name[data-v-092c5ad8]{font-size:15px;font-weight:700}.arrow[data-v-092c5ad8]{color:var(--accent);font-size:22px;transition:transform .2s}.vpn-card:hover .arrow[data-v-092c5ad8]{transform:translate(4px)}.vpn-desc[data-v-092c5ad8]{color:var(--muted);font-size:12.5px;line-height:1.6;margin:6px 0 12px;white-space:pre-wrap}.vpn-link[data-v-092c5ad8]{color:var(--accent);display:inline-block;font-size:12px;text-decoration:none}.vpn-link[data-v-092c5ad8]:hover{text-decoration:underline}.card-actions[data-v-092c5ad8]{display:flex;gap:8px;margin-top:12px}.card-tip[data-v-092c5ad8]{background:#0f1620;border:1px solid rgba(79,209,255,.35);border-radius:10px;bottom:calc(100% + 8px);box-shadow:0 10px 30px #00000073;color:var(--text);font-size:12px;left:8px;line-height:1.6;opacity:0;padding:10px 12px;pointer-events:none;position:absolute;right:8px;text-align:left;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease;white-space:pre-wrap;z-index:20}.card-tip .tip-row b[data-v-092c5ad8]{color:var(--accent);font-weight:600}.vpn-card:hover .card-tip[data-v-092c5ad8]{opacity:1;transform:translateY(0)}.vpn-card[data-v-092c5ad8]:hover{z-index:10}.modal-head[data-v-092c5ad8]{align-items:center;display:flex;justify-content:space-between}.modal-head .x[data-v-092c5ad8]{background:transparent;color:var(--muted);font-size:18px;padding:4px 10px}.modal-head .x[data-v-092c5ad8]:hover{color:var(--text)}.home-link[data-v-092c5ad8]{color:var(--accent);font-size:13px;text-decoration:none;word-break:break-all}.home-link[data-v-092c5ad8]:hover{text-decoration:underline}.hint[data-v-092c5ad8]{font-size:12.5px;margin:0 0 4px}.empty[data-v-092c5ad8],.hint[data-v-092c5ad8]{color:var(--muted)}.empty[data-v-092c5ad8]{padding:40px 0;text-align:center}.stat-bar[data-v-092c5ad8]{color:var(--muted);display:flex;font-size:13px;gap:18px;margin:4px 0 16px}.stat-bar .stat-item b[data-v-092c5ad8]{color:var(--text);font-size:15px;margin-left:4px}.stat-bar .stat-item.ok b[data-v-092c5ad8]{color:#36d399}.stat-bar .stat-item.off b[data-v-092c5ad8]{color:#f59e0b}.spin[data-v-092c5ad8]{animation:spin-092c5ad8 .8s linear infinite;border:2px solid var(--muted);border-radius:50%;border-top:2px solid transparent;display:inline-block;height:14px;margin-right:6px;vertical-align:-2px;width:14px}@keyframes spin-092c5ad8{to{transform:rotate(1turn)}}@keyframes fadeUp-092c5ad8{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.ph[data-v-8958b1b7]{color:var(--muted);font-size:13px}.toolbar[data-v-8958b1b7]{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 18px}.search[data-v-8958b1b7]{flex:1;min-width:200px}.filter[data-v-8958b1b7]{flex:0 0 auto;width:140px}.srv-grid[data-v-8958b1b7]{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.srv-card[data-v-8958b1b7]{animation:fadeUp-8958b1b7 .4s ease both;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--glass);border:1px solid var(--glass-brd);border-radius:14px;padding:16px;position:relative;transition:all .2s ease}.srv-card[data-v-8958b1b7]:hover{border-color:#4fd1ff66;box-shadow:0 12px 40px #4fd1ff1f;transform:translateY(-3px);z-index:10}.srv-head[data-v-8958b1b7]{align-items:center;display:flex;gap:8px;justify-content:space-between}.srv-name[data-v-8958b1b7]{font-size:15px;font-weight:700}.dot[data-v-8958b1b7]{background:var(--muted);border-radius:50%;display:inline-block;height:7px;margin-right:6px;vertical-align:1px;width:7px}.dot.ok[data-v-8958b1b7]{background:var(--ok);box-shadow:0 0 8px var(--ok)}.dot.bad[data-v-8958b1b7]{background:var(--danger);box-shadow:0 0 8px var(--danger)}.dot.checking[data-v-8958b1b7]{animation:pulse-8958b1b7 1s infinite;background:var(--accent)}@keyframes pulse-8958b1b7{0%,to{opacity:1}50%{opacity:.3}}.fav-star[data-v-8958b1b7]{color:var(--muted);cursor:pointer;font-size:15px;margin-left:6px}.fav-star.on[data-v-8958b1b7]{color:#ffd24d;text-shadow:0 0 8px rgba(255,210,77,.5)}.fav-star[data-v-8958b1b7]:hover{display:inline-block;transform:scale(1.2)}.badge[data-v-8958b1b7]{border:1px solid var(--glass-brd);border-radius:999px;font-size:11px;padding:2px 8px}.badge.active[data-v-8958b1b7]{border-color:var(--ok);color:var(--ok)}.badge.inactive[data-v-8958b1b7]{border-color:#f59e0b;color:#f59e0b}.srv-tags[data-v-8958b1b7]{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.cat-tag[data-v-8958b1b7]{background:#4fd1ff1f;border:1px solid rgba(79,209,255,.3);border-radius:999px;color:var(--accent);font-size:11px;padding:2px 8px}.cat-tag.region[data-v-8958b1b7]{background:#7c5cff1f;border-color:#7c5cff4d;color:#b8a6ff}.field[data-v-8958b1b7]{align-items:baseline;display:flex;font-size:12.5px;gap:8px;margin:4px 0}.field .k[data-v-8958b1b7]{color:var(--muted);flex:0 0 auto}.field .v[data-v-8958b1b7]{color:var(--accent);text-decoration:none;word-break:break-all}.srv-desc[data-v-8958b1b7]{color:var(--muted);font-size:12.5px;line-height:1.6;margin:6px 0 0}.card-actions[data-v-8958b1b7]{display:flex;gap:8px;margin-top:12px}.card-tip[data-v-8958b1b7]{background:#0f1620;border:1px solid rgba(79,209,255,.35);border-radius:10px;bottom:calc(100% + 8px);box-shadow:0 10px 30px #00000073;color:var(--text);font-size:12px;left:8px;line-height:1.6;opacity:0;padding:10px 12px;pointer-events:none;position:absolute;right:8px;text-align:left;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease;white-space:pre-wrap;z-index:20}.card-tip .tip-row b[data-v-8958b1b7]{color:var(--accent);font-weight:600}.srv-card:hover .card-tip[data-v-8958b1b7]{opacity:1;transform:translateY(0)}.empty[data-v-8958b1b7]{padding:40px 0;text-align:center}.empty[data-v-8958b1b7],.stat-bar[data-v-8958b1b7]{color:var(--muted)}.stat-bar[data-v-8958b1b7]{display:flex;font-size:13px;gap:18px;margin:4px 0 16px}.stat-bar .stat-item b[data-v-8958b1b7]{color:var(--text);font-size:15px;margin-left:4px}.stat-bar .stat-item.ok b[data-v-8958b1b7]{color:#36d399}.stat-bar .stat-item.off b[data-v-8958b1b7]{color:#f59e0b}.spin[data-v-8958b1b7]{animation:spin-8958b1b7 .8s linear infinite;border:2px solid var(--muted);border-radius:50%;border-top:2px solid transparent;display:inline-block;height:14px;margin-right:6px;vertical-align:-2px;width:14px}@keyframes spin-8958b1b7{to{transform:rotate(1turn)}}@keyframes fadeUp-8958b1b7{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.ph[data-v-f040eca2]{color:var(--muted);font-size:13px}.toolbar[data-v-f040eca2]{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 18px}.search[data-v-f040eca2]{flex:1;min-width:200px}.filter[data-v-f040eca2]{flex:0 0 auto;width:140px}.tut-grid[data-v-f040eca2]{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.tut-card[data-v-f040eca2]{animation:fadeUp-f040eca2 .4s ease both;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--glass);border:1px solid var(--glass-brd);border-radius:14px;cursor:pointer;display:flex;flex-direction:column;padding:16px;transition:all .2s ease}.tut-card[data-v-f040eca2]:hover{border-color:#4fd1ff66;box-shadow:0 12px 40px #4fd1ff1f;transform:translateY(-3px)}.tut-cover[data-v-f040eca2]{border:1px solid var(--glass-brd);border-radius:10px;height:130px;margin-bottom:10px;-o-object-fit:cover;object-fit:cover;width:100%}.tut-head[data-v-f040eca2]{align-items:center;display:flex;gap:8px;justify-content:space-between}.fav-star[data-v-f040eca2]{color:var(--muted);cursor:pointer;flex:0 0 auto;font-size:16px}.fav-star.on[data-v-f040eca2]{color:#ffd24d;text-shadow:0 0 8px rgba(255,210,77,.5)}.fav-star[data-v-f040eca2]:hover{transform:scale(1.2)}.mark[data-v-f040eca2],[data-v-f040eca2] mark{background:#ffd24d59;border-radius:3px;color:inherit;padding:0 2px}.prev-next[data-v-f040eca2]{display:flex;gap:10px;justify-content:space-between;margin-top:14px}.pn-btn[data-v-f040eca2]{max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tut-title[data-v-f040eca2]{font-size:15px;font-weight:700}.badge[data-v-f040eca2]{border:1px solid var(--glass-brd);border-radius:999px;flex:0 0 auto;font-size:11px;padding:2px 8px}.badge.published[data-v-f040eca2]{border-color:var(--ok);color:var(--ok)}.badge.draft[data-v-f040eca2]{border-color:#f59e0b;color:#f59e0b}.tut-tags[data-v-f040eca2]{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.cat-tag[data-v-f040eca2]{background:#4fd1ff1f;border:1px solid rgba(79,209,255,.3);border-radius:999px;color:var(--accent);font-size:11px;padding:2px 8px}.cat-tag.tag[data-v-f040eca2]{background:#7c5cff1f;border-color:#7c5cff4d;color:#b8a6ff}.tut-summary[data-v-f040eca2]{color:var(--muted);display:-webkit-box;flex:1;font-size:12.5px;-webkit-line-clamp:3;line-height:1.6;margin:4px 0 10px;-webkit-box-orient:vertical;overflow:hidden}.tut-meta[data-v-f040eca2]{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:11.5px;gap:14px}.card-actions[data-v-f040eca2]{display:flex;gap:8px;margin-top:12px}.modal-head[data-v-f040eca2]{align-items:center;display:flex;justify-content:space-between}.modal-head .x[data-v-f040eca2]{background:transparent;color:var(--muted);font-size:18px;padding:4px 10px}.modal-head .x[data-v-f040eca2]:hover{color:var(--text)}.reading-modal[data-v-f040eca2]{max-height:86vh;max-width:900px;overflow-y:auto;width:92vw}.editor-modal[data-v-f040eca2]{max-height:92vh;max-width:none;overflow-y:auto;width:min(1360px,96vw)}.meta-grid[data-v-f040eca2]{display:grid;gap:10px;grid-template-columns:2fr 2fr 1fr 1fr}.summary-row[data-v-f040eca2]{display:flex;gap:8px}.summary-row input[data-v-f040eca2]{flex:1}.summary-row .btn-mini[data-v-f040eca2]{flex:0 0 auto}.draft-tip[data-v-f040eca2]{color:var(--ok);font-size:12px;font-weight:400;margin-left:10px}.md-toolbar[data-v-f040eca2]{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 8px}.md-toolbar.ai-bar[data-v-f040eca2]{margin-top:0}.ai-label[data-v-f040eca2]{color:var(--accent);font-size:12px}.md-hint[data-v-f040eca2]{color:var(--muted);font-size:12px;margin-left:auto}.md-editor[data-v-f040eca2]{display:grid;gap:12px;grid-template-columns:1fr 1fr;height:420px}.md-editor textarea[data-v-f040eca2]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;height:100%;line-height:1.7;resize:none}.md-editor .preview[data-v-f040eca2]{border:1px solid var(--glass-brd);border-radius:10px;height:100%;overflow-y:auto;padding:14px 18px}.reading-body[data-v-f040eca2]{align-items:flex-start;display:flex;gap:20px}.toc[data-v-f040eca2]{border-right:1px solid var(--glass-brd);flex:0 0 200px;font-size:12.5px;max-height:60vh;overflow-y:auto;padding-right:14px;position:sticky;top:0}.toc-title[data-v-f040eca2]{color:var(--text);font-weight:700;margin-bottom:8px}.toc-item[data-v-f040eca2]{color:var(--muted);cursor:pointer;line-height:1.5;overflow:hidden;padding:3px 0;text-overflow:ellipsis;white-space:nowrap}.toc-item[data-v-f040eca2]:hover{color:var(--accent)}.reading-body .md-body[data-v-f040eca2]{flex:1;min-width:0}.modal-actions.between[data-v-f040eca2]{justify-content:space-between}.like-row[data-v-f040eca2]{display:flex;gap:8px}.like-btn[data-v-f040eca2]:disabled{cursor:default;opacity:.65}.md-body[data-v-f040eca2]{color:var(--text);font-size:14px;line-height:1.8}.md-body[data-v-f040eca2] h1,.md-body[data-v-f040eca2] h2,.md-body[data-v-f040eca2] h3,.md-body[data-v-f040eca2] h4{line-height:1.4;margin:1.1em 0 .5em;scroll-margin-top:20px}.md-body[data-v-f040eca2] h1{font-size:1.5em}.md-body[data-v-f040eca2] h2{font-size:1.3em}.md-body[data-v-f040eca2] h3{font-size:1.15em}.md-body[data-v-f040eca2] h4{font-size:1em}.md-body[data-v-f040eca2] p{margin:.6em 0}.md-body[data-v-f040eca2] a{color:var(--accent)}.md-body[data-v-f040eca2] code{background:#7e8bb529;border-radius:4px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9em;padding:1px 6px}.md-body[data-v-f040eca2] pre{background:#0b1220;border:1px solid var(--glass-brd);border-radius:10px;margin:.8em 0;overflow-x:auto;padding:12px 14px;position:relative}.md-body[data-v-f040eca2] .copy-btn{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#4fd1ff24;border:1px solid rgba(79,209,255,.35);border-radius:6px;color:var(--accent);cursor:pointer;font-size:11px;opacity:0;padding:3px 10px;position:absolute;right:8px;top:8px;transition:opacity .15s ease}.md-body[data-v-f040eca2] pre:hover .copy-btn{opacity:1}.md-body[data-v-f040eca2] .copy-btn:hover{background:#4fd1ff47}.md-body[data-v-f040eca2] pre code{background:transparent;padding:0}.md-body[data-v-f040eca2] blockquote{background:#4fd1ff0f;border-left:3px solid var(--accent);border-radius:0 8px 8px 0;color:var(--muted);margin:.8em 0;padding:4px 14px}.md-body[data-v-f040eca2] ol,.md-body[data-v-f040eca2] ul{margin:.5em 0;padding-left:1.5em}.md-body[data-v-f040eca2] li{margin:.25em 0}.md-body[data-v-f040eca2] table{border-collapse:collapse;font-size:13px;margin:.8em 0;width:100%}.md-body[data-v-f040eca2] td,.md-body[data-v-f040eca2] th{border:1px solid var(--glass-brd);padding:6px 10px}.md-body[data-v-f040eca2] th{background:#7e8bb51f}.md-body[data-v-f040eca2] hr{border:none;border-top:1px solid var(--glass-brd);margin:1.2em 0}.md-body[data-v-f040eca2] img{border-radius:8px;max-width:100%}.empty[data-v-f040eca2]{padding:40px 0;text-align:center}.empty[data-v-f040eca2],.stat-bar[data-v-f040eca2]{color:var(--muted)}.stat-bar[data-v-f040eca2]{display:flex;font-size:13px;gap:18px;margin:4px 0 16px}.stat-bar .stat-item b[data-v-f040eca2]{color:var(--text);font-size:15px;margin-left:4px}.stat-bar .stat-item.ok b[data-v-f040eca2]{color:#36d399}.stat-bar .stat-item.off b[data-v-f040eca2]{color:#f59e0b}.spin[data-v-f040eca2]{animation:spin-f040eca2 .8s linear infinite;border:2px solid var(--muted);border-radius:50%;border-top:2px solid transparent;display:inline-block;height:14px;margin-right:6px;vertical-align:-2px;width:14px}@keyframes spin-f040eca2{to{transform:rotate(1turn)}}@keyframes fadeUp-f040eca2{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){.md-editor[data-v-f040eca2]{grid-template-columns:1fr;height:auto}.md-editor .preview[data-v-f040eca2],.md-editor textarea[data-v-f040eca2]{height:240px}.meta-grid[data-v-f040eca2]{grid-template-columns:1fr 1fr}.reading-body[data-v-f040eca2]{flex-direction:column-reverse}.toc[data-v-f040eca2]{border-bottom:1px solid var(--glass-brd);border-right:none;flex:none;max-height:160px;padding:0 0 10px;position:static;width:100%}}.tabs[data-v-1fd6c3c2]{display:flex;gap:8px;margin-bottom:20px}.tab[data-v-1fd6c3c2]{background:transparent;border:1px solid var(--glass-brd);color:var(--muted);font-size:14px;padding:8px 18px}.tab.on[data-v-1fd6c3c2]{background:linear-gradient(135deg,var(--accent),var(--accent-2));border-color:transparent;box-shadow:var(--glow);color:#04111f}.stats-bar[data-v-1fd6c3c2]{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:18px}.stat[data-v-1fd6c3c2]{background:var(--glass);border:1px solid var(--glass-brd);border-radius:12px;display:flex;flex-direction:column;min-width:76px;padding:10px 18px}.stat .num[data-v-1fd6c3c2]{font-size:22px;font-weight:700}.stat .num.ok[data-v-1fd6c3c2]{color:var(--ok)}.stat .lab[data-v-1fd6c3c2],.stat .num.muted[data-v-1fd6c3c2]{color:var(--muted)}.stat .lab[data-v-1fd6c3c2]{font-size:12px}.global-ai[data-v-1fd6c3c2]{background:var(--glass);border:1px solid var(--glass-brd);border-radius:10px;color:var(--muted);font-size:13px;margin-bottom:16px;padding:10px 14px}.global-ai.on[data-v-1fd6c3c2]{border-color:var(--accent);color:var(--text)}.global-ai .warn[data-v-1fd6c3c2]{color:#f59e0b}.btn-global[data-v-1fd6c3c2]{background:#7c5cff24;border:1px solid rgba(124,92,255,.4);border-radius:8px;color:#b8a6ff;cursor:pointer;flex:0 0 auto;font-size:12px;padding:5px 10px;white-space:nowrap}.btn-global[data-v-1fd6c3c2]:hover{background:#7c5cff3d}.btn-global.on[data-v-1fd6c3c2]{background:#36e0a429;border-color:var(--ok);color:var(--ok);cursor:default}.global-ai[data-v-1fd6c3c2]{position:relative}.global-ai .set-link[data-v-1fd6c3c2]{color:var(--accent);cursor:pointer;font-size:12px;margin-left:10px;text-decoration:underline}.toolbar[data-v-1fd6c3c2]{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.search[data-v-1fd6c3c2]{flex:1;min-width:220px}.filter[data-v-1fd6c3c2]{flex:0 0 auto;width:140px}.models[data-v-1fd6c3c2]{display:flex;flex-wrap:wrap;margin-top:12px}.model-tag.more[data-v-1fd6c3c2]{background:#7e8bb51f;border-color:#7e8bb54d;color:var(--muted)}.dot[data-v-1fd6c3c2]{background:var(--muted);border-radius:50%;display:inline-block;height:7px;margin-right:5px;vertical-align:1px;width:7px}.dot.ok[data-v-1fd6c3c2]{background:var(--ok);box-shadow:0 0 8px var(--ok)}.dot.bad[data-v-1fd6c3c2]{background:var(--danger);box-shadow:0 0 8px var(--danger)}.dot.checking[data-v-1fd6c3c2]{animation:pulse-1fd6c3c2 1s infinite;background:var(--accent)}.card[data-v-1fd6c3c2],.card .card-actions .btn-danger[data-v-1fd6c3c2],.card .card-actions .btn-ghost[data-v-1fd6c3c2],.card .card-actions .btn-primary[data-v-1fd6c3c2]{cursor:pointer}.card-enter-active[data-v-1fd6c3c2],.card-leave-active[data-v-1fd6c3c2]{transition:all .35s ease}.card-enter-from[data-v-1fd6c3c2]{opacity:0;transform:translateY(14px) scale(.98)}.card-leave-to[data-v-1fd6c3c2]{opacity:0;transform:scale(.95)}.card-move[data-v-1fd6c3c2]{transition:transform .35s ease}@keyframes pulse-1fd6c3c2{0%,to{opacity:1}50%{opacity:.3}}.fav-star[data-v-1fd6c3c2],.muted[data-v-1fd6c3c2]{color:var(--muted)}.fav-star[data-v-1fd6c3c2]{cursor:pointer;font-size:15px;margin-left:6px;vertical-align:1px}.fav-star.on[data-v-1fd6c3c2]{color:#ffd24d;text-shadow:0 0 8px rgba(255,210,77,.5)}.fav-star[data-v-1fd6c3c2]:hover{display:inline-block;transform:scale(1.2)}.fav-sec[data-v-1fd6c3c2]{color:var(--text);font-size:14px;margin:20px 0 10px}.fav-list[data-v-1fd6c3c2]{display:flex;flex-direction:column;gap:8px}.fav-item[data-v-1fd6c3c2]{align-items:center;background:var(--glass);border:1px solid var(--glass-brd);border-radius:12px;display:flex;flex-wrap:wrap;font-size:13px;gap:12px;padding:10px 16px}.fav-item .fav-name[data-v-1fd6c3c2]{flex:1;font-weight:600;min-width:140px}.fav-item .btn-ghost[data-v-1fd6c3c2]{font-size:12px;padding:5px 12px}.dash-grid[data-v-1fd6c3c2]{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.dash-card[data-v-1fd6c3c2]{background:var(--glass);border:1px solid var(--glass-brd);border-radius:12px;display:flex;flex-direction:column;gap:4px;padding:14px 18px}.dash-card .num[data-v-1fd6c3c2]{font-size:20px;font-weight:700}.dash-card .num.ok[data-v-1fd6c3c2]{color:var(--ok)}.dash-card .lab[data-v-1fd6c3c2]{color:var(--muted);font-size:12px}.log-list[data-v-1fd6c3c2]{display:flex;flex-direction:column;gap:6px;max-height:420px;overflow-y:auto}.log-item[data-v-1fd6c3c2]{align-items:center;background:var(--glass);border:1px solid var(--glass-brd);border-radius:10px;display:flex;font-size:12.5px;gap:12px;padding:8px 14px}.log-act[data-v-1fd6c3c2]{border-radius:999px;flex:0 0 auto;font-size:11px;padding:2px 8px}.log-act.create[data-v-1fd6c3c2]{border:1px solid var(--ok);color:var(--ok)}.log-act.update[data-v-1fd6c3c2]{border:1px solid var(--accent);color:var(--accent)}.log-act.delete[data-v-1fd6c3c2]{border:1px solid var(--danger);color:var(--danger)}.log-coll[data-v-1fd6c3c2]{color:var(--muted);flex:0 0 auto;min-width:72px}.log-target[data-v-1fd6c3c2]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-time[data-v-1fd6c3c2]{color:var(--muted);flex:0 0 auto;font-size:11.5px}.chk[data-v-1fd6c3c2]{align-items:center;color:var(--text);display:flex;font-size:13px;gap:8px;margin:4px 0 8px}.chk input[data-v-1fd6c3c2]{width:auto}.env-defaults[data-v-1fd6c3c2]{line-height:1.7}.env-defaults code[data-v-1fd6c3c2],.modal code[data-v-1fd6c3c2]{background:#7e8bb524;border-radius:4px;font-size:12px;padding:1px 5px}.env-defaults .warn[data-v-1fd6c3c2]{color:#f59e0b}
