: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}body,html{background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5;min-height:100vh}.container{max-width:640px;margin:0 auto;padding:48px 20px}h1{font-size:28px;font-weight:600;margin-bottom:8px}.lede{color:var(--fg-muted);margin-bottom:32px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:28px}form{gap:18px}form,label{display:flex;flex-direction:column}label{gap:6px;font-size:14px;font-weight:500}label .hint{font-weight:400;font-size:13px;color:var(--fg-muted)}input{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:15px;font-family:inherit}input:focus{outline:none;border-color:var(--accent)}input:disabled{opacity:.6}button{background:var(--accent);color:#0b1e10;border:none;border-radius:8px;padding:12px 16px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit}button:hover{background:var(--accent-dim)}button:disabled{background:var(--border);color:var(--fg-muted);cursor:not-allowed}.alert{padding:14px 16px;border-radius:8px;font-size:14px;margin-bottom:18px}.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{background:rgba(125,229,138,.06);border:1px solid var(--accent-dim);color:var(--fg)}.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);border-radius:8px;padding:16px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;word-break:break-all;margin:8px 0 18px}footer{margin-top:32px;text-align:center;color:var(--fg-muted);font-size:13px}.scope-list{list-style:none;padding:0;margin:16px 0 24px}.scope-list li{padding:8px 12px;border-left:3px solid var(--accent);background:rgba(125,229,138,.05);margin-bottom:6px;border-radius:0 4px 4px 0}.button-row{display:flex;gap:12px}.button-row button{flex:1 1}.btn-secondary{background:transparent;color:var(--fg);border:1px solid var(--border)}.btn-secondary:hover{background:var(--card)}.error-banner{background:var(--danger-bg);border:1px solid var(--error);border-radius:8px;padding:12px 16px;margin-bottom:16px;color:var(--error)}