/* Brand and login layout */
body:not(.signed-in) main {
  min-height:calc(100dvh - var(--header-height)); display:grid; align-content:center; padding:48px 32px 64px;
  background:radial-gradient(ellipse at 16% 18%,#fff1d8 0,transparent 46%),linear-gradient(130deg,#fffdf9,#f2f8f6);
}
body:not(.signed-in) .login-layout { width:100%; max-width:1056px; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:clamp(28px,6vw,96px); margin:0 auto; }
.login-emblem { display:grid; place-items:center; width:124px; height:124px; margin-bottom:22px; border:1px solid #f0dfc3; border-radius:24px; background:#fff; box-shadow:0 9px 26px #99622613; }
.login-emblem img { width:106px; height:106px; object-fit:contain; }
.login-intro h1 { font-size:clamp(30px,3.1vw,46px); line-height:1.22; letter-spacing:-.035em; margin:0 0 16px; }
.login-intro>p { max-width:380px; font-size:15px; line-height:1.9; }
.login-intro .login-points { display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 0; }
.login-intro .login-points li { gap:6px; padding:6px 10px; border:1px solid #dce9e5; border-radius:8px; background:#ffffffae; }
.login-points .icon { width:16px; height:16px; flex-basis:16px; }
.login-card { padding:clamp(24px,3vw,38px); border-radius:20px; box-shadow:0 20px 56px #193e4715; }
.login-card h2 { font-size:26px; margin-bottom:6px; }
.login-card #login-help { margin:0 0 18px; }
.login-card .login-footer { font-size:12px; }
.login-password { position:relative; }
.login-password input { padding-right:64px; }
.login-password button { position:absolute; right:3px; top:3px; min-height:38px; font-size:12px; }
.login-selection { color:var(--accent); font-size:12px; line-height:1.7; }
.login-selection:empty { display:none; }
.test-login-dock { position:fixed; right:24px; bottom:max(20px,env(safe-area-inset-bottom)); z-index:30; width:min(392px,calc(100vw - 32px)); display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
.signed-in .test-login-dock { display:none; }
.test-login-toggle { min-height:48px; border:1px solid #b5d0c8; border-radius:12px; padding:12px 16px; background:#fff; color:var(--accent); box-shadow:0 4px 18px #193e4715; }
.test-login-toggle:hover,.test-login-toggle[aria-expanded=true] { background:var(--accent-soft); }
.test-login-toggle>span:first-child { font-size:21px; line-height:1; }
.test-login-toggle-hint { border-left:1px solid var(--line); padding-left:10px; margin-left:3px; color:var(--muted); font-size:11px; font-weight:400; }
.test-login-panel { width:100%; display:flex; flex-direction:column; min-height:0; max-height:min(580px,calc(100dvh - 120px)); background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px; box-shadow:0 16px 48px #18382f26; }
.test-login-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-shrink:0; }
.test-login-heading h2 { font-size:18px; margin:4px 0 0; }
.test-login-badge { font-size:10px; font-weight:600; color:var(--warning); }
.test-login-heading .icon-button { font-size:24px; }
.test-login-help { font-size:12px; color:var(--muted); margin:12px 0 6px; }
.test-login-panel input[type=search] { flex-shrink:0; }
.test-password-option { font-size:12px; flex-shrink:0; margin:4px 0 0; }
.test-login-status { font-size:12px; color:var(--muted); margin:0 0 10px; }
.test-login-list { overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; min-height:0; display:flex; flex-direction:column; gap:8px; }
.test-account { width:100%; flex:0 0 auto; min-height:92px; display:flex; flex-direction:column; align-items:stretch; gap:4px; padding:12px; text-align:left; background:#f8faf9; color:var(--ink); border:1px solid #e1e9e6; border-radius:10px; font-weight:400; overflow-wrap:anywhere; }
.test-account:hover { background:var(--accent-soft); border-color:#8eb8aa; }
.test-account-heading { display:flex; justify-content:space-between; gap:12px; }
.test-account-heading strong { font-size:14px; }
.test-account-action { color:var(--accent); font-size:12px; white-space:nowrap; }
.test-account-company { color:var(--muted); font-size:11px; }
.test-account-credential { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:11px; color:#3e5852; }
@media(max-width:600px) {
  body:not(.signed-in) main { align-content:start; padding:24px 16px 64px; }
  body:not(.signed-in) .login-layout { grid-template-columns:minmax(0,1fr); gap:20px; max-width:420px; }
  .login-intro { text-align:center; }
  .login-emblem { width:82px; height:82px; margin:0 auto 12px; border-radius:16px; }
  .login-emblem img { width:70px; height:70px; }
  .login-intro h1 { font-size:26px; margin-bottom:8px; }
  .login-intro>p { margin:0 auto; font-size:13px; line-height:1.7; }
  .login-intro .login-points { display:none; }
  .login-card { padding:22px; }
  .login-card .muted { margin-bottom:18px; }
  .test-login-dock { right:16px; bottom:max(12px,env(safe-area-inset-bottom)); }
  .test-login-panel { max-height:calc(100dvh - 96px); padding:16px; }
  .test-login-help { margin:8px 0 2px; }
}
@media(prefers-reduced-motion:reduce) { .test-login-dock button { transition:none; } }

.login-remember { margin-top:16px; font-size:14px; }
.login-card .login-memory-help { font-size:12px; color:var(--muted); line-height:1.6; margin:8px 0; }
.login-memory-help:empty { display:none; }
