/* 산업안전 판례 검색 — OSH Family Design 1.0 위에 얹는 앱 전용 배치.
   색·모서리·글자 크기는 전부 osh-family.css의 토큰을 쓴다. 새 색을 만들지 않는다. */
.osh-app .p-nav { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; }
.osh-app .p-nav a[aria-current="page"] { text-decoration-thickness: 3px; }

.osh-app .p-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 24px; align-items: start; }
.osh-app .p-searchbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: end; }
.osh-app .p-options { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; margin-top: 16px; }
.osh-app .p-check { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; padding: 8px 0; font-size: 16px; line-height: 1.5; cursor: pointer; }
.osh-app .p-check input { flex: 0 0 20px; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--osh-primary); }
.osh-app .p-check .p-count { margin-left: auto; padding-left: 8px; color: var(--osh-muted); font-size: 14px; white-space: nowrap; }
.osh-app .p-inline { display: inline-flex; align-items: center; gap: 8px; }
.osh-app select.osh-input { width: auto; min-width: 140px; }

.osh-app .p-filter-group { border-top: 1px solid var(--osh-line); padding: 4px 0; }
.osh-app .p-filter-group:first-of-type { border-top: 0; }
.osh-app .p-filter-group > summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; font-weight: 600; cursor: pointer; list-style: none; }
.osh-app .p-filter-group > summary::-webkit-details-marker { display: none; }
.osh-app .p-filter-group > summary::after { content: "+"; color: var(--osh-muted); font-weight: 400; font-size: 20px; line-height: 1; }
.osh-app .p-filter-group[open] > summary::after { content: "−"; }
.osh-app .p-filter-list { max-height: 264px; overflow: auto; padding-right: 4px; }
.osh-app .p-years { display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: center; padding: 8px 0 12px; }

.osh-app .p-status { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.osh-app .p-results { display: grid; gap: 16px; list-style: none; margin: 0; padding: 0; }
.osh-app .p-result-title { margin: 8px 0; font-size: 20px; font-weight: 650; line-height: 1.5; word-break: keep-all; }
.osh-app .p-result-title a { color: var(--osh-primary); text-decoration: none; }
.osh-app .p-result-title a:hover { text-decoration: underline; text-underline-offset: 4px; }
.osh-app .p-meta { display: flex; flex-wrap: wrap; gap: 4px 16px; color: var(--osh-muted); font-size: 14px; }
.osh-app .p-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.osh-app .p-snippet { margin: 12px 0 0; padding: 12px 16px; border-left: 3px solid var(--osh-line); background: var(--osh-paper); font-size: 14px; line-height: 1.7; }
.osh-app .p-snippet mark { background: var(--osh-primary-soft); color: var(--osh-primary); font-weight: 600; padding: 0 2px; border-radius: 2px; }
.osh-app .p-snippet-source { display: block; margin-bottom: 4px; color: var(--osh-muted); font-size: 14px; }
.osh-app .p-pager { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: center; margin-top: 24px; }

.osh-app .p-dl { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 8px 16px; margin: 0; }
.osh-app .p-dl dt { color: var(--osh-muted); font-size: 14px; padding-top: 2px; }
.osh-app .p-dl dd { margin: 0; }
.osh-app .p-list { margin: 0; padding-left: 20px; }
.osh-app .p-origin { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 12px; }
.osh-app .p-fulltext { margin: 0; padding: 20px; max-height: 70vh; overflow: auto; border: 1px solid var(--osh-line); border-radius: var(--osh-radius-control); background: var(--osh-paper); font: 400 14px/1.8 var(--osh-font); white-space: pre-wrap; }
.osh-app .p-unit { border-top: 1px solid var(--osh-line); padding-top: 16px; margin-top: 16px; }
.osh-app .p-unit:first-of-type { border-top: 0; padding-top: 0; margin-top: 0; }
.osh-app blockquote.p-quote { margin: 8px 0 0; padding: 8px 16px; border-left: 3px solid var(--osh-line); color: var(--osh-ink); font-size: 14px; }
.osh-app .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

@media (max-width: 1000px) { .osh-app .p-layout { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) {
  .osh-app .p-searchbar { grid-template-columns: minmax(0, 1fr); }
  .osh-app .p-searchbar .osh-button { width: 100%; }
  .osh-app .p-dl { grid-template-columns: minmax(0, 1fr); gap: 0 0; }
  .osh-app .p-dl dd { margin-bottom: 12px; }
  .osh-app select.osh-input { width: 100%; }
}

/* 유사어휘 검색 전용 */
.osh-app .p-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 0; padding: 0; list-style: none; }
.osh-app .p-chip { display: inline-flex; align-items: baseline; gap: 6px; padding: 4px 10px; border: 1px solid var(--osh-line); border-radius: var(--osh-radius-control); background: var(--osh-surface); font-size: 16px; line-height: 1.5; }
.osh-app .p-chip small { color: var(--osh-muted); font-size: 14px; }
.osh-app .p-chip--hit { border-color: var(--osh-primary); background: var(--osh-primary-soft); }
.osh-app .p-row-label { margin: 16px 0 0; color: var(--osh-muted); font-size: 14px; }
.osh-app .p-def { margin: 8px 0 0; }
