*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#0a0a0f;--surface:#12121a;--border:#1e1e2e;--text:#e8e8f0;--muted:#6b6b80;--accent:#06b6d4;--accent2:#22d3ee;--green:#4ade80;--red:#f87171;--yellow:#fbbf24}
body{font-family:-apple-system,system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-tap-highlight-color:transparent}
.container{max-width:480px;margin:0 auto;padding:24px 16px;min-height:100vh;display:flex;flex-direction:column}
.header{text-align:center;margin-bottom:32px}
.logo{font-size:42px;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.tagline{color:var(--muted);font-size:14px;margin-top:4px}
.conn-box{border:2px solid var(--border);border-radius:20px;padding:28px;margin-bottom:20px;text-align:center;transition:all .3s}
.conn-box.connected{border-color:var(--green);background:rgba(74,222,128,0.05)}
.conn-box.waiting{border-color:var(--yellow)}
.conn-box.offline{border-color:var(--red)}
.conn-icon{font-size:72px;margin-bottom:16px}
.conn-status{font-size:20px;font-weight:700;margin-bottom:6px}
.conn-hint{font-size:13px;color:var(--muted)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}
.dot.green{background:var(--green);box-shadow:0 0 8px var(--green)}
.dot.yellow{background:var(--yellow);animation:blink 1.5s infinite}
.dot.red{background:var(--red)}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.form-group{margin-bottom:16px}
input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;color:var(--text);font-size:16px;outline:none;transition:border-color .2s;-webkit-appearance:none}
input:focus{border-color:var(--accent)}
input::placeholder{color:var(--muted)}
.btn{width:100%;padding:18px;border-radius:14px;border:none;font-size:17px;font-weight:700;cursor:pointer;transition:all .2s;display:block;text-align:center;text-decoration:none}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:white}
.btn-primary:active{transform:scale(0.98);opacity:0.9}
.btn:disabled{opacity:0.4;cursor:not-allowed;transform:none}
.btn-ghost{background:none;border:2px solid var(--border);color:var(--muted);margin-top:12px}
.steps{margin:20px 0;display:flex;flex-direction:column;gap:8px}
.step{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border-radius:12px;font-size:14px;transition:all .3s}
.step.done{background:rgba(74,222,128,0.08);color:var(--green)}
.step.active{background:rgba(124,106,239,0.1);color:var(--accent)}
.step.pending{opacity:0.4}
.step-icon{font-size:20px;width:28px;text-align:center;flex-shrink:0}
.credits-banner{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:var(--surface);border-radius:12px;margin-bottom:20px;font-size:14px}
.credits-val{font-weight:800;color:var(--accent);font-size:20px}
.credits-label{color:var(--muted)}
.progress-wrap{background:var(--surface);border-radius:16px;height:24px;overflow:hidden;margin:16px 0;position:relative;display:none}
.progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));width:0%;transition:width .5s}
.progress-pct{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:700;color:var(--text)}
.progress-title{text-align:center;font-size:16px;font-weight:600;margin-bottom:8px}
.results-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.result-card{background:var(--surface);border-radius:12px;padding:18px;text-align:center}
.result-val{font-size:28px;font-weight:800;color:var(--green)}
.result-label{font-size:12px;color:var(--muted);margin-top:4px}
.credits-summary{background:rgba(74,222,128,0.1);border:1px solid var(--green);border-radius:12px;padding:16px;text-align:center;margin:16px 0}
.credits-summary .val{font-size:22px;font-weight:800;color:var(--green)}
.footer{text-align:center;margin-top:auto;padding:24px 0;color:var(--muted);font-size:12px;border-top:1px solid var(--border)}
.screen{display:none}
.screen.active{display:block}
.card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:28px;margin-bottom:16px}
.card-title{font-size:16px;font-weight:700;margin-bottom:16px;text-align:center}
.alt{text-align:center;margin-top:16px;font-size:14px;color:var(--muted)}
.alt a{color:var(--accent);text-decoration:none}
.link{color:var(--accent);text-decoration:none;font-size:13px;display:block;text-align:center;margin-top:12px}
.link:hover{text-decoration:underline}
.error-msg{background:rgba(248,113,113,0.1);border:1px solid var(--red);border-radius:8px;padding:12px;color:var(--red);font-size:14px;margin-bottom:16px;display:none;text-align:center}
.error-msg.show{display:block}
.success-msg{background:rgba(74,222,128,0.1);border:1px solid var(--green);border-radius:8px;padding:12px;color:var(--green);font-size:14px;margin-bottom:16px;display:none;text-align:center}
.success-msg.show{display:block}
@media(max-width:480px){.container{padding:16px 12px}}
