#zmc-root {
  --zmc-primary: var(--primary-color, var(--zmc-primary-manual, #3a3a3a));
  --zmc-secondary: var(--secondary-color, var(--zmc-secondary-manual, #e6e6e6));
  --zmc-on-primary: #fff;
  --zmc-accent-dark: #3a3a3a;
  --zmc-accent-light: #e6e6e6;
  --zmc-link: #3a3a3a;
  --zmc-button-outline: #3a3a3a;
  --zmc-button-bg: #e6e6e6;
  --zmc-button-fg: #111;
  --zmc-radius: 12px;
  --zmc-shadow: 0 10px 32px rgba(0,0,0,.14);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.5;
  position: relative;
  z-index: 2147483000;
}

#zmc-root[hidden], #zmc-root [hidden] { display: none !important; }
#zmc-root *, #zmc-root *::before, #zmc-root *::after { box-sizing: border-box; }
#zmc-root button, #zmc-root input, #zmc-root select, #zmc-root textarea { font-family: inherit !important; }

.zmc-light { --zmc-bg:#fff; --zmc-text:#000; --zmc-muted:#000; --zmc-border:#d6d6d6; --zmc-card:#f6f6f6; }
.zmc-dark { --zmc-bg:#1e1e1e; --zmc-text:#f7f7f7; --zmc-muted:#f7f7f7; --zmc-border:#565656; --zmc-card:#292929; }

/* Compact notice. Typography is intentionally fixed so theme heading/button scales cannot distort it. */
#zmc-root .zmc-banner {
  position: fixed;
  left: 22px;
  bottom: 22px;
  width: min(410px, calc(100vw - 32px));
  margin: 0;
  padding: 20px;
  background: var(--zmc-bg);
  color: var(--zmc-text);
  border: 1px solid var(--zmc-border);
  border-radius: var(--zmc-radius);
  box-shadow: var(--zmc-shadow);
  font-size: 14px !important;
  line-height: 1.5 !important;
  text-align: left;
  z-index: 2147483001;
}

#zmc-root .zmc-banner h2,
#zmc-root .zmc-preferences h2 {
  font-family: inherit !important;
  font-style: normal !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--zmc-text) !important;
}

#zmc-root .zmc-banner h2 {
  margin: 0 0 9px !important;
  padding: 0 !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
}

#zmc-root .zmc-banner p {
  margin: 0 0 9px !important;
  padding: 0 !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--zmc-text) !important;
}

#zmc-root .zmc-banner .zmc-privacy { margin: 0 !important; }
#zmc-root .zmc-banner a, #zmc-root .zmc-preferences a {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  color: var(--zmc-link) !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

#zmc-root .zmc-actions, #zmc-root .zmc-pref-actions {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
  align-items:stretch;
}
#zmc-root .zmc-actions { margin-top: 18px; }

#zmc-root .zmc-btn {
  appearance: none !important;
  -webkit-appearance: none !important;
  min-height: 38px;
  margin: 0 !important;
  padding: 9px 13px !important;
  border: 2px solid var(--zmc-button-outline) !important;
  border-radius: 9px !important;
  background: transparent;
  color: var(--zmc-text);
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  font-style: normal !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
  white-space: normal;
  text-align: center !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100%;
  cursor: pointer;
  transition: transform .12s ease, opacity .12s ease, background .12s ease;
}
#zmc-root .zmc-btn:hover { transform: translateY(-1px); }
#zmc-root .zmc-btn-primary { background: var(--zmc-button-bg) !important; color: var(--zmc-button-fg) !important; border-color: var(--zmc-button-bg) !important; }
#zmc-root .zmc-btn-outline { background: var(--zmc-bg) !important; color: var(--zmc-button-outline) !important; border-color: var(--zmc-button-outline) !important; }

.zmc-backdrop { position:fixed; inset:0; background:rgba(0,0,0,.42); z-index:2147483002; }

