/* MovingUP GDPR v1.0.0 — minimal by default, .mu-gdpr-full for the richer look */
.mu-gdpr, .mu-gdpr-modal, .mu-gdpr-float { --mu-gdpr-color: #222; --mu-gdpr-text: #333; --mu-gdpr-muted: #6b6b6b; --mu-gdpr-border: #e6e6e6; --mu-gdpr-bg: #fff; font-size: 13px; line-height: 1.5; color: var(--mu-gdpr-text); box-sizing: border-box; }
.mu-gdpr *, .mu-gdpr-modal * { box-sizing: border-box; }
.mu-gdpr[hidden], .mu-gdpr-modal[hidden], .mu-gdpr-float[hidden] { display: none !important; }

/* ---------- banner ---------- */
.mu-gdpr { position: fixed; z-index: 2147483000; bottom: 16px; }
.mu-gdpr-banner { position: relative; background: var(--mu-gdpr-bg); border: 1px solid var(--mu-gdpr-border); border-radius: 10px; padding: 14px 16px; box-shadow: 0 4px 18px rgba(0,0,0,.06); }
.mu-gdpr-title { display: block; font-size: 14px; font-weight: 600; margin: 0 0 4px; color: inherit; }
.mu-gdpr-msg { margin: 0; color: var(--mu-gdpr-muted); }
.mu-gdpr-msg a { color: inherit; text-decoration: underline; white-space: nowrap; }
.mu-gdpr-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 12px; }
.mu-gdpr-text { display: flex; gap: 12px; align-items: flex-start; }

/* box (default) */
.mu-gdpr-l-box { width: 380px; max-width: calc(100vw - 24px); }
.mu-gdpr-l-box.mu-gdpr-p-left { left: 16px; }
.mu-gdpr-l-box.mu-gdpr-p-right { right: 16px; }

/* bar */
.mu-gdpr-l-bar { left: 0; right: 0; bottom: 0; }
.mu-gdpr-l-bar .mu-gdpr-banner { border-radius: 0; border-width: 1px 0 0; display: flex; align-items: center; gap: 18px; padding: 12px 20px; box-shadow: 0 -2px 12px rgba(0,0,0,.05); }
.mu-gdpr-l-bar .mu-gdpr-text { flex: 1 1 auto; }
.mu-gdpr-l-bar .mu-gdpr-actions { margin-top: 0; flex: 0 0 auto; flex-wrap: nowrap; }

/* modal (centered, with overlay) */
.mu-gdpr-l-modal { inset: 0; bottom: 0; display: flex; align-items: center; justify-content: center; padding: 16px; }
.mu-gdpr-l-modal .mu-gdpr-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.35); }
.mu-gdpr-l-modal .mu-gdpr-banner { width: 440px; max-width: 100%; }

