/* ログインの画面(スマホ先行)。enrollment/styles.css と同じ色と大きさ */
:root { font-family: system-ui, sans-serif; color: #182f35; background: #f4f6f3; font-size: 16px; line-height: 1.7; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; }
header { padding: 14px 16px; background: #fff; border-bottom: 1px solid #d5dfda; }
.brand { color: #173f36; font-weight: 750; text-decoration: none; }
main { max-width: 480px; margin: auto; padding: 16px; }
section { padding: 20px 16px; border: 1px solid #d5dfda; border-radius: 16px; background: #fff; }
h1 { font-size: 24px; line-height: 1.5; margin: 4px 0 16px; }
h2 { font-size: 18px; margin: 24px 0 4px; }
p { margin: 10px 0 16px; overflow-wrap: anywhere; }
.hint { font-size: 14px; color: #53685e; }
label { display: grid; gap: 6px; margin: 12px 0; font-weight: 600; }
input { width: 100%; min-height: 48px; border: 1px solid #859e92; border-radius: 8px; padding: 10px; font-size: 18px; background: #fff; color: #182f35; }
button { min-height: 48px; padding: 10px 16px; border-radius: 10px; border: 1px solid #bccdc5; background: #fff; font-size: 16px; color: #182f35; }
button.full { display: block; width: 100%; margin: 10px 0; }
button:disabled { opacity: .65; cursor: wait; }
.primary { color: #fff; background: #175442; border-color: #175442; font-weight: 650; }
a { display: inline-block; min-height: 44px; padding: 10px 0; color: #175442; text-underline-offset: 4px; }
[role=alert] { border: 1px solid #ba5555; color: #812020; padding: 12px 14px; background: #fff0ee; border-radius: 10px; margin: 0 0 12px; }

/* 画面の切り替えの文字の釦(会員登録へ・ログインへ戻る) */
button.link { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; cursor: pointer; font: inherit; min-height: 44px; }
