:root{color-scheme:light;--ink:#192b40;--muted:#65758b;--bg:#f4f7fb;--line:#dbe4ed;--primary:#1265c5;--dark:#0f2845;--alert:#b42318;--ok:#067647;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(145deg,#f7fafd 0%,#edf3fa 100%);min-height:100vh;color:var(--ink);display:flex;flex-direction:column}header{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1040px)/2));gap:20px}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.brand{font-size:21px;font-weight:800;color:var(--dark);white-space:nowrap;letter-spacing:.03em}.brand span{color:var(--primary)}nav{display:flex;gap:20px;font-weight:600;font-size:14px}main{flex:1;display:flex;justify-content:center;align-items:flex-start;padding:76px 18px 60px}.panel{width:min(100%,474px);background:white;padding:36px;border:1px solid var(--line);border-radius:17px;box-shadow:0 18px 50px rgba(18,47,90,.07)}.panel.wide{width:min(100%,760px)}.eyebrow{font-size:11px;font-weight:800;color:var(--primary);letter-spacing:.18em;margin:0 0 8px}.panel h1{font-size:27px;letter-spacing:-.035em;margin:0 0 10px}.panel>p{color:var(--muted);line-height:1.7;margin-bottom:23px}form{display:grid;gap:18px;margin-top:24px}label{display:grid;gap:8px;font-size:13px;font-weight:700}input{border:1px solid #b8c7d7;border-radius:9px;font:inherit;font-size:16px;color:var(--ink);height:47px;width:100%;padding:0 13px;outline:none;background:white}input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1265c520}button,.outline{min-height:44px;border-radius:9px;border:1px solid var(--primary);background:var(--primary);color:white;font-size:14px;font-weight:700;padding:10px 18px;cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}button:hover:not(:disabled){filter:brightness(.95)}.outline{display:inline-flex;align-items:center;justify-content:center;color:var(--primary);background:white}.outline:hover{text-decoration:none;background:#f4f9ff}.danger{background:#fff;color:var(--alert);border-color:var(--alert);margin-top:16px}.links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:13px;margin-top:22px}.help{font-size:12px;color:var(--muted);line-height:1.7;margin:20px 0 0}.message{font-size:13px;min-height:0;line-height:1.6}.message:not(:empty){border-radius:8px;padding:10px 12px;background:#eff6ff;color:#1357a2}.message.error,.token-help.error{background:#fff1f0;color:var(--alert)}.message.success{background:#ecfdf3;color:var(--ok)}.token-help{font-size:13px;border-radius:8px;padding:0}.token-help:not(:empty){padding:10px 12px}dl{display:grid;grid-template-columns:minmax(125px,35%) 1fr;gap:14px;border-block:1px solid var(--line);padding:22px 0;margin:24px 0}dt{color:var(--muted);font-size:13px}dd{margin:0;font-size:14px;overflow-wrap:anywhere}.notice{background:#f2f6fb;border:1px solid var(--line);padding:15px;border-radius:9px;line-height:1.7;font-size:13px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.sessions{display:grid;gap:12px}.device{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;border:1px solid var(--line);border-radius:9px}.device>div{display:grid;gap:5px;min-width:0;overflow-wrap:anywhere}.device small{font-size:11px;color:var(--muted)}footer{padding:20px;text-align:center;font-size:11px;color:var(--muted)}@media(max-width:580px){header{height:66px;padding:0 16px}nav{gap:12px;font-size:12px}.brand{font-size:18px}main{padding:27px 12px 35px}.panel{padding:26px 20px;border-radius:12px}.panel h1{font-size:24px}dl{grid-template-columns:1fr;gap:5px}dd{margin-bottom:10px}.device{align-items:flex-start;flex-direction:column}}
[hidden]{display:none!important}.auth-management{border-top:1px solid var(--line);margin-top:30px;padding-top:20px}.auth-management h2{font-size:22px}.auth-management h3{font-size:17px;margin-top:26px}#auth-methods{display:grid;gap:10px}.external-auth{margin-top:24px}.device button{flex-shrink:0}

/* Reauthentication appears only when a protected action requires it. */
dialog#reauth-dialog { border:1px solid #d4dfef; border-radius:16px; padding:0; width:min(92vw,480px); max-height:90vh; overflow:auto; background:#fff; color:#1b293b; box-shadow:0 14px 65px #0b21495c; }
dialog#reauth-dialog::backdrop { background:rgba(15,23,42,.60); }
.reauth-content { padding:24px; }
.reauth-content h3 { margin:0 0 14px; }
.reauth-content .actions { display:flex; flex-wrap:wrap; gap:10px; margin:14px 0; }
.reauth-content #reauth-cancel { margin-top:12px; }
[hidden] {display:none !important;}

.check-line{display:flex;align-items:center;gap:10px;font-weight:500}.check-line input{width:20px;height:20px;flex:0 0 20px}#mfa-resend{margin-top:18px}#trusted-browser-management{display:grid;gap:12px}#trusted-browser-code{margin-top:0}

.deletion-danger{border:2px solid #ad2638;margin-top:2rem}.deletion-danger h1,.deletion-danger h2{color:#902132}.deletion-danger [hidden]{display:none!important}.deletion-danger form{margin-top:1.5rem}

/* Common fixed notifications: important mail instructions stay until dismissed. */
.auth-toast-stack{position:fixed;z-index:1200;top:16px;right:16px;width:min(420px,calc(100vw - 32px));display:grid;gap:10px;pointer-events:none}
.auth-toast{pointer-events:auto;background:#fff;border:1px solid #a4bde0;border-left:5px solid #1265c5;border-radius:12px;padding:15px 15px 13px;box-shadow:0 10px 36px #162f4b36;overflow-wrap:anywhere;font-size:14px;line-height:1.65;color:#192b40}
.auth-toast--success{border-left-color:#067647}.auth-toast--error{border-left-color:#b42318}
.auth-toast-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.auth-toast-title{font-size:15px;line-height:1.5}
.auth-toast-close{flex:0 0 32px;width:32px;min-height:32px;height:32px;padding:0;border:0;background:transparent;color:#33445c;font-size:24px;font-weight:400;line-height:1;border-radius:6px}
.auth-toast-close:hover:not(:disabled),.auth-toast-close:focus-visible{background:#e8eff8;filter:none;outline:2px solid #1265c5;outline-offset:2px}
.auth-toast-message{margin:9px 0 0;white-space:pre-line}.auth-toast-detail{margin:7px 0 0;color:#52647c;font-size:12px;white-space:pre-line}
@media(max-width:580px){.auth-toast-stack{top:8px;left:8px;right:8px;width:auto}.auth-toast{padding:12px 13px}}

.auth-toast-stack--in-dialog{position:sticky;top:0;right:auto;left:auto;width:auto;z-index:1;margin:0 10px 10px;max-width:100%}

.auth-toast-stack{max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}

/* Keep the previous account details hidden while an invalid session is redirected. */
.auth-session-shield{position:fixed;inset:0;z-index:2147483647;display:grid;place-items:center;background:#f7fafd;color:#1b293b;padding:20px;text-align:center}
.auth-session-shield__message{width:min(100%,460px);padding:28px 20px;border-radius:14px;border:1px solid #d4dfef;background:white;box-shadow:0 12px 40px #0b214928}
.auth-session-shield__message strong{font-size:19px}
.auth-session-shield__message p{font-size:14px;line-height:1.7;margin:14px 0 0}

/* Phase 2-D.3: spacing and responsive sizing on account deletion only.
   Keep all existing authentication screens and the deletion step logic intact. */
#deletion-procedure {
  min-width: 0;
}
#deletion-procedure #deletion-password,
#deletion-procedure #deletion-code,
#deletion-procedure #deletion-final {
  width: 100%;
  min-width: 0;
  margin: 24px 0 0;
  gap: 14px;
}
#deletion-procedure #deletion-password > button,
#deletion-procedure #deletion-code > button,
#deletion-procedure #deletion-final > button,
#deletion-procedure > button {
  display: block;
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
}
/* Buttons are separate siblings in the page; form gap does not space them. */
#deletion-procedure > button:not([hidden]) {
  margin-top: 14px;
}
#deletion-procedure #deletion-cancel:not([hidden]) {
  margin-top: 22px;
}
#deletion-procedure #deletion-final > button.danger {
  margin-top: 0;
}
#deletion-procedure #deletion-final .check-line {
  align-items: flex-start;
  line-height: 1.6;
}
#deletion-procedure > .links {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
@media (max-width: 580px) {
  #deletion-procedure #deletion-password,
  #deletion-procedure #deletion-code,
  #deletion-procedure #deletion-final {
    margin-top: 20px;
    gap: 12px;
  }
  #deletion-procedure > button:not([hidden]) {
    margin-top: 12px;
  }
  #deletion-procedure #deletion-cancel:not([hidden]) {
    margin-top: 20px;
  }
}

/* --------------------------------------------------------------------------
   Signup UI v1
   - Structure inspired by the existing Mitsumotaro 2 administrator login
   - Background uses the soft blue/lavender/mint/peach tone of the demo screen
   - Desktop layout is intentionally compact so the full signup flow fits in
     the first view on common 900px-high displays.
   -------------------------------------------------------------------------- */
