/* ═══════════════════════════════════════════════════
   Accessibility Suite — Frontend Widget & Modules CSS
   ═══════════════════════════════════════════════════ */

:root {
  --accsuite-accent:            #00abd1;
  --accsuite-saturation:        100%;
  /* Overridable from Settings → "Aspect Widget (fără cod)" — see
     class-accessibility-suite.php::enqueue_public() for the inline overrides. */
  --accsuite-panel-header-bg:   var(--accsuite-accent);
  --accsuite-panel-header-text: #fff;
  --accsuite-panel-bg:          #fff;
  --accsuite-radius:            12px;
}
/* Font Size, Line Height, Letter Spacing are applied as inline styles on <html>
   so they override theme CSS without needing !important.
   See: MODULES['font-size'].apply(), ['line-height'].apply(), ['letter-spacing'].apply() */

/* ── Device visibility ──────────────────────────── */
@media (min-width: 1025px)                         { .accsuite-hide-desktop { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px)  { .accsuite-hide-tablet  { display: none !important; } }
@media (max-width: 767px)                          { .accsuite-hide-mobile  { display: none !important; } }

/* ── Saturation ─────────────────────────────────── */
/* NOTE: filter is NOT applied to body/html by default.
   Applying filter to body breaks position:fixed children (WhatsApp, chat widgets, etc.).
   Instead, saturation is applied as inline style on <html> only when pct ≠ 0 (see accessibility.js).
   Contrast modules apply their own filter (which includes saturation) on html via class. */

/* ── Readable Font ──────────────────────────────── */
.accsuite-readable-font,
.accsuite-readable-font * { font-family: Arial, Helvetica, sans-serif !important; }

/* ── Dyslexic Font ──────────────────────────────── */
@font-face {
  font-family: 'OpenDyslexic';
  src: url('https://cdn.jsdelivr.net/npm/open-dyslexic@1.0.3/open-dyslexic-regular.otf') format('opentype');
  font-display: swap;
}
.accsuite-dyslexic-font,
.accsuite-dyslexic-font * { font-family: 'OpenDyslexic', sans-serif !important; }

/* ── Big Cursor ─────────────────────────────────── */
.accsuite-big-cursor,
.accsuite-big-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' stroke='%23fff' stroke-width='1.5' d='M4 3l16 9-7 2-4 7z'/%3E%3C/svg%3E") 4 4, auto !important; }

/* ── Font Bold ──────────────────────────────────── */
.accsuite-font-bold,
.accsuite-font-bold * { font-weight: 700 !important; }

/* ── Align Text ─────────────────────────────────── */
[data-accsuite-align="left"]    * { text-align: left    !important; }
[data-accsuite-align="center"]  * { text-align: center  !important; }
[data-accsuite-align="right"]   * { text-align: right   !important; }
[data-accsuite-align="justify"] * { text-align: justify !important; }

/* ── Highlight Links ────────────────────────────── */
.accsuite-highlight-links a,
.accsuite-highlight-links a:visited,
.accsuite-highlight-links a:hover {
  text-decoration: underline !important;
  text-decoration-color: var(--accsuite-accent) !important;
  text-underline-offset: 3px !important;
  text-decoration-thickness: 2px !important;
}

/* ── Highlight Titles ───────────────────────────── */
.accsuite-highlight-titles h1,
.accsuite-highlight-titles h2,
.accsuite-highlight-titles h3,
.accsuite-highlight-titles h4,
.accsuite-highlight-titles h5,
.accsuite-highlight-titles h6 {
  background: rgba(0,171,209,.1) !important;
  border-left: 4px solid var(--accsuite-accent) !important;
  padding-left: 10px !important;
}

/* ── Highlight Hover (content) ──────────────────── */
.accsuite-highlight-hover *:hover {
  outline: 2px solid var(--accsuite-accent) !important;
  outline-offset: 2px !important;
}

/* ── Keyboard Navigation ────────────────────────── */
.accsuite-keyboard-nav *:focus {
  outline: 3px solid var(--accsuite-accent) !important;
  outline-offset: 3px !important;
  border-radius: 2px !important;
  box-shadow: 0 0 0 6px rgba(0,171,209,.2) !important;
}

/* ── Hide Images ────────────────────────────────── */
.accsuite-hide-images img,
.accsuite-hide-images picture,
.accsuite-hide-images figure:not(:has(figcaption)),
.accsuite-hide-images [style*="background-image"],
.accsuite-hide-images [style*="background:"][style*="url("],
.accsuite-hide-images [style*="background "][style*="url("] {
  visibility: hidden !important;
}
.accsuite-hide-images svg:not(.accsuite-icon):not(#accsuite-widget svg) { visibility: hidden !important; }

/* Elemente cu background-image setat prin CSS (clase, ID-uri, etc.) — detectate de JS */
.accsuite-bg-hidden {
  background-image: none !important;
}

/* ── Dark Contrast ──────────────────────────────── */
.accsuite-dark-contrast { filter: saturate(var(--accsuite-saturation)) contrast(130%) brightness(75%) !important; }

/* ── Light Contrast ─────────────────────────────── */
.accsuite-light-contrast { filter: saturate(var(--accsuite-saturation)) contrast(120%) brightness(130%) !important; }

/* ── High Contrast ──────────────────────────────── */
.accsuite-high-contrast { filter: saturate(var(--accsuite-saturation)) contrast(200%) !important; }

/* ── Monochrome ─────────────────────────────────── */
.accsuite-monochrome { filter: saturate(var(--accsuite-saturation)) grayscale(100%) !important; }

/* ── Stop Animations ────────────────────────────── */
.accsuite-stop-animations *,
.accsuite-stop-animations *::before,
.accsuite-stop-animations *::after {
  animation-duration:       0.001ms !important;
  animation-iteration-count:1       !important;
  transition-duration:      0.001ms !important;
  scroll-behavior:          auto    !important;
}

/* ── Reading Line ───────────────────────────────── */
#accsuite-reading-line {
  position: fixed;
  left: 0; right: 0;
  height: 3px;
  background: rgba(0,171,209,.7);
  pointer-events: none;
  z-index: 999998;
  display: none;
}
html.accsuite-reading-line-active #accsuite-reading-line { display: block; }

/* ── Reading Mask ───────────────────────────────── */
#accsuite-reading-mask {
  position: fixed;
  left: 0; right: 0; top: 0; bottom: 0;
  pointer-events: none;
  z-index: 999997;
  display: none;
}
html.accsuite-reading-mask-active #accsuite-reading-mask { display: block; }
#accsuite-reading-mask-window {
  position: fixed;
  left: 0; right: 0;
  height: 120px;
  background: transparent;
  box-shadow: 0 0 0 9999px rgba(0,0,0,.7);
  pointer-events: none;
  z-index: 999998;
  display: none;
}
html.accsuite-reading-mask-active #accsuite-reading-mask-window { display: block; }

