/* RAM Boutique - Luxury Light Theme Login Experience */
html[data-ram-login-glass] {
  color-scheme: light !important;
  background: #f8fafc !important;
  font-family: inherit;
}

html[data-ram-login-glass] body {
  background: #f8fafc !important;
  color: #0f172a !important;
  margin: 0;
  padding: 0;
}

/* Hide old dark atmosphere */
.ram-login-atmosphere {
  display: none !important;
}

/* Login Page Layout */
html[data-ram-login-glass="staff"] .login-page,
.login-page {
  min-height: 100svh !important;
  background: #f8fafc !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  grid-template-columns: 1fr !important;
  padding: 1.5rem 1rem !important;
  margin: 0 auto !important;
  width: 100% !important;
  max-width: 100vw !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
}

/* Art Section: Hidden for Clean Focused Login */
html[data-ram-login-glass="staff"] .login-art,
.login-art {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  position: absolute !important;
  pointer-events: none !important;
}

/* Panel & Card: Light Luxury Glass */
html[data-ram-login-glass="staff"] .login-panel,
.login-panel {
  background: transparent !important;
  backdrop-filter: none !important;
  width: 100% !important;
  max-width: 380px !important;
  min-height: auto !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

html[data-ram-login-glass="staff"] .login-card,
.login-card {
  width: 100% !important;
  max-width: 380px !important;
  margin: 0 auto !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 24px !important;
  box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.05), 0 0 1px 1px rgba(0, 0, 0, 0.02) !important;
  padding: 1.5rem 1.15rem !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  text-align: center !important;
  color: #0f172a !important;
}

/* Typography & General Colors */
html[data-ram-login-glass="staff"] .login-card,
html[data-ram-login-glass="staff"] .login-card :is(h1, h2, h3, p, span, strong, small, label) {
  color: #0f172a !important;
}

/* Brand Lockup */
html[data-ram-login-glass="staff"] .login-card .brand-lockup,
html[data-ram-login-glass="staff"] .login-card .brand-lockup.dark {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  margin-bottom: 1.4rem !important;
  color: #0f172a !important;
}

html[data-ram-login-glass="staff"] .login-card img.login-logo {
  display: block !important;
  margin: 0 auto 0.75rem !important;
  filter: brightness(0) !important;
  opacity: 0.95 !important;
  max-width: 140px !important;
  height: auto !important;
}

html[data-ram-login-glass="staff"] .login-card .brand-lockup strong {
  font-size: 1.15rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.05em !important;
  color: #0f172a !important;
  display: block !important;
}

html[data-ram-login-glass="staff"] .login-card .brand-lockup small {
  font-size: 0.8rem !important;
  color: #64748b !important;
  display: block !important;
  margin-top: 2px !important;
}

/* Tabs: Light Segmented Control */
html[data-ram-login-glass="staff"] .login-mode-tabs {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 4px !important;
  background: #f1f5f9 !important;
  padding: 4px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 14px !important;
  margin-bottom: 1.5rem !important;
}

html[data-ram-login-glass="staff"] .login-mode-tabs button {
  border: 0 !important;
  background: transparent !important;
  color: #64748b !important;
  font-size: 0.86rem !important;
  font-weight: 600 !important;
  padding: 0.65rem 0.5rem !important;
  border-radius: 10px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

html[data-ram-login-glass="staff"] .login-mode-tabs button.active {
  background: #ffffff !important;
  color: #0f172a !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
}

/* Headings & Captions */
html[data-ram-login-glass="staff"] .login-heading {
  margin-bottom: 1.25rem !important;
  text-align: center !important;
}

html[data-ram-login-glass="staff"] .login-heading span {
  display: inline-block !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  color: #d4af37 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 0.25rem !important;
  background: #fefce8 !important;
  padding: 3px 10px !important;
  border-radius: 20px !important;
  border: 1px solid #fef08a !important;
}

html[data-ram-login-glass="staff"] .login-heading h2 {
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  color: #0f172a !important;
  margin: 0.35rem 0 0.4rem !important;
}

html[data-ram-login-glass="staff"] .login-heading p {
  font-size: 0.85rem !important;
  line-height: 1.5 !important;
  color: #64748b !important;
  margin: 0 !important;
}

/* Inputs & Labels */
html[data-ram-login-glass="staff"] label {
  display: flex !important;
  flex-direction: column !important;
  text-align: right !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  color: #334155 !important;
  gap: 0.4rem !important;
  margin-bottom: 1rem !important;
}

html[data-ram-login-glass="staff"] input {
  height: 48px !important;
  padding: 0 1rem !important;
  background: #ffffff !important;
  border: 1.5px solid #cbd5e1 !important;
  border-radius: 12px !important;
  color: #0f172a !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  box-sizing: border-box !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
}

html[data-ram-login-glass="staff"] input:focus {
  border-color: #d4af37 !important;
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15) !important;
  outline: none !important;
}

