/* Ordelix Consent - minimal CSS (no external deps) */
:root[data-odx-consent-theme="light"] { --odx-bg:#fff; --odx-fg:#111; --odx-muted:#555; --odx-border:#e5e7eb; --odx-shadow:0 10px 30px rgba(0,0,0,.12); --odx-accent:#111; --odx-accent-color: var(--odx-accent, #111); --odx-accent-contrast:#fff; --odx-radius:14px; --odx-btn-radius:999px; }
:root[data-odx-consent-theme="dark"]  { --odx-bg:#111; --odx-fg:#fff; --odx-muted:#cbd5e1; --odx-border:#2a2a2a; --odx-shadow:0 10px 30px rgba(0,0,0,.35); --odx-accent:#fff; --odx-accent-color: var(--odx-accent, #fff); --odx-accent-contrast:#111; --odx-radius:14px; --odx-btn-radius:999px; }
:root[data-odx-consent-theme="auto"]  { --odx-bg:Canvas; --odx-fg:CanvasText; --odx-muted:color-mix(in oklab, CanvasText 60%, Canvas 40%); --odx-border:color-mix(in oklab, CanvasText 15%, Canvas 85%); --odx-shadow:0 10px 30px rgba(0,0,0,.12); --odx-accent:CanvasText; --odx-accent-color: var(--odx-accent, CanvasText); --odx-accent-contrast:Canvas; --odx-radius:14px; --odx-btn-radius:999px; }

.odx-consent { position: fixed; left: 0; right: 0; z-index: var(--odx-z-index, 999999); padding: 12px; }
:root[data-odx-consent-pos="top"] .odx-consent { top: 0; }
:root[data-odx-consent-pos="bottom"] .odx-consent { bottom: 0; }

.odx-consent__inner { max-width: var(--odx-max-width, 980px); margin: 0 auto; background: var(--odx-bg); color: var(--odx-fg); border: 1px solid var(--odx-border); box-shadow: var(--odx-shadow); border-radius: var(--odx-radius); padding: var(--odx-card-pad, 14px); display: flex; gap: var(--odx-gap, 14px); align-items: center; justify-content: space-between; font-size: var(--odx-font-size, 14px); }
.odx-consent__content { min-width: 220px; }
.odx-consent__title { font-weight: 700; margin-bottom: 4px; }
.odx-consent__message { font-size: 1em; color: var(--odx-muted); line-height: 1.3; }
.odx-consent__links a { font-size: 13px; color: inherit; text-decoration: underline; opacity: .85; }
.odx-consent__actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }

.odx-btn { border-radius: var(--odx-btn-radius); padding: 10px 14px; border: 1px solid var(--odx-border); background: transparent; color: var(--odx-fg); cursor: pointer; font-weight: 600; font-size: 14px; }
.odx-btn:focus { outline: 2px solid currentColor; outline-offset: 2px; }
:root[data-odx-focus="enhanced"] .odx-btn:focus,
:root[data-odx-focus="enhanced"] .odx-modal__close:focus,
:root[data-odx-focus="enhanced"] .odx-switch input:focus + .odx-switch__slider,
:root[data-odx-focus="enhanced"] .odx-consent-fab:focus {
  outline: 3px solid #0b5fff;
  outline-offset: 3px;
}
.odx-btn--primary { background: var(--odx-accent-color); color: var(--odx-accent-contrast); border-color: transparent; }
:root[data-odx-btn-style="outline"] .odx-btn--primary { background: transparent; color: var(--odx-accent-color); border-color: var(--odx-accent-color); }
.odx-btn--secondary { background: transparent; }
.odx-btn--ghost { background: transparent; opacity: .85; }

.odx-modal { position: fixed; inset: 0; z-index: 1000000; }
.odx-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.35); }
.odx-modal__dialog { position: relative; max-width: 640px; margin: 8vh auto; background: var(--odx-bg); color: var(--odx-fg); border: 1px solid var(--odx-border); box-shadow: var(--odx-shadow); border-radius: var(--odx-radius); overflow: hidden; }
.odx-modal__header { display:flex; justify-content: space-between; align-items:center; padding: 14px 16px; border-bottom: 1px solid var(--odx-border); }
.odx-modal__title { font-weight: 800; }
.odx-modal__close { background: transparent; border: 0; color: var(--odx-fg); font-size: 22px; cursor: pointer; padding: 4px 8px; }
.odx-modal__body { padding: 14px 16px; display: grid; gap: 12px; }
.odx-modal__footer { padding: 14px 16px; border-top: 1px solid var(--odx-border); display:flex; gap: 10px; justify-content:flex-end; flex-wrap:wrap; }

