/* Shared chrome. The app supplies --app-*; the static website uses these fallbacks. */
:root { --chrome-ground: var(--app-ground, #121a23); --chrome-ink: var(--app-ink, #f2f5f8); --chrome-muted: var(--app-mist, #b9c8d8); --chrome-line: var(--app-line, #46515c); --chrome-gold: var(--app-gold-ink, #e2c477); --chrome-soft: color-mix(in srgb, var(--chrome-ink) 5%, transparent); --chrome-active: color-mix(in srgb, var(--chrome-gold) 17%, transparent); --chrome-font: 'JetBrains Mono', monospace; }
html[data-programme-theme="day"] { --chrome-ground: var(--app-ground, #faf9f6); --chrome-ink: var(--app-ink, #111827); --chrome-muted: var(--app-mist, #666d7a); --chrome-line: var(--app-line, #e7e3d8); --chrome-gold: var(--app-gold-ink, #806220); }
.site-header, .site-footer { color: var(--chrome-ink); background: transparent; box-sizing: border-box; }
.site-header { position: relative; z-index: 45; width: 100%; }
.site-header a, .site-footer a { color: inherit; text-decoration: none; }
.site-header button { color: inherit; cursor: pointer; }
.site-line-one { display: flex; align-items: center; gap: 10px; padding: 22px 32px; }
.site-brand { position: relative; width: 122px; height: 48px; flex-shrink: 0; }
.site-brand img { position: absolute; inset: 0; width: 122px; height: 48px; object-fit: contain; }
.site-logo-day { visibility: hidden; }
html[data-programme-theme="day"] .site-logo-day { visibility: visible; }
html[data-programme-theme="day"] .site-logo-night { visibility: hidden; }
.site-estate-nav { display: flex; align-items: center; gap: 5px; min-width: 0; flex: 1; }
.site-pill { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 36px; padding: 7px 10px; border: 1px solid transparent; border-radius: 999px; background: var(--chrome-soft); font-family: var(--chrome-font); font-size: 10px; letter-spacing: 2.8px; line-height: 1.5; text-transform: uppercase; white-space: nowrap; }
.site-estate-nav .site-pill { opacity: .74; }
.site-pill[aria-current="page"] { background: var(--chrome-active); opacity: 1; font-weight: 500; }
.site-pill:hover, .site-header button:hover { color: var(--chrome-gold); border-color: var(--chrome-gold); }
.site-theme { display: flex; flex-shrink: 0; gap: 2px; padding: 3px; border: 1px solid var(--chrome-line); border-radius: 999px; }
.site-header .site-icon { width: 30px; min-width: 30px; height: 30px; padding: 0; display: grid; place-items: center; border-radius: 999px; border: 0; background: transparent; }
.site-icon[aria-pressed="true"] { color: var(--chrome-gold); background: var(--chrome-active); }
.site-identity { display: flex; align-items: center; gap: 7px; min-width: 0; max-width: 150px; font-size: 11px; }
.site-person-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-role { flex-shrink: 0; font-family: var(--chrome-font); font-size: 8px; text-transform: uppercase; color: var(--chrome-muted); }
.site-header .site-signout { padding: 6px; min-height: 36px; font-family: var(--chrome-font); font-size: 9px; letter-spacing: 1.5px; background: transparent; border: 0; white-space: nowrap; }
.site-language { flex-shrink: 0; border-color: var(--chrome-line); }
.site-settings { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.site-header .site-text-size { min-width: 36px; padding: 6px; font-size: 16px; letter-spacing: 0; border-color: var(--chrome-line); }
.site-line-co .site-language { font-size: 13px; letter-spacing: 0; }
.site-header .site-menu-toggle { display: none; }
.site-app-nav { display: flex; align-items: center; gap: 24px; padding: 0 32px 14px; white-space: nowrap; border-bottom: 1px solid var(--chrome-line); }
.site-app-link, .site-header .site-more-toggle { display: inline-flex; flex-shrink: 0; align-items: center; gap: 5px; padding: 9px 0; border: 0; border-bottom: 2px solid transparent; background: transparent; font-family: var(--chrome-font); font-size: 10px; letter-spacing: 2.8px; opacity: .74; text-transform: uppercase; }
.site-app-link[aria-current="page"], .site-more-toggle[data-active="true"] { opacity: 1; font-weight: 500; border-bottom-color: currentColor; }
.site-more { position: relative; }
.site-more-menu { position: absolute; top: 100%; right: 0; z-index: 55; display: flex; flex-direction: column; gap: 3px; min-width: 220px; padding: 14px 20px; border: 1px solid var(--chrome-line); border-radius: 8px; background: var(--chrome-ground); }
.site-footer { border-top: 1px solid var(--chrome-line); padding: 40px 48px; margin-top: 48px; display: flex; flex-direction: column; gap: 14px; font-family: var(--chrome-font); font-size: 9.5px; letter-spacing: 1.71px; text-transform: uppercase; color: var(--chrome-muted); line-height: 1.9; }
.site-footer p { margin: 0; }
.site-footer a { align-self: flex-start; }
.site-footer a:hover { color: var(--chrome-gold); }
.site-footer-legal { display: flex; flex-direction: column; gap: 12px; margin-bottom: 12px; }
.site-footer-legal:empty { display: none; }
.site-menu-backdrop { display: none; }
@media (min-width: 901px) and (max-width: 1450px) { .site-line-one { padding-inline: 20px; gap: 6px; } .site-pill { padding-inline: 7px; } .site-brand { width: 100px; } .site-brand img { width: 100px; } .site-identity { max-width: 100px; flex-direction: column; align-items: flex-start; gap: 0; } }
@media (max-width: 900px) { .site-line-one { display: grid; grid-template-columns: minmax(0,1fr) auto auto auto; gap: 8px; padding: 16px; } .site-header .site-menu-toggle { display: grid; } .site-estate-nav, .site-line-one > .site-identity, .site-line-one > .site-signout { display: none; } .site-brand, .site-brand img { width: 110px; height: 44px; } .site-language { padding-inline: 9px; letter-spacing: 1.5px; } .site-menu-backdrop { position: fixed; inset: 0; z-index: 70; background: color-mix(in srgb, var(--chrome-ground) 70%, transparent); display: flex; align-items: flex-start; justify-content: flex-end; } .site-mobile-menu { width: min(350px, 92%); max-height: 100dvh; overflow-y: auto; padding: 20px; background: var(--chrome-ground); display: flex; flex-direction: column; gap: 12px; border: 1px solid var(--chrome-line); } .site-mobile-menu .site-estate-nav { display: flex; flex-direction: column; align-items: stretch; flex: none; } .site-mobile-menu .site-identity { max-width: 100%; } .site-app-nav { overflow-x: auto; scrollbar-width: none; padding: 0 16px 10px; gap: 22px; } .site-app-nav::-webkit-scrollbar { display: none; } .site-app-nav .site-more { display: none; } .site-overflow-link { display: inline-flex; } .site-footer { padding: 32px 20px; } }
@media (min-width: 901px) { .site-overflow-link { display: none; } }
@media (max-width: 900px) { .site-line-co { grid-template-columns: minmax(0,1fr) auto auto; } }
@media (prefers-reduced-motion: no-preference) { .site-pill, .site-icon { transition: color .2s, background .2s; } }