html[data-ram-login-glass="staff"] input::placeholder {
  color: #94a3b8 !important;
}

/* Primary Action Buttons */
html[data-ram-login-glass="staff"] button.primary,
html[data-ram-login-glass="staff"] button[type="submit"].primary,
html[data-ram-login-glass="staff"] .ram-submit-btn {
  height: 48px !important;
  width: 100% !important;
  background: #0f172a !important;
  color: #ffffff !important;
  border: 0 !important;
  border-radius: 12px !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  cursor: pointer !important;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15) !important;
  transition: all 0.2s ease !important;
  margin-top: 0.5rem !important;
}

html[data-ram-login-glass="staff"] button.primary:hover,
html[data-ram-login-glass="staff"] .ram-submit-btn:hover {
  background: #1e293b !important;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.2) !important;
  transform: translateY(-1px) !important;
}

html[data-ram-login-glass="staff"] button.primary:disabled,
html[data-ram-login-glass="staff"] .ram-submit-btn:disabled {
  opacity: 0.65 !important;
  cursor: not-allowed !important;
  transform: none !important;
}

/* Demo Warning / Trust Badge */
html[data-ram-login-glass="staff"] .demo-warning {
  margin-top: 1rem !important;
  font-size: 0.78rem !important;
  line-height: 1.45 !important;
  color: #64748b !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  padding: 0.55rem 0.85rem !important;
  border-radius: 10px !important;
  text-align: center !important;
}

