/* Doctori patient web — merged application styles */

/* =========================
   TOKENS
   ========================= */

:root {
  --primary: #16479d;
  --primary-light: #e3e9f7;
  --primary-mid: #3d67b5;
  --primary-dark: #0f3370;

  --secondary: #02b4d7;
  --secondary-light: #dcf6fb;
  --secondary-dark: #02839b;

  --bg-page: #f0f8f8;
  --bg-card: #ffffff;
  --bg-input: #ffffff;

  --text-primary: #1a2433;
  --text-secondary: #6b7280;
  --text-hint: #9ca3af;

  --border: #e5e7eb;

  --success: #059669;
  --success-light: #d1fae5;
  --error: #dc2626;
  --error-light: #fee2e2;
  --warning: #f59e0b;
  --warning-light: #fef3c7;

  --radius-btn: 14px;
  --radius-card: 16px;
  --shadow-soft: 0 2px 8px rgba(22, 71, 157, 0.12);

  --font-display: "Plus Jakarta Sans", system-ui, sans-serif;
  --font-heading: "Nunito", system-ui, sans-serif;
  --font-body: "Inter", system-ui, sans-serif;
}

/* =========================
   BASE
   ========================= */

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html,
body {
  min-height: 100%;
}

body {
  font-family: var(--font-body);
  color: var(--text-primary);
  background: #ffffff;
  line-height: 1.4;
}

img {
  max-width: 100%;
  display: block;
}

button {
  font-family: inherit;
}

#app {
  min-height: 100vh;
}

.page {
  display: none;
  min-height: 100vh;
}

.page.is-active {
  display: flex;
  flex-direction: column;
}

[dir="rtl"] body {
  text-align: right;
}

.is-hidden {
  display: none !important;
}

/* =========================
   COMPONENTS
   ========================= */

.btn {
  display: block;
  width: 100%;
  height: 52px;
  border-radius: var(--radius-btn);
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}

.btn:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.btn-primary {
  border: none;
  background: var(--primary);
  color: #ffffff;
}

.btn-outline {
  margin-top: 12px;
  background: #ffffff;
  color: var(--primary);
  border: 1.5px solid var(--border);
}

/* =========================
   LAYOUT / DASHBOARD SHELL
   ========================= */

.page-splash {
  align-items: center;
  max-width: 420px;
  margin: 0 auto;
  padding: 60px 28px 24px;
}

.splash-logo {
  width: 130px;
  height: 110px;
  object-fit: contain;
}

.splash-title {
  margin-top: 18px;
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 700;
  color: var(--primary);
}

.splash-tagline {
  margin-top: 6px;
  font-size: 14px;
  color: var(--text-secondary);
}

.splash-actions {
  width: 100%;
  margin-top: 80px;
}

.splash-legal {
  margin-top: 14px;
  padding: 0 8px;
  font-size: 11px;
  color: var(--text-hint);
  text-align: center;
}

.page-placeholder {
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 40px 24px;
  text-align: center;
  background: var(--bg-page);
}

.page-placeholder h2 {
  font-family: var(--font-heading);
  color: var(--primary);
}

.page-dashboard.is-active {
  flex-direction: row;
  height: 100vh;
  min-height: 100vh;
  overflow: hidden;
  background: #eef3f8;
}

.dash-backdrop {
  display: none;
}

.dash-sidebar {
  display: flex;
  flex-direction: column;
  width: 250px;
  flex-shrink: 0;
  padding: 22px 16px 18px;
  background: #ffffff;
  border-right: 1px solid var(--border);
}

@media (min-width: 901px) {
  .dash-sidebar {
    overflow: hidden;
    transition: width 0.2s ease, padding 0.2s ease, border-width 0.2s ease, opacity 0.2s ease;
  }

  .page-dashboard.is-sidebar-collapsed .dash-sidebar {
    width: 0;
    min-width: 0;
    padding: 0;
    border-right-width: 0;
    border-left-width: 0;
    opacity: 0;
    pointer-events: none;
  }
}

.dash-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 6px 18px;
}

.dash-brand img {
  width: 42px;
  height: 42px;
  object-fit: contain;
}

.dash-brand strong {
  display: block;
  font-family: var(--font-display);
  font-size: 20px;
  color: var(--primary);
}

.dash-brand span {
  display: block;
  margin-top: 2px;
  font-size: 10px;
  line-height: 1.3;
  color: var(--text-hint);
}

.dash-side-nav {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.dash-side-link {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 42px;
  padding: 0 12px;
  border: none;
  border-radius: 12px;
  background: transparent;
  color: var(--text-secondary);
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.dash-side-link svg {
  width: 18px;
  height: 18px;
}

.dash-side-link.is-active {
  background: var(--primary);
  color: #ffffff;
}

.dash-side-promo {
  margin-top: auto;
  padding: 18px 14px 16px;
  border-radius: 16px;
  background: #eaf3fb;
  text-align: center;
}

.dash-side-promo-art {
  display: block;
  width: 44px;
  height: 44px;
  margin: 0 auto 8px;
  color: var(--primary);
}

.dash-side-promo strong {
  display: block;
  font-family: var(--font-heading);
  font-size: 16px;
  font-weight: 800;
  color: var(--primary-dark);
}

.dash-side-promo p {
  margin: 6px auto 14px;
  max-width: 160px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--text-secondary);
}

.dash-side-promo button {
  width: 100%;
  height: 38px;
  border: 1px solid #d5dbe5;
  border-radius: 10px;
  background: #ffffff;
  color: var(--primary-dark);
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.dash-side-promo button:hover {
  background: #f8fbff;
}

.dash-main {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  min-height: 0;
  overflow: visible;
}

.dash-top {
  position: relative;
  z-index: 30;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 28px;
  flex-shrink: 0;
  background: #ffffff;
  border-bottom: 1px solid var(--border);
}

.dash-top-start {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1;
}

.dash-greeting {
  min-width: 0;
  font-family: var(--font-heading);
  font-size: 16px;
  font-weight: 700;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dash-greeting span + span {
  margin-inline-start: 4px;
}

.dash-icon-btn,
.dash-user {
  border: none;
  cursor: pointer;
  background: #ffffff;
}

.dash-icon-btn svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.dash-top-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 1;
}

.dash-icon-btn {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  color: var(--text-primary);
}

.dash-icon-btn:hover,
.dash-user:hover {
  background: var(--bg-page);
}

.dash-menu-btn {
  display: grid;
  place-items: center;
}

.dash-pop {
  position: relative;
}

.dash-user {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 8px 0 4px;
  border-radius: 999px;
}

.dash-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 40;
  min-width: 176px;
  padding: 6px;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 8px 24px rgba(22, 71, 157, 0.16);
}

.dash-pop.is-open .dash-dropdown {
  display: block;
}

.dash-dropdown-panel {
  min-width: 220px;
  padding: 14px 16px;
}

.dash-dropdown-empty {
  margin: 0;
  font-size: 13px;
  color: var(--text-secondary);
}

.dash-dropdown-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: none;
  border-radius: 10px;
  background: transparent;
  color: var(--text-primary);
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  text-align: start;
  cursor: pointer;
}

.dash-dropdown-item svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.dash-dropdown-item:hover,
.dash-dropdown-item:focus-visible {
  background: var(--primary-light);
}

.dash-dropdown-item.is-active {
  background: var(--primary-light);
  color: var(--primary);
}

.dash-dropdown-item-danger {
  color: var(--error);
}

.dash-dropdown-item-danger:hover,
.dash-dropdown-item-danger:focus-visible {
  background: var(--error-light);
}

[dir="rtl"] .dash-dropdown {
  right: auto;
  left: 0;
}

.dash-avatar {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  overflow: hidden;
  border-radius: 50%;
  background: var(--primary-dark);
  color: #ffffff;
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  background-size: cover;
  background-position: center;
}

.dash-user-name {
  max-width: 110px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  color: var(--text-primary);
}

.dash-user-chevron {
  width: 16px;
  height: 16px;
  color: var(--text-secondary);
  transition: transform 0.15s ease;
}

.dash-user-menu.is-open .dash-user-chevron {
  transform: rotate(180deg);
}

.dash-content {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 8px 28px 32px;
}

.dash-status {
  margin-top: 16px;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--primary-light);
  color: var(--primary-dark);
  font-size: 13px;
}

.dash-status.is-error {
  background: var(--error-light);
  color: var(--error);
}

.dash-empty-inline {
  margin: 0;
  padding: 12px 4px;
  font-size: 13px;
  color: var(--text-secondary);
}

@media (max-width: 900px) {
  .dash-sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 30;
    transform: translateX(-105%);
    transition: transform 0.2s ease;
    box-shadow: 8px 0 24px rgba(22, 71, 157, 0.12);
  }

  .page-dashboard.is-menu-open .dash-sidebar {
    transform: translateX(0);
  }

  .dash-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 25;
    border: none;
    background: rgba(15, 51, 112, 0.35);
  }

  .page-dashboard.is-menu-open .dash-backdrop {
    display: block;
  }

  .dash-top,
  .dash-content {
    padding-left: 16px;
    padding-right: 16px;
  }

  .dash-greeting {
    font-size: 14px;
  }

  .dash-user-name {
    display: none;
  }

  [dir="rtl"] .dash-sidebar {
    right: 0;
    left: auto;
    transform: translateX(105%);
  }

  [dir="rtl"] .page-dashboard.is-menu-open .dash-sidebar {
    transform: translateX(0);
  }
}

