/* Shared controls: distinct action zones, quiet defaults and visible focus. */
.text-action,.action-row>a:not(.button),.account-nav>a,.footer-links>a,.switch>a,.auth-help>a,.streak-card>a,.founder-copy>a { text-decoration:none; color:var(--muted); transition:color 150ms ease-out; }
.text-action:hover,.text-action:focus-visible,.action-row>a:not(.button):hover,.action-row>a:not(.button):focus-visible,.account-nav>a:hover,.account-nav>a:focus-visible,.footer-links>a:hover,.footer-links>a:focus-visible,.switch>a:hover,.switch>a:focus-visible,.auth-help>a:hover,.auth-help>a:focus-visible,.streak-card>a:hover,.streak-card>a:focus-visible,.founder-copy>a:hover,.founder-copy>a:focus-visible { color:var(--accent-soft); }
.text-action { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-weight:600; }
.button { transition:background-color 150ms ease-out,transform 150ms ease-out; }
.button:hover { transform:none; }
.button:active:not(:disabled) { transform:scale(.96); }
.theme-toggle,.icon-button { min-width:44px; min-height:44px; }
.icon-button { display:inline-grid; place-items:center; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--muted); cursor:pointer; flex:none; font-size:1.5rem; line-height:1; }
.icon-button:hover,.icon-button:focus-visible { color:var(--text); background:var(--accent-tint); }
html.theme-switching *,html.theme-switching *::before,html.theme-switching *::after { transition:none!important; }
/* Auth actions have their own rhythm beneath the primary button. */
.auth-help { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 24px; margin:18px 0 0; font-size:.9rem; text-align:center; }
.auth-help>a { display:inline-flex; align-items:center; min-height:44px; }
.auth-panel .switch { margin-top:24px; }
.auth-panel .switch>a { display:inline-flex; align-items:center; min-height:44px; margin-inline-start:4px; font-weight:600; }
.auth-divider { display:flex; align-items:center; gap:16px; color:var(--muted); font-size:.8rem; margin:22px 0; }
.auth-divider::before,.auth-divider::after { content:''; height:1px; flex:1; background:var(--line); }
.auth-google { width:100%; gap:12px; }
.auth-google svg { width:20px; height:20px; flex:none; }
.auth-google.secondary:hover { background:var(--accent-tint); }
.password-label-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; }
.password-label-row label { margin:0; }
.password-toggle { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:64px; min-height:36px; border:0; border-radius:8px; padding:4px 8px; background:transparent; color:var(--muted); font-size:.85rem; cursor:pointer; }
.password-toggle:hover,.password-toggle:focus-visible { background:var(--accent-tint); color:var(--accent-soft); }
.password-rules { list-style:none; margin:14px 0 0; padding:0; display:grid; gap:7px; color:var(--muted); font-size:.8rem; line-height:1.4; }
.password-rule { display:flex; align-items:baseline; gap:8px; }
.password-rule-mark { display:inline-block; width:14px; flex:none; }
.password-rule[data-valid=true] { color:var(--gain); }

