:root{--bg0: #0b1220;--bg1: #131f38;--card: #ffffff;--ink: #0f172a;--muted: #64748b;--line: #e2e8f0;--brand: #4f46e5;--brand-ink: #ffffff;--danger-bg: #fef2f2;--danger-ink: #b91c1c;--danger-line: #fecaca}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:radial-gradient(1100px 700px at 15% -10%,#1e2b4d 0%,transparent 55%),radial-gradient(900px 600px at 110% 10%,#21385f 0%,transparent 50%),linear-gradient(160deg,var(--bg0),var(--bg1));-webkit-font-smoothing:antialiased}.stage{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;gap:16px}.card{position:relative;width:100%;max-width:420px;background:var(--card);border-radius:16px;padding:28px 28px 22px;box-shadow:0 24px 60px #02061773,0 2px 8px #02061740}.brand{display:flex;align-items:center;gap:10px;margin-bottom:18px}.brand-mark{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#6366f1,#22d3ee);box-shadow:inset 0 0 0 2px #ffffff59}.brand-name{font-weight:700;letter-spacing:.2px;color:#0b1220}h1{font-size:1.4rem;margin:4px 0}.sub{color:var(--muted);margin:0 0 18px;font-size:.92rem;line-height:1.4}label{display:block;font-size:.82rem;font-weight:600;color:#334155;margin:12px 0 6px}input[type=email],input[type=password],input[type=text]{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font-size:1rem;outline:none;transition:border-color .15s,box-shadow .15s}input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #4f46e526}input:disabled{background:#f8fafc;color:#94a3b8}button.primary{width:100%;margin-top:18px;padding:12px 14px;border:0;border-radius:10px;background:var(--brand);color:var(--brand-ink);font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,transform .02s}button.primary:hover{background:#4338ca}button.primary:active{transform:translateY(1px)}button.primary:disabled{opacity:.65;cursor:default}.error{background:var(--danger-bg);color:var(--danger-ink);border:1px solid var(--danger-line);border-radius:10px;padding:10px 12px;font-size:.9rem;margin:0 0 14px}.row-links{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:12px}.link{background:none;border:0;color:var(--brand);font-size:.88rem;cursor:pointer;padding:4px 0}.link:hover{text-decoration:underline}.link:disabled{opacity:.6;cursor:default;text-decoration:none}.platform-list{display:flex;flex-direction:column;gap:10px;margin-top:6px}.platform{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;cursor:pointer;transition:border-color .15s,background .15s,transform .02s}.platform:hover{border-color:var(--brand);background:#f1f5ff}.platform:active{transform:translateY(1px)}.platform:disabled{opacity:.6;cursor:default}.platform-label{font-weight:700;font-size:1.02rem;color:#0f172a}.platform-desc{font-size:.85rem;color:var(--muted)}.attrib{color:#e2e8f0b3;font-size:.78rem}.spinner{position:absolute;top:14px;right:14px;width:18px;height:18px;border:2px solid rgba(79,70,229,.25);border-top-color:var(--brand);border-radius:50%;opacity:0;transition:opacity .15s;animation:spin .7s linear infinite}.card.busy .spinner{opacity:1}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 480px){.card{padding:22px 18px 18px;border-radius:14px}h1{font-size:1.25rem}}