/* ── Text Magnifier tooltip ─────────────────────── */
#accsuite-magnifier {
  position: fixed;
  background: #fff;
  border: 2px solid var(--accsuite-accent);
  border-radius: 8px;
  padding: 8px 14px;
  font-size: 200%;
  line-height: 1.3;
  max-width: 320px;
  pointer-events: none;
  z-index: 999999;
  display: none;
  box-shadow: 0 4px 20px rgba(0,0,0,.2);
  color: #111;
  word-break: break-word;
}
body.accsuite-text-magnifier-active #accsuite-magnifier { display: block; }

/* ── Widget style isolation ──────────────────────────
   Themes cascade inherited properties (font, color, line-height,
   text-align, list-style, letter-spacing, text-transform…) into any
   element regardless of CSS specificity. font-family/box-sizing are
   forced via !important on every descendant (no component ever needs
   to vary them). The rest (color, line-height, text-align, etc.) is
   reset via :where() ONLY on the widget's root containers — never on
   `* ` descendants — so the reset blocks the theme's inherited value
   at the boundary, then flows down normally through the widget's own
   internal cascade (e.g. .accsuite-mod-btn{text-align:center} still
   reaches its child label/icon spans, since nothing re-sets it on
   every element downstream anymore). */
#accsuite-fab,
#accsuite-fab *,
#accsuite-panel,
#accsuite-panel *,
#accsuite-backdrop,
#accsuite-statement-modal,
#accsuite-statement-modal *,
#accsuite-reading-line,
#accsuite-reading-mask,
#accsuite-reading-mask-window,
#accsuite-magnifier {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
               Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
  box-sizing: border-box !important;
  /* Themes commonly reset these two DIRECTLY on <button>/<a> (not just via
     inheritance) — e.g. a global "button{text-transform:uppercase}" style.
     Forcing them here on every descendant is safe: the widget never
     intentionally varies them except .accsuite-panel-title and
     #accsuite-reset-btn, which re-declare their own letter-spacing
     with !important below to still win. */
  text-transform: none !important;
  letter-spacing: normal !important;
}
:where(
  #accsuite-fab,
  #accsuite-panel,
  #accsuite-backdrop,
  #accsuite-statement-modal,
  #accsuite-reading-line,
  #accsuite-reading-mask,
  #accsuite-reading-mask-window,
  #accsuite-magnifier
) {
  color: #1a1a2e;
  line-height: 1.4;
  text-align: left;
  text-decoration: none;
  list-style: none;
  direction: ltr;
  text-shadow: none;
  white-space: normal;
  cursor: default;
}
:where(#accsuite-panel a, #accsuite-fab a) {
  cursor: pointer;
}
:where(.accsuite-mod-btn, .accsuite-fab, #accsuite-fab, .accsuite-lang-btn, .accsuite-step-btn,
       .accsuite-align-btn, #accsuite-panel-close, #accsuite-reset-btn,
       #accsuite-statement-modal-close, .accsuite-lang-option) {
  cursor: pointer;
}

