/* ★★v738（2026-09-28・RM-617・決裁179）：保存先の絵を自作の8つに＝フォント1本（COLRv0・8文字だけ）で差し替える。
   ★絵文字の文字そのものは変えない（台帳・記録・検索・名前には1バイトも影響しない）。unicode-range で8文字以外には効かない。
   ★フォントが読めない端末では今までの絵文字がそのまま出る。
   ★★書体の並びでは★最後（総称の直前）に置き、★その直前にヒラギノを置く：Safari は最初に使える書体が GENROKU Icons だと ⚠️✏️⚙️ などを白黒の字で描いた（菊池さんの Safari・CTO の check2／check3・2026-09-28）。 */
@font-face {
  font-family: 'GENROKU Icons';
  src: url('genroku-icons.woff2') format('woff2');
  unicode-range: U+1F3D7, U+1F3D8, U+1F3E0, U+1F3E2, U+1F3E8, U+1F3EC, U+1F6A7, U+1F6AA;   /* ★U+FE0F は入れない：Safari が FE0F をこのフォントで拾い、⚠️✏️ などが白黒の字になった（菊池さんの Safari・2026-09-28） */
  font-display: swap;
}
    /* ===== ログイン画面 ===== */
    #login-screen {
      position: fixed; top:0; left:0; right:0; bottom:0;
      background: linear-gradient(160deg, #FDF1E9 0%, #F0F4F8 100%);
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      z-index: 2000; padding: 24px;
    }
    .login-logo { font-size: 36px; letter-spacing: 10px; color: #1a1a2e; font-weight: 700; margin-bottom: 4px; }
    .login-logo-sub { font-size: 11px; color: #6B5344; letter-spacing: 3px; margin-bottom: 40px; }
    .login-card {
      background: white; border-radius: 20px; padding: 32px 24px;
      width: 100%; max-width: 360px; text-align: center;
      box-shadow: 0 10px 30px rgba(26,26,46,0.12);
    }
    .login-card h2 { font-size: 18px; color: #1a1a2e; margin-bottom: 8px; font-weight: 700; }
    .login-card p  { font-size: 16px; color: #1a1a2e; margin-bottom: 28px; line-height: 1.8; }
    .btn-google {
      width: 100%; padding: 16px; border: 2px solid #E8E8E8; border-radius: 14px;
      background: white; font-size: 16px; font-weight: 700; cursor: pointer;
      display: flex; align-items: center; justify-content: center; gap: 10px;
      color: #333; transition: all 0.2s;
    }
    .btn-google:hover { border-color: #0077BB; background: #F0F8FF; }
    .btn-google:active { transform: scale(0.98); }
    .btn-google img { width: 22px; height: 22px; }
    .login-status { font-size: 16px; color: #1a1a2e; margin-top: 16px; min-height: 20px; line-height: 1.6; }
    .login-status.loading { color: #0077BB; }
    .login-status.error   { color: #CC3300; }

    /* ===== セットアップ未完了画面 ===== */
    #setup-screen {
      position: fixed; top:0; left:0; right:0; bottom:0;
      background: linear-gradient(160deg, #FDF1E9 0%, #F0F4F8 100%);
      display: none; flex-direction: column;
      align-items: center; justify-content: center;
      z-index: 2000; padding: 24px;
    }
    .setup-card {
      background: white; border-radius: 20px; padding: 32px 24px;
      width: 100%; max-width: 360px; text-align: center;
    }
    .setup-card .setup-icon { font-size: 48px; margin-bottom: 16px; }
    .setup-card h2 { font-size: 18px; color: #1a1a2e; margin-bottom: 10px; }
    .setup-card p  { font-size: 16px; color: #1a1a2e; line-height: 1.8; margin-bottom: 24px; }
    .btn-go-setup {
      width: 100%; padding: 16px; border: none; border-radius: 14px;
      background: linear-gradient(135deg, #0077BB, #005599); color: white;
      font-size: 16px; font-weight: 700; cursor: pointer; margin-bottom: 10px;
    }
    .btn-go-logout {
      width: 100%; padding: 14px; border: 1.5px solid #ddd; border-radius: 14px;
      background: white; color: #888; font-size: 14px; cursor: pointer;
    }
    * { box-sizing: border-box; margin: 0; padding: 0; -webkit-tap-highlight-color: transparent; }

    :root {
      --navy: #1a1a2e;
      --site-color: #0077BB;
      --memo-color: #0077BB;
      --audio-color: #AA3377;
      --photo-color: #EE7733;
      --daily-color: #005599;
      --bg: #F0F4F8;
      --bg2: #ffffff;
      --card: #ffffff;
      --text: #1a1a2e;
      --text2: #333;
      --muted: #666;
      --border: #7d8a99;
      --input-bg: #ffffff;
      --radius: 16px;
    }

    /* ===== ダークモード変数 ===== */
    [data-theme="dark"] {
      --bg: #12121f;
      --border: #3a3a52;
      --danger-bg: #3d1515;
      --warning-bg: #3d2a10;
      --bg2: #1e1e30;
      --card: #2a2a3e;
      --border-light: #3a3a52;
      --text: #e8e8f4;
      --text2: #ccccdd;
      --muted: #9090a8;
      --border: #3a3a52;
      --input-bg: #1e1e30;
    }

    /* ===== ダークモード適用 ===== */
    [data-theme="dark"] body { background: var(--bg); color: var(--text); }
    [data-theme="dark"] .screen { background: var(--bg); }
    [data-theme="dark"] .sub-screen-body { background: var(--bg); }

    /* ★ V3-24: 大規模修繕モード（body.continuous-capture-mode）の表示制御
       !importantで確実にインラインstyleに勝つ */
    body.continuous-capture-mode #photo-placeholder { display: none !important; }
    body.continuous-capture-mode #photo-keika-btn { display: none !important; }
    /* ★ V3-31: 写真の出口を全モードで「撮影を終えてホームに戻る」に統一（✅記録・📋確認後記録は廃止） */
    #photo-saved-buttons { display: none !important; }
    #photo-finish { display: block !important; }
    #photo-finish-hint { display: block !important; }
    body.continuous-capture-mode #photo-fab-change-room { display: flex !important; }
    body.continuous-capture-mode #photo-hierarchy-bar { display: block !important; }
    body.continuous-capture-mode #audio-hierarchy-bar { display: block !important; }
    body.continuous-capture-mode #audio-fab-change-room { display: flex !important; }
    body:not(.continuous-capture-mode) #audio-fab-change-room { display: none !important; }
    /* ★ V3-25：仮登録ボタンは大規模修繕モードでも常に表示（出たり消えたり問題を解消）
       body.continuous-capture-mode #temp-site-section { display: none !important; } */
    body.continuous-capture-mode #site-building-room-section { display: block !important; }
    body:not(.continuous-capture-mode) #photo-fab-change-room { display: none !important; }
    body:not(.continuous-capture-mode) #photo-hierarchy-bar { display: none !important; }
    body:not(.continuous-capture-mode) #site-building-room-section { display: none !important; }

    /* ★ 2026-07-12：daikibo以外の階層現場（自作テンプレ・集合住宅等）でも撮影中に「区画/部屋を変更」できるよう、
       部屋変更FAB＋階層バーだけを出す軽量クラス。連続撮影の他挙動（経過撮影非表示・登録内棟部屋欄等）は付けない。
       ※上の :not(.continuous-capture-mode) の非表示ルールと同一詳細度のため、後段に置いて上書きする。 */
    body.hierarchy-capture #photo-fab-change-room { display: flex !important; }
    body.hierarchy-capture #photo-hierarchy-bar { display: block !important; }
    body.hierarchy-capture #audio-fab-change-room { display: flex !important; }
    body.hierarchy-capture #audio-hierarchy-bar { display: block !important; }
    body.hierarchy-capture #photo-current-site { display: none !important; }

    /* ★2026-07-08 案B：撮影画面の現在の現場名ブロック（通常モードのみ・画面中央あたりに大きく・撮影後も残す） */
    #photo-current-site { display: none; text-align: center; padding: 48px 20px 24px; }  /* 既定none／padding-topで中央あたりへ（実機調整） */
    body:not(.continuous-capture-mode) #photo-current-site { display: block; }            /* 通常モードのみ表示 */
    body.continuous-capture-mode #photo-current-site { display: none !important; }        /* 大規模修繕は出さない（hierarchy-barと二重回避） */
    #photo-current-site .pcs-label { font-size: 15px; color: var(--muted); font-weight: 600; }
    #photo-current-site .pcs-name  { font-size: 30px; font-weight: 800; color: var(--text); margin-top: 6px; word-break: break-all; }
    /* 横持ちは縦が狭いので出さない（既存 finish-hint と同流儀） */
    @media (orientation: landscape) and (max-height: 500px) {
      #photo-current-site { display: none !important; }
    }

    /* ★ 簡単/詳細モード（2026-06-27 ステップ4）：body.simple-mode で詳細項目を隠す。
       !importantでインラインstyle（gps等のJS直代入）に勝つ。デフォルト簡単。 */
    body.simple-mode .detail-only { display: none !important; }
    [data-theme="dark"] .menu-btn { background: var(--card); border-color: #3a3a52; }
    [data-theme="dark"] .menu-btn-label { color: var(--text); }
    [data-theme="dark"] .menu-btn-desc { color: var(--muted); }
    [data-theme="dark"] .site-banner { background: var(--card); border-color: #3a3a52; }
    [data-theme="dark"] .site-banner-label { color: var(--muted); }
    [data-theme="dark"] .site-banner-name { color: var(--text); }
    [data-theme="dark"] .site-banner-name.unset { color: var(--text); }
    [data-theme="dark"] .site-banner-arrow { color: var(--muted); }
    [data-theme="dark"] .pending-banner { background: #2a2000; border-color: #E67E22; }
    [data-theme="dark"] .btn { filter: brightness(0.9); }
    [data-theme="dark"] input,
    [data-theme="dark"] textarea,
    [data-theme="dark"] select {
      background: var(--input-bg) !important;
      color: var(--text) !important;
      border-color: var(--border) !important;
    }
    [data-theme="dark"] .saved-box { background: #1a2a1a !important; border-color: #0055AA !important; }
    [data-theme="dark"] .saved-box-title { color: #7ab4ff !important; }
    [data-theme="dark"] #logout-modal > div { background: #1e1e30 !important; color: var(--text) !important; }
    [data-theme="dark"] #logout-modal h2,
    [data-theme="dark"] #logout-modal .modal-title-text { color: var(--text) !important; }
    [data-theme="dark"] .rec-screen { background: #0a0a1a !important; }
    [data-theme="dark"] .status { color: var(--muted); }
    [data-theme="dark"] .status.success { color: #7ab4ff; }
    [data-theme="dark"] .status.error   { color: #ff8866; }
    [data-theme="dark"] [style*="background:white"],
    [data-theme="dark"] [style*="background: white"] {
      background: var(--card) !important;
      color: var(--text) !important;
    }
    [data-theme="dark"] [style*="background:#f0f4f8"],
    [data-theme="dark"] [style*="background: #f0f4f8"],
    [data-theme="dark"] [style*="background:#F0F4F8"] {
      background: var(--bg) !important;
    }
    [data-theme="dark"] [style*="color:#333"],
    [data-theme="dark"] [style*="color: #333"],
    [data-theme="dark"] [style*="color:#555"],
    [data-theme="dark"] [style*="color:#1a1a"],
    [data-theme="dark"] [style*="color:#1a2e4a"],
    [data-theme="dark"] [style*="color: #1a2e4a"],
    [data-theme="dark"] [style*="color:#1A2E4A"],
    [data-theme="dark"] [style*="color:#444"],
    [data-theme="dark"] [style*="color: #444"],
    [data-theme="dark"] [style*="color:#000"],
    [data-theme="dark"] [style*="color: #000"] {
      color: var(--text2) !important;
    }
    [data-theme="dark"] [style*="color:#888"],
    [data-theme="dark"] [style*="color: #888"],
    [data-theme="dark"] [style*="color:#666"],
    [data-theme="dark"] [style*="color:#aaa"],
    [data-theme="dark"] [style*="color: #aaa"],
    [data-theme="dark"] [style*="color:#bbb"],
    [data-theme="dark"] [style*="color: #bbb"] {
      color: var(--muted) !important;
    }
    /* ★ CUD追加：ライトグレー背景をダークモードで上書き（タブ・ボタン非選択状態） */
    [data-theme="dark"] [style*="background:#e0e0e0"],
    [data-theme="dark"] [style*="background: #e0e0e0"] {
      background: var(--card) !important;
      color: var(--text2) !important;
    }
    [data-theme="dark"] [style*="background:#f0f0f0"],
    [data-theme="dark"] [style*="background: #f0f0f0"] {
      background: var(--card) !important;
      color: var(--text2) !important;
    }
    [data-theme="dark"] [style*="background:#f8faff"],
    [data-theme="dark"] [style*="background: #f8faff"] {
      background: var(--card) !important;
    }
    /* ★ V3-24追加：未対応固定色のダークモード上書き */
    [data-theme="dark"] [style*="background:#f0f7ff"],
    [data-theme="dark"] [style*="background: #f0f7ff"],
    [data-theme="dark"] [style*="background:#eaf4fb"],
    [data-theme="dark"] [style*="background: #eaf4fb"],
    [data-theme="dark"] [style*="background:#f5f5f5"],
    [data-theme="dark"] [style*="background: #f5f5f5"],
    [data-theme="dark"] [style*="background:#fafafa"],
    [data-theme="dark"] [style*="background: #fafafa"],
    [data-theme="dark"] [style*="background:#fff8e6"],
    [data-theme="dark"] [style*="background: #fff8e6"],
    [data-theme="dark"] [style*="background:#fff3cd"],
    [data-theme="dark"] [style*="background: #fff3cd"] {
      background: var(--card) !important;
    }
    /* ライトブルー系ボーダーをダークモードで上書き */
    [data-theme="dark"] [style*="border:1px solid #cce4ff"],
    [data-theme="dark"] [style*="border:1.5px solid #b8d8ed"],
    [data-theme="dark"] [style*="border:1.5px solid #c0c8ee"],
    [data-theme="dark"] [style*="border:1px solid #e0e0e0"],
    [data-theme="dark"] [style*="border-bottom:2px solid #f0f0f0"],
    [data-theme="dark"] [style*="border-top:1px solid #f0f0f0"] {
      border-color: var(--border) !important;
    }
    [data-theme="dark"] [style*="border:1px solid #ddd"],
    [data-theme="dark"] [style*="border: 1px solid #ddd"],
    [data-theme="dark"] [style*="border:1.5px solid #ddd"] {
      border-color: var(--border) !important;
    }

    body {
      font-family: 'Hiragino Sans', 'Noto Sans JP', 'GENROKU Icons', sans-serif;
      background: var(--bg);
      min-height: 100vh;
      color: var(--text);
    }

    /* ===== ヘッダー =====
       v0418-final: JSで動的生成された .app-header に適用される。
       iOS PWA の描画バグを回避するため、position:fixed + body直下方式。 */
    body {
      /* fixedヘッダー分のスペースを確保 */
      padding-top: calc(56px + env(safe-area-inset-top, 0px));
      /* ★2026-07-07 下部見切れ修正：最下部ボタン(ドライブで見る等)がiPhoneホームインジケータ/セーフエリアで切れないよう下余白を確保。非対応端末はenv=0pxで通常paddingのみ */
      padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
    }
    html {
      background: #F0F4F8; /* 紙。指で引っぱったときに出る地 */
    }
    .app-header {
      background: var(--navy);
      color: white;
      padding: calc(14px + env(safe-area-inset-top, 0px)) 16px 12px;
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      width: 100%;
      z-index: 100;
      box-shadow: 0 2px 8px rgba(0,0,0,0.3);
      box-sizing: border-box;
    }

    .header-home {
      display: flex;
      align-items: center;
      justify-content: space-between;
      position: relative;
    }

    .header-logo { font-size: 20px; font-weight: 700; letter-spacing: 3px; }
    .header-sub  { font-size: 10px; opacity: 0.55; letter-spacing: 1px; }

    .header-site-badge {
      background: rgba(255,255,255,0.12);
      border: 1px solid rgba(255,255,255,0.2);
      border-radius: 20px;
      padding: 6px 14px;
      font-size: 13px;
      font-weight: 700;
      color: #fff;
      max-width: 180px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      cursor: pointer;
    }
    .header-site-badge.unset { color: rgba(255,255,255,0.5); font-weight: 400; font-size: 12px; }
    /* ★塊1b追補(2026-07-03) ヘッダー現場バッジ恒久非表示。applyRecordMode(main1.js:8151)が起動時に style.display='' で inline display:none を打ち消すため、idセレクタ+!important で常に非表示にする（要素は残す＝main1.js:961素通り・撤去でない） */
    #header-site-name { display: none !important; }

    /* サブ画面ヘッダー */
    .header-sub-screen {
      display: none;
      align-items: center;
      gap: 12px;
    }

    .btn-back {
      background: rgba(255,255,255,0.22);
      border: 2px solid rgba(255,255,255,0.5);
      color: white;
      font-size: 16px;
      font-weight: 800;
      padding: 10px 20px;
      border-radius: 24px;
      cursor: pointer;
      display: flex;
      align-items: center;
      gap: 6px;
      flex-shrink: 0;
      letter-spacing: 0.5px;
    }
    .btn-back:active { opacity: 0.7; }

    .header-screen-title {
      font-size: 17px;
      font-weight: 700;
      color: white;
    }

    /* ===== コンテンツ ===== */
    .screen { display: none; width: 100%; box-sizing: border-box; }
    .screen.active { display: block; }

    /* ===== ホーム画面 ===== */
    #screen-home {
      padding: 20px 16px;
      max-width: 520px;        /* ★H1（2026-08-18）PC幅ガード：スマホ実寸を保ちつつ 768px超でホームが間延び/崩れしないよう内容を絞る。.send-prompt-box(max-width:420px)/.pwa-card(max-width:420px) の width:100%+max-width 前例に倣う（メディアクエリはホームに前例が無いため採らない）。 */
      margin-inline: auto;
    }

    /* 現場バナー */
    .site-banner { background: var(--card); border-radius: var(--radius); padding: 20px; margin-bottom: 20px; display: flex; align-items: center; justify-content: space-between; box-shadow: 0 2px 12px rgba(0,0,0,0.1); cursor: pointer; border: 2px solid var(--border); transition: border-color 0.2s; }
    .site-banner:active { border-color: var(--site-color); }
    .site-banner.selected { border-color: #0077BB; background: var(--card); }
    .site-banner-left { display: flex; align-items: center; gap: 14px; }
    .site-banner-icon { font-size: 38px; }
    .site-banner-label { font-size: 18px; color: var(--text); font-weight: 800; margin-bottom: 5px; letter-spacing: 1px; }
    .site-banner-name { font-size: 22px; font-weight: 700; color: var(--text); }
    .site-banner-name.unset { font-size: 16px; color: #000; font-weight: 600; }
    .site-banner-arrow { font-size: 22px; color: #555; }

    /* メニューグリッド */
    .menu-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
    }

    .menu-btn {
      background: var(--card);
      border: 2.5px solid var(--border);
      border-radius: var(--radius);
      padding: 28px 16px;
      cursor: pointer;
      text-align: center;
      box-shadow: 0 2px 12px rgba(0,0,0,0.08);
      transition: transform 0.1s, box-shadow 0.1s;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
      position: relative;
      overflow: hidden;
    }
    .menu-btn:active { transform: scale(0.96); box-shadow: 0 1px 4px rgba(0,0,0,0.1); }

    .menu-btn::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 4px;
      border-radius: var(--radius) var(--radius) 0 0;
    }

    .menu-btn.site::before  { background: var(--site-color); }
    .menu-btn.memo::before  { background: var(--memo-color); }
    .menu-btn.audio::before { background: var(--audio-color); }
    .menu-btn.photo::before { background: var(--photo-color); }
    .menu-btn.daily::before { background: var(--daily-color); }

    .menu-btn.memo  { border-color: #b3e0d8; }
    .menu-btn.audio { border-color: #e8c0d8; }
    .menu-btn.photo { border-color: var(--border); }  /* ★2026-07-08 案A:枠グレー統一(上辺オレンジ帯.photo::beforeは残す) */
    .menu-btn.daily { border-color: #b3ccee; }

    .menu-btn-icon { font-size: 44px; line-height: 1; }

    /* ★2026-07-07 Googleドライブ公式ロゴ（三色三角・data-URIで埋込＝オフライン対応/外部URL不使用）。
       公式ブランドガイドライン準拠：正規PNGをそのまま埋込・色形不変・リサイズのみ（width/heightは使用箇所でinline指定）。 */
    .gdrive-logo {
      background-image: url("data:image/png;base64,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");
      background-size: contain;
      background-repeat: no-repeat;
      background-position: center;
      display: inline-block;
      vertical-align: middle;
    }

    /* ★2026-07-08 写真＋メモのカメラ写真アイコン（菊池さん提供・透過PNG 300×195・data-URI埋込＝M4踏襲/オフライン対応）。写真ボタン限定＝共有/ドライブ不触 */
    .photo-cam-icon{
      width:96px; height:62px;
      background-image:url("data:image/png;base64,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");
      background-size:contain; background-repeat:no-repeat; background-position:center;
    }
    /* 白ボディを白カードから浮かせる淡いトレイ（写真アイコン限定） */
    .photo-cam-tray{
      display:inline-flex; align-items:center; justify-content:center;
      padding:8px 14px; border-radius:14px;
      background:linear-gradient(160deg,#f1f5fb,#e7edf6);
    }
    /* ★塊1a(2026-07-03) メモ・スキャン=📝｜スキャナー。仕切り線と34px SVGを縦中央整列。memo限定スコープ＝他ボタンのアイコン不変 */
    .menu-btn.memo .menu-btn-icon { display: flex; align-items: center; justify-content: center; }
    .ic-div { width: 1.5px; height: 26px; background: #c3cfdb; border-radius: 1px; margin: 0 6px; display: inline-block; vertical-align: middle; }
    .menu-btn-label { font-size: 18px; font-weight: 700; color: var(--text); }
    .menu-btn-desc  { font-size: 14px; color: var(--text); line-height: 1.5; }  /* ★2026-07-08 案A:2カラムのdesc折返し緩和(15→14px・全ボタン均一) */

    /* ★塊2(2026-07-03) 二層化：第2層（あとで使う）の足元行。検索を移設＋日報復活の入口。sub-btnは帯なし・小さめ */
    .sub-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }
    .sub-btn { background: var(--card); border: 2px solid var(--border); border-radius: 12px;
      padding: 13px 8px; text-align: center; display: flex; align-items: center; justify-content: center; gap: 7px;
      font-size: 14px; font-weight: 800; color: #005599; box-shadow: 0 1px 6px rgba(0,0,0,0.06); cursor: pointer; }
    .sub-btn::before { display: none; } /* menu-btn由来の上帯を消す（sub-btnは帯なし） */
    /* ★塊2追いパッチ(2026-07-03) 探すボタン(menu-btn daily sub-btn)の枠色を、詳細度(0,3,0)で .menu-btn.daily(0,2,0)に勝たせて灰枠に統一（今日の記録と揃える） */
    .menu-btn.daily.sub-btn { border-color: var(--border); }

    .menu-btn-wide {
      grid-column: 1 / -1;
    }

    /* 完了バッジ */
    .done-badge {
      position: absolute;
      top: 10px; right: 10px;
      background: #0077BB;
      color: white;
      font-size: 10px;
      font-weight: 700;
      padding: 2px 8px;
      border-radius: 10px;
      display: none;
    }
    .done-badge.show { display: block; }

    /* 未送信バッジ（オレンジ） */
    .pending-badge {
      position: absolute;
      top: 10px; right: 10px;
      background: #E67E22;
      color: white;
      font-size: 10px;
      font-weight: 700;
      padding: 2px 8px;
      border-radius: 10px;
      display: none;
    }
    .pending-badge.show { display: block; }

    /* 未送信バナー */
    .pending-banner {
      display: none;
      background: linear-gradient(135deg, #FFF3CD, #FFEAA7);
      border: 2px solid #F39C12;
      border-radius: var(--radius);
      padding: 12px 14px;
      margin-bottom: 14px;
    }
    .pending-banner.show { display: block; }

    /* ★2026-07-19 フェーズ1：ホームのグループ見出し（正本:法人フルスペックホームIA決定 決定2） */
    .home-section-label {
      font-size: 13px;
      font-weight: 800;
      color: var(--muted, #6b7a89);
      margin: 18px 4px 8px;
    }

    /* ★2026-07-19 フェーズ1：データ主権マイクロコピー（Googleドライブ直開きボタンの代替。正本 決定6） */
    .sovereign-note {
      display: flex; align-items: center; justify-content: center; gap: 6px;
      font-size: 12px; font-weight: 700; color: #2f7a4f;
      background: #eaf7ef; border: 1px solid #c7e8d5; border-radius: 12px;
      padding: 10px 12px; margin-bottom: 14px; text-align: center;
    }

    /* ★H1（2026-08-18）ホーム再設計＝容量行・能力バッジ・写真ヒーロー・GENSAKU lite小書き。
       ★配色は必ずここ（style.css）で定義する＝新規カードの inline に background:#fff を書かない。
         理由：main1.js の JSダーク一括変換（_DARK_RULES）は inline の白系背景を var(--card) に書き換えるため、
         inline 指定だと実機ダークで意図しない配色になる（W12 の事故）。class 指定なら _DARK_RULES の対象外。 */
    .home-storage-row {
      background: #f4f7fb; border: 1px solid #dbe4ef; border-radius: 12px;
      padding: 9px 12px; margin-bottom: 14px;
    }
    .home-storage-head { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; color: #4a5a6a; margin-bottom: 6px; }
    .home-storage-bar { width: 100%; height: 6px; background: #e3e9f1; border-radius: 4px; overflow: hidden; }
    .home-storage-fill { height: 100%; width: 0%; background: linear-gradient(90deg,#0077BB,#2196e3); border-radius: 4px; transition: width 0.4s ease; }

    /* 能力バッジ行（写真ヒーロー内・大規模修繕/黒板のみ・★比較は出さない・0件は行ごと非表示＝JSが display 制御） */
    .home-cap-badges { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 4px; }
    .home-cap-badge {
      display: inline-flex; align-items: center; gap: 4px;
      font-size: 12.5px; font-weight: 700; color: #2c5f8a;
      background: #eef4fb; border: 1px solid #cfe0f0; border-radius: 999px;
      padding: 2px 9px;
    }
    .home-cap-badge::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #0077BB; display: inline-block; flex-shrink: 0; }

    /* 写真ヒーロー＝最大・最初に目に入る（アイコン/ラベルを一段大きく） */
    .home-hero-photo { padding: 34px 16px 30px; }
    .home-hero-photo .photo-cam-tray { transform: scale(1.35); }
    .home-hero-photo .menu-btn-label { font-size: 22px; }
    .home-hero-photo .menu-btn-desc { font-size: 14.5px; }

    /* 足元「さがす」の GENSAKU lite 小書き（画面タイトル「🔍 GENSAKU lite」と一致） */
    .sub-btn-lite { font-size: 10px; font-weight: 700; color: #6b8199; margin-left: 5px; letter-spacing: 0.3px; }

    /* ダークテーマ上書き（★_DARK_RULES ではなく CSS 側で固定＝新規カードは class 指定のため） */
    [data-theme="dark"] .home-storage-row { background: var(--card); border-color: #3a3a52; }
    [data-theme="dark"] .home-storage-head { color: var(--muted); }
    [data-theme="dark"] .home-storage-bar { background: #2a2a3e; }
    [data-theme="dark"] .home-cap-badge { background: var(--card); border-color: #3a3a52; color: var(--text); }
    [data-theme="dark"] .sub-btn-lite { color: var(--muted); }

    /* ★H3（2026-08-18）ドライブ情報カード：主権コピー＋容量行を1つの枠に囲む（意味の塊）。
       ★配色はここ（style.css）で定義＝新規カードの inline に background:#fff を書かない（v328 のダーク罠回避）。
       ★容量行(.home-storage-row)は取得失敗時 display:none＝そのとき区切り線も出ず、主権コピーだけで枠が成立する。 */
    .home-drive-card {
      background: #f4f7fb; border: 1px solid #dbe4ef; border-radius: 14px;
      padding: 12px 14px; margin-bottom: 14px;
    }
    .home-drive-sovereign {
      display: flex; align-items: center; justify-content: center; gap: 6px;
      font-size: 12.5px; font-weight: 700; color: #2f7a4f; text-align: center;
    }
    /* カード内の容量行は外枠を持たず、上に細い区切り線を出す（表示時のみ＝非表示なら線も出ない） */
    .home-drive-card .home-storage-row {
      background: none; border: none; border-radius: 0; padding: 0;
      margin-bottom: 0; margin-top: 10px; padding-top: 10px; border-top: 1px solid #dbe4ef;
    }
    [data-theme="dark"] .home-drive-card { background: var(--card); border-color: #3a3a52; }
    [data-theme="dark"] .home-drive-sovereign { color: #7fd1a3; }
    [data-theme="dark"] .home-drive-card .home-storage-row { border-top-color: #3a3a52; }

    /* ===== サブ画面共通 ===== */
    .sub-screen-body {
      padding: 20px 16px;
    }

    .card {
      background: var(--card);
      border-radius: var(--radius);
      padding: 20px;
      margin-bottom: 16px;
      box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    }

    /* ===== ボタン ===== */
    .btn {
      width: 100%;
      padding: 20px;
      border: none;
      border-radius: 14px;
      font-size: 18px;
      font-weight: 700;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      margin-bottom: 10px;
      transition: transform 0.08s, filter 0.08s;
    }
    .btn:active { transform: scale(0.93); filter: brightness(0.72); }
    .btn:active:disabled { transform: none; filter: none; }
    .btn-pause-hidden { display: none !important; }
    .recording-active .btn-pause-hidden { display: flex !important; }
    .btn:disabled { opacity: 0.5; }
    /* ボタン押下フィードバック：.btnクラスなし・インラインスタイルのボタンにも適用 */
    button:not(.btn):not(:disabled):active { opacity: 0.65; transform: scale(0.95); transition: opacity 0.08s, transform 0.08s; }

    .btn-site  { background: var(--site-color);  color: white; }
    .btn-memo  { background: var(--memo-color);  color: white; }
    .btn-audio { background: linear-gradient(135deg, #AA3377, #CC3355); color: white; }
    .btn-photo { background: var(--photo-color); color: white; }
    .btn-daily { background: var(--daily-color); color: white; }
    .btn-warn  { background: linear-gradient(135deg, #EE7733, #FF9900); color: white; }
    .btn-danger{ background: linear-gradient(135deg, #CC3311, #EE3311); color: white; }
    .btn-save  { background: linear-gradient(135deg, #0077BB, #007766); color: white; }
    .btn-gray  { background: #666; color: white; }
    .btn-sm    { padding: 14px; font-size: 15px; }

    /* ===== 現場選択画面 ===== */
    .site-box {
      background: #F8F9FF;
      border: 2px solid #E0E4FF;
      border-radius: 12px;
      padding: 20px;
      text-align: center;
      margin-bottom: 16px;
      min-height: 80px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .site-name { font-size: 20px; font-weight: 700; }
    .site-distance { font-size: 15px; color: #555; margin-top: 4px; }

    .site-list-item {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 16px;
      border: 2px solid var(--border);
      border-radius: 12px;
      margin-bottom: 10px;
      cursor: pointer;
      background: var(--card);
      transition: all 0.15s;
    }
    .site-list-item:active { transform: scale(0.98); }
    .site-list-item.nearest { border-color: #0077BB; background: var(--card); }
    .site-list-item.pinned { border-color: #f39c12; background: var(--card); }
    .site-pin-btn { background:none;border:none;font-size:26px;cursor:pointer;padding:8px;flex-shrink:0;min-width:48px;min-height:48px;display:flex;align-items:center;justify-content:center; }
    .site-map-btn { background:#e8f4fd;border:none;font-size:18px;cursor:pointer;color:#185FA5;border-radius:8px;padding:8px;flex-shrink:0;min-width:48px;min-height:48px;display:flex;align-items:center;justify-content:center; }
    .site-map-btn:hover { background:#c8e6f7; }
    .site-hide-btn { background:#f0f0f0;border:none;font-size:18px;font-weight:700;cursor:pointer;color:#888;border-radius:8px;padding:8px;flex-shrink:0;min-width:48px;min-height:48px;display:flex;align-items:center;justify-content:center; }
    .site-hide-btn:hover { background:#fde8e8;color:#e74c3c; }
    .site-section-label { font-size:14px;font-weight:700;letter-spacing:2px;color:var(--text);margin:14px 0 8px;padding-left:2px; }
    .site-show-all-btn { width:100%;padding:14px;background:none;border:1.5px dashed var(--border);border-radius:10px;color:var(--text);font-size:16px;cursor:pointer;margin-top:8px; }
    .site-show-all-btn:hover { border-color:#667eea;color:#667eea; }
    .site-list-item .s-name { font-size: 17px; font-weight: 700; color: var(--text) !important; }
    .site-list-item .s-dist { font-size: 15px; color: var(--text); margin-top: 3px; }
    .site-list-item .s-badge {
      font-size: 13px; padding: 6px 12px; border-radius: 10px;
      background: #0077BB; color: white; font-weight: 700; flex-shrink: 0;
    }
    .site-list-item .s-badge.far { background: #95a5a6; }

    .gps-info { font-size: 14px; color: #555; text-align: center; margin-top: 6px; }

    .new-site-form { display: none; margin-top: 12px; }
    .new-site-form input {
      width: 100%; padding: 14px; font-size: 16px;
      border: 2px solid #E0E4FF; border-radius: 12px;
      margin-bottom: 10px; outline: none;
    }
    .new-site-form input:focus { border-color: var(--site-color); }

    /* ===== 作業メモ画面 ===== */
    textarea {
      width: 100%; padding: 14px; font-size: 16px;
      border: 2px solid #E0E4FF; border-radius: 12px;
      outline: none; resize: vertical; min-height: 120px;
      line-height: 1.7; font-family: inherit;
      transition: border-color 0.2s;
    }
    textarea:focus { border-color: var(--memo-color); }

    /* ★W11b：メモ欄は白枠固定（菊池さん指摘・以前の fold ボタンの見た目 #f6f9fd を引き継ぐ）。
       ダークテーマの textarea 一括規則(!important)に ID の詳細度で勝たせる。他の textarea は不変。 */
    #work-content {
      background: #f6f9fd !important;
      color: #333 !important;
      border: 1px solid #cfe2f3 !important;
    }

    .summary-box {
      display: none;
      background: #F0FFF4;
      border: 2px solid #0077BB;
      border-radius: 12px;
      padding: 16px;
      margin-top: 12px;
    }
    .summary-label { font-size: 11px; color: #0077BB; font-weight: 700; margin-bottom: 6px; }
    .summary-text  { font-size: 15px; color: var(--text); line-height: 1.7; }

    /* ===== 音声メモ画面 ===== */
    .rec-visual {
      background: #1a1a2e;
      border-radius: 16px;
      padding: 16px 24px;
      text-align: center;
      margin-bottom: 16px;
    }
    .rec-icon   { font-size: 40px; margin-bottom: 6px; }
    .rec-time   { font-size: 52px; font-weight: 700; color: white; letter-spacing: 4px; font-variant-numeric: tabular-nums; }
    .rec-label  { font-size: 15px; color: rgba(255,255,255,0.7); margin-top: 4px; line-height: 1.6; }

    .wave-bars {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 5px;
      height: 36px;
      margin-top: 8px;
      opacity: 0;
      transition: opacity 0.3s;
    }
    .wave-bar { width: 5px; height: 20px; background: rgba(255,255,255,0.5); border-radius: 3px; }
    .wave-bar.active { animation: wave 0.8s ease-in-out infinite; }
    .wave-bar:nth-child(1){animation-delay:0.0s}
    .wave-bar:nth-child(2){animation-delay:0.1s}
    .wave-bar:nth-child(3){animation-delay:0.2s}
    .wave-bar:nth-child(4){animation-delay:0.3s}
    .wave-bar:nth-child(5){animation-delay:0.2s}
    .wave-bar:nth-child(6){animation-delay:0.1s}
    .wave-bar:nth-child(7){animation-delay:0.0s}
    @keyframes wave { 0%,100%{height:6px} 50%{height:36px; background:rgba(255,100,100,0.9)} }

    .confirm-box {
      display: none;
      background: #FFF8E1;
      border: 2px solid #F39C12;
      border-radius: 14px;
      padding: 18px;
      margin-top: 12px;
    }
    .confirm-label { font-size: 13px; color: #E67E22; font-weight: 700; margin-bottom: 10px; }
    .confirm-title { font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 6px; margin-top: 12px; }
    .confirm-text  {
      font-size: 13px; color: var(--text); line-height: 1.7;
      background: var(--card); border-radius: 8px; padding: 12px;
      max-height: 160px; overflow-y: auto; white-space: pre-wrap;
    }
    .confirm-btns  { display: flex; gap: 8px; margin-top: 14px; }
    .confirm-btns .btn { flex: 1; margin-bottom: 0; }

    .edit-textarea {
      width: 100%; border: 2px solid var(--audio-color);
      border-radius: 10px; padding: 12px;
      font-size: 14px; font-family: inherit;
      outline: none; resize: vertical; min-height: 90px;
      line-height: 1.7; margin-bottom: 8px;
    }

    .saved-box {
      display: none;
      background: linear-gradient(135deg, #F3E5F5, #EDE7F6);
      border: 2px solid var(--audio-color);
      border-radius: 14px;
      padding: 18px;
      margin-top: 10px;
      text-align: center;
    }
    .saved-box-icon  { font-size: 36px; margin-bottom: 8px; }
    .saved-box-title { font-size: 15px; font-weight: 700; color: var(--audio-color); margin-bottom: 4px; }
    .saved-box-id    { font-size: 13px; color: var(--text); }

    /* ===== 写真撮影画面 ===== */
    .photo-btns {
      display: flex;
      gap: 10px;
      margin-bottom: 14px;
    }
    .photo-label-btn {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 18px;
      border-radius: 14px;
      font-size: 16px;
      font-weight: 700;
      cursor: pointer;
      color: white;
    }
    .photo-label-btn.camera { background: var(--site-color); }
    .photo-label-btn.gallery { background: var(--memo-color); }

    .photo-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 12px;
      margin-bottom: 14px;
    }
    .photo-item {
      border: 2px solid var(--border);
      border-radius: 12px;
      overflow: hidden;
      background: var(--card);
    }
    .photo-item img {
      width: 100%;
      aspect-ratio: 4/3;
      object-fit: cover;
      display: block;
    }
    .photo-item-footer { padding: 10px; }
    .photo-caption-input {
      width: 100%; border: 1.5px solid #ccc;
      border-radius: 8px; padding: 8px;
      font-size: 13px; font-family: inherit;
      outline: none; resize: none; min-height: 52px;
      line-height: 1.6; margin-bottom: 8px;
    }
    .photo-caption-input:focus { border-color: var(--site-color); }
    .photo-caption-input.has-caption { border-color: #0077BB; background: #F0FFF4; }
    .photo-mic-btn {
      width: 100%; padding: 8px; border: none;
      border-radius: 8px; font-size: 13px; font-weight: 700;
      cursor: pointer; background: var(--site-color); color: white;
    }
    .photo-mic-btn.recording {
      background: linear-gradient(135deg, #E74C3C, #C0392B);
      animation: pulse 1s ease-in-out infinite;
    }
    .photo-mic-btn.processing { background: #95a5a6; }
    @keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.6} }

    .photo-caption-status {
      font-size: 13px; color: var(--muted);
      text-align: center; margin-bottom: 10px;
    }

    .photo-saved-box {
      display: none;
      background: linear-gradient(135deg, #EBF5FB, #D6EAF8);
      border: 2px solid var(--site-color);
      border-radius: 14px;
      padding: 18px;
      text-align: center;
      margin-top: 10px;
    }

    /* ===== 日報画面 ===== */
    .daily-visual {
      background: linear-gradient(135deg, #1A5276, #154360);
      border-radius: 16px;
      padding: 28px;
      text-align: center;
      margin-bottom: 16px;
    }
    .daily-visual-icon { font-size: 56px; margin-bottom: 10px; }
    .daily-visual-time { font-size: 40px; font-weight: 700; color: white; letter-spacing: 4px; font-variant-numeric: tabular-nums; }
    .daily-visual-label { font-size: 13px; color: rgba(255,255,255,0.6); margin-top: 6px; line-height: 1.6; }
    .daily-warning {
      background: rgba(255,200,0,0.15);
      border: 1px solid rgba(255,200,0,0.4);
      border-radius: 10px; padding: 12px;
      font-size: 13px; color: rgba(255,255,255,0.85);
      margin-top: 12px; line-height: 1.7;
    }

    .daily-confirm-box {
      background: #EBF5FB;
      border: 2px solid var(--daily-color);
      border-radius: 14px;
      padding: 18px;
      margin-top: 12px;
    }

    .daily-saved-box {
      background: linear-gradient(135deg, #EBF5FB, #D6EAF8);
      border: 2px solid var(--daily-color);
      border-radius: 14px;
      padding: 24px;
      text-align: center;
      margin-top: 10px;
    }

    /* ===== 共通UI ===== */
    .status {
      font-size: 15px;
      color: var(--muted);
      text-align: center;
      padding: 10px;
      line-height: 1.5;
    }
    .status.success { color: #0077BB; font-weight: 700; }
    .status.error   { color: #CC3300; }
    .status.loading { color: #667eea; }

    .spinner {
      display: inline-block;
      width: 18px; height: 18px;
      border: 2px solid rgba(255,255,255,0.4);
      border-top-color: white;
      border-radius: 50%;
      animation: spin 0.8s linear infinite;
    }
    @keyframes spin { to { transform: rotate(360deg); } }

    .section-label {
      font-size: 13px;
      color: var(--muted);
      font-weight: 700;
      margin-bottom: 10px;
      padding-left: 4px;
    }

    .weather-btn {
      padding: 10px 16px; border: 2px solid var(--border); border-radius: 20px;
      background: var(--card); color: var(--text); font-size: 15px; cursor: pointer; font-weight: 600;
      transition: all 0.15s;
    }
    .weather-btn.selected {
      background: #0077BB; color: white; border-color: #0077BB;
    }
    .weather-btn:active { transform: scale(0.95); }

    .loading-overlay {
      text-align: center;
      padding: 32px;
    }
    .loading-overlay-icon { font-size: 48px; margin-bottom: 12px; }
    .loading-overlay-text { font-size: 16px; font-weight: 700; color: var(--daily-color); }

    /* ===== 録音中撮影ボタン ===== */
    #rec-camera-btn {
      display: none;
      width: 100%;
      padding: 18px;
      margin-top: 10px;
      border: 2.5px solid #AA3377;
      border-radius: 14px;
      background: rgba(170,51,119,0.12);
      color: #AA3377;
      font-size: 18px;
      font-weight: 700;
      cursor: pointer;
      text-align: center;
      letter-spacing: 1px;
    }
    #rec-camera-btn:active { background: rgba(170,51,119,0.25); }

    /* ★H2（2026-08-18）写録の待機中プレビュー：録音中に現れる操作（一時停止・話しながら写真を撮る）を、
       待機中は淡いグレーで見せておく（何ができるか分かる）。押しても無効（pointer-events:none）＝誤タップ事故なし。
       録音開始で #screen-audio に .recording-active が付くと下の :not(.recording-active) が外れ、通常表示に戻る（既存JS不変）。
       ★配色は style.css 側で定義（inline に background:#fff を書かない＝v328 のダーク罠回避）。 */
    #screen-audio:not(.recording-active) .btn-pause-hidden,
    #screen-audio:not(.recording-active) #rec-camera-btn {
      display: flex !important;
      opacity: 0.4;
      filter: grayscale(1);
      pointer-events: none;
    }
    #screen-audio:not(.recording-active) #rec-camera-btn { display: block !important; }
    #rec-photo-strip {
      display: none;
      margin-top: 10px;
      padding: 10px;
      background: #f8f0f5;
      border-radius: 10px;
      border: 1px solid #e8c0d8;
    }
    #rec-photo-strip-title {
      font-size: 11px;
      color: #AA3377;
      font-weight: 700;
      margin-bottom: 6px;
      letter-spacing: 1px;
    }
    #rec-photo-list {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
    }
    .rec-photo-thumb {
      position: relative;
      width: 72px;
      height: 72px;
      border-radius: 8px;
      overflow: hidden;
      border: 2px solid #AA3377;
      flex-shrink: 0;
    }
    .rec-photo-thumb img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .rec-photo-stamp {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      background: rgba(170,51,119,0.75);
      color: white;
      font-size: 10px;
      font-weight: 700;
      text-align: center;
      padding: 2px 0;
    }

    /* ===== RECORDオーバーレイ（省電力録音モード） ===== */
    /* ===== 送信促進モーダル ===== */
    #send-prompt-modal {
      position: fixed; inset: 0;
      background: rgba(0,0,0,0.55);
      display: none; align-items: flex-end;
      justify-content: center;
      z-index: 9999; padding-bottom: 24px;
    }
    #send-prompt-modal.show { display: flex; }
    .send-prompt-box {
      background: var(--card);
      border-radius: 20px;
      padding: 24px 20px 20px;
      width: calc(100% - 32px);
      max-width: 420px;
      box-shadow: 0 8px 40px rgba(0,0,0,0.18);
      animation: slideUp 0.25s ease;
    }
    @keyframes slideUp {
      from { transform: translateY(40px); opacity: 0; }
      to   { transform: translateY(0);    opacity: 1; }
    }

    #rec-overlay {
      display: none;
      position: fixed;
      top: 0; left: 0; right: 0; bottom: 0;
      background: #000;
      z-index: 9999;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      cursor: pointer;
    }
    #rec-overlay.active { display: flex; }
    #rec-overlay-record {
      font-size: 36px;
      font-weight: 900;
      letter-spacing: 6px;
      color: #ff3333;
      animation: rec-pulse 2s ease-in-out infinite;
      text-align: center;
      width: 100%;
      padding: 0 16px;
    }
    #rec-overlay-record.warning { color: #ffcc00; animation: rec-pulse-fast 0.8s ease-in-out infinite; }
    @keyframes rec-pulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.15; }
    }
    @keyframes rec-pulse-fast {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.2; }
    }
    #rec-overlay-time {
      font-size: 28px;
      font-weight: 700;
      color: rgba(255,255,255,0.5);
      letter-spacing: 4px;
      margin-top: 24px;
      font-variant-numeric: tabular-nums;
    }
    #rec-overlay-hint {
      font-size: 18px;
      color: rgba(255,255,255,0.5);
      margin-top: 40px;
      letter-spacing: 1px;
      text-align: center;
      line-height: 2;
    }
    #rec-overlay-warning {
      display: none;
      font-size: 14px;
      color: #ffcc00;
      margin-top: 16px;
      font-weight: 700;
    }

    /* ===== 着電中断バナー ===== */
    /* ===== デバッグログパネル ===== */
    #debug-log-panel {
      position: fixed;
      bottom: 0; left: 0; right: 0;
      background: rgba(0,0,0,0.85);
      color: #00ff88;
      font-size: 11px;
      font-family: monospace;
      z-index: 99999;
      max-height: 180px;
      overflow-y: auto;
      padding: 6px 10px 24px;
      display: none;
    }
    #debug-log-panel.show { display: block; }
    #debug-log-close {
      position: sticky;
      top: 0;
      float: right;
      background: rgba(255,255,255,0.15);
      color: #fff;
      border: none;
      border-radius: 4px;
      padding: 2px 8px;
      font-size: 11px;
      cursor: pointer;
    }
    .debug-log-line { padding: 2px 0; border-bottom: 1px solid rgba(255,255,255,0.08); }
    .debug-log-line.ok { color: #00ff88; }
    .debug-log-line.start { color: #ffcc00; }
    .debug-log-line.err { color: #ff5555; }

    /* ===== PWAインストール案内オーバーレイ ===== */
    #pwa-guide-overlay {
      position: fixed; inset: 0;
      background: linear-gradient(160deg, #FDF1E9 0%, #F0F4F8 100%);
      z-index: 19999;
      display: none;
      flex-direction: column;
      align-items: center;
      justify-content: flex-start;
      padding: 24px 20px 32px;
      overflow-y: auto;
    }
    #pwa-guide-overlay.show { display: flex; }

    .pwa-logo {
      font-size: 28px;
      font-weight: 700;
      letter-spacing: 8px;
      color: #1a1a2e;
      margin-top: 16px;
      margin-bottom: 4px;
    }
    .pwa-logo-sub {
      font-size: 11px;
      color: #6B5344;
      letter-spacing: 3px;
      margin-bottom: 24px;
    }

    .pwa-card {
      background: var(--card);
      border-radius: 20px;
      padding: 28px 24px;
      width: 100%;
      max-width: 420px;
    }

    .pwa-badge {
      display: inline-block;
      background: #1a2e4a;
      color: #d4ac0d;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 2px;
      padding: 4px 12px;
      border-radius: 20px;
      margin-bottom: 16px;
    }

    .pwa-title {
      font-size: 20px;
      font-weight: 700;
      color: #1a1a2e;
      margin-bottom: 8px;
      line-height: 1.4;
    }

    .pwa-reason {
      background: #fff8e6;
      border: 1.5px solid #d4ac0d;
      border-radius: 10px;
      padding: 14px 16px;
      margin-bottom: 20px;
    }

    .pwa-reason-title {
      font-size: 13px;
      font-weight: 700;
      color: #7a5a00;
      margin-bottom: 8px;
    }

    .pwa-reason-item {
      display: flex;
      align-items: flex-start;
      gap: 8px;
      font-size: 14px;
      color: #555;
      margin-bottom: 6px;
      line-height: 1.6;
    }
    .pwa-reason-item:last-child { margin-bottom: 0; }
    .pwa-reason-icon { flex-shrink: 0; font-size: 16px; }

    /* タブ */
    .pwa-tabs {
      display: flex;
      gap: 8px;
      margin-bottom: 20px;
    }
    .pwa-tab {
      flex: 1;
      padding: 10px 8px;
      border: 2px solid var(--border);
      border-radius: 10px;
      background: var(--card);
      font-size: 14px;
      font-weight: 700;
      color: var(--text);
      cursor: pointer;
      text-align: center;
      transition: all 0.2s;
    }
    .pwa-tab.active {
      border-color: #1a2e4a;
      background: #1a2e4a;
      color: white;
    }

    /* 手順 */
    .pwa-steps { display: none; }
    .pwa-steps.show { display: block; }

    .pwa-step {
      display: flex;
      gap: 14px;
      align-items: flex-start;
      margin-bottom: 16px;
      padding: 14px 16px;
      background: #f8faff;
      border-radius: 12px;
      border: 1.5px solid #e8eef8;
    }

    .pwa-step-num {
      width: 36px;
      height: 36px;
      background: #1a2e4a;
      color: #d4ac0d;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
      font-weight: 700;
      flex-shrink: 0;
    }

    .pwa-step-body {}
    .pwa-step-title {
      font-size: 15px;
      font-weight: 700;
      color: #1a1a2e;
      margin-bottom: 4px;
    }
    .pwa-step-desc {
      font-size: 13px;
      color: #666;
      line-height: 1.7;
    }
    .pwa-step-icon {
      font-size: 24px;
      margin-bottom: 4px;
    }
    .pwa-step-highlight {
      display: inline-block;
      background: #1a2e4a;
      color: #d4ac0d;
      font-weight: 700;
      font-size: 13px;
      padding: 2px 10px;
      border-radius: 6px;
      margin: 2px 0;
    }

    .pwa-note {
      background: #e8f4ea;
      border: 1.5px solid #99BBEE;
      border-radius: 10px;
      padding: 12px 14px;
      font-size: 13px;
      color: #2a6a3a;
      margin-bottom: 20px;
      line-height: 1.7;
    }

    .pwa-btn-done {
      width: 100%;
      padding: 18px;
      background: linear-gradient(135deg, #1a2e4a, #2c4a6e);
      color: #d4ac0d;
      font-size: 17px;
      font-weight: 700;
      border: none;
      border-radius: 14px;
      cursor: pointer;
      margin-bottom: 12px;
    }
    .pwa-btn-later {
      width: 100%;
      padding: 14px;
      background: var(--card);
      color: var(--text);
      font-size: 14px;
      font-weight: 700;
      border: 1.5px solid var(--border);
      border-radius: 14px;
      cursor: pointer;
    }
    .pwa-btn-later:active { opacity: 0.7; }
    .pwa-btn-done:active { opacity: 0.85; }

    /* ===== 印刷用CSS ===== */
    #genroku-print-area {
      display: none;
    }
    @media print {
      body > * { display: none !important; }
      #genroku-print-area {
        display: block !important;
        font-family: 'Noto Sans JP', 'Hiragino Sans', 'GENROKU Icons', sans-serif;
        padding: 20px; max-width: 100%;
      }
      .gp-header {
        border-bottom: 2px solid #1a1a2e;
        padding-bottom: 12px; margin-bottom: 20px;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
      }
      .gp-brand { font-size: 10px; color: #888; margin-bottom: 4px; }
      .gp-sitename { font-size: 20px; font-weight: 700; color: #1a1a2e; }
      .gp-datetime { font-size: 13px; color: #555; margin-top: 4px; }
      .gp-section-label {
        font-size: 10px; font-weight: 700; letter-spacing: 2px;
        color: #888; margin: 18px 0 8px; text-transform: uppercase;
      }
      .gp-text {
        font-size: 14px; line-height: 1.85; color: #1a1a2e;
        white-space: pre-wrap; margin-bottom: 12px;
      }
      .gp-photos {
        display: grid; grid-template-columns: repeat(2, 1fr);
        gap: 10px; margin-bottom: 16px;
      }
      .gp-photo {
        aspect-ratio: 4/3; overflow: hidden; border-radius: 6px;
        border: 1px solid #e0e0e0;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
      }
      .gp-photo img { width: 100%; height: 100%; object-fit: cover; }
      .gp-footer {
        margin-top: 24px; padding-top: 12px;
        border-top: 1px solid #e0e0e0;
        font-size: 10px; color: #aaa; text-align: right;
      }
      .gp-summary-box {
        background: #f8faff; border: 1px solid #e0e4f0;
        border-radius: 8px; padding: 14px; margin-top: 4px;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
      }
    }

/* 横持ち時：撮影確認画面を2カラム化（縦持ちは@media外＝完全不変） */
@media (orientation: landscape) and (max-height: 500px) {
  /* saved-boxを2カラムgridに。DOM順は変えずgrid-areaで配置 */
  #photo-saved-box {
    display: grid !important;
    grid-template-columns: 1.3fr 1fr;
    grid-template-areas:
      "thumb  badge"
      "thumb  blackboard"
      "thumb  keika"
      "thumb  statusmemo"
      "finish continue";
    grid-template-rows: auto auto auto auto 1.4fr;   /* ★仕上げ①：blackboard の行が1つ増えた */
    column-gap: 14px;
    row-gap: 10px;
    align-items: start;
  }
  #photo-saved-badge-row    { grid-area: badge; margin-bottom: 0 !important; }
  #photo-latest-thumb       { grid-area: thumb; max-height: 42vh !important; width: 100% !important; margin-bottom: 0 !important; }
  #photo-finish     { grid-area: finish; margin-top: 0 !important; }
  #photo-saved-keika-land    { grid-area: keika;    display: flex !important; margin-top: 0 !important; padding: 18px !important; font-size: 19px !important; }
  #photo-saved-continue-land { grid-area: continue; display: flex !important; margin-top: 0 !important; padding: 22px !important; font-size: 20px !important; }
  /* ★仕上げ①：黒板撮影は「能力ONのマークが付いているときだけ」出す。
     ★無条件に display:flex にしてはいけない＝本番の建築4種別（blackboard 未宣言）で誤爆する。
     マークは _updateBlackboardEntry が現場ごとに立て外しする（main1.js）。 */
  #photo-saved-blackboard-land[data-bb-enabled="1"] {
    grid-area: blackboard; display: flex !important; margin-top: 0 !important;
    padding: 14px !important; font-size: 18px !important;
  }

  /* 横持ちでは縦持ち用フッターを隠す（横用ボタンが右カラムに出るため） */
  #photo-fixed-footer  { display: none !important; }
  #photo-footer-spacer { height: 0 !important; }

  /* ヒント・縦持ち用ボタン群は横持ちgridでは行に乗らないので隠す */
  #photo-finish-hint    { display: none !important; }
  #photo-saved-buttons   { display: none !important; }

  /* ★ 横持ちA-2：状態・メモボタンを右カラムに1行横並びで表示（見えるだけ・入力欄は開かない） */
  #photo-status-memo-wrap { grid-area: statusmemo; display: flex !important; gap: 8px; margin: 0 !important; align-items: stretch; }
  #photo-status-memo-wrap > div { flex: 1; margin: 0 !important; }
  #photo-status-toggle-btn, #photo-memo-toggle-btn {
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    min-height: 44px !important; padding: 10px !important; font-size: 14px !important;
  }
  /* 横持ちでは入力欄は開かない（高さ500pxで崩れるため・見えるだけ）。JSガードと二重で確実に */
  #photo-status-input-area, #photo-memo-collapse { display: none !important; }

  /* 黒バナー（全画面共通#genroku-header-dyn）を横持ちで細く＋body余白も同値に */
  #genroku-header-dyn {
    min-height: calc(40px + env(safe-area-inset-top, 0px)) !important;
    padding-top: calc(6px + env(safe-area-inset-top, 0px)) !important;
    padding-bottom: 6px !important;
  }
  body {
    padding-top: calc(40px + env(safe-area-inset-top, 0px)) !important;
  }
}

/* 大規模修繕モード×横持ち：比較撮影ボタンは非表示（既存L99と同スコープ） */
@media (orientation: landscape) and (max-height: 500px) {
  body.continuous-capture-mode #photo-saved-keika-land { display: none !important; }
}


/* ★ v159（2026-07-12・菊池さん決裁=案5）：ブランド語「ゲンバ」専用書体。
   M PLUS Rounded 1c Bold を「ゲンバ（＋濁点分解用ケンハ）」だけサブセット化した約3KBのwoff2をbase64同梱＝圏外でも崩れない・読込遅延なし。
   適用は見出し級（現在のゲンバ・いま選んでいるゲンバ・撮影画面ラベル・選択画面ヘッダー）のみ。本文・ボタンは通常書体（可読性維持・Sora）。 */
@font-face {
  font-family: 'GenbaBrand';
  src: url(data:font/woff2;base64,AAEAAAATAQAABAAwR0RFRgAXAAQAAAqEAAAAHEdQT1NEdkx1AAAKoAAAACBHU1VCbTRZLgAACsAAAABCT1MvMmd9nMgAAAG4AAAAVmNtYXAw5mIQAAACIAAAAERjdnQgBpMC+wAABPwAAAAOZnBnbQ+0L6cAAAJkAAACZWdhc3D//wADAAAKfAAAAAhnbHlmI1YNywAABRwAAAOmaGVhZB1HPmUAAAE8AAAANmhoZWEInwK/AAABdAAAACRobXR4BdEBSQAAAhAAAAAQbG9jYQM1Al8AAAUMAAAADm1heHABIgCGAAABmAAAACBuYW1lHjo4VgAACMQAAAGYcG9zdP+GADIAAApcAAAAIHByZXCw8isUAAAEzAAAAC52aGVhB6gRzQAACwQAAAAkdm10eAVAAvYAAAsoAAAADgABAAAAAQ8aIkBxIV8PPPUCKQPoAAAAANGM+5oAAAAA5njvtAA1/9QD0ANEAAEACAAAAAAAAAAAAAEAAAQz/sAAWgPoADwAFAPUAAEAAAAAAAAAAAAAAAAAAAACAAEAAAAGAFQABAAAAAAAAgABAAIAFgAAAQAALgAAAAAAAQOLArwABQAAAooCuwAAAIwCigK7AAAB3wAxAQIIBgILBwICAgMCAgcAAAAAAAQAAAAAAAAAAAAATSsgIAAgMLEw8wNc/3QAWgQzAUAAAAABAAAAAAAAAWwAIQPoAEsAQQBGADwAlwAAAAIAAAADAAAAFAADAAEAAAAUAAQAMAAAAAgACAACAAAwsjDQMPP//wAAMLEwzzDz///PUM80zxIAAQAAAAAAAAAAsAAssAATS7AqUFiwSnZZsAAjPxiwBitYPVlLsCpQWH1ZINSwARMuGC2wASwg2rAMKy2wAixLUlhFI1khLbADLGkYILBAUFghsEBZLbAELLAGK1ghIyF6WN0bzVkbS1JYWP0b7VkbIyGwBStYsEZ2WVjdG81ZWVkYLbAFLA1cWi2wBiyxIgGIUFiwIIhcXBuwAFktsAcssSQBiFBYsECIXFwbsABZLbAILBIRIDkvLbAJLCB9sAYrWMQbzVkgsAMlSSMgsAQmSrAAUFiKZYphILAAUFg4GyEhWRuKimEgsABSWDgbISFZWRgtsAossAYrWCEQGxAhWS2wCywg0rAMKy2wDCwgL7AHK1xYICBHI0ZhaiBYIGRiOBshIVkbIVktsA0sEhEgIDkvIIogR4pGYSOKIIojSrAAUFgjsABSWLBAOBshWRsjsABQWLBAZTgbIVlZLbAOLLAGK1g91hghIRsg1opLUlggiiNJILAAVVg4GyEhWRshIVlZLbAPLCMg1iAvsAcrXFgjIFhLUxshsAFZWIqwBCZJI4ojIIpJiiNhOBshISEhWRshISEhIVktsBAsINqwEistsBEsINKwEistsBIsIC+wBytcWCAgRyNGYWqKIEcjRiNhamAgWCBkYjgbISFZGyEhWS2wEywgiiCKhyCwAyVKZCOKB7AgUFg8G8BZLbAULLMAQAFAQkIBS7gQAGMAS7gQAGMgiiCKVVggiiCKUlgjYiCwACNCG2IgsAEjQlkgsEBSWLIAIABDY0KyASABQ2NCsCBjsBllHCFZGyEhWS2wFSywAUNjI7AAQ2MjLQAAALgB/4WwAY0AS7AIUFixAQGOWbFGBitYIbAQWUuwFFJYIbCAWR2wBitcWFmwFCsAAP8kAAACCALaAu4AIQJ5AAAAAAAAAE4A0QEUAY4B0wAAAAEAR//eA5sDFwAyAAABMhYVFRQGIyMiFQYCBwYmJycmNjc2Njc0IyMiBwYHBgYnJyYmNzY3NjYXMxYWBwYHBjMDYxchIReiCAGvuRcqCAMHFxaLegEJ9AkDJkIPMBQKEwgOZCEFJBgRFx4EBAgDCQKNIRcHFyIH8f72LwYZFwkVJwYmycUICF9WEwYNBg0sE462GB0BAiQXHyMKAAMAPf/UA9ADRAARACAAUwAAATYWFxYWFxYGBwYmJyYmJyY2NxYWFxYGBiYnJicmNjYWASYmNzY3NjYXMxYWBwYHBjMhMhYVFRQGIyMiFQYCBwYmJycmNjc2Njc0IyMiBwYHBgYnAskUKQsFEgUKDhQTKQoFEgUKDfQFEwQKDigpCwkUCg0oLPy4EwgOZCEFJBgRFx4EBgkCCQIOFyEhF6IIAa66FykGAgYYF4d3AQn4CQMmPQ8wFQMsCg4UCSMJFCkJCQ4TCSMJEykBCiYIFCgUDhQSJBQpFA7+Eg0sE462GB0BAiQXKSUIIRcHFyIH8P7/LwYaFwcWJwYlw8IIB1lRFAgOAAACAD//7AOkAtUAEQAjAAAlAgMmNjc3NhYXEhMWBgcHBiYlJiY3EhM2NhcXFhYHAgMGBicDEEttCBUWFBcrCXZPBRkXIBco/U4VDwuLIwIkGBsXHwIgmQsuFhsBQQEnFigHBgcVFv7T/rsWJwUGBBgHCiwUAQ8BNBcfAQECJBf+sP7aFQ8KAAQANf/hA5oDJQAQACMANQBHAAABJicmNjczNhYXFhcWBgcGJjcGJicmJicmNjc3NhYXFhcWBgcHNhYXFhcWBgcHBiYnJicmNjcBJiY3EhM2NhcXFhYHAgMGBicCYQUbCw4VARUuCwsWChAVFiziFS0LBRYGCw0VAxUuCyEBCw8VghcqCEY3BRkXIBcoBTc9BxUX/aIVDwuLIwIkGBsXHwIgmQsuFgJxCTIULAsLDhUUKhUsCgoQGQoPFQoqChQuCgELDRU/AhUsCncHFhfO3hYnBQYFGRfouhYpB/4ICiwUAQ8BNBcfAQECJBf+sP7aFQ8KAAACAJD/7wOcAt8AEQAlAAATJiY3NzY2FxYXFhYHBwYGJyYlFhYHAgAFBiYnJyY2NzYkNzY2F7MVDgsKCy0WY24UDQsLCy4UdQJeFxoFO/6p/t0YJQQCBBwX9gEaOAYoFwJeCiwUFBUOCjA8Cy4UFBQNC0BMBSgX/v/+3iUDHRgSFyUDIujXFxoFAAAAAAAABwBaAAMAAQQJAAAAXAAAAAMAAQQJAAEAKgBcAAMAAQQJAAIACACGAAMAAQQJAAMAXgCOAAMAAQQJAAQAKgBcAAMAAQQJAAUALADsAAMAAQQJAAYAJgEYAEMAbwBwAHkAcgBpAGcAaAB0ACAAMgAwADEANgAgAFQAaABlACAAUgBvAHUAbgBkAGUAZAAgAE0AKwAgAFAAcgBvAGoAZQBjAHQAIABBAHUAdABoAG8AcgBzAC4AUgBvAHUAbgBkAGUAZAAgAE0AcABsAHUAcwAgADEAYwAgAEIAbwBsAGQAQgBvAGwAZAAxAC4AMAA1ADkALgAyADAAMQA1ADAANQAyADkAZwA7AEcAbwBvAGcAbABlAEYAbwBuAHQAcwA7AFIAbwB1AG4AZABlAGQATQBwAGwAdQBzADEAYwAtAEIAbwBsAGQAVgBlAHIAcwBpAG8AbgAgADEALgAwADUAOQAuADIAMAAxADUAMAA1ADIAOQBSAG8AdQBuAGQAZQBkAE0AcABsAHUAcwAxAGMALQBCAG8AbABkAAMAAAAAAAD/gwAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//8AAgABAAAADAAAAAAAAAABAAEABQABAAIAAQACAAEAAQAAAAoAHAAeAAFERkxUAAgABAAAAAD//wAAAAAAAAABAAAACgA+AEAABkRGTFQAJmN5cmwAMGdyZWsAMGhhbmkAMGthbmEAMGxhdG4AMAAEAAAAAP//AAAAAAAAAAAAAAAAAAEQAAOd/YsAWgPoAB8AWQOPAAAAAQAAAAAAAAAAAAAAAAABA+gCmgBGAB8AjgA9AIQAAA==) format('woff2');
  font-display: swap;
}
.genba-brand { font-family: 'GenbaBrand', 'Hiragino Kaku Gothic ProN', 'GENROKU Icons', sans-serif; letter-spacing: 0.5px; }


/* ★ v160（2026-07-12・菊池さん決裁=範囲1）：見出し・ボタン類だけ丸ゴ（M PLUS Rounded 1c Bold・自己ホスト1.1MB・OPTIONAL精キャッシュ=圏外OK）。
   本文・入力欄・一覧の説明文はシステム書体（ヒラギノ）のまま＝長文の可読性と速度を維持（Sora）。
   単一ウェイト同梱＝全weightにこのBoldグリフが使われる（見出し・ボタンは元々600-800なので実質不変）。 */
@font-face {
  font-family: 'MPlusRounded';
  src: url('mplus-rounded-700.woff2') format('woff2');
  font-display: swap;
}
button, .btn,
#header-title, #header-sub-title,
.menu-btn-label,
.site-banner-label, .site-banner-name,
.pcs-label, .pcs-name,
.section-label, .site-section-label,
#home-site-name, #site-current-name, #site-current-label,
#room-input-title, #room-select-title, #wing-select-title,
#photo-hierarchy-label, #audio-hierarchy-label {
  font-family: 'MPlusRounded', 'GenbaBrand', 'Hiragino Kaku Gothic ProN', 'GENROKU Icons', -apple-system, sans-serif;
}

/* ★TP1改（2026-08-19）テンプレートのグループ化とツリー編集器。
   ★配色はここ（style.css）だけで定義する＝新規要素の inline に白系背景・暗系文字を書かない
     （v328 のダーク罠＝JSの一括変換が inline の #fff を var(--card) に書き換え、文字色は残す）。
   ★色は既存のテーマ変数（--card/--bg/--border/--text/--muted）に寄せる＝ダークは自動で追従。
     ブランド色 #0077BB を使う箇所だけ、ダークで見えるように別途上書きする。 */

/* --- 柱A（追補2）：束ねるのは建築だけ。それ以外は第1階層にそのまま並べる --- */
/* 建築の見出し（🏗 建築 PRO／形が5つ／タップで開閉） */
.stk-head {
  width: 100%; display: flex; align-items: center; gap: 12px;
  padding: 14px 16px; margin-bottom: 10px; min-height: 72px;
  border: 2px solid var(--border); border-radius: 12px;
  background: var(--card); color: var(--text);
  font-family: inherit; text-align: left; cursor: pointer;
}
.stk-head.open { border-color: #0077BB; margin-bottom: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.stk-head .stk-ic { flex-shrink: 0; font-size: 32px; line-height: 1; }
.stk-head .stk-txt { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.stk-head .stk-label { font-size: 17px; font-weight: 700; display: flex; align-items: center; gap: 8px; }
.stk-head .stk-pro {
  flex-shrink: 0; padding: 2px 8px; border-radius: 6px;
  background: #0077BB; color: #ffffff;
  font-size: 11px; font-weight: 800; letter-spacing: 0.5px;
}
.stk-head .stk-sub { font-size: 13px; color: var(--muted); }
.stk-head .stk-arw {
  flex-shrink: 0; font-size: 22px; color: var(--muted);
  transform: rotate(90deg); transition: transform 0.15s;
}
.stk-head.open .stk-arw { transform: rotate(-90deg); }
/* 束の中身 */
.stk-body {
  border: 2px solid #0077BB; border-top: none;
  border-bottom-left-radius: 12px; border-bottom-right-radius: 12px;
  padding: 8px; margin-bottom: 10px; background: var(--bg);
}
.stk-body.stk-closed { display: none; }
[data-theme="dark"] .stk-head.open { border-color: #4db4ea; }
[data-theme="dark"] .stk-body { border-color: #4db4ea; }

/* テンプレート1件のボタン（束の中／第1階層 共通） */
.st-item {
  width: 100%; display: flex; align-items: center; gap: 14px;
  padding: 16px; margin-bottom: 10px; min-height: 72px;
  border: 2px solid var(--border); border-radius: 12px;
  background: var(--card); color: var(--text);
  font-family: inherit; text-align: left; cursor: pointer;
}
.st-item:last-child { margin-bottom: 0; }
.st-item .st-ic { flex-shrink: 0; font-size: 32px; line-height: 1; }
.st-item .st-txt { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.st-item .st-label { font-size: 17px; font-weight: 700; }
.st-item .st-shape { font-size: 13px; color: var(--muted); line-height: 1.5; }
.st-item .st-shape .st-sep { font-style: normal; margin: 0 5px; opacity: 0.6; }
.st-item .st-note { font-size: 15px; font-weight: 700; color: inherit; line-height: 1.4; white-space: nowrap; margin-top: -2px; }   /* ★★v732改（決裁173→A・RM-611）：「集合住宅」の★すぐ下の1行（名前と同じ太さ・色・名前にくっつける・1行で折れない） */
.st-item .st-go { flex-shrink: 0; font-size: 14px; font-weight: 700; color: #0077BB; }
/* 束の中は1段下げて見せる（枠は束が持つので線を軽くする） */
.st-item.st-in-group { border-width: 1.5px; margin-bottom: 8px; }
[data-theme="dark"] .st-item .st-go { color: #4db4ea; }

/* --- 柱A/柱B：作成入口を法人（会社テンプレが正）で隠す。fix3型＝要素も onclick も残す --- */
.tpl-create-entry.tpl-locked { display: none !important; }

/* --- 柱B：旧UI（アイコン欄・階層チェック・呼び名ブロック）は残したまま隠す --- */
.tpl-legacy-field { display: none !important; }

/* --- 柱B：ツリー編集器 --- */
.tt-title { font-size: 14px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.tt-box {
  border: 1.5px solid var(--border); border-radius: 12px;
  background: var(--bg); padding: 8px; margin-bottom: 8px;
}
.tt-node { margin-bottom: 4px; }
.tt-l1 { padding-left: 18px; }
.tt-l2 { padding-left: 36px; }
.tt-row {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 12px; min-height: 48px;
  border: 1.5px solid var(--border); border-radius: 10px;
  background: var(--card); color: var(--text); cursor: pointer;
}
.tt-row .tt-ic { flex-shrink: 0; font-size: 20px; line-height: 1; }
.tt-row .tt-nm { flex: 1; font-size: 15px; font-weight: 700; }
.tt-row .tt-fix {
  flex-shrink: 0; padding: 4px 10px; border-radius: 8px;
  border: 1.5px solid #0077BB; color: #0077BB;
  font-size: 12px; font-weight: 700;
}
.tt-row .tt-badge {
  flex-shrink: 0; padding: 2px 8px; border-radius: 8px;
  background: var(--bg); color: var(--muted); font-size: 11px; font-weight: 700;
}
/* 使わない段は「消さずに」破線・薄色で残す */
.tt-off .tt-row { border-style: dashed; opacity: 0.5; }
[data-theme="dark"] .tt-row .tt-fix { border-color: #4db4ea; color: #4db4ea; }

/* ノードの下に開く編集欄 */
.tt-ed {
  margin: 6px 0 2px; padding: 12px;
  border: 1px solid var(--border); border-radius: 10px; background: var(--card);
}
.tt-ed-lb { display: block; font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 5px; }
.tt-ed-in {
  width: 100%; box-sizing: border-box; padding: 11px; margin-bottom: 10px;
  font-size: 15px; font-family: inherit;
  border: 1.5px solid var(--border); border-radius: 9px;
  background: var(--input-bg); color: var(--text);
}
.tt-icons { display: flex; flex-wrap: wrap; gap: 8px; }
.tt-toggle {
  width: 100%; min-height: 44px; padding: 11px;
  border: 1.5px solid #0077BB; border-radius: 9px;
  background: transparent; color: #0077BB;
  font-family: inherit; font-size: 14px; font-weight: 700; cursor: pointer;
}
.tt-toggle.off { border-color: var(--border); color: var(--muted); }
[data-theme="dark"] .tt-toggle { border-color: #4db4ea; color: #4db4ea; }
[data-theme="dark"] .tt-toggle.off { border-color: var(--border); color: var(--muted); }
/* 使用中で段を触れないときの理由（禁止ではなく「なぜ」を伝える） */
.tt-lock {
  padding: 10px 12px; border-radius: 9px;
  background: var(--bg); color: var(--text2);
  font-size: 12px; line-height: 1.7;
}
.tt-note { font-size: 12px; line-height: 1.7; color: var(--muted); margin-bottom: 14px; }

/* ★TP2（2026-08-19）テンプレートの整理モード（並べ替え／隠す／削除）。
   ★配色はここ（style.css）だけで定義する＝新規要素の inline に白系背景・暗系文字を書かない。
   ★並べ替えは ▲▼（ドラッグにしない）。押せない端のボタンは消さずに薄くする＝位置がずれない。 */

/* 選択画面の末尾に置く整理モードの入口 */
.tpl-organize-entry {
  width: 100%; display: flex; align-items: center; gap: 12px;
  padding: 14px 16px; margin-bottom: 6px; min-height: 56px;
  border: 2px dashed var(--border); border-radius: 12px;
  background: transparent; color: var(--muted);
  font-family: inherit; font-size: 15px; font-weight: 700;
  text-align: left; cursor: pointer;
}
.tpl-organize-entry .tpo-entry-ic { flex-shrink: 0; font-size: 22px; line-height: 1; }

/* 整理モード本体 */
#site-type-organize {
  margin-top: 4px; margin-bottom: 10px; padding: 14px;
  border: 1.5px solid var(--border); border-radius: 12px; background: var(--card);
}
.tpo-title { font-size: 15px; font-weight: 700; color: var(--text); margin-bottom: 12px; }
.tpo-head {
  font-size: 12px; font-weight: 700; color: var(--muted);
  margin: 14px 0 6px; padding-top: 10px; border-top: 1px solid var(--border);
}
.tpo-empty { font-size: 14px; color: var(--muted); line-height: 1.8; padding: 8px 0 12px; }
.tpo-row {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
  padding: 10px 4px; border-bottom: 1px solid var(--border);
}
.tpo-row .tpo-ic { flex-shrink: 0; font-size: 24px; line-height: 1; }
.tpo-row .tpo-txt { flex: 1 1 120px; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.tpo-row .tpo-nm { font-size: 15px; font-weight: 700; color: var(--text); }
.tpo-row .tpo-sub { font-size: 12px; color: var(--muted); }
.tpo-row .tpo-btns { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
/* 隠しているものは薄く・破線で「残っている」ことを見せる（消さない） */
.tpo-row.tpo-off { opacity: 0.6; border-bottom-style: dashed; }

.tpo-row .tpo-mv,
.tpo-row .tpo-act,
.tpo-row .tpo-del {
  min-height: 40px; padding: 8px 10px; border-radius: 8px;
  background: transparent; font-family: inherit; font-size: 13px; font-weight: 700; cursor: pointer;
}
.tpo-row .tpo-mv  { min-width: 40px; border: 1.5px solid var(--border); color: #0077BB; font-size: 12px; }
.tpo-row .tpo-act { border: 1.5px solid #0077BB; color: #0077BB; }
.tpo-row .tpo-del { border: 1.5px solid var(--border); color: #e74c3c; }
/* 端の ▲▼ は押せないことを見せる（消さない＝ボタンの位置がずれない） */
.tpo-row .tpo-mv[disabled] { opacity: 0.3; cursor: default; color: var(--muted); }

.tpo-done {
  width: 100%; min-height: 48px; margin-top: 16px; padding: 14px;
  border: none; border-radius: 10px;
  background: #0077BB; color: #ffffff;
  font-family: inherit; font-size: 16px; font-weight: 700; cursor: pointer;
}
[data-theme="dark"] .tpo-row .tpo-mv  { color: #4db4ea; }
[data-theme="dark"] .tpo-row .tpo-act { border-color: #4db4ea; color: #4db4ea; }
[data-theme="dark"] .tpo-row .tpo-mv[disabled] { color: var(--muted); }

/* ★RM-6a-fix（2026-08-25・菊池さん実機指摘）：部屋入力画面の逃げ道ボタンが小さすぎて読めない。
   RM-6a（v348）で言葉は「🏢 この現場全体で撮影する」と通じるようにしたが、大きさで台無しになっていた。
   非IT層・高齢の利用者にとって、読めない逃げ道は無いのと同じ。
   ★なぜ index.html の inline ではなく、ここ（style.css）に置くか＝次に触る人へ：
     main1.js の openRoomInputScreen は、この画面を開くたびに
       _wholeEl.style.fontSize = _rw.custom ? '13px' : '';
       _wholeEl.style.padding  = _rw.custom ? '10px' : '';
     を実行する。'' の代入は inline の宣言そのものを消すため、index.html に書いた
     font-size:14px / padding:14px は建築系では実行時に消え、ブラウザ既定の大きさまで落ちていた（実測）。
     ＝「JSが値を入れたときは inline が勝つ／JSが消したときはこの規則が受ける」という関係。
     だから自作テンプレ（custom=true）は従来どおり 13px・padding 10px のまま＝控えめ設計は壊れない。
   ★font-weight だけ !important が要る：inline の font-weight:600 は JS が触らず消えないため、
     通常の詳細度では勝てない（実測）。副作用として自作テンプレも 600→700 になる（大きさは 13px のまま）。
   ★主従は崩さない：主＝#room-input-start-btn（塗り・18px/700・min-height 64px）、
     副＝この逃げ道（枠線・16px/700・min-height 48px）。塗りと枠線・高さの差で主従を出す。
   ★色には触らない（背景 var(--card)・文字 var(--text) は inline のまま）＝ダーク一括変換の罠に関与しない。
   ★min-height は inline の 48px が残る＝タップ領域44px以上は従来どおり満たす（触らない）。
   ★main1.js の上記2行は、コメント（「建築は従来」）と実装（inline を消す）が食い違っている。
     今回は CSS の受け皿で結果だけ直す。食い違いそのものは RM-11 で別途（今回のスコープを広げない）。 */
#room-input-whole-btn {
  font-size: 16px;
  padding: 16px;
  font-weight: 700 !important;
}

/* ★RM-82（2026-08-31）検索の入力欄の placeholder 色。
   ★案内の箱と入力欄が別々で、案内のほうが入力欄に見えていた（菊池さんの実機報告）。
     箱を1つにして案内を placeholder に入れた（index.html の #search-question）。
   ★入力欄は★白背景を固定で持つ。ダークモードでも白のままなので、placeholder の色も明示する。
     ブラウザ既定の placeholder はテーマに追随して明るくなり、★白地に白で消えることがある。
   ★★末尾に置く理由：既存の番人（homerow ほか7本）が style.css を固定コミット比で見ており、
     除去式が「TP1改 のフェンス以降を一括で消す」形になっている。★同じ作法に乗せる。 */
/* ★★検索の入力欄は★ライトでもダークでも白い枠のままにする（菊池さん決裁 2026-08-31）。
   ★なぜ !important が要るか：style.css:149-155 の
     [data-theme="dark"] input, textarea, select { background/color/border-color: … !important }
   が★インライン指定より強い（!important はインラインに勝つ）。
   ★最初 index.html のインラインで白くしようとしたが★効いていなかった。菊池さんの指摘で判明。
   ★ここは id セレクタなので、上の [data-theme="dark"] textarea（型セレクタ）より
     詳細度が高い＝両方 !important でも★こちらが勝つ。
   ★色の指定はこの1箇所だけに置く（インライン側からは外した＝二重管理をやめる）。 */
#search-question,
[data-theme="dark"] #search-question {
  background: #f0f4ff !important;
  color: #1a1a2e !important;
  border-color: #0077BB !important;
}
#search-question::placeholder { color: #7a8194; opacity: 1; }
#search-question::-webkit-input-placeholder { color: #7a8194; opacity: 1; }


/* ★P1-a（2026-09-01・菊池さん決裁13）ブランド書体の作り直し。
   ★★置き場所＝★このフェンス（TP1改）より後ろ。理由＝8本の番人が
     「style.css は H3・TP1改・TP2 の追加分を除けば 85db16a と完全一致」を守っており、
     除去式が『TP1改 のフェンス以降を一括で消す』形になっている。前方を触ると8本が落ちる
     （実際に落として確認した。RM-82 で踏んだのと同じ作法）。
   ★当てる先が変わった：旧＝UIラベルの中の「ゲンバ」／新＝★タグライン
     「みんなのげんばの記録」の中の「げんば」。ブランド書体はブランドを名乗る場所に当てるもの。
   ★収録11コードポイント（旧＝カタカナ5字だけ）：
     ひらがな け(U+3051) げ(U+3052) は(U+306F) ば(U+3070) ん(U+3093) ＋★結合濁点(U+3099)
     カタカナ ケ ゲ ハ バ ン ＝★既存データに terms.root:'ゲンバ' が焼き付いて残るため両方入れる。
   ★--layout-features='ccmp,mark,mkmk' 付きで再サブセット（U+3099 を入れても GSUB/GPOS が落ちると濁点がずれる）。
   ★旧サブセットは format('woff2') と宣言しながら実体が生の TrueType だった（先頭 00 01 00 00）。
     ★これは本物の woff2（先頭 wOF2・2,352バイト）。font-weight:700 も明示（未宣言＝400扱いで合成ボールドの恐れ）。
   ★★上の旧 @font-face（'GenbaBrand'・3,833バイトの base64）は★死荷重として残している。
     消すには前方を触ることになり8本の番人を作り替える必要がある＝凍結前にやることではない。
     ★整える期間の宿題（別票）。フォールバックに残してあるので害はない。 */
/* ★RM-91（2026-09-01・菊池さん決裁）ブランド書体を通常の書体に戻す。
   ★なぜ「消す」ではなく「上書き」か：.genba-brand の定義は★2箇所ある。
     前方 style.css:1438（旧）と、ここ（新）。
     ★末尾を消すだけだと前方の旧書体が復活する。前方は8本の番人が
     「85db16a と完全一致」で守っており、触ると8本が落ちる。
     ∴ ★ここで親の書体をそのまま使う形に上書きして、両方をまとめて無効にする。
   ★なぜ戻すか：font-display: swap で書体が遅れて差し替わると、
     index.html:464 のタグラインの行の高さが変わり、★4行下の
     468 の Google ログインボタンが縦に動く。起動直後のタップが空振りする（RM-91）。
     実機で「タップしてもリダイレクトが出ない」＝startLogin() が呼ばれていない＝
     ★クリックがボタンに届いていない、が確認できている。
   ★タグラインの文字「みんなのげんばの記録」は★残す。書体だけを戻す。
   ★新しい側の @font-face は削除する＝2,352バイトの埋め込みが配信から消える。
     前方の旧い方（3,833バイト）は前方なので残る＝★死荷重のまま（整える期間の宿題）。 */
.genba-brand { font-family: inherit; letter-spacing: 0; }

/* ★RM-91 保険（2026-09-01）：タッチ端末で :hover が張り付くのを防ぐ。
   ★原因が書体のずれだったとしても害がないので入れる。当てにいっているわけではない。
   ★前方 style.css:24 の .btn-google:hover は触らない（8本の番人が守っている）。 */
@media (hover: none) {
  .btn-google:hover { border-color: #E8E8E8; background: white; }
}

/* ★TP3 段階1（2026-09-01・菊池さん決裁＝ロ）テンプレート選択画面の見出し。
   ★★置き場所＝★TP1改 のフェンスより後ろ。理由＝7本の番人が
     「style.css は H3・TP1改・TP2 の追加分を除けば 85db16a と完全一致」を守っており、
     除去式が『TP1改 のフェンス以降を一括で消す』形になっている。前方を触ると7本が落ちる。
   ★色は既存の変数だけを使う（インラインに白系背景・暗系文字を書かない＝2026-08-18 の教訓）。 */
.tp3-sec { margin: 2px 0 10px; }
.tp3-sec-t { font-size: 15px; font-weight: 800; color: var(--text); line-height: 1.5; }
.tp3-sec-d { font-size: 12px; color: var(--muted); line-height: 1.6; margin-top: 2px; }
.tp3-sec.tp3-make { border-top: 1px solid var(--border); margin-top: 22px; padding-top: 16px; }

/* ★TP3 段階2（2026-09-01）見本の行。★見た目は既存の .st-item / .stk-* をそのまま借り、
   ここでは「行の中にボタンが2つある」ぶんだけを足す（新しい見た目を発明しない）。 */
.tp3-preset { cursor: default; }
.tp3-preset.tp3-locked { opacity: 0.55; }
.tp3-preset .tp3-pedit {
  align-self: flex-start; margin-top: 6px; padding: 4px 8px;
  border: 1px solid var(--border); border-radius: 8px;
  background: transparent; color: var(--muted);
  font-family: inherit; font-size: 12px; font-weight: 700; cursor: pointer;
}
.tp3-preset .tp3-puse {
  flex-shrink: 0; padding: 8px 10px; border: none; border-radius: 8px;
  background: transparent; font-family: inherit; cursor: pointer;
}

/* ★TP5（2026-09-01・菊池さん決裁）作成画面のいちばん下＝オリジナル。
   ★見た目は .st-item をそのまま借り、★上との区切りだけを足す（新しい見た目を作らない）。 */
.tp5-blank { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border); }

/* ★v431（2026-09-02・菊池さん決裁「分野別に分けたい」）テンプレートの束の中の分野の見出し。
   ★★置き場所＝★TP1改 のフェンスより後ろ。前方は7本の番人が守っている。
   ★見出しは小さく・控えめに（主役は行そのもので、見出しは仕切りにすぎない）。 */
.v431-genre {
  font-size: 12px; font-weight: 800; color: var(--muted);
  letter-spacing: 1px; margin: 12px 0 6px; padding-left: 2px;
}
.v431-genre:first-child { margin-top: 2px; }

/* ★★v459（2026-09-04・菊池さん決裁「乙を先に」）：見本の一覧を★分野ごとに畳めるようにする。
   ★★置き場所＝★TP1改 のフェンスより後ろ（前に書くと番人が9本落ちる）。
   ★見出しの class は .v431-genre のまま＝上の規則（字の大きさ・色・余白）を★そのまま使う。
     ∴ 見た目は畳めなかったときと同じで、押せるようになっただけ。
   ★ボタンは既定の見た目を持つので、それだけ打ち消す（背景・枠・書体・そろえ・指差し）。
   ★★押す面は 44px 以上（棚卸し #9 の教訓）＝min-height で持たせる。
   ★▼▶ は v147（現場リスト）と同じ記号を使う＝新しい約束ごとを増やさない。 */
.v431-genre.v459-gh {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  width: 100%; min-height: 44px; padding: 10px 8px 10px 2px;
  background: none; border: 0; font-family: inherit; text-align: left; cursor: pointer;
}
/* ★★v478（2026-09-05・菊池さん決裁 Q-CV＝甲）：分野の見出しを★束の見出しと同じ作りにそろえる。
   ★★これまでの姿＝押せるのに、押せないラベルより★小さくて薄かった（逆になっていた）。
     しかも記号は★束が山形を回すのに、分野だけ★文字を差し替えていた＝同じ画面に仕組みが2つ。
   ★★手本は上の束の規則（.stk-head .stk-arw）。★あちらは1バイトも触っていない。
   ★★.v431-genre（押せないラベル）も1バイトも触っていない
     ＝押せないものは小さいままでよい（押せるものだけ大きくする）。
   ★動きの好みは既存の扱いに従う（新しい約束を作らない）。 */
.v431-genre.v459-gh { font-size: 15px; color: var(--text); letter-spacing: 0.5px; }
.v431-genre.v459-gh .v459-garw {
  flex-shrink: 0; font-size: 20px; color: var(--muted); opacity: 1; letter-spacing: 0;
  transform: rotate(90deg); transition: transform 0.15s;
}
.v431-genre.v459-gh.open .v459-garw { transform: rotate(-90deg); }
.v459-gb.v459-closed { display: none; }

/* ★v431（2026-09-02・菊池さん決裁「ホーム3段図の採用」）ホーム最上部の3段の図。
   ★★置き場所＝★TP1改 のフェンスより後ろ。前方は7本の番人が守っている。
   ★アイコンは小さめ・3行で収める・つなぎは点線1文字（飾りなので読み上げからは外す）。
   ★色は既存の変数だけを使う（インラインに白系背景・暗系文字を書かない＝2026-08-18 の教訓）。 */
/* ★★v452（2026-09-04・菊池さん決裁＝案A）：3段図を★横1行にする（5行 → 2行）。
   ★★置き場所は★TP1改 のフェンスより後ろのまま。前に書くと番人が9本落ちる（過去に実際に踏んでいる）。
   ★セレクタ名 .home-drive-sovereign.v431-flow は★残す（v431_test 3-g が見ている）。
   ★横1行＋補足1行にする：札とつなぎを並べ、補足だけ flex-basis:100% で★次の行へ落とす
     ＝新しい入れ物を作らずに2行にできる（HTML の階層を増やさない）。
   ★★はみ出さないための備え：flex-wrap: wrap を付ける＝入りきらない端末では★折り返す。
     ★横に押し出して切れることはない（overflow を作らない）。
   ★幅は★菊池さんが iPhone 15 Pro の実機で収まることを確認済み。CTO も CC も寸法は判断しない。
   ★色は既存の変数だけを使う（inline に白系背景・暗系文字を書かない＝2026-08-18 の教訓）。
   ★.v431-sub の規則は残す（この図では使わなくなったが、消すと逆変換の当て先が動くため）。
   ★★v454：ここに足していた★左寄せの指定を★外した（菊池さん指示「補足行もセンターに」）。
     ★親（.home-drive-sovereign）は★もともと中央そろえ。v452 でここに左寄せを足したせいで
     補足行だけ左に寄っていた。★補足行に中央そろえを新しく書き足すのではなく、
     ★余計なほうを外して元へ戻す形にした＝規則を増やさない。
     ★札とつなぎの行は親の justify-content が中央にしているので、この変更では動かない。 */
/* ★★v458（2026-09-04・菊池さん決裁「一番上の説明は元の文字サイズ固定で良い」）：
   ★★この一番上の説明だけは★文字サイズ設定に追従させない＝固定の大きさに戻す。
     ★v456 で追従させたところ、「大きく」「もっと大きく」で★この説明が育って画面を食っていた。
     ★ここは★毎回読むものではなく「一度読めば分かる案内」なので、大きくする必要がない。
   ★★戻すのは★この3行だけ（札・矢印・補足行）。
     ★記録の名前（#home-site-name）と見出し（.site-banner-label）は★追従したまま
       ＝設定を大きくしたい人がいちばん大きく見たいのはそちらだから（v455 の決裁）。
   ★★補足行は★11px には戻さない。13px のまま（下の理由を参照）。 */
.home-drive-sovereign.v431-flow { display: flex; flex-wrap: wrap; align-items: center; column-gap: 6px; row-gap: 4px; font-size: 12px; }
.v431-flow .v431-step { display: flex; align-items: center; gap: 4px; line-height: 1.35; white-space: nowrap; }
.v431-flow .v431-ic { flex-shrink: 0; font-size: 14px; line-height: 1; width: 16px; text-align: center; }
.v431-flow .v431-sub { opacity: 0.75; font-size: 0.88em; }
/* ★★v454（2026-09-04・菊池さん指示「もっと強調」）：矢印を★大きさを変えずに強調する。
   ★★v453 で足した字の太さの指定は★効いていなかった。実測（製品と同じ書体で計測）：
     ・Chrome     … 幅は 400 でも 800 でも 15.00px で同じ。インク量はむしろ 94.9%（わずかに細い）
     ・WebKit    … インク量 103.4%＝ほぼ無変化（Quick Look で描かせて画素を数えた）
     ∴ この字にはこの書体で★太い形が無い。効かない指定は残さない＝★外す。
   ★代わりに★輪郭を太らせる。実測の効き目（素を 100% として）：
     ・Chrome 0.6px→161% / 0.8px→172%　　・WebKit 0.6px→178% / 0.8px→194%
     ★0.7px を採った（示された幅の真ん中）。★字の送り幅は 15.00px のまま＝並びは動かない。
   ★★WebKit（Safari と同じ土台）で効くことを★実際に描かせて確かめた。
   ★★色は★1つも書かない＝親の色をそのまま継承させる（輪郭も currentColor）。
     ★ブランド色を当てる案は★採らなかった。暗いときの濃淡差が 2.91:1 と★沈むため（詳細は報告書）。
   ★大きさ 15px は★変えない（菊池さんの指示）。
   ★.v431-step / .v431-ic / .v431-sub には触っていない。 */
.v431-flow .v431-tie { line-height: 1; font-size: 15px; -webkit-text-stroke: 0.7px currentColor; }   /* ★v458：15px 固定に戻す（札より一段大きいまま）。★輪郭の指定は v454 のまま残す */
/* ★★v458：ここも固定に戻す。★ただし★大きさは 13px のまま＝★v455 以前には戻さない。
   ★v456 で上げたのは菊池さんの「補足文が小さい」というご指摘を受けたもの。
   ★今回のご指摘は「大きくならない」ではなく★「大きくなりすぎる」＝上げた分は正しかった。
     ∴ 追従だけをやめ、★上げた大きさはそのまま保つ。 */
.v431-flow .v452-note { flex-basis: 100%; margin-top: 2px; font-size: 13px; line-height: 1.45; opacity: 0.7; }
/* ★★v453（菊池さんの実機報告）：補足行の「へ」が1文字だけ次の行に取り残されていた。
   ★★菊池さんの文言は1文字も変えない（実機で確かめて通った文）。
   ★直し方＝「Google ドライブへ」を★分割禁止にする＝ここで切れずに、手前の読点で折り返す。
     写真もメモも、記録ごと・日付ごとに、
     Google ドライブへ
   ★字を小さくして1行に押し込む案は採らない（読みにくくなる）。★1行に収める必要はない。 */
.v431-flow .v453-nb { white-space: nowrap; }

/* ★★v454（2026-09-04・菊池さん指示「選んでいる記録の枠も中央に」）：見出し・名前・ヒントの3行を中央そろえに。
   ★★置き場所＝★TP1改 のフェンスより後ろ。前方は番人が守っている（3-j）。
     ∴ 348-352行の元の規則には★1バイトも触らず、ここに足して後勝ちにする。
   ★このクラスは★全ファイル走査で index.html のホーム1箇所にしか無い＝他画面を巻き込まない。
   ★アイコンは文字の左のまま（親は横並びのまま＝入れ子を増やしていない）。
   ★★v455（2026-09-04・菊池さん決裁＝案1）：縦に積んで★全部中央にする。
     ★v454 で中央にしたのは★文字だけで、アイコンは「文字の左」という位置のままだった
       ＝かたまりごと左に偏って見えていた。ここで縦積みにして、その偏りごと無くす。
     ★間隔は gap で持つ＝★出ていない行（バッジ）が高さを食わない
       （display:none の子は flex の gap を作らない。実測で確認済み）。 */
.site-banner-left { text-align: center; flex-direction: column; align-items: center; gap: 6px; }

/* ★★v467（2026-09-04・菊池さん決裁9）：いまどうなっているかを出す1行。
   ★★置き場所＝★TP1改 のフェンスより後ろ（前に書くと番人が9本落ちる）。
   ★★ボタンに見せない：枠も塗りも付けない＝ふつうの1行に見せる。
     書いてあるのは★状態であって、押すことを迫るものではない（決裁9）。
   ★押せることは分かるように、指差しの形と下線だけ添える（v461 と同じ考え方＝
     注意の絵も赤い色も使わない。異常ではなく「ふつうの用事」）。
   ★色は★既にある変数だけ（inline に色を書かない＝2026-08-18 の教訓）。
     ・していないとき … 添え書きと同じ薄い色
     ・しているとき  … 3段図の 📍 と同じ緑（明るいとき／暗いときは既存の規則が切り替える）
   ★押す面は 44px 以上（棚卸し #9）。★字は 12.5px＝ヒントの行と同じ＝行を太らせすぎない。 */
.v467-gps {
  display: block; width: 100%; min-height: 44px; padding: 12px 8px;
  font-size: 12.5px; font-weight: 600; color: var(--muted);
  cursor: pointer; text-decoration: underline; text-underline-offset: 3px;
}
.v467-gps.on { color: #2f7a4f; }
[data-theme="dark"] .v467-gps.on { color: #7fd1a3; }

/* ★★v493（2026-09-06・菊池さんの実機のご指示 Q-EQ＝2）：★ホームの枠を低くする。
   ★出どころ＝「撮影ボタンに対して、記録先の枠が大きくて撮影がわかりにくい。
     咄嗟に『記録先をえらぶ』を押してしまう」。
   ★★見出しの行の右に★場所の印を置く（★1行ぶん低くなる）。
     ★印は★押せる（v467）が★ボタンには見せない（v476）＝★押す面は 36px にする。
   ★★.v467-gps の3行には★1バイトも触っていない＝ここに足して後勝ちにする（v454 と同じ作法）。
   ★★.site-banner の余白（345行）は★フェンスより前で番人が守っている＝★ここで後勝ちにする。
   ★置き場所は★TP1改 のフェンスより後ろ。 */
.v493-label-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; }
.v493-label-row .v467-gps { display: inline-block; width: auto; min-height: 36px; padding: 6px 8px; margin: 0; text-align: right; }
.site-banner { padding: 14px 16px; }

/* ★★★v495／Q-FK＝甲（2026-09-07・菊池さん決裁）：★撮影を主役の色で塗る。
   ★★v493・v494 の2便は★見送っていた。理由＝★印の輪郭が★塗り地に溶けるため。
     ・印の中の色 対 塗り地＝1.01（まだのほう）／1.68（済んだほう）＝★境が分からない
     ・白い縁 対 塗り地＝2.87（求められた 3.0 未満）
       ★「2px の白は 21:1」という見立ては★白 対 黒 の値で、★塗り地に対しては 2.87 でした。
   ★★★この便で入った理由＝★縁を★濃紺にすると★3つとも 3.0 以上になるため（★CC の実測）：
     ・縁 対 塗り地＝5.95 ／ 縁 対 まだのほう＝5.99 ／ 縁 対 済んだほう＝3.54
   ★★印そのものの色（.done-badge / .pending-badge）は★1バイトも触っていない
     ＝★縁を足すのは★撮影の中に居るときだけ＝★ほかの画面に影響しない。
   ★★上辺の帯（.menu-btn.photo::before）とカメラの絵（.photo-cam-tray）も★触っていない。
   ★★説明文の濃淡差 2.87 は★残る（★菊池さん了承済み）。 */
.home-hero-photo { background: var(--photo-color); border-color: var(--photo-color); }
.home-hero-photo .menu-btn-label, .home-hero-photo .menu-btn-desc { color: #fff; }
.home-hero-photo .done-badge, .home-hero-photo .pending-badge { box-shadow: 0 0 0 2px #1a1a2e; }
[data-theme="dark"] .home-hero-photo { background: var(--photo-color); border-color: var(--photo-color); }
[data-theme="dark"] .home-hero-photo .menu-btn-label, [data-theme="dark"] .home-hero-photo .menu-btn-desc { color: #fff; }

/* ★★v494／RM-179（2026-09-06・菊池さんの実機）：えらぶ画面の★青いカードの上で
   ★GPS の添え書き（v476 の印）が★読めなかった（★薄い灰色の字が★濃い青地に乗っていた）。
   ★★カードの中だけ★白系にする。★最初の画面の同じ印は★触らない（★白い枠の上なので読める）。
   ★字も★押したときの動きも★1バイトも変えていない（v476：押せない印）。 */
#site-current-card .v476-gpsnote { color: rgba(255,255,255,0.88); opacity: 1; }

/* ★★★v501（2026-09-07・CTO が dev の実機で実測）：★登録画面で★まとまりの欄が★必ず消えていた。
   ★★真犯人＝V3-24 期の1組（この上のほう・撮影のための規則）：
     ・連続撮影モードが ON のとき  → 出す（!important）
     ・OFF のとき                  → 消す（!important）
   ★連続撮影モードが ON になるのは★記録先を「選んだ」とき＝★登録している最中は★まだ OFF
     ＝★JS が style.display='block' と書いても★!important に負けて★必ず消えていた
     （実測：style は block／computed は none）。
   ★★∴ ★登録の入れ物の中だけ★別の規則で決める（★class が在るときだけ出す）。
     ★詳細度：#site-screen-new-form #site-building-room-section ＝ id 2つ
       ＞ body:not(…) #site-building-room-section ＝ id 1つ＋class 1つ＋要素 1つ ＝★こちらが勝つ。
   ★★★元の1組は1バイトも触っていない（★消さずに、★入れ物の中だけ上書きする）。
   ★★この節は★もともと登録の入れ物の中にしか無い（★実コードで確かめた）。
     ∴ ★この2行は★この節の見え方を★class 1つで決めることになる
       ＝★種類を選ぶ前や、まとまりを持たない種類では★出ない（★以前は連続撮影 ON だと出ていた）。
   ★★JS の style.display の行は★残してある（★戻し方が1行で済む・他の読み手がいたときの保険）。 */
#site-screen-new-form #site-building-room-section { display: none !important; }
#site-screen-new-form #site-building-room-section.v501-show { display: block !important; }

/* ★★★v502（2026-09-07・菊池さん決裁 Q-GA＝甲）：★「取り込む」「さがす」を★ボタンらしく。
   ★★枠だけ色を付ける＝★塗らない（★撮影が主役であることを面積で保つ）。
   ★★★字（#005599）は★1バイトも触らない。
     ★理由＝いまの字は白地の上で★7.61。★画面の色にすると★4.82 に★下がる
       ＝★読みやすさが後退する。★ご指示は「ボタンだと分かるように」＝★枠だけで足りる。
   ★★元の2行は★1バイトも触らない＝★後ろに足して後勝ちにする（v455 と同じ作法）。
   ★★2行目は★追いパッチと★同じ形（詳細度 0,3,0）にする
     ＝★同じ詳細度で★後ろにあるほうが勝つ。★!important は使わない。
   ★★実測（CC）：明るい画面＝枠 対 カードの地 4.82 ／ 対 画面の地 4.36。
     ★暗い画面＝枠 対 カードの地 2.91 ／ 対 画面の地 3.85
       （★いまの灰枠は★カードの地に対して 1.27＝ほぼ見えない。★2.3倍以上よくなる）。
   ★★背景・角丸・影・大きさ・字は★触らない。★小書きの字も触らない。 */
.sub-btn { border-color: var(--site-color); }
.menu-btn.daily.sub-btn { border-color: var(--site-color); }

/* ★★v455：アイコンと名前を★ひと組の1行にする。
   ★★flex-wrap は必ず要る＝長い名前（例「リリィメゾン / 101号室」）のとき2段に折り返す。
     付けないと横に押し出して枠からはみ出す。★はみ出させない。 */
.v455-name-row { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; max-width: 100%; }
.v455-name-row .site-banner-name { min-width: 0; overflow-wrap: anywhere; }
/* ★★v491（2026-09-06・菊池さんの実機のご指示・案1）：★絵と種類の印を★左のひとかたまりにする。
   ★縦に積んで真ん中でそろえる。★幅は中身なり（縮ませない）＝名前だけが縮む。
   ★印が出ていないときは★絵だけの列になる（★いままでと同じ姿）。 */
.v491-iconset { display: flex; flex-direction: column; align-items: center; gap: 4px; flex: 0 0 auto; }
/* ★★v491（2026-09-06・菊池さん決裁＝丁／RM-140）：★長い名前で★絵が上に飛ぶのを止める。
   ★★v455 が折り返しを入れた狙いは「はみ出させない」こと。★丁は★同じ狙いを★名前の中で果たす：
     ★行そのものは折らない（絵は左に留まる）／★名前は★短いときはそのまま（＝中央に寄る）、
     ★長いときだけ縮んで★名前の中で折り返す（★省略しない＝全部読める）。
   ★★0 1 auto にする理由＝1 1 auto だと★短い名前でも右の欄いっぱいに広がり、★左に寄って見えるため。
   ★★置き場所は★TP1改 のフェンスより後ろ（v455 の2行の直後）。★前方は番人が守っている。
   ★★v455 の2行には1バイトも触っていない＝ここに足して後勝ちにする（v454 と同じ作法）。 */
.v455-name-row { flex-wrap: nowrap; }
.v455-name-row .site-banner-name { flex: 0 1 auto; min-width: 0; overflow-wrap: anywhere; text-align: left; }

/* ★★v455：添え書きを主役より下げる（菊池さん「記録場所をもっと大きくみやすく」）。
   ★★直す前の実測＝見出し 18px/800 に対し、名前は★20px/700。ほとんど同じ強さで張り合っていた。
     （名前が 22px でないのは、起動時に必ず走る文字サイズ設定が !important で上書きするため。§下） */
.site-banner-label { font-size: calc(var(--app-font-size, 14px) - 1px); font-weight: 700; color: var(--muted); letter-spacing: 0.5px; margin-bottom: 0; }   /* ★v456：ふつうは 13px のまま・設定に追従 */
/* ★★v455：アイコンは 40px。★行の高さを 1 にするのが肝。
   ★絵文字は既定の行の高さが★とても大きく、実測でこの行だけが 60px に膨らんでいた。
     1 にすると 40px ちょうどに収まり、名前（28px）と釣り合う。 */
.site-banner-icon { font-size: 40px; line-height: 1; }

/* ★★v455：記録の名前を大きくする（菊池さん決裁「2＝28px」）。
   ★★!important が要る理由＝起動時に必ず走る文字サイズ設定（initDisplaySize → applyDisplaySize）が
     head に <style id="genroku-size-style"> を差し込み、その中で .site-banner-name の大きさを
     ★!important で指定している。★著者の !important は inline にも勝つので、
     ふつうの規則でも inline の指定でも★届かない。実測で確かめた（直す前は 20px で描かれていた）。
   ★★大きさを固定値で焼き込まない：文字サイズ設定が :root に置く --app-btn-size を土台にする。
     ＝★「大きく」「もっと大きく」の設定が★これまでどおり効き続ける（高齢の方には要る機能）。
       ふつう 16px → ★28px ／ 大きく 20px → 32px ／ もっと大きく 24px → 36px
   ★★選んでいないときは★大きくしない（.unset）。中身は「ありません」で、
     これが大きな太字で出ると★何も無いことを画面が叫ぶ。★空のときは静かに。
     ＝これまでと同じ +4px（ふつうで 20px）に据え置く。
   ★どちらも id で指定＝差し込まれる規則（クラス）より強い。順番に頼らない。 */
#home-site-name { font-size: calc(var(--app-btn-size, 16px) + 12px) !important; font-weight: 800 !important; line-height: 1.25; }
#home-site-name.unset { font-size: calc(var(--app-btn-size, 16px) + 4px) !important; font-weight: 600 !important; }

/* ★★v456（菊池さん決裁）：選んでいるときのヒントは空になる。
   ★器は残す（選んでいないときに「選ばなくても撮れます」を出すため）。
   ★空のときは★消す＝縦積みの gap と margin-top のぶん、高さを食わないようにする。
   ★:empty は「子が1つも無い」ときだけ効く＝文が入っていれば必ず出る。 */
#home-site-hint:empty { display: none; }

/* ★v432（2026-09-02・菊池さん指摘）「つかう ›」の名前1問に添える、いま作っているものの1行。
   ★★置き場所＝★TP1改 のフェンスより後ろ。前方は7本の番人が守っている。
   ★形の見え方は既存の .st-shape / .st-sep をそのまま借りる（新しい見た目を作らない）。 */
.v432-from {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 10px; padding: 10px 12px;
  border: 1.5px solid var(--border); border-radius: 10px; background: var(--card);
}
.v432-from .v432-ic { flex-shrink: 0; font-size: 22px; line-height: 1; }
.v432-from .v432-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.v432-from .v432-name { font-size: 15px; font-weight: 700; color: var(--text); }
.v432-from .st-shape { font-size: 12px; color: var(--muted); line-height: 1.5; }
.v432-from .st-shape .st-sep { font-style: normal; margin: 0 5px; opacity: 0.6; }

/* ★逃げ道のボタンに添える1行。★控えめに（主役はボタン）。 */
#room-input-whole-note {
  margin-top: 6px; font-size: 12px; color: var(--muted); line-height: 1.6; text-align: center;
}

/* ★v436（2026-09-02・菊池さん決裁）：PWA案内の枠を「良いこと主導」に反転したときの★注記1行。
   ★7日の事実は★消さない（嘘にしない）。★見出しから外して一番下に小さく置くだけ＝順序と大きさの話。
   ★★置き場所＝★TP1改 のフェンス（:1464）より後ろ。理由＝9本の番人が
     「style.css は H3・TP1改・TP2 の追加分を除けば 85db16a と完全一致」を守っており、
     除去式が『TP1改 のフェンス以降を一括で消す』形になっている。前方に書くと9本が落ちる
     （★実際に踏んだ：最初 .pwa-reason-icon の直後に書いて9本が落ちた）。v431 と同じ作法に乗せる。
   ★色は既存の枠内の系統（#7a5a00 の薄め）。★inline ではなく class＝main1 のダーク一括変換の対象外。 */
.pwa-reason-note { margin-top: 10px; font-size: 11.5px; line-height: 1.6; color: #8a6d1f; opacity: 0.85; }

/* ★★v472（2026-09-05・正本 §5）テンプレート一覧の「🕘 最近使ったテンプレート」。
   ★★置き場所＝★このファイルの末尾（★TP1改のフェンス 1461 より後ろ）。
     ★前に書くと番人が落ちる（v464 で実際に踏んだ）。★新しいクラスを足すだけで、
     既存（.st-item / .stk-head / .tp3-sec）の定義は1バイトも変えていない。
   ★添え書き（どこのものか）は★名前より小さく薄く＝主役は記録先の名前のほう。
   ★色は変数で持つ＝ダークでも JS の一括変換に当たらない（v328 の罠を避ける）。 */
.v472-recent { margin-top: 2px; }
.st-item .st-sub {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--text-secondary, #666);
  opacity: 0.85;
}

/* ★★v476（2026-09-05・決裁9）記録先の枠に出す「場所も残しています」の★押せない印。
   ★★置き場所＝★このファイルの末尾（★TP1改のフェンス 1461 より後ろ）。
     ★前に書くと番人が落ちる（v464 で実際に踏んだ）。★新しいクラスを足すだけ。
   ★★ホームの枠（.v467-gps）は★押せる。★こちらは★書いてあるだけ＝
     cursor も変えない・当たり判定も作らない（押せると思わせない）。
   ★色は変数で持つ＝ダークでも JS の一括変換に当たらない（v328 の罠を避ける）。 */
.v476-gpsnote {
  margin-top: 6px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--text-secondary, #666);
  opacity: 0.9;
}

/* ★★v516（2026-09-08・Q-HH 丙／Q-IH 乙／Q-IL 乙／Q-IK 乙／Q-IA 甲／Q-IP 甲／Q-HV 甲）
   ホームのボタンを厚みのある姿にする。★形だけ。周りの要素は1つも触っていない。
   ★土台（.menu-btn 等）は TP1改 フェンスより前にあるので★書き換えず、ここで上書きする。
   ★戻し方＝この塊を消すだけ（器の class を外す必要もない）。 */

/* 隠す（消さない） */
.v516-off { display: none !important; }

/* 群の見出し */
.home-section-label.v516-glab {
  display: block; font-size: 10.5px; font-weight: 800; color: #8895a6;
  letter-spacing: .9px; margin: 0 0 8px 3px; text-align: left;
}

/* 円のアイコン */
.v516-ring {
  width: 46px; height: 46px; border-radius: 50%;
  background: rgba(255,255,255,.17); border: 1.8px solid rgba(255,255,255,.55);
  display: flex; align-items: center; justify-content: center;
  box-shadow: inset 0 2px 0 rgba(255,255,255,.28); flex: none;
}
.v516-ring.sm { width: 36px; height: 36px; }
.v516-pair { display: flex; align-items: center; gap: 8px; }

/* タイル 118px・絵と名前だけ */
#v516-hero-row .menu-btn, #v516-siblings .menu-btn {
  height: 118px; padding: 0; gap: 9px; justify-content: center;
  border: none; border-radius: 15px; overflow: visible;
}
#v516-hero-row .menu-btn::before, #v516-siblings .menu-btn::before { display: none; }
#v516-hero-row .menu-btn-icon, #v516-siblings .menu-btn-icon { font-size: 0; line-height: 0; }
#v516-hero-row .menu-btn-label { font-size: 16px; font-weight: 800; letter-spacing: .6px; color: #fff; }
#v516-siblings .menu-btn-label { font-size: 14.5px; font-weight: 800; letter-spacing: .6px; color: #fff; }

/* 色と厚み（★それぞれの色を約28%暗くしたもの） */
.home-hero-photo {
  background: var(--photo-color);
  box-shadow: inset 0 2px 0 rgba(255,255,255,.32), 0 6px 0 #BB4E10,
              0 10px 16px -5px rgba(150,60,15,.5);
}
#v516-siblings .menu-btn.audio {
  background: var(--audio-color); border-color: var(--audio-color);
  box-shadow: inset 0 2px 0 rgba(255,255,255,.30), 0 6px 0 #772453,
              0 10px 16px -5px rgba(110,25,75,.5);
}
#v516-siblings .menu-btn.memo {
  background: #009988; border-color: #009988;
  box-shadow: inset 0 2px 0 rgba(255,255,255,.30), 0 6px 0 #006B5F,
              0 10px 16px -5px rgba(0,90,80,.5);
}

/* ★沈む（土台の scale(0.96) を打ち消す） */
#v516-hero-row .menu-btn, #v516-siblings .menu-btn, .sub-row .sub-btn, #home-site-select-btn {
  transition: transform .07s, box-shadow .07s;
}
.home-hero-photo:active {
  transform: translateY(6px);
  box-shadow: inset 0 2px 0 rgba(255,255,255,.26), 0 0 0 #BB4E10, 0 3px 8px rgba(150,60,15,.45);
}
#v516-siblings .menu-btn.audio:active {
  transform: translateY(6px);
  box-shadow: inset 0 2px 0 rgba(255,255,255,.26), 0 0 0 #772453, 0 3px 8px rgba(110,25,75,.45);
}
#v516-siblings .menu-btn.memo:active {
  transform: translateY(6px);
  box-shadow: inset 0 2px 0 rgba(255,255,255,.26), 0 0 0 #006B5F, 0 3px 8px rgba(0,90,80,.45);
}

/* 記録先をえらぶ（56px・青の厚み） */
#home-site-select-btn {
  height: 56px; min-height: 56px; border-radius: 12px; border: none; font-size: 15px; font-weight: 800;
  box-shadow: inset 0 1.5px 0 rgba(255,255,255,.3), 0 5px 0 #005A8E,
              0 8px 12px -4px rgba(0,80,130,.45);
}
#home-site-select-btn:active {
  transform: translateY(5px);
  box-shadow: inset 0 1.5px 0 rgba(255,255,255,.24), 0 0 0 #005A8E, 0 2px 5px rgba(0,80,130,.4);
}

/* 足元の2つ（白地・灰の厚み） */
.sub-row .sub-btn {
  height: 60px; border: none; border-radius: 12px; flex-direction: column; gap: 3px;
  font-size: 12.5px; font-weight: 800; color: #3d4a5c;
  box-shadow: 0 4px 0 #DCE3EC, 0 6px 10px -4px rgba(22,33,58,.15);
}
.sub-row .sub-btn:active {
  transform: translateY(4px);
  box-shadow: 0 0 0 #DCE3EC, 0 2px 5px rgba(22,33,58,.15);
}

/* 読むだけのカードは★沈まない（厚みだけ） */
.site-banner, .home-drive-card {
  box-shadow: 0 4px 0 #DCE3EC, 0 6px 12px -4px rgba(22,33,58,.16);
}

/* ★三角の並び：兄弟が出ているときだけ、写真を半分・中央にする */
#v516-hero-row { display: flex; justify-content: center; margin-bottom: 11px; }
#v516-hero-row .menu-btn { flex: 1; }
.v516-has-siblings #v516-hero-row .menu-btn { flex: none; width: calc(50% - 5.5px); }
#v516-siblings { display: flex; gap: 11px; }
#v516-siblings .menu-btn { flex: 1; }

/* ★動きを減らす設定のときは沈まない（厚みは残る＝見た目は変わらない） */
@media (prefers-reduced-motion: reduce) {
  #v516-hero-row .menu-btn:active, #v516-siblings .menu-btn:active,
  .sub-row .sub-btn:active, #home-site-select-btn:active { transform: none; }
}

/* ★★v516 追補（2026-09-08）：★暗いテーマで確かめたら、足元の2つと読むだけの枠が★破れていた。
   ★足元の字 #3d4a5c は★暗い地（--card = 濃紺）に対して★濃淡差 1.56 ＝読めない。
     ★基準（v516 前）の #005599 も 1.84 で元から読みにくかったが、★この便で★さらに悪くしていた。
   ★線画は上で「器の字の色を継ぐ」形にしたので、★字の色を直せば絵も一緒に直る。
   ★厚み（下の影）も、暗い地の上では★明るい灰では浮いて見える＝暗い側の色に替える。
   ★★明るいテーマの見た目は1ミリも変えていない（この塊は暗いときだけ効く）。 */
[data-theme="dark"] .sub-row .sub-btn { color: var(--text); }
[data-theme="dark"] .sub-row .sub-btn {
  box-shadow: 0 4px 0 #1f1f30, 0 6px 10px -4px rgba(0,0,0,.45);
}
[data-theme="dark"] .sub-row .sub-btn:active {
  box-shadow: 0 0 0 #1f1f30, 0 2px 5px rgba(0,0,0,.45);
}
[data-theme="dark"] .site-banner, [data-theme="dark"] .home-drive-card {
  box-shadow: 0 4px 0 #1f1f30, 0 6px 12px -4px rgba(0,0,0,.45);
}
[data-theme="dark"] .home-section-label.v516-glab { color: #9aa6b8; }

/* ★★v517（2026-09-08・Q-KC＝甲／Q-KA＝甲）
   ① 写真だけのときは「写真 ● 撮影」の横並びにして、絵を大きくする。
      ★実測：全幅 328px に対して円 46px は幅の 14%、三角のとき（159px）は 29%。
        ★幅が2倍違うのに中身が同じ大きさだった＝全幅のときだけ間延びしていた。
        ★横に振ると 40＋18＋88＋18＋40 ＝ 204px（中の幅 296px に余り 92px）。
        ★高さも 88＋上下15px ＝ 118px にちょうど収まる。円は幅の 27%＝三角の 29% とほぼ同じ密度。
   ② 兄弟の行の下に余白が無く、次の見出しが厚みの影に潜っていた（RM-192）。
   ★戻し方＝この塊を消すだけ（器の class を外す必要もない）。 */

/* ① 既定＝写真だけのとき：横並び。★並べ替えは order（DOM の順は不変） */
#v516-hero-row .menu-btn { flex-direction: row; gap: 18px; }
#v516-hero-row .menu-btn-label { order: 1; font-size: 20px; }
#v516-hero-row .menu-btn-icon  { order: 2; }
#v516-hero-row .v516-verb {
  order: 3; font-size: 20px; font-weight: 800; letter-spacing: .6px; color: #fff; line-height: 1;
}
#v516-hero-row .v516-ring { width: 88px; height: 88px; }
#v516-hero-row .v516-ring svg { width: 58px; height: 58px; }

/* ① 兄弟が出たとき：いままでの縦積みに戻す（★三角の姿は決裁どおり） */
.v516-has-siblings #v516-hero-row .menu-btn { flex-direction: column; gap: 9px; }
.v516-has-siblings #v516-hero-row .menu-btn-label { order: 0; font-size: 16px; }
.v516-has-siblings #v516-hero-row .menu-btn-icon  { order: 0; }
.v516-has-siblings #v516-hero-row .v516-verb { display: none; }
.v516-has-siblings #v516-hero-row .v516-ring { width: 46px; height: 46px; }
.v516-has-siblings #v516-hero-row .v516-ring svg { width: 30px; height: 30px; }

/* ② 厚みの影のぶん、次の見出しに余白を空ける（RM-192） */
#v516-hero-row { margin-bottom: 16px; }
#v516-siblings { margin-bottom: 16px; }

/* ★★v518（2026-09-08・Q-KF/KG/KI/KL＝甲）：GPS のまわりをそろえる。
   ★言葉は「GPS記録」。押せるところ（ホーム・撮影画面）は★スイッチ、
     読むだけのところ（記録先の画面・撮ったあと）は★札。
   ★押す面は 44px（いままで 36px ＝指の最小を下回っていた）。
   ★★3つの状態：切（灰・左）／入で取れている（緑・右）／★入だが取れない（灰のまま・右）。
     ★マンション室内では設定「入」でも取れない＝★緑のままだと画面が嘘をつく。

   ★★★描かせて測って分かった2つ（★測る前に書いていたら見逃していた）：
     ① 器の見せ方は★本体が inline で「見せる」と書き込んでいる（既存の1行・触らない決まり）。
        ＝★見た目の台帳から並べ方を変えても★勝てない。
        ★そこで★器の並べ方には触らず、★中の2つを横に並ぶ形（inline-block）にした。
     ② 前のほうにある「.v493-label-row .v467-gps」（詳細度 0,2,0）が押す面を 36px にしていた。
        ★フェンスより前は触らないので、★同じ詳細度で後ろから上書きする。
   ★戻し方＝この塊を消し、器の class と onclick を外すだけ。 */

/* 押せる：スイッチ（★器の見せ方には触らない。中の2つを横に並べる） */
.v467-gps, .v518-sw {
  min-height: 44px; padding: 8.5px 6px; line-height: 27px;
  cursor: pointer; user-select: none; text-decoration: none;
}
.v493-label-row .v467-gps {
  min-height: 44px; padding: 8.5px 6px; line-height: 27px; width: auto; margin: 0;
  text-align: right; text-decoration: none;
}
.v518-t {
  display: inline-block; vertical-align: middle; line-height: 1.3;
  font-size: 12.5px; font-weight: 700; color: var(--muted);
}
.on > .v518-t { color: #2f7a4f; }
.miss > .v518-t { color: var(--muted); }          /* ★取れないときは緑にしない */
.v518-knobbox {
  display: inline-block; vertical-align: middle; margin-left: 8px;
  width: 46px; height: 27px; border-radius: 999px; background: #cfd8e3; position: relative;
  box-shadow: inset 0 2px 3px rgba(22,33,58,.22); transition: background .15s;
}
.v518-knob {
  position: absolute; top: 2.5px; left: 2.5px; width: 22px; height: 22px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 3px rgba(22,33,58,.4); transition: left .15s;
}
.on > .v518-knobbox { background: #2f7a4f; }
.on > .v518-knobbox .v518-knob { left: 21.5px; }
/* ★入だが取れない＝つまみは右のまま、色は灰（＝設定は入・いま効いていない） */
.on.miss > .v518-knobbox { background: #b9c2cd; }

/* 読むだけ：札 */
.v518-ro { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; color: #2f7a4f; }
.v518-ro .v518-v { font-size: 11px; font-weight: 800; background: #eef6f1; border: 1px solid #b9d9c6; border-radius: 6px; padding: 1px 7px; }
.v518-ro.off, .v518-ro.miss { color: var(--muted); }
.v518-ro.off .v518-v, .v518-ro.miss .v518-v { background: #f1f3f6; border-color: #dbe1e8; }
.v518-shot { margin-top: 8px; }

/* ★暗いテーマ（★測ったら緑が沈んでいた：スイッチ 2.68／札 3.55。★明るいほうは1ミリも変えない） */
[data-theme="dark"] .on > .v518-t { color: #7fd1a3; }
[data-theme="dark"] .v518-ro { color: #7fd1a3; }
[data-theme="dark"] .v518-ro .v518-v { background: #1e3a2c; border-color: #2f6a4c; color: #cfeadd; }
[data-theme="dark"] .v518-ro.off, [data-theme="dark"] .v518-ro.miss { color: var(--text2); }
[data-theme="dark"] .v518-ro.off .v518-v, [data-theme="dark"] .v518-ro.miss .v518-v {
  background: #2a2a3e; border-color: #3a3a52; color: var(--text2);
}
[data-theme="dark"] .v518-knobbox { background: #3a3a52; }
[data-theme="dark"] .on > .v518-knobbox { background: #2f7a4f; }
[data-theme="dark"] .on.miss > .v518-knobbox { background: #4a5260; }

/* 動きを減らす設定のときは、つまみを滑らせない */
@media (prefers-reduced-motion: reduce) {
  .v518-knobbox, .v518-knob { transition: none; }
}

/* ★★v519（2026-09-08・Q-KD＝乙／RM-194／RM-195／RM-197）
   ① 円を 96px にし、絵の枠を 80×48 にする。
      ★実測：絵の空白を捨てたことで、同じ枠でもスマホが大きくなる。
        現状 50×28px → ★73×41px（面積で約2.1倍）。
      ★高さ 118px に対して円 96px ＝上下 11px ずつ残る。
   ② 特大のとき、兄弟タイルの中身が 121px ＞ 枠 118px ではみ出していた（RM-195）。
      ★原因＝v516 で padding を 0 にしたため、字の逃げ場が無くなった。
      ★左右の余白を戻し、高さは★下限として守る（超えるときだけ伸びる）。
   ③ 緑の札と青い字を横に並べていたので、iPhone の幅で両方とも2行になっていた（RM-197）。
   ★戻し方＝この塊を消すだけ。 */

/* ① 写真だけのとき：円 96px・絵 80×48 */
#v516-hero-row .v516-ring { width: 96px; height: 96px; }
#v516-hero-row .v516-ring svg { width: 80px; height: 48px; }

/* ① 兄弟が出たとき：円は 46px のまま・絵だけ空白ぶん大きく */
.v516-has-siblings #v516-hero-row .v516-ring { width: 46px; height: 46px; }
.v516-has-siblings #v516-hero-row .v516-ring svg { width: 38px; height: 23px; }

/* ① 兄弟の対の絵（スマホ側だけ・書類とマイクは触らない） */
#v516-siblings .v516-pair .v516-ring:last-child svg { width: 29px; height: 17px; }

/* ② 特大でもはみ出さない（RM-195） */
#v516-hero-row .menu-btn, #v516-siblings .menu-btn {
  padding: 0 8px; height: auto; min-height: 118px;
}

/* ③ 狭いときは縦に積む＝どちらも1行で読める（RM-197）
   ★inline の指定（display:flex）には触らず、後ろから足すだけ。
   ★字を短くする案は採らない＝言葉は決裁物なので、並べ方だけで直す。 */
#photo-saved-badge-row { flex-wrap: wrap; gap: 6px 10px; justify-content: flex-start; }
#photo-saved-result { flex: 1 1 100%; }

/* ★★v521（2026-09-08・Q-KV＝甲）：見た目を選べるようにする。
   ★★選ぶ仕組みは「文字サイズ」と同じ作法（控え ＋ 起動で読む ＋ 設定の3ボタン）。
   ★★名前は data-skin。★data-theme（暗いテーマ）とは★別物なので衝突させない
     ＝★暗いテーマ × 3つの見た目 の6通りが成り立つ。
   ★★この便で替えるのは★タイル・カード・記録先を変える・足元だけ。
     ヘッダー（JS が !important で作る）と画面の地（フェンスより前）は★触らない。
   ★戻し方＝この塊を消し、器から data-skin を外すだけ。 */

/* ===== メタル ===== */
[data-skin="metal"] #v516-hero-row .menu-btn {
  background: linear-gradient(180deg,#F5C518,#E0A800);
  box-shadow: inset 0 2px 0 rgba(255,255,255,.45), 0 6px 0 #8A6600, 0 10px 16px -5px rgba(120,90,0,.45);
  border-radius: 10px;
}
[data-skin="metal"] #v516-hero-row .menu-btn:active {
  box-shadow: inset 0 2px 0 rgba(255,255,255,.35), 0 0 0 #8A6600, 0 3px 8px rgba(120,90,0,.4);
}
[data-skin="metal"] #v516-hero-row .menu-btn-label,
[data-skin="metal"] #v516-hero-row .v516-verb { color: #1B1B1B; letter-spacing: 1px; }
[data-skin="metal"] #v516-hero-row .v516-ring { background: rgba(0,0,0,.14); border-color: rgba(0,0,0,.35); }

[data-skin="metal"] #v516-siblings .menu-btn.memo {
  background: linear-gradient(180deg,#5A6672,#454F59); box-shadow: 0 6px 0 #232A31; border-radius: 10px;
}
[data-skin="metal"] #v516-siblings .menu-btn.audio {
  background: linear-gradient(180deg,#6E5A72,#544459); box-shadow: 0 6px 0 #2B222E; border-radius: 10px;
}
[data-skin="metal"] #v516-siblings .menu-btn-label { color: #F2F5F8; }

[data-skin="metal"] .site-banner {
  background: linear-gradient(180deg,#39414B,#2E353E); border-color: #4A5361;
  box-shadow: 0 4px 0 #14181D; border-radius: 10px;
}
[data-skin="metal"] .site-banner .site-banner-label,
[data-skin="metal"] .site-banner .v518-t { color: #9AA6B4; }
[data-skin="metal"] .site-banner-name { color: #F2F5F8; }
[data-skin="metal"] #home-site-select-btn {
  background: linear-gradient(180deg,#4C5764,#3A434E); border: 1px solid #5A6674;
  color: #EDF1F5; box-shadow: 0 5px 0 #171B21;
}
[data-skin="metal"] .sub-row .sub-btn {
  background: linear-gradient(180deg,#3A424C,#2E353E); border: 1px solid #4A5361;
  color: #DCE3EA; box-shadow: 0 4px 0 #14181D; border-radius: 9px;
}
[data-skin="metal"] .home-section-label.v516-glab { color: #8B98A6; }

/* ===== ポップ ===== */
[data-skin="pop"] #v516-hero-row .menu-btn {
  background: #FF6B5A; border: 3px solid #1A1A1A; border-radius: 22px;
  box-shadow: 0 6px 0 #1A1A1A;
}
[data-skin="pop"] #v516-hero-row .menu-btn:active { box-shadow: 0 0 0 #1A1A1A; }
[data-skin="pop"] #v516-hero-row .menu-btn-label,
[data-skin="pop"] #v516-hero-row .v516-verb { color: #1A1A1A; }
[data-skin="pop"] #v516-hero-row .v516-ring { background: #FFE9A8; border: 3px solid #1A1A1A; }

[data-skin="pop"] #v516-siblings .menu-btn.memo {
  background: #37B6C4; border: 3px solid #1A1A1A; border-radius: 20px; box-shadow: 0 6px 0 #1A1A1A;
}
[data-skin="pop"] #v516-siblings .menu-btn.audio {
  background: #FFB4D2; border: 3px solid #1A1A1A; border-radius: 20px; box-shadow: 0 6px 0 #1A1A1A;
}
[data-skin="pop"] #v516-siblings .menu-btn-label { color: #1A1A1A; }
[data-skin="pop"] #v516-siblings .v516-ring { background: #FFF4DE; border: 3px solid #1A1A1A; }

[data-skin="pop"] .site-banner {
  background: #fff; border: 3px solid #1A1A1A; border-radius: 20px; box-shadow: 0 5px 0 #1A1A1A;
}
[data-skin="pop"] #home-site-select-btn {
  background: #37B6C4; border: 3px solid #1A1A1A; border-radius: 16px;
  color: #fff; box-shadow: 0 5px 0 #1A1A1A;
}
[data-skin="pop"] .sub-row .sub-btn {
  background: #fff; border: 3px solid #1A1A1A; border-radius: 16px;
  color: #1A1A1A; box-shadow: 0 4px 0 #1A1A1A;
}
[data-skin="pop"] .home-section-label.v516-glab {
  color: #1A1A1A; background: #FFE9A8; border: 2px solid #1A1A1A;
  border-radius: 999px; padding: 2px 10px; display: inline-block;
}

/* ★★v522（2026-09-08・v521 追補）：見た目を選んだとき、記録先の枠も変わるようにする。
   ★★★なぜ効いていなかったか（★描かせて測らないと見えない型）：
     ① 記録先の名前は、★選んでいるときだけ JS が inline で色を書く
        （updateSiteDisplay の中。選んでいないときは空に戻す）。
        ★CTO は「選んでいない」姿でしか確かめておらず、★inline に負けることを見落とした。
     ② 「記録先を変える」は器の inline に色と縁を持っている。★同じく CSS が負ける。
   ★どちらも★同じ選び方のまま★強く書くだけで直る（器の inline は1バイトも触らない）。
   ★戻し方＝この塊を消すだけ。 */

/* メタル */
[data-skin="metal"] .site-banner-name { color: #F2F5F8 !important; }
[data-skin="metal"] #home-site-path,
[data-skin="metal"] #home-site-hint { color: #9AA6B4 !important; }
[data-skin="metal"] #home-site-select-btn {
  background: linear-gradient(180deg,#4C5764,#3A434E) !important;
  border: 1px solid #5A6674 !important;
  color: #EDF1F5 !important;
}

/* ポップ */
[data-skin="pop"] .site-banner-name { color: #1A1A1A !important; }
[data-skin="pop"] #home-site-path,
[data-skin="pop"] #home-site-hint { color: #5C6470 !important; }
[data-skin="pop"] #home-site-select-btn {
  background: #37B6C4 !important;
  border: 3px solid #1A1A1A !important;
  color: #fff !important;
}

/* ★★v524（2026-09-09）：撮影タイルの崩れ（RM-201）と誤読を断つ。
   ★決裁＝Q-LK 乙（語を1つに）／Q-NF 甲（円を左・字を右）／Q-LR 甲（すき間12・1行固定）／Q-NH 甲（字が大きいほど円を小さく）。
   ★★置き場所＝TP1改のフェンスより後ろ＝既存の8本の番人に触れない（v493 と同じ作法）。
   ★戻し方＝このかたまりを消すだけ。index.html の字を「写真」に戻せば完全に元へ。 */

/* (a) 「撮影」を隠す＝器は残す（戻せる） */
#v516-hero-row .v516-verb { display: none; }

/* (b) 円を左・字を右（Q-NF 甲）。DOM の順は1バイトも変えない＝order だけ入れ替える */
#v516-hero-row .menu-btn-icon  { order: 1; }
#v516-hero-row .menu-btn-label { order: 2; }

/* (c) すき間を詰め、1行に固定する（Q-LR 甲）
   ★flex:0 0 auto ＝縮まない・伸びない。★nowrap ＝1文字ずつ折り返さない（B10 と同じ病を作らない） */
#v516-hero-row .menu-btn { gap: 12px; }
#v516-hero-row .menu-btn-label,
#v516-hero-row .home-cap-badges { flex: 0 0 auto; white-space: nowrap; }

/* (d) 字が大きいほど円を小さくする（Q-NH 甲）
   ★標準は 96px のまま＝菊池さんが大きくされた絵を、いちばん多く使われる大きさで保つ。
   ★★「大」も 84px にする＝実測で 96px のままだと 3px しか余らず、誤差の範囲だったため（菊池さん承認・2026-09-09）。
   ★svg は円と同じ比で縮める（96:80x48 ＝ 5:4.17x2.5）。 */
/* ★★★描かせて測って分かったこと（★指示書 (3) の見立てと違った）：
     ★法人（縦積み）の円は .v516-has-siblings … .v516-ring が持っているが、
     ★その選択子は「id 1 ＋ class 2」で、下の「id 1 ＋ 印 1 ＋ class 1」と★同じ強さ。
     ★∴ 後ろに書いたこちらが勝ってしまい、★法人のタイルが 151px → 195px に膨らんだ（実測）。
     ★★だから★横並びのときだけに限る（:not で法人を外す）＝法人は1バイトも変わらない。
     ★数字を書き写して上書きし直す形は採らない（円の大きさが2か所に散るため）。 */
[data-size="large"]  #screen-home:not(.v516-has-siblings) #v516-hero-row .v516-ring     { width: 84px; height: 84px; }
[data-size="large"]  #screen-home:not(.v516-has-siblings) #v516-hero-row .v516-ring svg { width: 70px; height: 42px; }
[data-size="xlarge"] #screen-home:not(.v516-has-siblings) #v516-hero-row .v516-ring     { width: 72px; height: 72px; }
[data-size="xlarge"] #screen-home:not(.v516-has-siblings) #v516-hero-row .v516-ring svg { width: 60px; height: 36px; }

/* ★★v525（2026-09-09・Q-NK＝甲／指示書は v524a）：★どの端末幅でも収める。
   ★★v524 の追補＝指示書の「内寸 326px」が誤りだった（タイル自身の余白8px を引いていない・
     しかも端末幅で変わる：360→280／375→295／390→310／393→313／430→350）。
     ★円をさらに小さくする案は★360px 端末で成立しない（特大の円が上限30px になる）＝採らない。
   ★★入らないときだけ、札（部屋別撮影・黒板）を次の行へ落とす。
     ★折り返しは「入らないときだけ」効く＝札が0件の人・幅に余裕のある端末は★いままでどおり1行。
   ★★高さは「固定」から「下限」に変える＝札が出ないときは 118px のまま。
     ★上の高さの行は★1バイトも触らない（兄弟のタイルを巻き込まないため）。
   ★★法人（縦積み）は :not で外す＝v524 で踏んだ罠（同じ強さの選び方に後ろから勝つ）を繰り返さない。
   ★戻し方＝このかたまりを消すだけ。 */
#screen-home:not(.v516-has-siblings) #v516-hero-row .menu-btn {
  flex-wrap: wrap;
  height: auto;
  min-height: 118px;
  align-content: center;
  row-gap: 6px;
}

/* ★★★描かせて測って分かったこと（★これが無いと、この便の目的が達成できない）：
     ★札（部屋別撮影・黒板）の器は★並べ替えの指定を1つも持っていなかった＝★既定の 0。
     ★円は 1・字は 2 なので、★札がいちばん左に来ていた（実測：札@225 → 円@330 → 字@438）。
     ★★このまま折り返すと、下の行に落ちるのは★いちばん後ろの「写真をとる」＝★いちばん大事な字が落ちる。
     ★★∴ 札を★最後に置く。これで
       ① 並びが v524 の指示書の図（円 → 字 → 札）と一致し、
       ② 入らないときに下の行へ落ちるのが★札になる（v524a の狙いどおり）。
     ★法人（縦積み）は :not で外してあるので1バイトも変わらない。 */
#screen-home:not(.v516-has-siblings) #v516-hero-row .home-cap-badges { order: 3; }

/* ★v538（2026-09-10）：⋯ の中身は★下の段に落とす。
   ★flex-wrap が無いと flex-basis:100% は折り返さない（撮影タイルの崩れと同じ形）。
   ★閉じているときは子が3つのまま＝いままでと同じ1行。開いたときだけ折り返す。 */
.site-list-item { flex-wrap: wrap; }

/* ★v539（Q-PB＝丙）：この札は★上のカードのもの。
   ★上を詰めて下を空け、左に段差を付ける＝字の大きさを変えても分かる。
   ★この名札は木を開く札にだけ付く。一覧全体の締め（ほかに N 件を見る／非表示にした…を表示）には付かない。 */
.v539-in-parent { margin-top: 2px; margin-bottom: 18px; margin-left: 20px; width: calc(100% - 20px); }

/* ★UI-1（2026-09-10・Q-PH＝甲）：★手袋の指と老眼に合わせて、押しどころと字を上げる。
   ★既存の指定は1バイトも触らず、★末尾に足して上書きする（後ろが勝つ＝強い印は使わない）。
   ★実測（390px）：60→68px・12.5→15px。★44px の下限を満たす。 */
.sub-row .sub-btn { height: 68px; font-size: 15px; }
.sub-btn-lite { font-size: 11px; }
.home-section-label.v516-glab { font-size: 13px; }

/* ★ROOM-1（2026-09-10・Q-PO＝甲／Q-PP＝甲）：部屋を3列で出す。
   ★1つの押しどころは 48px 以上・字は 16px（現場は手袋の指と老眼）。
   ★数字とハイフン以外が入る名前・6字を超える名前は、1行で全幅に落とす
     （3列に押し込むと字が潰れて読めなくなるため）。
   ★束ごとの見出しは小さく（押しどころではないので、押せるように見せない）。 */
.room1-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 10px; }
.room1-cell { min-height: 48px; padding: 12px 6px; border: 1.5px solid var(--border); border-radius: 10px;
              background: var(--card); color: var(--text); font-size: 16px; font-weight: 700;
              font-family: inherit; cursor: pointer; text-align: center;
              overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.room1-wide { grid-column: 1 / -1; text-align: left; padding-left: 14px; }
.room1-more { display: none; }
.room1-head { font-size: 13px; font-weight: 800; color: var(--muted, #6b7a89); margin: 12px 2px 6px; }

/* ★★★ v550（2026-09-10・Q-OW 甲＝案D／Q-OW-b 甲／Q-OW-c 甲／①／Q-QA＝RM-232）
   ★撮る前の画面を建て直す＋横持ちの撮影後が切れるのを直す。
   ★★ここは★末尾への追記だけ。★TP1改のフェンス（1461行）より前は1バイトも触っていない。 */

/* ── ① 消さずに出さないだけ（外せば戻る） */
.v550-off { display: none !important; }

/* ── ② 下の固定の帯と、右下の丸は出さない（★帯の中のファイルを選ぶ隠し口は残っている） */
#photo-fixed-footer { display: none !important; }
#photo-footer-spacer { height: 0 !important; }
body.continuous-capture-mode #photo-fab-change-room,
body.hierarchy-capture #photo-fab-change-room { display: none !important; }

/* ── ③ 撮り方の枠 */
#v550-shoot-box {
  background: var(--card, #fff); border: 1.5px solid var(--border, #d8e2ea);
  border-radius: 16px; padding: 14px; margin-bottom: 12px;
}
#v550-main-btn {
  width: 100%; min-height: 72px; padding: 22px 12px; border: none; border-radius: 16px;
  background: var(--site-color, #0077BB); color: #fff;
  font-size: 22px; font-weight: 800; font-family: inherit; cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 12px;
}
#v550-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.v550-chip {
  flex: 1 1 46%; min-height: 48px; padding: 12px 10px;
  border: 1.5px solid var(--border, #d8e2ea); border-radius: 12px;
  background: var(--card, #fff); color: var(--text, #1a1a2e);
  font-size: 15px; font-weight: 700; font-family: inherit; cursor: pointer;
}
/* ★段のある保存先のときだけ／能力の印が立っているときだけ（★無条件に出さない） */
.v550-chip-hier { display: none; }
/* ★★v551（2026-09-10・CTO 裁定）：★大規模修繕モードでも出す。
   ★★v550 の穴＝右下の丸は★両方のモードで消したのに、
     ★置き換わる札と横並びは★段のあるモードのときだけ出る作りだった。
   ∴ ★建築の現場（大規模修繕モードで動く）では★部屋を変える道が1つも無くなっていた。
   ★上の帯は押せない字だけ（押しどころ0件・実測）＝代わりにならない。 */
body.hierarchy-capture .v550-chip-hier,
body.continuous-capture-mode .v550-chip-hier { display: block; }
.v550-chip-bb { display: none; }
.v550-chip-bb[data-bb-enabled="1"] { display: block; }

/* ── ④ 保存先が選ばれていないとき（責めない字＋選びに行く口） */
#photo-current-site-name.v550-soft { font-size: 17px !important; font-weight: 600 !important; color: var(--muted, #6b7a89) !important; }
#v550-nosite-btn {
  display: none; width: 100%; min-height: 48px; padding: 12px;
  border: 1.5px solid var(--site-color, #0077BB); border-radius: 12px;
  background: var(--card, #fff); color: var(--site-color, #0077BB);
  font-size: 16px; font-weight: 700; font-family: inherit; cursor: pointer; margin-bottom: 10px;
}

/* ── ⑤ 取り込みで着いたとき（★印があるときだけ） */
#v550-import-band { display: none; }
.v550-say-import { display: none; }
#screen-photo[data-v550-imp="1"] #v550-import-band {
  display: block; background: #EE7733; color: #fff; border-radius: 12px;
  padding: 12px 14px; margin-bottom: 12px; font-size: 16px; font-weight: 800; text-align: center;
}
#screen-photo[data-v550-imp="1"] .v550-say-shoot { display: none; }
#screen-photo[data-v550-imp="1"] .v550-say-import { display: inline; }
/* ★★RM-238 乙（v557）で、この札は「入れる道」では隠れている＝★この決まりは当たらない。
   ★RM-238 を丙（いまのまま）に戻したら生き返るので、★消していない（CTO 裁定 2026-09-11）。
   ★片づけは凍結明け（駆動リスト §2-8）。 */
#screen-photo[data-v550-imp="1"] .v550-chip-imp {
  border: 2.5px solid #EE7733; background: #fff6ef; color: #b4541a;
  box-shadow: 0 0 0 3px rgba(238,119,51,0.18);
}

/* ── ⑥ 撮った後：つづけて撮るの隣に部屋を変える（★戸建は今までどおり全幅） */
#v550-after-row { display: block; }
.v550-after-room { display: none; }
body.hierarchy-capture #v550-after-row,
body.continuous-capture-mode #v550-after-row { display: flex; gap: 8px; }
/* ★★横に2つ並ぶぶん、1つあたりの幅が半分になる。★字が折り返して行が高くなると
   ★その下の「撮影を終える」が画面の外へ出るので、★1行で収まる大きさにそろえる。
   ★★押しどころは 48px を下回らない。★実測で確かめた（v550 §6）。 */
body.hierarchy-capture #v550-after-row > .btn,
body.continuous-capture-mode #v550-after-row > .btn {
  flex: 1; margin-bottom: 0 !important; min-height: 48px;
  padding: 14px 6px !important; font-size: 15px !important; white-space: nowrap;
}
body.hierarchy-capture .v550-after-room,
body.continuous-capture-mode .v550-after-room {
  display: block; border-radius: 14px; cursor: pointer; font-weight: 800;
}

/* ── ⑦ ★横持ちの撮影後が切れる（Q-QA／RM-232）
   ★実測（v549・2行を入れた台）：「📷 撮影」の下端が★端末の高さに関わらず 409 で止まり、
     ★390／375／360 の3つで画面の外に出ていた（★430 だけ収まっていた）。
   ★★右の列だけを詰める。★押しどころは 48px を下回らない。
   ★1461行より前（元の横持ちの決まり）は1バイトも触っていない＝ここで上書きする。 */
@media (orientation: landscape) and (max-height: 500px) {
  /* ★撮り方の枠は、撮った後には出ない（見張り役が閉じるが、横持ちでも二重に閉じておく） */
  #photo-saved-box[style*="block"] ~ #v550-shoot-box { display: none !important; }
  #photo-saved-box { row-gap: 6px !important; }
  /* ★「合計 N枚」と「📍 場所を残しました」を1行に並べる（★折り返さない） */
  #photo-saved-badge-row { flex-wrap: nowrap !important; gap: 6px !important; }
  #photo-saved-result { font-size: 12px !important; white-space: nowrap; }
  #photo-saved-gps    { font-size: 12px !important; white-space: nowrap; }
  /* ★2つの大きなボタンを詰める（★48px は下回らない） */
  #photo-saved-keika-land    { padding: 12px !important; font-size: 16px !important; min-height: 48px; }
  #photo-saved-continue-land { padding: 14px !important; font-size: 17px !important; min-height: 48px; }
}

/* ★★★ v553（2026-09-10・RM-236・CTO 裁定）
   ★横持ちの撮る前で、撮り方が二重に見えていた（「比較撮影」2つ・「撮影」2つ）。
   ★元＝上の横持ちの決まりが「必ず出す」形で、器の指定より強い。★その決まりは1バイトも触っていない。
   ★∴ ★閉じているときだけ付く印を見て、ここで隠す（★開いたら印が外れる＝いままでどおり出る）。
   ★★ここは末尾への追記だけ。★TP1改のフェンス（1461行）より前は1バイトも触っていない。 */
#photo-saved-box[data-v553-shut="1"] { display: none !important; }

/* ★★★ v557（2026-09-11・RM-243＋RM-238 乙・菊池さん決裁）
   ★入れる道であることを、着くまでの画面でも言う。★字は撮る前の画面の帯と同じ。
   ★出す・出さないは★印（撮る前の画面と同じ作法）で決める。
   ★★ここは末尾への追記だけ。★TP1改のフェンス（1461行）より前は1バイトも触っていない。 */
#v557-import-band { display: none; }
#screen-room-input[data-v550-imp="1"] #v557-import-band {
  display: block; background: #EE7733; color: #fff; border-radius: 12px;
  padding: 12px 14px; margin-bottom: 12px; font-size: 16px; font-weight: 800; text-align: center;
}
/* ★★RM-238（乙・2026-09-10 確認）：★入れる道のときだけ、端末から入れる札を隠す。
   ★★ふつうに撮るときは★残す＝その画面から端末の写真を入れる★唯一の入口だから。
   ★器も押しどころも1バイトも消していない（★この決まりを外せば戻る）。 */
#screen-photo[data-v550-imp="1"] .v550-chip-imp { display: none !important; }

/* ★★★ v558（2026-09-11・RM-245・CTO 検分で発見）
   ★取り込みで最初に出るのは★棟をえらぶ画面だった（v557 は部屋の画面だけを直していた）。
   ★見た目の決まりは★撮る前・部屋 と1バイト同じにする（3つ目）。
   ★★器が3つになったので、1つに束ねる片づけは RM-246 として凍結明けに登録済み。 */
#v558-import-band { display: none; }
#screen-wing-select[data-v550-imp="1"] #v558-import-band {
  display: block; background: #EE7733; color: #fff; border-radius: 12px;
  padding: 12px 14px; margin-bottom: 12px; font-size: 16px; font-weight: 800; text-align: center;
}

/* ★v590（2026-09-14）：保存先を作るあいだは一覧を隠す。★器は1つも動かさない。
   ★1461行の TP1改フェンスより後ろ（★このファイルの末尾）に追記している。
   ★#site-search-wrap は #site-quick-panel の中の★id の無かった器（名前でさがす）に id を足したもの。 */
#screen-site.v590-creating #site-current-card,
#screen-site.v590-creating #site-recent-list-wrap,
#screen-site.v590-creating #site-search-wrap,
#screen-site.v590-creating #btn-show-all-wrap,
#screen-site.v590-creating #site-box,
#screen-site.v590-creating #gps-info,
#screen-site.v590-creating #site-list-area,
#screen-site.v590-creating #new-site-form,
#screen-site.v590-creating #status-gps { display: none !important; }

/* ★v591（2026-09-14）：保存先をえらぶ画面を「一覧が先」に寄せる。★器（HTML）の並びは1つも動かさない。
   ★1461行の TP1改フェンスより後ろ（★このファイルの末尾・v590 の規則の下）に追記している。
   ★カードの出す・隠すは JS が style の display で決めている＝★出ているときだけ横並びにする（:not で見分ける）。
     ★詳細度は v590 の「作るあいだ隠す」規則より★低い＝作るあいだは今までどおり隠れる。 */
#site-current-card:not([style*="display:none"]):not([style*="display: none"]) {
  display: flex !important; flex-wrap: wrap; align-items: center; gap: 8px;
}
#site-current-label { display: none !important; }
#site-current-row { flex: 1 1 auto; min-width: 0; order: 0; }
#site-current-sub, #site-current-gps { flex-basis: 100%; order: 2; }
#site-new-top-btn { display: none !important; }
#site-current-unselect { display: none !important; }
/* ★「📍 つづけて比較撮影」を押せる見た目にする（★色は画面の変数から取る）。 */
#v589-continue-ref {
  border: 1px solid var(--border); border-radius: 10px; text-align: center; cursor: pointer;
  min-height: 44px; margin-top: 9px; padding: 12px 10px; box-sizing: border-box;
  background: var(--card); color: var(--text); font-size: 15px; font-weight: 700;
}

/* ★v592（2026-09-14）：保存先をえらぶ画面から「撮る」を外す／比較撮影の直後を2本にする。
   ★1461行の TP1改フェンスより後ろ（★このファイルの末尾）に追記。★横持ちの @media の中には書いていない。
   ★v591 の「撮るボタンを名前の右に置く」規則は、ボタンを隠すので意味を失った＝消した（カードの余白は変えていない）。 */
#site-current-shoot { display: none !important; }
.v592-here { font-size: 12px; font-weight: 700; color: var(--site-color); margin-left: 4px; }
#photo-finish.v592-ref-mode #v550-after-row { display: none !important; }
#photo-finish.v592-ref-mode #v589-continue-ref {
  background: var(--photo-color); border-color: var(--photo-color); color: white;
  font-weight: 800; font-size: 19px; border-radius: 14px; min-height: 56px; cursor: pointer;
}

/* ★v593（2026-09-14）：作る前に「あとから直せる」と言う1行／横持ちでも出口を2本にする。
   ★1461行の TP1改フェンスより後ろ（★このファイルの末尾）に追記。★縦持ちの規則は1バイトも変えていない。
   ★名前の下の1行は、部屋の画面の小さい注記（#room-input-whole-note）と同じ字の大きさ・色（★中央そろえだけ付けない）。 */
#v593-name-note { margin-top: 6px; font-size: 12px; color: var(--muted); line-height: 1.6; }
/* ★横持ちの2本（📍 比較撮影・📷 撮影）は出口の枠の外にある＝外の箱に付けた印で隠す。★印が無いときの割り付けは1バイトも変えない（組み替えない）。 */
@media (orientation: landscape) and (max-height: 500px) {
  #photo-saved-box.v592-ref-mode #photo-saved-keika-land,
  #photo-saved-box.v592-ref-mode #photo-saved-continue-land { display: none !important; }
}

/* ★v595 §2（2026-09-14・菊池さん決裁＝甲）：保存先をえらぶ画面の「いまの保存先」の帯を1行に。
   ★帯の中の押しどころは v592 で全部隠してあり、65px の飾りだけが残っていた。
   ★消さずに縮める理由＝「いまどこに保存されるか」は消さない（▶ いま ここ と二重で分かる）。
   ★住所の行も隠す（帯の地色を外すと白地に白字で残り、場所だけ取るため＝CC 指摘）。
   ★index.html は触らない。★v592 の追記を上書きする。 */
#site-current-card:not([style*="display:none"]):not([style*="display: none"]) {
  padding: 6px 12px !important;
  margin-bottom: 8px !important;
  border-radius: 8px !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
#site-current-card #site-current-name {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--muted, #888) !important;
  line-height: 1.5 !important;
}
#site-current-card #site-current-name::before {
  content: 'いまは ';
  font-weight: 400;
}
#site-current-card #site-current-sub { display: none !important; }
/* ★v595 §4：チップ列の「＋ 新しくつくる ›」。★絞り込みの2つとは別物だと分かるよう、
   ★輪郭＋薄い地色にする（塗りつぶすと一覧より強くなり、主役が入れ替わるため）。 */
.v595-make {
  background: var(--accent-soft, #FBEEE2) !important;
  border: 1.5px solid var(--accent, #C8621B) !important;
  color: var(--accent, #C8621B) !important;
  font-weight: 800 !important;
  margin-left: 10px !important;
}

/* ★★v598（2026-09-14・菊池さん決裁＝甲）：保存先カードの下の点線の札をやめ、
   ★カードの行の中の ▶ にする。
   ★大きさ・色は★既にある木の開閉ボタン（data-gr-toggle）と同じ値
     （background:none / border:none / font-size:16px / color:#0077BB / width:28px / min-height:44px）。
   ★✏️（min-width:44px・min-height:44px）と同じ行に並ぶので★カードは1pxも高くならない。
   ★点線の札の見た目（v539 の名札）は1バイトも消していない（入れ物が渡らない道で、いまも使う）。 */
.v598-arrow {
  background: none; border: none; cursor: pointer;
  font-size: 16px; font-family: inherit; line-height: 1;
  color: #0077BB; width: 28px; min-height: 44px;
  flex-shrink: 0; padding: 0;
}

/* ★★v603（2026-09-15・Q-QR＋Q-QE・菊池さん決裁＝2）：ドライブのことを1つの箱にまとめる。
   ★困り＝ホームに同じくらいの大きさの箱が2つ並び、未送信があるとページが 925px（画面 793px）になっていた。
   ★直し＝未送信の帯を箱の中へ入れ、帯が出ているあいだは下の2段（フローの図・空きの行）を隠す。
   ★出し入れは .pending-banner.show の付け外しのまま＝★JS は1バイトも触っていない。
   ★ボタンと言葉は1バイトも変えていない（菊池さんのご指示）。大きさだけ箱に合わせる。
   ★置き場所＝TP1改のフェンスより後ろ（前方は番人が守っている）。 */

.home-drive-card > #pending-banner {
  background: none;
  border: none;
  border-radius: 0;
  padding: 0;
  margin-bottom: 0;
}

.home-drive-card > #pending-banner.show ~ .home-drive-sovereign,
.home-drive-card > #pending-banner.show ~ .home-storage-row {
  display: none !important;
}

.home-drive-card {
  padding: 10px 14px;
}

.home-drive-card > #pending-expiry-banner {
  margin: 8px 0 0 !important;
}

/* ★★v605（2026-09-15・Q-QS の続き・菊池さん決裁＝6）：送信中は箱の中を塗りつぶして明滅させる。
   ★v604 では見出しの1行だけを明滅させたが、★実機で「点滅が弱すぎてほとんど認識できない」（菊池さん）。
   ★★実機で7通りを見比べて、★塗りつぶし（薄いオレンジ ⇄ 濃いオレンジ）に決めた。
   ★★速さは 1.6秒のまま（1秒あたり約0.6回）＝★光過敏の線は v604 から1ミリも変えていない。
   ★★正直に書く：濃くなった瞬間、「0 / 1 枚」（青・20px 太字）の読みやすさの比は 2.61 で、
     ★指針の 3.0 を下回る。「閉じないでください」の枠は 1.54 で背景に近づく。
     ★★菊池さんが実機で、枠を光らせる案（字は無傷）と見比べたうえで★こちらを選んだ。
     ★字・色・大きさは1バイトも変えていない。
   ★動きを嫌う設定の人には止める。
   ★進捗のバー（#banner-progress-fill）には何も足さない＝動きを2つにしない。
   ★置き場所＝TP1改のフェンスより後ろ（前方は番人が守っている）。 */

@keyframes v605-sending {
  0%, 100% { background-color: #FFF0DC; }
  50%      { background-color: #F6B24A; }
}

#pending-banner-progress {
  background-color: #FFF0DC;
  border-radius: 10px;
  padding: 10px;
  animation: v605-sending 1.6s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  #pending-banner-progress {
    animation: none;
  }
}

/* ★★v611（2026-09-16・菊池さん決裁 RM-340＝甲甲甲）：★送り終わったときの箱の姿。
   ★明滅を止める＝終わったのに点滅し続けると「まだ送っている」と読める。
   ★地を薄い緑に、件数の字を緑に。★緑は既にある色をそのまま使う（新しい色を作らない）。
   ★字の読みやすさの比は、送信中（2.61）より上がる＝弱くならない。
   ★棒には何も足さない＝動きを2つにしない（v605 と同じ考え方）。
   ★この姿は1.5秒だけ。★JS が印を外して閉じる。
   ★置き場所＝TP1改のフェンスより後ろ（前方は番人が守っている）。 */

#pending-banner-progress.v611-done {
  animation: none;
  background-color: #E8F5EC;
}

#pending-banner-progress.v611-done #banner-progress-count {
  color: #2F7A4F !important;
}

/* ★★v612（2026-09-16・CTO 判断／v611 の追補）：★終わったら、送っている間の言葉を隠す。
   ★CTO が実データの画面で見つけた穴＝終わった姿にしたとき、箱の中に
     「Googleドライブに保存中」と「保存が終わるまで この画面を閉じないでください」が
     ★残っていた。★1.5秒のあいだ、画面が嘘をつく。
   ★隠すのは印が付いている間だけ＝印を外せば元に戻る（JSは1行も足さない）。
   ★件数の字と右の字が「終わったこと」を言っているので、消しても分からなくならない。
   ★箱は1.5秒だけ小さくなるが、そのあとどのみち閉じる。
   ★見出しと注意書きには名札が無いので、並びで当てる（名札を足すと index.html を触ることになる）。
   ★置き場所＝フェンスより後ろ・v611 の規則の後ろ。 */

#pending-banner-progress.v611-done > div:first-child,
#pending-banner-progress.v611-done > div:last-child {
  display: none;
}

/* ★★v613（2026-09-16・菊池さん決裁 RM-343＝甲）：★終わったときの2つの字を縦に積む。
   ★困り（CTO が実データで実測）＝幅 375・390・414px で
     「✅ N枚 保存しました」と「Googleドライブに入りました」が★両方2行に折れ、
     ★左右のすき間が 0px になって「た」だけが2行目に落ちる。★430px だけ収まる。
   ★実測：縦に積むと 375〜430px の★全部で1行に収まる（箱は 102px → 95px）。
   ★index.html のインラインに display:flex があるので !important が要る（v611 の色と同じ受け方）。
   ★印（v611-done）が付いている間だけ＝印を外せば元の横並びに戻る（JSは1行も足さない）。
   ★v611 のコメントに残る「1.5秒」は★v613 で2秒に改めた。
     ★そのコメント自体は tests/_v611_revert.js が1バイト一致で持っているため触らない。
   ★置き場所＝フェンスより後ろ・v612 の規則の後ろ。 */

#pending-banner-progress.v611-done > div:nth-child(3) {
  display: block !important;
  text-align: center;
}
#pending-banner-progress.v611-done #banner-progress-eta {
  margin-top: 2px;
}

/* ★★v650（2026-09-19・RM-405）：保存先をえらぶ画面の札の区切り。
   ★★置き場所＝★このファイルの末尾（権利の1行より前）。★前に書くと番人が落ちる。
   ★絞り込みの2つと「新しい保存先」は役割が違う＝細い縦線で分ける。 */
.v650-sep {
  width: 1px;
  align-self: stretch;
  margin: 4px 0;
  background: var(--border, #ddd);
  flex: 0 0 auto;
}
/* ★★★狭い画面（420px以下）では、縦線ではなく★行を変える（★菊池さん決裁＝甲）。
   ★★理由＝390px でも3つは1行に収まる（実測＝3つと隙間で365px／使える幅390px）。
     ★だが残りは25pxしかなく、★縦線は画面の端に貼り付いて役目を果たさない。
     ★★∴ 狭い画面では線をやめて、★行を変えることで「別のかたまり」を示す。
   ★★並びに width:100% の器を挟むと、★そこで行が変わる。
     ＝上の行が絞り込み2つ／下の行が「新しい保存先」。
   ★★役割が違うことを「行が違う」で示す＝★縦線と同じ狙いを、狭い画面では行変えで果たす。
   ★高さ0と background なし＝★線そのものは出さない（行を変えるためだけの器）。 */
@media (max-width: 420px) {
  .v650-sep {
    width: 100%;
    height: 0;
    margin: 0;
    background: none;
    align-self: auto;
  }
}
/* ★★★v651（2026-09-19・RM-416／菊池さん決裁＝甲）：★書き込みで指定された薄い枠を拾い直す。
   ★★置き場所＝★このファイルの末尾（権利の1行より前）。★前に書くと番人が落ちる。
   ★★なぜ要るか＝本体の描く1本が、枠の色を★25か所ベタ書きしている。
     ★変数（枠の色）を変えても、そこは1バイトも変わらない。
     ★★本体を1バイトも触らずに直すため、★見た目の紙の側から拾い直す。
   ★★同じ手口が★このファイルの236〜240行に既にある（暗い画面用）。★それを明るい側に写した。
   ★数字＝いまの薄い灰色は白い紙の上で 1.36倍。★境界が見分けられる下限は 3.0倍（国際基準）。
     ★新しい色は 3.52倍。★太さは1バイトも変えない（枠の色だけ）。
   ★★暗い画面には効かせない＝236〜240行が既に担当している。
   ★大文字で書かれたものは無い（本体・main2・index を数えて0件＝実測）。 */
:root:not([data-theme="dark"]) [style*="solid #ddd"],
html:not([data-theme="dark"]) [style*="solid #ddd"] {
  border-color: #7d8a99 !important;
}
/* ★★★v651（2026-09-19・RM-405 作り直し／菊池さん決裁＝甲-1）：保存先をえらぶ画面の押しどころ。
   ★★置き場所＝★このファイルの末尾（権利の1行より前）。★前に書くと番人が落ちる。
   ★★左＝つながった窓（どちらかを選ぶ）／右＝独立した塗りボタン（押すと起きる）。
   ★違いは①形 ②塗り ③罫線 の3つ。★色だけに頼らない。
   ★高さは両方44px＝現場は手袋の指（製品の多数派）。
   ★★v650 の薄い塗りの名札と区切りの規則は★1バイトも触らない（戻しの紙が読むため）。
   ★数字＝窓の枠は白い紙の上で 4.14倍、塗りの上の白い字は 5.02倍（下限は 3.0 と 4.5）。 */
.v651-seg {
  display: inline-flex;
  flex: 0 0 auto;
  border: 1.5px solid #6f7e91;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}
.v651-seg button {
  appearance: none;
  border: 0;
  background: transparent;
  font-family: inherit;
  min-height: 44px;
  padding: 0 14px;
  font-size: 14px;
  font-weight: 700;
  color: #2b3340;
  cursor: pointer;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.v651-seg button + button { border-left: 1.5px solid #6f7e91; }
.v651-seg button[aria-pressed="true"] { background: #0077BB; color: #fff; }
/* ★★新しい保存先＝塗りのボタン。★枠を持たず、下に濃い影＝指で押せるものに見える。
   ★橙は v650 より一段濃くした（★菊池さん決裁＝甲）。
     ★理由＝白い字は v650 の橙の上では 4.02倍で、★字が読める下限 4.5倍に届かない。
     ★一段濃くすると 5.02倍。★影の色はそれをさらに暗くした。 */
.v651-make {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex: 0 0 auto;
  min-height: 44px;
  padding: 0 16px;
  border: 0;
  border-radius: 10px;
  background: #B5561A;
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 2px 0 #8c4114;
}
.v651-make:active { box-shadow: 0 0 0 #8c4114; transform: translateY(2px); }
.v651-plus { font-size: 18px; line-height: 1; margin-top: -1px; }
/* ★★★v652（2026-09-19・RM-418／菊池さん決裁＝大きさ丙）：いまえらんでいる先を「帯」にする。
   ★★置き場所＝★このファイルの末尾（権利の1行より前）。★前に書くと番人が落ちる。
   ★★なぜ帯にするか＝この画面の主語がいちばん小さく・いちばん薄かった（★CTO が実データで実測）。
   ★★v591/v592 の規則（2719〜2737）は★1バイトも触らない＝★ここで後から上書きする。
     ★同じ詳しさなら★後に書いたほうが勝つ。★戻し方＝この塊を消すだけ。
   ★★★見分けを担うのは★枠と★左の太い縦線である。
     ★地色だけでは帯に見えない（★地色とまわりの差は 1.12倍＝ほぼ同じ色・実測）。
     ★だから枠と縦線の色は、まわりの地の上で★下限の 3.0倍を超えるものを選んだ。
   ★数字（すべて実測）
     ・枠      ＝ まわりの地の上で 3.71倍（下限 3.0）
     ・左の縦線 ＝ まわりの地の上で 4.36倍（下限 3.0）
     ・見出し   ＝ 帯の地の上で 5.74倍（下限 4.5）
     ・中身    ＝ 帯の地の上で 11.00倍（下限 4.5）
   ★★影は出さないまま＝v592 の判断を変えない（影の行は上書きしない）。
   ★★住所の行も隠れたまま＝v592 の判断を変えない。
   ★★先頭の小さな字を止めている index.html の1行には触っていない（v638／v639 のまま）。 */
#site-current-card:not([style*="display:none"]):not([style*="display: none"]) {
  background: #dce9f5 !important;
  border: 1.5px solid #63809f !important;
  border-left: 5px solid #0077BB !important;
  border-radius: 10px !important;
  padding: 10px 12px !important;
}
.v652-dest-label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: #2f5c80;
  margin-bottom: 3px;
}
.v652-dest-value {
  font-size: 17px;
  font-weight: 800;
  color: #12304a;
  line-height: 1.4;
}
/* ★★★ v687（2026-09-24・RM-528／RM-530＝決裁113／RM-531＝決裁114／RM-532）
   ★★ここは★末尾への追記だけ。★TP1改のフェンス（1461行）より前は1バイトも触っていない。 */

/* ── RM-528：撮影画面の上の帯の右に、いまの #タグ（押すと #タグの画面） */
#v687-bar-tag {
  flex: 0 1 auto; max-width: 45%; min-height: 44px; padding: 8px 12px;
  border: 1.5px solid #0077BB; border-radius: 999px; background: var(--card, #fff); color: #0077BB;
  font-size: 15px; font-weight: 800; font-family: inherit; cursor: pointer;
  /* ★★v701（2026-09-26・RM-557）：1行固定だと「🏷 #タグをつ…」と切れていた＝★2行まで折り返す（3行目から切る）。
     ★字は決裁115 のまま。★幅（max-width:45%）・高さの下限・色・枠は今のまま。 */
  overflow: hidden; text-overflow: clip; white-space: normal;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; -webkit-box-pack: center;
  line-height: 1.3; text-align: center;
  /* ★★v701：上下の余白は0（高さの下限44px と字の上下の中央はそのまま）。
     ★余白があると overflow:hidden が余白の外で切るので、3行目の字が下の余白に★はみ出して見えた（ヘッドレスで実測）。 */
  padding-top: 0; padding-bottom: 0;
}

/* ── RM-531（決裁114＝乙）：撮った後の画面＝下に固定の大きな「続けて撮影」＋右下の丸。
   ★カードの中の「つづけて撮る｜部屋を変える」の段は★出さない（消していない＝この決まりを外せば戻る）。
   ★比較撮影の直後（v592 の2本）は印が立たない＝今のまま。 */
#v550-after-row { display: none !important; }
#v687-after-foot {
  display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
  background: var(--card, #fff); border-top: 1px solid var(--border, #d5dde6);
  box-shadow: 0 -4px 20px rgba(0,0,0,0.12);
  padding: 12px 14px 22px; text-align: center; box-sizing: border-box;
}
#screen-photo[data-v687-after="1"] #v687-after-foot { display: block; }
#v687-after-shoot {
  width: 100%; min-height: 72px; padding: 20px 12px; border: none; border-radius: 16px;
  background: #0077BB; color: #fff; font-size: 24px; font-weight: 900; font-family: inherit; cursor: pointer;
}
.v687-after-say { margin-top: 8px; font-size: 15px; font-weight: 700; color: var(--muted, #5D6A78); }
/* ★帯（約140px）の下に隠れないよう、撮った後だけ下の余白を取る（★v688：丸は帯の中へ移った＝部屋のある保存先も同じ高さ） */
#screen-photo[data-v687-after="1"] #photo-footer-spacer { height: 150px !important; }
/* ★丸（部屋のある保存先の撮った後だけ）＝★v688：帯の中（位置は下の v688 の決まり） */
body.continuous-capture-mode #screen-photo[data-v687-after="1"] #photo-fab-change-room,
body.hierarchy-capture #screen-photo[data-v687-after="1"] #photo-fab-change-room {
  display: flex !important;
}
/* ★横持ちは今のまま（横持ち専用のボタンがある）＝帯も丸も出さない・余白も取らない */
@media (orientation: landscape) and (max-height: 500px) {
  #screen-photo[data-v687-after="1"] #v687-after-foot { display: none !important; }
  body.continuous-capture-mode #screen-photo[data-v687-after="1"] #photo-fab-change-room,
  body.hierarchy-capture #screen-photo[data-v687-after="1"] #photo-fab-change-room { display: none !important; }
  #screen-photo[data-v687-after="1"] #photo-footer-spacer,
  body.continuous-capture-mode #screen-photo[data-v687-after="1"] #photo-footer-spacer,
  body.hierarchy-capture #screen-photo[data-v687-after="1"] #photo-footer-spacer { height: 0 !important; }
}

/* ── RM-530（決裁113＝甲）：部屋の一覧＝次の部屋・階で畳む・10部屋以下は縦一列 */
.v687-next {
  display: block; width: 100%; margin: 0 0 14px; padding: 14px; min-height: 64px;
  border: 2px solid #0077BB; border-radius: 14px; background: var(--card, #fff); color: #0077BB;
  font-size: 19px; font-weight: 800; font-family: inherit; text-align: center; cursor: pointer;
}
.v687-next-sub { display: block; margin-top: 2px; font-size: 12px; font-weight: 600; color: var(--muted, #6b7a89); }
.v687-flat-row {
  display: block; width: 100%; min-height: 52px; margin: 0 0 8px; padding: 14px;
  border: 1.5px solid var(--border); border-radius: 10px; background: var(--card); color: var(--text);
  font-size: 17px; font-weight: 700; font-family: inherit; text-align: left; cursor: pointer;
}
.v687-fh {
  display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 52px;
  margin: 0 0 8px; padding: 12px 14px; border: 1.5px solid var(--border); border-radius: 12px;
  background: var(--card); color: var(--text); font-size: 17px; font-weight: 800; font-family: inherit;
  text-align: left; cursor: pointer;
}
.v687-fh.open { border-color: #0077BB; }
.v687-fh-r { color: var(--muted, #6b7a89); font-weight: 600; font-size: 13px; white-space: nowrap; margin-left: 8px; }
.v687-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 0 12px 8px; }
.v687-cell {
  min-height: 48px; padding: 12px 4px; border: 1.5px solid var(--border); border-radius: 10px;
  background: var(--card); color: var(--text); font-size: 17px; font-weight: 700; font-family: inherit;
  text-align: center; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.v687-wide { grid-column: 1 / -1; text-align: left; padding-left: 14px; }
.v687-last { border: 2.5px solid #0077BB !important; }
.v687-none { padding: 14px; text-align: center; color: var(--text); font-size: 14px; line-height: 1.6; }

/* ★★★ v688（2026-09-25・決裁115）：撮った後の画面＝開いたとき「✅ 撮影を終える」まで必ず見える・丸は帯の中・#タグは右上の札1つ
   ★★ここは★末尾への追記だけ。★TP1改のフェンス（1461行）より前は1バイトも触っていない。
   ★写真の高さは main1.js（_v688FitAfter）がその場で決める（上限＝今の決まり・下限 120px）。 */

/* ── ① 帯の中：「📷 続けて撮影」（残りの幅）＋丸（76px）を横に並べる。★部屋の無い保存先は丸が出ない＝全幅のまま */
#v688-after-row { display: flex; align-items: center; gap: 10px; }
#v688-after-row #v687-after-shoot { flex: 1 1 auto; min-width: 0; width: auto; }
#v687-after-foot #photo-fab-change-room {
  position: static !important; flex: 0 0 76px; width: 76px !important; height: 76px !important;
}

/* ── ②③ カードの並びと説明の1行（★縦持ちだけ＝横持ちは今の決まりのまま） */
@media (orientation: portrait), (min-height: 501px) {
  /* ★★v702（2026-09-26・決裁138・RM-558）：撮った後の画面は★どの保存先でも「📝 メモを追加｜🏷 タグを追加」を横に2つ。
     ★v688 の「段のある保存先はカードの #タグを隠す」（決裁115 タグ1）は★撮った後の画面に限って改めた＝右上の札を出さない。
     ★丸（部屋変更）は v688 で下の帯の中へ移った＝#タグにかぶらない。★撮る前の画面の札・横持ちは今のまま（この段は縦持ちだけ）。 */
  #screen-photo[data-v687-after="1"] #v687-bar-tag { display: none !important; }
  /* ② 「メモ｜タグ」を横に2つ（★左＝メモ・右＝タグ＝DOM は動かさず order で入れ替える） */
  #screen-photo[data-v687-after="1"] #photo-status-memo-wrap {
    display: flex !important; gap: 8px; margin-bottom: 12px;
  }
  #screen-photo[data-v687-after="1"] #photo-status-memo-wrap > div {
    flex: 1 1 0; min-width: 0; margin-bottom: 0 !important;
  }
  #screen-photo[data-v687-after="1"] #photo-status-memo-wrap > div:first-child { order: 2; }
  /* ★★v702（決め3b）：1行固定の「…」をやめ、★2行まで折り返す（3行目から「…」）・字は上下の中央。
     ★上下の余白は0（あると3行目の字が下の余白にはみ出す＝v701 で実測）。高さの下限 48px はボタンの今の値のまま。 */
  #screen-photo[data-v687-after="1"] #photo-status-toggle-btn,
  #screen-photo[data-v687-after="1"] #photo-memo-toggle-btn {
    white-space: normal; overflow: hidden; text-overflow: clip;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; -webkit-box-pack: center;
    line-height: 1.6; min-height: 48px; padding-top: 0 !important; padding-bottom: 0 !important;
    /* ★行の高さ 1.6＝字 15px の2行でちょうど 48px＝3行目の字が箱の中にのぞかない（1.3 だと箱の下に3行目の頭が見えた＝ヘッドレスで実測） */
  }
  /* ③ 「送る前に、保存先を確かめて直せます」は撮った後だけ出さない（撮る前は今のまま） */
  #screen-photo[data-v687-after="1"] .v641-note { display: none !important; }
}

/* ★★v691（2026-09-26・決裁129・RM-541＝乙）：保存先をえらぶ画面＝★名前を押せるボタンの形に。
   ★枠＝名前（絵＋字）と右の字（ひらく ▼／とじる ▲／えらぶ ›）。★子のある行＝灰の線・部屋と子の無い保存先＝青い線。
   ★高さ 48px 以上・角丸・薄い地。★名前は枠の中で2行まで（3行目から「…」）。★押したときの動きは今のまま（枠は今の押しどころそのもの）。 */
.v691-frame { flex: 1; min-width: 0; container-type: inline-size; overflow: hidden; display: flex; align-items: center; gap: 6px; min-height: 48px; padding: 6px 10px; box-sizing: border-box; border: 2px solid #0077BB; border-radius: 12px; background: #f3f9fd; cursor: pointer; }
.v691-frame.v691-open { border-color: #9aa6b2; background: #f5f7f9; }
.v691-frame:active { background: #dcecf8; }
.v691-text { flex: 1; min-width: 0; }
.v691-name { flex: 1; min-width: 2.5em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.3; word-break: break-word; white-space: normal; }
.v691-verb { flex-shrink: 0; margin-left: auto; font-size: 12.5px; font-weight: 700; color: #0077BB; white-space: nowrap; }
/* ★★v691：枠が狭いとき（棟の行で ✏️ と札が並ぶ・SE の幅）は★言葉を隠して印だけ残す＝名前を先に見せる（字は textContent に残る） */
@container (max-width: 170px) { .v691-vt { display: none; } }
/* ★★v691：さらに狭いとき（カードの中の棟の行・SE）は★絵と印も隠して名前だけ（押しどころと動きは同じ） */
@container (max-width: 80px) { .v691-ico, .v691-verb { display: none; } }
.v691-frame.v691-open .v691-verb { color: #4a5563; }
[data-theme="dark"] .v691-frame { background: #1f2a3a; border-color: #4aa3df; }
[data-theme="dark"] .v691-frame.v691-open { background: #26263a; border-color: #5b6776; }
[data-theme="dark"] .v691-verb { color: #7cc4f0; }
[data-theme="dark"] .v691-frame.v691-open .v691-verb { color: #c9d1db; }

/* ★★★ v735（2026-09-28・RM-613・決裁175＝A）：撮った後の画面のボタンを「押せる形」に。
   ★メモ・タグ＝白い地に青い線（保存先をえらぶの枠 v691 と同じ青）＋下の影・押すと沈む。「📷 続けて撮影」＝今の青の濃い色の下の影。
   ★★ここは★末尾への追記だけ。index.html の inline は字・大きさ・onclick を1バイトも変えず、見た目だけ !important で上書きする。
   ★字の大きさ・太さ・角の丸み・高さの下限は今のまま。 */
#screen-photo #photo-status-toggle-btn,
#screen-photo #photo-memo-toggle-btn,
#screen-photo #v592-finish-btn {
  background: #fff !important; color: #1a1a2e !important;
  border: 2px solid #0077BB !important; box-shadow: 0 3px 0 #9DB6CC !important;
}
#screen-photo #photo-status-toggle-btn:active,
#screen-photo #photo-memo-toggle-btn:active,
#screen-photo #v592-finish-btn:active {
  transform: translateY(2px); box-shadow: 0 1px 0 #9DB6CC !important;
}
#v687-after-shoot { box-shadow: 0 5px 0 #005A8E; }
#v687-after-shoot:active { transform: translateY(3px); box-shadow: 0 2px 0 #005A8E; }
/* ★ダーク：線は #4aa3df（v691 のダークと同じ）・地は今のダークの地（JS のダーク変換が白い地を置く値＝var(--card)） */
[data-theme="dark"] #screen-photo #photo-status-toggle-btn,
[data-theme="dark"] #screen-photo #photo-memo-toggle-btn,
[data-theme="dark"] #screen-photo #v592-finish-btn {
  background: var(--card) !important; color: var(--text) !important; border-color: #4aa3df !important;
}
/* ★★v735追補2（決裁175 の続き）：青い線 2px（上下で 4px）の分、メモ・タグの★高さが元より伸びないよう吸収する（字・絵・高さの下限の値は変えない）。
   ★横持ち＝上下の余白 10px → 8px（元の 44px のまま）。 */
@media (orientation: landscape) and (max-height: 500px) {
  #screen-photo #photo-status-toggle-btn, #screen-photo #photo-memo-toggle-btn { padding-top: 8px !important; padding-bottom: 8px !important; }
}
/* ★縦持ち（撮った後）＝上下の余白は v702 で元から 0 のため、余白では吸収できない（字が2行のとき 48→52px に伸びた＝ヘッドレスで実測）。
   ★菊池さんの決め（2026-09-28）：2行の行の高さを 24px → 22px（15px×1.6 → 約1.47）＝2行でちょうど 44px＋線 4px＝元の 48px。
   ★字の大きさ・絵・高さの下限は元のまま。3行目はのぞかない（ヘッドレスで実測）。 */
@media (orientation: portrait), (min-height: 501px) {
  #screen-photo[data-v687-after="1"] #photo-status-toggle-btn,
  #screen-photo[data-v687-after="1"] #photo-memo-toggle-btn { line-height: 22px; }
}

/* ★★★ v735追補1（RM-613・決裁175 の続き）：「✅ 撮影を終える」は濃い緑の地・白い 18px の字。
   ★★v735追補2（決裁175 の続き）：追補1 の「メモ・タグの絵を 24px（span・flex）」は★取り消した＝メモ・タグは絵も字も元の大きさ（main1.js・index.html は ef9ef25 と同じ）。 */
/* 「✅ 撮影を終える」（「✅ 比較撮影を終える」の時も同じボタン）＝★v735 の青い線＋影をこのボタンだけ上書き。ダークも同じ濃い緑（白い字が読める） */
#screen-photo #v592-finish-btn,
[data-theme="dark"] #screen-photo #v592-finish-btn {
  background: #2F8A55 !important; color: #fff !important; border: none !important;
  box-shadow: 0 4px 0 #1F6B3F !important; font-size: 18px !important; font-weight: 800 !important;
}
#screen-photo #v592-finish-btn:active {
  transform: translateY(3px); box-shadow: 0 1px 0 #1F6B3F !important;
}

/* ★★★ v736（2026-09-28・RM-614・決裁176）：撮影前の画面のボタンも撮った後（v735）とそろえる＝主役＝下の影・脇＝白い地に青い線＋影。
   ★★ここは★末尾への追記だけ。index.html の inline・字・onclick は1バイトも変えない。
   ★高さは今と同じ（線が太くなった分は上下の余白で吸収＝ヘッドレスで前と並べて実測）。 */
/* 主役「📷 撮影」（取り込みのときは「🖼 写真を選ぶ」＝同じボタン）＝地は保存先ごとの色なので、色に依らない暗い影 */
#v550-main-btn { box-shadow: 0 5px 0 rgba(0,0,0,0.28); }
#v550-main-btn:active { transform: translateY(3px); box-shadow: 0 2px 0 rgba(0,0,0,0.28); }
/* 脇：枠の中の札（📍 比較撮影・🚪 部屋を変えて撮る・📥 端末から取り込む・📋 黒板・証跡）／保存先をえらぶ（選んでいないとき）／上の帯の #タグ */
.v550-chip, #v550-nosite-btn, #v687-bar-tag {
  background: #fff; color: #1a1a2e; border: 2px solid #0077BB; box-shadow: 0 3px 0 #9DB6CC;
}
.v550-chip:active, #v550-nosite-btn:active, #v687-bar-tag:active { transform: translateY(2px); box-shadow: 0 1px 0 #9DB6CC; }
.v550-chip { padding-top: 11px; padding-bottom: 11px; }
#v550-nosite-btn { padding-top: 11px; padding-bottom: 11px; }
#v687-bar-tag { padding-top: 7.5px; padding-bottom: 7.5px; }
[data-theme="dark"] .v550-chip, [data-theme="dark"] #v550-nosite-btn, [data-theme="dark"] #v687-bar-tag {
  background: var(--card); color: var(--text); border-color: #4aa3df;
}
/* 横持ち・撮った後：主役「📷 撮影」＝続けて撮影と同じ影／脇「📍 比較撮影」＝青い線＋影 */
@media (orientation: landscape) and (max-height: 500px) {
  #photo-saved-continue-land { box-shadow: 0 5px 0 #005A8E; }
  #photo-saved-continue-land:active { transform: translateY(3px); box-shadow: 0 2px 0 #005A8E; }
  #photo-saved-keika-land { box-shadow: 0 3px 0 #9DB6CC; }
  #photo-saved-keika-land:active { transform: translateY(2px); box-shadow: 0 1px 0 #9DB6CC; }
  [data-theme="dark"] #photo-saved-keika-land { background: var(--card) !important; border-color: #4aa3df !important; }
}

/* ★★★ v736追補1（RM-614・決裁176 の続き）：横持ち・撮った後の一番下の行＝「📷 撮影」の高さを「✅ 撮影を終える」と同じに。
   ★撮影を終えるは1バイトも触らない（上に inline の margin-top:9px がある）＝撮影のほうを行の高さいっぱいに伸ばし、上に同じ 9px を空ける
   ＝上の端・下の端とも一直線（数字で高さを固定しない＝字の大きさが変わっても崩れない）。★比較撮影の直後は撮影が隠れる（v593）＝当たらない。
   ★撮影の上下の余白は 0（字は flex で上下の中央のまま）＝撮影の中身が撮影を終えるより高いと行が伸びて 1px ずれた（ヘッドレスで実測）ため、行の高さを撮影を終えるに決めさせる。高さの下限 48px は今のまま。 */
@media (orientation: landscape) and (max-height: 500px) {
  #photo-saved-box #photo-saved-continue-land { align-self: stretch; margin-top: 9px !important; padding-top: 0 !important; padding-bottom: 0 !important; }
}

/* GENROKU - Copyright (c) 2026 合同会社創乗 (Sojo LLC). All rights reserved. */