.password-count { margin-inline-start:auto; font-variant-numeric:tabular-nums; }
.auth-code-input { font-family:var(--font-data); font-variant-numeric:tabular-nums; font-size:1.7rem; letter-spacing:.28em; text-align:center; }
/* A stable workspace: consistent navigation plus a visible account context. */
.app-layout { grid-template-columns:224px minmax(0,1fr); gap:clamp(24px,3vw,48px); }
.sidebar nav a { min-height:44px; line-height:1.4; transition:background-color 150ms ease-out,color 150ms ease-out; }
.sidebar nav a.active,.sidebar nav a.active:hover { background:var(--button-bg); color:var(--button-text); }
.sidebar nav .icon { width:20px; height:20px; }
.sidebar nav a:focus-visible { outline-offset:-3px; }
.nav-lock-label { white-space:nowrap; font-size:.76rem; }
.sidebar-logout { min-height:44px; }
.sidebar-logout:hover,.sidebar-logout:focus-visible { color:var(--accent-soft); }
.workspace-context { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:32px; padding-bottom:20px; border-bottom:1px solid var(--line); }
.workspace-context>div { min-width:0; }
.workspace-context-label { display:block; color:var(--muted); font-size:.73rem; margin-bottom:3px; }
.workspace-context strong { display:block; font-size:.95rem; font-weight:600; overflow-wrap:anywhere; }
.workspace-context .text-action { flex-shrink:0; font-size:.85rem; }
.workspace-context .icon { width:16px; height:16px; }
.workspace-menu-toggle { display:flex; align-items:center; gap:10px; width:100%; min-height:48px; padding:12px 16px; border:1px solid var(--line); border-radius:16px; background:var(--surface); color:var(--text); font-size:.9rem; cursor:pointer; }
.workspace-menu-toggle>span { margin-inline-start:auto; }
.workspace-menu-toggle[aria-expanded=true]>span { transform:rotate(180deg); }
.account-list-tabs { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 24px; }
.account-list-tabs>a { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:8px 16px; border:1px solid transparent; border-radius:24px; color:var(--muted); text-decoration:none; font-size:.9rem; }
.account-list-tabs>a.active { background:var(--accent-tint); border-color:var(--line); color:var(--text); font-weight:600; }
.account-list-tabs>a:hover { color:var(--accent-soft); }
.account-list-tabs span { font-variant-numeric:tabular-nums; }
.account-card { min-width:0; }
.account-card .account-symbol { margin-bottom:20px; }
.account-card .account-open { margin-top:24px; font-weight:600; }
/* Native dialog supplies keyboard trapping, Escape, and an inert background. */
.account-picker { width:min(520px,calc(100% - 32px)); max-height:calc(100dvh - 48px); margin:auto; padding:28px; color:var(--text); background:var(--surface); border:1px solid var(--line); border-radius:28px; box-shadow:var(--shadow); overflow-y:auto; }
.account-picker::backdrop { background:rgb(8 15 9 / .48); }
.account-picker[open] { animation:picker-enter 180ms cubic-bezier(.2,0,0,1); }
.account-picker-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.account-picker-heading .eyebrow { margin-bottom:10px; }
.account-picker-heading h2 { font-size:1.8rem; margin-bottom:12px; }
.account-picker-list { display:grid; gap:10px; margin:24px 0; }
.account-picker-option { display:flex; align-items:center; gap:14px; padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--surface-inset); color:var(--text); text-decoration:none; transition:background-color 150ms ease-out,border-color 150ms ease-out; }
.account-picker-option>span { flex:1; min-width:0; }
.account-picker-option strong { display:block; font-weight:600; overflow-wrap:anywhere; }
.account-picker-option small { display:block; margin-top:3px; color:var(--muted); }
.account-picker-option:hover,.account-picker-option:focus-visible { border-color:var(--accent-soft); background:var(--accent-tint); }
.account-picker-option>.icon:last-child { width:18px; height:18px; }
.account-picker>.button { width:100%; }
.picker-empty { padding:12px 0; }
.picker-empty>.icon { color:var(--accent-soft); margin-bottom:16px; }
.picker-empty p { margin-bottom:8px; }
@keyframes picker-enter { from { opacity:0; transform:translateY(6px) scale(.98); } to { opacity:1; transform:none; } }
@media(min-width:801px) { .sidebar { padding-top:0; } }
@media(max-width:800px) {
  .app-layout { grid-template-columns:minmax(0,1fr); gap:24px; }
  .sidebar { position:static; min-height:0; padding:0; }
  #workspace-navigation { padding-top:16px; }
  .sidebar nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .sidebar nav a { padding:12px; white-space:normal; }
  .sidebar-bottom { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; padding:16px 12px 0; }
  .sidebar-bottom .hint { display:none; }
  .sidebar-bottom form { margin-inline-start:auto; }
  .workspace-context { margin-bottom:24px; padding-bottom:16px; }
}
@media(max-width:420px) {
  .auth-panel { padding:28px 22px; }
  .sidebar nav { grid-template-columns:minmax(0,1fr); }
  .workspace-context { gap:12px; }
  .workspace-context .text-action { max-width:110px; line-height:1.3; }
  .account-picker { padding:22px; border-radius:24px; }
  .account-picker-option { padding:14px; }
  .account-picker-heading h2 { font-size:1.5rem; }
}
@media(hover:none) { .interactive-card:hover,.interactive-card:focus-within { transform:none; } }
@media(prefers-reduced-motion:reduce) { .button:active:not(:disabled),.account-picker[open] { transform:none; animation:none; } }

.auth-code-panel { max-width:560px; margin-inline:auto; padding:clamp(24px,4vw,40px); }
.auth-code-panel h1 { font-size:clamp(2rem,4vw,2.65rem); }
.auth-code-panel .button[type=submit] { width:100%; }
/* Standalone actions are recognizable by placement and focus, prose links keep underlines. */
.workspace .card>a:not(.button),.workspace .ledger>a:not(.button),.trade-actions>a:not(.button),.mt5-continue>a,.settings-account-context>a,.workspace .settings-actions>a { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; color:var(--muted); font-weight:600; transition:color 150ms ease-out; }
.workspace .card>a:not(.button):hover,.workspace .ledger>a:not(.button):hover,.trade-actions>a:not(.button):hover,.mt5-continue>a:hover,.settings-account-context>a:hover,.workspace .settings-actions>a:hover,.workspace .card>a:not(.button):focus-visible,.workspace .ledger>a:not(.button):focus-visible,.trade-actions>a:not(.button):focus-visible,.mt5-continue>a:focus-visible,.settings-account-context>a:focus-visible,.workspace .settings-actions>a:focus-visible { color:var(--accent-soft); }
.workspace .settings-jump>a { display:inline-flex; align-items:center; min-height:44px; padding:8px 14px; border-radius:24px; text-decoration:none; color:var(--muted); background:var(--surface-inset); }
.workspace .settings-jump>a:hover,.workspace .settings-jump>a:focus-visible { color:var(--accent-soft); background:var(--accent-tint); }
.workspace nav.settings-jump>a[aria-current],.workspace nav.settings-actions>a[aria-current] { color:var(--accent-soft); text-decoration:none; background:var(--accent-tint); padding:8px 14px; border-radius:24px; }
.auth-google-note { text-align:center; margin:12px 0 0; }

.account-picker[data-keyboard-open=true] { animation:none; }

/* Policy documents and explicit signup agreement. */
.policy-acceptance { margin-block: 1.25rem; }
.policy-checkbox { display: flex; gap: .75rem; align-items: flex-start; cursor: pointer; }
.policy-checkbox input[type="checkbox"] { width: 1.2rem; height: 1.2rem; flex: 0 0 1.2rem; margin-top: .2rem; }
.legal-document { max-width: 76ch; margin: 2rem auto; padding: clamp(1.25rem, 4vw, 3rem); overflow-wrap: anywhere; }
.legal-document h2 { margin-top: 2rem; font-size: 1.4rem; }
.legal-document p, .legal-document li { line-height: 1.7; }
@media print { .masthead, .site-footer, .public-header { display: none; } .legal-document { max-width: none; box-shadow: none; border: 0; } }

.button.policy-submit:disabled { background: var(--line); color: var(--muted); border-color: transparent; box-shadow: none; cursor: not-allowed; opacity: .65; transform: none; }
