/* IRIS Dental + TailAdmin 2.4.0 adapter. */
html { background: #f9fafb; }
body {
  margin: 0 !important;
  padding: 0 !important;
  min-width: 320px;
  background: #f9fafb !important;
  color: #1d2939;
}
body:not(.iris-authenticated) .ta-wrap {
  max-width: 520px;
  padding: 32px 18px 64px;
}
body.iris-authenticated .ta-wrap {
  width: 100%;
  max-width: none;
  padding: 0 24px 48px;
}
body.iris-authenticated .ta-wrap > h1,
body.iris-authenticated .ta-wrap > h1 + .ta-hint { display: none; }
.iris-shell { min-height: 100vh; background: #f9fafb; }
.iris-content { min-width: 0; width: 100%; background: #f9fafb; }
body.iris-authenticated .iris-sidebar {
  background: #fff !important;
  color: #344054 !important;
  border-right: 1px solid #eaecf0;
  box-shadow: none !important;
  padding: 24px 16px !important;
}
body.iris-authenticated .iris-brand {
  padding: 0 8px 24px !important;
  border-bottom: 1px solid #f2f4f7;
  margin-bottom: 16px;
}
body.iris-authenticated .iris-brand-name { color: #101828 !important; }
body.iris-authenticated .iris-brand-subtitle { color: #667085 !important; }
body.iris-authenticated .iris-nav-link {
  min-height: 44px;
  border-radius: 8px;
  color: #475467 !important;
  font-weight: 500;
}
body.iris-authenticated .iris-nav-link:hover,
body.iris-authenticated .iris-nav-link:focus-visible { background: #f2f4f7 !important; color: #101828 !important; }
body.iris-authenticated .iris-nav-link.is-active { background: #f4f3ff !important; color: #6938ef !important; }
.ta-topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  min-height: 72px;
  margin: 0 -24px 24px;
  padding: 0 24px;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid #eaecf0;
  backdrop-filter: blur(10px);
}
.iris-app-heading strong { display: block; color: #101828; font-size: 15px; }
.iris-app-heading span { display: block; margin-top: 2px; color: #667085; font-size: 12px; }
.ta-card {
  background: #fff !important;
  border: 1px solid #eaecf0 !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 2px rgba(16,24,40,.04);
  padding: 20px !important;
}
.ta-card h2, .ta-card h3 { color: #101828; }
.ta-hint { color: #667085 !important; }
input[type="text"], input[type="email"], input[type="password"],
input[type="search"], input[type="number"], select, textarea {
  background: #fff;
  color: #101828;
  border: 1px solid #d0d5dd !important;
  border-radius: 8px !important;
  min-height: 42px;
  box-shadow: 0 1px 2px rgba(16,24,40,.04);
}
input:focus, select:focus, textarea:focus, button:focus-visible, a:focus-visible {
  outline: 2px solid #7f56d9 !important;
  outline-offset: 2px;
}
.ta-btn-primary { background: #7f56d9 !important; color: #fff !important; border-radius: 8px !important; }
.ta-btn-secondary {
  background: #fff !important;
  color: #344054 !important;
  border: 1px solid #d0d5dd !important;
  border-radius: 8px !important;
}
.ta-logout { color: #475467 !important; text-decoration: none !important; border: 1px solid #d0d5dd; border-radius: 8px; padding: 8px 12px; }
.iris-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-left: auto;
  border: 1px solid #d0d5dd;
  border-radius: 10px;
  background: #fff;
  color: #344054;
}
.iris-theme-toggle svg { width: 18px; height: 18px; }
.iris-topbar-actions { display: flex; align-items: center; gap: 10px; }
.iris-dental-pagehead {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin: 4px 0 20px;
}
.iris-dental-pagehead h2 { margin: 0; font-size: 24px; color: #101828; }
.iris-dental-pagehead p { margin: 6px 0 0; color: #667085; }
.iris-table-wrap { overflow-x: auto; border: 1px solid #eaecf0; border-radius: 12px; }
.iris-table { width: 100%; min-width: 760px; border-collapse: collapse; }
.iris-table th, .iris-table td {
  padding: 12px 16px;
  border-bottom: 1px solid #eaecf0;
  text-align: left;
}
.iris-table th {
  background: #f9fafb;
  color: #667085;
  font-size: 12px;
  font-weight: 600;
}
.iris-table td { color: #344054; font-size: 13px; }
.iris-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 20px;
}
.iris-kpi { background: #fff; border: 1px solid #eaecf0; border-radius: 16px; padding: 18px; }
.iris-kpi-label { color: #667085; font-size: 12px; font-weight: 600; }
.iris-kpi-value { margin-top: 8px; color: #101828; font-size: 26px; font-weight: 700; }
.iris-empty { padding: 36px 20px; text-align: center; color: #667085; }
html.dark, html.dark body, html.dark .iris-shell, html.dark .iris-content {
  background: #101828 !important;
  color: #f2f4f7;
}
html.dark body.iris-authenticated .iris-sidebar,
html.dark .ta-card,
html.dark .iris-kpi,
html.dark .ta-topbar {
  background: #1d2939 !important;
  border-color: #344054 !important;
}
html.dark body.iris-authenticated .iris-brand { border-color: #344054; }
html.dark body.iris-authenticated .iris-brand-name,
html.dark .iris-app-heading strong,
html.dark .ta-card h2,
html.dark .ta-card h3,
html.dark .iris-dental-pagehead h2,
html.dark .iris-kpi-value { color: #f9fafb !important; }
html.dark .ta-hint, html.dark .iris-app-heading span,
html.dark .iris-dental-pagehead p, html.dark .iris-kpi-label { color: #98a2b3 !important; }
html.dark body.iris-authenticated .iris-nav-link { color: #d0d5dd !important; }
html.dark body.iris-authenticated .iris-nav-link:hover,
html.dark body.iris-authenticated .iris-nav-link:focus-visible {
  background: #344054 !important;
  color: #fff !important;
}
html.dark body.iris-authenticated .iris-nav-link.is-active {
  background: rgba(127,86,217,.18) !important;
  color: #d6bbfb !important;
}
html.dark input, html.dark select, html.dark textarea,
html.dark .ta-btn-secondary, html.dark .ta-logout, html.dark .iris-theme-toggle {
  background: #101828 !important;
  color: #f2f4f7 !important;
  border-color: #475467 !important;
}
html.dark .iris-table-wrap, html.dark .iris-table th, html.dark .iris-table td { border-color: #344054; }
html.dark .iris-table th { background: #101828; color: #98a2b3; }
html.dark .iris-table td { color: #e4e7ec; }
@media (max-width: 1100px) { .iris-kpi-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 767px) {
  body.iris-authenticated .ta-wrap { padding: 0 14px 92px; }
  .ta-topbar { margin: 0 -14px 18px; padding: 0 14px; min-height: 64px; }
  .iris-kpi-grid { grid-template-columns: 1fr; }
  .iris-dental-pagehead { flex-direction: column; }
}

.iris-mobile-backdrop { display: none; }
@media (max-width: 767px) {
  body.iris-authenticated .iris-sidebar {
    display: flex !important;
    position: fixed !important;
    inset: 0 auto 0 0;
    z-index: 1002;
    width: min(86vw, 320px) !important;
    height: 100dvh;
    transform: translateX(-105%);
    transition: transform .2s ease;
    overflow-y: auto;
  }
  body.iris-authenticated.iris-mobile-menu-open .iris-sidebar {
    transform: translateX(0);
  }
  body.iris-authenticated .iris-mobile-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1001;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(16,24,40,.48);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .2s ease, visibility .2s ease;
  }
  body.iris-authenticated.iris-mobile-menu-open .iris-mobile-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  body.iris-authenticated .iris-bottomnav-list {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
  body.iris-authenticated .iris-bottomnav-link {
    width: 100%;
    min-width: 0;
    justify-content: center;
    background: transparent;
  }
}

.iris-inline-remove {
  margin-left: 8px;
  padding: 0 2px;
  border: 0;
  background: transparent;
  color: inherit;
  font-size: 16px;
  line-height: 1;
}
.iris-report-group {
  padding: 14px 0;
  border-bottom: 1px solid #eaecf0;
}
.iris-report-group:last-child { border-bottom: 0; }
.iris-report-group h3 { margin: 0 0 8px; font-size: 14px; }
.iris-report-line {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 6px 0;
  color: #475467;
}
.iris-report-line strong { color: #101828; }
html.dark .iris-report-group { border-color: #344054; }
html.dark .iris-report-line { color: #98a2b3; }
html.dark .iris-report-line strong { color: #f9fafb; }


/* -------------------------------------------------------------------------
   Authentication theme — shared by every IRIS login/account entry screen.
   This intentionally lives after TailAdmin so light/dark contrast is stable
   for password, magic link, register, forgot, reset and activation screens.
   ------------------------------------------------------------------------- */
body:not(.iris-authenticated) #ta-lock-screen.iris-login-card,
body:not(.iris-authenticated) .iris-auth-view.iris-login-card {
  width: 100%;
  max-width: 430px;
  margin: clamp(34px, 9vh, 90px) auto 0;
  padding: 28px 22px 24px !important;
  border: 1px solid #e4e7ec !important;
  border-radius: 24px !important;
  background: rgba(255, 255, 255, .98) !important;
  color: #101828;
  box-shadow: 0 24px 60px rgba(16, 24, 40, .10), 0 4px 14px rgba(16, 24, 40, .05);
}

body:not(.iris-authenticated) .iris-login-card .iris-login-brand {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 30px;
}

body:not(.iris-authenticated) .iris-login-card .iris-login-logo {
  display: grid;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 15px;
  color: #fff;
  box-shadow: 0 10px 24px rgba(109, 92, 246, .24);
  font-size: 15px;
  font-weight: 700;
}

body:not(.iris-authenticated) #ta-lock-screen .iris-login-name,
body:not(.iris-authenticated) .iris-auth-view .iris-login-name {
  color: #101828;
  font-size: 21px;
  font-weight: 700;
}

body:not(.iris-authenticated) #ta-lock-screen .iris-login-subtitle,
body:not(.iris-authenticated) .iris-auth-view .iris-login-subtitle {
  margin-top: 3px;
  color: #667085;
  font-size: 12px;
}

body:not(.iris-authenticated) #ta-lock-screen .iris-login-label,
body:not(.iris-authenticated) .iris-auth-view .iris-login-label {
  display: block;
  margin: 16px 0 7px;
  color: #344054;
  font-size: 13px;
  font-weight: 600;
}

body:not(.iris-authenticated) .iris-login-card .iris-login-input {
  width: 100%;
  min-height: 50px;
  padding: 0 14px;
  border: 1px solid #d0d5dd !important;
  border-radius: 13px !important;
  background: #f9fafb !important;
  color: #101828 !important;
  caret-color: #7f56d9;
  font-size: 16px;
  outline: none;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}

body:not(.iris-authenticated) .iris-login-card .iris-login-input::placeholder {
  color: #98a2b3;
  opacity: 1;
}

body:not(.iris-authenticated) .iris-login-card .iris-login-input:focus {
  border-color: #7f56d9 !important;
  background: #fff !important;
  outline: 2px solid #7f56d9 !important;
  outline-offset: 1px;
  box-shadow: 0 0 0 4px rgba(127, 86, 217, .12);
}

body:not(.iris-authenticated) .iris-login-card .ta-actions {
  margin-top: 24px;
}

body:not(.iris-authenticated) .iris-login-card .iris-login-btn {
  width: 100%;
  min-height: 52px;
  padding: 0 24px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(135deg, #7f56d9, #6938ef) !important;
  color: #fff !important;
  box-shadow: 0 12px 26px rgba(109, 92, 246, .22);
  font-size: 15px;
  font-weight: 700;
}

body:not(.iris-authenticated) .iris-login-card .iris-login-btn:hover {
  background: linear-gradient(135deg, #6941c6, #5925dc) !important;
}

body:not(.iris-authenticated) .iris-login-card .iris-login-btn:active {
  transform: scale(.985);
}

body:not(.iris-authenticated) .iris-login-card .iris-login-link {
  color: #6938ef;
  background: transparent !important;
}

body:not(.iris-authenticated) .iris-login-card .iris-login-link:hover {
  color: #5925dc;
}

body:not(.iris-authenticated) .iris-login-card .iris-login-links-sep,
body:not(.iris-authenticated) .iris-login-card .iris-login-or {
  color: #667085;
}

body:not(.iris-authenticated) .iris-login-card .iris-login-or::before,
body:not(.iris-authenticated) .iris-login-card .iris-login-or::after {
  background: #e4e7ec;
}

/* Follow the real OS/user theme. */
html.dark { color-scheme: dark; }

html.dark body:not(.iris-authenticated) #ta-lock-screen.iris-login-card,
html.dark body:not(.iris-authenticated) .iris-auth-view.iris-login-card {
  background: #1d2939 !important;
  border-color: #344054 !important;
  color: #f9fafb !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .30), 0 4px 14px rgba(0, 0, 0, .18);
}

html.dark body:not(.iris-authenticated) #ta-lock-screen .iris-login-name,
html.dark body:not(.iris-authenticated) .iris-auth-view .iris-login-name,
html.dark body:not(.iris-authenticated) #ta-lock-screen .iris-login-title,
html.dark body:not(.iris-authenticated) .iris-auth-view .iris-login-title,
html.dark body:not(.iris-authenticated) #ta-lock-screen .iris-login-label,
html.dark body:not(.iris-authenticated) .iris-auth-view .iris-login-label {
  color: #f9fafb !important;
}

html.dark body:not(.iris-authenticated) #ta-lock-screen .iris-login-subtitle,
html.dark body:not(.iris-authenticated) .iris-auth-view .iris-login-subtitle,
html.dark body:not(.iris-authenticated) .iris-login-card .ta-hint {
  color: #cbd5e1 !important;
}

html.dark body:not(.iris-authenticated) .iris-login-card .iris-login-input {
  background: #101828 !important;
  color: #f9fafb !important;
  border-color: #475467 !important;
  caret-color: #d6bbfb;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .18);
}

html.dark body:not(.iris-authenticated) .iris-login-card .iris-login-input::placeholder {
  color: #98a2b3 !important;
  opacity: 1;
}

html.dark body:not(.iris-authenticated) .iris-login-card .iris-login-input:focus {
  background: #101828 !important;
  border-color: #b692f6 !important;
  outline-color: #b692f6 !important;
  box-shadow: 0 0 0 4px rgba(182, 146, 246, .18);
}

/* Safari/Chrome autofill must not flash a light field on a dark login. */
html.dark body:not(.iris-authenticated) .iris-login-card .iris-login-input:-webkit-autofill,
html.dark body:not(.iris-authenticated) .iris-login-card .iris-login-input:-webkit-autofill:hover,
html.dark body:not(.iris-authenticated) .iris-login-card .iris-login-input:-webkit-autofill:focus {
  -webkit-text-fill-color: #f9fafb !important;
  -webkit-box-shadow: 0 0 0 1000px #101828 inset !important;
  caret-color: #d6bbfb;
  transition: background-color 9999s ease-out 0s;
}

html.dark body:not(.iris-authenticated) .iris-login-card .iris-login-btn {
  background: linear-gradient(135deg, #7f56d9, #6938ef) !important;
  color: #fff !important;
  box-shadow: 0 12px 28px rgba(105, 56, 239, .30);
}

html.dark body:not(.iris-authenticated) .iris-login-card .iris-login-btn:hover {
  background: linear-gradient(135deg, #9e77ed, #7f56d9) !important;
}

html.dark body:not(.iris-authenticated) .iris-login-card .iris-login-link {
  color: #d6bbfb !important;
}

html.dark body:not(.iris-authenticated) .iris-login-card .iris-login-link:hover {
  color: #e9d7fe !important;
}

html.dark body:not(.iris-authenticated) .iris-login-card .iris-login-links-sep,
html.dark body:not(.iris-authenticated) .iris-login-card .iris-login-or {
  color: #98a2b3 !important;
}

html.dark body:not(.iris-authenticated) .iris-login-card .iris-login-or::before,
html.dark body:not(.iris-authenticated) .iris-login-card .iris-login-or::after {
  background: #475467 !important;
}

html.dark body:not(.iris-authenticated) .iris-login-card .ta-message.ta-error {
  background: #451a1a !important;
  color: #fecaca !important;
}

html.dark body:not(.iris-authenticated) .iris-login-card .ta-message.ta-success {
  background: #123524 !important;
  color: #bbf7d0 !important;
}

html.dark body:not(.iris-authenticated) .iris-login-card .ta-message.ta-info {
  background: #172554 !important;
  color: #bfdbfe !important;
}

@media (max-width: 480px) {
  body:not(.iris-authenticated) #ta-lock-screen.iris-login-card,
  body:not(.iris-authenticated) .iris-auth-view.iris-login-card {
    margin-top: 18px;
    padding: 24px 18px 22px !important;
    border-radius: 20px !important;
  }
}

.iris-skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 2000;
  transform: translateY(-160%);
  padding: 10px 14px;
  border-radius: 8px;
  background: #101828;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  transition: transform .15s ease;
}
.iris-skip-link:focus,
.iris-skip-link:focus-visible {
  transform: translateY(0);
  outline: 2px solid #7f56d9;
  outline-offset: 2px;
}
#main-content:focus { outline: none; }
@media (prefers-reduced-motion: reduce) {
  .iris-skip-link { transition: none; }
}

/* Bloque 6 — consentimientos legales del alta. */
.iris-register-legal {
  display: grid;
  gap: 12px;
  margin: 20px 0 4px;
}
.iris-register-consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--border-color, #d0d5dd);
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.5;
}
.iris-register-consent input {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  margin: 1px 0 0;
  accent-color: var(--iris-accent, #174a91);
}
.iris-register-consent a {
  color: var(--iris-accent, #174a91);
  font-weight: 650;
}
.iris-register-consent input:focus-visible,
.iris-register-consent a:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 3px;
}
html.dark .iris-register-consent {
  border-color: #344054;
}