/* ════════════════════════════════════════════════════
   WIDGET — FAB button
   ════════════════════════════════════════════════════ */

#accsuite-fab {
  position: fixed;
  z-index: 999990;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  border-radius: 50%;
  padding: 0;
  box-shadow: 0 4px 14px rgba(0,0,0,.25);
  transition: transform .2s, box-shadow .2s;
  background: var(--accsuite-accent);
  outline: none;
}
#accsuite-fab:hover { transform: scale(1.08); box-shadow: 0 6px 20px rgba(0,0,0,.3); }
#accsuite-fab:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
#accsuite-fab svg { pointer-events: none; }

/* Sizes */
#accsuite-fab.accsuite-fab-small  { width: 40px; height: 40px; }
#accsuite-fab.accsuite-fab-medium { width: 50px; height: 50px; }
#accsuite-fab.accsuite-fab-large  { width: 60px; height: 60px; }

#accsuite-fab.accsuite-fab-small  svg { width: 20px; height: 20px; }
#accsuite-fab.accsuite-fab-medium svg { width: 26px; height: 26px; }
#accsuite-fab.accsuite-fab-large  svg { width: 32px; height: 32px; }

/* No border — explicit reset so no ring leaks through */
#accsuite-fab:not(.accsuite-fab-border) {
  box-shadow: 0 4px 14px rgba(0,0,0,.25) !important;
  outline: none !important;
}

/* Border option — double ring: white inner + accent outer (matches admin preview) */
#accsuite-fab.accsuite-fab-border {
  box-shadow: 0 0 0 3px #fff, 0 0 0 6px var(--accsuite-accent), 0 4px 14px rgba(0,0,0,.25) !important;
}
#accsuite-fab.accsuite-fab-border:hover {
  transform: scale(1.08);
  box-shadow: 0 0 0 3px #fff, 0 0 0 6px var(--accsuite-accent), 0 6px 20px rgba(0,0,0,.3) !important;
}

/* ════════════════════════════════════════════════════
   WIDGET — Panel
   ════════════════════════════════════════════════════ */

#accsuite-panel {
  position: fixed;
  top: 0;
  bottom: 0;
  width: 340px;
  max-width: 95vw;
  background: var(--accsuite-panel-bg);
  z-index: 999991;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  box-shadow: none;
  overflow: hidden;
  /* Hidden until JS finishes positioning — prevents flash on load. */
  visibility: hidden;
  /* !important overrides any theme/plugin "transition: all" that would
     otherwise animate the panel during initial page render. */
  transition: none !important;
}
#accsuite-panel.accsuite-panel-ready {
  visibility: visible;
  transition: transform .3s cubic-bezier(.4,0,.2,1), box-shadow .3s !important;
}
#accsuite-panel.accsuite-panel-left {
  left: 0;
  right: auto;
  transform: translateX(-100%);
}
#accsuite-panel.accsuite-panel-right {
  right: 0;
  left: auto;
}
#accsuite-panel.accsuite-panel-open {
  transform: translateX(0);
  box-shadow: -4px 0 30px rgba(0,0,0,.15);
}
#accsuite-panel.accsuite-panel-left.accsuite-panel-open {
  box-shadow: 4px 0 30px rgba(0,0,0,.15);
}