[dir="rtl"] .dash-sidebar {
  border-right: none;
  border-left: 1px solid var(--border);
}

[dir="rtl"] .dash-side-link {
  text-align: right;
}

@media (max-width: 720px) {
  .dash-greeting {
    display: none;
  }

  .dash-top-start,
  .dash-top-actions {
    flex: 0 0 auto;
  }
}

/* =========================
   LANDING
   ========================= */

.page-landing.is-active {
  display: block;
  overflow-y: auto;
  background: #f5f8fc;
}

.land-nav {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: 72px;
  padding: 12px 28px;
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
}

.land-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  border: none;
  background: transparent;
  cursor: pointer;
}

.land-brand img {
  width: 38px;
  height: 38px;
  object-fit: contain;
}

.land-brand strong {
  font-family: var(--font-display);
  font-size: 20px;
  color: var(--primary);
}

.land-nav-links {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: 12px;
}

.land-nav-links button {
  height: 36px;
  padding: 0 12px;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: var(--text-secondary);
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.land-nav-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.land-lang {
  display: inline-flex;
  padding: 3px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #ffffff;
}

.land-lang button {
  height: 30px;
  padding: 0 10px;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: var(--text-secondary);
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.land-lang button.is-active {
  background: var(--primary);
  color: #ffffff;
}

.land-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 42px;
  padding: 0 18px;
  border-radius: 12px;
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
}

.land-btn-primary {
  border: none;
  background: var(--primary);
  color: #ffffff;
}

.land-btn-outline {
  border: 1.5px solid var(--primary);
  background: #ffffff;
  color: var(--primary);
}

.land-btn-ghost {
  border: none;
  background: transparent;
  color: var(--primary);
}

.land-wrap {
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
}

.land-hero {
  padding: 36px 0 20px;
}

.land-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: 36px;
  align-items: center;
}

.land-kicker {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--secondary-dark);
}

.land-hero h1 {
  margin-top: 10px;
  font-family: var(--font-display);
  font-size: clamp(32px, 5vw, 52px);
  line-height: 1.15;
  color: var(--primary-dark);
}

.land-hero-text {
  margin-top: 12px;
  max-width: 520px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--text-secondary);
}

.land-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

.land-hero-actions .land-btn {
  height: 48px;
  min-width: 160px;
}

.land-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 28px;
}

.land-stat strong {
  display: block;
  font-family: var(--font-heading);
  font-size: 18px;
  color: var(--primary);
}

.land-stat span {
  font-size: 13px;
  color: var(--text-secondary);
}

.land-hero-visual {
  overflow: hidden;
  border-radius: 28px;
  background: #dceef8;
  box-shadow: var(--shadow-soft);
}

.land-hero-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.land-section {
  padding: 28px 0 48px;
}

.land-section h2 {
  font-family: var(--font-display);
  font-size: 30px;
  color: var(--primary-dark);
}

.land-lead {
  margin-top: 8px;
  max-width: 560px;
  font-size: 15px;
  color: var(--text-secondary);
}

.land-features {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}

.land-card {
  padding: 20px 18px;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
}

.land-card-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: var(--primary-light);
  color: var(--primary);
}

.land-card-icon svg {
  width: 20px;
  height: 20px;
}

.land-card h3 {
  margin-top: 14px;
  font-family: var(--font-heading);
  font-size: 16px;
  color: var(--primary-dark);
}

.land-card p {
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}

.land-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}

.land-step {
  padding: 22px 20px;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
}

.land-step b {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--primary);
  color: #ffffff;
  font-family: var(--font-heading);
}

.land-step h3 {
  margin-top: 14px;
  font-family: var(--font-heading);
  font-size: 17px;
  color: var(--primary-dark);
}

.land-step p {
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}

.land-cta {
  margin: 8px 0 48px;
  padding: 32px;
  border-radius: 24px;
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  color: #ffffff;
  text-align: center;
}

.land-cta h2 {
  color: #ffffff;
}

.land-cta p {
  margin: 8px auto 0;
  max-width: 480px;
  color: rgba(255, 255, 255, 0.82);
}

.land-cta .land-btn {
  margin-top: 18px;
}

.land-cta .land-btn-primary {
  background: #ffffff;
  color: var(--primary);
}

.land-footer {
  padding: 20px 0 28px;
  border-top: 1px solid var(--border);
  color: var(--text-hint);
  font-size: 12px;
}

.land-footer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

@media (max-width: 900px) {
  .land-nav {
    padding: 10px 16px;
  }

  .land-nav-links {
    display: none;
  }

  .land-nav .land-btn-ghost {
    display: none;
  }

  .land-hero-grid,
  .land-features,
  .land-steps {
    grid-template-columns: 1fr;
  }

  .land-wrap {
    width: min(1120px, calc(100% - 32px));
  }

  .land-cta {
    padding: 24px 18px;
  }

  .land-footer-row {
    flex-direction: column;
    align-items: flex-start;
  }
}

[dir="rtl"] .land-nav-links {
  margin-left: 0;
  margin-right: 12px;
}

[dir="rtl"] .land-nav-actions {
  margin-left: 0;
  margin-right: auto;
}

/* =========================
   LOGIN
   ========================= */

.page-login {
  background: #ffffff;
}

.login-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 16px 0;
}

.login-back,
.login-lang {
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
  color: var(--primary);
  font-size: 18px;
  cursor: pointer;
}

.login-wrap {
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  padding: 8px 22px 24px;
}

.login-badge {
  width: 56px;
  height: 56px;
  margin: 0 auto;
  object-fit: contain;
}

.login-title {
  margin-top: 14px;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  color: var(--text-primary);
  text-align: center;
}

.login-subtitle {
  margin-top: 2px;
  font-family: var(--font-heading);
  font-size: 16px;
  font-weight: 700;
  color: var(--text-primary);
  text-align: center;
}

.login-helper {
  margin-top: 4px;
  font-size: 13px;
  line-height: 1.35;
  color: var(--text-secondary);
  text-align: center;
}

.login-card {
  margin-top: 16px;
  padding: 14px;
  background: var(--bg-card);
  border: 1px solid rgba(229, 231, 235, 0.7);
  border-radius: var(--radius-card);
  box-shadow: 0 6px 16px rgba(22, 71, 157, 0.05);
}

.login-card-label {
  font-family: var(--font-heading);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.4px;
  color: var(--text-secondary);
  text-transform: uppercase;
}

.login-field {
  margin-top: 8px;
}

.login-input-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 46px;
  padding: 0 12px;
  background: var(--bg-input);
  border: 1px solid var(--border);
  border-radius: 12px;
}

.login-input-wrap.is-error {
  border-color: var(--error);
}

.login-input-wrap input {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  font-size: 14px;
  color: var(--text-primary);
}

.login-input-wrap input::placeholder {
  color: var(--text-hint);
}

.login-eye {
  border: none;
  background: none;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 14px;
}

.login-error {
  display: none;
  margin-top: 4px;
  font-size: 12px;
  color: var(--error);
}

.login-error.is-visible {
  display: block;
}

.btn-signin {
  margin-top: 10px;
  height: 42px;
  border: none;
  border-radius: 12px;
  color: #ffffff;
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  background: linear-gradient(90deg, var(--primary-mid), var(--primary), var(--primary-dark));
  box-shadow: 0 4px 10px rgba(22, 71, 157, 0.28);
}

.btn-signin:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.login-google {
  display: flex;
  justify-content: center;
  margin-top: 12px;
  min-height: 40px;
  width: 100%;
}

.login-google iframe {
  max-width: 100%;
}

.login-or {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 14px 0 12px;
  font-size: 12px;
  color: var(--text-hint);
}

.login-or::before,
.login-or::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}

.btn-otp {
  height: 42px;
  border-radius: 12px;
  border: 1.5px solid var(--border);
  background: #ffffff;
  color: var(--primary);
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.page-login.is-otp .login-subtitle {
  margin-top: 8px;
  font-size: 14px;
  font-weight: 500;
  color: #9aa3b2;
}

.login-otp-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary);
}

.login-otp-panel .login-input-wrap {
  height: 52px;
  margin-top: 10px;
  padding: 0 14px;
  background: #f4f7f8;
  border-color: transparent;
  border-radius: 14px;
}

.login-otp-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: #b0b6c2;
}

.btn-send-otp {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 52px;
  margin-top: 14px;
  border: none;
  border-radius: 28px;
  font-size: 16px;
}

.btn-send-otp svg {
  position: absolute;
  right: 18px;
  width: 18px;
  height: 18px;
}

