/* Cookie consent banner. Fixed, so it never shifts the layout (CLS 0). */
.consent { position: fixed; left: var(--space-2); right: var(--space-2); bottom: var(--space-2); z-index: 70; max-height: calc(100vh - var(--space-4)); overflow-y: auto; padding: var(--space-3); background: var(--color-surface); color: var(--color-text); border: 1px solid var(--color-border); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding-bottom: calc(var(--space-3) + env(safe-area-inset-bottom)); }
.consent[hidden] { display: none; }
.consent:focus { outline: none; }
.consent:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 2px; }
.consent__title { margin: 0 0 var(--space-2); font-size: 1.05rem; }
.consent__text { margin: 0 0 var(--space-3); font-size: var(--text-sm); color: var(--color-muted); }
.consent__text a { color: var(--color-accent); text-decoration: underline; }
.consent__panel { display: grid; gap: var(--space-2); margin-bottom: var(--space-3); }
.consent__panel[hidden] { display: none; }
.consent__option { display: grid; gap: 0.1rem; padding: 0.7rem 0.9rem; background: var(--color-tint); border-radius: var(--radius-sm); }
.consent__option--toggle { grid-template-columns: auto 1fr; column-gap: 0.7rem; cursor: pointer; }
.consent__option--toggle input { grid-row: span 2; align-self: center; width: 1.25rem; height: 1.25rem; accent-color: var(--color-accent); }
.consent__option-name { font-weight: 700; font-size: var(--text-sm); }
.consent__option-note { font-size: 0.8rem; color: var(--color-muted); }
.consent__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.consent__actions .btn { flex: 1 1 auto; justify-content: center; min-height: 2.75rem; }
.consent__actions [hidden] { display: none; }
@media (min-width: 700px) {
	.consent { left: var(--space-3); right: auto; bottom: var(--space-3); width: 26rem; }
}

/* Footer legal links (printed in the footer bar). */
.footer-legal { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.4rem 1rem; font-size: 0.82rem; }
.footer-legal__list { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem 1rem; margin: 0; padding: 0; }
.footer-legal a, .footer-legal__btn { color: var(--color-footer-text); text-decoration: none; transition: color 0.15s ease; }
.footer-legal a:hover, .footer-legal__btn:hover { color: #fff; }
.footer-legal__btn { background: none; border: 0; padding: 0; font: inherit; cursor: pointer; }
.table-scroll { overflow-x: auto; margin-bottom: var(--space-3); }
