/* 文字サイズ（案B）。ここだけ変えれば全画面に反映。将来の「大」切替は .fs-large で上書きする */
:root {
  --fs-note: 13px;  /* 注意書き・出典など（旧 10〜11px） */
  --fs-xs: 14px;    /* 表・ラベル・補足（旧 12px） */
  --fs-sm: 16px;    /* 本文・表の中身・メニュー（旧 14px） */
  --fs-base: 16px;
  --fs-lg: 19px;
  --fs-xl: 22px;
  --fs-2xl: 26px;
  --fs-report-h: 17px;
}
html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body { font-size: var(--fs-base); }
.rh { font-size: var(--fs-report-h); font-weight: 700; color: #134e4a; border-left: 4px solid #0f766e; padding-left: 8px; margin-bottom: 8px; }
mark { padding: 0 2px; border-radius: 2px; }
@media print {
  @page { size: A4; margin: 12mm; }
  /* 紙（A4）では従来の大きさに戻して1枚あたりの情報量を保つ */
  :root { --fs-note: 10px; --fs-xs: 11.5px; --fs-sm: 13px; --fs-base: 13px; --fs-lg: 16px; --fs-xl: 18px; --fs-2xl: 22px; --fs-report-h: 15px; }
  body { background: #fff !important; }
  .no-print, #side-nav, footer { display: none !important; }
  #sample-banner { position: static !important; }
  #main-content { padding: 0 !important; max-width: none !important; }
  .report { border: none !important; padding: 0 !important; max-width: none !important; }
  .break-inside-avoid { break-inside: avoid; }
  canvas { max-width: 100% !important; }
}
/* パスワード表示切替（目のボタン） */
.pw-wrap { position: relative; display: block; }
.pw-wrap .pw-input { padding-right: 2.75rem !important; width: 100%; }
.pw-eye { position: absolute; right: 0.25rem; top: 50%; transform: translateY(-50%); width: 2.25rem; height: 2.25rem; display: flex; align-items: center; justify-content: center; color: #64748b; border-radius: 0.375rem; }
.pw-eye:hover { color: #0f766e; background: #f1f5f9; }
.pw-eye:focus-visible { outline: 2px solid #0f766e; outline-offset: 1px; }
