:root{--cm-bg:#ffffff;--cm-fg:#1d1d1f;--cm-muted:rgba(29,29,31,.62);--cm-line:rgba(0,0,0,.12);--cm-surface:#f5f5f7;--cm-reject-bg:#e9e9ec;--cm-track:#e3e3e8;--cm-accent:#2f6bff;--cm-accent-fg:#ffffff;--cm-on:#2f6bff;--cm-focus:#2f6bff;--cm-radius:14px;--cm-pill:980px;--cm-shadow:0 18px 50px rgba(0,0,0,.18),0 2px 8px rgba(0,0,0,.08)}
/* Hardening: reset inherited typography + spacing on the whole widget subtree so no theme bleeds in. */
#cm-bar,#cm-modal{position:fixed;box-sizing:border-box;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:15px;font-weight:400;font-style:normal;line-height:1.5;letter-spacing:normal;text-transform:none;text-align:left;text-shadow:none;color:var(--cm-fg);-webkit-font-smoothing:antialiased}
#cm-bar *,#cm-modal *{box-sizing:border-box;margin:0;padding:0;border:0;background:none;float:none;font-family:inherit;font-weight:400;font-style:normal;line-height:inherit;letter-spacing:normal;text-transform:none;text-shadow:none;max-width:none;min-width:0}
#cm-bar strong,#cm-modal strong,#cm-modal h2,#cm-bar .cm-title{font-weight:600}
/* ---- Banner: floating rounded card (desktop) ---- */
#cm-bar{left:50%;transform:translateX(-50%);bottom:22px;width:calc(100% - 40px);max-width:1060px;z-index:2147483646;display:none;padding:20px 24px;background:var(--cm-bg);border:1px solid var(--cm-line);border-radius:20px;box-shadow:var(--cm-shadow)}
#cm-bar .cm-inner{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;justify-content:space-between}
#cm-bar .cm-text{flex:1 1 380px}
#cm-bar .cm-title{display:block;font-size:17px;margin:0 0 4px}
#cm-bar .cm-body{margin:0;color:var(--cm-muted);font-size:14px;line-height:1.5}
#cm-bar a,#cm-modal a{color:var(--cm-fg);font-size:inherit;font-weight:inherit;line-height:inherit;vertical-align:baseline;text-decoration:underline;text-underline-offset:2px}
#cm-bar .cm-actions{display:flex;gap:10px;flex:0 0 auto;flex-wrap:wrap;align-items:center}
#cm-bar .cm-gpc-note{display:none;width:100%;margin:0 0 8px;font-size:12.5px;color:var(--cm-muted)}
#cm-bar .cm-gpc-note.cm-on{display:block}
/* ---- Buttons: pills, appearance:none + explicit so theme styles can't touch them ---- */
#cm-bar .cm-btn,#cm-modal .cm-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;width:auto;min-height:0;cursor:pointer;font-family:inherit;font-size:15px;font-weight:600;line-height:1;text-align:center;text-decoration:none;text-transform:none;letter-spacing:normal;padding:13px 24px;border-radius:var(--cm-pill);border:1px solid transparent;background:var(--cm-reject-bg);color:var(--cm-fg);box-shadow:none;transition:transform .12s ease,opacity .15s ease,background .15s ease,border-color .15s ease}
#cm-bar .cm-btn:active,#cm-modal .cm-btn:active{transform:scale(.97)}
#cm-bar .cm-equal,#cm-modal .cm-equal{background:var(--cm-accent);color:var(--cm-accent-fg);border-color:var(--cm-accent)}
#cm-bar .cm-equal:hover,#cm-modal .cm-equal:hover{opacity:.92}
#cm-bar .cm-reject,#cm-modal .cm-reject{background:var(--cm-reject-bg);color:var(--cm-fg);border-color:transparent}
#cm-bar .cm-reject:hover,#cm-modal .cm-reject:hover{background:#dededf}
#cm-bar .cm-ghost,#cm-modal .cm-ghost{background:var(--cm-bg);color:var(--cm-fg);border-color:var(--cm-line)}
#cm-bar .cm-ghost:hover,#cm-modal .cm-ghost:hover{background:var(--cm-surface)}
#cm-bar .cm-btn:focus-visible,#cm-modal .cm-btn:focus-visible{outline:2px solid var(--cm-focus);outline-offset:2px}
/* ---- Modal ---- */
#cm-modal{inset:0;z-index:2147483647;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.45)}
#cm-modal.cm-open{display:flex}
#cm-modal .cm-card{position:relative;width:100%;max-width:540px;max-height:90vh;overflow:auto;background:var(--cm-bg);color:var(--cm-fg);border-radius:22px;padding:28px 26px 22px;box-shadow:var(--cm-shadow)}
#cm-modal .cm-close{position:absolute;top:14px;right:16px;width:auto;background:none;color:var(--cm-muted);font-size:24px;line-height:1;cursor:pointer;padding:4px 8px;-webkit-appearance:none;appearance:none}
#cm-modal .cm-close:focus-visible{outline:2px solid var(--cm-focus);outline-offset:2px}
#cm-modal h2{margin:0 0 6px;font-size:22px}
#cm-modal .cm-sub{margin:0 0 18px;color:var(--cm-muted);font-size:14px;line-height:1.5}
#cm-modal .cm-dns,#cm-modal .cm-cat{padding:16px;margin:0 0 10px;border-radius:var(--cm-radius);background:var(--cm-surface);display:flex;gap:14px;align-items:center}
#cm-modal .cm-cat-text{flex:1}
#cm-modal .cm-cat-text strong{display:block;margin:0 0 3px;font-size:15px}
#cm-modal .cm-cat-text span{display:block;color:var(--cm-muted);font-size:13.5px;line-height:1.45}
#cm-modal .cm-switch{position:relative;width:46px;height:28px;flex:0 0 auto}
#cm-modal .cm-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;-webkit-appearance:none;appearance:none}
#cm-modal .cm-track{position:absolute;inset:0;background:var(--cm-track);border-radius:999px;transition:background .18s ease}
#cm-modal .cm-track::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .18s ease}
#cm-modal .cm-switch input:checked+.cm-track{background:var(--cm-on)}
#cm-modal .cm-switch input:checked+.cm-track::after{transform:translateX(18px)}
#cm-modal .cm-switch input:disabled+.cm-track{opacity:.5;cursor:not-allowed}
#cm-modal .cm-switch input:focus-visible+.cm-track{outline:2px solid var(--cm-focus);outline-offset:2px}
#cm-modal .cm-modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px;justify-content:flex-end}
#cm-modal .cm-modal-actions .cm-btn{flex:0 1 auto}
/* ---- Mobile: bottom sheet with grab handle + stacked full-width pills ---- */
@media (max-width:600px){
  #cm-bar{left:0;right:0;bottom:0;transform:none;width:100%;max-width:none;border-radius:22px 22px 0 0;border-left:0;border-right:0;border-bottom:0;padding:26px 20px 22px}
  #cm-bar::before{content:"";position:absolute;top:9px;left:50%;transform:translateX(-50%);width:38px;height:5px;border-radius:3px;background:var(--cm-line)}
  #cm-bar .cm-inner{flex-direction:column;align-items:stretch;gap:18px}
  #cm-bar .cm-text{flex:none;text-align:center}
  #cm-bar .cm-title{font-size:19px}
  #cm-bar .cm-actions{flex-direction:column;width:100%;gap:10px}
  #cm-bar .cm-actions .cm-btn{width:100%;padding:15px 24px}
  #cm-bar #cm-accept{order:1}
  #cm-bar .cm-ghost{order:2}
  #cm-bar #cm-reject{order:3}
  #cm-modal .cm-card{border-radius:22px}
  #cm-modal .cm-modal-actions{flex-direction:column}
  #cm-modal .cm-modal-actions .cm-btn{width:100%}
  #cm-modal #cm-modal-accept{order:1}
  #cm-modal #cm-modal-save{order:2}
  #cm-modal #cm-modal-reject{order:3}
}
@media (prefers-reduced-motion:reduce){#cm-bar .cm-btn,#cm-modal .cm-btn,#cm-modal .cm-track,#cm-modal .cm-track::after{transition:none}}
.cm-footer-link{text-align:center;padding:12px 10px;font-size:12.5px;line-height:1}
.cm-footer-link a[data-consent-open]{display:inline-flex;align-items:center;gap:7px;color:inherit !important;text-decoration:underline !important;text-underline-offset:3px;text-decoration-thickness:1px;cursor:pointer;opacity:.85;letter-spacing:.01em;transition:opacity .15s ease}
.cm-footer-link a[data-consent-open]:hover,.cm-footer-link a[data-consent-open]:focus-visible{opacity:1;outline:none}
.cm-footer-link .cm-fl-icon{width:14px;height:14px;flex:0 0 auto;opacity:.9}
.cm-embed-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:160px;padding:22px;text-align:center;background:#f5f5f7;color:#1d1d1f;border:1px dashed #c4c4c8;border-radius:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:14px}
.cm-embed-ph p{margin:0}
.cm-cookie-table-wrap{font-size:14px;line-height:1.5;overflow-x:auto}
.cm-cookie-table-wrap .cm-ct-intro,.cm-cookie-table-wrap .cm-ct-note{margin:0 0 12px}
.cm-cookie-table-wrap .cm-ct-note{font-size:12.5px;opacity:.75;margin-top:12px}
.cm-cookie-table{width:100%;border-collapse:collapse;font-size:13px}
.cm-cookie-table th,.cm-cookie-table td{text-align:left;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.12);vertical-align:top}
.cm-cookie-table thead th{border-bottom:2px solid rgba(0,0,0,.28);font-weight:600}