/* Preference centre also uses controlled sizes; only the font family comes from the site. */
#zmc-root .zmc-preferences {
  position:fixed;
  left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(800px,calc(100vw - 28px));
  max-height:min(82vh,800px);
  display:flex; flex-direction:column;
  background:var(--zmc-bg); color:var(--zmc-text);
  border-radius:var(--zmc-radius); box-shadow:var(--zmc-shadow);
  overflow:hidden; z-index:2147483003;
  font-size:14px !important; line-height:1.5 !important;
}
#zmc-root .zmc-pref-header { display:flex; justify-content:space-between; align-items:center; padding:18px 20px; border-bottom:1px solid var(--zmc-border); }
#zmc-root .zmc-pref-header h2 { margin:0 !important; padding:0 !important; font-size:19px !important; font-weight:700 !important; line-height:1.25 !important; }
#zmc-root .zmc-close { border:0 !important; background:transparent !important; color:var(--zmc-text) !important; font-size:24px !important; font-weight:400 !important; line-height:1 !important; cursor:pointer; padding:2px 4px !important; margin:0 !important; }
#zmc-root .zmc-pref-scroll { overflow:auto; padding:0 20px 10px; }
#zmc-root .zmc-pref-intro { font-size:14px !important; line-height:1.5 !important; margin:15px 0 !important; color:var(--zmc-text) !important; }
#zmc-root .zmc-category { border-top:1px solid var(--zmc-border); }
#zmc-root .zmc-category:last-child { border-bottom:1px solid var(--zmc-border); }
#zmc-root .zmc-category summary { list-style:none; display:flex; align-items:center; gap:12px; padding:15px 0; cursor:pointer; font-size:15px !important; line-height:1.35 !important; font-weight:700 !important; text-transform:none !important; letter-spacing:0 !important; }
#zmc-root .zmc-category summary::-webkit-details-marker { display:none; }
#zmc-root .zmc-category summary:before { content:'›'; display:inline-block; transform:rotate(0deg); transition:transform .15s; }
#zmc-root .zmc-category[open] summary:before { transform:rotate(90deg); }
#zmc-root .zmc-category summary>span:first-of-type { flex:1; }
#zmc-root .zmc-always { font-size:12px !important; line-height:1.3 !important; color:var(--zmc-link); }
#zmc-root .zmc-category-body { padding:0 0 16px 24px; }
#zmc-root .zmc-category-body>p { margin:0 0 12px !important; color:var(--zmc-text) !important; font-size:14px !important; line-height:1.5 !important; }
#zmc-root .zmc-cookie-card { background:var(--zmc-card); border-radius:9px; padding:12px 14px; margin:9px 0; }
#zmc-root .zmc-cookie-card>div { display:grid; grid-template-columns:125px 1fr; gap:10px; padding:4px 0; font-size:12.5px !important; line-height:1.45 !important; }
#zmc-root .zmc-cookie-card strong { color:var(--zmc-text); }
#zmc-root .zmc-cookie-card span { color:var(--zmc-text); }
#zmc-root .zmc-empty { font-style:italic; }
#zmc-root .zmc-pref-actions { padding:14px 20px; border-top:1px solid var(--zmc-border); background:var(--zmc-bg); }

#zmc-root .zmc-switch { position:relative; width:42px; height:24px; display:inline-block; flex:0 0 auto; }
#zmc-root .zmc-switch input { opacity:0; width:0; height:0; }
#zmc-root .zmc-switch span { position:absolute; inset:0; border-radius:30px; background:#cfd4d2; transition:.18s; }
#zmc-root .zmc-switch span:before { content:''; position:absolute; width:18px; height:18px; left:3px; top:3px; background:#fff; border-radius:50%; transition:.18s; box-shadow:0 1px 3px rgba(0,0,0,.2); }
#zmc-root .zmc-switch input:checked+span { background:var(--zmc-primary); }
#zmc-root .zmc-switch input:checked+span:before { transform:translateX(18px); }

