/* 参考资料（v41）：独立栏目、条目页、首页、搜索共用同一套卡片。 */
.ref-card-list {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px;}
.ref-card {display: grid; grid-template-columns: 132px minmax(0, 1fr); min-width: 0;
  border: 1px solid var(--border); background: var(--surface);}
.ref-card-media {display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; min-height: 0;
  border-right: 1px solid var(--border); background: var(--zebra); overflow: hidden; text-decoration: none;}
.ref-card-media img {display: block; width: 100%; height: 100%; object-fit: cover;}
.ref-card-placeholder {display: flex; flex-direction: column; align-items: center; gap: 7px;
  color: var(--text-mute); font-size: 11px;}
.ref-card-placeholder .ref-type-icon svg {width: 26px; height: 26px;}
.ref-card-body {display: flex; flex-direction: column; min-width: 0; padding: 9px 11px 10px; gap: 3px;}
.ref-card-kicker {display: flex; align-items: center; flex-wrap: wrap; gap: 6px; min-height: 18px;}
.ref-type {display: inline-flex; align-items: center; gap: 4px; font-family: var(--mono); font-size: 10px;
  line-height: 1.5; color: var(--accent); text-transform: uppercase; letter-spacing: .03em;}
.ref-type-icon {display: inline-flex; align-items: center; justify-content: center;}
.ref-card-title {margin: 0; font-size: 14px; line-height: 1.4; font-weight: 600; word-break: break-word;}
.ref-card-title a {text-decoration: none;}
.ref-card-title a:hover {color: var(--accent);}
.ref-card-source {margin: 0; font-size: 11.5px; line-height: 1.5; color: var(--text-mute); word-break: break-word;}
.ref-card-source a {color: var(--text-mute);}
.ref-card-source a:hover {color: var(--accent);}
.ref-official {display: inline-block; margin-left: 4px; padding: 0 4px; border: 1px solid var(--ok);
  color: var(--ok); font-family: var(--mono); font-size: 9px; line-height: 1.5; vertical-align: 1px;}
.ref-official.is-claimed {border-color: var(--warn); color: var(--warn);}
.ref-availability {display: inline-block; padding: 0 4px; border: 1px solid var(--warn); color: var(--warn);
  font-family: var(--mono); font-size: 9px; line-height: 1.5;}
.ref-card-dates {display: flex; flex-wrap: wrap; gap: 2px 10px; margin: 0; font-size: 10px; color: var(--text-mute);}
.ref-card-summary {margin: 1px 0 0; font-size: 11.5px; line-height: 1.55; color: var(--text);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;}
.ref-card-meta {display: flex; flex-wrap: wrap; gap: 1px 8px; margin-top: auto; padding-top: 3px;
  font-size: 10px; line-height: 1.5; color: var(--text-mute);}
.ref-card-meta > span + span::before {content: "· "; color: var(--border);}
.ref-card-foot {display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-top: 4px;}
.ref-card-action {display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 600;
  color: var(--accent); text-decoration: none;}
