/*--------------------------------------------------------------
# RGPD modal (app/modals/modalRgpd.php)
#
# Loaded by the connected pages (app shell, assets/css/app.css tokens,
# light / dark) and by the public site (frontapp style.css tokens):
# every colour falls back from the --app-* token to the --fa-* one.
--------------------------------------------------------------*/
#rgpd-modal {
  --rg-surface: var(--app-surface, var(--fa-surface, #ffffff));
  --rg-surface-2: var(--app-surface-2, var(--fa-bg-soft, #f6f8fb));
  --rg-line: var(--app-line, var(--fa-line, #e1e6ee));
  --rg-line-strong: var(--app-line-strong, var(--fa-line-strong, #cdd5e1));
  --rg-fg: var(--app-fg, var(--fa-fg, #14203a));
  --rg-muted: var(--app-muted, var(--fa-muted, #56647a));
  --rg-faint: var(--app-faint, var(--fa-faint, #8b97a9));
  --rg-accent: var(--app-accent, var(--fa-accent, #0b63c4));
  --rg-accent-hover: var(--app-accent-hover, var(--fa-accent-hover, #0954a8));
  --rg-accent-soft: var(--app-accent-soft, var(--fa-accent-soft, #e6effa));
  --rg-accent-fg: var(--app-accent-fg, #ffffff);
  --rg-ok: var(--app-ok, var(--fa-ok, #0f7a55));
  --rg-ok-soft: var(--app-ok-soft, #e1f4ea);
  --rg-warn: var(--app-warn, #9a6200);
  --rg-warn-soft: var(--app-warn-soft, #fcf1d8);
  --rg-ring: var(--app-ring, var(--fa-ring, rgba(11, 99, 196, 0.22)));
  --rg-shadow-lg: var(--app-shadow-lg, var(--fa-shadow-lg, 0 16px 48px rgba(14, 33, 64, 0.22)));
  --rg-font: var(--app-font, var(--fa-font, 'Figtree', system-ui, sans-serif));
}

#rgpd-modal .rgpd-ms {
  font-family: 'Material Symbols Rounded';
  font-weight: normal;
  font-style: normal;
  font-size: 20px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  direction: ltr;
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
  flex: none;
}

/* Dialog */
#rgpd-modal .modal-dialog {
  max-width: 760px;
}

#rgpd-modal .modal-content {
  border: 0;
  border-radius: 16px;
  background: var(--rg-surface);
  color: var(--rg-fg);
  font-family: var(--rg-font);
  font-size: 14px;
  box-shadow: var(--rg-shadow-lg);
  overflow: hidden;
}

#rgpd-modal .modal-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px 24px 16px;
  border-bottom: 1px solid var(--rg-line);
}

#rgpd-modal .rgpd-head-ico {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: var(--rg-accent-soft);
  color: var(--rg-accent);
  font-size: 23px;
}

#rgpd-modal .rgpd-head-text {
  min-width: 0;
}

#rgpd-modal .modal-header .modal-title {
  margin: 0;
  font-family: var(--rg-font);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--rg-fg);
  white-space: normal;
}

#rgpd-modal .rgpd-head-sub {
  margin: 2px 0 0;
  font-size: 13px;
  color: var(--rg-muted);
}

#rgpd-modal .modal-body {
  padding: 18px 24px 20px;
  background: var(--rg-surface);
}

#rgpd-modal .modal-body a {
  font-size: inherit;
  color: var(--rg-accent);
  font-weight: 600;
  text-decoration: none;
}

#rgpd-modal .modal-body a:hover {
  text-decoration: underline;
}

#rgpd-modal .modal-body p {
  margin: 0 0 12px;
  line-height: 1.6;
}

#rgpd-modal .rgpd-intro {
  color: var(--rg-muted);
}

/* Highlights: short key facts above the sections */
#rgpd-modal .rgpd-highlights {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
}

#rgpd-modal .rgpd-highlights li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
  padding: 0 12px 0 9px;
  border-radius: 999px;
  background: var(--rg-surface-2);
  border: 1px solid var(--rg-line);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--rg-fg);
}

#rgpd-modal .rgpd-highlights .rgpd-ms {
  font-size: 17px;
  color: var(--rg-ok);
}

/* Sections: accordion rendered as a list of cards */
#rgpd-modal .rgpd-accordion {
  --bs-accordion-bg: var(--rg-surface);
  --bs-accordion-color: var(--rg-fg);
  --bs-accordion-border-color: var(--rg-line);
  --bs-accordion-border-radius: 12px;
  --bs-accordion-inner-border-radius: 11px;
  --bs-accordion-btn-focus-box-shadow: 0 0 0 3px var(--rg-ring);
  --bs-accordion-active-bg: var(--rg-surface);
  --bs-accordion-active-color: var(--rg-fg);
  display: flex;
  flex-direction: column;
  gap: 8px;
  text-align: left;
}

#rgpd-modal .rgpd-accordion .accordion-item {
  border: 1px solid var(--rg-line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--rg-surface);
  transition: border-color 0.15s, box-shadow 0.15s;
}

#rgpd-modal .rgpd-accordion .accordion-item:has(.accordion-button:not(.collapsed)) {
  border-color: color-mix(in srgb, var(--rg-accent) 35%, var(--rg-line));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--rg-accent) 8%, transparent);
}

#rgpd-modal .rgpd-accordion .accordion-header {
  margin: 0;
}

#rgpd-modal .rgpd-accordion .accordion-button {
  gap: 12px;
  padding: 10px 14px;
  border-radius: 0;
  background: var(--rg-surface);
  color: var(--rg-fg);
  font-family: var(--rg-font);
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
  box-shadow: none;
}