/* buttons */
.mu-gdpr-btn { appearance: none; border: 1px solid var(--mu-gdpr-color); background: #fff; color: var(--mu-gdpr-color); border-radius: 8px; padding: 7px 14px; font: inherit; font-weight: 600; cursor: pointer; line-height: 1.3; min-height: 34px; }
.mu-gdpr-btn:hover { opacity: .88; }
.mu-gdpr-accept { background: var(--mu-gdpr-color); color: #fff; }
.mu-gdpr-equal .mu-gdpr-reject { background: var(--mu-gdpr-color); color: #fff; }
.mu-gdpr-linkbtn { appearance: none; border: 0; background: none; padding: 4px 2px; font: inherit; color: var(--mu-gdpr-muted); text-decoration: underline; cursor: pointer; }
.mu-gdpr-l-box .mu-gdpr-accept, .mu-gdpr-l-box .mu-gdpr-reject { flex: 1 1 0; }
.mu-gdpr-btn:focus-visible, .mu-gdpr-linkbtn:focus-visible, .mu-gdpr-x:focus-visible, .mu-gdpr-float:focus-visible { outline: 2px solid var(--mu-gdpr-color); outline-offset: 2px; }

/* ---------- full design ---------- */
.mu-gdpr-full .mu-gdpr-banner { padding: 18px 20px; border-top: 3px solid var(--mu-gdpr-color); }
.mu-gdpr-full.mu-gdpr-l-box { width: 440px; }
.mu-gdpr-full .mu-gdpr-title { font-size: 16px; }
.mu-gdpr-full .mu-gdpr-icon { color: var(--mu-gdpr-color); flex: 0 0 auto; margin-top: 2px; }
.mu-gdpr-quick { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--mu-gdpr-border); }
.mu-gdpr-quick-item { display: inline-flex; align-items: center; gap: 5px; margin: 0; font-weight: normal; cursor: pointer; }
.mu-gdpr-quick-item input { margin: 0; accent-color: var(--mu-gdpr-color); }
.mu-gdpr-full .mu-gdpr-save { border-color: var(--mu-gdpr-border); color: var(--mu-gdpr-text); }

/* ---------- settings modal ---------- */
.mu-gdpr-modal { position: fixed; inset: 0; z-index: 2147483001; display: flex; align-items: center; justify-content: center; padding: 16px; }
.mu-gdpr-modal .mu-gdpr-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.35); }
.mu-gdpr-dialog { position: relative; background: #fff; border-radius: 12px; width: 520px; max-width: 100%; max-height: 88vh; display: flex; flex-direction: column; overflow: hidden; }
.mu-gdpr-dialog-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--mu-gdpr-border); font-size: 15px; }
.mu-gdpr-x { appearance: none; border: 0; background: none; font-size: 24px; line-height: 1; padding: 0 4px; cursor: pointer; color: var(--mu-gdpr-muted); }
.mu-gdpr-dialog-body { padding: 14px 18px; overflow: auto; }
.mu-gdpr-dialog-body > .mu-gdpr-msg { margin-bottom: 10px; }
.mu-gdpr-cat { border: 1px solid var(--mu-gdpr-border); border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; }
.mu-gdpr-cat p { margin: 4px 0 0; color: var(--mu-gdpr-muted); font-size: 12px; }
.mu-gdpr-cat .mu-gdpr-services { font-size: 11px; }
.mu-gdpr-cat-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 0; font-weight: 600; cursor: pointer; }
.mu-gdpr-cat-head em { font-style: normal; font-weight: normal; font-size: 11px; color: var(--mu-gdpr-muted); }
.mu-gdpr-dialog-foot { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; padding: 12px 18px; border-top: 1px solid var(--mu-gdpr-border); }
.mu-gdpr-dialog-foot .mu-gdpr-save { border-color: var(--mu-gdpr-border); color: var(--mu-gdpr-text); }
.mu-gdpr-full .mu-gdpr-dialog-head { background: var(--mu-gdpr-color); color: #fff; border-bottom: 0; }
.mu-gdpr-full .mu-gdpr-dialog-head .mu-gdpr-x { color: #fff; }

/* switch */
.mu-gdpr-switch { position: relative; display: inline-block; width: 36px; height: 20px; flex: 0 0 auto; }
.mu-gdpr-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; z-index: 1; }
.mu-gdpr-switch i { position: absolute; inset: 0; background: #cfcfcf; border-radius: 20px; transition: background .15s; }
.mu-gdpr-switch i:after { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; background: #fff; border-radius: 50%; transition: transform .15s; }
.mu-gdpr-switch input:checked + i { background: var(--mu-gdpr-color); }
.mu-gdpr-switch input:checked + i:after { transform: translateX(16px); }
.mu-gdpr-switch input:focus-visible + i { outline: 2px solid var(--mu-gdpr-color); outline-offset: 2px; }

/* floating "cookie settings" button */
.mu-gdpr-float { position: fixed; z-index: 2147482999; bottom: 14px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--mu-gdpr-border); background: #fff; color: var(--mu-gdpr-color); display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; opacity: .85; }
.mu-gdpr-float:hover { opacity: 1; }
.mu-gdpr-float.mu-gdpr-p-left { left: 14px; }
.mu-gdpr-float.mu-gdpr-p-right { right: 14px; }

html.mu-gdpr-lock, html.mu-gdpr-lock body { overflow: hidden; }

/* form consent checkbox */
.mu-gdpr-check { margin: 10px 0; font-size: 13px; line-height: 1.45; text-align: left; }
.mu-gdpr-check label { display: flex; gap: 8px; align-items: flex-start; font-weight: normal; margin: 0; cursor: pointer; }
.mu-gdpr-check input { margin: 3px 0 0; flex: 0 0 auto; }
.mu-gdpr-check a { text-decoration: underline; }
.mu-gdpr-err { color: #c62828; font-size: 12px; margin: 4px 0 0 22px; }
.mu-gdpr-check-error label { color: #c62828; }

/* my data page */
.mu-gdpr-page .mu-gdpr-section { border: 1px solid #ececec; border-radius: 8px; padding: 16px 18px; margin-bottom: 16px; }
.mu-gdpr-page .mu-gdpr-section h3 { font-size: 16px; margin: 0 0 8px; }
.mu-gdpr-page .mu-gdpr-states { list-style: none; padding: 0; margin: 8px 0 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.mu-gdpr-page .mu-gdpr-states li { border: 1px solid #ececec; border-radius: 20px; padding: 3px 10px; font-size: 12px; }
.mu-gdpr-page .mu-gdpr-states .on { border-color: #b7dfb9; background: #f1f9f1; }
.mu-gdpr-page .mu-gdpr-muted { color: #777; font-size: 13px; }

@media (max-width: 600px) {
  .mu-gdpr-l-box { left: 8px !important; right: 8px !important; bottom: 8px; width: auto; }
  .mu-gdpr-l-bar .mu-gdpr-banner { flex-direction: column; align-items: stretch; gap: 10px; padding: 12px 14px; }
  .mu-gdpr-l-bar .mu-gdpr-actions { flex-wrap: wrap; }
  .mu-gdpr-l-bar .mu-gdpr-accept, .mu-gdpr-l-bar .mu-gdpr-reject { flex: 1 1 0; }
  .mu-gdpr-modal { align-items: flex-end; padding: 0; }
  .mu-gdpr-dialog { border-radius: 12px 12px 0 0; max-height: 92vh; }
  .mu-gdpr-dialog-foot .mu-gdpr-btn { flex: 1 1 0; }
}
