/*
 * 認証フォームの画面 7 枚（B 群）で共有する CSS。下の 6 枚は認証不要、cli_authorize.html だけは認証が要る
 * （2026-09-29 に CLI のサインインの確認画面が加わった。ADR 0034。2026-10-13 にこの一覧に足した。
 * 2026-10-15 にパスキーの登録し直しの画面が加わった。ADR 0041）。
 *
 *   login.html                  サインイン           GET /login
 *   password_reset_request.html パスワードリセット申請 GET /password-reset
 *   password_reset.html         パスワード再設定      GET /reset-password/{token}
 *   password_reset_passkey.html パスキーの登録し直し  GET /reset-password/{token}（パスキー必須の会社）
 *   invite.html                 招待を承諾           GET /invite/{token}
 *   invalid_token.html          リンクが無効です      招待/リセットのトークンが無効なとき
 *   cli_authorize.html          CLI のサインインの確認 GET /cli/authorize（requireAuth）
 *
 * 【配信は nginx。go:embed しない】ADR 0030。app/static/ は nginx が
 * location /static/ で直接配信する（docker-compose.yml が ./app/static を bind マウント）。
 * app が 503（Argon2 ゲート飽和・ADR 0018）を返している間もスタイルが生きる。
 * **サインイン画面は Argon2 ゲートの飽和を最も受けやすい画面**なので、
 * 契約者側一覧（tenant-list.css）よりこの理由が強く効く。
 *
 * 【契約者側一覧（tenant-list.css）とは別ファイル】ADR 0030 の「系統ごとに分割する」。
 * 同名セレクタでも値が違う（button は #03a9f4 / 一覧側は素の button が 6px 12px など）。
 * 1 枚にまとめない。
 *
 * 【2026-09-15 に値を統一したもの】ADR 0030 は「値の統一は行わない」としているが、
 * 依頼元の判断で以下 2 点は統一した。**現状のページ間の差は設計意図ではなく
 * 経緯によるもの**で、揃えたほうがサイトとしての統一感が出るため。
 *   - body の max-width: 440px に統一（login が 400px・他 4 枚が 480px だった）
 *   - button:hover: login / invite にしか無かったものを共通にした
 * それ以外の定義は最初から完全一致しており、値を変えていない。
 *
 * 【440px は実測で決めた値。狭めるときは目視し直すこと】
 * いったん 400px に統一したところ、2 箇所で文末の「い。」だけが次行に落ちた。
 * ブラウザで実測した必要幅は
 *   invite の「利用開始にあたり、パスワードを設定してください。」= 412px
 *     （.info の padding 15px×2 を含む）
 *   invalid_token の「お手数ですが、招待された管理者に再送をご依頼ください。」= 432px
 * の 2 つで、両方を 1 行に収める下限が 432px。余裕を見て 440px にしてある。
 * **これらの文言を長くするか max-width を狭めると、また同じ崩れ方をする。**
 * なお password_reset_request の「登録済みのメールアドレスを入力してください。
 * リセット手順をお送りします。」は 573px 必要で、元から折り返している（変更前も同じ）。
 *
 * 【invalid_token.html は body の一部だけをインラインに残している】
 * この画面だけ body に text-align: center が要るため、それだけ <style> に残し、
 * font-family / padding / max-width / margin は共通側から受ける。
 * **規則を分解して一部だけ共通化した唯一の箇所**なので、共通側の body を
 * 触るときはこの画面も見ること。
 *
 * 2026-09-15 作成。
 */

body { font-family: sans-serif; padding: 40px; max-width: 440px; margin: 0 auto; }
.form-group { margin-bottom: 15px; }
label { display: block; margin-bottom: 5px; }
input[type="email"], input[type="password"] {
    width: 100%; padding: 8px; box-sizing: border-box;
    border: 1px solid #ccc; border-radius: 4px;
}
button { padding: 10px 20px; background: #03a9f4; color: white;
         border: none; border-radius: 4px; cursor: pointer; }
button:hover { background: #0288d1; }
#error { color: red; margin-top: 10px; }
.hint { font-size: 0.9em; color: #666; }

/* パスキーでのサインイン（login.html。issue #8 S-3・2026-10-09）。パスワードのボタンと区別するため輪郭だけにする */
.passkey-area { margin-top: 20px; }
.passkey-area .hint { margin: 0 0 8px; }
.passkey-button { background: #fff; color: #0277bd; border: 1px solid #03a9f4; }
.passkey-button:hover { background: #e1f5fe; }
.passkey-error { color: red; margin-top: 10px; }

/* パスワードの再設定でパスキーが消えることの案内・消した後の案内（password_reset.html。issue #8 S-8c・2026-10-15） */
.notice { background: #fff8e1; border: 1px solid #ffcc80; border-radius: 4px; padding: 10px 12px; margin-bottom: 15px; }
