/* Shared public chrome, with OS-style universal search. */
.site-header { display:flex; flex-wrap:nowrap; height:80px; min-height:80px; gap:20px; padding:12px max(24px, calc((100vw - 1192px)/2)); }
.site-header .brand { flex:none; }
.site-header .brand-mark { display:block; width:32px; height:48px; mask-size:48px; -webkit-mask-size:48px; }
.site-header .brand>b { font-size:27px; }
.site-header .header-navigation { display:flex; flex:none; gap:4px; width:auto; margin:0; order:0; }
.nav-dropdown { position:relative; }
.nav-dropdown>summary { list-style:none; display:flex; align-items:center; gap:6px; min-height:44px; padding:0 9px; border-radius:10px; white-space:nowrap; font-size:14px; font-weight:550; }
.nav-dropdown>summary::-webkit-details-marker { display:none; }
.nav-dropdown>summary:hover,.nav-dropdown[open]>summary { background:#ededeb; }
.nav-dropdown[open]>summary>svg { transform:rotate(180deg); }
.nav-dropdown-panel { position:absolute; top:calc(100% + 8px); right:0; width:265px; padding:8px; max-height:min(430px, calc(100dvh - var(--header-height) - 32px)); overflow:auto; overscroll-behavior:contain; border:1px solid #dededb; border-radius:14px; background:#fff; box-shadow:0 12px 32px #00000012; }
.site-header .nav-dropdown-panel a { display:block; padding:10px 12px; min-height:40px; border-radius:8px; white-space:normal; line-height:1.45; color:#555; }
.site-header .nav-dropdown-panel a:hover,.site-header .nav-dropdown-panel a[aria-current] { background:#f1f1ef; color:#222; box-shadow:none; border:0; }
.website-menu-label { display:none; }
.website-menu-icon { font-size:22px; line-height:1; }
.website-menu>summary>svg { display:none; }
.site-header .project-link { flex:none; height:44px; min-height:44px; gap:14px; padding:0 16px; margin:0; border-radius:9px; }
.site-header .project-label { font-size:14px; }
.mobile-nav-toggle { display:none; }
.site-header .universal-search { position:relative; flex:1 1 280px; width:auto; min-width:140px; max-width:420px; height:40px; padding:0 14px; gap:8px; border:1px solid transparent; border-radius:20px; background:#fff; box-shadow:none; color:#777; }
.universal-search input { flex:1; width:0; min-width:0; height:38px; padding:0; outline:none; border:0; background:transparent; color:#252525; }
.universal-search input::-webkit-search-cancel-button { display:none; }
.universal-search input:focus-visible { outline:none; }
.universal-search:focus-within { border-color:#ccc; box-shadow:0 0 0 2px #00000006; }
.universal-search kbd { flex:none; padding:2px 5px; border:1px solid #ddd; border-radius:4px; background:transparent; font-size:11px; }
.resource-search .search-clear { flex:none; min-width:24px; width:24px; height:32px; padding:0; border:0; background:transparent; color:#777; font-size:22px; }
.resource-search .search-clear:hover { background:#eee; color:#222; }
.search-context { position:absolute; top:calc(100% + 7px); left:0; right:0; min-width:220px; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 12px; border:1px solid #e5e5e5; border-radius:10px; background:#fff; box-shadow:0 4px 12px #00000009; color:#777; font-size:11px; white-space:nowrap; }
.universal-results-panel { position:fixed; z-index:60; display:flex; flex-direction:column; overflow:hidden; border:1px solid #ddd; border-radius:14px; background:#fff; color:#292929; box-shadow:0 12px 32px #0000001a; }
.search-dropdown-heading { display:flex; align-items:center; justify-content:space-between; flex:none; padding:4px 10px 4px 16px; border-bottom:1px solid #eee; font-size:12px; color:#777; }
.search-dropdown-heading button { width:36px; height:36px; border:0; border-radius:50%; background:transparent; font-size:24px; color:#777; }
.search-dropdown-heading button:hover { background:#eee; }
#universal-results { overflow:auto; overscroll-behavior:contain; padding:6px; min-height:0; }
#universal-results [role=option] { display:flex; align-items:center; gap:12px; width:100%; min-height:60px; padding:10px; border:0; border-radius:9px; background:transparent; color:#666; text-align:left; }
#universal-results [aria-selected=true] { background:#f1f1f1; color:#222; }
#universal-results [role=option]>span { display:grid; gap:3px; flex:1; min-width:0; }
#universal-results b { font-size:14px; font-weight:550; line-height:1.4; }
#universal-results small { color:#777; font-size:12px; line-height:1.4; }
.search-help { display:flex; flex:none; justify-content:space-between; gap:10px; border-top:1px solid #eee; padding:10px 16px; font-size:11px; color:#777; }
.search-empty { padding:24px 12px; font-size:14px; color:#777; }
.library-layout { grid-template-columns:240px minmax(0,1fr); gap:28px; }
.topic-nav nav a { white-space:nowrap; }
.topic-nav nav a>span:not(.nav-dot) { white-space:nowrap; }
.site-footer { display:block; max-width:1192px; margin:0 auto; padding:48px 0 90px; color:var(--muted); font-size:14px; }
.footer-top { display:grid; grid-template-columns:240px minmax(0,1fr); gap:56px; }
.site-footer .brand { display:inline-flex; font:800 29px Manrope,sans-serif; letter-spacing:-1.6px; color:var(--text); }
.site-footer p { display:block; max-width:260px; margin:16px 0; font-size:14px; line-height:1.7; }
.footer-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.footer-links section { display:flex; flex-direction:column; gap:10px; }
.footer-links h3 { margin:5px 0 8px; font:600 14px 'DM Sans',sans-serif; color:var(--text); }
.footer-links a { font-size:13px; line-height:1.6; }
.site-footer a:hover { color:var(--text); text-decoration:underline; text-underline-offset:4px; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line); margin-top:38px; padding-top:22px; font-size:12px; }
@media(max-width:1250px) {
 .site-footer { margin-inline:32px; }
 .site-header .project-label { display:none; }
 .site-header .project-link { width:44px; padding:0; justify-content:center; }
 .footer-top { grid-template-columns:210px minmax(0,1fr); gap:32px; }
}
@media(max-width:1100px) {
 .site-header .brand>b { display:none; }
 .site-header { gap:16px; }
 .footer-top { grid-template-columns:1fr; gap:32px; }
}
@media(max-width:760px) {
 .site-header { height:72px; min-height:72px; gap:10px; padding:10px 16px; }
 .site-header .universal-search { max-width:none; min-width:0; }
 .site-header .header-navigation { display:none; }
 .site-header .header-navigation.is-open { position:absolute; display:block; top:calc(100% + 8px); right:12px; width:min(380px,calc(100% - 24px)); max-height:calc(100dvh - var(--header-height) - 24px); overflow:auto; overscroll-behavior:contain; padding:10px; border:1px solid #dededb; border-radius:14px; background:#fff; box-shadow:0 12px 32px #00000012; }
 .nav-dropdown>summary { justify-content:space-between; min-height:46px; }
 .nav-dropdown-panel { position:static; width:auto; max-height:none; border:0; border-radius:0; padding:0 4px 8px 12px; box-shadow:none; }
 .website-menu-label { display:inline; }
 .website-menu-icon { display:none; }
 .website-menu>summary>svg { display:block; }
 .mobile-nav-toggle { display:grid; place-items:center; flex:none; height:44px; width:40px; padding:0; border:0; border-radius:10px; background:transparent; }
 .mobile-nav-toggle:hover,.mobile-nav-toggle[aria-expanded=true] { background:#eee; }
 .universal-search kbd { display:none; }
 .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
}
@media(max-width:700px) {
 .library-layout { display:block; }
 .topic-nav nav a { font-size:14px; }
 .site-footer { margin-inline:22px; }
 .footer-bottom { flex-direction:column; gap:8px; }
}
@media(max-width:380px) {
 .site-header { gap:6px; padding-inline:12px; }
 .site-header .brand-mark { width:28px; }
 .site-header .universal-search { padding-inline:10px; }
 .site-header .project-link { width:36px; }
}
.site-header a:focus-visible,.site-header button:focus-visible,.site-header summary:focus-visible,.universal-results-panel button:focus-visible,.site-footer a:focus-visible { outline-color:#555; }
@media(min-width:701px) and (max-width:1050px) {
 .library-layout { grid-template-columns:224px minmax(0,1fr); gap:24px; }
}
