:root { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #f6f7fb; background: #101114; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 30% 0%, #25252f 0, #101114 52%); }
.card { width: min(100%, 470px); padding: 42px 38px 28px; border: 1px solid #31323b; border-radius: 24px; background: rgba(24,25,30,.92); box-shadow: 0 25px 80px #0008; }
.brand { font-size: 17px; font-weight: 700; letter-spacing: .02em; display: flex; align-items: center; gap: 10px; }
.brand-link { color: inherit; text-decoration: none; }
.dot { width: 10px; height: 10px; border-radius: 50%; background: #8ee2a8; box-shadow: 0 0 18px #8ee2a8; }
h1 { margin: 48px 0 14px; font-size: clamp(32px, 7vw, 48px); line-height: 1.05; letter-spacing: -.045em; }
.lead { color: #a8aab4; margin: 32px 0 8px; line-height: 1.5; }
label { display: block; color: #c9cad1; font-size: 13px; margin-bottom: 9px; }
.input-wrap { display: flex; align-items: center; border: 1px solid #444651; border-radius: 11px; background: #15161a; }
input { width: 100%; border: 0; outline: 0; color: #fff; background: transparent; padding: 15px 14px; font-size: 16px; }
.show { border: 0; color: #8f929f; background: transparent; cursor: pointer; padding: 12px 15px; }
.submit, .download { border: 0; border-radius: 11px; width: 100%; margin-top: 16px; padding: 15px; font-size: 15px; font-weight: 700; cursor: pointer; background: #d5f6a6; color: #172012; }
.submit span { float: right; font-size: 20px; line-height: 14px; }
.submit:disabled { opacity: .6; cursor: wait; }
.message { min-height: 20px; color: #f29b9b; font-size: 13px; margin: 12px 0 0; }
.result { margin-top: 26px; padding-top: 24px; border-top: 1px solid #353640; }
.result-head { display: flex; justify-content: space-between; align-items: center; }
h2 { margin: 0; font-size: 22px; }
#close { border: 0; background: transparent; color: #aaa; font-size: 26px; cursor: pointer; }
.result p { color: #a8aab4; font-size: 14px; line-height: 1.45; }
.platform-tabs { display: flex; gap: 6px; margin-top: 22px; border-bottom: 1px solid #353640; }
.platform-tab { border: 0; border-bottom: 2px solid transparent; padding: 10px 8px; color: #858895; background: transparent; cursor: pointer; font-size: 12px; }
.platform-tab.active { color: #d5f6a6; border-bottom-color: #d5f6a6; }
.platform-panel { display: none; }
.platform-panel.active { display: block; }
.vpn-details { display: grid; gap: 10px; margin-top: 16px; }
.vpn-details div { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding-bottom: 9px; border-bottom: 1px solid #353640; }
.vpn-details small { color: #858895; font-size: 11px; }
.vpn-details code { color: #f6f7fb; font: 12px ui-monospace, SFMono-Regular, Consolas, monospace; text-align: right; overflow-wrap: anywhere; }
.hint { font-size: 12px !important; margin-top: 18px !important; }
.qr-frame { display: grid; place-items: center; padding: 18px; margin-top: 14px; border-radius: 16px; background: #fff; }
.qr-frame { color: inherit; text-decoration: none; cursor: pointer; }
.qr-frame img { width: min(100%, 300px); display: block; }
.download { margin-top: 16px; background: #d5f6a6; color: #172012; }
footer { color: #6f727f; font-size: 11px; margin-top: 38px; text-align: center; }
@media (max-width: 480px) { .card { padding: 30px 22px 23px; } h1 { margin-top: 38px; } }
/* Platform selector and setup cards */
.result { margin-top: 22px; }
.result-head { gap: 12px; }
#close { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #24262e; line-height: 1; }
.platform-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; padding: 5px; margin: 22px 0; border: 1px solid #343640; border-radius: 16px; background: #111216; }
.platform-tab { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 42px; padding: 4px; border: 0; border-radius: 11px; font: inherit; font-size: 12px; font-weight: 600; color: #a2a5b1; transition: background .18s, color .18s; }
.platform-tab svg { width: 22px; height: 22px; }
.platform-tab:hover { color: #fff; background: #24262e; }
.platform-tab.active { background: #d5f6a6; color: #172012; box-shadow: 0 3px 12px #0003; }
.platform-tab:focus-visible, .copy-value:focus-visible, #close:focus-visible, .download:focus-visible { outline: 2px solid #d5f6a6; outline-offset: 3px; }
.platform-panel[hidden] { display: none; }
.platform-panel > p:first-child { margin: 0 0 20px; font-size: 13px; line-height: 1.7; }
.platform-panel strong { color: #e4e6ed; font-weight: 500; }
.platform-intro { display: flex; align-items: flex-start; gap: 12px; margin: 22px 0 16px; }
.step-number { flex-shrink: 0; display: grid; place-items: center; width: 27px; height: 27px; border-radius: 9px; background: #d5f6a611; color: #d5f6a6; font-size: 12px; font-weight: 600; }
.platform-intro h3 { font-size: 14px; margin: 1px 0 5px; font-weight: 600; }
.platform-intro div > span { color: #9295a3; font-size: 12px; line-height: 1.6; }
.details-title { margin: 24px 0 12px; font-size: 13px; font-weight: 600; color: #c9ccd5; }
.vpn-details { overflow: hidden; gap: 0; margin: 0; background: #121318; border: 1px solid #32343e; border-radius: 14px; }
.vpn-details div { position: relative; display: block; margin: 0; padding: 14px 50px 14px 16px; border-bottom: 1px solid #292b34; }
.vpn-details div:last-child { border-bottom: 0; }
.vpn-details small { display: block; font-size: 11px; margin-bottom: 6px; color: #8d919f; }
.vpn-details code { display: block; text-align: left; font-size: 13px; line-height: 1.55; word-break: break-word; user-select: all; }
.copy-value { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; display: grid; place-items: center; border: 0; border-radius: 9px; background: transparent; color: #9398a5; cursor: pointer; }
.copy-value:hover { background: #2b2e38; color: #d5f6a6; }
.copy-value svg { width: 18px; height: 18px; }
.result .hint { padding: 14px 16px; border-radius: 12px; border: 1px solid #d5f6a621; background: #d5f6a608; line-height: 1.6; }
.result .copy-status { color: #d5f6a6; font-size: 12px; min-height: 18px; margin: 12px 0 0; }
@media (max-width: 360px) { body { padding: 12px; } .platform-tab { font-size: 11px; } .download { font-size: 13px; } }
@media (prefers-reduced-motion: reduce) { .platform-tab { transition: none; } }
/* Consistent password visibility controls across both forms. */
.input-wrap .password-toggle, .password-field .password-toggle { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; align-self: center; margin: 0 5px 0 0; padding: 0; border: 0; border-radius: 9px; background: transparent; color: #9298a8; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: color .15s, background .15s; }
.password-toggle svg { width: 21px; height: 21px; pointer-events: none; }
.password-toggle .eye-closed { display: none; }
.password-toggle[aria-pressed="true"] .eye-open { display: none; }
.password-toggle[aria-pressed="true"] .eye-closed { display: block; }
.input-wrap .password-toggle:hover, .password-field .password-toggle:hover { background: #292d36; color: #d5f6a6; }
.input-wrap .password-toggle[aria-pressed="true"], .password-field .password-toggle[aria-pressed="true"] { color: #d5f6a6; }
.password-toggle:focus-visible { outline: 2px solid #d5f6a6; outline-offset: -2px; }
.input-wrap input { min-width: 0; }
input::-ms-reveal { display: none; }
.windows-setup-card { display:flex; gap:12px; align-items:flex-start; padding:16px; border:1px solid #d5f6a633; border-radius:14px; background:#d5f6a60b; }
.windows-icon { display:grid; place-items:center; flex:0 0 34px; width:34px; height:34px; border-radius:10px; color:#172012; background:#d5f6a6; font-size:20px; }
.windows-setup-card h3 { margin:1px 0 6px; font-size:14px; }
.windows-setup-card p { margin:0; color:#a8aab4; font-size:12px; line-height:1.55; }
.windows-download { display:flex; justify-content:center; align-items:center; gap:10px; text-decoration:none; }
.windows-download span { font-size:20px; }
.windows-steps { margin:18px 0 0; padding-left:20px; color:#a8aab4; font-size:12px; line-height:1.7; }
.windows-steps li { padding-left:4px; margin:6px 0; }
.windows-steps strong { color:#e4e6ed; font-weight:600; }