.ref-card-action:hover {text-decoration: underline;}
.ref-card-host {font-size: 9.5px; color: var(--text-mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
.ref-card.is-compact {grid-template-columns: 112px minmax(0, 1fr);}
.ref-card.is-compact .ref-card-media {min-height: 0;}
.ref-card.is-compact .ref-card-summary {-webkit-line-clamp: 2;}

.ref-type-tabs {display: flex; flex-wrap: wrap; gap: 4px; margin: 10px 0 16px; border-bottom: 1px solid var(--border);}
.ref-type-tabs a {padding: 7px 11px; color: var(--text-mute); text-decoration: none; border-bottom: 2px solid transparent; font-size: 12px;}
.ref-type-tabs a:hover {color: var(--accent);}
.ref-type-tabs a.is-on {color: var(--accent); border-bottom-color: var(--accent);}

/* 详情页 */
.ref-detail-hero {display: grid; grid-template-columns: minmax(200px, 280px) minmax(0, 1fr); gap: 24px;
  padding-bottom: 20px; margin-bottom: 22px; border-bottom: 1px solid var(--border);}
.ref-detail-media {display: flex; align-items: center; justify-content: center; min-height: 220px;
  border: 1px solid var(--border); background: var(--zebra); overflow: hidden;}
.ref-detail-media img {display: block; width: 100%; height: 100%; object-fit: contain;}
.ref-detail-placeholder {display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--text-mute);}
.ref-detail-placeholder .ref-type-icon svg {width: 34px; height: 34px;}
.ref-detail-intro {min-width: 0; display: flex; flex-direction: column; gap: 8px;}
.ref-detail-kicker {display: flex; align-items: center; flex-wrap: wrap; gap: 8px;}
.ref-detail-title {font-size: clamp(20px, 2.4vw, 28px); line-height: 1.3; font-weight: 600; margin: 0; word-break: break-word;}
.ref-detail-meta {display: flex; flex-wrap: wrap; align-items: center; gap: 3px 12px; margin: 0; color: var(--text-mute); font-size: 11px;}
.ref-detail-meta a {color: var(--text-mute);}
.ref-detail-summary {max-width: 760px; margin: 2px 0 0; font-size: 13.5px; line-height: 1.65; color: var(--text);}
.ref-detail-actions {display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px;}
.ref-detail-grid {display: block;}
.ref-detail-side {margin-top: 26px; padding-top: 16px; border-top: 1px solid var(--border);}
.ref-detail-main {min-width: 0;}
.ref-section {margin-bottom: 26px;}
.ref-body {max-width: 860px; font-size: 14px; line-height: 1.75;}
.ref-body img {max-width: 100%; height: auto;}
.ref-body table {width: 100%; border-collapse: collapse;}
.ref-body th, .ref-body td {border: 1px solid var(--border); padding: 5px 8px; text-align: left;}
.ref-body blockquote {margin: 10px 0; padding-left: 12px; border-left: 2px solid var(--border); color: var(--text-mute);}
.ref-body pre {overflow: auto; padding: 10px; background: var(--zebra); border: 1px solid var(--border);}
.ref-gallery {display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px;}
.ref-gallery-item {display: flex; flex-direction: column; gap: 3px; border: 1px solid var(--border); background: var(--zebra);
  padding: 6px; text-decoration: none; color: var(--text-mute);}
.ref-gallery-item img {display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: var(--surface);}
.ref-gallery-item:hover {border-color: var(--accent);}
.ref-file-list {list-style: none; margin: 0; padding: 0;}
.ref-file-row {display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px dotted var(--border);}
.ref-file-row:last-child {border-bottom: 0;}
.ref-file-main {min-width: 0; display: flex; flex-direction: column; gap: 2px;}
.ref-file-main strong {font-size: 13px; word-break: break-word;}
.ref-meta-grid {display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 8px 24px;}
.ref-meta-item {display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 6px; padding: 4px 0; border-bottom: 1px dotted var(--border); font-size: 12px; line-height: 1.5;}
.ref-meta-item dt {color: var(--text-mute);}
.ref-meta-item dd {margin: 0; word-break: break-word;}

.home-refs {grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 0;}
.home-refs .ref-card {min-height: 0;}
.item-section .ref-card-list {grid-template-columns: repeat(2, minmax(0, 1fr));}
.search-group .ref-card-list {grid-template-columns: 1fr;}
.search-group .ref-card-list .search-item {min-width: 0;}
.search-item .ref-card {border-bottom: 1px solid var(--border);}

@media (max-width: 1180px) {
  .ref-card-list {grid-template-columns: repeat(2, minmax(0, 1fr));}
}
@media (max-width: 760px) {
  .ref-card-list {grid-template-columns: 1fr;}
  .item-section .ref-card-list {grid-template-columns: 1fr;}
  .ref-detail-grid {display: block;}
}
@media (max-width: 720px) {
  .ref-card {grid-template-columns: 108px minmax(0, 1fr);}
  .ref-card-media {min-height: 0;}
  .ref-card.is-compact {grid-template-columns: 92px minmax(0, 1fr);}
  .ref-card-body {padding: 9px 10px 10px;}
  .ref-card-title {font-size: 13.5px;}
  .ref-card-summary {font-size: 11.5px; -webkit-line-clamp: 3;}
  .ref-card-meta {font-size: 9.5px;}
  .ref-detail-hero {grid-template-columns: 1fr; gap: 14px;}
  .ref-detail-media {min-height: 170px; max-height: 260px;}
  .ref-detail-title {font-size: 20px;}
  .ref-gallery {grid-template-columns: repeat(2, minmax(0, 1fr));}
  .ref-file-row {flex-direction: column; align-items: stretch; gap: 6px;}
  .ref-file-row .btn {align-self: flex-start;}
}
@media (max-width: 420px) {
  .ref-card {grid-template-columns: 88px minmax(0, 1fr);}
  .ref-card-media {min-height: 0;}
  .ref-card-summary {-webkit-line-clamp: 3;}
  .ref-card-dates span + span {display: none;}
}

.external-dialog {max-width: 420px; border: 1px solid var(--border); background: var(--surface); color: var(--text);
  padding: 18px 20px 16px; font-family: var(--sans);}
.external-dialog::backdrop {background: rgba(26, 26, 26, .32);}
.external-dialog h2 {font-size: 15px; margin: 0 0 6px;}
.external-dialog .external-host {font-size: 12px; color: var(--text-mute); word-break: break-all; margin: 0 0 4px;}
.external-dialog .external-note {font-size: 11.5px; margin: 0 0 12px;}
.external-actions {display: flex; justify-content: flex-end; gap: 8px;}