#rgpd-modal .rgpd-accordion .accordion-button:hover {
  background: var(--rg-surface-2);
}

#rgpd-modal .rgpd-accordion .accordion-button:focus-visible {
  box-shadow: inset 0 0 0 2px var(--rg-ring);
}

#rgpd-modal .rgpd-accordion .accordion-button:not(.collapsed) {
  background: var(--rg-surface-2);
  border-bottom: 1px solid var(--rg-line);
}

/* Chevron: Material Symbol, rotated when the section is open. */
#rgpd-modal .rgpd-accordion .accordion-button::after {
  content: "expand_more";
  width: auto;
  height: auto;
  margin-left: auto;
  background: none;
  font-family: 'Material Symbols Rounded';
  font-size: 22px;
  font-weight: normal;
  line-height: 1;
  color: var(--rg-faint);
  font-feature-settings: 'liga';
  transition: transform 0.2s ease;
}

#rgpd-modal .rgpd-accordion .accordion-button:not(.collapsed)::after {
  transform: rotate(180deg);
  color: var(--rg-accent);
}

#rgpd-modal .rgpd-item-ico {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: var(--rg-accent-soft);
  color: var(--rg-accent);
  font-size: 19px;
  transition: background 0.15s, color 0.15s;
}

#rgpd-modal .accordion-button:not(.collapsed) .rgpd-item-ico {
  background: var(--rg-accent);
  color: var(--rg-accent-fg);
}

#rgpd-modal .rgpd-item-title {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
  line-height: 1.35;
}

#rgpd-modal .rgpd-item-title small {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--rg-faint);
  font-variant-numeric: tabular-nums;
}

#rgpd-modal .rgpd-accordion .accordion-body {
  padding: 16px 18px 18px;
  line-height: 1.6;
  color: var(--rg-fg);
}

#rgpd-modal .rgpd-accordion .accordion-body > :last-child {
  margin-bottom: 0;
}

#rgpd-modal .rgpd-h {
  margin: 18px 0 8px;
  font-family: var(--rg-font);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rg-muted);
}

#rgpd-modal .accordion-body > .rgpd-h:first-child {
  margin-top: 0;
}

/* Label / value rows */
#rgpd-modal .rgpd-kv {
  display: grid;
  grid-template-columns: minmax(150px, 34%) 1fr;
  margin: 0 0 12px;
  border: 1px solid var(--rg-line);
  border-radius: 10px;
  overflow: hidden;
}

#rgpd-modal .rgpd-kv dt,
#rgpd-modal .rgpd-kv dd {
  margin: 0;
  padding: 7px 12px;
  border-top: 1px solid var(--rg-line);
  font-size: 13.5px;
  line-height: 1.45;
}

#rgpd-modal .rgpd-kv dt:first-of-type,
#rgpd-modal .rgpd-kv dt:first-of-type + dd {
  border-top: 0;
}

#rgpd-modal .rgpd-kv dt {
  background: var(--rg-surface-2);
  font-weight: 600;
  color: var(--rg-fg);
}

#rgpd-modal .rgpd-kv dd {
  color: var(--rg-muted);
}

/* Notes */
#rgpd-modal .rgpd-note {
  margin: 12px 0 0;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid transparent;
  font-size: 13px;
  line-height: 1.5;
  color: var(--rg-fg);
}

#rgpd-modal .rgpd-note.alert-info {
  background: var(--rg-accent-soft);
  border-color: color-mix(in srgb, var(--rg-accent) 25%, transparent);
}

#rgpd-modal .rgpd-note.alert-warning {
  background: var(--rg-warn-soft);
  border-color: color-mix(in srgb, var(--rg-warn) 25%, transparent);
}

#rgpd-modal .rgpd-note b {
  color: inherit;
}

/* Legal bases table */
#rgpd-modal .rgpd-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--rg-line);
  border-radius: 10px;
}

#rgpd-modal .rgpd-table {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
  font-size: 13px;
  line-height: 1.45;
}

#rgpd-modal .rgpd-table th {
  padding: 8px 12px;
  background: var(--rg-surface-2);
  border-bottom: 1px solid var(--rg-line);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--rg-muted);
  text-align: left;
  white-space: nowrap;
}

