/* Mobieus consent manager — self-hosted CMP, no external dependencies.
   Paired with /js/consent.js. Scoped under #mob-consent / .mob-cc-* so it
   never collides with site styles. Dark card works over any page theme. */
#mob-consent, #mob-consent *, .mob-cc-overlay, .mob-cc-overlay * { box-sizing: border-box; }
.mob-cc-hidden { display: none !important; }

#mob-consent {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 2147483646;
  max-width: 760px; margin: 0 auto;
  background: #0b1020; color: #eaf0ff;
  border: 1px solid rgba(127,164,255,.28); border-radius: 16px;
  box-shadow: 0 18px 50px rgba(3,7,25,.45);
  padding: 20px 22px; font-family: inherit; line-height: 1.5;
}
#mob-consent h2 { margin: 0 0 6px; font-size: 1.05rem; color: #fff; }
#mob-consent p { margin: 0 0 14px; font-size: .92rem; color: #c4d0f0; }
#mob-consent a, .mob-cc-modal a { color: #8fb0ff; text-decoration: underline; }

.mob-cc-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.mob-cc-btn {
  appearance: none; border: 0; border-radius: 10px; padding: 11px 18px;
  font: inherit; font-weight: 600; font-size: .9rem; cursor: pointer;
  transition: filter .15s, background .15s;
}
.mob-cc-btn:focus-visible { outline: 2px solid #8fb0ff; outline-offset: 2px; }
.mob-cc-accept { background: #2C7CFF; color: #fff; }
.mob-cc-accept:hover { filter: brightness(1.08); }
.mob-cc-reject { background: rgba(255,255,255,.08); color: #eaf0ff; }
.mob-cc-reject:hover { background: rgba(255,255,255,.14); }
.mob-cc-customize { background: transparent; color: #8fb0ff; padding: 11px 8px; }
.mob-cc-customize:hover { text-decoration: underline; }

/* preference center */
.mob-cc-overlay {
  position: fixed; inset: 0; z-index: 2147483647; background: rgba(3,7,25,.6);
  display: flex; align-items: center; justify-content: center; padding: 16px;
}
.mob-cc-modal {
  background: #0b1020; color: #eaf0ff; border: 1px solid rgba(127,164,255,.28);
  border-radius: 18px; max-width: 560px; width: 100%; max-height: 88vh; overflow: auto;
  padding: 26px 26px 22px; box-shadow: 0 24px 70px rgba(3,7,25,.6); font-family: inherit; line-height: 1.5;
}
.mob-cc-modal h2 { margin: 0 0 4px; font-size: 1.2rem; color: #fff; }
.mob-cc-modal > p { margin: 0 0 18px; font-size: .9rem; color: #c4d0f0; }
.mob-cc-cat { border: 1px solid rgba(127,164,255,.18); border-radius: 12px; padding: 14px 16px; margin-bottom: 12px; }
.mob-cc-cat-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mob-cc-cat-head h3 { margin: 0; font-size: .98rem; color: #fff; }
.mob-cc-cat p { margin: 8px 0 0; font-size: .84rem; color: #aebada; }

/* accessible toggle */
.mob-cc-switch { position: relative; width: 44px; height: 24px; flex: 0 0 auto; }
.mob-cc-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.mob-cc-track { position: absolute; inset: 0; background: rgba(255,255,255,.16); border-radius: 999px; transition: background .15s; }
.mob-cc-track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; background: #fff; border-radius: 50%; transition: transform .15s; }
.mob-cc-switch input:checked + .mob-cc-track { background: #2C7CFF; }
.mob-cc-switch input:checked + .mob-cc-track::after { transform: translateX(20px); }
.mob-cc-switch input:disabled + .mob-cc-track { background: #2C7CFF; opacity: .5; cursor: not-allowed; }
.mob-cc-switch input:focus-visible + .mob-cc-track { outline: 2px solid #8fb0ff; outline-offset: 2px; }

.mob-cc-modal-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.mob-cc-modal-actions .mob-cc-btn { flex: 1 1 auto; text-align: center; }

@media (max-width: 560px) { .mob-cc-actions .mob-cc-btn, .mob-cc-customize { flex: 1 1 100%; } }
@media (prefers-reduced-motion: reduce) {
  #mob-consent, .mob-cc-btn, .mob-cc-track, .mob-cc-track::after { transition: none; }
}
