:root {
  --ink: #18201f;
  --muted: #66706e;
  --line: #dce2df;
  --paper: #ffffff;
  --wash: #f4f6f4;
  --accent: #147568;
  --accent-dark: #0d594f;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--wash);
  font-family: Inter, "Segoe UI", "Microsoft YaHei", sans-serif;
}
.catalog-shell { width: min(1120px, calc(100% - 32px)); margin: 0 auto; padding: 48px 0 64px; }
.catalog-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.back-link { color: var(--accent-dark); font-size: 13px; text-decoration: none; }
.back-link:hover { text-decoration: underline; }
.eyebrow { margin: 28px 0 8px; color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
h1 { margin: 0; font-size: clamp(28px, 4vw, 44px); }
.intro { max-width: 680px; margin: 12px 0 0; color: var(--muted); line-height: 1.7; }
.resource-count { flex: 0 0 auto; padding: 8px 12px; border: 1px solid var(--line); border-radius: 5px; color: var(--muted); background: var(--paper); font-size: 12px; }
.resource-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding-top: 24px; }
.resource-card { display: flex; flex-direction: column; min-height: 210px; padding: 20px; border: 1px solid var(--line); border-radius: 7px; background: var(--paper); }
.resource-type { align-self: flex-start; padding: 3px 6px; border-radius: 3px; color: white; background: var(--accent); font-size: 10px; font-weight: 750; }
.resource-card h2 { margin: 16px 0 10px; font-size: 16px; line-height: 1.55; }
.resource-card p { margin: 0 0 20px; color: var(--muted); font-size: 11px; }
.resource-card a { margin-top: auto; color: var(--accent-dark); font-size: 13px; font-weight: 700; text-decoration: none; }
.resource-card a:hover { text-decoration: underline; }
.error-message { color: #b3483d; }
@media (max-width: 860px) { .resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .catalog-shell { width: min(100% - 24px, 1120px); padding-top: 26px; }
  .catalog-header { display: block; }
  .resource-count { display: inline-block; margin-top: 18px; }
  .resource-grid { grid-template-columns: 1fr; }
}
