/* 終電後の見回り */
.pt-layer{position:absolute;inset:0;z-index:15;pointer-events:none}
.g3d.pt-modal .g3d-crosshair,.g3d.pt-modal .g3d-prompt{display:none!important}
.pt-layer kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;margin-right:8px;border-radius:5px;background:rgba(255,255,255,.14);color:#cfe4f2;font:800 11px/1 var(--g3d-ui)}

/* 点検表 */
.pt-list{width:min(300px,58vw);padding:10px 12px 8px;border-radius:12px;background:rgba(8,12,16,.58);border:1px solid rgba(160,200,230,.18);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font-size:13px;line-height:1.35}
.pt-list__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;color:#bfe0ff;letter-spacing:.08em}
.pt-list__head b{font-weight:800}
.pt-list ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}
.pt-list li{display:grid;grid-template-columns:18px 1fr;grid-template-rows:auto auto;column-gap:6px;padding:3px 4px;border-radius:6px}
.pt-list li i{grid-row:1/3;display:grid;place-items:center;width:16px;height:16px;margin-top:1px;border-radius:4px;border:1.5px solid rgba(255,255,255,.4);font-style:normal;font-size:11px;font-weight:900;color:#0c1418}
.pt-list li.is-done i{background:#8fd0ff;border-color:#8fd0ff}
.pt-list li.is-done span{opacity:.5;text-decoration:line-through}
.pt-list li small{font-size:11px;opacity:.6}
.pt-list li.is-next{background:rgba(143,208,255,.12)}
.pt-list li.is-next span{color:#d8efff;font-weight:800}

/* 無線端末 */
.pt-term{position:absolute;top:calc(58px + env(safe-area-inset-top));right:calc(14px + env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));width:min(440px,calc(100% - 28px));pointer-events:auto;display:flex;animation:pt-in .2s ease both}
.pt-term__body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:14px 16px 16px;border-radius:16px;background:linear-gradient(180deg,rgba(18,26,22,.94),rgba(10,15,13,.96));border:2px solid #2d3a33;box-shadow:0 20px 60px -10px rgba(0,0,0,.8),inset 0 0 0 1px rgba(140,255,170,.08);color:#d8f2dc}
.pt-term__head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.pt-term__head b{font-weight:900;letter-spacing:.08em}
.pt-term__head small{flex:1;font-size:11px;opacity:.6}
.pt-term__led{width:10px;height:10px;border-radius:50%;background:#6aff8a;box-shadow:0 0 10px #6aff8a;animation:pt-blink 1.4s infinite}
.pt-term__x{width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:#d8f2dc;font-size:20px;cursor:pointer}
.pt-term__hint{margin:0 0 8px;font-size:12px;line-height:1.5;opacity:.85}
.pt-term__miss{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;background:rgba(255,120,90,.15);color:#ffb8a0}
.pt-term h3{display:flex;align-items:center;gap:8px;margin:10px 0 6px;font-size:13px;letter-spacing:.1em;color:#9adfb0}
.pt-term h3 span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#9adfb0;color:#0c1410;font-size:12px;font-weight:900}
.pt-term__grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.pt-term__grid button{position:relative;display:flex;align-items:center;min-height:42px;padding:6px 8px;border-radius:10px;border:1px solid rgba(160,240,190,.18);background:rgba(160,240,190,.05);color:#e6f6e8;font:700 13px/1.25 var(--g3d-ui);text-align:left;cursor:pointer}
.pt-term__grid button:hover{background:rgba(160,240,190,.12)}
.pt-term__grid button[aria-pressed="true"]{background:#9adfb0;color:#0c1410;border-color:#9adfb0}
.pt-term__grid button[aria-pressed="true"] kbd{background:rgba(0,0,0,.18);color:#0c1410}
.pt-term__grid button em{position:absolute;right:6px;top:4px;font-style:normal;font-size:10px;padding:0 5px;border-radius:999px;background:#ffcf6a;color:#1a1408}
.pt-term__grid.is-focus{outline:1px dashed rgba(160,240,190,.35);outline-offset:3px;border-radius:12px}
.pt-term__foot{position:sticky;bottom:-16px;margin:12px -16px -16px;padding:10px 16px 16px;background:linear-gradient(180deg,rgba(10,15,13,0),rgba(10,15,13,.97) 30%)}
.pt-term__send{width:100%;min-height:48px;border-radius:12px;border:0;background:#ffcf6a;color:#1a1408;font:900 14px/1.3 var(--g3d-ui);cursor:pointer;padding:6px 10px}
.pt-term__send:disabled{background:rgba(255,255,255,.1);color:rgba(255,255,255,.45);cursor:default}
.pt-term__busy{margin:8px 0 0;font-size:12px;color:#ffcf6a}

/* メモ・選択 */
.pt-sheet{position:absolute;inset:0;display:grid;place-items:center;padding:calc(64px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom));background:radial-gradient(90% 80% at 50% 50%,rgba(4,6,8,.45),rgba(0,0,0,.78));pointer-events:auto;overflow:auto;animation:pt-in .25s ease both}
.pt-paper{position:relative;width:min(560px,100%);max-height:100%;overflow-y:auto;padding:26px 30px 18px;border-radius:4px;color:#2c261e;background:radial-gradient(120% 80% at 80% 10%,rgba(120,100,60,.14),rgba(0,0,0,0) 55%),linear-gradient(180deg,#efe8d6,#e2d7bd);box-shadow:0 30px 80px -20px rgba(0,0,0,.85);transform:rotate(-.4deg)}
.pt-paper::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(60,80,120,.08) 0 1px,transparent 1px 32px);border-radius:4px}
.pt-paper__kicker{margin:0;font:800 11px/1.4 var(--g3d-ui);letter-spacing:.3em;color:#7a6a50}
.pt-paper h3{margin:4px 0 12px;font:800 19px/1.45 var(--g3d-ui);letter-spacing:.04em}
.pt-paper p{margin:0 0 .5em;font:600 16px/1.95 'Klee One','Zen Kaku Gothic New',sans-serif}
.pt-paper__foot{position:sticky;bottom:-18px;margin-top:10px;padding:8px 0 12px;background:linear-gradient(180deg,rgba(226,215,189,0),#e2d7bd 40%);text-align:center}
.pt-btn{min-height:46px;padding:8px 22px;border-radius:12px;border:1px solid rgba(60,40,20,.35);background:rgba(60,44,26,.1);color:#3a2e20;font:800 14px/1.2 var(--g3d-ui);cursor:pointer}
.pt-panel{width:min(520px,100%);padding:22px 22px 18px;border-radius:16px;background:rgba(12,16,20,.94);border:1px solid rgba(160,200,230,.2);color:#e8f0f4}
.pt-panel h3{margin:0 0 8px;font-size:18px;font-weight:900}
.pt-panel p{margin:0 0 14px;font-size:14px;line-height:1.7;opacity:.85}
.pt-choice{display:flex;flex-direction:column;gap:8px}
.pt-panel .pt-btn{width:100%;text-align:left;color:#e8f0f4;border-color:rgba(160,200,230,.25);background:rgba(160,200,230,.06);display:flex;align-items:center}
.pt-panel .pt-btn--main{background:#8fd0ff;color:#0a1620;border-color:#8fd0ff}

/* 夜の始まり */
.pt-card{position:absolute;left:50%;top:34%;transform:translate(-50%,-50%);text-align:center;color:#eef6fb;text-shadow:0 2px 16px rgba(0,0,0,.8);pointer-events:none}
.pt-card.is-in{animation:pt-card 3.6s ease both}
.pt-card p{margin:0;font-size:14px;letter-spacing:.3em;opacity:.8}
.pt-card h2{margin:6px 0 2px;font-size:clamp(34px,7vw,60px);font-weight:900;letter-spacing:.18em}
.pt-card small{font-size:15px;letter-spacing:.25em;opacity:.75}
.pt-fade{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none}

/* 結果の振り返り */
.g3d-result.pt-result{width:min(760px,calc(100vw - 24px));max-height:calc(100% - 20px);overflow-y:auto}
.pt-res{margin:10px 0 4px;text-align:left}
.pt-res h4{margin:14px 0 8px;font-size:14px;letter-spacing:.12em;color:#9adfb0}
.pt-res__ending p{margin:0 0 .6em;font:600 15px/1.9 'Klee One','Zen Kaku Gothic New',sans-serif;opacity:.92}
.pt-res__nights{width:100%;border-collapse:collapse;font-size:13px}
.pt-res__nights th,.pt-res__nights td{padding:5px 6px;border-bottom:1px solid rgba(255,255,255,.1);text-align:center}
.pt-res__nights th{font-weight:800;opacity:.7}
.pt-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.pt-gal figure{margin:0;border-radius:10px;overflow:hidden;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1)}
.pt-gal img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#111}
.pt-gal figcaption{padding:7px 9px 9px;font-size:12px;line-height:1.5}
.pt-gal figcaption b{display:inline-block;margin-right:6px;padding:0 6px;border-radius:5px;font-size:11px}
.pt-gal .is-found b{background:#9adfb0;color:#0c1410}
.pt-gal .is-miss b{background:#ff8a6a;color:#1a0c08}
.pt-gal figcaption small{display:block;opacity:.65;margin-top:2px}
.pt-res__falses{font-size:12px;opacity:.75;margin:6px 0 0}

/* タイトル: 夜の選択と記録 */
.pt-title{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:6px}
.pt-nights{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.pt-nights button{min-height:40px;min-width:64px;padding:4px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:rgba(10,14,18,.5);color:#e8f0f4;font:800 13px/1.2 var(--g3d-ui);cursor:pointer}
.pt-nights button small{display:block;font-size:10px;font-weight:700;opacity:.7}
.pt-nights button[aria-pressed="true"]{background:var(--accent);color:#0a1620;border-color:var(--accent)}
.pt-nights button:disabled{opacity:.35;cursor:default}
.pt-rec{font-size:12px;opacity:.75;text-align:center;line-height:1.6}

@keyframes pt-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes pt-blink{50%{opacity:.35}}
@keyframes pt-card{0%{opacity:0;transform:translate(-50%,-44%)}15%{opacity:1;transform:translate(-50%,-50%)}80%{opacity:1}100%{opacity:0}}

@media (max-width:640px){
  .pt-list{width:min(250px,64vw);padding:8px 10px 6px;font-size:12px}
  .pt-list li small{display:none}
  .pt-term{top:auto;left:8px;right:8px;width:auto;height:min(78%,620px)}
  .pt-term__grid button{min-height:44px;font-size:12.5px}
  .pt-paper{padding:20px 18px 14px}
  .pt-paper p{font-size:15px;line-height:1.85}
}
@media (max-height:480px) and (orientation:landscape){
  .pt-list{max-height:calc(100vh - 150px);overflow-y:auto;font-size:11.5px;width:230px}
  .pt-list.is-side{position:absolute;top:calc(52px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right));max-height:calc(100vh - 250px);width:210px}
  .pt-list li small{display:none}
  .pt-term{top:calc(52px + env(safe-area-inset-top));bottom:6px;width:min(560px,70vw)}
  .pt-term__grid{grid-template-columns:1fr 1fr 1fr}
  .pt-term__grid button{min-height:38px}
  .pt-card{top:40%}
}
@media (pointer:coarse){
  .pt-layer kbd{display:none}
  .g3d-hud__tl{max-width:min(64vw,320px)}
}

/* スマホ: 字幕をスティックとボタンから離す */
@media (pointer:coarse){
  #game-root .g3d-subtitle{bottom:auto;top:calc(50% + 104px);max-width:min(92vw,560px);font-size:14px;padding:6px 12px}
  .pt-list{max-height:34vh;overflow-y:auto}
}
@media (pointer:coarse) and (max-height:480px) and (orientation:landscape){
  #game-root .g3d-subtitle{top:calc(50% + 18px);max-width:46vw;font-size:13px;line-height:1.5}
  #game-root .g3d-objective{font-size:12px;padding:5px 10px;max-width:44vw}
}

/* 端末のタブ・移動 */
.pt-term__tabs{display:flex;gap:6px;margin:4px 0 10px}
.pt-term__tabs button{flex:1;min-height:44px;border-radius:10px;border:1px solid rgba(160,240,190,.22);background:rgba(160,240,190,.05);color:#d8f2dc;font:800 14px/1 var(--g3d-ui);cursor:pointer}
.pt-term__tabs button[aria-selected="true"]{background:#9adfb0;color:#0c1410;border-color:#9adfb0}
.pt-term__tabs kbd{margin:0 0 0 8px}
.pt-term__grid--travel button{min-height:62px;align-items:center}
.pt-term__grid--travel button span{display:flex;flex-direction:column;gap:3px}
.pt-term__grid--travel button small{font-size:11px;font-weight:600;opacity:.75}
.pt-term__grid--travel button:disabled{opacity:.42;cursor:default}
.pt-list__travel{pointer-events:auto;margin-left:auto;margin-right:10px;min-height:32px;padding:2px 12px;border-radius:999px;border:1px solid rgba(143,208,255,.5);background:rgba(143,208,255,.14);color:#cfe9ff;font:800 12px/1 var(--g3d-ui);cursor:pointer}
@media (pointer:coarse){.pt-list__travel{min-height:40px;padding:2px 16px;font-size:13px}}

/* スマホ: 点検表の「移動」ボタンを押せるよう、HUD をタッチ層より上に（HUD 自体は押せない） */
@media (pointer:coarse){#game-root .g3d-hud{z-index:13}}
.g3d.pt-modal .pt-list,.g3d.pt-modal .g3d-subtitle{visibility:hidden}

/* スマホ: 「調べる」の案内が字幕の下に隠れていた（2026-10-05 チェック）。縦は少し上へ、横は画面の下の中央（スティックとボタンの間）へ */
@media (pointer:coarse) and (orientation:portrait){
  #game-root .g3d-prompt{top:calc(50% + 50px)}
}
@media (pointer:coarse) and (max-height:480px) and (orientation:landscape){
  #game-root .g3d-prompt{top:auto;bottom:calc(14px + env(safe-area-inset-bottom))}
  .pt-card{top:28%}   /* 夜の始まりの札が字幕と重なっていた */
}
