/* ==========================================================================
   cases.css — /lab4/cases 사례 목록·상세 전용 스타일
   lab4.css 토큰만 쓴다(색 치환표는 README-shell.md 참조). 셸 클래스는 건드리지 않는다.
   ========================================================================== */

/* ---------- 목록: 탭 ---------- */
.lab-case-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-top:32px}
.lab-case-tab{
  min-height:44px;display:inline-flex;align-items:center;font-size:14px;font-weight:700;
  padding:0 18px;border-radius:var(--lab-radius-pill);border:1px solid var(--lab-border);color:var(--lab-text-3);
}
.lab-case-tab.is-active{background:var(--lab-dark-2);color:#fff;border-color:var(--lab-dark-2)}

/* ---------- 목록: 카드 그리드 ---------- */
.lab-case-grid{margin-top:24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.lab-case-card{
  display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;
  padding:12px 16px;border:1px solid var(--lab-border);border-radius:var(--lab-radius-card);
  background:#fff;color:var(--lab-text-2);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.lab-case-card:hover{transform:translateY(-2px);box-shadow:var(--lab-shadow-card);border-color:rgba(var(--lab-accent-rgb),.3);color:var(--lab-text-2)}
.lab-case-card__thumb{width:64px;height:64px;border-radius:8px;overflow:hidden;background:var(--lab-light-3);flex:none}
.lab-case-card__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.lab-case-card__body{min-width:0;display:grid;gap:4px}
.lab-case-card__title{font-size:15px;font-weight:600;line-height:1.4}
.lab-case-card__meta{color:var(--lab-text-4);font-size:12px;font-variant-numeric:tabular-nums}
.lab-case-card__type{
  font-size:11px;font-weight:700;color:var(--lab-accent);
  border:1px solid var(--lab-tint-border);border-radius:var(--lab-radius-chip);padding:3px 8px;white-space:nowrap;
}

/* ---------- 상세: 대표 사진 ---------- */
.lab-case-hero-img{border-radius:var(--lab-radius-card);overflow:hidden;aspect-ratio:4/3;background:var(--lab-light-3)}
.lab-case-hero-img img{width:100%;height:100%;object-fit:cover;display:block}

/* ---------- 상세: 현장/작업/설치 품목 표 ---------- */
.lab-case-info{margin-top:24px;display:grid;border-top:1px solid var(--lab-border)}
.lab-case-info__row{
  display:grid;grid-template-columns:88px 1fr;gap:12px;padding:14px 0;
  border-bottom:1px solid var(--lab-border);font-size:15px;
}
.lab-case-info__row b{color:var(--lab-text-4);font-weight:600}
.lab-case-info__row span{color:var(--lab-text-2);line-height:1.6}

/* ---------- 상세: 본문(buildBodyHtml 출력 재사용) ---------- */
.lab-case-body{margin-top:20px}
.lab-case-body .case-h4{font-size:18px;font-weight:700;letter-spacing:-.02em;color:var(--lab-text-2);margin:26px 0 8px}
.lab-case-body .case-p{font-size:15.5px;line-height:1.8;color:var(--lab-text);margin:0 0 12px}
.lab-case-body .case-p--label{color:var(--lab-text-3)}
.lab-case-body .case-label{color:var(--lab-accent);font-weight:700;margin-right:6px}
.lab-case-body .case-meta{
  display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0 0 18px;padding:14px 0;
  border-top:1px solid var(--lab-border);border-bottom:1px solid var(--lab-border);font-size:14.5px;
}
.lab-case-body .case-meta dt{color:var(--lab-text-3)}
.lab-case-body .case-meta dd{margin:0;color:var(--lab-text)}

.lab-case-cta-row{margin-top:24px}

/* ---------- 상세: 사진 갤러리 + 전체 보기 토글 ---------- */
.lab-case-gallery-head{margin-top:40px;display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.lab-case-gallery-head__title{font-weight:800;color:var(--lab-text-2);font-size:16px}
.lab-case-gallery__more{
  cursor:pointer;border:1px solid var(--lab-border);background:#fff;color:var(--lab-text-2);
  font-size:14px;font-weight:700;padding:0 16px;min-height:36px;border-radius:var(--lab-radius-pill);
}
.lab-case-gallery__more:hover{border-color:var(--lab-accent);color:var(--lab-accent)}
.lab-case-gallery{margin-top:14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.lab-case-gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block;background:var(--lab-light-3)}
.lab-case-gallery__hidden-wrap{display:contents}
.lab-case-gallery__hidden-wrap.is-collapsed{display:none}

/* ---------- 상세: 상황·판단·조치 (검수 전 임시) ---------- */
.lab-case-spj{margin-top:40px;padding:24px;background:var(--lab-tint);border:1px solid var(--lab-tint-border);border-radius:var(--lab-radius-card)}
.lab-case-spj__title{font-weight:800;color:var(--lab-text-2);font-size:16px}
.lab-case-spj__rows{display:grid;gap:10px;margin-top:14px}
.lab-case-spj__rows > div{display:grid;grid-template-columns:44px 1fr;gap:8px;font-size:14px;line-height:1.6}
.lab-case-spj__rows b{color:var(--lab-accent)}
.lab-case-spj__rows span{color:var(--lab-text-3)}
.lab-case-spj__pending{color:var(--lab-text-5)}

/* ---------- 상세: 관련 사례 ---------- */
.lab-case-related{margin-top:40px}
.lab-case-related__title{font-weight:800;color:var(--lab-text-2);font-size:16px}
.lab-case-related__list{margin-top:12px;border-top:1px solid var(--lab-border)}
.lab-case-related__item{display:block;padding:12px 0;border-bottom:1px solid var(--lab-border);color:var(--lab-text-2);font-size:15px}
.lab-case-related__item:hover{color:var(--lab-accent)}

/* ---------- 상세: 브레드크럼 ---------- */
.lab-case-crumb{margin-top:32px;color:var(--lab-text-4);font-size:13px}
.lab-case-crumb a{color:var(--lab-text-4)}
.lab-case-crumb a:hover{color:var(--lab-accent)}

/* ---------- 목록: 텍스트 링크 폴백(scripts/generate-case-links.mjs 삽입, 2026-09-23) ----------
   lab4 목록 템플릿은 이미 정적 카드로 전체 링크를 담고 있어 평소엔 삽입되지 않는다.
   구 handwritten 목록 페이지를 만났을 때만 실제로 쓰이는 폴백 블록. */
.lab-case-links{padding:32px 0 0}
.lab-case-links__details{border-top:1px solid var(--lab-border);padding:16px 0}
.lab-case-links__summary{cursor:pointer;font-weight:700;color:var(--lab-text-3);font-size:14px}
.lab-case-links__list{margin-top:12px;display:grid;gap:6px}
.lab-case-links__list li{font-size:14px;color:var(--lab-text-3)}
.lab-case-links__list a{color:var(--lab-text-2)}
.lab-case-links__list a:hover{color:var(--lab-accent)}

@media (max-width:640px){
  .lab-case-info__row{grid-template-columns:1fr}
}