/* PRE-LOADED OTP STEP CONTAINER */
.ram-optimistic-login {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.ram-step-panel {
  width: 100%;
  display: flex;
  flex-direction: column;
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.ram-step-panel[hidden] {
  display: none !important;
}

/* Phone confirmed badge in Step 2 */
.ram-phone-badge {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 0.45rem 0.85rem;
  margin-bottom: 1.1rem;
  font-size: 0.85rem;
  color: #334155;
  width: 100%;
  box-sizing: border-box;
}

.ram-phone-badge b {
  font-family: monospace;
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  color: #0f172a;
}

.ram-phone-edit-btn {
  background: transparent;
  border: 0;
  color: #d4af37;
  font-weight: 700;
  font-size: 0.78rem;
  cursor: pointer;
  padding: 2px 6px;
  text-decoration: underline;
}

/* OTP Code 6-Digit Luxury Input */
.ram-otp-code-input {
  height: 56px !important;
  font-size: 1.6rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.45em !important;
  text-align: center !important;
  direction: ltr !important;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace !important;
  border: 2px solid #cbd5e1 !important;
  border-radius: 14px !important;
  background: #fcfcfc !important;
}

.ram-otp-code-input:focus {
  border-color: #d4af37 !important;
  background: #ffffff !important;
}

/* Resend Timer & Button */
.ram-otp-resend-row {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.9rem;
  font-size: 0.82rem;
  color: #64748b;
  min-height: 24px;
}

.ram-otp-resend-btn {
  background: transparent;
  border: 0;
  color: #0f172a;
  font-weight: 700;
  font-size: 0.82rem;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  padding: 4px;
}

.ram-otp-resend-btn:disabled {
  color: #94a3b8;
  cursor: not-allowed;
  text-decoration: none;
}

/* Inline Toast / Status Message */
.ram-login-status-msg {
  font-size: 0.84rem;
  line-height: 1.45;
  padding: 0.6rem 0.9rem;
  border-radius: 10px;
  margin-top: 0.75rem;
  text-align: center;
  font-weight: 500;
  display: none;
}

.ram-login-status-msg.is-visible {
  display: block !important;
}

.ram-login-status-msg.is-error {
  background: #fef2f2 !important;
  border: 1px solid #fecaca !important;
  color: #b91c1c !important;
}

.ram-login-status-msg.is-success {
  background: #f0fdf4 !important;
  border: 1px solid #bbf7d0 !important;
  color: #15803d !important;
}

.ram-login-status-msg.is-info {
  background: #eff6ff !important;
  border: 1px solid #bfdbfe !important;
  color: #1d4ed8 !important;
}

/* Password Reset Trigger & Drawer */
.ram-reset-trigger {
  width: 100%;
  border: 0;
  background: transparent;
  color: #64748b !important;
  font-size: 0.8rem;
  font-weight: 600;
  margin-top: 0.85rem;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  padding: 0.35rem 0;
}

.ram-reset-trigger:hover {
  color: #0f172a !important;
}

.ram-password-reset {
  width: 100%;
  color: #0f172a !important;
}

.ram-password-reset[hidden] {
  display: none !important;
}

.ram-reset-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}

.ram-reset-head h2 {
  font-size: 1.15rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}

.ram-reset-close {
  width: 32px;
  height: 32px;
  border: 1px solid #cbd5e1;
  border-radius: 50%;
  background: #f1f5f9;
  color: #334155;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* Mobile Polish */
@media (max-width: 640px) {
  html[data-ram-login-glass="staff"] .login-page {
    padding: 1rem 0.75rem !important;
  }
  html[data-ram-login-glass="staff"] .login-card {
    padding: 1.5rem 1.15rem !important;
    border-radius: 20px !important;
  }
  html[data-ram-login-glass="staff"] input {
    height: 48px !important;
    font-size: 16px !important; /* Prevents auto zoom */
  }
  .ram-otp-code-input {
    height: 52px !important;
    font-size: 1.45rem !important;
    letter-spacing: 0.35em !important;
  }
}

/* Publication polish: readable RTL forms and visible keyboard navigation. */
html[data-ram-login-glass="staff"] .ram-login-title { margin: 0; font-size: 1.25rem; line-height: 1.5; letter-spacing: .04em; }
html[data-ram-login-glass="staff"] .login-card { max-width: 420px !important; padding: 2rem 1.6rem !important; }
html[data-ram-login-glass="staff"] .login-panel { max-width: 420px !important; }
html[data-ram-login-glass="staff"] .login-card .brand-lockup small { color: #64748b !important; font-size: .8rem !important; }
html[data-ram-login-glass="staff"] .login-heading p { line-height: 1.9 !important; }
html[data-ram-login-glass="staff"] .login-heading span { color: #806219 !important; letter-spacing: 0 !important; }
html[data-ram-login-glass="staff"] :is(button, a):focus-visible { outline: 3px solid #9a761e !important; outline-offset: 4px; }
html[data-ram-login-glass="staff"] button:disabled { opacity: .6; cursor: wait !important; }
html[data-ram-login-glass="staff"] input[aria-invalid="true"] { border-color: #b91c1c !important; }
html[data-ram-login-glass="staff"] :is(.ram-reset-trigger, .ram-phone-edit-btn, .ram-otp-resend-btn) { min-height: 44px; }
html[data-ram-login-glass="staff"] .ram-reset-close { width: 44px; height: 44px; }
html[data-ram-login-glass="staff"] .ram-login-links { display:flex; justify-content:space-between; gap:16px; border-top:1px solid #e2e8f0; padding-top:14px; margin-top:20px; }
html[data-ram-login-glass="staff"] .ram-login-links a { color:#475569; font-size:.75rem; text-decoration:underline; text-underline-offset:4px; min-height:44px; display:inline-flex; align-items:center; }
html[data-ram-login-glass="staff"] .login-mode-tabs button { font-size: .8rem !important; min-height: 48px; }
@media(max-width:640px) { html[data-ram-login-glass="staff"] .login-card { padding:1.5rem 1.15rem !important; } }
@media(prefers-reduced-motion:reduce) { html[data-ram-login-glass="staff"] * { transition:none !important; animation:none !important; } }