[dir="rtl"] .btn-send-otp svg {
  right: auto;
  left: 18px;
  transform: scaleX(-1);
}

.login-otp-panel .btn-otp,
.login-code-panel .btn-otp {
  height: 52px;
  border-radius: 28px;
  border-color: #e6eaf0;
  background: #f7f9fb;
}

.btn-otp:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.login-code-boxes {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

.login-code-digit {
  flex: 1;
  width: 0;
  min-width: 0;
  height: 52px;
  padding: 0;
  text-align: center;
  font-size: 20px;
  font-weight: 700;
  color: var(--text-primary);
  background: #f4f7f8;
  border: 1px solid transparent;
  border-radius: 12px;
  outline: none;
}

.login-code-digit:focus {
  border-color: var(--primary);
  background: #ffffff;
}

.login-code-boxes.is-error .login-code-digit {
  border-color: var(--error);
}

.login-change-contact {
  display: block;
  width: 100%;
  margin-top: 14px;
  border: none;
  background: none;
  color: var(--primary);
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.login-footer {
  margin-top: 18px;
  text-align: center;
}

.login-footer p,
.login-footer a {
  font-size: 12px;
  color: var(--text-secondary);
}

.login-footer a {
  color: var(--primary);
  font-family: var(--font-heading);
  font-weight: 700;
  text-decoration: none;
}

.login-safe,
.login-credit {
  margin-top: 12px;
  font-size: 11px;
  color: var(--text-hint);
}

/* =========================
   SIGNUP
   ========================= */

.page-signup .login-top {
  padding: 12px 8px 0;
}

.page-signup .signup-back,
.page-signup .login-lang {
  box-shadow: none;
  color: var(--text-primary);
}

.page-signup .signup-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.page-signup .signup-back svg {
  width: 22px;
  height: 22px;
}

[dir="rtl"] .page-signup .signup-back svg {
  transform: scaleX(-1);
}

.page-signup .login-wrap {
  padding: 18px 24px 32px;
}

.page-signup .login-title,
.page-signup .login-subtitle {
  text-align: start;
  font-family: var(--font-display);
  font-size: 34px;
  line-height: 1.15;
  font-weight: 700;
  color: #1a1f2c;
}

.page-signup .login-title {
  margin-top: 18px;
}

.page-signup .login-subtitle {
  margin-top: 0;
}

.page-signup .login-card {
  margin-top: 28px;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

.page-signup .login-field {
  margin-top: 18px;
}

.page-signup .signup-banner + .login-field {
  margin-top: 0;
}

.page-signup .login-input-wrap {
  height: 52px;
  padding: 0 16px;
  border-radius: 28px;
  background: #ffffff;
  border: 1px solid #e6e8ee;
}

.page-signup .login-input-wrap:focus-within {
  border-color: var(--primary);
}

.page-signup .login-input-wrap input {
  font-size: 15px;
}

.page-signup .signup-field-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: #b0b6c2;
}

.page-signup .signup-eye {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #b0b6c2;
}

.page-signup .signup-eye svg {
  width: 20px;
  height: 20px;
  display: block;
}

.page-signup .btn-signin {
  margin-top: 26px;
  height: 52px;
  border-radius: 28px;
  font-size: 16px;
  background: var(--primary);
  box-shadow: none;
}

.page-signup .login-footer {
  margin-top: 22px;
}

.page-signup .login-footer p,
.page-signup .login-footer a {
  font-size: 13px;
}

.page-signup .login-credit {
  margin-top: 28px;
}

.signup-label {
  display: block;
  margin-bottom: 8px;
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.6px;
  color: var(--text-secondary);
  text-transform: uppercase;
}

.signup-label-plain {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: #6b7280;
}

.signup-banner {
  display: none;
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 12px;
  line-height: 1.4;
}

.signup-banner.is-visible {
  display: block;
}

.signup-banner.is-error {
  background: var(--error-light);
  color: var(--error);
}

.signup-banner.is-success {
  background: var(--success-light);
  color: var(--success);
}

/* =========================
   DASHBOARD
   ========================= */

.dash-hero {
  position: relative;
  overflow: hidden;
  border-radius: 24px;
  background: #dceef8;
  box-shadow: var(--shadow-soft);
}

.dash-hero img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
}

.dash-hero-cta {
  position: absolute;
  right: 16px;
  bottom: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  min-width: 168px;
  height: 42px;
  padding: 0 28px 0 14px;
  border: none;
  border-radius: 999px;
  background: var(--primary);
  color: #ffffff;
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}

.dash-hero-cta svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.dash-find {
  display: flex;
  align-items: stretch;
  margin-top: 16px;
  min-height: 52px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}

.dash-find svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.dash-find-location {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 32%;
  max-width: 240px;
  padding: 0 16px;
  border: none;
  background: transparent;
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: 15px;
  cursor: pointer;
}

.dash-find-location span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dash-find-divider {
  width: 1px;
  margin: 12px 0;
  background: var(--border);
}

.dash-find-search {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
  padding: 0 16px;
  color: #6b7280;
}

.dash-search-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.dash-find-search input {
  flex: 1;
  min-width: 0;
  border: none;
  outline: none;
  background: transparent;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--text-primary);
  -webkit-appearance: none;
  appearance: none;
}

.dash-find-search input::-webkit-search-decoration,
.dash-find-search input::-webkit-search-cancel-button,
.dash-find-search input::-webkit-search-results-button,
.dash-find-search input::-webkit-search-results-decoration {
  display: none;
  -webkit-appearance: none;
}

.dash-find-search input::placeholder {
  color: #9ca3af;
}

.dash-section {
  margin-top: 24px;
}

.dash-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.dash-section-head h3 {
  font-family: var(--font-heading);
  font-size: 18px;
  color: var(--text-primary);
}

.dash-see-all {
  font-size: 13px;
  font-weight: 700;
  color: var(--primary);
  cursor: pointer;
}

.dash-dept-row {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: none;
}

.dash-dept-row::-webkit-scrollbar {
  display: none;
}

.dash-dept {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 120px;
  min-width: 120px;
  min-height: 110px;
  padding: 14px 10px;
  border: none;
  border-radius: 18px;
  background: #ffffff;
  color: var(--text-primary);
  font-family: inherit;
  text-align: center;
  box-shadow: var(--shadow-soft);
  cursor: pointer;
}

.dash-dept-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: var(--primary-light);
  color: var(--primary);
  font-family: var(--font-heading);
  font-size: 16px;
  font-weight: 700;
}

.dash-dept strong,
.dash-dept span {
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
}

.dash-dept small {
  font-size: 11px;
  color: var(--text-hint);
}

.dash-doctors-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 16px;
  align-items: stretch;
}

.dash-doctors {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.dash-doc {
  display: flex;
  flex-direction: column;
  padding: 16px;
  border: none;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
}

.dash-doc-main {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.dash-doc-avatar {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  overflow: hidden;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--secondary-light);
  color: var(--secondary-dark);
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 700;
  background-size: cover;
  background-position: center;
}

.dash-doc-copy {
  min-width: 0;
  flex: 1;
}

.dash-doc-copy h4 {
  font-family: var(--font-heading);
  font-size: 15px;
}

.dash-doc-copy p,
.dash-doc-loc {
  margin-top: 3px;
  font-size: 12px;
  color: var(--text-secondary);
}

.dash-doc-loc {
  color: var(--text-hint);
}

.dash-doc-rating {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  border-radius: 8px;
  background: var(--warning-light);
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
}

.dash-doc-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: auto;
  padding-top: 14px;
}

.dash-doc-fee {
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  color: var(--primary);
}

.dash-book {
  height: 34px;
  padding: 0 14px;
  border: none;
  border-radius: 10px;
  background: var(--primary);
  color: #ffffff;
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.dash-commit {
  position: relative;
  overflow: hidden;
  min-height: 220px;
  border-radius: 18px;
  background: var(--primary);
}

.dash-commit img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 80% center;
}

.dash-commit div {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 16px;
  background: linear-gradient(180deg, transparent, rgba(15, 51, 112, 0.82));
}

.dash-commit h3 {
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 1.25;
  color: #ffffff;
}

@media (max-width: 1100px) {
  .dash-doctors-row {
    grid-template-columns: 1fr;
  }

  .dash-commit {
    min-height: 160px;
  }
}

@media (max-width: 900px) {
  .dash-find-location {
    width: 38%;
    max-width: none;
    padding: 0 12px;
    font-size: 14px;
  }

  .dash-find-search {
    padding: 0 12px;
  }

  .dash-hero-cta {
    right: 10px;
    left: auto;
    bottom: 8px;
    min-width: 148px;
    height: 38px;
    padding: 0 22px 0 12px;
    font-size: 13px;
  }

  .dash-doctors {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 1200px) {
  .dash-hero {
    border-radius: 28px;
  }
}

[dir="rtl"] .dash-hero-cta {
  right: 16px;
  left: auto;
  padding: 0 14px 0 28px;
}

@media (max-width: 900px) {
  [dir="rtl"] .dash-hero-cta {
    right: 10px;
    padding: 0 12px 0 22px;
  }
}

/* =========================
   DOCTORS
   ========================= */

.doctors-head {
  margin-bottom: 18px;
}

.doctors-kicker {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-hint);
}

