.module-catalog{--module-ink:#183549;--module-muted:#536b79;--module-accent:#167a91;color:var(--module-ink);margin:28px 0 48px}.module-catalog,.module-catalog *{box-sizing:border-box}.module-catalog [hidden]{display:none!important}.module-toolbar{display:flex;align-items:end;gap:16px;padding:22px;background:#f0f6f8;border:1px solid #d8e6ec;border-radius:14px}.module-toolbar label{display:flex;flex-direction:column;gap:8px;font-weight:600;margin:0}.module-toolbar label:first-child{flex:1}.module-toolbar input,.module-toolbar select,.module-toolbar button{min-height:44px;border:1px solid #a9bec9;border-radius:8px;background:white;color:var(--module-ink);padding:10px 12px;font:inherit}.module-toolbar input{width:100%;min-width:0}.module-toolbar button{cursor:pointer;font-weight:600}.module-catalog :focus-visible{outline:3px solid var(--module-accent);outline-offset:3px}.module-count{margin:20px 0;font-weight:600;color:var(--module-muted)}.module-grid{display:grid;align-items:start;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.module-card{display:flex;flex-direction:column;padding:24px;border:1px solid #d8e6ec;border-radius:14px;background:#fff;box-shadow:0 3px 12px #18354908;min-width:0}.module-card:hover{border-color:#83b9c7;box-shadow:0 7px 22px #18354912}.module-card-heading{display:flex;gap:14px;align-items:center}.module-card-heading>div:last-child{min-width:0}.module-logo{position:relative;width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;border-radius:12px;background:#eef6f8;color:#167a91;font-size:20px;font-weight:700;overflow:hidden}
/* Keep article image defaults from changing the fixed logo frame. */
.module-catalog .module-logo img,
#content .module-catalog .module-logo img{position:absolute;inset:0;display:block;box-sizing:border-box;width:100%;height:100%;max-width:100%;max-height:100%;margin:0;border-radius:0;object-fit:contain;object-position:center;background:#fff;padding:5px}
.module-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#126b80}.module-card h2,#content .module-card h2{font-size:20px;line-height:1.25;margin:6px 0;font-weight:600;letter-spacing:normal;text-transform:none;overflow-wrap:anywhere}.module-card code{display:inline-block;max-width:100%;padding:4px 7px;border-radius:5px;font-size:11px;line-height:1.5;background:#f2f6f8;color:var(--module-muted);white-space:normal;overflow-wrap:anywhere}.module-description{margin:20px 0;line-height:1.65;white-space:pre-line;overflow-wrap:anywhere}
/* Inset both the disclosure control and its content from the panel border. */
.module-card details {
  margin: 0 0 18px;
  padding: 0;
  border: 1px solid #d8e6ec;
  border-radius: 10px;
  background: #f7fafb;
}
.module-card summary {
  display: block;
  padding: 14px 16px;
  border-radius: 9px;
  cursor: pointer;
  font-weight: 600;
  color: var(--module-accent);
  list-style: none;
}
.module-card summary::-webkit-details-marker { display: none; }
.module-card summary::before {
  content: "\25BA";
  display: inline-block;
  margin-right: .5em;
  color: currentColor;
  transition: transform 160ms ease;
}
.module-card details[open] > summary::before { transform: rotate(90deg); }
.module-card summary:hover { background: #eef6f8; }
.module-card details[open] > summary {
  margin-bottom: 16px;
  border-bottom: 1px solid #e5eef2;
  border-radius: 9px 9px 0 0;
}
.module-card dl {
  margin: 0;
  padding: 0 16px 18px;
  font-size: 13px;
  line-height: 1.65;
}
.module-card dt { margin-top: 16px; font-weight: 700; }
.module-card dt:first-child { margin-top: 0; }
.module-card dd {
  margin: 4px 0 0;
  color: var(--module-muted);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.module-source{display:block;border-top:1px solid #e5eef2;padding-top:14px;font-weight:600;color:var(--module-accent)}.module-provenance{margin-top:26px;font-size:12px;color:var(--module-muted)}.module-empty{padding:30px;text-align:center;border:1px dashed #a9bec9;border-radius:12px}.module-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1000px){.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.module-grid{grid-template-columns:1fr}.module-toolbar{align-items:stretch;flex-direction:column;padding:16px}.module-card{padding:20px}}
