:root{--bg:#0b0d0f;--fg:#f2f4f6;--fg-muted:#9aa0a6;--accent:#7de58a;--accent-dim:#56a464;--border:#2a2e33;--card:#15181c;--error:#f47272;--danger-bg:#3a1b1b;--warning:#f5c16c;--warning-bg:#3a2e16}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--fg);min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}.container{max-width:640px;margin:0 auto;padding:48px 20px}h1{margin-bottom:8px;font-size:28px;font-weight:600}.lede{color:var(--fg-muted);margin-bottom:32px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:28px}form{flex-direction:column;gap:18px;display:flex}label{flex-direction:column;gap:6px;font-size:14px;font-weight:500;display:flex}label .hint{color:var(--fg-muted);font-size:13px;font-weight:400}input{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-family:inherit;font-size:15px}input:focus{border-color:var(--accent);outline:none}input:disabled{opacity:.6}button{background:var(--accent);color:#0b1e10;cursor:pointer;border:none;border-radius:8px;padding:12px 16px;font-family:inherit;font-size:15px;font-weight:600}button:hover{background:var(--accent-dim)}button:disabled{background:var(--border);color:var(--fg-muted);cursor:not-allowed}.alert{border-radius:8px;margin-bottom:18px;padding:14px 16px;font-size:14px}.alert-error{background:var(--danger-bg);border:1px solid var(--error);color:var(--error)}.alert-warning{background:var(--warning-bg);border:1px solid var(--warning);color:var(--warning)}.alert-info{border:1px solid var(--accent-dim);color:var(--fg);background:#7de58a0f}.connect-steps{margin:4px 0 18px;padding-left:22px}.connect-steps li{margin-bottom:10px}.token-box{background:var(--bg);border:1px solid var(--accent);word-break:break-all;border-radius:8px;margin:8px 0 18px;padding:16px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}footer{text-align:center;color:var(--fg-muted);margin-top:32px;font-size:13px}.scope-list{margin:16px 0 24px;padding:0;list-style:none}.scope-list li{border-left:3px solid var(--accent);background:#7de58a0d;border-radius:0 4px 4px 0;margin-bottom:6px;padding:8px 12px}.button-row{gap:12px;display:flex}.button-row button{flex:1}.btn-secondary{color:var(--fg);border:1px solid var(--border);background:0 0}.btn-secondary:hover{background:var(--card)}.error-banner{background:var(--danger-bg);border:1px solid var(--error);color:var(--error);border-radius:8px;margin-bottom:16px;padding:12px 16px}