/* Theme variables and dark-mode overrides */
:root {
  --bg: #f3f4f6;
  --text: #1f2937;
  --muted: #6b7280;
  --card: #ffffff;
  --card-muted: #f9fafb;
  --border: #e5e7eb;
  --primary: #0b2f56;
  --primary-hover: #0c3660;
  --accent: #667eea;
  --accent-hover: #5a67d8;
  --success-bg: #d1fae5;
  --success-text: #065f46;
  --danger-bg: #fee2e2;
  --danger-text: #991b1b;
}

html[data-theme="dark"] {
  --bg: #0b1220;
  --text: #e5e7eb;
  --muted: #9ca3af;
  --card: #0f172a;
  --card-muted: #111827;
  --border: #1f2937;
  --primary: #1e3a8a;
  --primary-hover: #1d4ed8;
  --accent: #818cf8;
  --accent-hover: #6366f1;
  --success-bg: #064e3b;
  --success-text: #a7f3d0;
  --danger-bg: #7f1d1d;
  --danger-text: #fecaca;
}

/* Global helpers to gently override inline styles across pages */
body { background-color: var(--bg); color: var(--text); }

/* Index page common elements */
.form-container { background-color: var(--card) !important; }
.input-group label { color: var(--text) !important; }
.input-group .input-wrapper,
.phone-input-wrapper { border-color: var(--border) !important; background-color: var(--card-muted) !important; }
.input-group .input-wrapper:focus-within,
.phone-input-wrapper:focus-within { border-color: var(--muted) !important; background-color: var(--card) !important; }
.country-selector { background-color: var(--card-muted) !important; border-color: var(--border) !important; }
.country-dropdown { background: var(--card) !important; border-color: var(--border) !important; }
.divider { color: var(--muted) !important; }
.loading-content { background: var(--card) !important; }

.button.primary-button { background-color: var(--primary) !important; }
.button.primary-button:hover { background-color: var(--primary-hover) !important; }
.button.small-button { background-color: var(--card) !important; color: var(--text) !important; border-color: var(--border) !important; }
.button.small-button:hover { background-color: var(--card-muted) !important; }

.success-message { background-color: var(--success-bg) !important; color: var(--success-text) !important; }
.error-message { background-color: var(--danger-bg) !important; color: var(--danger-text) !important; }

/* Dashboard overrides */
.header { color: #fff; }
html[data-theme="dark"] .header { background: rgba(0,0,0,0.35) !important; }
.info-card { background: var(--card) !important; }
.info-label { color: var(--muted) !important; }
.info-value { color: var(--text) !important; }
.jwt-token { background: var(--card-muted) !important; border-color: var(--border) !important; color: var(--muted) !important; }
.jwt-json { background: #0b1220 !important; color: #e5e7eb !important; }

/* Floating settings widget */
.app-settings { position: fixed; top: 12px; right: 12px; z-index: 10000; display: flex; gap: 8px; align-items: center; background: var(--card); color: var(--text); border: 1px solid var(--border); border-radius: 10px; padding: 6px 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.12); }
.app-settings select, .app-settings button { background: var(--card); color: var(--text); border: 1px solid var(--border); border-radius: 8px; padding: 4px 8px; cursor: pointer; }
.app-settings button:hover { background: var(--card-muted); }

/* Collapsible behavior */
.app-settings .settings-toggle { font-size: 14px; line-height: 1; padding: 6px 8px; border-radius: 8px; }
.app-settings .panel { display: none; gap: 8px; align-items: center; }
.app-settings.collapsed { padding: 6px; gap: 4px; }
.app-settings.collapsed .panel { display: none; }
.app-settings:not(.collapsed) .panel { display: flex; }