.doctors-head h2 {
  margin-top: 4px;
  font-family: var(--font-display);
  font-size: 32px;
  color: var(--primary-dark);
}

.doctors-head p {
  margin-top: 4px;
  font-size: 14px;
  color: var(--text-secondary);
}

.doctors-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
}

.doc-filter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 42px;
  padding: 0 14px;
  border: 1.5px solid var(--border);
  border-radius: 999px;
  background: #ffffff;
  color: var(--text-secondary);
}

.doc-filter svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.doc-filter select {
  max-width: 180px;
  border: none;
  outline: none;
  background: transparent;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  color: var(--primary-dark);
  cursor: pointer;
}

.doc-sort {
  margin-left: auto;
}

.doctors-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.doc-card {
  display: flex;
  gap: 16px;
  padding: 16px;
  background: #ffffff;
  border-radius: 20px;
  box-shadow: var(--shadow-soft);
}

.doc-card-photo {
  display: grid;
  place-items: center;
  width: 148px;
  min-height: 176px;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 16px;
  color: var(--primary-dark);
  font-family: var(--font-heading);
  font-size: 32px;
  font-weight: 700;
  background-size: cover;
  background-position: center top;
}

.doc-card-main {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
}

.doc-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.doc-avail {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

.doc-avail i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
}

.doc-avail-today,
.doc-avail-week {
  background: #e8f8ef;
  color: var(--success);
}

.doc-avail-tomorrow {
  background: var(--primary-light);
  color: var(--primary);
}

.doc-fav {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: none;
  background: transparent;
  color: #9ca3af;
  cursor: pointer;
}

.doc-fav svg {
  width: 18px;
  height: 18px;
}

.doc-fav.is-saved {
  color: #dc2626;
}

.doc-fav.is-saved svg path {
  fill: currentColor;
}

.doc-card-main h3 {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  font-family: var(--font-heading);
  font-size: 16px;
  color: var(--primary-dark);
}

.doc-verified {
  display: inline-flex;
  color: var(--primary);
}

.doc-verified svg {
  width: 16px;
  height: 16px;
}

.doc-spec {
  margin-top: 2px;
  font-size: 14px;
  color: var(--text-secondary);
}

.doc-loc {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  font-size: 12px;
  color: var(--primary);
}

.doc-loc svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.doc-stats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  margin-top: 10px;
  font-size: 12px;
  color: var(--text-secondary);
}

.doc-stats span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.doc-stats svg {
  width: 14px;
  height: 14px;
}

.doc-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 14px;
}

.doc-price {
  font-size: 13px;
  color: var(--text-secondary);
}

.doc-price strong {
  color: var(--primary-dark);
  font-family: var(--font-heading);
  font-size: 16px;
}

.doc-card-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.doc-profile,
.doc-book {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 38px;
  padding: 0 14px;
  border-radius: 10px;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.doc-profile {
  border: 1.5px solid var(--primary);
  background: #ffffff;
  color: var(--primary);
}

.doc-book {
  border: none;
  background: var(--primary);
  color: #ffffff;
}

.doc-book svg {
  width: 15px;
  height: 15px;
}

@media (max-width: 1200px) {
  .doctors-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  .doctors-head h2 {
    font-size: 26px;
  }

  .doc-sort {
    margin-left: 0;
  }

  .doc-card {
    flex-direction: column;
  }

  .doc-card-photo {
    width: 100%;
    min-height: 180px;
  }

  .doc-card-foot {
    flex-direction: column;
    align-items: stretch;
  }

  .doc-card-actions {
    width: 100%;
  }

  .doc-profile,
  .doc-book {
    flex: 1;
  }
}

[dir="rtl"] .doc-sort {
  margin-left: 0;
  margin-right: auto;
}

/* =========================
   APPOINTMENTS
   ========================= */

.visits-head {
  margin-bottom: 18px;
}

.visits-head h2 {
  font-family: var(--font-display);
  font-size: 32px;
  color: var(--primary-dark);
}

.visits-head p {
  margin-top: 4px;
  font-size: 14px;
  color: var(--text-secondary);
}

.visits-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(240px, 1.15fr);
  gap: 14px;
  margin-bottom: 22px;
}

.visit-stat {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 88px;
  padding: 16px 18px;
  border: 1px solid transparent;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
  font-family: inherit;
  text-align: left;
  cursor: pointer;
}

.visit-stat.is-active {
  border-color: var(--primary);
  box-shadow: 0 4px 14px rgba(22, 71, 157, 0.16);
}

.visit-stat-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex-shrink: 0;
  border-radius: 50%;
}

.visit-stat-icon svg {
  width: 20px;
  height: 20px;
}

.visit-stat-upcoming {
  background: #eef4ff;
}

.visit-stat-upcoming .visit-stat-icon {
  background: #dbe7ff;
  color: var(--primary);
}

.visit-stat-completed {
  background: #eefaf3;
}

.visit-stat-completed .visit-stat-icon {
  background: #d1fae5;
  color: var(--success);
}

.visit-stat-cancelled {
  background: #fff1f2;
}

.visit-stat-cancelled .visit-stat-icon {
  background: #fee2e2;
  color: var(--error);
}

.visit-stat-copy {
  min-width: 0;
}

.visit-stat strong {
  display: block;
  font-family: var(--font-display);
  font-size: 28px;
  line-height: 1;
  color: var(--text-primary);
}

.visit-stat-copy span {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  color: var(--text-secondary);
}

.visit-stat-chevron {
  margin-left: auto;
  width: 18px;
  height: 18px;
  color: var(--text-hint);
}

.visits-promo {
  position: relative;
  overflow: hidden;
  min-height: 88px;
  padding: 18px 110px 18px 20px;
  border-radius: 18px;
  background: linear-gradient(135deg, #e8f3ff 0%, #dceeff 100%);
}

.visits-promo strong {
  display: block;
  font-family: var(--font-heading);
  font-size: 16px;
  color: var(--primary);
}

.visits-promo p {
  margin-top: 4px;
  max-width: 220px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--text-secondary);
}

.visits-promo-art {
  position: absolute;
  right: 12px;
  bottom: -6px;
  width: 92px;
  height: 92px;
  color: var(--primary);
}

.visits-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}

.visit-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.visit-tab,
.visit-sort {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 16px;
  border-radius: 999px;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.visit-tab {
  border: 1.5px solid var(--border);
  background: #ffffff;
  color: var(--primary-dark);
}

.visit-tab.is-active {
  border-color: var(--primary);
  background: var(--primary);
  color: #ffffff;
}

.visit-sort {
  margin-left: auto;
  border: 1.5px solid var(--border);
  background: #ffffff;
  color: var(--primary-dark);
}

.visit-sort svg {
  width: 16px;
  height: 16px;
}

.visit-sort[data-sort="asc"] .visit-sort-dir {
  transform: rotate(180deg);
}

.appointments-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
}

.visit-empty {
  padding: 28px 18px;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
  text-align: center;
}

.visit-empty p {
  font-family: var(--font-heading);
  font-size: 16px;
  font-weight: 700;
  color: var(--text-primary);
}

.visit-empty span {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  color: var(--text-secondary);
}

.visit-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  padding: 16px;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
  cursor: pointer;
}

.visit-card:hover {
  box-shadow: 0 6px 18px rgba(22, 71, 157, 0.14);
}

.visit-card-doc {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
  padding-right: 96px;
}

.visit-avatar {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 50%;
  background: var(--primary-light);
  color: var(--primary-dark);
  font-family: var(--font-heading);
  font-size: 16px;
  font-weight: 700;
  background-size: cover;
  background-position: center;
}

.visit-card-doc h3 {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-family: var(--font-heading);
  font-size: 15px;
  line-height: 1.3;
  color: var(--primary-dark);
}

.visit-spec {
  margin-top: 2px;
  font-size: 13px;
  color: var(--text-secondary);
}

.visit-loc {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
  font-size: 12px;
  color: var(--primary);
}

.visit-loc svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.visit-card-when {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--primary);
}

.visit-card-when svg {
  width: 28px;
  height: 28px;
  padding: 5px;
  border-radius: 8px;
  background: var(--primary-light);
}

.visit-card-when strong {
  display: block;
  font-size: 13px;
  color: var(--text-primary);
}

.visit-card-when span {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  font-weight: 700;
  color: var(--primary);
}

.visit-badge {
  position: absolute;
  top: 16px;
  right: 16px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.visit-badge i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
}

.visit-badge-upcoming {
  background: #e8f8ef;
  color: var(--success);
}

.visit-badge-completed {
  background: var(--primary-light);
  color: var(--primary);
}

.visit-badge-cancelled {
  background: var(--error-light);
  color: var(--error);
}

.visit-card-actions {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 8px;
}

.visit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 0;
  min-width: 0;
  gap: 6px;
  height: 40px;
  padding: 0 12px;
  border-radius: 10px;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.visit-btn svg {
  width: 16px;
  height: 16px;
}