/* ── Panel Header ── */
#accsuite-panel-header {
  background: var(--accsuite-panel-header-bg);
  background: linear-gradient(135deg, var(--accsuite-panel-header-bg) 0%, color-mix(in srgb, var(--accsuite-panel-header-bg) 80%, #003d50) 100%);
  color: var(--accsuite-panel-header-text);
  padding: 16px 16px 24px;
  flex-shrink: 0;
  position: relative;
}
.accsuite-panel-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
/* ── Language dropdown ── */
.accsuite-lang-dropdown {
  position: relative;
}
.accsuite-lang-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 20px;
  padding: 5px 10px 5px 5px;
  font-size: 13px;
  font-weight: 500;
  color: var(--accsuite-panel-header-text);
  cursor: pointer;
  transition: background .15s;
  white-space: nowrap;
}
.accsuite-lang-btn:hover { background: rgba(255,255,255,.28); }
.accsuite-lang-flag {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  display: block;
}
.accsuite-lang-chevron {
  flex-shrink: 0;
  transition: transform .2s;
  opacity: .9;
}
.accsuite-lang-btn[aria-expanded="true"] .accsuite-lang-chevron {
  transform: rotate(180deg);
}
.accsuite-lang-list {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 170px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 8px 28px rgba(0,0,0,.18);
  padding: 5px 0;
  list-style: none;
  margin: 0;
  z-index: 2147483640;
  overflow: hidden;
}
.accsuite-lang-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 16px;
  cursor: pointer;
  font-size: 14px;
  color: #1a1a1a;
  transition: background .1s;
}
.accsuite-lang-option:hover { background: #f0f9fc; }
#accsuite-panel-close {
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 50%;
  width: 30px; height: 30px;
  color: var(--accsuite-panel-header-text);
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  transition: background .15s;
}
#accsuite-panel-close:hover { background: rgba(255,255,255,.25); }
.accsuite-panel-brand {
  text-align: center;
}
.accsuite-panel-brand-icon {
  width: 52px; height: 52px;
  background: rgba(255,255,255,.2);
  border: 2px solid rgba(255,255,255,.5);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 10px;
}
.accsuite-panel-brand-icon svg { width: 28px; height: 28px; }
.accsuite-panel-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--accsuite-panel-header-text);
  margin: 0 0 6px;
  letter-spacing: -.01em !important;
}
.accsuite-panel-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-size: 13px;
}
.accsuite-panel-links a {
  color: color-mix(in srgb, var(--accsuite-panel-header-text) 85%, transparent);
  text-decoration: none;
  transition: color .15s;
}
.accsuite-panel-links a:hover { color: var(--accsuite-panel-header-text); text-decoration: underline; }
.accsuite-panel-links-sep { color: color-mix(in srgb, var(--accsuite-panel-header-text) 40%, transparent); }

/* ── Panel Body ── */
#accsuite-panel-body {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0 0 20px;
  -webkit-overflow-scrolling: touch;
}
#accsuite-panel-body::-webkit-scrollbar { width: 4px; }
#accsuite-panel-body::-webkit-scrollbar-track { background: transparent; }
#accsuite-panel-body::-webkit-scrollbar-thumb { background: #ddd; border-radius: 4px; }

/* ── Panel Sections ── */
.accsuite-widget-section {
  margin: 16px 14px 0;
}
.accsuite-widget-section-title {
  font-size: 14px;
  font-weight: 700;
  color: #1a1a2e;
  margin: 0 0 10px 2px;
  text-align: center !important;
}

/* ── Section Card ── */
.accsuite-widget-card {
  background: #f8f9fa;
  border-radius: var(--accsuite-radius);
  padding: 12px;
}

/* ── Module Grid ── */
.accsuite-module-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.accsuite-module-grid-2col {
  grid-template-columns: repeat(2, 1fr);
}

