.cc-root { --cc-background:#f6f3e9; --cc-text:#183c32; --cc-accent:#214e3d; --cc-border:#b8c1b5; --cc-radius:4px; --cc-on-accent:#fff; --cc-space:16px; font:15px/1.5 system-ui,sans-serif; color:var(--cc-text); }
.cc-root *, .cc-root *::before, .cc-root *::after { box-sizing:border-box; }
.cc-root [hidden] { display:none !important; }
.cc-root .cc-dialog { font:inherit; color:var(--cc-text); background:var(--cc-background); border:1px solid var(--cc-border); border-radius:var(--cc-radius); padding:var(--cc-space); width:min(520px,calc(100% - 24px)); max-width:calc(100% - 24px); max-height:calc(100vh - 32px); max-height:calc(100dvh - max(16px,env(safe-area-inset-top)) - max(16px,env(safe-area-inset-bottom))); margin:auto; overflow:auto; overscroll-behavior:contain; box-shadow:0 12px 60px #102a3326; overflow-wrap:anywhere; }
.cc-root .cc-dialog::backdrop { background:#102a3370; }
.cc-root h2 { color:var(--cc-text); font:700 22px/1.25 system-ui,sans-serif; text-transform:none; letter-spacing:normal; margin:0 0 10px; }
.cc-root p { color:var(--cc-text); font:inherit; margin:0 0 12px; opacity:1; }
.cc-root a { color:var(--cc-accent); text-decoration:underline; }
.cc-root .cc-policy { display:inline-flex; align-items:center; min-height:44px; }
.cc-root .cc-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.cc-root button { appearance:none; font:inherit; line-height:1.3; text-transform:none; letter-spacing:normal; cursor:pointer; color:var(--cc-text); background:var(--cc-background); border:1px solid var(--cc-border); border-radius:var(--cc-radius); padding:10px 12px; min-height:44px; max-width:100%; white-space:normal; box-shadow:none; }
.cc-root button.cc-primary { color:var(--cc-on-accent); background:var(--cc-accent); border-color:var(--cc-accent); }
.cc-root button.cc-text-button { flex-basis:100%; border:0; text-decoration:underline; padding:8px; }
.cc-root button:hover { outline:1px solid var(--cc-accent); }
.cc-root :focus-visible { outline:3px solid var(--cc-accent); outline-offset:3px; }
.cc-root .cc-category { display:grid; grid-template-columns:minmax(0,1fr) 44px; gap:8px; align-items:center; padding:10px 0; margin:0; min-height:64px; border-bottom:1px solid var(--cc-border); color:var(--cc-text); font:inherit; cursor:pointer; text-transform:none; letter-spacing:normal; }
.cc-root .cc-copy { display:block; min-width:0; }
.cc-root .cc-copy strong { display:block; color:var(--cc-text); font:700 15px/1.4 system-ui,sans-serif; }
.cc-root .cc-copy > span, .cc-root .cc-copy small { display:block; color:var(--cc-text); font:inherit; margin-top:2px; }
.cc-root .cc-copy small { font-size:12px; }
.cc-root .cc-category input[type="checkbox"] { appearance:auto; -webkit-appearance:checkbox; position:static; display:block; float:none; transform:none; opacity:1; accent-color:var(--cc-accent); width:22px; height:22px; min-width:22px; max-width:22px; min-height:22px; max-height:22px; margin:11px; padding:0; border-radius:2px; cursor:pointer; }
.cc-root .cc-category input:disabled { opacity:1; cursor:default; }
.cc-root .cc-details { padding:4px 0; font-size:13px; }
.cc-root .cc-details summary { display:list-item; cursor:pointer; min-height:44px; padding:10px 0; }
.cc-root .cc-details p { margin:4px 0 8px; }
.cc-root .cc-settings-link { position:fixed; bottom:max(12px,env(safe-area-inset-bottom)); left:max(12px,env(safe-area-inset-left)); z-index:9998; }
.cc-root .cc-status:empty { display:none; }
@media(max-width:480px) { .cc-root .cc-actions > button { flex:1 1 100%; } .cc-root .cc-dialog { width:calc(100% - max(12px,env(safe-area-inset-left)) - max(12px,env(safe-area-inset-right))); } }
@media(prefers-reduced-motion:reduce) { .cc-root *, .cc-root *::before, .cc-root *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

/* Footer: policy on the left, settings on the right. */
.cc-root .cc-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px 12px; margin-top:8px; }
.cc-root .cc-footer > .cc-text-button { flex:0 1 auto; margin-left:auto; padding:8px 0; text-align:right; }
