/* Global search, clickable Event references, and Family Atlas relation cards. */
#listTab{white-space:nowrap}
.family-list-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:14px;padding:22px 0}
.family-list-person.node{position:relative;inset:auto;width:100%;height:auto;min-width:0;padding:0;border:1px solid #ffffff18;border-radius:13px;background:#1c2b37;color:#eee5d3;text-align:left;overflow:hidden;box-shadow:none;transition:transform .18s,border-color .18s,box-shadow .18s}
.family-list-person.node:hover{transform:translateY(-2px);border-color:#b99e6b88;box-shadow:0 12px 28px #0003}
.family-list-person .flip-inner{height:150px}
.family-list-person .family-list-front{position:relative;display:flex!important;align-items:center;gap:14px;min-height:150px;padding:12px;background:linear-gradient(145deg,#1c2b37,#172632);overflow:hidden}
.family-list-photo{display:block;flex:none;width:82px;height:124px;border-radius:7px;overflow:hidden;background:#243746}
.family-list-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 16%;background:#243746}
.family-list-photo .initial{display:grid;width:100%;height:100%;place-items:center;font:32px 'Cormorant Garamond',serif}
.family-list-copy{display:flex;flex:1;flex-direction:column;align-items:stretch;justify-content:center;gap:12px;min-width:0}
.family-list-person .family-list-name{display:block;width:100%;max-width:100%;font:500 clamp(25px,2.2vw,34px)/1.1 'Cormorant Garamond',serif;color:#e8d7b6;text-align:left;overflow-wrap:anywhere}
.family-list-relations{display:grid;gap:8px;width:100%;text-align:left}
.family-relation-row{display:flex;align-items:baseline;gap:7px;min-width:0;font-size:11px;line-height:1.4;color:#c4ced5}
.family-relation-label{flex:none;color:#cfb77f;font-size:9px;letter-spacing:.04em}
.family-relation-names{display:flex;flex:1 1 auto;width:0;gap:5px;min-width:0;overflow:hidden;white-space:nowrap}
.family-relation-name{flex:none;white-space:nowrap}
.family-relation-name:not([hidden]):not([data-last="true"])::after{content:" ·";color:#8496a4}
.family-relation-more{flex:none;color:#e4cb93;font-weight:700}
#results{width:min(390px,calc(100vw - 34px));max-height:min(55vh,420px);padding:7px;overflow-y:auto}
#results .search-result{display:block;width:100%;padding:10px 12px;border-bottom:1px solid #ffffff10;border-radius:5px;color:#e6e3db;text-align:left}
#results .search-result:hover{background:#2b3b49}
#results .search-empty{margin:0;padding:14px;color:#aab4bd;font-size:12px}
.event-chapter-link{display:inline;padding:0;border:0;background:none;color:#d8bd83;font:inherit;text-align:left;text-decoration:underline;text-decoration-color:#b49a6780;text-underline-offset:3px;cursor:pointer}
.event-chapter-link:hover{color:#f3dfb4;text-decoration-color:currentColor}
.global-search{position:relative;z-index:121;display:flex;flex:0 1 352px;align-items:center;gap:8px;width:352px;min-width:190px;height:42px;margin:0 8px;padding:0 12px;border:1px solid #b89d6955;border-radius:15px;background:#172a38;color:#e6d3ac;box-shadow:inset 0 1px #ffffff08}
.site-nav #globalSearch{order:99;align-self:center}
.site-nav>button[data-page="dashboard"]{order:1}
.site-nav>button[data-page]:not([data-page="dashboard"]){order:3}
.site-nav .global-search-toggle{order:2;display:grid;place-items:center;align-self:center;flex:none;width:32px;height:32px;min-height:32px;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:#d8bd86;font-size:0;line-height:0;outline:none;transform:none;cursor:pointer;transition:background-color .16s,color .16s}
.global-search-toggle:hover,.global-search-toggle:focus-visible{background:#bf9e6430;color:#fff1ce}
.global-search-toggle:focus-visible{outline:2px solid #b89d69;outline-offset:2px}
.global-search-toggle svg{display:block;width:20px;height:20px;margin:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
#globalSearchInput{order:1;display:block;flex:1;width:0;min-width:0;height:100%;padding:0;border:0;outline:none;background:transparent;color:#e8e4dc;font:12px 'DM Sans',sans-serif;text-align:left}
#globalSearchInput::placeholder{color:#a3afb8;opacity:1}
#globalSearchResults{position:absolute;z-index:120;top:calc(100% + 8px);right:0;width:min(440px,calc(100vw - 28px));max-height:min(70vh,560px);overflow-y:auto;padding:7px;border:1px solid #35414c;border-radius:10px;background:#1b2936;box-shadow:0 16px 40px #0009}
#globalSearchResults .search-result{display:grid;grid-template-columns:1fr;gap:3px;padding:11px 12px;border-bottom:1px solid #ffffff10;border-radius:5px;text-align:left}
#globalSearchResults .search-result small{color:#bda777;font-size:9px;letter-spacing:1.3px;text-transform:uppercase}
#globalSearchResults .search-result strong{color:#f0e5d0;font-size:13px;font-weight:500}
#globalSearchResults .search-result span{display:-webkit-box;overflow:hidden;color:#9caab5;font-size:10px;line-height:1.4;-webkit-line-clamp:2;-webkit-box-orient:vertical}
#globalSearchResults .search-empty{margin:0;padding:14px;color:#aab4bd;font-size:12px}
@media(max-width:760px){
 .family-list-view{grid-template-columns:1fr;gap:10px;padding:14px 0}
 .family-list-person .flip-inner{height:132px}
 .family-list-person .family-list-front{gap:12px;min-height:132px;padding:10px}
 .family-list-photo{width:70px;height:106px}
 .family-list-copy{gap:9px}
 .family-list-person .family-list-name{font-size:28px}
 .family-relation-row{font-size:10px;gap:6px}
 .site-nav #globalSearch{order:-1;align-self:stretch;display:flex;width:100%;min-width:0;flex:none;height:44px;margin:0 0 5px;padding:0 10px;border-color:#b89d6970;border-radius:10px;background:#122432}
 .site-nav #globalSearchToggle{width:32px;height:32px;min-height:32px;padding:0;border-radius:50%;text-align:center}
 .site-nav #globalSearchInput{display:block;width:0;min-width:0;height:100%;padding:0;border:0;box-shadow:none;font-size:12px;text-align:left}
 .site-nav #globalSearchResults{top:calc(100% + 3px);left:0;right:auto;width:100%;max-height:min(52vh,360px)}
 .site-nav.nav-open{overflow:visible}
}
.reader-back-top{display:none}
body.reading-mode .reader-back-top{position:fixed;z-index:1102;top:max(14px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid #b99e6b75;border-radius:12px;background:#172a38f7;color:#ead8b5;box-shadow:0 8px 22px #0006;opacity:0;transform:translateY(-150%);pointer-events:none;transition:transform .28s ease,opacity .28s ease}
body.reading-mode.reader-controls-visible .reader-back-top{opacity:1;transform:translateY(0);pointer-events:auto}
.reader-back-top svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.reader-back-top:hover,.reader-back-top:focus-visible{background:#304653;border-color:#efd29b;color:#fff1ce}
@media(max-width:760px){body.reading-mode .reader-back-top{top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));width:38px;height:38px}}
@media(prefers-reduced-motion:reduce){body.reading-mode .reader-back-top{transition:none}}

/* Keep the search target and glyph geometrically centered across the mobile nav reset. */
.site-nav #globalSearchToggle{box-sizing:border-box;display:grid;place-items:center;flex:0 0 32px!important;width:32px!important;min-width:32px!important;max-width:32px;height:32px!important;min-height:32px!important;max-height:32px;padding:0!important;line-height:0!important}
.site-nav #globalSearchToggle svg{position:relative;left:0;top:0;display:block;flex:none;width:20px;height:20px;margin:0;transform:none}