.visit-btn-primary {
  border: none;
  background: var(--primary);
  color: #ffffff;
}

.visit-btn-outline {
  border: 1.5px solid var(--primary);
  background: #ffffff;
  color: var(--primary);
}

.dash-empty-visit {
  margin-top: 18px;
  padding: 16px;
  border-radius: 16px;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
}

.dash-empty-visit p {
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
}

.dash-empty-visit span {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  color: var(--text-secondary);
}

.dash-visit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px;
  border-radius: 18px;
  background: var(--primary-dark);
  color: #ffffff;
  cursor: pointer;
}

.dash-visit-copy {
  min-width: 0;
  flex: 1;
}

.dash-visit-top,
.dash-visit-doc,
.dash-visit-actions {
  display: flex;
  align-items: center;
}

.dash-visit-top {
  gap: 8px;
  font-size: 11px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
}

.dash-visit-date {
  color: var(--secondary);
}

.dash-visit-doc {
  gap: 12px;
  margin-top: 10px;
}

.dash-visit-avatar {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  overflow: hidden;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #ffffff;
  color: var(--primary-dark);
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  background-size: cover;
  background-position: center;
}

.dash-visit-doc h4 {
  font-family: var(--font-heading);
  font-size: 16px;
}

.dash-visit-doc p {
  margin-top: 2px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.75);
}

.dash-visit-actions {
  flex-shrink: 0;
  gap: 8px;
}

.dash-visit-actions button,
.dash-visit-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 38px;
  padding: 0 16px;
  border-radius: 10px;
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.dash-btn-directions {
  border: none;
  background: var(--secondary);
  color: #ffffff;
}

.dash-btn-reschedule {
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: transparent;
  color: #ffffff;
}

@media (max-width: 1100px) {
  .visits-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .visits-promo {
    grid-column: 1 / -1;
    padding-right: 110px;
  }

  .appointments-list {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  }
}

@media (max-width: 900px) {
  .visits-summary {
    grid-template-columns: 1fr;
  }

  .visits-head h2 {
    font-size: 26px;
  }

  .visit-sort {
    margin-left: 0;
  }

  .visits-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .dash-visit {
    flex-direction: column;
    align-items: stretch;
  }
}

[dir="rtl"] .visit-stat-chevron,
[dir="rtl"] .visit-sort {
  margin-left: 0;
  margin-right: auto;
}

[dir="rtl"] .visits-promo {
  padding: 18px 20px 18px 110px;
}

[dir="rtl"] .visits-promo-art {
  right: auto;
  left: 12px;
}

[dir="rtl"] .visit-stat-chevron {
  transform: scaleX(-1);
}

[dir="rtl"] .visit-card-doc {
  padding-right: 0;
  padding-left: 96px;
}

[dir="rtl"] .visit-badge {
  right: auto;
  left: 16px;
}

/* =========================
   BOOKING
   ========================= */

.book-page {
  width: 100%;
  padding-bottom: 24px;
}

.book-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
}

.book-back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: none;
  background: transparent;
  color: var(--text-secondary);
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.book-back svg {
  width: 20px;
  height: 20px;
}

[dir="rtl"] .book-back svg {
  transform: scaleX(-1);
}

.book-crumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--text-hint);
}

.book-crumbs button {
  border: none;
  background: none;
  color: var(--text-secondary);
  font: inherit;
  cursor: pointer;
}

.book-crumbs span:last-child {
  color: var(--primary);
  font-weight: 700;
}

.book-head h2 {
  font-family: var(--font-display);
  font-size: 28px;
  color: var(--primary-dark);
}

.book-head p {
  margin-top: 4px;
  font-size: 14px;
  color: var(--text-secondary);
}

.book-doctor {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  margin-top: 18px;
  padding: 18px;
  background: #ffffff;
  border-radius: 20px;
  box-shadow: var(--shadow-soft);
}

.book-doctor-photo {
  position: relative;
  width: 112px;
  height: 112px;
  border-radius: 16px;
  background: #dceef8 center/cover no-repeat;
  display: grid;
  place-items: center;
  font-family: var(--font-heading);
  font-size: 28px;
  font-weight: 700;
  color: var(--primary-dark);
}

.book-avail-badge {
  position: absolute;
  left: 8px;
  bottom: 8px;
  padding: 3px 8px;
  border-radius: 999px;
  background: #059669;
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
}

.book-doctor-copy h3 {
  font-family: var(--font-heading);
  font-size: 22px;
  color: var(--primary-dark);
}

.book-spec-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
}

.book-spec-row p {
  font-size: 14px;
  color: var(--text-secondary);
}

.book-badge {
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--primary-light);
  color: var(--primary);
  font-size: 11px;
  font-weight: 700;
}

.book-rating {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  font-size: 13px;
  color: var(--text-secondary);
}

.book-rating b {
  color: var(--text-primary);
}

.book-rating svg {
  width: 16px;
  height: 16px;
}

.book-meta {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 12px;
}

.book-meta span {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--text-secondary);
}

.book-meta svg {
  width: 16px;
  height: 16px;
  color: var(--primary);
  flex-shrink: 0;
}

.book-doctor-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.book-save,
.book-profile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 140px;
  height: 40px;
  border-radius: 12px;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.book-save {
  border: 1px solid var(--border);
  background: #ffffff;
  color: var(--text-primary);
}

.book-save.is-saved {
  color: var(--error);
  border-color: #fecaca;
}

.book-save svg,
.book-profile svg {
  width: 16px;
  height: 16px;
}

.book-profile {
  border: none;
  background: var(--primary-light);
  color: var(--primary);
}

.book-steps {
  display: flex;
  align-items: center;
  gap: 0;
  margin: 20px 0 8px;
  padding: 16px 18px;
  list-style: none;
  background: #ffffff;
  border-radius: 16px;
  box-shadow: var(--shadow-soft);
}

.book-steps li {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  color: var(--text-hint);
  font-size: 13px;
  font-weight: 700;
}

.book-steps li span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #eef2f6;
  color: var(--text-secondary);
}

.book-steps li.is-active {
  color: var(--primary);
}

.book-steps li.is-active span {
  background: var(--primary);
  color: #ffffff;
}

.book-steps li:not(:last-child)::after {
  content: "";
  flex: 1;
  height: 2px;
  margin: 0 12px;
  background: #e5e7eb;
}

.book-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 28%);
  gap: 18px;
  margin-top: 16px;
  align-items: start;
}

.book-main {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.book-card,
.book-summary {
  padding: 18px;
  background: #ffffff;
  border-radius: 20px;
  box-shadow: var(--shadow-soft);
}

.book-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.book-section-head h3,
.book-summary h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-heading);
  font-size: 16px;
  color: var(--primary-dark);
}

.book-section-head h3 svg,
.book-summary h3 svg {
  width: 18px;
  height: 18px;
}

.book-month-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--primary-dark);
}

.book-month-nav strong {
  min-width: 140px;
  text-align: center;
  font-size: 13px;
}

.book-month-nav button {
  width: 28px;
  height: 28px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #ffffff;
  color: var(--primary);
  font-size: 18px;
  cursor: pointer;
}

.book-dates {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.book-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 72px;
  height: 92px;
  padding: 10px 8px 8px;
  border: none;
  border-radius: 14px;
  background: #f4f7fb;
  color: var(--text-primary);
  cursor: pointer;
}

.book-date small {
  font-size: 12px;
  color: var(--text-secondary);
}

.book-date strong {
  font-size: 18px;
}

.book-date .book-today {
  font-size: 10px;
  font-weight: 700;
  color: var(--success);
}

.book-date i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--primary);
}

.book-date.is-selected {
  background: var(--primary);
  color: #ffffff;
  box-shadow: inset 0 -4px 0 #22c55e;
}

.book-date.is-selected small,
.book-date.is-selected .book-today {
  color: #dbeafe;
}

.book-date.is-selected i {
  background: #ffffff;
}

.book-date.is-busy {
  opacity: 0.4;
  cursor: not-allowed;
}

.book-tz {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: var(--text-secondary);
}

.book-tz svg {
  width: 14px;
  height: 14px;
}

.book-slots {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  min-height: 42px;
}

.book-slots-empty {
  grid-column: 1 / -1;
  margin: 0;
  padding: 8px 2px;
  font-size: 13px;
  color: var(--text-secondary);
}

.book-slot {
  height: 42px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #ffffff;
  color: var(--text-primary);
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.book-slot.is-selected {
  border-color: var(--primary);
  background: var(--primary);
  color: #ffffff;
}

.book-slot.is-busy {
  background: #f3f4f6;
  color: #c4c9d2;
  cursor: not-allowed;
}

.book-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 14px;
  font-size: 12px;
  color: var(--text-secondary);
}

.book-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.book-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1.5px solid var(--primary);
  background: transparent;
}

.book-dot.is-selected {
  background: var(--primary);
}

.book-dot.is-busy {
  border-color: #d1d5db;
  background: #e5e7eb;
}

