/* Shared, necessary-services-only privacy controls. */
html { scroll-padding-bottom: calc(var(--cc-banner-space, 0px) + 20px); }
body { padding-bottom: var(--cc-banner-space, 0px); }
.cc-root { font-family: Arial, Helvetica, sans-serif; color:#242a30; font-size:15px; line-height:1.55; }
.cc-root *, .cc-root *::before, .cc-root *::after { box-sizing:border-box; }
.cc-root [hidden] { display:none!important; }
.cc-root h2,.cc-root h3,.cc-root p { padding:0; text-transform:none; letter-spacing:normal; font-family:inherit; }
.cc-root button,.cc-root a { -webkit-tap-highlight-color:transparent; }
.cc-banner { position:fixed; z-index:1000; inset:auto 0 0; display:flex; align-items:center; gap:32px; padding:22px 28px; background:#fff; border-top:1px solid #dbe2eb; box-shadow:0 -5px 24px #10203512; max-height:80dvh; overflow:auto; }
.cc-message { flex:1; min-width:0; }
.cc-root h2 { font-size:19px; line-height:1.35; font-weight:700; color:#202832; margin:0 0 10px; }
.cc-root p { margin:0 0 12px; font-size:14px; line-height:1.65; color:#3e4853; }
.cc-message p { margin-bottom:8px; }
.cc-actions { display:flex; gap:10px; flex-shrink:0; align-items:stretch; }
.cc-root button { font-family:inherit; cursor:pointer; text-transform:none; letter-spacing:normal; }
.cc-actions button { display:flex; align-items:center; justify-content:center; gap:8px; font-size:14px; line-height:1.4; font-weight:600; padding:12px 18px; min-height:46px; min-width:130px; color:#155ac7; border:1px solid #155ac7; background:#fff; border-radius:3px; box-shadow:none; }
.cc-actions .cc-primary { color:#fff; background:#155ac7; }
.cc-actions button:hover { background:#edf3ff; }
.cc-actions .cc-primary:hover { background:#10499f; }
.cc-links { display:flex; flex-wrap:wrap; gap:8px 18px; }
.cc-links a { color:#3b526b; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.cc-reopen { position:fixed; left:16px; bottom:14px; z-index:990; padding:9px 13px; min-height:42px; border:1px solid #c9d6e6; background:white; color:#294563; border-radius:5px; font-size:13px; box-shadow:0 2px 12px #182f491a; }
.cc-dialog { position:fixed; inset:0; margin:auto; width:min(640px,calc(100% - 32px)); max-width:640px; max-height:calc(100dvh - 32px); padding:0; border:0; border-radius:10px; background:#fff; color:#242a30; box-shadow:0 20px 90px #10203550; overflow:hidden; }
.cc-dialog[open] { display:flex; flex-direction:column; }
.cc-dialog::backdrop { background:#12273f66; }
.cc-heading { display:flex; align-items:center; justify-content:space-between; padding:22px 26px 16px; gap:16px; border-bottom:1px solid #e3e8ef; }
.cc-heading h2 { margin:0; font-size:22px; }
.cc-close { border:0; background:#f0f3f7; color:#344658; border-radius:50%; min-width:40px; height:40px; padding:0; line-height:1; font-size:28px; }
.cc-scroll { padding:20px 26px; overflow:auto; min-height:0; overscroll-behavior:contain; }
.cc-category { padding:16px 0; border-top:1px solid #e3e8ef; }
.cc-root .cc-category h3 { display:flex; justify-content:space-between; gap:12px; align-items:center; margin:0 0 8px; font-size:16px; font-weight:700; }
.cc-category p { margin:0; font-size:13px; }
.cc-badge { color:#5b6571; background:#f0f2f5; font-size:12px; padding:3px 9px; border-radius:20px; font-weight:400; white-space:nowrap; }
.cc-active { background:#e8f4ee; color:#206647; }
.cc-root .cc-status { font-size:13px; color:#155ac7; }
.cc-storage { border-top:1px solid #e3e8ef; padding-top:16px; font-size:13px; }
.cc-storage summary { cursor:pointer; color:#3b526b; margin-bottom:12px; }
.cc-storage p { font-size:13px; }
.cc-reset { margin-top:10px; background:none; border:0; color:#3b526b; padding:10px 0; text-decoration:underline; font-size:13px; }
.cc-reset:disabled { opacity:.5; cursor:default; }
.cc-dialog-footer { padding:16px 26px 20px; border-top:1px solid #e3e8ef; flex-shrink:0; }
.cc-dialog-footer .cc-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.cc-dialog-footer .cc-actions button { min-width:0; padding:11px 10px; }
.cc-dialog-footer .cc-links { margin-top:14px; }
.cc-root button:focus-visible,.cc-root a:focus-visible,.cc-root summary:focus-visible { outline:3px solid #155ac7; outline-offset:3px; }
@media(max-width:1100px) { .cc-banner { flex-wrap:wrap; gap:14px; padding:20px 24px; } .cc-message { flex-basis:100%; } }
@media(max-width:600px) { .cc-banner { padding:18px 16px; } .cc-root h2 { font-size:18px; } .cc-actions { width:100%; display:grid; grid-template-columns:1fr; gap:8px; } .cc-actions button { width:100%; min-width:0; min-height:44px; padding:10px 12px; } .cc-dialog { width:calc(100% - 20px); max-height:calc(100dvh - 20px); } .cc-heading { padding:16px; } .cc-scroll { padding:16px; } .cc-dialog-footer { padding:14px 16px; } .cc-dialog-footer .cc-actions { grid-template-columns:1fr; } .cc-category h3 { flex-wrap:wrap; } }
