@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
:root{color-scheme:light;--bg:#f6f7f9;--paper:#fff;--ink:#172333;--muted:#728092;--line:#e3e7ed;--accent:#285dea;--green:#198260;--red:#c34046;--radius:12px;font-family:"Noto Sans SC",system-ui,sans-serif;font-size:14px;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #9db8ff;outline-offset:3px}[hidden]{display:none!important}.topbar{height:56px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px)}.brand{font-family:"IBM Plex Mono",monospace;text-decoration:none;color:var(--ink);font-weight:500;font-size:23px;letter-spacing:2px;display:flex;align-items:center}.brand>span:first-child{color:var(--accent)}.brand-note{font-family:"Noto Sans SC",sans-serif;letter-spacing:0;font-size:13px;border-left:1px solid var(--line);padding-left:22px;margin-left:22px;font-weight:400;color:var(--muted)}.top-actions{display:flex;gap:8px}main{max-width:1100px;margin:0 auto;padding:22px 28px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.eyebrow{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:1px;color:var(--muted);margin:0 0 10px}h1{font-size:26px;letter-spacing:-1px;margin:0;font-weight:600}h2{font-size:18px;font-weight:600;margin:0 0 12px}.button{border:1px solid var(--line);border-radius:7px;padding:8px 12px;background:#fff;color:var(--ink);font-size:13px;font-weight:500;white-space:nowrap}.button:hover{border-color:#a7b6cc;background:#f9fbff}.primary{background:var(--accent);border-color:var(--accent);color:white}.primary:hover{background:#174ed8;border-color:#174ed8}.quiet{background:transparent;border-color:transparent}.danger{color:var(--red)}.fleet-summary{display:flex;gap:24px;align-items:center;font-size:12px;color:var(--muted);margin:12px 0 14px}.fleet-summary>div{display:flex;align-items:center;gap:7px}.summary-value{font-family:"IBM Plex Mono",monospace;font-size:20px;color:var(--ink);margin-right:2px}.dot{height:7px;width:7px;display:inline-block;border-radius:100%;background:#a8b3c2}.dot.success{background:var(--green)}.dot.active{background:var(--accent)}.vps-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:10px;overflow:hidden}.vps-card summary{display:flex;gap:15px;align-items:center;list-style:none;cursor:pointer;padding:14px 18px}.vps-card summary::-webkit-details-marker{display:none}.server-icon{background:#f0f4fb;border:1px solid #e2e9f5;border-radius:9px;width:32px;height:32px;display:grid;place-items:center;color:#43617e;font-size:23px}.server-title{display:flex;flex:1;flex-direction:column;gap:3px}.server-title strong{font-size:15px;font-weight:600}.server-title span{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--muted)}.badge{font-size:11px;background:#f0f2f5;border:1px solid #e7eaee;padding:5px 9px;border-radius:5px;color:var(--muted)}.badge.succeeded{background:#edf8f1;color:var(--green);border-color:#d9eee2}.badge.failed{background:#fff0f0;color:var(--red);border-color:#f5dfe0}.badge.running,.badge.queued{background:#edf3ff;color:var(--accent);border-color:#dce7ff}.chevron{margin-left:10px;color:var(--muted);transform:rotate(-90deg)}details[open] .chevron{transform:rotate(0)}.vps-body{border-top:1px solid var(--line);padding:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:500}input{width:100%;border:1px solid #dce2eb;background:#fff;border-radius:6px;padding:8px 10px;font-size:13px;color:var(--ink);outline:none;min-width:0}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #285dea12}input::placeholder{color:#a0a9b7;font-weight:400}small,.muted{font-size:11px;font-weight:400;color:var(--muted);line-height:1.7}.span-two{grid-column:span 2}.form-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.action-spacer{flex:1}.empty{text-align:center;background:var(--paper);border:1px dashed #d7dfe9;border-radius:var(--radius);padding:32px 20px}.empty-mark{display:grid;place-items:center;border:1px solid #e2e9f5;background:#f0f4fb;color:var(--accent);width:54px;height:54px;font-size:26px;margin:0 auto 20px;border-radius:13px}.empty p{font-size:12px;color:var(--muted);margin:10px 0 25px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:12px}.panel form{max-width:660px}.panel form>.button{margin-top:16px}.section-heading{display:flex;justify-content:space-between;gap:12px}.notice{border:1px solid #dbe6fc;background:#edf3ff;color:#335991;border-radius:8px;padding:12px 16px;font-size:12px;margin-bottom:18px;white-space:pre-line}.notice.error{background:#fff1f1;border-color:#f2d2d2;color:var(--red)}footer{font-size:11px;color:#929dac;text-align:center;padding:26px 0}.job-panel,.results-panel{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.steps{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.step{display:flex;align-items:flex-start;gap:12px;font-size:12px}.step-marker{display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;width:21px;height:21px;flex-shrink:0;color:var(--muted);font-family:"IBM Plex Mono",monospace;font-size:10px}.step.succeeded .step-marker{background:#edf8f1;color:var(--green);border-color:#d9eee2}.step.failed .step-marker{background:#fff0f0;color:var(--red);border-color:#f5dfe0}.step.running .step-marker{color:var(--accent);border-color:var(--accent);animation:pulse 1.4s ease-in-out infinite}.step-copy{flex:1;padding-top:2px}.step-copy p{color:var(--muted);font-size:11px;margin:5px 0 0;overflow-wrap:anywhere}.step-time{font-family:"IBM Plex Mono",monospace;color:var(--muted);font-size:10px;padding-top:4px}.result-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:7px;padding:11px 12px;margin-top:8px;min-width:0}.result-info{flex:1;min-width:0}.result-info strong{display:block;font-weight:500;font-size:12px;margin-bottom:4px}.result-info a,.result-info code{display:block;color:var(--muted);font-family:"IBM Plex Mono",monospace;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-decoration:none}.result-info a:hover{color:var(--accent)}.result-row .button{padding:6px 10px;font-size:11px}.result-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.result-heading h2{margin:0}.result-group{margin-top:10px}.result-group>h3{font-size:12px;color:var(--muted);font-weight:500}.error-text{color:var(--red)}@keyframes pulse{50%{opacity:.4}}@media(prefers-reduced-motion:reduce){.step.running .step-marker{animation:none}}@media(max-width:650px){.topbar{height:56px;padding:0 16px}.brand-note{display:none}.top-actions .button{padding:8px}.page-heading{align-items:flex-end}main{padding:18px 14px}h1{font-size:25px}.fleet-summary{gap:20px}.vps-card summary{padding:12px 14px;gap:10px}.vps-body{padding:16px 14px}.form-grid{grid-template-columns:1fr;gap:12px}.span-two{grid-column:auto}.form-actions{gap:8px}.form-actions .button{padding:9px 11px}.section-heading{display:flex}.step-time{display:none}}
.setup-steps{padding-left:22px;font-size:13px;line-height:1.85}.setup-steps li+li{margin-top:14px}.setup-steps a{color:var(--accent);text-underline-offset:3px}.setup-steps code{font-family:"IBM Plex Mono",monospace;font-size:12px;overflow-wrap:anywhere}
select,textarea{font:inherit;width:100%;box-sizing:border-box;border:1px solid #dce2eb;background:#fff;border-radius:6px;padding:8px 10px;font-size:13px;color:var(--ink);min-width:0}select:focus,textarea:focus{outline:2px solid #9db8ff;outline-offset:1px}textarea{font-family:"IBM Plex Mono",monospace;resize:vertical;line-height:1.55}.key-fields{display:grid;gap:10px}.check-label{flex-direction:row;align-items:center}.check-label input{width:auto}.vps-form p[data-auth-status]{margin:0}.vps-form input[type=file]{font-size:12px}

.section-heading{align-items:center}.section-heading h2{margin:0;font-size:16px}.subscription-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:12px 0}.subscription-link-row{display:flex;align-items:center;gap:8px}.subscription-link-row>input{flex:1}.subscription-actions{display:flex;align-items:center;gap:8px}.subscription-actions a{text-decoration:none}.subscription-security{margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}.subscription-security summary{cursor:pointer;font-size:11px;color:var(--muted)}#subscription-url{font-family:monospace;font-size:12px}.vps-card .result-group summary{padding:8px 0;gap:7px;font-size:12px;color:var(--muted)}.result-group summary::before{content:'›';font-size:16px}.result-group[open]>summary::before{transform:rotate(90deg)}.vps-form p[data-auth-status]:empty{display:none}
#subscription-qr-dialog{width:min(360px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:16px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:white;box-shadow:0 16px 64px #17233333}#subscription-qr-dialog::backdrop{background:#17233366}.qr-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.qr-heading h2{margin:0;font-size:16px}#subscription-qr-close{padding:6px 10px}#subscription-qr-description{margin:4px 0 8px;overflow-wrap:anywhere}#subscription-qr-canvas{display:block;width:100%;max-width:320px;height:auto;margin:auto;image-rendering:pixelated;background:white}.qr-caption{text-align:center;margin:8px 0 0}
@media(max-width:650px){.subscription-link-row{flex-wrap:wrap}.subscription-link-row>input{flex-basis:100%}.subscription-actions{width:100%}.subscription-actions .button{flex:1;text-align:center;min-height:40px}.subscription-controls{gap:8px}.panel{padding:14px}.fleet-summary{gap:16px}.qr-heading .button{min-width:40px;min-height:40px}}

.socks5-options{border-top:1px solid var(--border,#e5e7eb);margin-top:12px;padding-top:10px}.socks5-options summary{cursor:pointer;font-size:13px;font-weight:600}.socks5-options .form-grid{margin-top:12px}.socks5-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}[data-socks5-status]{font-weight:400;color:#697386}

.server-header{display:flex;align-items:center;gap:12px;padding:12px 18px}.server-title{min-width:0}.server-title strong,.server-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server-icon{flex-shrink:0}.server-header .badge{white-space:nowrap}.card-subscription{display:grid;grid-template-columns:110px minmax(0,1fr) auto auto;gap:8px;padding:0 18px 12px}.card-subscription input{font-family:monospace;font-size:12px}.vps-details[open]>.vps-body{border-top:1px solid var(--line)}
@media(max-width:650px){.server-header{padding:12px 14px;gap:7px;flex-wrap:wrap}.server-header .server-title{flex-basis:calc(100% - 45px)}.server-header .badge{margin-left:39px;margin-right:auto}.server-header .button{min-height:40px}.card-subscription{padding:0 14px 12px;grid-template-columns:minmax(0,1fr) auto auto}.card-subscription input{grid-column:1 / -1;grid-row:1}.card-subscription .button{min-height:40px}}
