  /* ============ camp.css: 野営画面 ============ */
  /* 野営の就寝後、暗転中に表示する回復サマリー画面 */
  .camp-rest-summary {
    position: absolute; inset: 0; z-index: 2; overflow-y: auto;
    display: flex; flex-direction: column; align-items: center;
    padding: 2.5rem 1.2rem 2rem; box-sizing: border-box;
  }
  .camp-rest-summary h2 { color: #fff; text-align: center; margin: 0 0 1.2rem; letter-spacing: 0.1em; }
  .camp-rest-row {
    display: flex; align-items: center; gap: 0.7rem; width: 100%; max-width: 420px;
    background: rgba(20,24,27,0.75); border: 1px solid rgba(255,255,255,0.1); border-radius: var(--radius-md);
    padding: 0.6rem 0.8rem; margin-bottom: 0.6rem; box-sizing: border-box;
  }
  .camp-rest-row img { width: 44px; height: 44px; object-fit: contain; background: #353a44; border-radius: var(--radius-xs); flex-shrink: 0; }
  .camp-rest-info { flex: 1; color: #fff; min-width: 0; }
  .camp-rest-info .nm { font-size: 0.85rem; font-weight: 700; margin-bottom: 0.2rem; }
  .camp-rest-stat-label { font-size: 0.65rem; color: var(--text-muted); }
  .camp-rest-stress { font-size: 0.72rem; color: #9fd8ff; margin-top: 0.3rem; }
  #campRestNextBtn { margin-top: 0.5rem; width: 100%; max-width: 420px; }
  .camp-actions {
    /* topはJSで味方表示の実測位置から毎回計算して設定する(.bottom-actions/.battle-actionsと同じ仕組み) */
    position: fixed; top: 500px; left: 50%; transform: translateX(-50%) translateZ(0);
    width: 100%; max-width: 480px; box-sizing: border-box; z-index: 3;
    padding: 0.8rem 1rem; display: flex; flex-wrap: wrap; gap: 0.6rem;
  }
  .camp-actions button { flex: 1 1 auto; min-width: 90px; }
