/* ── Upgrade Modal — Matches templates/dashboard.html exactly ── */

/* Overlay */
.modal-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.7);
  backdrop-filter: blur(6px);
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s;
}
.modal-overlay.open {
  opacity: 1;
  pointer-events: all;
}

/* Modal card */
.modal-overlay .modal {
  background: var(--s1);
  border: 1px solid var(--b2);
  border-radius: 16px;
  padding: 28px;
  max-width: 820px;
  width: calc(100% - 32px);
  max-height: 90vh;
  overflow-y: auto;
  transform: translateY(20px);
  transition: transform .25s;
}
.modal-overlay.open .modal {
  transform: translateY(0);
}

/* Titles */
.modal-overlay .modal-title {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 4px;
}
.modal-overlay .modal-sub {
  font-size: 13px;
  color: var(--t3);
  margin-bottom: 20px;
}

/* Billing toggle */
.billing-toggle-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 16px 0 22px;
}
.toggle-pill {
  background: var(--s3);
  border: 1px solid var(--b1);
  padding: 4px;
  border-radius: 99px;
  display: flex;
  gap: 4px;
}
.toggle-btn {
  padding: 6px 16px;
  border-radius: 99px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  border: none;
  background: transparent;
  color: var(--t3);
  font-family: var(--font, system-ui);
  transition: .2s;
}
.toggle-btn.on {
  background: var(--acc);
  color: #fff;
  box-shadow: 0 4px 12px rgba(61,126,255,.3);
}

/* Plans grid */
.plans-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-top: 4px;
}

/* Coupon */
.coupon-wrap {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px dashed var(--b1);
  display: flex;
  gap: 8px;
}
.coupon-input {
  flex: 1;
  height: 38px;
  background: var(--s2);
  border: 1px solid var(--b2);
  border-radius: 8px;
  padding: 0 12px;
  color: var(--t1);
  font-size: 12px;
  font-family: var(--font, system-ui);
  outline: none;
  text-transform: uppercase;
}
.coupon-input:focus { border-color: var(--acc); }

/* Close button */
.modal-close {
  background: var(--s3);
  border: 1px solid var(--b1);
  width: 32px; height: 32px;
  border-radius: 50%;
  color: var(--t2);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: .2s;
  font-size: 14px;
}
.modal-close:hover { background: var(--red, #F04545); color: #fff; border-color: var(--red, #F04545); }

/* Modal header (for pages that use it) */
.modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 20px;
}

/* Footer note */
.modal-secure-note {
  text-align: center;
  font-size: 11px;
  color: var(--t3);
  margin-top: 16px;
}

/* Light theme */
[data-theme=light] .modal-overlay .modal { background: #fff; border-color: #D8E0F5; }

/* ── Unified Premium Language Switcher ── */
.lang-switcher {
  position: relative;
  display: flex;
  background: var(--s2);
  border: 1.5px solid var(--b1);
  padding: 3px;
  border-radius: 99px;
  width: 94px;
  height: 34px;
  cursor: pointer;
  user-select: none;
  backdrop-filter: blur(8px);
  box-shadow: 0 4px 15px rgba(0,0,0,0.12);
  transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
  flex-shrink: 0;
}
.lang-switcher:hover {
  border-color: var(--acc);
  box-shadow: 0 0 20px rgba(61, 126, 255, 0.2);
  transform: translateY(-1px);
}
.ls-btn {
  flex: 1;
  border: none;
  background: transparent;
  color: var(--t2);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.5px;
  z-index: 2;
  cursor: pointer;
  transition: color 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font, system-ui);
  line-height: 1;
}
.lang-switcher[data-active="en"] .ls-btn[data-lang="en"],
.lang-switcher[data-active="ar"] .ls-btn[data-lang="ar"] {
  color: #fff;
}
.ls-slider {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 44px;
  height: 25px;
  background: var(--acc);
  border-radius: 99px;
  z-index: 1;
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.3s;
  box-shadow: 0 3px 10px rgba(61, 126, 255, 0.4);
}
/* Move slider based on active language */
.lang-switcher[data-active="ar"] .ls-slider {
  transform: translateX(41px);
}
[dir="rtl"] .lang-switcher .ls-slider {
  left: auto;
  right: 3px;
}
[dir="rtl"] .lang-switcher[data-active="ar"] .ls-slider {
  transform: translateX(-41px);
}
/* Ensure clean display in dark/light mode */
[data-theme=light] .lang-switcher { background: #fff; border-color: #E2E8F0; }
[data-theme=light] .ls-btn { color: #64748B; }
[data-theme=light] .lang-switcher[data-active="en"] .ls-btn[data-lang="en"],
[data-theme=light] .lang-switcher[data-active="ar"] .ls-btn[data-lang="ar"] { color: #fff; }