/* ── Module Button (simple toggle) ── */
.accsuite-mod-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 12px 8px;
  background: var(--accsuite-panel-bg);
  border: 1.5px solid #e4e7ec;       /* subtle gray — always visible */
  border-radius: var(--accsuite-radius);
  cursor: pointer;
  font-size: 11px;
  font-weight: 500;
  color: #444;
  text-align: center;
  line-height: 1.3;
  transition: border-color .15s, background .15s, color .15s, box-shadow .15s;
  min-height: 70px;
  min-width: 0;          /* grid items default to min-width:auto — content-based sizing
                            forces the column wider than its 1fr track, pushing later
                            columns out of the grid. min-width:0 lets it shrink to fit. */
  overflow-wrap: break-word;
  box-shadow: none;
}
/* hover & press — border colorat, rest neschimbat */
html #accsuite-panel .accsuite-mod-btn:hover,
html #accsuite-panel .accsuite-mod-btn:active {
  border-color: var(--accsuite-accent) !important;
  background: rgba(0,171,209,.04) !important;
  outline: none !important;
  box-shadow: none !important;
}
/* focus-visible — border subțire colorat, doar la navigare cu tastatura (Tab).
   Pe click de mouse nu se aplică — altfel se suprapune vizual cu starea .active
   de mai jos (2px + fundal + cerc plin) și dă impresia că selecția "dispare". */
html #accsuite-panel .accsuite-mod-btn:focus-visible {
  border: 1px solid var(--accsuite-accent) !important;
  outline: none !important;
}

/* selected — border + fundal + cerc plin pe iconița */
html #accsuite-panel .accsuite-mod-btn.active,
html #accsuite-panel .accsuite-mod-btn[aria-pressed="true"] {
  border-color: var(--accsuite-accent) !important;
  border-width: 2px !important;
  background: rgba(0,171,209,.07) !important;
  color: #333 !important;
  box-shadow: none !important;
  outline: none !important;
}
html #accsuite-panel .accsuite-mod-btn.active .accsuite-mod-icon,
html #accsuite-panel .accsuite-mod-btn[aria-pressed="true"] .accsuite-mod-icon {
  background: var(--accsuite-accent) !important;
  border-radius: 50% !important;
  width: 42px !important;
  height: 42px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
html #accsuite-panel .accsuite-mod-btn.active .accsuite-mod-icon svg,
html #accsuite-panel .accsuite-mod-btn[aria-pressed="true"] .accsuite-mod-icon svg {
  color: #fff !important;
  fill: #fff !important;
  stroke: #fff !important;
}

/* SVG default */
.accsuite-mod-btn svg {
  width: 24px; height: 24px;
  color: #666;
  flex-shrink: 0;
}

/* ── Stepper Module ── */
.accsuite-mod-stepper {
  background: var(--accsuite-panel-bg);
  border-radius: var(--accsuite-radius);
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* label pinned top, controls pinned bottom when the
                                      paired stepper in the row is taller (e.g. Dimensiunea
                                      fontului wraps to 2 lines next to Înălțimea liniei) */
  gap: 8px;
  border: 1.5px solid #e4e7ec;
  transition: border-color .15s, box-shadow .15s;
  min-width: 0;   /* prevents this grid item forcing shared column tracks wider (see .accsuite-mod-btn) */
  box-shadow: none;
}
/* Saturație sits in the 3-col "Module de culori" grid alongside 4 toggle
   buttons (5 items → row 2 has 2 free columns after Monocrom) — span both
   so it reaches the module's right edge instead of sitting 1-col wide.
   Scoped to this exact module only, via its data-module attribute, so the
   font-size/line-height/letter-spacing steppers elsewhere are unaffected. */