.odx-cat { border: 1px solid var(--odx-border); border-radius: calc(var(--odx-radius) - 2px); padding: 12px; }
.odx-cat__row { display:flex; justify-content: space-between; align-items:center; gap: 12px; }
.odx-cat__name { font-weight: 700; }
.odx-cat__desc { font-size: 13px; color: var(--odx-muted); margin-top: 6px; line-height: 1.35; }
.odx-cat--locked { opacity: .95; }
.odx-toggle--disabled { opacity: .6; }

.odx-switch { position: relative; display:inline-block; width: 46px; height: 28px; }
.odx-switch input { opacity:0; width:0; height:0; }
.odx-switch__slider { position:absolute; cursor:pointer; inset:0; background: color-mix(in oklab, var(--odx-border) 70%, var(--odx-bg) 30%); transition: .2s; border-radius: var(--odx-btn-radius); border:1px solid var(--odx-border); }
.odx-switch__slider:before { position:absolute; content:""; height: 22px; width: 22px; left: 3px; top: 2px; background: var(--odx-bg); transition: .2s; border-radius: var(--odx-btn-radius); border:1px solid var(--odx-border); }
.odx-switch input:checked + .odx-switch__slider { background: var(--odx-accent); border-color: transparent; }
.odx-switch input:checked + .odx-switch__slider:before { transform: translateX(18px); border-color: transparent; }

.odx-note { font-size: 13px; color: var(--odx-muted); border-left: 3px solid var(--odx-border); padding-left: 10px; }

.odx-consent-fab { position: fixed; bottom: var(--odx-fab-offset, 18px); right: var(--odx-fab-offset, 18px); z-index: calc(var(--odx-z-index, 999999) - 1); border: 1px solid var(--odx-border); background: var(--odx-bg); color: var(--odx-fg); border-radius: var(--odx-btn-radius); width: 44px; height: 44px; display:flex; align-items:center; justify-content:center; box-shadow: var(--odx-shadow); cursor: pointer; }
.odx-consent-fab:focus { outline: 2px solid currentColor; outline-offset: 2px; }
:root[data-odx-fab-side="left"] .odx-consent-fab { left: var(--odx-fab-offset, 18px); right: auto; }
:root[data-odx-fab-side="right"] .odx-consent-fab { right: var(--odx-fab-offset, 18px); left: auto; }
.odx-sr-status { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

:root[data-odx-anim="none"] .odx-modal__dialog { animation: none; }
:root[data-odx-anim="fade"] .odx-modal__dialog { animation: odxFadeIn var(--odx-anim-duration, .24s) var(--odx-anim-easing, ease); }
:root[data-odx-anim="slide"] .odx-modal__dialog { animation: odxSlideDown var(--odx-anim-duration, .28s) var(--odx-anim-easing, ease); }
.odx-consent.odx-enter-fade { animation: odxFadeIn var(--odx-anim-duration, .24s) var(--odx-anim-easing, ease); }
.odx-consent.odx-enter-slide { animation: odxSlideUp var(--odx-anim-duration, .28s) var(--odx-anim-easing, ease); }

@keyframes odxFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes odxSlideUp {
  from { opacity: 0; transform: translateY(var(--odx-anim-distance, 24px)); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes odxSlideDown {
  from { opacity: 0; transform: translateY(calc(var(--odx-anim-distance, 24px) * -0.66)); }
  to { opacity: 1; transform: translateY(0); }
}

:root[data-odx-reduce-motion="1"] * {
  scroll-behavior: auto !important;
}
@media (prefers-reduced-motion: reduce) {
  :root[data-odx-reduce-motion="1"] .odx-consent,
  :root[data-odx-reduce-motion="1"] .odx-modal__dialog {
    animation: none !important;
    transition: none !important;
  }
}

@media (max-width: 720px) {
  .odx-consent__inner { flex-direction: column; align-items: stretch; }
  .odx-consent__actions { justify-content: stretch; }
  .odx-btn { width: 100%; }
}
