:root{--color-primary:#06d6a0;--color-accent:#00b4d8;--color-ink:#0a192f;--color-text:#1c2b3a;--color-text-muted:#5c6b7a;--color-border:#e2e8ef;--color-error:#ef4444;--color-bg:#f4f7fa;--gradient-primary:linear-gradient(135deg, #06d6a0 0%, #00b4d8 100%)}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#root{min-height:100vh}.page{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.brand{letter-spacing:.02em;background:var(--gradient-primary);color:#0000;-webkit-background-clip:text;background-clip:text;margin-bottom:20px;font-size:1.1rem;font-weight:700}.loading-text{color:var(--color-text-muted)}.step-card{background:#fff;border-radius:16px;flex-direction:column;gap:14px;width:100%;max-width:400px;padding:28px 24px;display:flex;box-shadow:0 8px 24px #0a192f14}.step-title{color:var(--color-ink);margin:4px 0 0;font-size:1.25rem;font-weight:600}.step-hint{color:var(--color-text-muted);margin:0;font-size:.9rem;line-height:1.5}.step-input{border:1.5px solid var(--color-border);border-radius:10px;outline:none;width:100%;padding:14px 16px;font-size:1rem;transition:border-color .15s}.step-input:focus{border-color:var(--color-accent)}.step-error{color:var(--color-error);margin:0;font-size:.85rem}.submit-error{text-align:center;margin-top:12px}.btn-primary{background:var(--gradient-primary);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:14px 20px;font-size:1rem;font-weight:600;transition:opacity .15s}.btn-primary:disabled{opacity:.6;cursor:default}.btn-primary:not(:disabled):active{opacity:.85}.progress-dots{gap:6px;margin-bottom:6px;display:flex}.dot{background:var(--color-border);border-radius:50%;width:8px;height:8px}.dot-active{background:var(--color-primary)}.status-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:baseline;padding:10px 0;display:flex}.status-row:last-of-type{border-bottom:none}.status-label{color:var(--color-text-muted);font-size:.9rem}.status-value{text-align:right;font-weight:600}
