/*
 * 確認画面の送信ボタンの活性表示（補助的ガイド）。
 *
 * 送信ボタンは既定で活性表示（ui-btn--primary）。confirm-submit-gate 配下の入力状態を :has() で見て、
 * 次のいずれかを満たすときだけ無効表示（gray-200・クリック不可）へ上書きする。条件を満たすと自動で
 * 活性表示へ戻る。本物の disabled 属性は付けず pointer-events で代用する（本検証はサーバ側）。
 *
 * 無効化条件（セレクタは詳細度の昇順に並べる。降順だと noDescendingSpecificity に触れるため。宣言は共通なので順序は描画に影響しない）:
 *  1. 添付アップロード中（attachment コントローラが data-attachment-uploading を立てる）
 *  2. 承認経路セクションがある（編集者）のに承認者が 1 件も選択されていない
 *     （combo の data-combo-box-display が選択時に表示値、未選択時に空）
 *  3. 送信先メールが 1 件も入力されていない（非表示行を除く。placeholder=" " により :placeholder-shown が空判定）
 *
 * テンプレート（<template> 内）の行は :has() の対象外のため、誤検知しない。
 */
.confirm-submit-gate:has([data-attachment-uploading]) .confirm-submit-button,
.confirm-submit-gate:has([data-controller~="tenant--orders--approval-flow"]):not(
    :has(
      [data-controller~="tenant--orders--approval-flow"]
        [data-combo-box-display]:not([data-combo-box-display=""])
    )
  )
  .confirm-submit-button,
.confirm-submit-gate:not(
    :has(.confirm-email-row:not([hidden]) input[type="email"]:not(:placeholder-shown))
  )
  .confirm-submit-button {
  @apply cursor-not-allowed bg-gray-200 text-white;
  pointer-events: none;
}

/*
 * 右ペインの発注書プレビュー。プレビューは A4 縦の実寸（210mm）で組まれているため、
 * 従来の表示幅 768px に合わせて zoom で固定縮小する（768px / 210mm、210mm = 96/25.4 px/mm）。
 * ウィンドウが 768px に満たない場合はペイン側の overflow-x-auto で横スクロールに逃がす。
 */
.order-confirm-preview {
  zoom: calc(768 / (210 * 96 / 25.4));
}
