/* Access surfaces use their own palette in both themes. */
.access-shell,.trader-home,.trader-profile-card{
 --access-bg:#181e21;
 --access-surface:#21292b;
 --access-text:#f1f4ee;
 --access-muted:#b5bfb8;
 --access-subtle:#a0ada4;
 --access-line:#3a4741;
 --access-accent:#c7e6a6;
 --access-soft:#c7e6a60b;
 --access-selected:#c7e6a615;
 --access-selected-border:#8baf70;
 --access-cta:#c7e6a6;
 --access-cta-ink:#1d2919;
 --access-tab:#28362d;
 --access-error:#ffb0a5;
 --access-error-bg:#f9765e0b;
}
[data-theme=light] .access-shell,
[data-theme=light] .trader-home,
[data-theme=light] .trader-profile-card{
 --access-bg:#f7f8f5;
 --access-surface:#ffffff;
 --access-text:#243028;
 --access-muted:#5f6d63;
 --access-subtle:#66736a;
 --access-line:#d8e0d8;
 --access-accent:#4f6b43;
 --access-soft:#eef2eb;
 --access-selected:#eaf0e4;
 --access-selected-border:#6f8666;
 --access-cta:#26382e;
 --access-cta-ink:#ffffff;
 --access-tab:#e5ecdf;
 --access-error:#a13222;
 --access-error-bg:#f9eeeb;
}
.access-shell{
 max-width:430px;
 margin:0 auto;
 min-height:100dvh;
 padding:max(30px,env(safe-area-inset-top)) 26px max(25px,env(safe-area-inset-bottom));
 color:var(--access-text);
 background:var(--access-bg);
 font-family:Inter,system-ui,sans-serif;
 box-sizing:border-box;
 animation:access-enter .24s ease-out;
}
.access-brand{
 display:flex;
 gap:11px;
 align-items:center;
 width:fit-content;
 font-family:Manrope,Inter,system-ui,sans-serif;
 font-size:20px;
 font-weight:800;
 color:var(--access-text);
 text-decoration:none;
 letter-spacing:-.6px;
 margin-bottom:34px;
}
.access-shell:has(.access-tabs) .access-brand{margin-bottom:66px}
.access-brand svg{color:var(--access-accent);width:31px;height:31px}
.access-shell h1{
 font-family:Manrope,Inter,system-ui,sans-serif;
 font-size:clamp(30px,8.2vw,35px);
 font-weight:750;
 line-height:1.17;
 letter-spacing:-1.15px;
 margin:12px 0 18px;
 outline:none;
 overflow-wrap:anywhere;
}
.access-shell .eyebrow,.trader-home .eyebrow,.trader-profile-card .eyebrow{
 font-size:10px;
 font-weight:600;
 letter-spacing:1.45px;
 color:var(--access-accent);
}
.access-intro,.access-question-intro{
 font-size:14px;
 line-height:1.75;
 color:var(--access-muted);
 margin:0 0 28px;
}
.access-tabs{
 display:flex;
 padding:4px;
 border:1px solid var(--access-line);
 background:var(--access-soft);
 border-radius:13px;
 margin-bottom:22px;
 gap:5px;
}
.access-tabs button{
 flex:1;
 min-height:44px;
 border:0;
 border-radius:9px;
 font:inherit;
 font-size:13px;
 background:transparent;
 color:var(--access-muted);
 transition:background .18s,color .18s;
}
.access-tabs [aria-pressed=true]{background:var(--access-tab);color:var(--access-text);font-weight:650}
.access-provider-list{display:grid;gap:12px}
.access-provider-list>button{
 display:grid;
 grid-template-columns:24px minmax(0,1fr);
 align-items:center;
 gap:13px;
 width:100%;
 min-height:56px;
 padding:15px 17px;
 border:1px solid var(--access-line);
 border-radius:13px;
 background:var(--access-surface);
 color:var(--access-text);
 font:inherit;
 font-size:14px;
 text-align:left;
 transition:transform .15s,border-color .15s;
}
.access-provider-list>button[data-access-provider=google],
.access-provider-list>button[data-access-provider=apple]{
 background:#ffffff;
 color:#202124;
 border-color:#d9ded8;
 box-shadow:0 2px 4px #00000004;
}
.access-provider-mark{display:grid;place-items:center;width:24px;color:inherit}
.access-provider-mark svg{display:block;flex:none}
.access-provider-label{min-width:0;font-weight:550;line-height:1.4}
.access-provider-list small{font-size:8px;letter-spacing:.8px;color:var(--access-subtle);font-weight:500}
.access-provider-list>button[data-access-provider=google] small,
.access-provider-list>button[data-access-provider=apple] small{color:#657064}
.access-or{display:flex;align-items:center;gap:14px;font-size:11px;margin:6px 0;color:var(--access-subtle)}
.access-or:before,.access-or:after{content:'';height:1px;flex:1;background:var(--access-line)}
.access-disclosure{
 font-size:11px;
 line-height:1.75;
 margin:23px 0 0;
 color:var(--access-muted);
 padding:0;
 border:0;
}
.access-returning{
 font-size:12px;
 line-height:1.65;
 color:var(--access-muted);
 margin:0 1px 20px;
}
.access-footer{font-size:10px;letter-spacing:.2px;color:var(--access-subtle);text-align:center;line-height:1.75;margin:40px 0 0}
.access-back,.access-fill{border:0;background:transparent;color:var(--access-muted);font:inherit;font-size:12px;min-height:44px;padding:10px 0;cursor:pointer}
.access-back{margin-bottom:20px;text-align:left}
.access-field{display:grid;gap:10px;margin:23px 0;font-size:13px;font-weight:500;color:var(--access-text)}
.access-field input,.access-field select{
 width:100%;box-sizing:border-box;min-height:52px;
 border:1px solid var(--access-line);border-radius:12px;
 background:var(--access-surface);color:var(--access-text);
 padding:14px;font:inherit;font-size:16px;
}
.access-field option{background:var(--access-surface);color:var(--access-text)}
.access-field input::placeholder{color:var(--access-subtle);opacity:1}
.access-field input:focus,.access-field select:focus{outline:2px solid var(--access-accent);outline-offset:2px}
.access-primary{
 display:block;width:100%;min-height:53px;
 border:1px solid transparent;border-radius:13px;
 background:var(--access-cta);color:var(--access-cta-ink);
 padding:17px 15px;font:inherit;font-size:14px;font-weight:650;
 text-align:center;cursor:pointer;margin-top:27px;transition:transform .15s;
}
.access-primary:active,.access-provider-list>button:active{transform:scale(.985)}
.access-shell button:focus-visible,.trader-profile-card button:focus-visible,.trader-home a:focus-visible{outline:2px solid var(--access-accent);outline-offset:3px}
.access-fill{color:var(--access-accent);text-decoration:underline;text-underline-offset:3px}
.access-error{color:var(--access-error);background:var(--access-error-bg);border-radius:10px;padding:12px;font-size:13px;line-height:1.5}
.access-error[hidden]{display:none}
.access-identity{display:flex;gap:13px;align-items:center;border:1px solid var(--access-line);background:var(--access-surface);border-radius:17px;padding:20px 15px;margin:28px 0}
.access-avatar{
 display:grid;place-items:center;flex-shrink:0;
 width:47px;height:47px;border-radius:14px;
 border:1px solid var(--access-line);
 background:var(--access-selected);color:var(--access-accent);font-size:22px;
}
.access-identity div{min-width:0;display:grid;gap:7px}
.access-identity strong{font-size:15px;overflow-wrap:anywhere}
.access-identity small{font-size:11px;color:var(--access-muted);overflow-wrap:anywhere}
.access-identity>span:last-child{margin-left:auto;font-size:8px;letter-spacing:1px;color:var(--access-subtle)}
.access-wizard-top{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin-bottom:12px;color:var(--access-muted)}
.access-wizard-top .access-back{margin:0}
.access-progress{height:3px;background:var(--access-line);margin:0 0 35px;overflow:hidden;border-radius:3px}
.access-progress>span{display:block;height:100%;background:var(--access-accent);transition:width .3s ease}
.access-shell fieldset{border:0;margin:25px 0;padding:0;min-width:0}
.access-shell legend{font-size:13px;margin-bottom:13px;line-height:1.6}
.access-choices{display:grid;gap:10px}
.access-choice{
 position:relative;display:flex;align-items:center;
 border:1px solid var(--access-line);border-radius:13px;
 background:var(--access-surface);min-height:51px;padding:13px 15px;
 box-sizing:border-box;font-size:14px;line-height:1.4;cursor:pointer;
 transition:background .18s,border-color .18s;
}
.access-choice input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}
.access-choice>span{padding-right:28px}
.access-choice i{font-style:normal;font-size:10px;color:transparent;display:grid;place-items:center;width:18px;height:18px;border:1px solid var(--access-selected-border);border-radius:50%;margin-left:auto}
.access-multi{grid-template-columns:1fr 1fr}
.access-multi .access-choice i{border-radius:5px;font-size:12px}
.access-choice:has(input:checked){border-color:var(--access-selected-border);background:var(--access-selected)}
.access-choice input:checked~i{color:var(--access-accent);border-color:var(--access-accent)}
.access-choice:has(input:focus-visible){outline:2px solid var(--access-accent);outline-offset:2px}
.access-hint{font-size:11px;line-height:1.7;color:var(--access-muted)}
.access-preview{border:1px solid var(--access-line);border-radius:20px;padding:25px 21px;background:var(--access-surface)}
.access-preview h2{font-size:28px;letter-spacing:-.8px;margin:15px 0 8px;overflow-wrap:anywhere}
.access-preview>p{font-size:13px;color:var(--access-muted)}
.access-tags{display:flex;flex-wrap:wrap;gap:7px;margin:17px 0}
.access-tags span{font-size:10px;padding:6px 10px;border:1px solid var(--access-line);border-radius:20px;background:var(--access-soft);color:var(--access-accent)}
.access-preview dl{font-size:13px;margin:24px 0 0;display:grid;gap:9px;line-height:1.6}
.access-preview dt{color:var(--access-muted);font-size:11px;margin-top:5px}
.access-preview dd{margin:0}
.access-loading,.access-complete{min-height:68dvh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;animation:access-enter .3s ease-out}
.access-loading>span{width:40px;height:40px;border-radius:50%;border:2px solid var(--access-line);border-top-color:var(--access-accent);animation:access-spin .8s linear infinite;margin:20px 0}
.access-loading p,.access-complete p{font-size:14px;line-height:1.7;color:var(--access-muted)}
.access-complete h1>span{color:var(--access-accent)}
.access-complete-mark{
 width:48px;height:48px;border:1px solid var(--access-line);border-radius:50%;
 display:grid;place-items:center;font-size:25px;
 color:var(--access-accent);background:var(--access-selected);margin:12px 0 27px;
 animation:access-pop .4s ease-out;
}
.trader-home{margin:0 0 27px;color:var(--access-text)}
.trader-home h1{font-size:31px;letter-spacing:-1px;line-height:1.25;margin:10px 0}
.trader-home h1 span{color:var(--access-accent)}
.trader-home>p:not(.eyebrow){font-size:12px;line-height:1.6;color:var(--access-muted)}
.trader-review-note{display:flex;gap:12px;padding:15px 0;margin:12px 0;border-top:1px solid var(--access-line);font-size:12px;line-height:1.5}
.trader-review-note small{display:block;font-size:10px;color:var(--access-muted);margin-top:5px}
.trader-recommendations{display:grid;gap:8px}
.trader-recommendations a{display:flex;align-items:center;gap:15px;justify-content:space-between;color:inherit;text-decoration:none;border:1px solid var(--access-line);border-radius:12px;background:var(--access-surface);padding:14px;min-height:44px}
.trader-recommendations strong{font-size:13px;display:block}
.trader-recommendations small{display:block;font-size:11px;line-height:1.6;color:var(--access-muted);margin-top:5px}
.trader-recommendations b{font-size:20px;color:var(--access-accent);font-weight:400}
.trader-profile-card{border:1px solid var(--access-line);border-radius:20px;background:var(--access-surface);padding:22px;margin:25px 0;color:var(--access-text)}
.trader-profile-card h2{font-size:23px;margin:10px 0}
.trader-profile-card>p:not(.eyebrow){font-size:12px;line-height:1.6;color:var(--access-muted)}
.access-logout{display:block;width:100%;background:transparent;color:var(--access-text);border:1px solid var(--access-line);border-radius:12px;font:inherit;font-size:13px;padding:14px;margin-top:20px;min-height:47px}
@keyframes access-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes access-spin{to{transform:rotate(360deg)}}
@keyframes access-pop{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}
[data-motion=reduced] .access-shell,[data-motion=reduced] .access-loading,[data-motion=reduced] .access-loading>span,[data-motion=reduced] .access-complete-mark{animation:none!important}
[data-motion=reduced] .access-progress>span,[data-motion=reduced] .access-primary,[data-motion=reduced] .access-tabs button,[data-motion=reduced] .access-choice{transition:none!important}
@media(prefers-reduced-motion:reduce){
 .access-shell,.access-loading,.access-loading>span,.access-complete-mark{animation:none!important}
 .access-progress>span,.access-primary,.access-tabs button,.access-choice{transition:none!important}
}
