/*
 * 【責務】 「INDUSTRIAL / TACTICAL」テーマのデザイントークン（SPEC §7.3）を一元定義する。見た目の変更はこのファイルの値だけで行う
 * 【要件】 §7.3, §7.4（AA コントラスト。実測値は docs/ui/CONTRAST.md）, COMP-8, DEC-009（外部フォントを使わない）, DEC-011（--pfc- 接頭辞）, DEC-090（フォントの役割）
 * 【入力】 なし   【出力】 CSS カスタムプロパティ（--pfc-*）
 * 【やらないこと】 要素へのスタイル適用はしない（theme.css の責務）。色・罫線・影・角丸・文字・寸法の値を他のファイルに直書きしない
 * フォント（DEC-090）：見出し＝IBM Plex Sans JP・数値＝BIZ UDゴシック・本文＝Noto Sans JP（すべて SIL OFL 1.1）。
 *   @font-face は src/ui/styles/fonts.css（tools/fonts/build_webfonts.mjs が自動で作る）。同じオリジンから配信する（外部 CDN は使わない）。
 *   取得元・版・SHA-256 は licenses/fonts/SOURCES.md、作り方は docs/fonts/README.md。フォント名はこのファイルの 3 つのトークンにだけ書く
 */
:root {
  color-scheme: dark;

  /* 色（§7.3）。DEC-089：黒に近い色からダークグレーへ（目に優しく。直角・罫線・グリッドのインダストリアルな形は変えない）。
     アプリ本体と規約・ポリシーのページは同じトークンを使う。値はこのファイルだけで変える。実測は docs/ui/CONTRAST.md */
  --pfc-bg: #212329;              /* ページ背景（ダークグレー） */
  --pfc-surface: #2A2D34;         /* パネル */
  --pfc-surface-2: #33363E;       /* カード・ボタン・入力欄 */
  --pfc-border: #4A4E57;          /* 枠線・方眼の線（グラフ）・斜線の縞 */
  --pfc-control-border: #8A8E98;  /* 操作部品（ボタン・入力欄・選択・タブ）の枠：パネル・カードの上で 3:1 以上（DEC-089） */
  --pfc-border-strong: #E4E6EA;
  --pfc-grid-line: #282A30;       /* 背景の方眼（見えすぎず消えすぎない：背景に 1.09:1） */
  --pfc-text: #E4E6EA;            /* 文字：オフホワイト */
  --pfc-heading: #FFFFFF;         /* 見出し：白 */
  --pfc-text-dim: #A9ADB6;
  --pfc-accent: #FFD400;
  --pfc-danger: #FF7A7A;          /* 危険・超過の文字・線（パネル・カードの上で 4.5:1 以上） */
  /* 超過のハザード柄の赤い縞（DEC-089：縞の上の文字は大きい文字の基準 3:1、縞と背景の縞も 3:1） */
  --pfc-hazard-stripe: #DE3A3A;
  --pfc-ok: #3DDC84;
  --pfc-macro-p: #38BDF8;
  --pfc-macro-f: #FFB000;
  --pfc-macro-c: #A3E635;
  /* 色の付いた面・アクセントの上の文字色 */
  --pfc-on-accent: #0B0B0C;
  /* 注意・警告の面（文字は --pfc-text） */
  --pfc-warn-surface: #3A3214;
  --pfc-danger-surface: #3D1C1E;
  /* ダイアログの背景の暗幕 */
  --pfc-backdrop: #000000B3;
  /* 週間グラフの「まだ来ていない日」の枠（DEC-076：パネルの背景に 3:1 以上・方眼の線 --pfc-border と区別できる明るさ。実測は docs/ui/CONTRAST.md） */
  --pfc-chart-future: #A4A8B1;
  /* 「未記録」の破線の枠（DEC-082：グラフの枠・凡例の印・バッジで共通。背景に 3:1 以上・方眼の線 --pfc-border とは別の色） */
  --pfc-unrecorded-frame: #8E929C;
  /* 「判定不能・目標未設定・不明あり」の実線の枠（DEC-083：斜線の模様と組み合わせる。背景に 3:1 以上。灰色の中立な色で、新しい意味は足さない） */
  --pfc-unknown-frame: #B3B7C0;

  /* プライバシーポリシー・利用規約のページ（body.doc-site）だけで使うもの（DEC-088・DEC-089）。背景・文字・見出しの色はアプリ本体と同じトークン */
  --pfc-doc-link: #8CCBFF;        /* 本文中のリンク：薄い水色（下線と「（外部サイト）」の文字も付ける） */
  --pfc-doc-font-size: 16px;
  --pfc-doc-line-height: 1.5;     /* 本文の行間：文字サイズの約 1.5 倍 */
  --pfc-doc-paragraph-gap: 1em;   /* 段落の間隔 */
  --pfc-doc-list-gap: 0.4em;      /* 箇条書きの項目の間隔 */
  --pfc-doc-measure: 44rem;       /* ページの最大幅（1 行が長くなりすぎない：日本語で約 40 字） */
  --pfc-doc-underline-offset: 0.2em;

  /* 形 */
  --pfc-radius: 0;
  --pfc-border-width: 2px;
  --pfc-border-thin: 1px;
  --pfc-shadow: 4px 4px 0 #000;
  --pfc-shadow-small: 2px 2px 0 #000;
  --pfc-focus-ring: 3px solid var(--pfc-accent);
  --pfc-focus-offset: 2px;
  --pfc-bracket-size: 10px;
  --pfc-grid-size: 24px;
  /* 「まだ来ていない日」の枠の太さ（画面上の px。SVG の拡大縮小に関係なく保つ：DEC-076） */
  --pfc-chart-future-width: 2px;
  /* 凡例の枠の印（未記録＝破線・まだ来ていない日＝実線）の大きさ。線の形が見分けられる大きさ（DEC-081） */
  --pfc-legend-frame-size: 14px;

  /* 文字（DEC-090）：役割ごとに 3 つ。読み込み前・失敗時・収録外の文字は、後ろの端末のフォントで表示する。
     見出し（h1〜h3・タブ・カードの見出し）＝IBM Plex Sans JP（400・700）、
     数値（量・単位・%・日付の数字）＝BIZ UDゴシック（400・700。英数字のスライスだけ。漢字・かなは本文のフォントで表示する）、
     それ以外（本文・ラベル・ボタン・入力欄・規約とポリシーのページの本文）＝Noto Sans JP（400・700） */
  --pfc-font-system: "Yu Gothic UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo", system-ui, sans-serif;
  --pfc-font-heading: "IBM Plex Sans JP", "Noto Sans JP", var(--pfc-font-system);
  --pfc-font-numeric: "BIZ UDGothic", "Noto Sans JP", var(--pfc-font-system);
  --pfc-font-body: "Noto Sans JP", var(--pfc-font-system);
  /* 使うウェイトはすべて同梱している（400・700）。太字の疑似生成はしない */
  --pfc-font-synthesis: none;
  --pfc-heading-tracking: 0.08em;
  --pfc-font-xs: 11px;
  --pfc-font-sm: 13px;
  --pfc-font-md: 15px;
  --pfc-font-lg: 18px;
  --pfc-font-xl: 26px;
  --pfc-font-xxl: 40px;
  --pfc-line-height: 1.6;
  /* 週間グラフ（SVG）の文字の大きさ。SVG は画面幅に合わせて縮むため、スマホ幅では座標上で大きくして約 11px で見えるようにする（Phase 4b 質問3） */
  --pfc-chart-text-mobile: 22px;

  /* 寸法 */
  --pfc-tap-min: 44px;
  --pfc-space-1: 4px;
  --pfc-space-2: 8px;
  --pfc-space-3: 12px;
  --pfc-space-4: 16px;
  --pfc-space-6: 24px;
  --pfc-page-max: 1040px;
  --pfc-bar-height: 14px;

  /* 動き（§7.3: 直線的・即応的） */
  --pfc-motion-duration: 120ms;
  --pfc-motion-easing: linear;

  /* 超過状態のハザードストライプ（色だけに頼らない表示。§7.4） */
  /* 向きは右上がり（／）・太い縞（6px おき）。「不明・判定不能」の斜線とは向きと密度を変える（DEC-086） */
  --pfc-hazard: repeating-linear-gradient(-45deg, var(--pfc-hazard-stripe) 0 6px, var(--pfc-bg) 6px 12px);
  /* 斜線の模様（§7.5）。DEC-083 以降は「不明・判定不能」だけに使う（名前は当初のまま。未記録は破線の枠：DEC-081） */
  /* 向きは右下がり（＼）・細い縞（2px の線を 6px おき）。超過のハザード柄（／・太い縞）と向きと密度を変える（DEC-086）。縞は補助の装飾で、意味は実線の枠と文字で伝える（DEC-085）。
     グラフ（SVG）の同じ模様は weekScreen.js の HATCH（同じ向き・間隔） */
  --pfc-unrecorded: repeating-linear-gradient(45deg, var(--pfc-border) 0 2px, transparent 2px 6px);
  /* 直角ブロックの区切り（SegmentBar） */
  --pfc-block-gap: repeating-linear-gradient(90deg, transparent 0 10px, var(--pfc-bg) 10px 12px);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --pfc-motion-duration: 0ms;
  }
}
