/* Application typography, including dialogs and standalone application pages. */
:root{--ui-title:32px;--ui-section:24px;--ui-subheading:20px;--ui-body:17px;--ui-control:16px;--ui-help:14px;--ui-table-heading:15px}
html body{font-size:var(--ui-body)!important;line-height:1.6}
html body h1,html body #view h1{font-size:var(--ui-title)!important;line-height:1.35!important}
html body h2,html body #view h2,html body #modalBody h2{font-size:var(--ui-section)!important;line-height:1.45!important}
html body h3,html body #view h3,html body #modalBody h3{font-size:var(--ui-subheading)!important;line-height:1.45!important}
html body label,html body .field label,html body #view label,html body #modalBody label{font-size:var(--ui-control)!important;line-height:1.5!important}
html body input,html body select,html body textarea,html body button,html body .btn,html body .input,html body #view input,html body #view select,html body #view textarea,html body #view .btn,html body #modalBody .btn{font-size:var(--ui-control)!important;line-height:1.45!important}
html body .editor,html body [contenteditable=true],html body .editor *{font-size:var(--ui-control)!important;line-height:1.6!important}
html body p,html body .sub,html body #view .sub{font-size:var(--ui-body)!important;line-height:1.6!important}
html body .notice,html body .field-help,html body .section-note,html body small,html body #view .notice,html body #view .card small{font-size:var(--ui-help)!important;line-height:1.65!important}
html body p.field-help{font-size:var(--ui-help)!important;line-height:1.65!important}
html body .badge,html body .status,html body .type,html body .delivery-type,html body .review-status,html body .owner-approval,html body .notification-status,html body .candidate-state,html body .candidate-legend span,html body .pk-generation,html body .pk-status,html body .pk-candidate,html body .pk-readiness-mini span,html body .spam-status,html body .spam-policy span,html body .spam-domain-rule span,html body .draft-status,html body .city-choice span,html body #tenantBadge{font-size:var(--ui-help)!important;line-height:1.5!important}
html body .metric span,html body .contact-metric span,html body .dashboard-kpi small,html body .dashboard-kpi p,html body .summary-stats small,html body .summary-stats p,html body .dashboard-pager,html body .dashboard-note,html body .response-owner-head,html body .ai-field-help,html body .quick-period b,html body .point-card-footer nav button span{font-size:var(--ui-help)!important;line-height:1.5!important}
html body .guide-import-hero p,html body .guide-import-cards p,html body .guide-import-cards li,html body .guide-ai-judge p,html body .guide-ai-judge b,html body .guide-ai-judge span,html body .guide-import-flow b,html body .guide-import-flow span{font-size:var(--ui-body)!important;line-height:1.65!important}
html body th,html body #view table th,html body #view table:not(.dashboard-table) th{font-size:var(--ui-table-heading)!important;line-height:1.45!important}
html body td,html body #view table td,html body #view table:not(.dashboard-table) td{font-size:var(--ui-body)!important;line-height:1.5!important}
html body .sidebar nav button,html body .common-menu a,html body .sidebar nav button span{font-size:var(--ui-control)!important;line-height:1.45!important}
html body .modal .btn,html body .ui-dialog button{font-size:var(--ui-control)!important}
.template-edit-form .field{margin-bottom:16px}.template-edit-form .field-help{margin:6px 0 10px}.signature-preview{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;margin:10px 0}.signature-preview:empty{display:none}
@media(max-width:760px){:root{--ui-title:28px;--ui-section:22px}html body .sidebar nav button,html body #view table.mobile-card-table td{font-size:var(--ui-control)!important}html body #view table.mobile-card-table td:before{font-size:var(--ui-help)!important}}

/* Hints are placeholders: focus never clears actual values. */
html body input:focus::placeholder,html body textarea:focus::placeholder{color:transparent!important;opacity:0!important}
html body [contenteditable][data-placeholder]:empty:before{content:attr(data-placeholder);color:#708392;pointer-events:none}
html body [contenteditable][data-placeholder]:focus:before{content:none}
html body [hidden]{display:none!important}

/* Global compact controls: short numeric/date/time values should not occupy full-width fields. */
html body input[type="number"],
html body input[type="time"],
html body input[type="date"],
html body input[inputmode="numeric"],
html body .field.pixel input{width:auto!important;max-width:12ch!important}
html body input[type="time"]{max-width:9.5ch!important}
html body input[type="date"]{max-width:12ch!important}
html body .field.short,
html body .field.pixel{width:max-content;max-width:100%}
html body .field.short input,
html body .field.short select{width:auto!important;min-width:8ch;max-width:16ch!important}
html body .field.pixel input{width:10ch!important}
@media(max-width:520px){.sender-setting-card dl{display:grid!important}}
@media(max-width:520px){
  html body .field.short,
  html body .field.pixel{width:100%}
  html body .field.short input,
  html body .field.short select,
  html body .field.pixel input,
  html body input[type="number"],
  html body input[type="time"],
  html body input[type="date"],
  html body input[inputmode="numeric"],
  html body .compact-time,
  html body .compact-run-count,
  html body .nasshii-count-input{width:100%!important;max-width:100%!important}
}

/* 数値入力の幅はここだけで決める（styles.css 側の旧規則は削除済み。追加は禁止）。
   配信数・リストアップ数 = 狭い幅 / 配信時刻・実行回数 = 「配信対象外とする曜日」見出しと同じ幅 */
:root{--input-narrow:6rem;--input-label-wide:10em}
@media(min-width:521px){
  /* input.xxx にして type 属性セレクタ付きの汎用規則(詳細度 0,1,3)と同格にし、後勝ちで確実に適用する */
  html body input.nasshii-count-input{width:var(--input-narrow)!important;max-width:100%!important;min-width:0!important}
  html body input.compact-time,
  html body input.compact-run-count{width:var(--input-narrow)!important;max-width:100%!important;flex:0 0 auto}
  html body #nasshiiMaxRuns{display:block;margin-top:4px;white-space:normal}
}
/* 定期プラン（曜日・時刻・実行回数）の配置は、styles.css 末尾の1か所だけで決める（ここには書かない） */
/* ビルド番号（画面の反映確認用）。更新したら index.html と pr-image-sidebar.js の2か所を同じ値に */
.build-stamp{margin:10px 12px 14px;font-size:11px;color:#8aa0b2;letter-spacing:.02em}
/* 2026-10-14 スマホ（760px以下）: サイドバーの版の表示が見えない（隠れる・押したときだけ開くメニューの一番下）→ ページの一番下に、薄く小さく表示（PCは、サイドバーの下） */
.build-stamp-bottom{display:none}
@media(max-width:760px){.build-stamp-bottom{display:block;margin:18px 12px 20px;padding-bottom:env(safe-area-inset-bottom,0);font-size:11px;color:#8aa0b2;text-align:center;letter-spacing:.02em}}