.book-notes {
  position: relative;
  display: block;
}

.book-notes textarea {
  width: 100%;
  min-height: 120px;
  padding: 12px 12px 28px;
  border: 1px solid var(--border);
  border-radius: 14px;
  resize: vertical;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--text-primary);
}

.book-notes textarea:focus {
  outline: 2px solid var(--primary-light);
  border-color: var(--primary);
}

.book-notes span {
  position: absolute;
  right: 12px;
  bottom: 8px;
  font-size: 12px;
  color: var(--text-hint);
}

[dir="rtl"] .book-notes span {
  right: auto;
  left: 12px;
}

.book-summary {
  position: sticky;
  top: 12px;
}

.book-summary-doc {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 14px 0 16px;
}

.book-summary-doc i {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #dceef8 center/cover no-repeat;
  display: grid;
  place-items: center;
  font-size: 13px;
  font-weight: 700;
  color: var(--primary-dark);
}

.book-summary-doc strong {
  display: block;
  font-size: 14px;
  color: var(--primary-dark);
}

.book-summary-doc p {
  font-size: 12px;
  color: var(--text-secondary);
}

.book-summary-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  list-style: none;
  margin-bottom: 16px;
}

.book-summary-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  color: var(--text-primary);
}

.book-summary-list svg {
  width: 16px;
  height: 16px;
  margin-top: 2px;
  color: var(--primary);
  flex-shrink: 0;
}

.book-summary-list small {
  display: block;
  margin-top: 2px;
  color: var(--text-hint);
  font-size: 12px;
}

.book-info {
  display: flex;
  gap: 8px;
  padding: 12px;
  margin-bottom: 14px;
  border-radius: 12px;
  background: var(--primary-light);
  color: var(--primary-dark);
  font-size: 12px;
  line-height: 1.4;
}

.book-info svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: var(--primary);
}

.book-status {
  margin-bottom: 10px;
  font-size: 13px;
}

.book-status.is-error {
  color: var(--error);
}

.book-status.is-ok {
  color: var(--success);
}

.book-continue {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 46px;
  border: none;
  border-radius: 12px;
  background: var(--primary);
  color: #ffffff;
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}

.book-continue:disabled {
  opacity: 0.7;
  cursor: wait;
}

.book-continue svg {
  width: 18px;
  height: 18px;
}

[dir="rtl"] .book-continue svg {
  transform: scaleX(-1);
}

.book-secure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 12px;
  font-size: 11px;
  color: var(--text-hint);
  text-align: center;
}

.book-secure svg {
  width: 14px;
  height: 14px;
}

@media (max-width: 980px) {
  .book-layout {
    grid-template-columns: 1fr;
  }

  .book-summary {
    position: static;
  }

  .book-slots {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .book-doctor {
    grid-template-columns: 1fr;
  }

  .book-doctor-actions {
    flex-direction: row;
  }

  .book-steps {
    overflow-x: auto;
  }

  .book-steps li b {
    white-space: nowrap;
  }

  .book-slots {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* =========================
   APPOINTMENT DETAILS
   ========================= */

.adet-page {
  width: 100%;
  padding-bottom: 24px;
}

.adet-back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 18px;
  border: none;
  background: transparent;
  color: var(--primary);
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.adet-back svg {
  width: 20px;
  height: 20px;
}

[dir="rtl"] .adet-back svg,
[dir="rtl"] .adet-btn-arrow {
  transform: scaleX(-1);
}

.adet-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.adet-head h2 {
  font-family: var(--font-display);
  font-size: 32px;
  color: var(--primary-dark);
}

.adet-head p {
  margin-top: 4px;
  font-size: 14px;
  color: var(--text-secondary);
}

.adet-status {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 210px;
  padding: 12px 16px;
  border-radius: 16px;
  background: #eaf8f0;
}

.adet-status-icon {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--success);
  color: #ffffff;
}

.adet-status-icon svg {
  width: 16px;
  height: 16px;
}

.adet-status strong {
  display: block;
  font-family: var(--font-heading);
  font-size: 14px;
  color: var(--success);
}

.adet-status small {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  color: var(--text-secondary);
}

.adet-status.is-completed {
  background: #eef4ff;
}

.adet-status.is-completed .adet-status-icon {
  background: var(--primary);
}

.adet-status.is-completed strong {
  color: var(--primary);
}

.adet-status.is-cancelled {
  background: var(--error-light);
}

.adet-status.is-cancelled .adet-status-icon {
  background: var(--error);
}

.adet-status.is-cancelled strong {
  color: var(--error);
}

.adet-empty {
  margin: 12px 0 18px;
  padding: 14px 16px;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
  font-size: 14px;
  color: var(--text-secondary);
}

.adet-card {
  margin-bottom: 16px;
  padding: 20px 22px;
  background: #ffffff;
  border-radius: 20px;
  box-shadow: var(--shadow-soft);
}

.adet-card h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  font-family: var(--font-heading);
  font-size: 16px;
  color: var(--primary-dark);
}

.adet-card h3 svg {
  width: 18px;
  height: 18px;
  color: var(--primary);
}

.adet-doctor {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
}

.adet-doctor-photo {
  width: 92px;
  height: 92px;
  border-radius: 18px;
  background: #dceef8 center/cover no-repeat;
  display: grid;
  place-items: center;
  font-family: var(--font-heading);
  font-size: 22px;
  font-weight: 700;
  color: var(--primary-dark);
}

.adet-doctor h3 {
  margin: 0 0 4px;
  font-size: 20px;
}

.adet-doctor .adet-spec {
  font-size: 14px;
  color: var(--text-secondary);
}

.adet-rating {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 8px 0 10px;
  font-size: 13px;
  color: var(--text-secondary);
}

.adet-rating svg {
  width: 16px;
  height: 16px;
}

.adet-rating b {
  color: var(--text-primary);
}

.adet-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 18px;
  font-size: 13px;
  color: var(--text-secondary);
}

.adet-meta span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.adet-doctor .adet-btn {
  min-height: 42px;
  white-space: nowrap;
}

.adet-rows {
  list-style: none;
  display: flex;
  flex-direction: column;
}

.adet-rows li {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-top: 1px solid #f3f4f6;
}

.adet-rows li:first-child {
  border-top: none;
  padding-top: 0;
}

.adet-rows li:last-child {
  padding-bottom: 0;
}

.adet-row-icon {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: #f3f6fb;
  color: var(--primary);
}

.adet-row-icon svg {
  width: 16px;
  height: 16px;
}

.adet-rows small {
  display: block;
  font-size: 12px;
  color: var(--text-hint);
}

.adet-rows b {
  display: block;
  margin-top: 2px;
  font-size: 14px;
  color: var(--text-primary);
}

.adet-map-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 12px;
  border: 1.5px solid var(--primary);
  border-radius: 10px;
  background: #ffffff;
  color: var(--primary);
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.adet-map-btn svg {
  width: 14px;
  height: 14px;
}

.adet-qr-hint {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 18px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #eaf2fb;
  color: var(--primary-dark);
  font-size: 13px;
}

.adet-qr-hint svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--primary);
}

.adet-qr-body {
  display: flex;
  align-items: center;
  gap: 28px;
}

.adet-qr-img {
  width: 168px;
  height: 168px;
  object-fit: contain;
  background: #ffffff;
}

.adet-booking small {
  display: block;
  font-size: 12px;
  color: var(--text-hint);
}

.adet-booking-id {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
}

.adet-booking-id b {
  font-size: 18px;
  color: var(--primary-dark);
  letter-spacing: 0.2px;
}

.adet-icon-btn {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--primary);
  cursor: pointer;
}

.adet-icon-btn:hover {
  background: var(--primary-light);
}

.adet-icon-btn svg {
  width: 18px;
  height: 18px;
}

.adet-share-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #f3f4f6;
  font-size: 14px;
  color: var(--text-secondary);
}

.adet-actions.is-single {
  grid-template-columns: 1fr;
}

.adet-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 16px;
  border-radius: 12px;
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.adet-btn svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.adet-btn-outline {
  border: 1.5px solid var(--primary);
  background: #ffffff;
  color: var(--primary);
}

.adet-btn-danger {
  border: 1.5px solid var(--error);
  background: #ffffff;
  color: var(--error);
}

.adet-btn-primary {
  border: none;
  background: var(--primary);
  color: #ffffff;
}

.adet-toast {
  position: sticky;
  bottom: 12px;
  margin-top: 12px;
  padding: 10px 14px;
  border-radius: 12px;
  background: var(--primary-dark);
  color: #ffffff;
  font-size: 13px;
  text-align: center;
}

@media (max-width: 900px) {
  .adet-head {
    flex-direction: column;
  }

  .adet-head h2 {
    font-size: 26px;
  }

  .adet-status {
    width: 100%;
  }

  .adet-doctor {
    grid-template-columns: 92px minmax(0, 1fr);
  }

  .adet-doctor .adet-btn {
    grid-column: 1 / -1;
  }

  .adet-qr-body,
  .adet-share-row,
  .adet-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .adet-actions {
    display: flex;
  }

  .adet-rows li {
    grid-template-columns: 36px minmax(0, 1fr);
  }

  .adet-map-btn {
    grid-column: 2;
    justify-self: start;
  }
}

