/* 入口ページ（未ログイン）と申し込み画面まわりの見た目。app.css のトークンを使う。
   body[data-auth="welcome"] のときは診断アプリの枠（サイドバー・トップバー）ごと消して、入口を画面いっぱいに出す。
   PC（960px 以上）は左=フォーム面／右=ブランド面の2分割。スマホは左面だけの1列。 */
body[data-auth="welcome"] .sidebar,
body[data-auth="welcome"] .topbar,
body[data-auth="welcome"] .billing-banner{display:none !important}
body[data-auth="welcome"] .app{grid-template-columns:minmax(0,1fr)}
body[data-auth="welcome"] main#view{padding:0; max-width:none}

.entry{min-height:100vh; min-height:100dvh; display:grid; grid-template-columns:minmax(0,1fr); background:var(--surface)}
.entry-form-side{display:flex; flex-direction:column; min-height:100vh; min-height:100dvh; padding:28px 24px 20px; background:var(--surface)}
.entry-logo{display:flex; align-items:center; gap:10px; color:var(--brand); font-size:18px; font-weight:800; letter-spacing:-.01em}
.entry-logo span{color:var(--ink)}
.entry-form{width:100%; max-width:380px; margin:auto; padding:40px 0}
.entry-title{margin:0 0 8px; font-size:28px; line-height:1.3; font-weight:800; letter-spacing:-.02em; color:var(--ink)}
.entry-title,.entry-lead,.entry-tagline{text-wrap:balance; word-break:auto-phrase}
.entry-lead{margin:0 0 28px; font-size:14.5px; color:var(--sub)}

/* Google のブランドガイド: 白地・1px 枠線・G の4色マーク・#1f1f1f の文字 */
.entry-google{display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:46px; padding:10px 16px;
  background:#fff; color:#1f1f1f; border:1px solid #747775; border-radius:999px; font-size:15px; font-weight:600; text-decoration:none;
  transition:background var(--t), box-shadow var(--t)}
.entry-fields{display:flex; flex-direction:column; gap:14px; margin:0 0 20px}
.entry-fields[hidden]{display:none}
.entry-field{display:flex; flex-direction:column; gap:6px}
.entry-field-label{font-size:13.5px; font-weight:700; color:var(--ink)}
.entry-field-label small{margin-left:8px; font-size:12px; font-weight:400; color:var(--sub)}
.entry-input{width:100%; box-sizing:border-box; min-height:44px; padding:10px 12px; font:inherit; font-size:15px; color:var(--ink);
  background:var(--surface); border:1px solid var(--line); border-radius:10px}
textarea.entry-input{resize:vertical}
.entry-input:focus{outline:2px solid var(--brand); outline-offset:1px; border-color:var(--brand)}
.entry-google{font-family:inherit; cursor:pointer}
.entry-email{margin:0 0 14px}
.entry-primary{display:flex; align-items:center; justify-content:center; width:100%; min-height:46px; padding:10px 16px; font:inherit; font-size:15px; font-weight:700;
  color:#fff; background:var(--brand); border:0; border-radius:999px; cursor:pointer; transition:background var(--t)}
.entry-primary:hover{background:var(--brand-ink)}
.entry-primary:disabled{opacity:.6; cursor:default}
.entry-divider{display:flex; align-items:center; gap:12px; margin:18px 0; font-size:12.5px; color:var(--sub)}
.entry-divider::before,.entry-divider::after{content:""; flex:1; border-top:1px solid var(--line-soft)}
.entry-sent-title{margin:0 0 10px; font-size:18px; font-weight:800; color:var(--ink)}
.entry-sent-text{margin:0 0 8px; font-size:14.5px; line-height:1.8; color:var(--ink-2); word-break:break-all}
.entry-sent-hint{margin:0 0 16px; font-size:13px; color:var(--sub)}
.entry-text-btn{display:inline-block; padding:6px 0; font:inherit; font-size:14px; font-weight:700; color:var(--brand); background:none; border:0;
  text-decoration:underline; text-underline-offset:3px; cursor:pointer}
.entry-primary:focus-visible,.entry-google:focus-visible,.entry-text-btn:focus-visible,.entry-switch-link:focus-visible{outline:3px solid var(--brand); outline-offset:3px}
.entry-verify .entry-primary{margin-top:4px}
.entry-verify .form-error{margin-top:12px}
.entry-verify .entry-text-btn{margin-top:8px}
.entry-google:hover{background:#f8fafb; box-shadow:var(--sh-sm)}
.entry-google:active{transform:scale(.99)}
.entry-terms{margin:14px 0 0; font-size:12.5px; line-height:1.7; color:var(--sub)}
.entry-terms a{color:var(--ink-2); text-decoration:underline; text-underline-offset:2px}
.entry-switch{margin:32px 0 0; padding-top:20px; border-top:1px solid var(--line-soft); font-size:14px; color:var(--ink-2)}
.entry-switch-link{margin-left:2px; padding:6px 2px; font-weight:700; color:var(--brand); text-decoration:underline; text-underline-offset:3px}
.entry-foot{display:flex; flex-direction:column; align-items:center; gap:2px}
.entry-pricing{padding:8px 4px; font-size:12.5px; color:var(--sub)}

.entry-brand-side{display:none}

@media (min-width:960px){
  .entry{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .entry-form-side{padding:36px 48px 24px}
  .entry-brand-side{display:flex; align-items:center; padding:64px 56px; color:#fff;
    background:radial-gradient(120% 80% at 100% 0%,rgba(255,255,255,.10) 0,transparent 55%),linear-gradient(160deg,var(--brand) 0,var(--brand-ink) 100%)}
  .entry-brand-inner{width:100%; max-width:460px}
  .entry-tagline{margin:0 0 32px; font-size:26px; line-height:1.4; font-weight:800; letter-spacing:-.02em}
  .entry-points{list-style:none; margin:0 0 40px; padding:0; display:flex; flex-direction:column; gap:16px}
  .entry-points li{display:flex; align-items:center; gap:14px; font-size:15px; line-height:1.6}
  .entry-points svg{flex:0 0 auto; box-sizing:content-box; padding:9px; border-radius:10px; background:rgba(255,255,255,.14)}
  .entry-steps-title{margin:0 0 14px; font-size:13px; font-weight:700; letter-spacing:.04em; color:rgba(255,255,255,.82)}
  .entry-steps{list-style:none; counter-reset:step; margin:0; padding:0; display:flex; flex-direction:column; gap:12px}
  .entry-steps li{counter-increment:step; display:flex; align-items:center; gap:12px; font-size:14.5px}
  .entry-steps li::before{content:counter(step); flex:0 0 auto; width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center;
    border-radius:50%; border:1px solid rgba(255,255,255,.55); font-size:12.5px; font-weight:700}
}

.legal-links{display:flex; flex-wrap:wrap; justify-content:center; gap:6px 24px; margin:0; font-size:12px}
.legal-links a{display:inline-block; padding:8px 4px; color:var(--sub)}
.card .legal-links{margin-top:18px}

.signup-switch{margin:16px 0 0; padding-top:14px; border-top:1px solid var(--line-soft)}