.accsuite-mod-stepper[data-module="saturation"] {
  grid-column: span 2;
}
#accsuite-panel .accsuite-mod-stepper.active {
  border: 2px solid var(--accsuite-accent) !important;
  box-shadow: 0 0 0 3px rgba(0,171,209,.18) !important;
}
.accsuite-mod-stepper-label {
  font-size: 14px;
  font-weight: 600;
  color: #444;
  text-align: center;
}
#accsuite-panel .accsuite-mod-stepper.active .accsuite-mod-stepper-label { color: var(--accsuite-accent) !important; }
.accsuite-stepper-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}
.accsuite-step-btn {
  /* !important throughout: theme button resets commonly force
     background/border/border-radius/color/padding directly on <button>
     with !important, which otherwise defeats this circular accent button. */
  width: 26px !important; height: 26px !important;
  min-width: 26px !important; min-height: 26px !important;
  max-width: 26px !important; max-height: 26px !important;
  background: var(--accsuite-accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 50% !important;
  padding: 0 !important;
  box-shadow: 0 2px 6px rgba(0,0,0,.18) !important;
  font-size: 18px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  transition: background .15s, transform .1s;
  flex: 0 0 26px !important;
}
.accsuite-step-btn:hover { background: color-mix(in srgb, var(--accsuite-accent) 85%, #000) !important; transform: scale(1.08); }
.accsuite-step-btn:disabled { background: #ddd !important; cursor: default; transform: none; }
.accsuite-step-value {
  font-size: 11px;
  font-weight: 600;
  color: #555;
  text-align: center;
  flex: 1;
}

/* ── Align Text Module ── */
.accsuite-mod-align {
  background: var(--accsuite-panel-bg);
  border-radius: var(--accsuite-radius);
  padding: 10px 12px;
  min-width: 0;
  border: 1.5px solid #e4e7ec;
  transition: border-color .15s, box-shadow .15s;
  box-shadow: none;
}
#accsuite-panel .accsuite-mod-align.active {
  border: 2px solid var(--accsuite-accent) !important;
  box-shadow: 0 0 0 3px rgba(0,171,209,.18) !important;
}
.accsuite-mod-align-label {
  font-size: 14px;
  font-weight: 600;
  color: #444;
  margin-bottom: 8px;
  text-align: center;
}
.accsuite-align-options {
  display: flex;
  gap: 4px;
  justify-content: center;
}
.accsuite-align-btn {
  flex: 1;
  background: #f0f2f5;
  border: 1.5px solid transparent;
  border-radius: 6px;
  padding: 8px 6px;
  cursor: pointer;
  font-size: 20px;
  font-weight: 600;
  color: #555;
  text-align: center;
  transition: all .15s;
}
.accsuite-align-btn:hover { background: #e4e7ec; }
.accsuite-align-btn.active {
  background: rgba(0,171,209,.1);
  border-color: var(--accsuite-accent);
  color: var(--accsuite-accent);
}

/* ── Panel Footer ── */
#accsuite-panel-footer {
  padding: 14px 14px 20px;
  flex-shrink: 0;
}
#accsuite-reset-btn {
  display: block;
  width: 100%;
  padding: 14px;
  background: var(--accsuite-accent);
  color: #fff;
  border: none;
  border-radius: var(--accsuite-radius);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s, transform .1s;
  letter-spacing: .01em !important;
}
#accsuite-reset-btn:hover { background: color-mix(in srgb, var(--accsuite-accent) 85%, #000); }
#accsuite-reset-btn:active { transform: scale(.98); }

/* ── Statement Modal ── */
#accsuite-statement-modal {
  position: fixed;
  inset: 0;
  z-index: 999995;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  display: none;
}
#accsuite-statement-modal.open { display: flex; }
#accsuite-statement-modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.5);
}
#accsuite-statement-modal-box {
  position: relative;
  background: var(--accsuite-panel-bg);
  border-radius: var(--accsuite-radius);
  max-width: 640px;
  width: 100%;
  max-height: 80vh;
  overflow-y: auto;
  padding: 28px;
  box-shadow: 0 20px 50px rgba(0,0,0,.25);
}
#accsuite-statement-modal-close {
  position: absolute;
  top: 14px; right: 14px;
  background: #f0f2f5;
  border: none;
  border-radius: 50%;
  width: 32px; height: 32px;
  font-size: 18px;
  cursor: pointer;
  color: #555;
  display: flex;
  align-items: center;
  justify-content: center;
}
#accsuite-statement-modal-close:hover { background: #e4e7ec; }

/* ── Statement content typography ── */
#accsuite-statement-content h1,
#accsuite-statement-content h2,
#accsuite-statement-content h3,
#accsuite-statement-content h4 {
  line-height: 1.2em !important;
}
#accsuite-statement-content p,
#accsuite-statement-content li {
  line-height: 1.5em !important;
}

/* ── Overlay backdrop ── */
#accsuite-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.25);
  z-index: 999989;
  display: none;
}
#accsuite-backdrop.open { display: block; }

/* ── Ensure our widget icons stay visible ── */
#accsuite-panel svg,
#accsuite-fab svg { visibility: visible !important; }
