/* CITADEL Learning Library (site/pages/library.html). Uses the theme tokens. */
.lib-disclaimer { margin-bottom: 1.6rem; }
.lib-theater { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 1.4rem; align-items: start; scroll-margin-top: 90px; }
.lib-stage-nav { display: flex; justify-content: space-between; gap: .6rem; margin-top: .8rem; flex-wrap: wrap; }
.lib-stage-nav #libDeep { margin: 0 auto; }
.lib-detail { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.4rem 1.5rem; max-height: 640px; overflow: auto; box-shadow: var(--shadow-sm); }
.lib-detail h2 { font-size: clamp(1.35rem, 2.4vw, 1.75rem); margin: .2rem 0 .5rem; }
.lib-detail h4 { font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--text-3); margin: 1.1rem 0 .35rem; }
.lib-detail p, .lib-detail li { color: var(--text-2); font-size: .93rem; line-height: 1.5; }
.lib-detail ul, .lib-detail ol { padding-left: 1.1rem; display: grid; gap: .3rem; }
.lib-detail .lib-lede { color: var(--text); margin-top: .6rem; }
.lib-relief { list-style: none; padding-left: 0 !important; }
.lib-flags { margin-top: 1rem; padding: .2rem .9rem .8rem; border-radius: var(--r); background: var(--surface-2); border-left: 3px solid var(--warn); }
.lib-flags h4 { color: var(--warn); }
.lib-src a { font-weight: 600; }
.lib-meta { font-size: .76rem; font-weight: 600; color: var(--text-3); letter-spacing: .01em; }
.lib-status, .lib-ev { display: inline-block; font-size: .72rem; font-weight: 700; padding: .12rem .5rem; border-radius: 999px; background: var(--accent-soft); color: var(--accent); white-space: nowrap; text-transform: none; letter-spacing: 0; }
.lib-status[data-s="Curable"], .lib-status[data-s="Self-limiting"], .lib-ev[data-ev="strong"] { background: var(--ok-soft, rgba(18,161,80,.1)); color: var(--ok); }
.lib-status[data-s="Manageable"], .lib-ev[data-ev="moderate"] { background: rgba(194, 120, 3, .12); color: var(--warn); }
.lib-status[data-s="No cure yet"] { background: rgba(217, 45, 32, .1); color: var(--bad); }
.lib-ev[data-ev="limited"] { background: var(--surface-2); color: var(--text-2); }
.lib-controls { display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: .7rem; }
.lib-controls .input { width: 100%; }
.lib-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1.1rem; }
.lib-card { display: flex; flex-direction: column; text-align: left; padding: 0; overflow: hidden; border-radius: var(--r); border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; cursor: pointer; box-shadow: var(--shadow-sm); transition: transform .25s var(--ease), border-color .2s, box-shadow .25s; }
.lib-card:hover { transform: translateY(-3px); border-color: var(--border-strong); box-shadow: var(--shadow); }
.lib-card[aria-pressed="true"] { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent), var(--shadow); }
.lib-thumb { position: relative; display: block; aspect-ratio: 16 / 9; background: var(--surface-2); }
.lib-thumb img { width: 100%; height: 100%; display: block; object-fit: cover; }
.lib-thumb img:not([src]) { visibility: hidden; }
.lib-thumb i { position: absolute; right: 10px; bottom: 10px; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: .7rem; color: #fff; background: var(--grad); opacity: .9; }
.lib-card-body { display: grid; gap: .3rem; padding: .85rem 1rem 1rem; }
.lib-card-body b { font-size: 1rem; letter-spacing: -.01em; }
.lib-sum { color: var(--text-2); font-size: .86rem; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lib-legend { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.lib-legend dl { display: grid; gap: .55rem; }
.lib-legend dd { color: var(--text-2); font-size: .9rem; margin: 0 0 .3rem; }
@media (max-width: 960px) {
  .lib-theater, .lib-legend { grid-template-columns: minmax(0, 1fr); }
  .lib-detail { max-height: none; }
}
@media (max-width: 560px) { .lib-controls { grid-template-columns: minmax(0, 1fr); } }
