.hub-account-actions { display:flex; align-items:center; justify-content:flex-end; gap:9px; }
.hub-account-button { display:flex; align-items:center; justify-content:center; gap:7px; min-height:42px; padding:10px 14px; border:1px solid var(--theme-line-strong); border-radius:24px; background:var(--theme-panel); color:var(--theme-text); font-size:13px; font-weight:600; cursor:pointer; white-space:nowrap; }
.hub-account-button span { max-width:100px; overflow:hidden; text-overflow:ellipsis; }
.runner-auth-dialog { margin:auto; padding:0; width:min(440px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow-y:auto; border:1px solid var(--theme-line-strong); border-radius:26px; color:var(--theme-text); background:var(--theme-panel); box-shadow:0 26px 90px #1a141038; font-family:"IBM Plex Sans",sans-serif; }
.runner-auth-dialog::backdrop { background:#211a1266; backdrop-filter:blur(5px); }
.runner-auth-content { position:relative; padding:34px 30px 26px; text-align:center; }
.runner-auth-close { position:absolute; right:14px; top:14px; display:grid; place-items:center; width:32px; height:32px; border:0; border-radius:50%; background:transparent; color:var(--theme-muted); cursor:pointer; }
.runner-auth-logo { display:block; width:228px; max-width:85%; height:auto; margin:4px auto 24px; }
.runner-auth-title { font:600 27px/1.15 "Fraunces",Georgia,serif; letter-spacing:-.6px; margin:0 0 12px; }
.runner-auth-description { font-size:15px; line-height:1.65; color:var(--theme-muted); margin:0 auto 22px; max-width:290px; }
.runner-auth-google,.runner-auth-guest { display:flex; justify-content:center; align-items:center; gap:11px; width:100%; min-height:50px; padding:12px 15px; border-radius:12px; font:600 14px/1.4 "IBM Plex Sans",sans-serif; cursor:pointer; }
.runner-auth-google { background:#fff; color:#1f1f1f; border:1px solid #dadce0; }
.runner-auth-google:disabled { cursor:wait; opacity:.7; }
.runner-auth-guest { background:var(--theme-accent-ghost); color:var(--theme-brown); border:1px solid var(--theme-line); }
.runner-auth-divider { display:flex; align-items:center; gap:12px; color:var(--theme-faint); font-size:12px; margin:18px 0; }
.runner-auth-divider::before,.runner-auth-divider::after { content:""; height:1px; background:var(--theme-line); flex:1; }
.runner-auth-note { margin:16px 0 0; font-size:12px; line-height:1.6; color:var(--theme-faint); }
.runner-auth-note a { color:var(--theme-muted); text-underline-offset:3px; }
.hub-privacy-links { display:flex; justify-content:center; gap:24px; padding:24px 16px; font:12px/1.6 "IBM Plex Sans",sans-serif; }
.hub-privacy-links a { color:var(--theme-muted); text-underline-offset:3px; }
.runner-auth-error { margin:14px 0 0; padding:10px 12px; background:#ae573410; border-radius:10px; font-size:13px; line-height:1.5; color:#7b3b25; }
.runner-auth-email { overflow-wrap:anywhere; }
.runner-save-status { text-align:right; color:var(--theme-muted); font-size:12px; margin:-12px 0 14px; }
.runner-save-status p { margin:0; }
.runner-save-details { font-size:13px; line-height:1.5; }
.runner-save-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:16px; }
.runner-save-actions button { background:transparent; border:0; color:var(--theme-brown); text-decoration:underline; cursor:pointer; font:inherit; }
.runner-guest-import { border:1px solid var(--theme-accent); border-radius:12px; padding:12px; margin-top:14px; }
.runner-auth-avatar { display:grid; place-items:center; margin:8px auto 20px; width:64px; height:64px; border-radius:50%; background:var(--theme-accent); color:var(--theme-brown); font:600 30px "Fraunces",Georgia,serif; }
.runner-auth-provider { min-height:70px; text-align:left; }
.runner-welcome-lanes { display:flex; justify-content:center; gap:8px; margin:-6px 0 22px; }
.runner-welcome-lanes span { min-width:62px; padding:6px 10px 7px; border-radius:9px; color:#0f2138; font:800 16px/1 "IBM Plex Sans",sans-serif; box-shadow:inset 0 0 0 2px #0f21382e, 0 3px 0 #1a141024; }
.runner-welcome-lanes .der { background:#5bb8ff; }
.runner-welcome-lanes .die { background:#ff6fa8; }
.runner-welcome-lanes .das { background:#46d98a; }
.runner-welcome-play { display:flex; justify-content:center; align-items:center; gap:10px; width:100%; min-height:54px; padding:14px 16px; border:0; border-radius:12px; background:var(--theme-text); color:#fffdf7; font:700 16px/1.3 "IBM Plex Sans",sans-serif; cursor:pointer; box-shadow:0 8px 20px #1a141033; }
.runner-welcome-play:hover { background:var(--theme-brown); }
.runner-welcome-play:focus-visible, .runner-welcome-login:focus-visible { outline:3px solid var(--theme-accent-deep); outline-offset:3px; }
.runner-welcome-login { margin-top:10px; }
.hub-settings-howto { margin-top:4px; color:#4a3a2c; }
/* The popup supplies the welcome title; retain headings for later sign-in steps. */
.runner-auth-dialog .cl-signIn-start .cl-header { display:none; }
.hub-settings-identity { padding:0 0 14px; font-size:13px; color:var(--theme-muted); overflow-wrap:anywhere; }
@media(max-width:640px) {
  .hub-header { grid-template-columns:minmax(0,1fr) auto; }
  .hub-account-actions { grid-column:2; grid-row:1; align-self:start; padding-top:10px; gap:6px; }
  .hub-account-actions .hub-settings-trigger { margin:0; }
  .hub-account-button { padding:10px; }
  .hub-account-button span { max-width:65px; }
  .runner-auth-content { padding:34px 22px 24px; }
}
