.mo-consent { color:var(--mc-text); font-family:var(--mo-consent-font,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif); font-size:15px; line-height:1.55; }
.mo-consent *, .mo-consent *::before, .mo-consent *::after { box-sizing:border-box; }
.mo-consent [hidden] { display:none!important; }
.mo-consent__notice { position:fixed; z-index:10000; bottom:max(24px,env(safe-area-inset-bottom)); width:420px; max-width:calc(100vw - 32px); max-height:calc(100dvh - 48px); overflow:auto; padding:26px; border:1px solid var(--mc-border); border-radius:var(--mc-radius); background:var(--mc-background); box-shadow:0 12px 50px #10203926; }
.mo-consent--bottom-left .mo-consent__notice { left:max(24px,env(safe-area-inset-left)); }
.mo-consent--bottom-right .mo-consent__notice { right:max(24px,env(safe-area-inset-right)); }
.mo-consent h2 { margin:6px 0 12px; padding:0; color:var(--mc-text); font-family:inherit; font-size:24px; font-weight:700; line-height:1.2; letter-spacing:-.025em; }
.mo-consent__eyebrow { color:var(--mc-secondary); font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.mo-consent__body { margin:0 0 16px; color:var(--mc-secondary); white-space:pre-line; }
.mo-consent .mo-consent__policy { display:inline-block; color:var(--mc-text); font-size:13px; font-weight:600; text-decoration:underline; text-underline-offset:3px; margin:0 0 18px; }
.mo-consent__actions { display:flex; flex-wrap:wrap; gap:9px; }
.mo-consent button { display:inline-flex; flex:1 1 40%; align-items:center; justify-content:center; min-height:44px; margin:0; padding:10px 14px; border:1px solid var(--mc-border); border-radius:9px; background:var(--mc-background); box-shadow:none; color:var(--mc-text); font-family:inherit; font-size:13px; font-weight:650; line-height:1.3; text-transform:none; white-space:normal; cursor:pointer; }
.mo-consent .mo-consent__primary { flex-basis:100%; border-color:var(--mc-button-background); background:var(--mc-button-background); color:var(--mc-button-text); }
.mo-consent button:hover { filter:brightness(.96); }
.mo-consent button:disabled { cursor:wait; opacity:.6; }
.mo-consent :focus-visible { outline:3px solid currentColor; outline-offset:4px; }
.mo-consent__dialog { position:fixed; inset:0; max-height:calc(100dvh - 32px); width:560px; max-width:calc(100vw - 32px); margin:auto; padding:30px; overflow:auto; border:1px solid var(--mc-border); border-radius:var(--mc-radius); background:var(--mc-background); color:var(--mc-text); box-shadow:0 24px 80px #10203940; }
.mo-consent__dialog::backdrop { background:#14203077; }
.mo-consent .mo-consent__close { position:absolute; top:14px; right:14px; min-height:34px; width:34px; padding:0; border:0; font-size:25px; font-weight:400; }
.mo-consent__dialog h2 { padding-right:25px; }
.mo-consent__category { padding:17px 0; border-top:1px solid var(--mc-border); }
.mo-consent .mo-consent__category > label { display:inline-flex!important; max-width:100%; gap:12px!important; align-items:center; justify-content:flex-start!important; margin:0; padding:0; color:var(--mc-text); font:inherit; font-weight:650; }
.mo-consent .mo-consent__category-title { min-width:0; overflow-wrap:anywhere; }
.mo-consent .mo-consent__switch-control { position:relative; display:inline-block; flex:0 0 42px; width:42px; height:24px; margin:0; padding:0; vertical-align:middle; }
/* Real, full-size input remains focusable and clickable over the visual track.
   Critical geometry overrides theme checkbox/radio skins; opacity keeps native
   semantics in the accessibility tree without exposing the theme's decoration. */
.mo-consent .mo-consent__switch-control > input[type=checkbox] { position:absolute!important; inset:0!important; display:block!important; width:100%!important; height:100%!important; min-width:0!important; min-height:0!important; margin:0!important; padding:0!important; opacity:0!important; z-index:1; cursor:pointer; transform:none!important; }
.mo-consent .mo-consent__switch-control > input[type=checkbox]:disabled { cursor:default; }
.mo-consent .mo-consent__switch-track { display:block; width:100%; height:100%; margin:0; padding:0; border:1px solid var(--mc-secondary); border-radius:999px; background:var(--mc-background); box-shadow:none; pointer-events:none; transition:background-color .15s ease, border-color .15s ease; }
.mo-consent .mo-consent__switch-track::before { content:""; position:absolute; top:4px; left:4px; width:16px; height:16px; border-radius:50%; background:var(--mc-secondary); transition:transform .15s ease, background-color .15s ease; }
.mo-consent .mo-consent__switch-control > input:checked + .mo-consent__switch-track { background:var(--mc-button-background); border-color:var(--mc-button-background); }
.mo-consent .mo-consent__switch-control > input:checked + .mo-consent__switch-track::before { background:var(--mc-button-text); transform:translateX(18px); }
.mo-consent .mo-consent__switch-control > input:focus-visible + .mo-consent__switch-track { outline:3px solid var(--mc-text); outline-offset:4px; }
.mo-consent__category p { margin:7px 0 0; color:var(--mc-secondary); font-size:13px; }
.mo-consent__active { display:block; color:var(--mc-secondary); font-size:12px; margin-top:3px; }
.mo-consent__status { position:fixed; bottom:8px; left:16px; right:16px; z-index:10002; padding:12px; border:1px solid var(--mc-border); border-radius:8px; color:var(--mc-text); background:var(--mc-background); }
.mo-consent__preview { padding:12px; border:1px dashed currentColor; }
@media(prefers-reduced-motion:reduce) {
  .mo-consent .mo-consent__switch-track, .mo-consent .mo-consent__switch-track::before { transition:none; }
}
@media(forced-colors:active) {
  .mo-consent .mo-consent__switch-track { background:Canvas; border-color:CanvasText; }
  .mo-consent .mo-consent__switch-track::before { background:CanvasText; }
  .mo-consent .mo-consent__switch-control > input:checked + .mo-consent__switch-track { background:Highlight; border-color:Highlight; }
  .mo-consent .mo-consent__switch-control > input:checked + .mo-consent__switch-track::before { background:HighlightText; }
}
@media(max-width:520px) {
  .mo-consent--bottom-left .mo-consent__notice, .mo-consent--bottom-right .mo-consent__notice { left:16px; right:16px; bottom:max(16px,env(safe-area-inset-bottom)); width:auto; padding:22px; max-height:calc(100dvh - 32px); overflow:auto; }
  .mo-consent__dialog { padding:24px 20px; }
}
