/* PMS（内製予約管理）— とここと 販売管理 manage.misawa-tokokoto.com/genba-pms
   2026-09-28 全面改修: ページに直書きだったスタイルをこのファイルへ移し、色と文字サイズを tokens.css の変数にそろえた。
   追加の部品（ページの枠・タブの群・ミニ校長の吹き出し・説明のトグル・表の折り返し・呼びかけの色分け）は末尾の「2026-09-28 改修」節。 */
:root{--pms-accent:#2f93d8;--pms-accent-strong:#227ab8;--pms-accent-soft:#e6f4ff;--pms-accent-line:#bfe3fb;--pms-accent-bg:#f2f9ff}
  /* PMS（内製予約管理）— 現場の道具トーン（青 var(--pms-accent) 基調・全周ボーダー・脱AIルック=sugao） */
  .pms-lead{max-width:820px}
  .pms-links{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 6px}
  .pms-link{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-sm);font-weight:700;color:var(--pms-accent);text-decoration:none;border:1px solid var(--pms-accent-line);background:#fff;border-radius:999px;padding:6px 13px}
  .pms-link:hover{background:var(--pms-accent-soft)}
  .pms-link.guest{color:#4d7a3b;border-color:#d3e5c7}
  .pms-link.guest:hover{background:#f0f6ee}
  /* サブヘッダー（当日ボード/予約一覧/作業ログ… の切替）— アンダーライン型タブバー */
  .pms-tabs{display:flex;gap:4px;margin:14px 0 16px;position:sticky;top:0;background:var(--bg-app);padding:2px 0 0;z-index:5;border-bottom:1px solid var(--border-default,#dadcdf);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .pms-tabs::-webkit-scrollbar{display:none}
  .pms-updated{font-size:var(--fs-caption);color:var(--text-tertiary);text-align:right;margin:-8px 0 8px;min-height:15px}
  .pms-tab{border:0;border-bottom:2.5px solid transparent;background:transparent;border-radius:0;padding:9px 14px;margin-bottom:-1px;font-size:var(--fs-body);font-weight:700;cursor:pointer;color:var(--text-secondary,#56575b);text-decoration:none;white-space:nowrap;transition:color .12s}
  .pms-tab:hover{color:var(--text-primary,#2b2c30)}
  .pms-tab.on{color:var(--pms-accent);border-bottom-color:var(--pms-accent)}
  .pms-note{font-size:var(--fs-sm);color:var(--text-tertiary)}
  /* 認証・空・読込 */
  .pms-empty{padding:22px;text-align:center;color:var(--text-tertiary);font-size:var(--fs-body)}
  .pms-auth{background:#fff;border:1px solid var(--border-default);border-radius:12px;box-shadow:var(--shadow-50);padding:22px;text-align:center;max-width:460px;margin:20px auto}
  .pms-auth h3{margin:0 0 8px}
  /* ブロック（カード） */
  .pms-block{background:#fff;border:1px solid var(--border-default,#dadcdf);border-radius:var(--radius-lg,12px);box-shadow:var(--shadow-50);padding:16px 18px;margin:0 0 16px}
  .pms-block h3{margin:0 0 12px;font-size:var(--fs-h4);display:flex;align-items:center;gap:8px}
  .pms-block h3 .b{width:5px;height:16px;border-radius:2px;background:var(--c-brand);flex:none}
  /* ツールバー（フィルタ） */
  .pms-toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;background:#fff;border:1px solid var(--border-default);border-radius:12px;padding:12px 14px;margin-bottom:14px;box-shadow:var(--shadow-50)}
  .pms-fld{display:flex;flex-direction:column;gap:4px}
  .pms-fld label{font-size:var(--fs-caption);font-weight:700;color:var(--text-secondary,#56575b)}
  .pms-fld input,.pms-fld select{border:1px solid var(--border-default,#dadcdf);border-radius:8px;padding:8px 10px;font-size:var(--fs-body);font-family:inherit;background:#fff;min-height:40px}
  .pms-fld input:focus,.pms-fld select:focus{outline:none;border-color:var(--pms-accent);box-shadow:0 0 0 3px rgba(47,147,216,.12)}
  /* ボタン */
  .pms-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--pms-accent-line);color:var(--pms-accent);background:#fff;border-radius:9px;padding:8px 14px;font-size:var(--fs-body);font-weight:700;cursor:pointer;text-decoration:none;font-family:inherit;min-height:40px}
  .pms-btn:hover{background:var(--pms-accent-soft)}
  .pms-btn.primary{background:var(--pms-accent);border-color:var(--pms-accent);color:#fff}
  .pms-btn.primary:hover{background:var(--pms-accent-strong)}
  .pms-btn.sm{padding:7px 12px;font-size:var(--fs-sm);min-height:38px}
  .pms-btn[disabled]{opacity:.45;cursor:not-allowed}
  .pms-btn+.pms-btn{margin-left:6px}
  /* 割当管理ダイアログの占有者行（N2）＋残枠のあるセルの視覚ヒント */
  .pms-occrow{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--border-default,#e6e6ea);border-radius:8px;padding:6px 10px;margin-bottom:6px}
  .pms-cell.occupied.hasroom{box-shadow:inset 0 -3px 0 rgba(47,147,216,.35)}
  /* KPI サマリ（当日ボードでは「今日やること」の下の控えめな数字列） */
  .pms-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;margin-bottom:16px}
  .pms-stat{background:#fff;border:1px solid var(--border-default);border-radius:12px;padding:10px 13px;box-shadow:var(--shadow-50)}
  .pms-stat .lbl{font-size:var(--fs-caption);color:var(--text-secondary);font-weight:700;white-space:nowrap}
  .pms-stat .num{font-size:22px;font-weight:700;color:var(--text-primary);line-height:1.25;margin-top:2px;font-variant-numeric:tabular-nums}
  .pms-stat .num small{font-size:var(--fs-sm);font-weight:700;color:var(--text-tertiary);margin-left:2px}
  .pms-stat.accent{border-color:var(--pms-accent-line);background:var(--pms-accent-bg)}
  .pms-stat.accent .num{color:var(--pms-accent)}
  .pms-stat.warn{border-color:#f0d9a8;background:#fff7e6}
  .pms-stat.warn .num{color:#b06000}
  /* バッジ・チップ・状態 */
  .pms-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-caption);font-weight:700;border-radius:999px;padding:2px 10px;border:1px solid var(--border-subtle);background:var(--bg-subtle);color:var(--text-secondary);white-space:nowrap}
  .pms-badge.ok{background:#e9f7ec;color:#1f7a33;border-color:#bfe5c8}
  .pms-badge.warn{background:#fff7e6;color:#b06000;border-color:#f0d9a8}
  .pms-badge.danger{background:#fdeceb;color:#c0392b;border-color:#f2c4bf}
  .pms-badge.demo{background:#f1edf9;color:#6a4ca6;border-color:#d9cdef}
  .pms-badge.info{background:var(--pms-accent-soft);color:var(--pms-accent);border-color:var(--pms-accent-line)}
  .pms-chip{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-caption);font-weight:600;border:1px solid var(--border-default);border-radius:6px;padding:2px 8px;background:var(--bg-subtle);color:var(--text-secondary)}
  .pms-pill{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary)}
  .pms-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--text-tertiary)}
  .pms-pill.ok::before{background:#1f7a33}.pms-pill.warn::before{background:#b06000}
  /* 当日ボードのチェックインコード（接客中に読み上げる＝大きめ・字間広め） */
  .pms-code{display:inline-block;font-size:var(--fs-h4);font-weight:700;letter-spacing:.12em;color:var(--pms-accent);border:1px solid var(--pms-accent-line);background:var(--pms-accent-bg);border-radius:6px;padding:2px 9px;font-variant-numeric:tabular-nums;white-space:nowrap}
  .pms-bedlist{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.55;white-space:nowrap}
  /* テーブル */
  .pms-table{width:100%;border-collapse:collapse;font-size:var(--fs-body)}
  .pms-table thead th{background:var(--bg-neutral);color:var(--text-secondary);font-weight:700;font-size:var(--fs-caption);padding:10px 10px;border-bottom:1px solid var(--border-default);text-align:left;white-space:nowrap}
  .pms-table tbody td{padding:10px 10px;border-bottom:1px solid var(--border-subtle);vertical-align:top}
  .pms-table tbody tr:hover{background:var(--bg-subtle)}
  .pms-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  /* 請求→予約一覧のドリルダウン（クリック可能な行） */
  .pms-table tbody tr.pms-drill{cursor:pointer}
  .pms-table tbody tr.pms-drill:hover{background:var(--pms-accent-soft)}
  .pms-table tbody tr.pms-drill td:first-child{color:var(--pms-accent);font-weight:700}
  .pms-drill-link{color:var(--pms-accent);font-weight:700;text-decoration:none}
  .pms-drill-link:hover{text-decoration:underline}
  /* 月グループ（予約一覧） */
  .pms-mg{border:1px solid var(--border-default);border-radius:12px;overflow:hidden;margin-bottom:12px;background:#fff;box-shadow:var(--shadow-50)}
  .pms-mh{width:100%;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;background:var(--bg-neutral);border:0;border-bottom:1px solid var(--border-subtle);padding:13px 15px;font-family:inherit;color:var(--text-primary)}
  .pms-mh:hover{background:var(--pms-accent-soft)}
  .pms-mh .chev{color:var(--text-tertiary);transition:transform .18s;font-size:var(--fs-caption)}
  .pms-mh[aria-expanded="true"] .chev{transform:rotate(90deg);color:var(--pms-accent)}
  .pms-mh .mlabel{font-size:var(--fs-h4);font-weight:700}
  .pms-mh .mcount{color:var(--text-secondary);font-size:var(--fs-sm);font-weight:700}
  .pms-mh .msum{margin-left:auto;color:var(--text-tertiary);font-size:var(--fs-sm);font-weight:600}
  .pms-mb{padding:2px 12px 4px}
  .pms-mb[hidden]{display:none}
  /* 予約一覧は見出しを重ねず、名前・操作と滞在情報の2行に収める。 */
  .pms-rz{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:4px 16px;align-items:center;padding:8px 4px;border-bottom:1px solid var(--border-subtle)}
  .pms-rz:last-child{border-bottom:none}
  .pms-rz-name{min-width:0;font-weight:700;font-size:var(--fs-body);display:flex;align-items:center;gap:7px}
  .pms-res-name{display:inline-flex;align-items:center;gap:7px;max-width:100%;min-height:32px;color:var(--text-primary);font-weight:700;text-decoration:none;overflow-wrap:anywhere}
  .pms-res-name>span:first-child{min-width:0}
  .pms-res-open{flex:none;color:var(--text-secondary);font-size:18px;line-height:1;font-weight:400}
  .pms-res-name:hover{color:var(--pms-accent-strong)}
  .pms-res-name:hover .pms-res-open{color:currentColor}
  .pms-res-name:hover>span:first-child{text-decoration:underline}
  .pms-res-name:focus-visible{outline:2px solid var(--pms-accent-strong);outline-offset:3px}
  .pms-rz-sub{font-size:var(--fs-sm);color:var(--text-secondary)}
  .pms-rz.cancelled .pms-res-name>span:first-child{text-decoration:line-through}
  .pms-page .pms-toolbar.pms-res-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));align-items:start;gap:10px 14px}
  .pms-res-filters .pms-fld{min-width:0}
  .pms-res-filters input,.pms-res-filters select{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
  .pms-res-priority{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
  .pms-res-check{font-weight:600;font-size:var(--fs-sm);white-space:nowrap}
  .pms-res-check.ready{color:var(--text-secondary)}
  .pms-res-check.missing{color:#9b5700}
  .pc-wrap.pc-unset .pc-need{color:#a8201b;font-weight:700;background:#fff1f0;border-color:#d6423b}
  #pmList .pc-need{font-family:inherit;border:1px solid var(--border-default);border-radius:6px;background:#fff;min-height:32px!important;padding:4px 6px!important}
  #pmList .pc-unset .pc-need{background:#fff1f0;border-color:#d6423b}
  .pms-res-assign{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
  #pmList .pms-res-assign .pms-btn{min-height:32px;padding:3px 8px;border-radius:6px}
  .pms-res-revenue{white-space:nowrap;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
  .pms-res-unit{color:var(--text-secondary);font-size:var(--fs-sm)}
  .pms-res-meta{grid-column:1/-1;display:flex;align-items:center;gap:4px 10px;flex-wrap:wrap;min-width:0}
  .pms-res-meta .pms-badges,.pms-res-alerts{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap}
  .pms-res-alert{font-size:var(--fs-caption);color:#9b5700}
  .pms-res-details{font-size:var(--fs-sm);margin:0 0 0 auto;max-width:100%}
  .pms-res-details summary{cursor:pointer;color:var(--text-secondary);width:max-content;min-height:24px;display:list-item}
  .pms-res-details summary:hover{color:var(--pms-accent)}
  .pms-res-meta .pms-res-details[open]{flex-basis:100%;margin-left:0}
  .pms-res-details dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 10px;margin:4px 0 0;padding:8px 10px;background:var(--bg-neutral);border:1px solid var(--border-subtle);border-radius:6px}
  .pms-res-details dt{color:var(--text-secondary);font-weight:600}
  .pms-res-details dd{margin:0;overflow-wrap:anywhere}
  @media(max-width:760px){
    .pms-page .pms-toolbar.pms-res-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
    .pms-rz{grid-template-columns:minmax(0,1fr);gap:4px 8px}
    .pms-res-meta{grid-row:2}
    .pms-res-priority{grid-column:1/-1;grid-row:3;gap:6px 12px}
    .pms-rz-name .pms-kana{font-size:var(--fs-caption)}
  }
  .pms-today{display:inline-flex;align-items:center;gap:4px;color:var(--pms-accent);font-weight:700;font-size:var(--fs-caption)}
  .pms-today::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pms-accent)}
  /* カルテ（詳細） */
  .pms-kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:var(--fs-body);margin:0}
  .pms-kv dt{color:var(--text-secondary);font-weight:700}
  .pms-kv dd{margin:0;color:var(--text-primary)}
  .pms-msg{font-size:var(--fs-sm);margin-left:8px}
  .pms-msg.ok{color:#1f7a33}.pms-msg.ng{color:#c0392b}
  /* テーブルの数値右寄せ */
  .pms-table td.num,.pms-table th.num{text-align:right;font-variant-numeric:tabular-nums}
  /* テキストエリア（メモ・テンプレ本文） */
  .pms-fld textarea{border:1px solid var(--border-default,#dadcdf);border-radius:8px;padding:8px 10px;font-size:var(--fs-body);font-family:inherit;background:#fff;min-height:80px;resize:vertical}
  .pms-fld textarea:focus{outline:none;border-color:var(--pms-accent);box-shadow:0 0 0 3px rgba(47,147,216,.12)}
  /* ── カルテ アコーディオン ── */
  .pms-acc-bar{margin:0 0 12px}
  .pms-acc{padding:0;overflow:hidden}
  .pms-acc-h{width:100%;display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer;background:#fff;border:0;padding:14px 18px;font-family:inherit;color:var(--text-primary);font-size:var(--fs-h4);font-weight:700}
  .pms-acc-h:hover{background:var(--bg-subtle)}
  .pms-acc-h .b{width:5px;height:16px;border-radius:2px;background:var(--c-brand);flex:none}
  .pms-acc-h .pms-acc-t{flex:1 1 auto}
  .pms-acc-h .pms-acc-chev{color:var(--text-tertiary);transition:transform .18s;font-size:var(--fs-caption)}
  .pms-acc-h[aria-expanded="false"] .pms-acc-chev{transform:rotate(-90deg)}
  .pms-acc-b{padding:4px 18px 16px;border-top:1px solid var(--border-subtle)}
  .pms-acc-b[hidden]{display:none}
  /* ── 宿泊者編集（カルテ）── */
  .pms-pe{border:1px solid var(--border-subtle);border-radius:8px;padding:10px 11px;margin-bottom:8px}
  .pms-pe-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .pms-pe-row input,.pms-pe-row select{border:1px solid var(--border-default);border-radius:8px;padding:7px 9px;font-size:var(--fs-body);font-family:inherit;background:#fff;min-height:36px}
  .pms-pe-name{flex:1 1 160px;min-width:120px}
  .pms-pe-gender{flex:0 0 100px}
  .pms-pe-det{margin-top:8px}
  .pms-pe-det summary{cursor:pointer;font-size:var(--fs-caption)}
  .pms-pe-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
  .pms-pe-grid input{border:1px solid var(--border-default);border-radius:8px;padding:7px 9px;font-size:var(--fs-sm);font-family:inherit;background:#fff}
  .pms-pe-grid input:focus,.pms-pe-row input:focus,.pms-pe-row select:focus{outline:none;border-color:var(--pms-accent);box-shadow:0 0 0 3px rgba(47,147,216,.12)}
  .pms-pe-meta{margin-top:8px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
  /* ── カスタム質問（カルテ回答）── */
  .pms-cq{border:1px solid var(--border-subtle);border-radius:8px;padding:10px 11px;margin-bottom:8px}
  .pms-cq-q{font-size:var(--fs-body);font-weight:700;margin-bottom:6px}
  .pms-cq-a{flex:1 1 200px;border:1px solid var(--border-default);border-radius:8px;padding:7px 9px;font-size:var(--fs-body);font-family:inherit;background:#fff;min-height:36px}
  .pms-cq-a:focus{outline:none;border-color:var(--pms-accent);box-shadow:0 0 0 3px rgba(47,147,216,.12)}
  /* ── メモ ── */
  .pms-noteitem{border:1px solid var(--border-subtle);border-radius:8px;padding:9px 11px;margin-bottom:8px;font-size:var(--fs-body)}
  /* ── 履歴タイムライン ── */
  .pms-timeline{border-left:2px solid var(--border-default);padding-left:12px;margin-left:4px}
  .pms-tl-item{position:relative;padding:6px 0}
  .pms-tl-item::before{content:"";position:absolute;left:-17px;top:11px;width:8px;height:8px;border-radius:50%;background:var(--pms-accent)}
  .pms-tl-body{font-size:var(--fs-sm)}
  /* ── 部屋割りグリッド ── */
  .pms-board-scroll{overflow:auto;-webkit-overflow-scrolling:touch;max-height:70vh}
  table.pms-grid{border-collapse:collapse;font-size:var(--fs-caption)}
  table.pms-grid th,table.pms-grid td{border:1px solid var(--border-subtle);padding:0}
  table.pms-grid thead th{position:sticky;top:0;background:var(--bg-neutral);z-index:4;font-weight:700;color:var(--text-secondary);padding:6px 8px;white-space:nowrap;min-width:78px}
  table.pms-grid thead th.bedcol,table.pms-grid tbody th.bedcol{position:sticky;left:0;background:var(--bg-neutral);z-index:2;text-align:left;padding:5px 9px;white-space:nowrap;min-width:150px;font-weight:700;color:var(--text-primary)}
  table.pms-grid thead th.corner{z-index:5}
  table.pms-grid tbody th.bedcol{font-weight:400}
  table.pms-grid tbody th.bedcol .kn{color:var(--text-tertiary);font-size:var(--fs-micro)}
  /* ゾーンの区切り行は縦にも固定する。スクロールで見出しが画面外に出ると、今どのゾーンを見ているか
     分からなくなり「男女ゾーンの取り違え」を招く（QA600 PMS-03）。日付ヘッダ(30px)の直下に貼り付ける。 */
  .pms-zone-head td{background:var(--bg-subtle);font-weight:700;font-size:var(--fs-caption);color:var(--text-secondary);padding:4px 9px;position:sticky;left:0;top:30px;z-index:3}
  .pms-cell{width:78px;height:34px;cursor:pointer}
  .pms-cell.empty:hover{background:var(--pms-accent-soft)}
  /* 使用停止中（active=0）のベッド：行ごとグレーにして、空きマスは押せなくする（QA600 PMS-07） */
  .pms-bed-off th.bedcol{color:var(--text-tertiary)}
  .pms-cell.off{background:var(--bg-subtle);cursor:default}
  .pms-cell.off.empty:hover{background:var(--bg-subtle)}
  .pms-cell .occ{display:flex;align-items:center;justify-content:center;height:34px;font-size:var(--fs-micro);font-weight:700;color:#20303a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px}
  .pms-cell:focus{outline:2px solid var(--pms-accent);outline-offset:-2px;position:relative;z-index:2}
  .pms-cell.gunk{box-shadow:inset 0 0 0 2px #e0a92e}
  .pms-cell .occ .pms-gunk{margin-left:3px;color:#b06000;font-weight:800;flex:0 0 auto}
  .pms-cell.r0{background:#e7eef4}.pms-cell.r1{background:#f3ece0}.pms-cell.r2{background:#e8f0e6}.pms-cell.r3{background:#f2e7ee}
  .pms-cell.r4{background:#eae6f2}.pms-cell.r5{background:#f4eae0}.pms-cell.r6{background:#e0eef0}.pms-cell.r7{background:#f0e6e6}
  .pms-legend{display:flex;gap:10px;flex-wrap:wrap;margin:0 2px 12px;font-size:var(--fs-caption)}
  .pms-lg{display:inline-flex;align-items:center;gap:5px}
  .pms-sw{width:14px;height:14px;border:1px solid var(--border-default);border-radius:3px;display:inline-block}
  .pms-sw.r0{background:#e7eef4}.pms-sw.r1{background:#f3ece0}.pms-sw.r2{background:#e8f0e6}.pms-sw.r3{background:#f2e7ee}
  .pms-sw.r4{background:#eae6f2}.pms-sw.r5{background:#f4eae0}.pms-sw.r6{background:#e0eef0}.pms-sw.r7{background:#f0e6e6}
  /* ── 割当ダイアログ ── */
  .pms-dlg-back{position:fixed;inset:0;background:rgba(20,22,26,.35);display:flex;align-items:flex-end;justify-content:center;z-index:50}
  .pms-dlg{background:#fff;border-radius:14px 14px 0 0;width:100%;max-width:520px;padding:18px;max-height:80vh;overflow:auto}
  .pms-dlg h3{margin:0 0 4px;display:flex;align-items:center;gap:8px;font-size:var(--fs-h4)}
  .pms-dlg h3 .b{width:5px;height:16px;border-radius:2px;background:var(--c-brand);flex:none}
  .pms-plist button{display:block;width:100%;text-align:left;margin-bottom:6px}
  .pms-plist button .pms-chip{margin-left:6px}
  @media(min-width:560px){ .pms-dlg-back{align-items:center} .pms-dlg{border-radius:14px} }
  /* ── 作業ログ ── */
  .pms-al-item{display:flex;gap:10px;padding:9px 4px;border-bottom:1px solid var(--border-subtle);font-size:var(--fs-body)}
  .pms-al-item:last-child{border-bottom:none}
  .pms-al-time{flex:0 0 128px;color:var(--text-tertiary);font-size:var(--fs-caption);font-variant-numeric:tabular-nums}
  .pms-al-main{flex:1 1 auto}
  /* ── メール設定 ── */
  .pms-sch-row{display:flex;gap:8px;align-items:center;padding:8px 4px;border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}
  .pms-sch-row:last-child{border-bottom:none}
  .pms-sch-tpl{flex:1 1 180px;font-size:var(--fs-sm)}
  .pms-sch-row input,.pms-sch-row select{border:1px solid var(--border-default);border-radius:8px;padding:6px 8px;font-size:var(--fs-sm);font-family:inherit;background:#fff}
  .pms-tpl{border:1px solid var(--border-subtle);border-radius:8px;padding:10px 12px;margin-bottom:10px}
  .pms-tpl summary{cursor:pointer;font-weight:700;font-size:var(--fs-body)}
  /* メールテンプレカード（プレビュー・プロンプト・テスト送信） */
  .pms-tpl-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}
  .pms-tpl-test{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
  .pms-tpl-testto{border:1px solid var(--border-default);border-radius:8px;padding:7px 9px;font-size:var(--fs-sm);font-family:inherit;background:#fff;min-height:38px;width:220px}
  .pms-tpl-testto:focus{outline:none;border-color:var(--pms-accent);box-shadow:0 0 0 3px rgba(47,147,216,.12)}
  .pms-tpl-edit{margin-top:12px;border-top:1px dashed var(--border-subtle);padding-top:9px}
  .pms-tpl-edit summary{cursor:pointer;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary)}
  .pms-mailframe{width:100%;height:480px;border:1px solid var(--border-subtle);border-radius:10px;background:#eef1f4}
  /* ── 各タブ冒頭「この画面の使い方とヒント」── */
  .pms-help{border:1px solid var(--border-default);border-radius:10px;background:#fff;margin:0 0 12px;box-shadow:var(--shadow-50)}
  .pms-help summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:10px 14px;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);min-height:42px}
  .pms-help summary::-webkit-details-marker{display:none}
  .pms-help summary::after{content:"開く";margin-left:auto;font-size:var(--fs-caption);font-weight:700;color:var(--pms-accent);border:1px solid var(--pms-accent-line);border-radius:999px;padding:2px 10px;background:#fff}
  .pms-help[open] summary::after{content:"閉じる"}
  .pms-help .i{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--pms-accent);color:#fff;font-size:var(--fs-micro);font-weight:700;font-style:normal;flex:none}
  .pms-help-body{padding:2px 16px 14px;border-top:1px solid var(--border-subtle)}
  .pms-help-steps{margin:10px 0 0;padding-left:20px;font-size:var(--fs-body);color:var(--text-secondary);line-height:1.9;list-style:decimal}
  .pms-help-steps li{margin:0 0 2px}
  .pms-help-tips{margin-top:10px;display:flex;flex-direction:column;gap:6px}
  .pms-help-tip{display:flex;gap:8px;align-items:flex-start;font-size:var(--fs-sm);color:var(--text-secondary);background:var(--bg-neutral,#fafbfc);border:1px solid var(--border-subtle);border-radius:8px;padding:7px 10px;line-height:1.7}
  .pms-help-tip .i{background:#b06000;width:16px;height:16px;font-size:10px;margin-top:2px}
  /* ── 行の操作ボタン・バッジ帯（当日ボード・表ビュー）── */
  .pms-acts{display:inline-flex;gap:6px;white-space:nowrap;align-items:center}
  .pms-acts .pms-btn+.pms-btn{margin-left:0}
  .pms-table td.acts,.pms-table th.acts{text-align:right;white-space:nowrap}
  .pms-table td.nowrap{white-space:nowrap}
  .pms-badges{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
  .pms-badge.dorm-m{background:#e8f0fb;color:#2b5fa8;border-color:#c5d8f2}
  .pms-badge.dorm-f{background:#fbeaf1;color:#a8326a;border-color:#f2c9da}
  /* PMSで作る予約（新規予約フォーム・在庫の反映・取消とキャンセル料）2026-09-25 */
  .pms-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
  .pms-form-sec h3{margin:0 0 12px}
  .pms-form-static{min-height:40px;display:flex;align-items:center;font-weight:700;font-size:var(--fs-h4)}
  .pms-req{font-size:var(--fs-micro);color:#fff;background:#d05a4f;border-radius:4px;padding:1px 5px;margin-left:4px;font-weight:700}
  .pms-seg{display:flex;flex-wrap:wrap;gap:6px}
  .pms-seg-b{border:1px solid var(--border-default,#dadcdf);background:#fff;color:var(--text-secondary,#56575b);border-radius:999px;padding:7px 14px;font-size:var(--fs-sm);font-weight:700;cursor:pointer;font-family:inherit;min-height:36px}
  .pms-seg-b.on{background:var(--pms-accent);border-color:var(--pms-accent);color:#fff}
  .pms-seg-b.is-policy{border-style:dashed}
  .pms-seg-b.is-policy.on{border-style:solid}
  .pms-check{display:flex;align-items:center;gap:8px;font-size:var(--fs-body);font-weight:700;cursor:pointer}
  .pms-check input{width:18px;height:18px}
  .pms-formbar{position:sticky;bottom:0;z-index:5;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#fff;border:1px solid var(--border-default,#dadcdf);border-radius:12px;padding:12px 14px;margin-top:14px;box-shadow:0 -4px 16px rgba(0,0,0,.06)}
  .pms-formbar-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-left:auto}
  .pms-formbar .pms-btn+.pms-btn{margin-left:0}
  .pms-okbox{border-color:#bfe6c8;background:#f1fbf3}
  .pms-manualbox{border-color:var(--pms-accent-line)}
  .pms-stockbox{border:1px solid #f0d9a8;background:#fff7e6;border-radius:10px;padding:10px 12px}
  .pms-stockbox b{color:#b06000}
  .pms-stockbox.done{border-color:#dfe3e8;background:#f7f8fa;display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
  .pms-stockbox.done b{color:var(--text-primary,#1d1d1f)}
  .pms-btn-danger{color:#c0392b;border-color:#f0b8b8}
  .pms-btn-danger-solid{background:#c0392b;border-color:#c0392b;color:#fff}
  .pms-cancel{margin-top:12px;border:1px solid #f0b8b8;background:#fdf6f6;border-radius:10px;padding:12px 14px}
  .pms-btn:disabled{opacity:.5;cursor:not-allowed}
  @media (max-width:560px){ .pms-form-grid{grid-template-columns:1fr} .pms-form-grid > *{grid-column:auto !important} .pms-formbar-acts{margin-left:0;width:100%} }
  .pms-badge.glamp{background:#fdf3e1;color:#9a5b00;border-color:#f0dcb0}
  .pms-badge.room{background:#eef1f5;color:#44505f;border-color:#d7dde5}
  /* 2026-09-26 到着一覧の小見出し・過去の代表者の候補・食事状況表 */
  .pms-subhead{font-size:var(--fs-body);font-weight:700;margin:14px 0 6px;color:var(--text-secondary)}
  .pms-suggest{margin-top:4px}
  .pms-ml-day{border-top:1px solid #e6e2d8;padding:8px 0}
  .pms-ml-day>summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
  .pms-collect{border-radius:10px;padding:10px 12px;margin:0 0 10px;font-size:var(--fs-h4)}
  .pms-collect.ok{background:#f1fbf3;border:1px solid #bfe6c8}
  .pms-collect.need{background:#fff7e6;border:1px solid #f0d9a8}
  .pms-answers{border:1px solid #dfe3e8;background:#fafbfc;border-radius:10px;padding:10px 12px;margin-bottom:12px}
  .pms-answers .pc-h{font-weight:700;margin-bottom:6px}
  .pms-badge.meal{background:#f0f6ee;color:#4d7a3b;border-color:#d3e5c7}
  .pms-badge.ask{background:#fff7e6;color:#b06000;border-color:#f0d9a8;cursor:help}
  .pms-board-tbl td.plan{max-width:280px}
  /* ── 予約一覧のクイックバー（チップ＋表示切替）── */
  .pms-quickbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
  .pms-chipbar{display:flex;gap:6px;flex-wrap:wrap}
  .pms-qchip{border:1px solid var(--border-default);background:#fff;color:var(--text-secondary);border-radius:999px;padding:7px 14px;font-size:var(--fs-sm);font-weight:700;cursor:pointer;font-family:inherit;min-height:36px}
  .pms-qchip:hover{border-color:var(--pms-accent);color:var(--pms-accent)}
  .pms-qchip.on{background:var(--pms-accent);border-color:var(--pms-accent);color:#fff}
  .pms-pastchk{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);cursor:pointer;min-height:36px;user-select:none}
  .pms-pastchk input{width:16px;height:16px;margin:0;cursor:pointer}
  .pms-pastchk + .pms-viewseg{margin-left:0}
  .pms-pastchk2{margin-left:0}
  .pms-kana{font-weight:400;color:var(--text-secondary);font-size:.92em}
  .pms-viewseg{margin-left:auto;display:inline-flex;border:1px solid var(--border-default);border-radius:9px;overflow:hidden;background:#fff}
  .pms-viewseg button{border:0;background:#fff;color:var(--text-secondary);font-size:var(--fs-sm);font-weight:700;padding:8px 16px;cursor:pointer;font-family:inherit;min-height:36px}
  .pms-viewseg button.on{background:var(--pms-accent);color:#fff}
  .pms-viewseg button+button{border-left:1px solid var(--border-default)}
  /* ── 予約一覧の表ビュー ── */
  .pms-res-tbl td .plan-name{display:inline-block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
  .pms-res-tbl tr.cancelled-row td b{color:var(--text-tertiary);text-decoration:line-through;text-decoration-color:var(--border-default)}
  .pms-res-tbl .pms-res-details{min-width:120px}
  .pms-res-tbl td{vertical-align:top}
  /* ── カルテ：プランの確認事項 ── */
  .pms-plancheck{border:1px solid #f0d9a8;background:#fff7e6;border-radius:10px;padding:12px 14px;margin:0 0 14px}
  .pms-plancheck .pc-h{font-weight:700;font-size:var(--fs-body);color:#b06000;display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
  .pms-plancheck ul{margin:0;padding-left:20px;font-size:var(--fs-body);line-height:1.9;list-style:disc}
  .pms-plancheck a{color:#b06000}
  /* ── マスタタブ ── */
  .pms-ms-plan{border:1px solid var(--border-subtle);border-radius:10px;padding:12px 14px;margin-bottom:10px}
  .pms-ms-planhead{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:4px}
  .pms-ms-planhead b{font-size:var(--fs-body)}
  .pms-ms-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:6px}
  .pms-ms-cb{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-body);font-weight:600;color:var(--text-secondary);cursor:pointer}
  .pms-ms-cb input{width:16px;height:16px;accent-color:var(--pms-accent)}
  .pms-ms-checklist{margin:4px 0 0;padding-left:20px;font-size:var(--fs-body);line-height:1.9;list-style:disc}
  /* ── メール本文の変数ハイライト ── */
  .pms-varchip{display:inline-block;background:#fff1c2;border:1px solid #e8cf7e;border-radius:4px;padding:0 4px;font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-caption)}
  .pms-varwrap{position:relative;background:#fff;border-radius:8px}
  .pms-varwrap .pms-varback{position:absolute;inset:0;overflow:hidden;pointer-events:none;white-space:pre-wrap;word-break:break-word;color:transparent;border:1px solid transparent;border-radius:8px;padding:8px 10px;font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-sm);line-height:1.7}
  .pms-varwrap .pms-varback mark{color:transparent;background:#fff1c2;border-radius:3px;box-shadow:0 0 0 1px #e8cf7e inset}
  .pms-varwrap textarea.pms-tpl-body{position:relative;display:block;width:100%;background:transparent;min-height:240px;font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-sm);line-height:1.7;padding:8px 10px}
  /* ── カスタム質問（設定）── */
  .pms-q-row{display:flex;gap:8px;align-items:center;padding:9px 4px;border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}
  .pms-q-row:last-child{border-bottom:none}
  .pms-q-row.off{opacity:.55}
  .pms-q-q{flex:1 1 260px;border:1px solid var(--border-default);border-radius:8px;padding:7px 9px;font-size:var(--fs-body);font-family:inherit;background:#fff;min-height:36px}
  .pms-q-sort{border:1px solid var(--border-default);border-radius:8px;padding:7px 9px;font-size:var(--fs-body);font-family:inherit;background:#fff;min-height:36px}
  .pms-q-q:focus,.pms-q-sort:focus{outline:none;border-color:var(--pms-accent);box-shadow:0 0 0 3px rgba(47,147,216,.12)}
  /* ── 絞り込み（畳む）── 当日探すだけの人にフィルタ9項目を常時見せない（QA600 PMS-13） */
  .pms-more{border:1px solid var(--border-default);border-radius:10px;background:#fff;margin:0 0 12px;padding:0 12px}
  .pms-more summary{cursor:pointer;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);padding:11px 2px;list-style:none}
  .pms-more summary::-webkit-details-marker{display:none}
  .pms-more summary::before{content:"▸ ";color:var(--text-tertiary)}
  .pms-more[open] summary::before{content:"▾ "}
  .pms-more summary.on{color:var(--pms-accent)}
  .pms-more .pms-toolbar{margin:0 0 12px;border:0;box-shadow:none;padding:0}
  /* ── 今日の残り作業（QA600 PMS-16／PMS-19）── */
  .pms-todo{list-style:none;margin:0;padding:0;counter-reset:t}
  .pms-todo li{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:9px 4px;border-bottom:1px solid var(--border-subtle);font-size:var(--fs-body)}
  .pms-todo li:last-child{border-bottom:none}
  .pms-todo li::before{counter-increment:t;content:counter(t);flex:none;width:20px;height:20px;border:1px solid var(--border-default);border-radius:50%;font-size:var(--fs-micro);font-weight:700;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}
  .pms-todo .t{flex:1 1 160px}
  .pms-todo .n{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
  @media (max-width:560px){ .pms-toolbar{flex-direction:column;align-items:stretch} .pms-pe-grid{grid-template-columns:1fr} .pms-al-item{flex-direction:column;gap:2px} .pms-al-time{flex:none}
    /* 接客中に片手で押す前提。タップ目標は44px以上を確保する。 */
    .pms-btn.sm{min-height:44px} .pms-plist button{min-height:44px} .pms-more summary{min-height:44px;display:flex;align-items:center}
    /* iOS は16px未満の入力欄にフォーカスすると画面を勝手に拡大する（そのたび現場が指で戻すことになる）。 */
    .pms-fld input,.pms-fld select,.pms-fld textarea,.pms-pe-row input,.pms-pe-row select,.pms-pe-grid input,.pms-cq-a,.pms-q-q,.pms-q-sort{font-size:var(--fs-h4)}
    /* 変数ハイライトの背面レイヤは textarea と同じ文字組でないと座布団がズレる */
    .pms-varwrap .pms-varback,.pms-varwrap textarea.pms-tpl-body{font-size:var(--fs-h4)}
    .pms-table tbody td{padding:10px 8px}
    /* 部屋割りのマスは 78×34px で、指で押すと1つ上下のベッド行に当たっていた（別ベッドの割当ダイアログが開く）。
       高さを44pxにし、ベッド列を詰めて見える日付列を増やす＝QA600 PMS-12。 */
    .pms-cell{height:44px} .pms-cell .occ{height:44px}
    table.pms-grid thead th.bedcol,table.pms-grid tbody th.bedcol{min-width:104px} }
  /* 入金チェック（2026-09-19〜）：①お客さまの支払い ②当社への入金 ③予約管理の記録 を1行ずつ並べる */
  .pms-tabcount{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:#c0392b;color:#fff;font-size:var(--fs-micro);font-weight:700;line-height:1}
  .pc-headrow{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 12px}
  .pc-count{font-size:var(--fs-h4)}
  .pc-sub{display:block;font-size:var(--fs-caption);color:var(--text-tertiary);font-weight:400;margin-top:2px}
  .pc-headrow .pc-sub{display:inline;margin-left:10px}
  .pc-progress{margin:0 0 14px}
  .pc-bar{height:6px;border-radius:999px;background:#eef0f2;overflow:hidden;position:relative;margin-bottom:6px}
  .pc-bar i{position:absolute;top:0;bottom:0;width:30%;border-radius:inherit;background:var(--pms-accent);animation:pc-slide 1.3s ease-in-out infinite}
  @keyframes pc-slide{0%{left:-30%}100%{left:100%}}
  @media (prefers-reduced-motion:reduce){.pc-bar i{animation:none;left:0;width:100%;opacity:.35}}
  .pc-err{color:#c0392b;font-size:var(--fs-sm);margin:0 0 12px}
  .pc-group h3 .pc-gcount{font-size:var(--fs-sm);color:var(--text-secondary,#56575b);font-weight:700}
  .pc-lead{margin:-6px 0 10px}
  .pc-item{border:1px solid var(--border-default,#dadcdf);border-radius:10px;margin:0 0 8px;background:#fff}
  .pc-item.danger{border-left-width:1px}
  .pc-item>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;min-height:44px}
  .pc-item>summary::-webkit-details-marker{display:none}
  .pc-item .pc-t{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
  .pc-item .pc-meta{font-size:var(--fs-sm);color:var(--text-secondary,#56575b)}
  .pc-item .pc-r{font-size:var(--fs-sm);white-space:nowrap;font-variant-numeric:tabular-nums}
  .pc-item .pc-chev{color:var(--text-tertiary);transition:transform .15s}
  .pc-item[open] .pc-chev{transform:rotate(180deg)}
  .pc-item.focus{border-color:var(--pms-accent);box-shadow:0 0 0 3px rgba(47,147,216,.15)}
  .pc-item.resolved{opacity:.6}
  .pc-body{padding:0 12px 12px;border-top:1px solid var(--border-default,#eceef0)}
  .pc-flow{margin:10px 0 12px;border:1px solid var(--border-default,#e6e7ea);border-radius:8px;overflow:hidden}
  .pc-row{display:grid;grid-template-columns:150px 1fr auto;gap:10px;align-items:start;padding:9px 11px;font-size:var(--fs-body)}
  .pc-row+.pc-row{border-top:1px solid var(--border-default,#eceef0)}
  .pc-k{font-weight:700;color:var(--text-secondary,#56575b);font-size:var(--fs-sm);display:flex;align-items:center;gap:6px}
  .pc-n{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#eef0f2;font-size:var(--fs-micro);flex:none}
  .pc-st{text-align:right}
  .pc-q{font-size:var(--fs-body);margin:0 0 8px}
  .pc-q b{margin-right:6px}
  .pc-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px}
  .pc-actions .pms-btn+.pms-btn{margin-left:0}
  .pc-inline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}
  .pc-inline input,.pc-inline select{border:1px solid var(--border-default,#dadcdf);border-radius:8px;padding:8px 10px;font-size:var(--fs-body);min-height:40px;font-family:inherit;background:#fff}
  .pc-inline input[type=number]{width:130px}
  .pc-inline input[type=text]{width:220px;max-width:100%}
  .pc-more{margin:4px 0 8px;font-size:var(--fs-sm)}
  .pc-more>summary{cursor:pointer;color:var(--text-secondary,#56575b)}
  .pc-cand{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-top:1px dashed var(--border-default,#e6e7ea);font-size:var(--fs-body)}
  .pc-cand-b{flex:1;min-width:0}
  .pc-none{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-default,#eceef0);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
  .pc-none>.pc-sub{flex-basis:100%;margin:0}
  .pc-none .pms-btn+.pms-btn{margin-left:0}
  .pc-msg{font-size:var(--fs-sm);margin:6px 0 0;min-height:0}
  .pc-msg.ok{color:#1f7a33} .pc-msg.ng{color:#c0392b}
  .pc-notice{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-color:#f0d9a8;background:#fff7e6;font-size:var(--fs-body)}
  .pc-notice b{color:#b06000}
  .pc-karte{border:1px solid var(--border-default,#e6e7ea);border-radius:10px;padding:10px 12px;margin:0 0 12px;background:#fafbfc}
  .pc-karte-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .pc-karte-h .pc-sub{display:inline;margin:0}
  .pc-karte-h .pms-btn{margin-left:auto}
  .pc-karte .pc-flow{margin:8px 0 0;background:#fff}
  /* 領収書の原本（ポップアップ） */
  .pc-imgbtn{border:1px solid var(--pms-accent-line);background:#fff;color:var(--pms-accent);border-radius:7px;padding:2px 9px;font-size:var(--fs-caption);font-weight:700;cursor:pointer;font-family:inherit;margin-left:4px;white-space:nowrap;min-height:28px}
  .pc-imgbtn:hover{background:var(--pms-accent-soft)}
  .pc-modal{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:16px}
  .pc-modal[hidden]{display:none}
  .pc-mback{position:absolute;inset:0;background:rgba(20,22,26,.55)}
  .pc-mbox{position:relative;background:#fff;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.25);width:min(760px,100%);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;outline:none}
  .pc-mhead{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border-default,#eceef0)}
  .pc-mhead b{flex:1;min-width:0;font-size:var(--fs-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pc-mclose{border:0;background:transparent;font-size:var(--fs-h3);cursor:pointer;width:40px;height:40px;border-radius:8px;color:var(--text-secondary,#56575b)}
  .pc-mclose:hover{background:#f1f2f4}
  .pc-mbody{padding:12px;overflow:auto;min-height:120px;display:flex;align-items:flex-start;justify-content:center}
  .pc-mbody .pc-progress{width:100%}
  .pc-mimg{max-width:100%;height:auto;display:block;border-radius:6px}
  .pc-mpdf{width:100%;height:70vh;border:0}
  @media (max-width:640px){
    .pc-row{grid-template-columns:1fr auto;gap:4px 8px}
    .pc-k{grid-column:1 / -1}
    .pc-item>summary{flex-wrap:wrap}
    .pc-inline input,.pc-inline select{font-size:var(--fs-h4)}
    .pc-cand{flex-wrap:wrap}
    .pc-cand-b{flex:1 1 calc(100% - 60px)}
    .pc-cand .pms-btn,.pc-actions .pms-btn,.pc-none>.pms-btn{width:100%}
    .pc-inline input[type=text]{flex:1 1 160px;width:auto}
  }

/* ════════════════ 2026-09-28 改修 ════════════════
   方針: ①どのタブも同じ幅 ②毎回読まなくていい説明は畳む ③色とアイコンで意味を伝える ④表は折り返さず横スクロール */

/* ページの枠（どのタブも同じ幅。タブごとに 940px へ絞っていたのをやめた） */
.pms-page{max-width:1320px;margin:0 auto;padding:var(--space-4) var(--space-5) var(--space-12)}
.pms-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin:0 0 var(--space-3)}
.pms-title{display:flex;align-items:baseline;gap:var(--space-3);min-width:0}
.pms-title h1{margin:0;font-size:var(--fs-h2);font-weight:700;letter-spacing:.02em}
.pms-title-sub{color:var(--text-tertiary);font-size:var(--fs-sm)}
.pms-headacts{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
.pms-headacts .pms-btn+.pms-btn{margin-left:0}
.pms-headacts .pms-updated{margin:0;min-height:0;font-size:var(--fs-caption);color:var(--text-tertiary)}
.pms-btn .ic,.pms-link .ic{width:16px;height:16px}
/* リンクのメニュー（事前設定リスト・チェックイン画面の設定・お客さま用の画面） */
.pms-menu{position:relative}
.pms-menu>summary{list-style:none}
.pms-menu>summary::-webkit-details-marker{display:none}
.pms-menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:260px;background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-lg,12px);box-shadow:0 10px 30px rgba(20,22,26,.12);padding:var(--space-2)}
.pms-menu-list a{display:block;padding:9px 12px;border-radius:8px;color:var(--text-primary);text-decoration:none;font-size:var(--fs-body)}
.pms-menu-list a:hover{background:var(--pms-accent-soft);color:var(--pms-accent)}
.pms-menu-list a.guest{color:#4d7a3b}
.pms-menu-h{margin:6px 12px 2px;font-size:var(--fs-micro);font-weight:700;color:var(--text-tertiary);letter-spacing:.04em}

/* タブ（3群・アイコン付き）。上に貼り付くので、どこまで下へ読んでも移れる */
.pms-tabs{display:flex;gap:var(--space-4);align-items:flex-end;margin:0 0 var(--space-3);position:sticky;top:0;z-index:20;background:var(--bg-app);border-bottom:1px solid var(--border-default);overflow-x:auto;padding:var(--space-1) 0 0}
.pms-tabgroup{display:flex;align-items:flex-end;gap:2px;flex:none;position:relative;padding-top:14px}
.pms-tabgroup+.pms-tabgroup{padding-left:var(--space-4);border-left:1px solid var(--border-subtle)}
.pms-tabgroup-h{position:absolute;top:0;left:10px;font-size:var(--fs-micro);font-weight:700;color:var(--text-tertiary);letter-spacing:.06em;white-space:nowrap}
.pms-tabgroup+.pms-tabgroup .pms-tabgroup-h{left:calc(var(--space-4) + 10px)}
.pms-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 10px 9px;font-size:var(--fs-body)}
.pms-tab .ic{width:17px;height:17px;opacity:.75}
.pms-tab.on .ic{opacity:1}
.pms-tabcount{margin-left:2px}
/* PC 幅も折り返さず1行のまま。はみ出したら横スクロール（2026-09-29 井上さん：「設定」の群が2行目に落ちていた）。
   以前は 2026-09-28 にグループ単位で折り返していたが、段が増えるとタブ列が縦に伸びて本文を押し下げる。
   スクロールできることは、端のぼかしと丸い矢印で見せる（pms-tabs-scroll.js が包み .pms-tabs-wrap に .can-l / .can-r を付ける）。 */
.pms-tabs{flex-wrap:nowrap;scrollbar-width:none}
.pms-tabs::-webkit-scrollbar{display:none}
.pms-tabs-wrap{position:sticky;top:0;z-index:20;background:var(--bg-app);border-bottom:1px solid var(--border-default);margin:0 0 var(--space-3)}
.pms-tabs-wrap>.pms-tabs{position:static;margin:0;border-bottom:0}
.pms-tabs-wrap::before,.pms-tabs-wrap::after{content:"";position:absolute;top:0;bottom:0;width:64px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:1}
.pms-tabs-wrap::before{left:0;background:linear-gradient(to right,var(--bg-app) 35%,rgba(255,255,255,0))}
.pms-tabs-wrap::after{right:0;background:linear-gradient(to left,var(--bg-app) 35%,rgba(255,255,255,0))}
.pms-tabs-wrap.can-l::before,.pms-tabs-wrap.can-r::after{opacity:1}
.pms-tabs-arrow{position:absolute;top:50%;z-index:2;width:30px;height:30px;margin-top:-15px;padding:0;border-radius:50%;border:1px solid var(--pms-accent-line);background:#fff;color:var(--pms-accent);box-shadow:0 1px 5px rgba(0,0,0,.14);display:none;align-items:center;justify-content:center;cursor:pointer}
.pms-tabs-arrow:hover{background:var(--pms-accent-soft)}
.pms-tabs-arrow svg{width:16px;height:16px}
.pms-tabs-arrow.l{left:4px}
.pms-tabs-arrow.r{right:4px}
.pms-tabs-wrap.can-l .pms-tabs-arrow.l,.pms-tabs-wrap.can-r .pms-tabs-arrow.r{display:inline-flex}
/* PC 幅（中身は最大 1280px）で14タブがちょうど1行に収まるよう、左右の余白と群の間を少しだけ詰める */
@media (min-width:761px){ .pms-tabs{gap:var(--space-3)} .pms-tabgroup+.pms-tabgroup{padding-left:var(--space-3);border-left:1px solid var(--border-subtle)} .pms-tabgroup+.pms-tabgroup .pms-tabgroup-h{left:calc(var(--space-3) + 8px)} .pms-tabgroup-h{left:8px} .pms-tab{padding:8px 8px 9px;gap:5px} }
@media (max-width:760px){ .pms-tabgroup-h{display:none} .pms-tabgroup{padding-top:0} .pms-tabs{gap:var(--space-2)} .pms-tabgroup+.pms-tabgroup{padding-left:var(--space-2)} .pms-tab{padding:9px 8px} .pms-page{padding:var(--space-3) var(--space-3) var(--space-12)} }

/* 最近見たカルテ（タブの下。押すとそのカルテへ戻る） */
.pms-recent{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0 0 var(--space-3)}
.pms-recent[hidden]{display:none}
.pms-recent-h{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-caption);font-weight:700;color:var(--text-tertiary)}
.pms-recent-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--pms-accent-line);background:#fff;color:var(--pms-accent);border-radius:999px;padding:4px 12px;font-size:var(--fs-sm);font-weight:700;text-decoration:none}
.pms-recent-chip:hover{background:var(--pms-accent-soft)}
.pms-recent-chip .d{color:var(--text-tertiary);font-weight:400;font-size:var(--fs-caption)}

/* 使い方（ミニ校長の吹き出し）。畳んだ状態が既定 */
.pms-help{border:1px solid var(--pms-accent-line);background:var(--pms-accent-bg);box-shadow:none}
.pms-help summary{gap:10px;padding:6px 12px 6px 8px;min-height:48px;color:var(--text-primary)}
.pms-help summary::after{content:"開く";border-color:var(--pms-accent-line)}
.pms-help-t{font-size:var(--fs-body);font-weight:700}
.pms-help-more{font-size:var(--fs-caption);font-weight:400;color:var(--text-tertiary)}
.pms-kocho-face{width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid var(--pms-accent-line);object-fit:contain;flex:none}
.pms-help-body{border-top:0;padding:0 14px 14px 58px}
.pms-bubble{position:relative;background:#fff;border:1px solid var(--pms-accent-line);border-radius:12px;padding:12px 14px}
.pms-bubble::before{content:"";position:absolute;left:-7px;top:14px;width:12px;height:12px;background:#fff;border-left:1px solid var(--pms-accent-line);border-bottom:1px solid var(--pms-accent-line);transform:rotate(45deg)}
.pms-help-steps{margin:0;line-height:1.8}
.pms-help-tip{background:#fff7e6;border-color:#f0d9a8;color:#7a4a00}
.pms-help-tip .ic{width:16px;height:16px;color:#b06000;margin-top:3px}
/* hidden 属性は必ず効かせる（.pms-fld{display:flex} などに負けて、作業ログの「期間指定」欄が常に出ていた） */
.pms-page [hidden]{display:none !important}
.pms-help summary::after{white-space:nowrap;flex:none}
/* スマホ幅の絞り込み欄：縦1列に積むと長いので、日付2つ・ボタン2つを横に並べる */
@media (max-width:560px){ .pms-page .pms-toolbar{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:8px 10px} .pms-page .pms-toolbar>*{flex:1 1 130px;min-width:0} .pms-page .pms-toolbar .pms-fld:has(> .pms-btn)>label{display:none} .pms-page .pms-toolbar .pms-btn{width:100%} .pms-page .pms-toolbar>.pms-fld:has(> .pms-fld){flex-basis:100%} .pms-page .pms-fld .pms-fld{flex:1 1 0;min-width:0} .pms-page .pms-toolbar input[type=date]{min-width:0;width:100%} }
.pms-help-t{white-space:nowrap}
@media (max-width:560px){ .pms-help-body{padding:0 10px 12px} .pms-bubble::before{display:none} .pms-help-more{display:none} }

/* ミニ校長のひとこと（色分けした案内） */
.pms-kocho{display:flex;gap:10px;align-items:flex-start;margin:0 0 var(--space-3)}
.pms-kocho-b{position:relative;flex:1;min-width:0;border-radius:12px;padding:10px 14px;font-size:var(--fs-body);line-height:1.7;border:1px solid var(--pms-accent-line);background:var(--pms-accent-bg)}
.pms-kocho-b::before{content:"";position:absolute;left:-7px;top:14px;width:12px;height:12px;background:inherit;border-left:1px solid;border-bottom:1px solid;border-color:inherit;transform:rotate(45deg)}
.pms-kocho.warn .pms-kocho-b{border-color:#f0d9a8;background:#fff7e6}
.pms-kocho.ok .pms-kocho-b{border-color:#bfe6c8;background:#f1fbf3}
.pms-kocho.danger .pms-kocho-b{border-color:#f2c4bf;background:#fdf6f6}

/* 畳んだ説明（「説明」を押すと開く） */
.pms-fold{margin:-2px 0 var(--space-2)}
.pms-fold>summary{display:inline-flex;align-items:center;gap:4px;list-style:none;cursor:pointer;font-size:var(--fs-caption);font-weight:700;color:var(--text-tertiary);border:1px solid var(--border-subtle);background:#fff;border-radius:999px;padding:2px 10px 2px 8px;min-height:26px}
.pms-fold>summary::-webkit-details-marker{display:none}
.pms-fold>summary .ic{width:14px;height:14px}
.pms-fold>summary:hover{color:var(--pms-accent);border-color:var(--pms-accent-line)}
.pms-fold[open]>summary{color:var(--pms-accent);border-color:var(--pms-accent-line);background:var(--pms-accent-soft)}
.pms-fold>.pms-note{margin:6px 0 0 !important;padding:8px 12px;border-left:3px solid var(--pms-accent-line);background:var(--bg-subtle);border-radius:0 8px 8px 0;color:var(--text-secondary);line-height:1.8}

/* 見出し（ブロック・カルテ）：色の棒の代わりにアイコン */
.pms-block h3 .ic,.pms-acc-h .ic{width:18px;height:18px;color:var(--pms-accent)}
.pms-acc-h{font-size:var(--fs-h4)}

/* 表：折り返さずに横スクロール（何行も改行されて読めなかった）。長い文の列だけ .wrap で折り返す */
.pms-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:8px}
.pms-table{width:100%;min-width:100%}
.pms-table tbody td{white-space:nowrap}
.pms-table tbody td.wrap,.pms-table tbody td .wrap{white-space:normal;min-width:16em}
.pms-table tbody td .pms-note{white-space:normal}
.pms-table tbody td.wrap .pms-note{display:block}
/* 重要度の低い長い値（住所など）は短く切る。押すと全文 */
.pms-clip{display:inline-block;max-width:14em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;cursor:pointer}
.pms-clip.open{max-width:none;white-space:normal;min-width:18em}
/* 左の1列を固定（横に長い表で「誰の行か」を見失わない） */
.pms-table.stick1 th:first-child,.pms-table.stick1 td:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 var(--border-subtle)}
.pms-table.stick1 thead th:first-child{background:var(--bg-neutral);z-index:2}
.pms-table.stick2 th:nth-child(2),.pms-table.stick2 td:nth-child(2){position:sticky;left:var(--stick1w,96px);z-index:1;background:#fff;box-shadow:1px 0 0 var(--border-subtle)}
.pms-table.stick2 thead th:nth-child(2){background:var(--bg-neutral);z-index:2}

/* 予約時の回答の出どころ */
.pms-src{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px}
/* 当日ボードの数字のカード：見出し（「男性ドミトリー（この夜）」など）が切れていた */
.pms-stats{grid-template-columns:repeat(auto-fit,minmax(124px,1fr))}
.pms-stat .lbl{white-space:normal;line-height:1.4}
/* 入力欄の見た目をそろえる（表の中の入力欄が素のままだった）。:where で優先度を下げ、個別の指定があればそちらを使う */
.pms-page :where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]), select, textarea){border:1px solid var(--border-default);border-radius:8px;padding:6px 9px;font:inherit;font-size:var(--fs-body);background:#fff;min-height:36px;color:var(--text-primary)}
.pms-page :where(input:not([type=checkbox]):not([type=radio]), select, textarea):focus{outline:none;border-color:var(--pms-accent);box-shadow:0 0 0 3px rgba(47,147,216,.12)}
.pms-page :where(input[type=checkbox], input[type=radio]){accent-color:var(--pms-accent);width:16px;height:16px}
.pms-table td :where(input[type=number]){width:5.5em}
@media (max-width:560px){ .pms-page :where(input:not([type=checkbox]):not([type=radio]), select, textarea){font-size:16px} }
/* マスタのプラン（畳んだ見出しに食事と確認事項の数） */
details.pms-ms-plan{padding:0}
details.pms-ms-plan>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px}
details.pms-ms-plan>summary::-webkit-details-marker{display:none}
details.pms-ms-plan>summary .ic{width:16px;height:16px;color:var(--text-tertiary);transform:rotate(-90deg);transition:transform .15s}
details.pms-ms-plan[open]>summary .ic{transform:none}
details.pms-ms-plan>summary b{font-size:var(--fs-body)}
details.pms-ms-plan>summary:hover{background:var(--bg-subtle)}
details.pms-ms-plan>:not(summary){margin-left:14px;margin-right:14px}
details.pms-ms-plan[open]{padding-bottom:12px}
/* マスタの設定を 利用区分 → 質問の対象 → 登録順 でたどる。 */
.pms-ms-tools{display:flex;align-items:flex-end;flex-wrap:wrap;gap:var(--space-3);padding-block:var(--space-3)}
.pms-ms-search{flex:1 1 240px;max-width:480px}
.pms-ms-hint{padding-bottom:var(--space-3)}
.pms-ms-tree{display:grid;gap:var(--space-3)}
.pms-ms-group{border:1px solid var(--border-default);border-radius:var(--radius-lg,12px);overflow:hidden}
.pms-ms-group>summary,.pms-ms-branch>summary{display:flex;align-items:center;gap:var(--space-2);list-style:none;cursor:pointer;padding:var(--space-4);font-size:var(--fs-body)}
.pms-ms-group>summary{background:var(--bg-neutral)}
.pms-ms-group>summary::-webkit-details-marker,.pms-ms-branch>summary::-webkit-details-marker{display:none}
.pms-ms-group>summary:hover,.pms-ms-branch>summary:hover{background:var(--pms-accent-soft)}
.pms-ms-group>summary:focus-visible,.pms-ms-branch>summary:focus-visible,details.pms-ms-plan>summary:focus-visible{outline:2px solid var(--pms-accent);outline-offset:-4px}
.pms-ms-group>summary>.pms-badge,.pms-ms-branch>summary>.pms-badge{margin-left:auto}
.pms-ms-group>summary>.ic,.pms-ms-branch>summary>.ic{width:16px;height:16px;flex:none;transform:rotate(-90deg);color:var(--text-tertiary)}
.pms-ms-group[open]>summary>.ic,.pms-ms-branch[open]>summary>.ic{transform:none}
.pms-ms-branches{display:grid;gap:var(--space-2);padding:var(--space-3)}
.pms-ms-branch{border:1px solid var(--border-subtle);border-radius:var(--radius-md,8px)}
.pms-ms-list{display:grid;gap:var(--space-2);padding-inline:var(--space-3)}
.pms-ms-list>.pms-ms-plan{margin:0 0 var(--space-2);min-width:0}
.pms-ms-category{display:flex;flex-wrap:wrap;gap:var(--space-3);padding-top:var(--space-3)}
.ms-plan-badges{display:inline-flex;gap:var(--space-1);flex-wrap:wrap}
.ms-registered{font-variant-numeric:tabular-nums;font-size:var(--fs-caption)}
.ms-branch-empty{padding-inline:var(--space-4);padding-bottom:var(--space-3)}
.pms-ms-tree [hidden],#msPlanEmpty[hidden]{display:none!important}
@media(max-width:600px){
  .pms-ms-tools>.pms-fld{flex:1 1 100%;max-width:none}
  .pms-ms-group>summary,.pms-ms-branch>summary{padding:var(--space-3)}
  .pms-ms-branches,.pms-ms-list{padding-inline:var(--space-2)}
  .pms-ms-category>.pms-fld{flex:1 1 100%;min-width:0}
  .pms-ms-sum>b{overflow-wrap:anywhere;flex:1 1 180px}
  .pms-ms-sum>.ms-registered{flex-basis:100%}
}
/* 当日ボードの「要確認」（1件1行・押すと開く） */
.pms-alerts{border-color:#f0b8b8}
.pms-alerts h3 .ic{color:#c0392b}
.pms-alert{border:1px solid var(--al-line);border-left:4px solid var(--al-fg);background:var(--al-bg);border-radius:8px;margin-top:8px}
.pms-alert>summary{list-style:none;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 12px;cursor:pointer;min-height:44px}
.pms-alert>summary::-webkit-details-marker{display:none}
.pms-alert>summary .ic{margin-left:auto;width:16px;height:16px;color:var(--text-tertiary);transition:transform .15s}
.pms-alert[open]>summary .ic{transform:rotate(180deg)}
.pms-alert-sev{display:inline-flex;align-items:center;border-radius:999px;padding:1px 10px;font-size:var(--fs-caption);font-weight:700;color:#fff;background:var(--al-fg)}
.pms-alert-t{color:var(--al-fg)}
.pms-alert-b{padding:0 12px 12px}
.pms-alert-detail{margin:0 0 8px;line-height:1.7;font-size:var(--fs-body)}
.pms-alert-do{display:flex;gap:8px;align-items:flex-start;background:#fff;border:1px solid var(--al-line);border-radius:8px;padding:8px 10px;font-size:var(--fs-body);line-height:1.7}
.pms-alert-do>.ic{width:18px;height:18px;color:#b06000;margin-top:3px;flex:none}