/* Revisit control: geometry is fully owned by Zebra Consent so theme button rules can never turn it into a pill. */
#zmc-root .zmc-revisit {
  appearance:none !important;
  -webkit-appearance:none !important;
  position:fixed;
  bottom:18px;
  width:46px !important;
  height:46px !important;
  min-width:46px !important;
  max-width:46px !important;
  min-height:46px !important;
  max-height:46px !important;
  aspect-ratio:1 / 1;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:50% !important;
  background:var(--zmc-primary) !important;
  color:var(--zmc-on-primary) !important;
  box-shadow:0 5px 18px rgba(0,0,0,.18);
  cursor:pointer;
  z-index:2147483000;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:0 !important;
  text-indent:0 !important;
  overflow:hidden;
  transform:none;
}
#zmc-root .zmc-revisit:hover { transform:translateY(-1px); }
#zmc-root .zmc-revisit:focus-visible { outline:2px solid var(--zmc-primary); outline-offset:3px; }
#zmc-root .zmc-revisit svg {
  display:block;
  width:26px !important;
  height:26px !important;
  min-width:26px;
  min-height:26px;
  margin:0 !important;
  padding:0 !important;
  stroke:currentColor;
  fill:none;
  pointer-events:none;
}
#zmc-root .zmc-revisit-left { left:18px; }
#zmc-root .zmc-revisit-right { right:18px; }
#zmc-root .zmc-revisit-small {
  width:38px !important;
  height:38px !important;
  min-width:38px !important;
  max-width:38px !important;
  min-height:38px !important;
  max-height:38px !important;
}
#zmc-root .zmc-revisit-small svg { width:22px !important; height:22px !important; min-width:22px; min-height:22px; }
#zmc-root .zmc-revisit-medium {
  width:46px !important;
  height:46px !important;
  min-width:46px !important;
  max-width:46px !important;
  min-height:46px !important;
  max-height:46px !important;
}
#zmc-root .zmc-inline-open { border:0 !important; background:none !important; padding:0 !important; color:inherit !important; text-decoration:underline; cursor:pointer; font-family:inherit !important; font-size:inherit !important; text-transform:none !important; }

.zmc-diagnostic { position:fixed; right:18px; top:46px; width:min(520px,calc(100vw - 36px)); max-height:calc(100vh - 70px); overflow:auto; background:#111; color:#f7f7f7; border-radius:12px; box-shadow:0 12px 40px rgba(0,0,0,.34); padding:16px; z-index:2147483646; font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace; }
.zmc-diagnostic-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.zmc-diagnostic-head button { border:0; background:none; color:#fff; font-size:22px; cursor:pointer; }
.zmc-diagnostic-actions { display:flex; gap:8px; margin:12px 0; }
.zmc-diagnostic pre { white-space:pre-wrap; word-break:break-word; background:#181818; border:1px solid #333; border-radius:8px; padding:12px; min-height:120px; }
.zmc-diagnostic .zmc-btn { color:#fff !important; border-color:#777 !important; }
.zmc-diagnostic .zmc-btn-primary { background:#fff !important; color:#111 !important; border-color:#fff !important; }
.zmc-diagnostic .zmc-btn-outline { background:transparent !important; color:#fff !important; border-color:#777 !important; }

@media (max-width:640px) {
  #zmc-root .zmc-banner { left:16px; bottom:16px; width:calc(100vw - 32px); padding:18px; }
  #zmc-root .zmc-banner h2 { font-size:19px !important; }
  #zmc-root .zmc-actions, #zmc-root .zmc-pref-actions { grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; }
  #zmc-root .zmc-btn { width:100%; font-size:12.5px !important; }
  #zmc-root .zmc-preferences { width:calc(100vw - 16px); max-height:92vh; }
  #zmc-root .zmc-pref-header, #zmc-root .zmc-pref-scroll, #zmc-root .zmc-pref-actions { padding-left:16px; padding-right:16px; }
  #zmc-root .zmc-cookie-card>div { grid-template-columns:1fr; gap:2px; }
  #zmc-root .zmc-revisit { bottom:12px; }
  #zmc-root .zmc-revisit-left { left:12px; }
  #zmc-root .zmc-revisit-right { right:12px; }
}