/* =========================
   DOCTOR PROFILE
   ========================= */

.dprof-page {
  width: 100%;
  padding-bottom: 24px;
}

.dprof-crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  font-size: 13px;
  color: var(--text-hint);
}

.dprof-crumbs button {
  border: none;
  background: none;
  color: var(--text-secondary);
  font: inherit;
  cursor: pointer;
}

.dprof-crumbs span:last-child {
  color: var(--primary);
  font-weight: 700;
}

.dprof-hero {
  padding: 22px;
  background: #ffffff;
  border-radius: 22px;
  box-shadow: var(--shadow-soft);
  background-image: radial-gradient(circle at 88% 18%, rgba(22, 71, 157, 0.08), transparent 36%);
}

.dprof-hero-main {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr) auto;
  gap: 22px;
  align-items: start;
}

.dprof-photo {
  width: 140px;
  height: 140px;
  border-radius: 20px;
  background: #dceef8 center/cover no-repeat;
  display: grid;
  place-items: center;
  font-family: var(--font-heading);
  font-size: 28px;
  font-weight: 700;
  color: var(--primary-dark);
}

.dprof-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.dprof-name-row h2 {
  font-family: var(--font-display);
  font-size: 28px;
  color: var(--primary-dark);
}

.dprof-check {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  color: var(--primary);
}

.dprof-check svg {
  width: 22px;
  height: 22px;
}

.dprof-title {
  margin-top: 4px;
  font-size: 15px;
  color: var(--text-secondary);
}

.dprof-meta {
  margin-top: 4px;
  font-size: 13px;
  color: var(--text-secondary);
}

.dprof-verified {
  display: inline-flex;
  margin-top: 10px;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--primary-light);
  color: var(--primary);
  font-size: 12px;
  font-weight: 700;
}

.dprof-hero-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.dprof-icon-btn,
.dprof-share-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 40px;
  border-radius: 12px;
  background: #ffffff;
  color: var(--primary);
  cursor: pointer;
}

.dprof-icon-btn {
  width: 40px;
  border: 1.5px solid var(--border);
}

.dprof-icon-btn.is-saved {
  color: var(--error);
  border-color: #fecaca;
}

.dprof-share-btn {
  padding: 0 14px;
  border: 1.5px solid var(--primary);
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
}

.dprof-icon-btn svg,
.dprof-share-btn svg {
  width: 16px;
  height: 16px;
}

.dprof-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 22px;
}

.dprof-stats > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 14px 12px;
  border-radius: 16px;
  background: #f5f8fc;
}

.dprof-stat-icon {
  color: var(--primary);
}

.dprof-stat-icon svg {
  width: 18px;
  height: 18px;
}

.dprof-stats b {
  font-size: 18px;
  color: var(--primary-dark);
}

.dprof-stats small {
  font-size: 12px;
  color: var(--text-secondary);
}

.dprof-tabs {
  display: flex;
  gap: 22px;
  margin: 18px 0 8px;
  border-bottom: 1px solid var(--border);
}

.dprof-tabs button {
  padding: 10px 0;
  border: none;
  border-bottom: 2px solid transparent;
  background: none;
  color: var(--text-secondary);
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.dprof-tabs button.is-active {
  color: var(--primary);
  border-bottom-color: var(--primary);
}

.dprof-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 32%);
  gap: 18px;
  align-items: start;
}

.dprof-main {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.dprof-card {
  padding: 18px 20px;
  background: #ffffff;
  border-radius: 20px;
  box-shadow: var(--shadow-soft);
}

.dprof-card h3,
.dprof-section-head h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  font-family: var(--font-heading);
  font-size: 16px;
  color: var(--primary-dark);
}

.dprof-card h3 svg,
.dprof-section-head h3 svg {
  width: 18px;
  height: 18px;
  color: var(--primary);
}

.dprof-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.dprof-section-head button,
#dprof-bio-toggle {
  border: none;
  background: none;
  color: var(--primary);
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.dprof-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.dprof-timeline {
  list-style: none;
  padding-left: 14px;
  border-left: 2px solid var(--primary-light);
}

.dprof-timeline li {
  position: relative;
  padding: 0 0 12px 12px;
  font-size: 13px;
  color: var(--text-primary);
}

.dprof-timeline li::before {
  content: "";
  position: absolute;
  left: -19px;
  top: 6px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--primary);
}

.dprof-tags,
.dprof-langs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dprof-tags span,
.dprof-langs span {
  padding: 7px 12px;
  border-radius: 999px;
  background: #f3f4f6;
  font-size: 13px;
  color: var(--text-primary);
}

.dprof-review {
  padding: 14px 0 0;
}

.dprof-review-head {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.dprof-review-stars {
  display: inline-flex;
  align-items: center;
}

.dprof-review-head i {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--primary-light);
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 700;
}

.dprof-review-head small {
  display: block;
  font-size: 12px;
  color: var(--text-hint);
}

.dprof-star {
  display: inline-flex;
  opacity: 0.25;
}

.dprof-star.is-on {
  opacity: 1;
}

.dprof-star svg {
  width: 14px;
  height: 14px;
}

.dprof-review p {
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-secondary);
}

.dprof-reply {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #eaf2fb;
}

.dprof-reply small {
  font-size: 11px;
  font-weight: 700;
  color: var(--primary);
}

.dprof-review-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.dprof-review.is-compact {
  padding: 12px;
  border-radius: 14px;
  background: #f8fafc;
}

.dprof-empty {
  font-size: 13px;
  color: var(--text-secondary);
}

.dprof-side {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.dprof-side-sub {
  margin-bottom: 12px;
  font-size: 13px;
  color: var(--text-secondary);
}

.dprof-dates {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
  margin-bottom: 12px;
}

.dprof-date,
.dprof-slot {
  border: 1.5px solid var(--border);
  background: #ffffff;
  color: var(--primary-dark);
  border-radius: 12px;
  cursor: pointer;
}

.dprof-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 8px 0;
}

.dprof-date small {
  font-size: 10px;
  color: var(--text-hint);
}

.dprof-date.is-selected,
.dprof-slot.is-selected {
  border-color: var(--primary);
  background: var(--primary);
  color: #ffffff;
}

.dprof-date.is-busy,
.dprof-slot.is-busy {
  opacity: 0.4;
  cursor: not-allowed;
}

.dprof-slots {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 14px;
}

.dprof-slot {
  min-height: 38px;
  font-size: 12px;
  font-weight: 700;
}

.dprof-book-btn,
.dprof-call {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 46px;
  border: none;
  border-radius: 12px;
  background: var(--primary);
  color: #ffffff;
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.dprof-book-btn svg,
.dprof-call svg {
  width: 16px;
  height: 16px;
}

.dprof-video {
  display: flex;
  gap: 10px;
  margin-top: 12px;
  padding: 12px;
  border-radius: 14px;
  background: var(--primary-light);
  color: var(--primary-dark);
}

.dprof-video svg {
  width: 20px;
  height: 18px;
  color: var(--primary);
}

.dprof-video small {
  display: block;
  font-size: 12px;
  color: var(--text-secondary);
}

.dprof-side a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  color: var(--primary);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.dprof-side a svg {
  width: 14px;
  height: 14px;
}

.dprof-call {
  margin-top: 12px;
  border: 1.5px solid var(--primary);
  background: #ffffff;
  color: var(--primary);
}

.dprof-map-link {
  display: inline-block;
  margin-top: 8px;
  color: var(--primary);
  font-weight: 700;
}

@media (max-width: 980px) {
  .dprof-hero-main,
  .dprof-layout,
  .dprof-split,
  .dprof-review-row {
    grid-template-columns: 1fr;
  }

  .dprof-stats {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 720px) {
  .dprof-hero-main {
    grid-template-columns: 1fr;
  }

  .dprof-dates {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* =========================
   SETTINGS
   ========================= */

.settings-head {
  margin-bottom: 22px;
}

.settings-kicker {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-hint);
}

.settings-head h2 {
  margin-top: 4px;
  font-family: var(--font-display);
  font-size: 32px;
  color: var(--primary-dark);
}

.settings-head p {
  margin-top: 4px;
  font-size: 14px;
  color: var(--text-secondary);
}

.settings-label {
  margin: 0 4px 8px;
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-secondary);
}

.settings-card {
  margin-bottom: 22px;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-soft);
}

.settings-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 12px 14px;
  border: none;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: start;
}

button.settings-row {
  cursor: pointer;
}

button.settings-row:hover,
button.settings-row:focus-visible {
  background: var(--primary-light);
}

.settings-row + .settings-row {
  border-top: 1px solid var(--border);
}

.settings-icon {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border-radius: 10px;
  background: var(--primary-light);
  color: var(--primary);
}

.settings-icon svg {
  width: 18px;
  height: 18px;
}

