/* Consent banner and settings — Oxenex visual language (Geist, ink, thin lines) */
.consent-banner{position:fixed;left:clamp(12px,2vw,24px);bottom:clamp(12px,2vw,24px);z-index:300;width:min(660px,calc(100vw - 24px));display:grid;grid-template-columns:auto 1fr;gap:22px;padding:24px 26px;background:#0f1220;border:1px solid #ffffff26;box-shadow:0 18px 60px rgba(0,0,0,.45);color:#e9eefb;font-size:14px;line-height:1.6}
.consent-banner[hidden]{display:none}
.consent-banner img{width:120px;height:auto;margin-top:4px}
.consent-banner h2{margin:0 0 8px;font-size:17px;font-weight:500;letter-spacing:-.01em}
.consent-banner p{margin:0 0 18px;color:#a7b0c6}
.consent-banner a,.consent-body a{color:#dfe5f7;text-decoration:underline;text-underline-offset:3px}
.consent-actions{display:grid;grid-template-columns:repeat(3,auto);gap:10px;justify-content:start}
.consent-banner button,.consent-foot button{white-space:nowrap;font:inherit;font-size:14px;color:#fff;background:transparent;border:1px solid #ffffff4d;padding:11px 16px;cursor:pointer;transition:background .2s,border-color .2s}
.consent-banner button:hover,.consent-foot button:hover{border-color:#fff;background:#ffffff10}
.consent-banner button:focus-visible,.consent-foot button:focus-visible,.consent-close:focus-visible,.consent-dialog summary:focus-visible,.consent-dialog input:focus-visible{outline:1px solid #fff;outline-offset:3px}
.consent-dialog{width:min(720px,calc(100vw - 24px));max-height:calc(100vh - 32px);padding:0;border:1px solid #ffffff26;background:#0c0e19;color:#e9eefb;font-size:15px;line-height:1.6}
.consent-dialog::backdrop{background:rgba(5,6,12,.72);backdrop-filter:blur(3px)}
.consent-dialog[open]{display:flex;flex-direction:column}
.consent-head{display:flex;justify-content:space-between;align-items:center;padding:22px 28px;border-bottom:1px solid #ffffff1f}
.consent-head h2{margin:0;font-size:20px;font-weight:500;letter-spacing:-.015em}
.consent-close{font:inherit;font-size:26px;line-height:1;color:#c9d1e6;background:none;border:0;cursor:pointer;padding:4px 8px}
.consent-body{overflow:auto;padding:8px 28px 18px}
.consent-lead{color:#a7b0c6;margin:14px 0 6px}
.consent-cat{border-top:1px solid #ffffff1f;padding:18px 0}
.consent-cat-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}
.consent-cat h3,.consent-cat label{display:block;margin:0 0 4px;font-size:16px;font-weight:500}
.consent-cat p{margin:0;color:#a7b0c6;font-size:14px}
.consent-state{flex:none;font-size:13px;color:#b7c5ff;white-space:nowrap}
.consent-state.is-muted{color:#7f89a3}
.consent-cat input[type=checkbox]{flex:none;appearance:none;width:44px;height:24px;border-radius:12px;background:#2a2f45;border:1px solid #ffffff33;position:relative;cursor:pointer;transition:background .2s}
.consent-cat input[type=checkbox]::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#c9d1e6;transition:transform .2s,background .2s}
.consent-cat input[type=checkbox]:checked{background:#1b2d8c;border-color:#5a6fd6}
.consent-cat input[type=checkbox]:checked::after{transform:translateX(20px);background:#fff}
.consent-dialog details{margin-top:12px}
.consent-dialog summary{cursor:pointer;font-size:13px;color:#c9d1e6}
.consent-table-wrap{overflow-x:auto;margin-top:12px}
.consent-table{width:100%;border-collapse:collapse;font-size:13px}
.consent-table th,.consent-table td{text-align:left;vertical-align:top;padding:10px 12px 10px 0;border-bottom:1px solid #ffffff1a}
.consent-table th{font-weight:500;color:#c9d1e6;white-space:nowrap}
.consent-table td{color:#a7b0c6}
.consent-table code{color:#e9eefb;font-size:12.5px}
.consent-none{color:#7f89a3;font-size:13px;margin-top:10px}
.consent-foot{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;align-items:center;padding:18px 28px;border-top:1px solid #ffffff1f}
.consent-foot .is-primary{background:#1b2d8c;border-color:#3d52bd}
.consent-foot .is-primary:hover{background:#2539a8}
.consent-error{flex-basis:100%;margin:0;color:#ffb4a8;font-size:13px}
/* legal page: the policy table uses the same component */
.legal-content .consent-table td,.legal-content .consent-table th{font-size:14px}
.legal-settings{font:inherit;font-size:15px;color:#fff;background:#1b2d8c;border:1px solid #3d52bd;padding:12px 20px;cursor:pointer;margin:6px 0 26px}
body.consent-open{overflow:hidden}
@media(max-width:600px){
 .consent-banner{grid-template-columns:1fr;gap:14px;padding:20px}
 .consent-banner img{width:104px}
 .consent-actions{grid-template-columns:1fr}
 .consent-foot{flex-direction:column-reverse;align-items:stretch}
 .consent-head,.consent-body,.consent-foot{padding-left:20px;padding-right:20px}
}
@media(prefers-reduced-motion:reduce){.consent-cat input,.consent-cat input::after{transition:none}}
