/* Scoped consent surfaces; existing page composition remains untouched. */
.consent-panel { position:fixed; inset:auto 0 0; z-index:90; background:#f3f2ed; color:#171816; border-top:1px solid #30322e; padding:1.25rem var(--page-gutter); display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1.25rem 2rem; align-items:center; max-height:70dvh; overflow:auto; }
.consent-panel[hidden], #consent-reopen[hidden] { display:none; }
.consent-panel h2, .consent-dialog h2 { font-size:1.125rem; line-height:1.2; letter-spacing:-.025em; margin:0 0 .5rem; }
.consent-panel p, .consent-dialog p { font-size:.8125rem; line-height:1.5; max-width:66ch; margin:0; }
.consent-actions { display:flex; flex-wrap:wrap; gap:.5rem; }
.consent-action { min-height:44px; padding:.75rem 1rem; background:#fdfdfd; color:#171816; border:1px solid #30322e; border-radius:0; font-size:.6875rem; font-weight:700; letter-spacing:.035em; line-height:1.3; }
.consent-action:hover { background:#e6e4dc; }
.consent-action:focus-visible, #consent-reopen:focus-visible, .consent-dialog input:focus-visible { outline:3px solid #085cc0; outline-offset:3px; }
#consent-reopen { background:none; border:0; padding:0; min-height:44px; text-decoration:underline; font:inherit; color:inherit; }
.consent-dialog { width:min(560px,calc(100% - 2rem)); max-height:85dvh; overflow:auto; padding:1.5rem; border:1px solid #30322e; border-radius:0; background:#f3f2ed; color:#171816; margin:auto; }
.consent-dialog::backdrop { background:rgb(23 24 22 / .45); }
.consent-dialog-header { display:flex; align-items:start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.consent-category { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-top:1px solid #d5d5cc; padding:1rem 0; }
.consent-category strong { display:block; font-size:.875rem; margin-bottom:.25rem; }
.consent-category input { flex:none; width:22px; height:22px; accent-color:#171816; }
.consent-dialog .consent-actions { margin-top:1rem; }
@media(max-width:1100px) { .consent-panel { grid-template-columns:1fr; gap:.75rem; } }
@media(max-width:600px) { .consent-panel { padding:1rem 1.25rem max(1rem,env(safe-area-inset-bottom)); } .consent-panel .consent-actions { display:grid; grid-template-columns:1fr 1fr; } .consent-panel [data-consent-manage] { grid-column:1/-1; } .consent-action { padding:.65rem .5rem; } .consent-dialog { padding:1.25rem; } }