#rgpd-modal .rgpd-table td {
  padding: 8px 12px;
  border-top: 1px solid var(--rg-line);
  color: var(--rg-muted);
  vertical-align: top;
}

#rgpd-modal .rgpd-table tbody tr:first-child td {
  border-top: 0;
}

#rgpd-modal .rgpd-table td:first-child {
  font-weight: 600;
  color: var(--rg-fg);
}

/* Access cards */
#rgpd-modal .rgpd-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
}

#rgpd-modal .rgpd-card {
  padding: 12px 14px;
  border: 1px solid var(--rg-line);
  border-radius: 10px;
  background: var(--rg-surface-2);
}

#rgpd-modal .rgpd-card h5 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  font-family: var(--rg-font);
  font-size: 13.5px;
  font-weight: 700;
  color: var(--rg-fg);
}

#rgpd-modal .rgpd-card h5 .rgpd-ms {
  font-size: 18px;
  color: var(--rg-accent);
}

#rgpd-modal .rgpd-card ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

#rgpd-modal .rgpd-card li {
  padding: 4px 0;
  font-size: 13px;
  line-height: 1.45;
  color: var(--rg-muted);
}

#rgpd-modal .rgpd-card li + li {
  border-top: 1px dashed var(--rg-line);
}

#rgpd-modal .rgpd-card li b {
  display: block;
  font-weight: 600;
  color: var(--rg-fg);
}

/* Rights */
#rgpd-modal .rgpd-rights {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#rgpd-modal .rgpd-rights li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--rg-line);
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--rg-muted);
}

#rgpd-modal .rgpd-rights .rgpd-ms {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: var(--rg-accent-soft);
  color: var(--rg-accent);
  font-size: 17px;
}

#rgpd-modal .rgpd-rights b {
  display: block;
  margin-bottom: 1px;
  font-weight: 600;
  color: var(--rg-fg);
}

/* Retention durations */
#rgpd-modal .rgpd-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
}

#rgpd-modal .rgpd-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 14px;
  border: 1px solid var(--rg-line);
  border-radius: 10px;
  background: var(--rg-surface-2);
}

#rgpd-modal .rgpd-stat-value {
  font-size: 20px;
  font-weight: 700;
  color: var(--rg-fg);
  font-variant-numeric: tabular-nums;
}

#rgpd-modal .rgpd-stat-label {
  font-size: 12.5px;
  color: var(--rg-muted);
}

/* Security checklist */
#rgpd-modal .rgpd-checks {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 6px 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#rgpd-modal .rgpd-checks li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13.5px;
  line-height: 1.45;
}

#rgpd-modal .rgpd-checks .rgpd-ms {
  font-size: 18px;
  color: var(--rg-ok);
  font-variation-settings: 'FILL' 1;
}

/* DPO contact */
#rgpd-modal .rgpd-contact {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 16px;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--rg-accent-soft);
  border: 1px solid color-mix(in srgb, var(--rg-accent) 25%, transparent);
}

#rgpd-modal .rgpd-contact .rgpd-ms {
  color: var(--rg-accent);
  margin-top: 1px;
}

#rgpd-modal .rgpd-contact p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--rg-fg);
}

/* Footer */
#rgpd-modal .modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 24px;
  border-top: 1px solid var(--rg-line);
  background: var(--rg-surface);
}

#rgpd-modal .modal-footer > * {
  margin: 0;
}

#rgpd-modal .modal-footer .btn {
  height: 38px;
  padding: 0 18px;
  border-radius: 8px;
  font-family: var(--rg-font);
  font-size: 13.5px;
  font-weight: 600;
}

#rgpd-modal .modal-footer .btn-secondary {
  background: var(--rg-surface);
  border: 1px solid var(--rg-line-strong);
  color: var(--rg-fg);
}

#rgpd-modal .modal-footer .btn-secondary:hover {
  background: var(--rg-surface-2);
}

#rgpd-modal .modal-footer .btn-primary {
  background: var(--rg-accent);
  border-color: var(--rg-accent);
  color: var(--rg-accent-fg);
}

#rgpd-modal .modal-footer .btn-primary:hover {
  background: var(--rg-accent-hover);
  border-color: var(--rg-accent-hover);
}

@media (max-width: 575px) {
  #rgpd-modal .modal-header,
  #rgpd-modal .modal-body,
  #rgpd-modal .modal-footer {
    padding-left: 16px;
    padding-right: 16px;
  }

  #rgpd-modal .rgpd-kv {
    grid-template-columns: 1fr;
  }

  #rgpd-modal .rgpd-kv dd {
    padding-top: 0;
    border-top: 0;
  }

  #rgpd-modal .rgpd-kv dt {
    background: none;
    padding-bottom: 2px;
  }

  #rgpd-modal .rgpd-kv dt:first-of-type + dd {
    border-top: 0;
  }

  #rgpd-modal .rgpd-item-title small {
    display: none;
  }
}
