/* OMNI DEVELOPER standard "web-consent" — neutral styles. Brand them through the
 * custom properties below in the project's own stylesheet; keep both first-layer
 * choices ("Reject all" and "Accept all") equally prominent. */
:root {
  --cc-bg: #ffffff;
  --cc-fg: #1d1d1f;
  --cc-muted: #5b5b66;
  --cc-border: #d9d9e0;
  --cc-accent: #1d1d1f;
  --cc-accent-fg: #ffffff;
  --cc-radius: 14px;
  --cc-shadow: 0 12px 40px rgba(0, 0, 0, .18);
  --cc-font: inherit;
  --cc-z: 2147483000;
}
.cc-banner, .cc-dialog { font-family: var(--cc-font); color: var(--cc-fg); background: var(--cc-bg); box-sizing: border-box; }
.cc-banner *, .cc-dialog * { box-sizing: border-box; }
.cc-banner {
  position: fixed; z-index: var(--cc-z); left: 16px; right: 16px; bottom: 16px; max-width: 560px; margin-left: auto;
  padding: 20px 20px 16px; border: 1px solid var(--cc-border); border-radius: var(--cc-radius); box-shadow: var(--cc-shadow);
  animation: cc-in .2s ease-out;
}
.cc-title { margin: 0 32px 8px 0; font-size: 1.05rem; line-height: 1.3; font-weight: 700; }
.cc-text { margin: 0 0 14px; font-size: .92rem; line-height: 1.5; color: var(--cc-muted); }
.cc-link { color: inherit; text-decoration: underline; }
.cc-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.cc-btn {
  flex: 1 1 140px; min-height: 44px; padding: 10px 16px; border-radius: 999px; border: 1px solid var(--cc-accent);
  background: var(--cc-accent); color: var(--cc-accent-fg); font: inherit; font-weight: 600; cursor: pointer;
}
.cc-btn[data-consent-action="settings"], .cc-btn[data-consent-action="save"] { background: transparent; color: var(--cc-fg); border-color: var(--cc-border); }
.cc-btn:focus-visible, .cc-close:focus-visible, .cc-category input:focus-visible { outline: 3px solid #4c7cf3; outline-offset: 2px; }
.cc-close {
  position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; border: 0; border-radius: 50%;
  background: transparent; color: var(--cc-muted); font-size: 1.4rem; line-height: 1; cursor: pointer;
}
.cc-dialog {
  position: fixed; z-index: var(--cc-z); width: min(640px, calc(100vw - 24px)); max-height: calc(100vh - 32px); overflow: auto;
  padding: 24px; border: 1px solid var(--cc-border); border-radius: var(--cc-radius); box-shadow: var(--cc-shadow);
}
.cc-dialog::backdrop { background: rgba(0, 0, 0, .45); }
.cc-categories { display: grid; gap: 10px; margin: 0 0 16px; }
.cc-category { padding: 12px 14px; border: 1px solid var(--cc-border); border-radius: 10px; }
.cc-category-head { display: flex; align-items: center; gap: 10px; }
.cc-category-title { flex: 1; font-weight: 600; }
.cc-always { font-size: .8rem; color: var(--cc-muted); }
.cc-category-text, .cc-services { margin: 6px 0 0; font-size: .85rem; line-height: 1.45; color: var(--cc-muted); }
.cc-category input[type="checkbox"] {
  appearance: none; -webkit-appearance: none; width: 44px; height: 26px; border-radius: 999px; background: var(--cc-border);
  position: relative; cursor: pointer; transition: background .15s; flex: none; margin: 0;
}
.cc-category input[type="checkbox"]::after {
  content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform .15s;
}
.cc-category input[type="checkbox"]:checked { background: var(--cc-accent); }
.cc-category input[type="checkbox"]:checked::after { transform: translateX(18px); }
.cc-category input[type="checkbox"]:disabled { opacity: .55; cursor: not-allowed; }
@keyframes cc-in { from { transform: translateY(12px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .cc-banner { animation: none; } .cc-category input::after { transition: none; } }
@media (max-width: 520px) { .cc-banner { left: 8px; right: 8px; bottom: 8px; } .cc-btn { flex-basis: 100%; } }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --cc-bg: #1c1c22; --cc-fg: #f2f2f5; --cc-muted: #b4b4c0; --cc-border: #3a3a46; --cc-accent: #f2f2f5; --cc-accent-fg: #1c1c22; }
}
