
:root{--q511-ok:#77c596;--q511-warn:#deb86a;--q511-bad:#df7780;--q511-blue:#77bad3}
/* One keyboard language across the archive. */
button:focus-visible,[role="button"]:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid color-mix(in srgb,var(--gold,#d2b174) 78%,white);outline-offset:3px
}
/* Prevent local horizontal workspaces from dragging the whole document sideways. */
#threads .thread-arc-grid,#relationships .rel510-roster-track,#relationships[data-rel-view="person"] .rel553-pairs,
#profileModal .profile-nav,#bestiary .beta52-tabs{
  overscroll-behavior-inline:contain;max-width:100%
}
.q511-wheel-active{scroll-snap-type:none!important;scroll-behavior:auto!important}
/* Mobile sheets own their scroll; the page behind them does not bounce. */
body.mobile-layout .modal-backdrop.open{overscroll-behavior:contain}
body.mobile-layout .modal-backdrop.open>.modal{min-height:0;display:flex;flex-direction:column;overflow:hidden}
body.mobile-layout .modal-backdrop.open>.modal>.modal-body,
body.mobile-layout .modal-backdrop.open>.modal>.view-scroll-region{min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
body.mobile-layout .modal-backdrop.open>.modal>.modal-head,
body.mobile-layout .modal-backdrop.open>.modal>.modal-foot{flex:0 0 auto}
/* Empty collections look intentional without forcing extra page height. */
#characters .empty,#places .empty,#stash .empty,#relationships .empty,#threads .empty,#board .empty,#timeline .empty,#bestiary .empty{
  border:1px dashed rgba(210,177,116,.17);border-radius:15px;background:linear-gradient(145deg,rgba(210,177,116,.025),rgba(255,255,255,.012));padding:18px;min-height:0
}
.beta511-checks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.beta511-check{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;padding:9px 10px;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:rgba(0,0,0,.13)}.beta511-check b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font:700 12px/1 system-ui}.beta511-check strong,.beta511-check small{display:block;min-width:0}.beta511-check strong{font-size:11px}.beta511-check small{margin-top:2px;color:var(--muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.beta511-check.ok b{background:rgba(119,197,150,.14);color:var(--q511-ok)}.beta511-check.warn b{background:rgba(222,184,106,.14);color:var(--q511-warn)}.beta511-check.bad b{background:rgba(223,119,128,.14);color:var(--q511-bad)}
.beta511-upper-checks{margin:12px 0 14px}.beta511-issue-summary{margin-top:10px;color:var(--muted);font-size:11px}.beta511-issue-summary strong{color:var(--text)}
@media(max-width:900px){.beta511-checks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.beta511-checks{grid-template-columns:1fr}.beta511-check small{white-space:normal}}

.beta511-health-split{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.beta511-health-card{padding:14px;border:1px solid rgba(255,255,255,.07);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.03),rgba(0,0,0,.1))}.beta511-health-card .eyebrow{margin-bottom:5px}.beta511-health-value{display:flex;align-items:baseline;gap:6px}.beta511-health-value strong{font:700 31px/1 Georgia,serif;color:var(--gold-2)}.beta511-health-value span{color:var(--muted);font-size:10px}.beta511-health-card.tech strong{color:#bfe2cc}.beta511-health-card.content strong{color:#ead29a}.beta511-health-card p{margin:7px 0 0;color:var(--muted);font-size:10px;line-height:1.4}.beta511-content-recs{display:grid;gap:7px}.beta511-content-rec{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding:10px 11px;border:1px solid rgba(222,184,106,.14);border-radius:12px;background:rgba(222,184,106,.035)}.beta511-content-rec>span{display:grid;place-items:center;min-width:34px;height:28px;padding:0 7px;border-radius:999px;background:rgba(222,184,106,.12);color:#ead29a;font-weight:800;font-size:11px}.beta511-content-rec strong,.beta511-content-rec small{display:block}.beta511-content-rec small{margin-top:2px;color:var(--muted);font-size:10px;line-height:1.35}.beta511-separation-note{padding:10px 11px;border-left:2px solid rgba(119,186,211,.42);background:rgba(119,186,211,.035);color:var(--muted);font-size:10px;line-height:1.45}.beta511-separation-note strong{color:var(--text)}
@media(max-width:760px){.beta511-health-split{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.q511-wheel-active{scroll-behavior:auto!important}}