body.auth-page--signup{
  --signup-navy:#102c67;
  --signup-navy-2:#243b7c;
  --signup-blue:#2f71df;
  --signup-orange:#ff7b22;
  --signup-card:#ffffff;
  --signup-soft:#f7f9ff;
  --signup-border:#d8e0f0;
  background:
    radial-gradient(circle at 13% 16%,rgba(189,216,255,.88) 0,rgba(189,216,255,0) 31%),
    radial-gradient(circle at 84% 14%,rgba(235,216,255,.86) 0,rgba(235,216,255,0) 33%),
    radial-gradient(circle at 14% 90%,rgba(205,250,239,.82) 0,rgba(205,250,239,0) 35%),
    radial-gradient(circle at 88% 90%,rgba(255,231,205,.78) 0,rgba(255,231,205,0) 36%),
    linear-gradient(135deg,#eef6ff 0%,#f4efff 48%,#fff8ee 100%);
  color:#112a55;
}
.auth-page--signup header{
  height:64px;
  background:rgba(255,255,255,.92);
  border-bottom:1px solid rgba(178,194,222,.64);
  backdrop-filter:blur(10px);
  padding-inline:max(24px,calc((100vw - 1120px)/2));
}
.auth-page--signup .brand.signup-header-brand{
  display:flex;
  align-items:center;
  gap:10px;
  color:#0e2b61;
  text-decoration:none;
  letter-spacing:0;
}
.auth-page--signup .brand.signup-header-brand:hover{
  text-decoration:none;
}
.signup-header-brand__logo{
  display:grid;
  place-items:center;
  width:43px;
  height:43px;
  flex:0 0 43px;
  overflow:hidden;
  border:2px solid #fff;
  border-radius:50%;
  background:#fff;
  box-shadow:0 4px 12px rgba(32,56,103,.14);
}
.signup-header-brand__logo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.signup-header-brand__text{
  display:grid;
  gap:1px;
  line-height:1.1;
}
.signup-header-brand__text strong{
  color:#0e2b61;
  font-size:19px;
  font-weight:800;
  letter-spacing:.02em;
}
.signup-header-brand__text small{
  color:#657594;
  font-size:10px;
  font-weight:700;
  letter-spacing:.035em;
}
.auth-page--signup nav{
  gap:22px;
  font-size:14px;
}
.auth-page--signup nav a[href="/signup"]{
  color:#17366f;
  font-weight:800;
  text-decoration:none;
  position:relative;
}
.auth-page--signup nav a[href="/signup"]::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-8px;
  height:2px;
  border-radius:999px;
  background:var(--signup-orange);
}
.auth-page--signup main{
  flex:1;
  min-height:0;
  display:block;
  padding:18px 18px 10px;
}
.auth-page--signup footer{
  flex:0 0 auto;
  padding:8px 16px 10px;
  color:#60708f;
  font-size:11px;
}
.signup-stage{
  width:min(100%,920px);
  margin:0 auto;
}
.signup-panel__badge{
  display:flex;
  justify-content:center;
  margin-bottom:12px;
}
.signup-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:36px;
  padding:6px 16px 6px 9px;
  border-radius:999px;
  background:var(--signup-orange);
  color:white;
  box-shadow:0 8px 22px rgba(212,94,19,.18);
  font-size:13px;
  font-weight:800;
  letter-spacing:.02em;
}
.signup-badge__number{
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:50%;
  background:#fff;
  color:var(--signup-orange);
  font-size:12px;
  line-height:1;
}
.auth-page--signup .signup-panel{
  width:min(100%,660px);
  margin:0 auto;
  padding:24px 30px 21px;
  border:1px solid rgba(190,201,224,.84);
  border-radius:20px;
  background:rgba(255,255,255,.97);
  box-shadow:0 18px 55px rgba(42,62,111,.13);
}
.signup-panel__heading{
  text-align:center;
  margin-bottom:15px;
}
.signup-panel__heading h2{
  margin:0;
  color:#122c5e;
  font-size:20px;
  letter-spacing:-.025em;
}
.signup-panel__heading p{
  margin:7px 0 0;
  color:#657594;
  font-size:12.5px;
  line-height:1.55;
}
.auth-page--signup .signup-form{
  gap:12px;
  margin-top:0;
}
.auth-page--signup .signup-form label{
  gap:6px;
  color:#182f57;
  font-size:12.5px;
}
.auth-page--signup .field-note{
  margin-left:6px;
  color:#7886a2;
  font-size:11px;
  font-weight:600;
}
.auth-page--signup .signup-form input{
  height:45px;
  border-color:#c4cfe1;
  border-radius:10px;
  background:#fff;
  color:#172b4d;
  font-size:15px;
  padding-inline:13px;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.auth-page--signup .signup-form input::placeholder{
  color:#9aa7bb;
}
.auth-page--signup .signup-form input:focus{
  border-color:#4e7fdb;
  background:#fbfdff;
  box-shadow:0 0 0 3px rgba(47,113,223,.13);
}
.auth-page--signup .signup-submit{
  width:100%;
  min-height:46px;
  margin-top:2px;
  border:0;
  border-radius:10px;
  background:linear-gradient(135deg,#245fc7 0%,#2f77e8 100%);
  box-shadow:0 8px 18px rgba(34,93,195,.19);
  font-size:14px;
  letter-spacing:.02em;
}
.auth-page--signup .signup-submit:hover:not(:disabled){
  filter:brightness(.97);
  transform:translateY(-1px);
}
.auth-page--signup .message:not(:empty){
  margin-top:0;
}
.auth-page--signup .external-auth{
  margin-top:12px;
  justify-content:center;
}
.auth-page--signup .external-auth:not(:has(button:not([hidden]))){
  display:none;
  margin:0;
}
.auth-page--signup .external-auth button:not([hidden]){
  flex:1 1 220px;
  max-width:280px;
  min-height:42px;
  border-color:#bac8de;
  background:#fff;
  color:#17376d;
  box-shadow:none;
}
.auth-page--signup .external-auth button:not([hidden]):hover{
  background:#f6f9ff;
  filter:none;
}
.signup-guidance{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:4px 10px;
  align-items:start;
  margin-top:13px;
  padding:10px 12px;
  border:1px solid #e0e6f1;
  border-radius:10px;
  background:#f8faff;
  color:#677691;
  font-size:11.5px;
  line-height:1.55;
}
.signup-guidance strong{
  color:#304d7d;
  white-space:nowrap;
}
.signup-login-link{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:9px;
  margin-top:27px;
  color:#6e7e99;
  font-size:12px;
}
.signup-login-link a{
  color:#1b5fc9;
  font-weight:800;
}

@media (max-height: 820px) and (min-width: 581px){
  .auth-page--signup main{padding-top:11px;padding-bottom:5px}
  .signup-panel__badge{margin-bottom:9px}
  .signup-badge{min-height:32px;padding-block:4px}
  .auth-page--signup .signup-panel{padding:19px 28px 17px}
  .signup-panel__heading{margin-bottom:11px}
  .signup-panel__heading h2{font-size:19px}
  .signup-panel__heading p{margin-top:5px}
  .auth-page--signup .signup-form{gap:9px}
  .auth-page--signup .signup-form input{height:42px}
  .auth-page--signup .signup-submit{min-height:43px}
  .signup-guidance{margin-top:9px;padding-block:8px}
  .signup-login-link{margin-top:18px}
  .auth-page--signup footer{padding-top:5px;padding-bottom:6px}
}

@media (max-width: 580px){
  .auth-page--signup header{
    height:58px;
    padding-inline:15px;
  }
  .signup-header-brand__logo{width:38px;height:38px;flex-basis:38px}
  .signup-header-brand__text strong{font-size:16px}
  .signup-header-brand__text small{font-size:9px}
  .auth-page--signup nav{gap:12px;font-size:12px}
  .auth-page--signup nav a[href="/signup"]::after{bottom:-6px}
  .auth-page--signup main{padding:16px 11px 8px}
  .signup-stage{width:100%}
  .signup-panel__badge{margin-bottom:10px}
  .signup-badge{min-height:32px;padding:5px 13px 5px 7px;font-size:11px}
  .signup-badge__number{width:20px;height:20px;font-size:11px}
  .auth-page--signup .signup-panel{
    padding:21px 18px 18px;
    border-radius:16px;
  }
  .signup-panel__heading{margin-bottom:14px}
  .signup-panel__heading h2{font-size:19px}
  .auth-page--signup .signup-form{gap:11px}
  .auth-page--signup .signup-form input{height:44px;font-size:16px}
  .signup-guidance{
    grid-template-columns:1fr;
    gap:2px;
    font-size:11px;
  }
  .signup-login-link{
    flex-wrap:wrap;
    gap:5px 8px;
    margin-top:20px;
  }
  .auth-page--signup footer{padding:7px 10px 9px}
}

/* --------------------------------------------------------------------------
   Signup UI v4
   - Password visibility checkbox
   - Logo + app name continue to link to /.
   - Only "SFP" links to https://sfplan.jp/; underline appears on hover/focus.
   -------------------------------------------------------------------------- */
.auth-page--signup .brand.signup-header-brand{
  display:grid;
  grid-template-columns:43px auto;
  grid-template-rows:auto auto;
  column-gap:10px;
  row-gap:0;
  align-items:center;
  color:#0e2b61;
  letter-spacing:0;
}
.auth-page--signup .signup-header-brand__logo-link{
  grid-column:1;
  grid-row:1 / 3;
  display:block;
  width:43px;
  height:43px;
  border-radius:50%;
  text-decoration:none;
}
.auth-page--signup .signup-header-brand__logo-link:hover,
.auth-page--signup .signup-header-brand__logo-link:focus-visible,
.auth-page--signup .signup-header-brand__title:hover,
.auth-page--signup .signup-header-brand__title:focus-visible{
  text-decoration:none;
}
.auth-page--signup .signup-header-brand__title{
  grid-column:2;
  grid-row:1;
  align-self:end;
  color:#0e2b61;
  font-size:19px;
  font-weight:800;
  letter-spacing:.02em;
  line-height:1.1;
  text-decoration:none;
}
.auth-page--signup .brand.signup-header-brand > small{
  grid-column:2;
  grid-row:2;
  align-self:start;
  color:#657594;
  font-size:10px;
  font-weight:700;
  letter-spacing:.035em;
  line-height:1.1;
}
.auth-page--signup .signup-header-brand__sfp{
  color:inherit;
  text-decoration:none;
}
.auth-page--signup .signup-header-brand__sfp:hover,
.auth-page--signup .signup-header-brand__sfp:focus-visible{
  text-decoration:underline;
  text-underline-offset:2px;
}
.auth-page--signup .signup-password-field{
  display:grid;
  gap:6px;
}
.auth-page--signup .signup-password-toggle{
  display:inline-flex;
  width:max-content;
  align-items:center;
  gap:7px;
  margin-top:1px;
  color:#5f6f8d;
  font-size:11.5px;
  font-weight:600;
  line-height:1.35;
  cursor:pointer;
  user-select:none;
}
.auth-page--signup .signup-form .signup-password-toggle input[type="checkbox"]{
  width:15px;
  height:15px;
  min-width:15px;
  min-height:15px;
  margin:0;
  padding:0;
  accent-color:var(--signup-blue);
  box-shadow:none;
  cursor:pointer;
}
.auth-page--signup .signup-form .signup-password-toggle input[type="checkbox"]:focus-visible{
  outline:2px solid rgba(47,113,223,.34);
  outline-offset:2px;
}
@media (max-height: 820px) and (min-width: 581px){
  .auth-page--signup .signup-password-toggle{font-size:11px;gap:6px}
}
@media (max-width: 580px){
  .auth-page--signup .brand.signup-header-brand{grid-template-columns:38px auto}
  .auth-page--signup .signup-header-brand__logo-link{width:38px;height:38px}
  .auth-page--signup .signup-header-brand__title{font-size:16px}
  .auth-page--signup .brand.signup-header-brand > small{font-size:9px}
}


/* --------------------------------------------------------------------------
   Verify UI v9
   - Registration confirmation now uses the same visual frame as /signup.
   - Verification result messages stay inline; app.js suppresses verify-submit
     toast notifications so the same message is not duplicated on screen.
   -------------------------------------------------------------------------- */
body.auth-page--verify{
  --signup-navy:#102c67;
  --signup-navy-2:#243b7c;
  --signup-blue:#2f71df;
  --signup-orange:#ff7b22;
  --signup-card:#ffffff;
  --signup-soft:#f7f9ff;
  --signup-border:#d8e0f0;
  background:
    radial-gradient(circle at 13% 16%,rgba(189,216,255,.88) 0,rgba(189,216,255,0) 31%),
    radial-gradient(circle at 84% 14%,rgba(235,216,255,.86) 0,rgba(235,216,255,0) 33%),
    radial-gradient(circle at 14% 90%,rgba(205,250,239,.82) 0,rgba(205,250,239,0) 35%),
    radial-gradient(circle at 88% 90%,rgba(255,231,205,.78) 0,rgba(255,231,205,0) 36%),
    linear-gradient(135deg,#eef6ff 0%,#f4efff 48%,#fff8ee 100%);
  color:#112a55;
}
.auth-page--verify header{
  height:64px;
  background:rgba(255,255,255,.92);
  border-bottom:1px solid rgba(178,194,222,.64);
  backdrop-filter:blur(10px);
  padding-inline:max(24px,calc((100vw - 1120px)/2));
}
.auth-page--verify .brand.signup-header-brand{
  display:grid;
  grid-template-columns:43px auto;
  grid-template-rows:auto auto;
  column-gap:10px;
  row-gap:0;
  align-items:center;
  color:#0e2b61;
  letter-spacing:0;
}
.auth-page--verify .signup-header-brand__logo-link{
  grid-column:1;
  grid-row:1 / 3;
  display:block;
  width:43px;
  height:43px;
  border-radius:50%;
  text-decoration:none;
}
.auth-page--verify .signup-header-brand__logo-link:hover,
.auth-page--verify .signup-header-brand__logo-link:focus-visible,
.auth-page--verify .signup-header-brand__title:hover,
.auth-page--verify .signup-header-brand__title:focus-visible{
  text-decoration:none;
}
.auth-page--verify .signup-header-brand__title{
  grid-column:2;
  grid-row:1;
  align-self:end;
  color:#0e2b61;
  font-size:19px;
  font-weight:800;
  letter-spacing:.02em;
  line-height:1.1;
  text-decoration:none;
}
.auth-page--verify .brand.signup-header-brand > small{
  grid-column:2;
  grid-row:2;
  align-self:start;
  color:#657594;
  font-size:10px;
  font-weight:700;
  letter-spacing:.035em;
  line-height:1.1;
}
.auth-page--verify .signup-header-brand__sfp{
  color:inherit;
  text-decoration:none;
}
.auth-page--verify .signup-header-brand__sfp:hover,
.auth-page--verify .signup-header-brand__sfp:focus-visible{
  text-decoration:underline;
  text-underline-offset:2px;
}
.auth-page--verify nav{
  gap:22px;
  font-size:14px;
}
.auth-page--verify nav a[href="/signup"]{
  color:#17366f;
  font-weight:800;
  text-decoration:none;
  position:relative;
}
.auth-page--verify nav a[href="/signup"]::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-8px;
  height:2px;
  border-radius:999px;
  background:var(--signup-orange);
}
.auth-page--verify main{
  flex:1;
  min-height:0;
  display:block;
  padding:18px 18px 10px;
}
.auth-page--verify footer{
  flex:0 0 auto;
  padding:8px 16px 10px;
  color:#60708f;
  font-size:11px;
}
.verify-stage{
  width:min(100%,920px);
  margin:0 auto;
}
.auth-page--verify .verify-panel{
  width:min(100%,660px);
  margin:0 auto;
  padding:24px 30px 21px;
  border:1px solid rgba(190,201,224,.84);
  border-radius:20px;
  background:rgba(255,255,255,.97);
  box-shadow:0 18px 55px rgba(42,62,111,.13);
}
.verify-panel__heading{
  text-align:center;
  margin-bottom:15px;
}
.auth-page--verify .verify-panel__heading h1{
  margin:0;
  color:#122c5e;
  font-size:20px;
  letter-spacing:-.025em;
}
.verify-panel__heading p{
  margin:7px 0 0;
  color:#657594;
  font-size:12.5px;
  line-height:1.55;
}
.auth-page--verify .verify-form{
  gap:12px;
  margin-top:0;
}
.auth-page--verify .verify-password-field{
  display:grid;
  gap:6px;
}
.auth-page--verify .verify-password-field > label:first-child{
  gap:6px;
  color:#182f57;
  font-size:12.5px;
}
.auth-page--verify .field-note{
  margin-left:6px;
  color:#7886a2;
  font-size:11px;
  font-weight:600;
}
.auth-page--verify .verify-form input[type="password"],
.auth-page--verify .verify-form input[type="text"]{
  height:45px;
  border-color:#c4cfe1;
  border-radius:10px;
  background:#fff;
  color:#172b4d;
  font-size:15px;
  padding-inline:13px;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.auth-page--verify .verify-form input::placeholder{
  color:#9aa7bb;
}
.auth-page--verify .verify-form input:focus{
  border-color:#4e7fdb;
  background:#fbfdff;
  box-shadow:0 0 0 3px rgba(47,113,223,.13);
}
.auth-page--verify .verify-password-toggle{
  display:inline-flex;
  width:max-content;
  align-items:center;
  gap:7px;
  margin-top:1px;
  color:#5f6f8d;
  font-size:11.5px;
  font-weight:600;
  line-height:1.35;
  cursor:pointer;
  user-select:none;
}
.auth-page--verify .verify-form .verify-password-toggle input[type="checkbox"]{
  width:15px;
  height:15px;
  min-width:15px;
  min-height:15px;
  margin:0;
  padding:0;
  accent-color:var(--signup-blue);
  box-shadow:none;
  cursor:pointer;
}
.verify-guidance{
  display:grid;
  gap:7px;
  padding:10px 12px;
  border:1px solid #e0e6f1;
  border-radius:10px;
  background:#f8faff;
  color:#677691;
  font-size:11.5px;
  line-height:1.55;
}
.verify-guidance p{
  margin:0;
}
.auth-page--verify .verify-submit{
  width:100%;
  min-height:46px;
  margin-top:1px;
  border:0;
  border-radius:10px;
  background:linear-gradient(135deg,#245fc7 0%,#2f77e8 100%);
  box-shadow:0 8px 18px rgba(34,93,195,.19);
  font-size:14px;
  letter-spacing:.02em;
}
.auth-page--verify .verify-submit:hover:not(:disabled){
  filter:brightness(.97);
  transform:translateY(-1px);
}
.auth-page--verify .message:not(:empty){
  margin-top:0;
}
.verify-links{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-top:13px;
  font-size:12px;
}
.verify-links a{
  font-weight:700;
}
.verify-actions{
  margin-top:12px;
}
.verify-actions #verify-restart{
  width:100%;
  min-height:40px;
  padding:8px 12px;
  border-color:#c3cfe0;
  color:#36557f;
  background:#fff;
  font-size:12px;
}
.verify-footnote{
  margin:10px 0 0;
  color:#71809a;
  font-size:11px;
  line-height:1.55;
}
@media (max-height: 820px) and (min-width: 581px){
  .auth-page--verify main{padding-top:11px;padding-bottom:5px}
  .auth-page--verify .verify-panel{padding:18px 28px 16px}
  .auth-page--verify .signup-panel__badge{margin-bottom:8px}
  .auth-page--verify .signup-badge{min-height:32px;padding-block:4px}
  .verify-panel__heading{margin-bottom:10px}
  .auth-page--verify .verify-panel__heading h1{font-size:19px}
  .verify-panel__heading p{margin-top:5px}
  .auth-page--verify .verify-form{gap:9px}
  .auth-page--verify .verify-form input[type="password"],
  .auth-page--verify .verify-form input[type="text"]{height:42px}
  .verify-guidance{gap:5px;padding-block:8px;font-size:11px}
  .auth-page--verify .verify-submit{min-height:43px}
  .verify-links{margin-top:9px}
  .verify-actions{margin-top:9px}
  .verify-footnote{margin-top:7px}
  .auth-page--verify footer{padding-top:5px;padding-bottom:6px}
}
@media (max-width: 580px){
  .auth-page--verify header{
    height:58px;
    padding-inline:15px;
  }
  .auth-page--verify .brand.signup-header-brand{grid-template-columns:38px auto}
  .auth-page--verify .signup-header-brand__logo-link{width:38px;height:38px}
  .auth-page--verify .signup-header-brand__title{font-size:16px}
  .auth-page--verify .brand.signup-header-brand > small{font-size:9px}
  .auth-page--verify nav{gap:12px;font-size:12px}
  .auth-page--verify nav a[href="/signup"]::after{bottom:-6px}
  .auth-page--verify main{padding:16px 11px 8px}
  .verify-stage{width:100%}
  .auth-page--verify .verify-panel{
    padding:21px 18px 18px;
    border-radius:16px;
  }
  .auth-page--verify .signup-panel__badge{margin-bottom:10px}
  .auth-page--verify .signup-badge{min-height:32px;padding:5px 13px 5px 7px;font-size:11px}
  .auth-page--verify .signup-badge__number{width:20px;height:20px;font-size:11px}
  .verify-panel__heading{margin-bottom:13px}
  .auth-page--verify .verify-panel__heading h1{font-size:19px}
  .auth-page--verify .verify-form{gap:11px}
  .auth-page--verify .verify-form input[type="password"],
  .auth-page--verify .verify-form input[type="text"]{height:44px;font-size:16px}
  .verify-guidance{font-size:11px}
  .verify-links{flex-wrap:wrap}
  .auth-page--verify footer{padding:7px 10px 9px}
}


/* --------------------------------------------------------------------------
   Login UI v12
   - Uses the same visual frame as /signup and /verify.
   - Keeps the brand logo/app-name links to / and the SFP-only external link.
   - Adds the same password visibility control already used on /signup.
   -------------------------------------------------------------------------- */
body.auth-page--login{
  --signup-navy:#102c67;
  --signup-navy-2:#243b7c;
  --signup-blue:#2f71df;
  --signup-orange:#ff7b22;
  --signup-card:#ffffff;
  --signup-soft:#f7f9ff;
  --signup-border:#d8e0f0;
  background:
    radial-gradient(circle at 13% 16%,rgba(189,216,255,.88) 0,rgba(189,216,255,0) 31%),
    radial-gradient(circle at 84% 14%,rgba(235,216,255,.86) 0,rgba(235,216,255,0) 33%),
    radial-gradient(circle at 14% 90%,rgba(205,250,239,.82) 0,rgba(205,250,239,0) 35%),
    radial-gradient(circle at 88% 90%,rgba(255,231,205,.78) 0,rgba(255,231,205,0) 36%),
    linear-gradient(135deg,#eef6ff 0%,#f4efff 48%,#fff8ee 100%);
  color:#112a55;
}
.auth-page--login header{
  height:64px;
  background:rgba(255,255,255,.92);
  border-bottom:1px solid rgba(178,194,222,.64);
  backdrop-filter:blur(10px);
  padding-inline:max(24px,calc((100vw - 1120px)/2));
}
.auth-page--login .brand.signup-header-brand{
  display:grid;
  grid-template-columns:43px auto;
  grid-template-rows:auto auto;
  column-gap:10px;
  row-gap:0;
  align-items:center;
  color:#0e2b61;
  letter-spacing:0;
}
.auth-page--login .signup-header-brand__logo-link{
  grid-column:1;
  grid-row:1 / 3;
  display:block;
  width:43px;
  height:43px;
  border-radius:50%;
  text-decoration:none;
}
.auth-page--login .signup-header-brand__logo-link:hover,
.auth-page--login .signup-header-brand__logo-link:focus-visible,
.auth-page--login .signup-header-brand__title:hover,
.auth-page--login .signup-header-brand__title:focus-visible{
  text-decoration:none;
}
.auth-page--login .signup-header-brand__title{
  grid-column:2;
  grid-row:1;
  align-self:end;
  color:#0e2b61;
  font-size:19px;
  font-weight:800;
  letter-spacing:.02em;
  line-height:1.1;
  text-decoration:none;
}
.auth-page--login .brand.signup-header-brand > small{
  grid-column:2;
  grid-row:2;
  align-self:start;
  color:#657594;
  font-size:10px;
  font-weight:700;
  letter-spacing:.035em;
  line-height:1.1;
}
.auth-page--login .signup-header-brand__sfp{
  color:inherit;
  text-decoration:none;
}
.auth-page--login .signup-header-brand__sfp:hover,
.auth-page--login .signup-header-brand__sfp:focus-visible{
  text-decoration:underline;
  text-underline-offset:2px;
}
.auth-page--login nav{
  gap:22px;
  font-size:14px;
}
.auth-page--login nav a[href="/login"]{
  color:#17366f;
  font-weight:800;
  text-decoration:none;
  position:relative;
}
.auth-page--login nav a[href="/login"]::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-8px;
  height:2px;
  border-radius:999px;
  background:var(--signup-orange);
}
.auth-page--login main{
  flex:1;
  min-height:0;
  display:block;
  padding:18px 18px 10px;
}
.auth-page--login footer{
  flex:0 0 auto;
  padding:8px 16px 10px;
  color:#60708f;
  font-size:11px;
}
.login-stage{
  width:min(100%,920px);
  margin:0 auto;
}
.auth-page--login .login-panel{
  width:min(100%,660px);
  margin:0 auto;
  padding:24px 30px 21px;
  border:1px solid rgba(190,201,224,.84);
  border-radius:20px;
  background:rgba(255,255,255,.97);
  box-shadow:0 18px 55px rgba(42,62,111,.13);
}
.login-panel__heading{
  text-align:center;
  margin-bottom:15px;
}
.auth-page--login .login-panel__heading h1{
  margin:0;
  color:#122c5e;
  font-size:20px;
  letter-spacing:-.025em;
}
.login-panel__heading p{
  margin:7px 0 0;
  color:#657594;
  font-size:12.5px;
  line-height:1.55;
}
.auth-page--login .login-form{
  gap:12px;
  margin-top:0;
}
.auth-page--login .login-form > label,
.auth-page--login .login-password-field > label:first-child{
  gap:6px;
  color:#182f57;
  font-size:12.5px;
}
.auth-page--login .login-password-field{
  display:grid;
  gap:6px;
}
.auth-page--login .login-form input[type="email"],
.auth-page--login .login-form input[type="password"],
.auth-page--login .login-form input[type="text"]{
  height:45px;
  border-color:#c4cfe1;
  border-radius:10px;
  background:#fff;
  color:#172b4d;
  font-size:15px;
  padding-inline:13px;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.auth-page--login .login-form input::placeholder{
  color:#9aa7bb;
}
.auth-page--login .login-form input:focus{
  border-color:#4e7fdb;
  background:#fbfdff;
  box-shadow:0 0 0 3px rgba(47,113,223,.13);
}
.auth-page--login .login-password-toggle{
  display:inline-flex;
  width:max-content;
  align-items:center;
  gap:7px;
  margin-top:1px;
  color:#5f6f8d;
  font-size:11.5px;
  font-weight:600;
  line-height:1.35;
  cursor:pointer;
  user-select:none;
}
.auth-page--login .login-form .login-password-toggle input[type="checkbox"]{
  width:15px;
  height:15px;
  min-width:15px;
  min-height:15px;
  margin:0;
  padding:0;
  accent-color:var(--signup-blue);
  box-shadow:none;
  cursor:pointer;
}
.auth-page--login .login-form .login-password-toggle input[type="checkbox"]:focus-visible{
  outline:2px solid rgba(47,113,223,.34);
  outline-offset:2px;
}
.auth-page--login .login-submit{
  width:100%;
  min-height:46px;
  margin-top:2px;
  border:0;
  border-radius:10px;
  background:linear-gradient(135deg,#245fc7 0%,#2f77e8 100%);
  box-shadow:0 8px 18px rgba(34,93,195,.19);
  font-size:14px;
  letter-spacing:.02em;
}
.auth-page--login .login-submit:hover:not(:disabled){
  filter:brightness(.97);
  transform:translateY(-1px);
}
.auth-page--login .message:not(:empty){
  margin-top:0;
}
.login-links{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-top:15px;
  font-size:12px;
}
.login-links a{
  font-weight:700;
}
.auth-page--login .external-auth{
  margin-top:14px;
  justify-content:center;
}
.auth-page--login .external-auth:not(:has(button:not([hidden]))){
  display:none;
  margin:0;
}
.auth-page--login .external-auth button:not([hidden]){
  flex:1 1 210px;
  max-width:280px;
  min-height:42px;
  border-color:#bac8de;
  background:#fff;
  color:#17376d;
  box-shadow:none;
}
.auth-page--login .external-auth button:not([hidden]):hover{
  background:#f6f9ff;
  filter:none;
}
.auth-page--login .login-panel > .help{
  margin-top:12px;
  color:#71809a;
  font-size:11px;
  line-height:1.55;
}
@media (max-height:820px) and (min-width:581px){
  .auth-page--login main{padding-top:11px;padding-bottom:5px}
  .auth-page--login .login-panel{padding:18px 28px 16px}
  .auth-page--login .signup-panel__badge{margin-bottom:8px}
  .auth-page--login .signup-badge{min-height:32px;padding-block:4px}
  .login-panel__heading{margin-bottom:10px}
  .auth-page--login .login-panel__heading h1{font-size:19px}
  .login-panel__heading p{margin-top:5px}
  .auth-page--login .login-form{gap:9px}
  .auth-page--login .login-form input[type="email"],
  .auth-page--login .login-form input[type="password"],
  .auth-page--login .login-form input[type="text"]{height:42px}
  .auth-page--login .login-password-toggle{font-size:11px;gap:6px}
  .auth-page--login .login-submit{min-height:43px}
  .login-links{margin-top:10px}
  .auth-page--login .external-auth{margin-top:10px}
  .auth-page--login .login-panel > .help{margin-top:8px}
  .auth-page--login footer{padding-top:5px;padding-bottom:6px}
}
@media (max-width:580px){
  .auth-page--login header{
    height:58px;
    padding-inline:15px;
  }
  .auth-page--login .brand.signup-header-brand{grid-template-columns:38px auto}
  .auth-page--login .signup-header-brand__logo-link{width:38px;height:38px}
  .auth-page--login .signup-header-brand__title{font-size:16px}
  .auth-page--login .brand.signup-header-brand > small{font-size:9px}
  .auth-page--login nav{gap:12px;font-size:12px}
  .auth-page--login nav a[href="/login"]::after{bottom:-6px}
  .auth-page--login main{padding:16px 11px 8px}
  .login-stage{width:100%}
  .auth-page--login .login-panel{
    padding:21px 18px 18px;
    border-radius:16px;
  }
  .auth-page--login .signup-panel__badge{margin-bottom:10px}
  .auth-page--login .signup-badge{min-height:32px;padding:5px 13px 5px 7px;font-size:11px}
  .auth-page--login .signup-badge__number{width:20px;height:20px;font-size:11px}
  .login-panel__heading{margin-bottom:13px}
  .auth-page--login .login-panel__heading h1{font-size:19px}
  .auth-page--login .login-form{gap:11px}
  .auth-page--login .login-form input[type="email"],
  .auth-page--login .login-form input[type="password"],
  .auth-page--login .login-form input[type="text"]{height:44px;font-size:16px}
  .login-links{flex-wrap:wrap}
  .auth-page--login .external-auth button:not([hidden]){max-width:none;flex-basis:100%}
  .auth-page--login footer{padding:7px 10px 9px}
}

/* --------------------------------------------------------------------------
   OAuth / External signup UI v13
   - /external-signup follows the same visual frame as /signup.
   - OAuth callback result pages (including pending-mail verification) use the
     same brand header, gradient background and compact white card.
   - Authentication logic and callback routes are unchanged.
   -------------------------------------------------------------------------- */
body.auth-page--external-signup,
body.auth-page--auth-result{
  --signup-navy:#102c67;
  --signup-navy-2:#243b7c;
  --signup-blue:#2f71df;
  --signup-orange:#ff7b22;
  --signup-card:#ffffff;
  --signup-soft:#f7f9ff;
  --signup-border:#d8e0f0;
  background:
    radial-gradient(circle at 13% 16%,rgba(189,216,255,.88) 0,rgba(189,216,255,0) 31%),
    radial-gradient(circle at 84% 14%,rgba(235,216,255,.86) 0,rgba(235,216,255,0) 33%),
    radial-gradient(circle at 14% 90%,rgba(205,250,239,.82) 0,rgba(205,250,239,0) 35%),
    radial-gradient(circle at 88% 90%,rgba(255,231,205,.78) 0,rgba(255,231,205,0) 36%),
    linear-gradient(135deg,#eef6ff 0%,#f4efff 48%,#fff8ee 100%);
  color:#112a55;
}
.auth-page--external-signup header,
.auth-page--auth-result header{
  height:64px;
  background:rgba(255,255,255,.92);
  border-bottom:1px solid rgba(178,194,222,.64);
  backdrop-filter:blur(10px);
  padding-inline:max(24px,calc((100vw - 1120px)/2));
}
.auth-page--external-signup .brand.signup-header-brand,
.auth-page--auth-result .brand.signup-header-brand{
  display:grid;
  grid-template-columns:43px auto;
  grid-template-rows:auto auto;
  column-gap:10px;
  row-gap:0;
  align-items:center;
  color:#0e2b61;
  letter-spacing:0;
}
.auth-page--external-signup .signup-header-brand__logo-link,
.auth-page--auth-result .signup-header-brand__logo-link{
  grid-column:1;
  grid-row:1 / 3;
  display:block;
  width:43px;
  height:43px;
  border-radius:50%;
  text-decoration:none;
}
.auth-page--external-signup .signup-header-brand__logo-link:hover,
.auth-page--external-signup .signup-header-brand__logo-link:focus-visible,
.auth-page--external-signup .signup-header-brand__title:hover,
.auth-page--external-signup .signup-header-brand__title:focus-visible,
.auth-page--auth-result .signup-header-brand__logo-link:hover,
.auth-page--auth-result .signup-header-brand__logo-link:focus-visible,
.auth-page--auth-result .signup-header-brand__title:hover,
.auth-page--auth-result .signup-header-brand__title:focus-visible{
  text-decoration:none;
}
.auth-page--external-signup .signup-header-brand__title,
.auth-page--auth-result .signup-header-brand__title{
  grid-column:2;
  grid-row:1;
  align-self:end;
  color:#0e2b61;
  font-size:19px;
  font-weight:800;
  letter-spacing:.02em;
  line-height:1.1;
  text-decoration:none;
}
.auth-page--external-signup .brand.signup-header-brand > small,
.auth-page--auth-result .brand.signup-header-brand > small{
  grid-column:2;
  grid-row:2;
  align-self:start;
  color:#657594;
  font-size:10px;
  font-weight:700;
  letter-spacing:.035em;
  line-height:1.1;
}
.auth-page--external-signup .signup-header-brand__sfp,
.auth-page--auth-result .signup-header-brand__sfp{
  color:inherit;
  text-decoration:none;
}
.auth-page--external-signup .signup-header-brand__sfp:hover,
.auth-page--external-signup .signup-header-brand__sfp:focus-visible,
.auth-page--auth-result .signup-header-brand__sfp:hover,
.auth-page--auth-result .signup-header-brand__sfp:focus-visible{
  text-decoration:underline;
  text-underline-offset:2px;
}
.auth-page--external-signup nav,
.auth-page--auth-result nav{
  gap:22px;
  font-size:14px;
}
.auth-page--external-signup nav a[href="/signup"]{
  color:#17366f;
  font-weight:800;
  text-decoration:none;
  position:relative;
}
.auth-page--external-signup nav a[href="/signup"]::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-8px;
  height:2px;
  border-radius:999px;
  background:var(--signup-orange);
}
.auth-page--external-signup main,
.auth-page--auth-result main{
  flex:1;
  min-height:0;
  display:block;
  padding:18px 18px 10px;
}
.auth-page--external-signup footer,
.auth-page--auth-result footer{
  flex:0 0 auto;
  padding:8px 16px 10px;
  color:#60708f;
  font-size:11px;
}
.external-signup-stage,
.auth-result-stage{
  width:min(100%,920px);
  margin:0 auto;
}
.auth-page--external-signup .external-signup-panel{
  width:min(100%,660px);
  margin:0 auto;
  padding:24px 30px 21px;
  border:1px solid rgba(190,201,224,.84);
  border-radius:20px;
  background:rgba(255,255,255,.97);
  box-shadow:0 18px 55px rgba(42,62,111,.13);
}
.external-signup-panel__heading{
  text-align:center;
  margin-bottom:15px;
}
.auth-page--external-signup .external-signup-panel__heading h1{
  margin:0;
  color:#122c5e;
  font-size:20px;
  letter-spacing:-.025em;
}
.external-signup-panel__heading p{
  max-width:560px;
  margin:7px auto 0;
  color:#657594;
  font-size:12.5px;
  line-height:1.65;
}
.auth-page--external-signup .external-signup-form{
  gap:12px;
  margin-top:0;
}
.auth-page--external-signup .external-signup-form label{
  gap:6px;
  color:#182f57;
  font-size:12.5px;
}
.auth-page--external-signup .external-signup-form input{
  height:45px;
  border-color:#c4cfe1;
  border-radius:10px;
  background:#fff;
  color:#172b4d;
  font-size:15px;
  padding-inline:13px;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.auth-page--external-signup .external-signup-form input::placeholder{color:#9aa7bb}
.auth-page--external-signup .external-signup-form input:focus{
  border-color:#4e7fdb;
  background:#fbfdff;
  box-shadow:0 0 0 3px rgba(47,113,223,.13);
}
.auth-page--external-signup .external-signup-submit{
  width:100%;
  min-height:46px;
  margin-top:2px;
  border:0;
  border-radius:10px;
  background:linear-gradient(135deg,#245fc7 0%,#2f77e8 100%);
  box-shadow:0 8px 18px rgba(34,93,195,.19);
  font-size:14px;
  letter-spacing:.02em;
}
.auth-page--external-signup .external-signup-submit:hover:not(:disabled){
  filter:brightness(.97);
  transform:translateY(-1px);
}
.auth-page--external-signup .message:not(:empty){margin-top:12px}
.external-signup-login-link{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:38px;
  color:#71809a;
  font-size:11.5px;
}
.external-signup-login-link a{font-weight:700}

.auth-page--auth-result .auth-result-panel{
  width:min(100%,660px);
  margin:64px auto 0;
  padding:28px 30px 26px;
  border:1px solid rgba(190,201,224,.84);
  border-radius:20px;
  background:rgba(255,255,255,.97);
  box-shadow:0 18px 55px rgba(42,62,111,.13);
}
.auth-result-panel__heading{
  text-align:center;
  margin-bottom:22px;
}
.auth-page--auth-result .auth-result-panel__heading h1{
  margin:0;
  color:#122c5e;
  font-size:21px;
  letter-spacing:-.025em;
}
.auth-result-panel__heading p{
  margin:9px auto 0;
  max-width:520px;
  color:#657594;
  font-size:13px;
  line-height:1.75;
}
.auth-result-links{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px 14px;
  margin-top:0;
}
.auth-result-links a{
  min-width:126px;
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:9px 16px;
  border:1px solid #bac8de;
  border-radius:10px;
  background:#fff;
  color:#17376d;
  font-size:12.5px;
  font-weight:700;
  text-decoration:none;
}
.auth-result-links a:hover,
.auth-result-links a:focus-visible{
  background:#f6f9ff;
  text-decoration:none;
}

@media (max-height:820px) and (min-width:581px){
  .auth-page--external-signup main,
  .auth-page--auth-result main{padding-top:11px;padding-bottom:5px}
  .auth-page--external-signup .external-signup-panel{padding:18px 28px 16px}
  .auth-page--external-signup .signup-panel__badge,
  .auth-page--auth-result .signup-panel__badge{margin-bottom:8px}
  .auth-page--external-signup .signup-badge,
  .auth-page--auth-result .signup-badge{min-height:32px;padding-block:4px}
  .external-signup-panel__heading{margin-bottom:10px}
  .auth-page--external-signup .external-signup-panel__heading h1{font-size:19px}
  .external-signup-panel__heading p{margin-top:5px;line-height:1.55}
  .auth-page--external-signup .external-signup-form{gap:9px}
  .auth-page--external-signup .external-signup-form input{height:42px}
  .auth-page--external-signup .external-signup-submit{min-height:43px}
  .external-signup-login-link{margin-top:28px}
  .auth-page--auth-result .auth-result-panel{margin-top:34px;padding:21px 28px 20px}
  .auth-result-panel__heading{margin-bottom:16px}
  .auth-page--external-signup footer,
  .auth-page--auth-result footer{padding-top:5px;padding-bottom:6px}
}
@media (max-width:580px){
  .auth-page--external-signup header,
  .auth-page--auth-result header{height:62px;padding:0 14px}
  .auth-page--external-signup .brand.signup-header-brand,
  .auth-page--auth-result .brand.signup-header-brand{grid-template-columns:38px auto}
  .auth-page--external-signup .signup-header-brand__logo-link,
  .auth-page--auth-result .signup-header-brand__logo-link{width:38px;height:38px}
  .auth-page--external-signup .signup-header-brand__title,
  .auth-page--auth-result .signup-header-brand__title{font-size:16px}
  .auth-page--external-signup .brand.signup-header-brand > small,
  .auth-page--auth-result .brand.signup-header-brand > small{font-size:9px}
  .auth-page--external-signup nav,
  .auth-page--auth-result nav{gap:12px;font-size:12px}
  .auth-page--external-signup nav a[href="/signup"]::after{bottom:-6px}
  .auth-page--external-signup main,
  .auth-page--auth-result main{padding:16px 11px 8px}
  .external-signup-stage,
  .auth-result-stage{width:100%}
  .auth-page--external-signup .external-signup-panel,
  .auth-page--auth-result .auth-result-panel{
    width:100%;
    padding:20px 17px 18px;
    border-radius:16px;
  }
  .auth-page--auth-result .auth-result-panel{margin-top:24px}
  .auth-page--external-signup .signup-panel__badge,
  .auth-page--auth-result .signup-panel__badge{margin-bottom:10px}
  .auth-page--external-signup .signup-badge,
  .auth-page--auth-result .signup-badge{min-height:32px;padding:5px 13px 5px 7px;font-size:11px}
  .auth-page--external-signup .signup-badge__number,
  .auth-page--auth-result .signup-badge__number{width:20px;height:20px;font-size:11px}
  .external-signup-panel__heading{margin-bottom:13px}
  .auth-page--external-signup .external-signup-panel__heading h1,
  .auth-page--auth-result .auth-result-panel__heading h1{font-size:19px}
  .auth-page--external-signup .external-signup-form{gap:11px}
  .auth-page--external-signup .external-signup-form input{height:44px;font-size:16px}
  .external-signup-login-link{margin-top:24px}
  .auth-result-links a{flex:1 1 120px;min-width:0}
  .auth-page--external-signup footer,
  .auth-page--auth-result footer{padding:7px 10px 9px}
}

/* --------------------------------------------------------------------------
   External account verification UI v14
   - Dedicated Google / LINE verification page.
   - The email link may be opened on another browser/device; the same provider
     account is re-authenticated before the pending account becomes active.
   -------------------------------------------------------------------------- */
body.auth-page--external-verify{
  --signup-navy:#102c67;
  --signup-blue:#2f71df;
  --signup-orange:#ff7b22;
  background:
    radial-gradient(circle at 13% 16%,rgba(189,216,255,.88) 0,rgba(189,216,255,0) 31%),
    radial-gradient(circle at 84% 14%,rgba(235,216,255,.86) 0,rgba(235,216,255,0) 33%),
    radial-gradient(circle at 14% 90%,rgba(205,250,239,.82) 0,rgba(205,250,239,0) 35%),
    radial-gradient(circle at 88% 90%,rgba(255,231,205,.78) 0,rgba(255,231,205,0) 36%),
    linear-gradient(135deg,#eef6ff 0%,#f4efff 48%,#fff8ee 100%);
  color:#112a55;
}
.auth-page--external-verify header{
  height:64px;
  background:rgba(255,255,255,.92);
  border-bottom:1px solid rgba(178,194,222,.64);
  backdrop-filter:blur(10px);
  padding-inline:max(24px,calc((100vw - 1120px)/2));
}
.auth-page--external-verify .brand.signup-header-brand{
  display:grid;
  grid-template-columns:43px auto;
  grid-template-rows:auto auto;
  column-gap:10px;
  row-gap:0;
  align-items:center;
  color:#0e2b61;
  letter-spacing:0;
}
.auth-page--external-verify .signup-header-brand__logo-link{
  grid-column:1;
  grid-row:1 / 3;
  display:block;
  width:43px;
  height:43px;
  border-radius:50%;
  text-decoration:none;
}
.auth-page--external-verify .signup-header-brand__logo-link:hover,
.auth-page--external-verify .signup-header-brand__logo-link:focus-visible,
.auth-page--external-verify .signup-header-brand__title:hover,
.auth-page--external-verify .signup-header-brand__title:focus-visible{text-decoration:none}
.auth-page--external-verify .signup-header-brand__title{
  grid-column:2;
  grid-row:1;
  align-self:end;
  color:#0e2b61;
  font-size:19px;
  font-weight:800;
  letter-spacing:.02em;
  line-height:1.1;
  text-decoration:none;
}
.auth-page--external-verify .brand.signup-header-brand > small{
  grid-column:2;
  grid-row:2;
  align-self:start;
  color:#657594;
  font-size:10px;
  font-weight:700;
  letter-spacing:.035em;
  line-height:1.1;
}
.auth-page--external-verify .signup-header-brand__sfp{color:inherit;text-decoration:none}
.auth-page--external-verify .signup-header-brand__sfp:hover,
.auth-page--external-verify .signup-header-brand__sfp:focus-visible{text-decoration:underline;text-underline-offset:2px}
.auth-page--external-verify nav{gap:22px;font-size:14px}
.auth-page--external-verify main{
  flex:1;
  min-height:0;
  display:block;
  padding:18px 18px 10px;
}
.auth-page--external-verify footer{
  flex:0 0 auto;
  padding:8px 16px 10px;
  color:#60708f;
  font-size:11px;
}
.external-verify-stage{width:min(100%,920px);margin:0 auto}
.auth-page--external-verify .external-verify-panel{
  width:min(100%,660px);
  margin:0 auto;
  padding:24px 30px 23px;
  border:1px solid rgba(190,201,224,.84);
  border-radius:20px;
  background:rgba(255,255,255,.97);
  box-shadow:0 18px 55px rgba(42,62,111,.13);
}
.external-verify-panel__heading{text-align:center;margin-bottom:18px}
.auth-page--external-verify .external-verify-panel__heading h1{
  margin:0;
  color:#122c5e;
  font-size:20px;
  letter-spacing:-.025em;
}
.external-verify-panel__heading p{
  max-width:540px;
  margin:8px auto 0;
  color:#657594;
  font-size:12.5px;
  line-height:1.65;
}
.external-verify-provider{
  width:max-content;
  max-width:100%;
  margin:0 auto 13px;
  padding:6px 12px;
  border-radius:999px;
  background:#f2f6ff;
  border:1px solid #d4dff2;
  color:#2b4f88;
  font-size:12px;
  font-weight:800;
}
.auth-page--external-verify .external-verify-start,
.auth-page--external-verify .external-verify-login-button{
  width:100%;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:10px;
  background:linear-gradient(135deg,#245fc7 0%,#2f77e8 100%);
  box-shadow:0 8px 18px rgba(34,93,195,.19);
  color:#fff;
  font-size:14px;
  font-weight:800;
  letter-spacing:.02em;
  text-decoration:none;
}
.auth-page--external-verify .external-verify-start:hover:not(:disabled),
.auth-page--external-verify .external-verify-login-button:hover,
.auth-page--external-verify .external-verify-login-button:focus-visible{
  filter:brightness(.97);
  text-decoration:none;
}
.auth-page--external-verify .message:not(:empty){margin-top:13px}
.external-verify-links{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:18px;
  font-size:12px;
  font-weight:700;
}
.external-verify-panel--success{margin-top:42px;text-align:center}
.external-verify-panel--success .external-verify-panel__heading{margin-bottom:22px}

@media (max-height:820px) and (min-width:581px){
  .auth-page--external-verify main{padding-top:11px;padding-bottom:5px}
  .auth-page--external-verify .external-verify-panel{padding:19px 28px 18px}
  .auth-page--external-verify .signup-panel__badge{margin-bottom:8px}
  .auth-page--external-verify .signup-badge{min-height:32px;padding-block:4px}
  .external-verify-panel__heading{margin-bottom:13px}
  .auth-page--external-verify .external-verify-panel__heading h1{font-size:19px}
  .external-verify-panel__heading p{margin-top:5px;line-height:1.55}
  .auth-page--external-verify .external-verify-start,
  .auth-page--external-verify .external-verify-login-button{min-height:44px}
  .external-verify-panel--success{margin-top:24px}
  .auth-page--external-verify footer{padding-top:5px;padding-bottom:6px}
}
@media (max-width:580px){
  .auth-page--external-verify header{height:62px;padding:0 14px}
  .auth-page--external-verify .brand.signup-header-brand{grid-template-columns:38px auto}
  .auth-page--external-verify .signup-header-brand__logo-link{width:38px;height:38px}
  .auth-page--external-verify .signup-header-brand__title{font-size:16px}
  .auth-page--external-verify .brand.signup-header-brand > small{font-size:9px}
  .auth-page--external-verify nav{gap:12px;font-size:12px}
  .auth-page--external-verify main{padding:16px 11px 8px}
  .external-verify-stage{width:100%}
  .auth-page--external-verify .external-verify-panel{width:100%;padding:20px 17px 18px;border-radius:16px}
  .external-verify-panel--success{margin-top:24px}
  .auth-page--external-verify .signup-panel__badge{margin-bottom:10px}
  .auth-page--external-verify .signup-badge{min-height:32px;padding:5px 13px 5px 7px;font-size:11px}
  .auth-page--external-verify .signup-badge__number{width:20px;height:20px;font-size:11px}
  .auth-page--external-verify .external-verify-panel__heading h1{font-size:19px}
  .external-verify-links{flex-direction:column;align-items:center;gap:8px}
  .auth-page--external-verify footer{padding:7px 10px 9px}
}

/* --------------------------------------------------------------------------
   Common legal footer v32
   - Larger, readable footer text aligned with the app's 13px body/help text.
   - Clear vertical breathing room above/below the legal links.
   - Copyright on its own line; legal links on the next line.
   -------------------------------------------------------------------------- */
.site-footer{
  flex:0 0 auto;
  width:100%;
  margin:0;
  padding:22px 18px 26px;
  color:#60708f;
  font-size:13px;
  line-height:1.7;
  text-align:center;
}
.site-footer__inner{
  width:min(100%,1120px);
  margin:0 auto;
  display:grid;
  justify-items:center;
  gap:8px;
}
.site-footer__copyright{
  font-size:13px;
  line-height:1.5;
  white-space:nowrap;
}
.site-footer__links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  row-gap:6px;
  font-size:13px;
  line-height:1.6;
}
.site-footer__links a{
  color:inherit;
  text-decoration:none;
  white-space:nowrap;
  transition:color .16s ease;
}
.site-footer__links a:hover,
.site-footer__links a:focus-visible{
  color:#1265c5;
  text-decoration:underline;
  text-underline-offset:2px;
}
.site-footer__links a+a::before{
  content:"｜";
  display:inline-block;
  margin:0 10px;
  color:#a5afbd;
  text-decoration:none;
}

/* The auth page themes have older, more specific footer rules.
   Override them here so the legal footer keeps the same readable sizing. */
.auth-page--signup .site-footer,
.auth-page--verify .site-footer,
.auth-page--login .site-footer,
.auth-page--external-signup .site-footer,
.auth-page--external-verify .site-footer,
.auth-page--auth-result .site-footer{
  padding:22px 18px 26px;
  font-size:13px;
  line-height:1.7;
}

@media(max-height:820px) and (min-width:581px){
  .auth-page--signup .site-footer,
  .auth-page--verify .site-footer,
  .auth-page--login .site-footer,
  .auth-page--external-signup .site-footer,
  .auth-page--external-verify .site-footer,
  .auth-page--auth-result .site-footer{
    padding:17px 16px 20px;
  }
}

@media(max-width:720px){
  .site-footer,
  .auth-page--signup .site-footer,
  .auth-page--verify .site-footer,
  .auth-page--login .site-footer,
  .auth-page--external-signup .site-footer,
  .auth-page--external-verify .site-footer,
  .auth-page--auth-result .site-footer{
    padding:20px 14px 24px;
  }
  .site-footer__inner{
    gap:9px;
  }
  .site-footer__links{
    row-gap:7px;
  }
  .site-footer__links a+a::before{
    margin:0 7px;
  }
}

@media(max-width:520px){
  .site-footer,
  .auth-page--signup .site-footer,
  .auth-page--verify .site-footer,
  .auth-page--login .site-footer,
  .auth-page--external-signup .site-footer,
  .auth-page--external-verify .site-footer,
  .auth-page--auth-result .site-footer{
    padding:18px 12px 22px;
    font-size:12px;
  }
  .site-footer__copyright,
  .site-footer__links{
    font-size:12px;
  }
  .site-footer__links a+a::before{
    margin:0 6px;
  }
}

/* --------------------------------------------------------------------------
   Account dashboard v33
   - Dashboard-style account management with a brown / beige visual language.
   - Desktop side navigation and mobile collapsible menu.
   - Existing auth-management IDs/forms are preserved so current JS continues
     to work without changing the authentication API.
   -------------------------------------------------------------------------- */
.account-dashboard-page{
  --account-brown:#8b5e49;
  --account-brown-dark:#684331;
  --account-brown-soft:#f5eee8;
  --account-brown-line:#e4d5c9;
  --account-bg:#f3f6fa;
  --account-card:#fff;
  --account-ink:#14233a;
  --account-muted:#6a7890;
  background:var(--account-bg);
}
.account-dashboard-page header{
  height:82px;
  padding:0 max(28px,calc((100vw - 1460px)/2));
  border-bottom:1px solid #dde4ec;
  background:#fff;
}
.account-dashboard-page .brand.signup-header-brand{
  display:grid;
  grid-template-columns:48px auto;
  grid-template-rows:auto auto;
  column-gap:10px;
  align-items:center;
  min-width:0;
}
.account-dashboard-page .signup-header-brand__logo-link{
  grid-row:1 / 3;
  width:48px;
  height:48px;
  border-radius:50%;
  overflow:hidden;
  box-shadow:0 3px 12px rgba(32,50,84,.14);
  text-decoration:none;
}
.account-dashboard-page .signup-header-brand__logo{
  display:block;
  width:100%;
  height:100%;
}
.account-dashboard-page .signup-header-brand__logo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.account-dashboard-page .signup-header-brand__title{
  align-self:end;
  color:#183660;
  font-size:20px;
  font-weight:800;
  line-height:1.1;
  letter-spacing:.02em;
  text-decoration:none;
}
.account-dashboard-page .brand.signup-header-brand > small{
  align-self:start;
  color:#6c7d99;
  font-size:10px;
  font-weight:600;
  line-height:1.25;
  letter-spacing:.03em;
}
.account-dashboard-page .signup-header-brand__sfp{
  color:inherit;
  text-decoration:none;
}
.account-dashboard-page .signup-header-brand__sfp:hover,
.account-dashboard-page .signup-header-brand__sfp:focus-visible{
  text-decoration:underline;
  text-underline-offset:2px;
}
.account-header-nav{
  display:flex;
  align-items:center;
  gap:16px;
}
.account-header-nav a,
.account-header-logout{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 14px;
  border:0;
  border-radius:9px;
  background:transparent;
  color:#1265c5;
  font-size:14px;
  font-weight:700;
  text-decoration:none;
}
.account-header-nav a:hover,
.account-header-nav a:focus-visible,
.account-header-logout:hover,
.account-header-logout:focus-visible{
  background:#f3f6fa;
  filter:none;
  text-decoration:none;
}
.account-header-logout{cursor:pointer}

.account-dashboard-page main{
  display:block;
  width:100%;
  padding:42px 24px 56px;
}
.account-dashboard-shell{
  width:min(100%,1500px);
  margin:0 auto;
  display:grid;
  grid-template-columns:250px minmax(0,1fr);
  gap:26px;
  align-items:start;
}
.account-sidebar{
  position:sticky;
  top:24px;
  min-height:560px;
  padding:24px 18px;
  border:1px solid #dde3ea;
  border-radius:18px;
  background:#fff;
  box-shadow:0 15px 40px rgba(31,48,76,.06);
}
.account-sidebar__title{
  display:grid;
  gap:5px;
  padding:2px 10px 20px;
  border-bottom:1px solid #e6ebf0;
}
.account-sidebar__title span,
.account-section-kicker{
  margin:0;
  color:var(--account-brown);
  font-size:11px;
  font-weight:800;
  letter-spacing:.16em;
}
.account-sidebar__title strong{
  color:var(--account-ink);
  font-size:20px;
  line-height:1.35;
}
.account-side-nav{
  display:grid;
  gap:7px;
  margin-top:18px;
}
.account-side-nav a,
.account-side-nav button{
  width:100%;
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding:10px 13px;
  border:1px solid transparent;
  border-radius:11px;
  background:transparent;
  color:#25344c;
  font-size:14px;
  font-weight:700;
  line-height:1.35;
  text-align:left;
  text-decoration:none;
  box-shadow:none;
}
.account-side-nav a:hover,
.account-side-nav a:focus-visible,
.account-side-nav button:hover,
.account-side-nav button:focus-visible{
  border-color:var(--account-brown-line);
  background:#fbf8f5;
  color:var(--account-brown-dark);
  filter:none;
  text-decoration:none;
}
.account-side-nav .is-active{
  border-color:var(--account-brown-line);
  background:var(--account-brown-soft);
  color:var(--account-brown-dark);
}
.account-side-nav__danger{margin-top:12px;color:#9c2634!important}
.account-side-nav button{cursor:pointer}

.account-dashboard-content{min-width:0}
.account-mobile-menu{display:none}
.account-dashboard-hero{
  min-height:180px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:34px 38px;
  border:1px solid #dde3ea;
  border-radius:20px;
  background:linear-gradient(135deg,#fff 0%,#fdfbf9 100%);
  box-shadow:0 18px 48px rgba(31,48,76,.07);
}
.account-dashboard-hero__copy{min-width:0}
.account-dashboard-hero .eyebrow{
  margin:0 0 9px;
  color:var(--account-brown);
  font-size:11px;
  letter-spacing:.16em;
}
.account-dashboard-hero h1{
  margin:0;
  color:var(--account-ink);
  font-size:30px;
  line-height:1.35;
  letter-spacing:-.025em;
}
.account-dashboard-hero__copy > p:last-child{
  margin:12px 0 0;
  color:var(--account-muted);
  font-size:14px;
  line-height:1.75;
}
.account-builder-cta{
  flex:0 0 250px;
  min-height:88px;
  display:grid;
  align-content:center;
  gap:3px;
  padding:18px 22px;
  border:1px solid #7a503d;
  border-radius:15px;
  background:linear-gradient(135deg,#8b5e49 0%,#76503e 100%);
  color:#fff;
  box-shadow:0 12px 25px rgba(111,72,53,.22);
  text-decoration:none;
}
.account-builder-cta span{font-size:11px;font-weight:700;opacity:.82;letter-spacing:.08em}
.account-builder-cta strong{font-size:18px;line-height:1.35}
.account-builder-cta:hover,
.account-builder-cta:focus-visible{
  filter:brightness(.97);
  color:#fff;
  text-decoration:none;
  transform:translateY(-1px);
}
.account-global-message:not(:empty){margin-top:18px}
.account-section-card{
  margin-top:24px;
  padding:30px;
  border:1px solid #dde3ea;
  border-radius:20px;
  background:#fff;
  box-shadow:0 16px 42px rgba(31,48,76,.055);
}
.account-section-card__heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:18px;
}
.account-section-card__heading h2,
.account-subscription-card h2{
  margin:5px 0 0;
  color:var(--account-ink);
  font-size:23px;
  line-height:1.4;
}
.account-section-card__heading > p{
  margin:0;
  color:var(--account-muted);
  font-size:13px;
}
.account-accordion{
  border:1px solid #e0e6ed;
  border-radius:14px;
  background:#fff;
  overflow:hidden;
}
.account-accordion + .account-accordion{margin-top:12px}
.account-accordion > summary{
  position:relative;
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:16px 20px;
  cursor:pointer;
  list-style:none;
  background:#fff;
  user-select:none;
}
.account-accordion > summary::-webkit-details-marker{display:none}
.account-accordion > summary:hover{background:#fbfaf9}
.account-accordion[open] > summary{
  border-bottom:1px solid #e7ebf0;
  background:#fbf8f5;
}
.account-accordion > summary > span:first-child{display:grid;gap:4px}
.account-accordion > summary strong{color:#1d2c43;font-size:16px}
.account-accordion > summary small{color:var(--account-muted);font-size:12px;font-weight:500}
.account-accordion__mark{
  width:10px;
  height:10px;
  flex:0 0 10px;
  border-right:2px solid #6d7890;
  border-bottom:2px solid #6d7890;
  transform:rotate(45deg) translateY(-2px);
  transition:transform .18s ease;
}
.account-accordion[open] .account-accordion__mark{transform:rotate(225deg) translate(-2px,-2px)}
.account-accordion__body{padding:22px 20px 24px}
.account-current-info{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:22px;
}
.account-current-info > div{
  min-width:0;
  display:grid;
  gap:6px;
  padding:15px 16px;
  border:1px solid #e1e6ec;
  border-radius:11px;
  background:#f8fafc;
}
.account-current-info span{color:var(--account-muted);font-size:11px;font-weight:700}
.account-current-info strong{overflow-wrap:anywhere;color:#22324a;font-size:14px;font-weight:700}
.account-inline-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:end;
  margin:0;
  padding:20px 0;
  border-top:1px solid #edf0f4;
}
.account-inline-form button{min-width:150px}
.account-inline-form .message{grid-column:1 / -1}
.account-email-placeholder{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding-top:20px;
  border-top:1px solid #edf0f4;
}
.account-email-placeholder > div{min-width:0}
.account-field-label{display:block;color:#26354d;font-size:13px;font-weight:800}
.account-email-placeholder p{margin:6px 0 0;color:var(--account-muted);font-size:12px;line-height:1.7}
.account-email-placeholder button{flex:0 0 auto}
.account-embedded-section{
  margin:0;
  padding:0;
  border-top:0;
}
.account-embedded-section > .help:first-child{margin-top:0}
.account-subsection{
  margin-top:26px;
  padding-top:22px;
  border-top:1px solid #edf0f4;
}
.account-subsection h3,
.account-embedded-section > h3{margin:0 0 12px;color:#25344c;font-size:16px}
.account-security-link{margin-top:18px;padding-top:18px;border-top:1px solid #edf0f4}
.account-subscription-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  scroll-margin-top:24px;
}
.account-subscription-card p:not(.account-section-kicker){margin:9px 0 0;color:var(--account-muted);font-size:13px;line-height:1.7}
.account-coming-soon{
  flex:0 0 auto;
  padding:8px 13px;
  border:1px solid var(--account-brown-line);
  border-radius:999px;
  background:var(--account-brown-soft);
  color:var(--account-brown-dark);
  font-size:12px;
  font-weight:800;
}
.account-dashboard-page .site-footer{padding-top:10px}

@media(max-width:1080px){
  .account-dashboard-shell{grid-template-columns:220px minmax(0,1fr);gap:18px}
  .account-dashboard-page main{padding-inline:18px}
  .account-dashboard-hero{padding:28px}
  .account-builder-cta{flex-basis:220px}
  .account-current-info{grid-template-columns:1fr 1fr}
  .account-current-info > div:last-child{grid-column:1 / -1}
}

@media(max-width:860px){
  .account-dashboard-page header{height:70px;padding:0 16px}
  .account-dashboard-page .brand.signup-header-brand{grid-template-columns:40px auto;column-gap:8px}
  .account-dashboard-page .signup-header-brand__logo-link{width:40px;height:40px}
  .account-dashboard-page .signup-header-brand__title{font-size:17px}
  .account-dashboard-page .brand.signup-header-brand > small{font-size:9px}
  .account-header-nav{gap:4px}
  .account-header-nav a,.account-header-logout{padding-inline:9px;font-size:12px}
  .account-dashboard-page main{padding:22px 12px 38px}
  .account-dashboard-shell{display:block}
  .account-sidebar{display:none}
  .account-mobile-menu{
    display:block;
    margin-bottom:14px;
    border:1px solid #dfe5ec;
    border-radius:13px;
    background:#fff;
    box-shadow:0 8px 24px rgba(31,48,76,.05);
    overflow:hidden;
  }
  .account-mobile-menu > summary{
    min-height:50px;
    display:flex;
    align-items:center;
    padding:11px 15px;
    color:#24344c;
    font-size:14px;
    font-weight:800;
    cursor:pointer;
    list-style:none;
  }
  .account-mobile-menu > summary::-webkit-details-marker{display:none}
  .account-mobile-menu[open] > summary{border-bottom:1px solid #e7ebf0;background:#fbfaf9}
  .account-mobile-menu .account-side-nav{margin:0;padding:10px}
  .account-mobile-menu .account-side-nav__danger{margin-top:5px}
  .account-dashboard-hero{min-height:0;align-items:stretch;flex-direction:column;padding:24px}
  .account-dashboard-hero h1{font-size:25px}
  .account-builder-cta{flex:0 0 auto;min-height:70px;width:100%}
  .account-section-card{padding:22px 18px;border-radius:16px}
  .account-section-card__heading{align-items:flex-start;flex-direction:column;gap:5px}
  .account-current-info{grid-template-columns:1fr}
  .account-current-info > div:last-child{grid-column:auto}
  .account-inline-form{grid-template-columns:1fr}
  .account-inline-form button{width:100%}
  .account-email-placeholder{align-items:stretch;flex-direction:column}
  .account-email-placeholder button{width:100%}
  .account-subscription-card{align-items:flex-start;flex-direction:column}
}

@media(max-width:520px){
  .account-header-nav a{display:none}
  .account-dashboard-page main{padding-inline:9px}
  .account-dashboard-hero{padding:21px 18px;border-radius:15px}
  .account-dashboard-hero h1{font-size:22px}
  .account-section-card{margin-top:16px;padding:16px 12px}
  .account-section-card__heading{padding-inline:4px}
  .account-section-card__heading h2,.account-subscription-card h2{font-size:20px}
  .account-accordion > summary{min-height:66px;padding:14px}
  .account-accordion__body{padding:17px 14px 20px}
  .account-current-info > div{padding:13px}
}

/* --------------------------------------------------------------------------
   Account secondary pages v35
   /sessions と /account/deletion を /account と同じダッシュボードシェルへ統一。
   大きな Builder CTA は置かず、既存の小さなヘッダーリンクのみ残す。
   -------------------------------------------------------------------------- */

.account-secondary-page .account-dashboard-hero--subpage{
  min-height:150px;
  justify-content:flex-start;
  padding:30px 34px;
}

.account-secondary-page .account-dashboard-hero--subpage .account-dashboard-hero__copy{
  max-width:860px;
}

.account-secondary-card{
  margin-top:24px;
}

.account-secondary-message:not(:empty){
  margin-top:16px;
}

.account-secondary-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid #edf0f4;
}

.account-secondary-links .outline{
  min-width:180px;
}

/* /sessions --------------------------------------------------------------- */

.account-sessions-card .sessions{
  gap:12px;
}

.account-sessions-card .device{
  min-height:72px;
  padding:15px 16px;
  border:1px solid #e0e6ed;
  border-radius:12px;
  background:#fbfcfd;
}

.account-sessions-card .device strong{
  color:#22324a;
  font-size:14px;
}

.account-sessions-card .device small{
  color:var(--account-muted);
  font-size:12px;
  line-height:1.6;
}

.account-sessions-card .device .outline{
  flex:0 0 auto;
  min-width:110px;
  border-color:#b99380;
  color:#76503e;
}

.account-sessions-card .device .outline:hover,
.account-sessions-card .device .outline:focus-visible{
  border-color:#8b5e49;
  background:#fbf8f5;
  color:#684331;
  filter:none;
}

.account-sessions-card .sessions > .danger{
  width:100%;
  min-height:48px;
  margin-top:8px;
  border-color:#b42336;
  background:#fff;
  color:#a21e31;
}

.account-sessions-card .sessions > .danger:hover,
.account-sessions-card .sessions > .danger:focus-visible{
  background:#fff6f6;
  filter:none;
}

/* /account/deletion ------------------------------------------------------- */

.account-deletion-page .account-side-nav__danger.is-active{
  border-color:#efc9ce;
  background:#fff2f3;
  color:#922235!important;
}

.account-deletion-hero{
  border-color:#e8d9dc;
  background:linear-gradient(135deg,#fff 0%,#fffafa 100%);
}

.account-deletion-hero .eyebrow{
  color:#9c2634;
}

.account-deletion-card.deletion-danger{
  width:auto;
  margin-top:24px;
  padding:30px;
  border:1px solid #e3c4c9;
  border-top:4px solid #ad2638;
  border-radius:20px;
  background:#fff;
  box-shadow:0 16px 42px rgba(31,48,76,.055);
}

.account-deletion-card.deletion-danger h2,
.account-deletion-card.deletion-danger h3{
  color:#902132;
}

.account-deletion-card__heading{
  padding-bottom:18px;
  border-bottom:1px solid #f0e1e3;
}

.account-deletion-card__heading .account-section-kicker{
  color:#9c2634;
}

.account-deletion-copy{
  color:#596a82;
  font-size:14px;
  line-height:1.9;
}

.account-deletion-copy p{
  margin:0 0 18px;
}

.account-deletion-copy h3{
  margin:26px 0 12px;
  font-size:19px;
  line-height:1.45;
}

.account-deletion-page #deletion-procedure .deletion-message:not(:empty){
  margin:0 0 20px;
}

.account-deletion-page #deletion-procedure form label{
  color:#26354d;
}

.account-deletion-page #deletion-procedure > button:not([hidden]),
.account-deletion-page #deletion-procedure form:not([hidden]){
  max-width:none;
}

.account-deletion-page #deletion-procedure > button:not([hidden]){
  border-color:#8b5e49;
  background:linear-gradient(135deg,#8b5e49 0%,#76503e 100%);
}

.account-deletion-page #deletion-procedure > button.outline:not([hidden]){
  border-color:#b99380;
  background:#fff;
  color:#76503e;
}

.account-deletion-page #deletion-procedure > button.outline:not([hidden]):hover,
.account-deletion-page #deletion-procedure > button.outline:not([hidden]):focus-visible{
  background:#fbf8f5;
  filter:none;
}

.account-deletion-page #deletion-procedure #deletion-final > button.danger{
  border-color:#ad2638;
  background:#ad2638;
  color:#fff;
}

.account-deletion-page #deletion-procedure #deletion-final > button.danger:hover,
.account-deletion-page #deletion-procedure #deletion-final > button.danger:focus-visible{
  background:#982032;
  filter:none;
}

.account-deletion-back{
  margin-top:24px;
}

@media(max-width:860px){
  .account-secondary-page .account-dashboard-hero--subpage{
    min-height:0;
    padding:24px;
  }

  .account-deletion-card.deletion-danger{
    padding:22px 18px;
    border-radius:16px;
  }
}

@media(max-width:580px){
  .account-sessions-card .device{
    align-items:stretch;
  }

  .account-sessions-card .device .outline{
    width:100%;
  }

  .account-secondary-links .outline{
    width:100%;
  }
}

@media(max-width:520px){
  .account-secondary-page .account-dashboard-hero--subpage{
    padding:21px 18px;
  }

  .account-deletion-card.deletion-danger{
    margin-top:16px;
    padding:18px 12px;
  }

  .account-deletion-copy{
    font-size:13px;
    line-height:1.85;
  }
}


/* v37: secure email address change */
.account-email-change-card{max-width:none}
.account-email-change-card .account-section-card__heading{align-items:flex-start}
.email-change-current{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 20px;margin:4px 0 22px;border:1px solid var(--line,#d8e0ea);border-radius:16px;background:#f8fafc}
.email-change-current span{color:#66758c;font-size:.92rem}
.email-change-current strong{font-size:1.05rem;word-break:break-all}
.email-change-form{display:grid;gap:18px}
.email-change-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.email-change-form label{display:grid;gap:8px;font-weight:700}
.email-change-form input{width:100%}
.email-change-form>button{width:100%}
.email-change-message:empty{display:none}
.email-change-message{margin-top:16px}
.email-change-pending{margin-top:22px;padding:22px;border:1px solid #d7e3d8;border-radius:18px;background:#f5fbf6}
.email-change-pending h3{margin:0 0 14px;font-size:1.12rem}
.email-change-pending dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 14px}
.email-change-pending dl>div{padding:14px 16px;border-radius:12px;background:#fff;border:1px solid #e2e9e3}
.email-change-pending dt{font-size:.82rem;color:#6b7888;margin-bottom:5px}
.email-change-pending dd{margin:0;font-weight:700;word-break:break-all}
.email-change-pending p{margin:0;color:#5e6b7d;line-height:1.8}
.email-change-pending-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.email-change-pending-actions button{min-width:180px}
.email-change-dialog{width:min(620px,calc(100vw - 32px));border:0;border-radius:22px;padding:0;box-shadow:0 24px 70px rgba(15,30,55,.26)}
.email-change-dialog::backdrop{background:rgba(19,30,49,.55)}
.email-change-dialog .reauth-content{padding:30px}
.email-change-dialog .reauth-content>h3{margin:0 0 10px;font-size:1.45rem}
.email-change-dialog .reauth-content>.help{margin:0 0 22px;line-height:1.75}
.email-change-dialog form{display:grid;gap:14px;margin:0 0 14px}
.email-change-reauth-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.email-change-reauth-methods:empty{display:none}
.email-change-reauth-methods button{width:100%}
.email-change-dialog [data-email-change-reauth-cancel]{margin-top:12px}
.email-change-verify-panel{max-width:850px}
.email-change-verify-panel .external-verify-start{margin-top:10px}
.auth-page--email-change-verify .site-footer{margin-top:auto}
@media(max-width:720px){
 .email-change-current{align-items:flex-start;flex-direction:column;gap:6px}
 .email-change-form-grid,.email-change-pending dl,.email-change-reauth-methods{grid-template-columns:1fr}
 .email-change-pending-actions{flex-direction:column}
 .email-change-pending-actions button{width:100%;min-width:0}
 .email-change-dialog .reauth-content{padding:24px 20px}
}
.account-email-placeholder > a.outline{flex:0 0 auto;text-decoration:none;white-space:nowrap}
@media(max-width:860px){.account-email-placeholder > a.outline{width:100%;text-align:center}}
/* --------------------------------------------------------------------------
   Registration Guard privacy page v1.1
   /registration-guard-privacy
   - Fixes the previous <main class="panel"> flex-layout collapse.
   - Provides a dedicated readable document layout using the existing MT3 theme.
   -------------------------------------------------------------------------- */

.registration-guard-privacy-page{
  --rg-navy:#102c67;
  --rg-blue:#2f71df;
  --rg-orange:#ff7b22;
  --rg-card:#ffffff;
  --rg-border:#d8e0f0;
  --rg-muted:#657594;
  min-height:100vh;
  background:
    radial-gradient(circle at 13% 16%,rgba(189,216,255,.88) 0,rgba(189,216,255,0) 31%),
    radial-gradient(circle at 84% 14%,rgba(235,216,255,.86) 0,rgba(235,216,255,0) 33%),
    radial-gradient(circle at 14% 90%,rgba(205,250,239,.82) 0,rgba(205,250,239,0) 35%),
    radial-gradient(circle at 88% 90%,rgba(255,231,205,.78) 0,rgba(255,231,205,0) 36%),
    linear-gradient(135deg,#eef6ff 0%,#f4efff 48%,#fff8ee 100%);
  color:#112a55;
}

.registration-guard-privacy-page .registration-guard-privacy-header{
  flex:0 0 auto;
  height:68px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:0 max(24px,calc((100vw - 1120px)/2));
  border-bottom:1px solid rgba(178,194,222,.64);
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);
}

.registration-guard-privacy-brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.registration-guard-privacy-brand__logo{
  flex:0 0 44px;
  width:44px;
  height:44px;
  display:block;
  border-radius:50%;
  overflow:hidden;
  text-decoration:none;
}

.registration-guard-privacy-brand__logo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.registration-guard-privacy-brand__text{
  display:grid;
  gap:1px;
  min-width:0;
}

.registration-guard-privacy-brand__title{
  color:#0e2b61;
  font-size:19px;
  font-weight:800;
  line-height:1.1;
  letter-spacing:.02em;
  text-decoration:none;
}

.registration-guard-privacy-brand__text small{
  color:#657594;
  font-size:10px;
  font-weight:700;
  line-height:1.1;
  letter-spacing:.035em;
}

.registration-guard-privacy-brand__text small a{
  color:inherit;
  text-decoration:none;
}

.registration-guard-privacy-brand__title:hover,
.registration-guard-privacy-brand__title:focus-visible,
.registration-guard-privacy-brand__logo:hover,
.registration-guard-privacy-brand__logo:focus-visible{
  text-decoration:none;
}

.registration-guard-privacy-brand__text small a:hover,
.registration-guard-privacy-brand__text small a:focus-visible{
  text-decoration:underline;
  text-underline-offset:2px;
}

.registration-guard-privacy-nav{
  display:flex;
  align-items:center;
  gap:16px;
  font-size:14px;
  font-weight:700;
}

.registration-guard-privacy-nav a{
  color:#17366f;
  text-decoration:none;
}

.registration-guard-privacy-nav a:hover,
.registration-guard-privacy-nav a:focus-visible{
  text-decoration:underline;
  text-underline-offset:3px;
}

.registration-guard-privacy-page main{
  flex:1;
  width:100%;
  display:block;
  padding:42px 18px 48px;
}

.registration-guard-privacy-stage{
  width:min(100%,920px);
  margin:0 auto;
}

.registration-guard-privacy-panel{
  width:100%;
  padding:38px 42px 34px;
  border:1px solid rgba(190,201,224,.84);
  border-radius:22px;
  background:rgba(255,255,255,.97);
  box-shadow:0 18px 55px rgba(42,62,111,.13);
}

.registration-guard-privacy-heading{
  padding-bottom:24px;
  border-bottom:1px solid #e8edf5;
}

.registration-guard-privacy-kicker{
  margin:0 0 9px;
  color:#8b5e49;
  font-size:11px;
  font-weight:800;
  letter-spacing:.16em;
}

.registration-guard-privacy-heading h1{
  margin:0;
  color:#122c5e;
  font-size:28px;
  line-height:1.4;
  letter-spacing:-.025em;
}

.registration-guard-privacy-lead{
  margin:12px 0 0;
  color:var(--rg-muted);
  font-size:14px;
  line-height:1.85;
}

.registration-guard-privacy-copy{
  margin-top:4px;
}

.registration-guard-privacy-section{
  padding:25px 0 24px;
  border-bottom:1px solid #edf1f6;
}

.registration-guard-privacy-section:last-child{
  border-bottom:0;
}

.registration-guard-privacy-section h2{
  margin:0 0 11px;
  color:#1c315d;
  font-size:18px;
  line-height:1.5;
}

.registration-guard-privacy-section p{
  margin:0;
  color:#586a86;
  font-size:14px;
  line-height:1.95;
  overflow-wrap:anywhere;
}

.registration-guard-privacy-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:10px;
  padding-top:24px;
  border-top:1px solid #e8edf5;
}

.registration-guard-privacy-action{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 16px;
  border:1px solid #bac8de;
  border-radius:10px;
  background:#fff;
  color:#17376d;
  font-size:13px;
  font-weight:700;
  text-decoration:none;
}

.registration-guard-privacy-action:hover,
.registration-guard-privacy-action:focus-visible{
  background:#f6f9ff;
  text-decoration:none;
}

.registration-guard-privacy-action--primary{
  margin-left:auto;
  border-color:#2f71df;
  background:linear-gradient(135deg,#245fc7 0%,#2f77e8 100%);
  color:#fff;
  box-shadow:0 7px 16px rgba(34,93,195,.15);
}

.registration-guard-privacy-action--primary:hover,
.registration-guard-privacy-action--primary:focus-visible{
  color:#fff;
  filter:brightness(.97);
}

.registration-guard-privacy-page .site-footer{
  flex:0 0 auto;
}

@media(max-width:720px){
  .registration-guard-privacy-page .registration-guard-privacy-header{
    height:64px;
    padding:0 14px;
  }

  .registration-guard-privacy-brand__logo{
    flex-basis:40px;
    width:40px;
    height:40px;
  }

  .registration-guard-privacy-brand__title{
    font-size:17px;
  }

  .registration-guard-privacy-nav{
    font-size:12px;
  }

  .registration-guard-privacy-page main{
    padding:24px 12px 34px;
  }

  .registration-guard-privacy-panel{
    padding:28px 24px 25px;
    border-radius:18px;
  }

  .registration-guard-privacy-heading h1{
    font-size:24px;
  }

  .registration-guard-privacy-action--primary{
    margin-left:0;
  }
}

@media(max-width:520px){
  .registration-guard-privacy-brand__text small{
    font-size:9px;
  }

  .registration-guard-privacy-nav a{
    font-size:11px;
  }

  .registration-guard-privacy-page main{
    padding:16px 9px 28px;
  }

  .registration-guard-privacy-panel{
    padding:23px 17px 20px;
    border-radius:15px;
  }

  .registration-guard-privacy-heading{
    padding-bottom:20px;
  }

  .registration-guard-privacy-heading h1{
    font-size:21px;
  }

  .registration-guard-privacy-lead,
  .registration-guard-privacy-section p{
    font-size:13px;
    line-height:1.85;
  }

  .registration-guard-privacy-section{
    padding:21px 0 20px;
  }

  .registration-guard-privacy-section h2{
    font-size:17px;
  }

  .registration-guard-privacy-actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .registration-guard-privacy-action{
    width:100%;
  }
}