.settings-icon.is-danger {
  background: var(--error-light);
  color: var(--error);
}

.settings-row-text {
  flex: 1;
  min-width: 0;
}

.settings-row-text strong {
  display: block;
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  color: var(--text-primary);
}

.settings-row-text span {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  color: var(--text-secondary);
}

.settings-row.is-danger strong {
  color: var(--error);
}

.settings-chevron {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--text-secondary);
}

[dir="rtl"] .settings-chevron,
[dir="rtl"] .settings-back svg {
  transform: scaleX(-1);
}

.settings-lang {
  display: inline-flex;
  flex-shrink: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 10px;
}

.settings-lang button {
  min-width: 84px;
  height: 34px;
  padding: 0 12px;
  border: none;
  background: #ffffff;
  color: var(--text-secondary);
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.settings-lang button.is-active {
  background: var(--primary);
  color: #ffffff;
}

.settings-status {
  margin: 0 0 16px;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 13px;
}

.settings-status.is-error {
  background: var(--error-light);
  color: var(--error);
}

.settings-privacy-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
}

.settings-back {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
  color: var(--primary);
  cursor: pointer;
}

.settings-back svg {
  width: 18px;
  height: 18px;
}

.settings-privacy-head h2 {
  font-family: var(--font-display);
  font-size: 24px;
  color: var(--primary-dark);
}

.settings-privacy-body {
  max-width: 720px;
  padding: 22px;
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-soft);
}

.settings-privacy-body h3 {
  margin-bottom: 10px;
  font-family: var(--font-heading);
  font-size: 18px;
  color: var(--text-primary);
}

.settings-privacy-body p {
  margin-top: 12px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--text-secondary);
}

.settings-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(15, 51, 112, 0.4);
}

.settings-modal-card {
  width: min(420px, 100%);
  padding: 22px;
  background: #ffffff;
  border-radius: 18px;
  box-shadow: 0 16px 40px rgba(15, 51, 112, 0.2);
}

.settings-modal-card h3 {
  font-family: var(--font-heading);
  font-size: 18px;
  color: var(--primary-dark);
}

.settings-modal-card p {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text-secondary);
}

.settings-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 20px;
}

.settings-modal-actions button {
  min-height: 40px;
  height: auto;
  padding: 8px 16px;
  border-radius: 12px;
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
}

.settings-btn-ghost {
  border: none;
  background: transparent;
  color: var(--text-hint);
}

.settings-btn-danger {
  border: none;
  background: var(--error);
  color: #ffffff;
}

.settings-btn-danger:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.cancel-modal-card {
  width: min(460px, 100%);
}

.cancel-reasons {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 14px;
}

.cancel-reason {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(22, 71, 157, 0.16);
  border-radius: 12px;
  font-size: 14px;
  color: var(--text-primary);
  cursor: pointer;
}

.cancel-reason:has(input:checked) {
  border-color: var(--primary);
  background: var(--primary-light);
}

.cancel-reason input {
  accent-color: var(--primary);
}

.cancel-other {
  width: 100%;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(22, 71, 157, 0.16);
  border-radius: 12px;
  font: inherit;
  font-size: 14px;
  resize: vertical;
}

.cancel-error {
  margin-top: 10px;
  font-size: 13px;
  color: var(--error);
}

@media (max-width: 700px) {
  .settings-head h2 {
    font-size: 26px;
  }

  .settings-row {
    flex-wrap: wrap;
  }

  .settings-lang {
    width: 100%;
  }

  .settings-lang button {
    flex: 1;
  }
}

/* =========================
   DEPARTMENTS
   ========================= */

.depts-head {
  margin-bottom: 18px;
}

.depts-head h2 {
  font-family: var(--font-display);
  font-size: 32px;
  color: var(--primary-dark);
}

.depts-head p {
  margin-top: 4px;
  font-size: 14px;
  color: var(--text-secondary);
}

.depts-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
}

.depts-search {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
  height: 46px;
  padding: 0 14px;
  background: #ffffff;
  border: 1.5px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--shadow-soft);
  color: var(--text-secondary);
}

.depts-search svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.depts-search input {
  flex: 1;
  min-width: 0;
  border: none;
  outline: none;
  background: transparent;
  font-size: 14px;
  color: var(--text-primary);
}

.depts-search input::placeholder {
  color: var(--text-hint);
}

.depts-sort {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 46px;
  padding: 0 14px;
  background: #ffffff;
  border: 1.5px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--shadow-soft);
  color: var(--text-secondary);
  flex-shrink: 0;
}

.depts-sort span {
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
}

.depts-sort select {
  border: none;
  outline: none;
  background: transparent;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  color: var(--primary-dark);
  cursor: pointer;
}

.depts-section {
  margin-bottom: 26px;
}

.depts-section h3 {
  margin-bottom: 12px;
  font-family: var(--font-heading);
  font-size: 18px;
  color: var(--primary-dark);
}

.depts-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.dept-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  min-height: 132px;
  padding: 18px 16px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
  text-align: start;
  cursor: pointer;
  color: inherit;
  font: inherit;
}

.dept-card:hover,
.dept-card:focus-visible {
  border-color: var(--primary);
  box-shadow: 0 6px 16px rgba(22, 71, 157, 0.12);
}

.dept-card-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: var(--primary-light);
  color: var(--primary);
}

.dept-card-icon svg {
  width: 22px;
  height: 22px;
}

.dept-card strong {
  font-family: var(--font-heading);
  font-size: 16px;
  font-weight: 700;
  color: var(--text-primary);
}

.dept-card small {
  font-size: 13px;
  color: var(--text-secondary);
}

.dept-card-view {
  margin-top: auto;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  color: var(--primary);
}

.dept-card.is-featured {
  min-height: 168px;
}

.depts-empty {
  margin: 8px 0 0;
  font-size: 14px;
  color: var(--text-secondary);
}

@media (max-width: 900px) {
  .depts-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .depts-head h2 {
    font-size: 26px;
  }
}

@media (max-width: 640px) {
  .depts-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .depts-grid {
    grid-template-columns: 1fr;
  }
}

[dir="rtl"] .dept-card-view span {
  display: inline-block;
  transform: scaleX(-1);
}

/* =========================
   PROFILE
   ========================= */

.profile-page {
  max-width: 1080px;
  margin: 8px 0 24px;
  padding: 20px 28px 32px;
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 12px;
}

.profile-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 22px;
}

.profile-head h2 {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 26px;
  font-weight: 700;
  color: var(--text-primary);
}

.profile-save {
  min-width: 88px;
  height: 36px;
  padding: 0 18px;
  border: none;
  border-radius: 4px;
  background: #1aa3e8;
  color: #ffffff;
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.profile-save:hover {
  background: #1593d2;
}

.profile-save:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.profile-status {
  margin: 0 0 16px;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--success-light);
  color: var(--success);
  font-size: 13px;
}

.profile-status.is-error {
  background: var(--error-light);
  color: var(--error);
}

.profile-top {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(240px, 1fr);
  gap: 20px 32px;
  margin-bottom: 22px;
}

.profile-photo-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 6px;
}

.profile-avatar {
  width: 72px;
  height: 72px;
  flex-shrink: 0;
  border-radius: 50%;
  background: #d1d5db center / cover no-repeat;
  cursor: pointer;
}

.profile-avatar:focus-visible {
  outline: 2px solid #1aa3e8;
  outline-offset: 2px;
}

.profile-photo-copy p {
  margin: 0 0 4px;
  font-size: 13px;
  color: var(--text-secondary);
}

.profile-label {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: #4b5563;
}

.profile-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.profile-req {
  margin-left: 2px;
  color: var(--error);
}

[dir="rtl"] .profile-req {
  margin-left: 0;
  margin-right: 2px;
}

.profile-link {
  border: none;
  padding: 0;
  background: none;
  color: #1aa3e8;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.profile-link:hover {
  text-decoration: underline;
}

.profile-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px 20px;
}

.profile-span-2 {
  grid-column: span 2;
}

.profile-section {
  grid-column: 1 / -1;
  margin: 10px 0 0;
  font-family: var(--font-heading);
  font-size: 16px;
  font-weight: 700;
  color: #6b7280;
}

.profile-field input,
.profile-select {
  width: 100%;
  height: 40px;
  margin-top: 6px;
  padding: 0 12px;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  background: #ffffff;
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: 14px;
}

.profile-field input:focus,
.profile-select:focus {
  outline: none;
  border-color: #1aa3e8;
}

.profile-field input.is-locked {
  background: #f3f4f6;
  color: var(--text-secondary);
}

.profile-select {
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%236b7280' d='M1 1l5 6 5-6'/></svg>");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 32px;
}

[dir="rtl"] .profile-select {
  background-position: left 12px center;
  padding-right: 12px;
  padding-left: 32px;
}

@media (max-width: 900px) {
  .profile-page {
    padding: 16px 16px 24px;
  }

  .profile-top,
  .profile-grid {
    grid-template-columns: 1fr;
  }

  .profile-span-2 {
    grid-column: span 1;
  }
}

