/* ==========================================================
   Tema Clínica Dental — capa de estilos sobre Bootstrap 5
   ========================================================== */

:root {
  --cd-primary: #0f766e;
  --cd-primary-dark: #115e59;
  --cd-primary-light: #14b8a6;
  --cd-primary-soft: #ccfbf1;
  --cd-bg: #f4f7f7;
  --cd-surface: #ffffff;
  --cd-ink: #1e293b;
  --cd-ink-soft: #64748b;
  --cd-border: #e8efed;
  --cd-radius: 14px;
  --cd-shadow: 0 2px 4px rgba(15, 23, 42, .03), 0 14px 32px rgba(15, 23, 42, .07);
  --cd-shadow-lg: 0 8px 30px rgba(15, 23, 42, .12);
}

body {
  font-family: "Nunito", "Plus Jakarta Sans", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  background:
    linear-gradient(180deg, rgba(146, 186, 173, .5) 0%, rgba(203, 226, 218, .32) 230px, rgba(244, 247, 247, 0) 520px),
    radial-gradient(1200px 400px at 80% -100px, rgba(20, 184, 166, .08), transparent),
    var(--cd-bg);
  background-attachment: fixed;
  color: var(--cd-ink);
  font-weight: 300;
  min-height: 100vh;
}
strong, b, th { font-weight: 600; }

h1, h2, h3, h4, h5, h6 { color: var(--cd-ink); letter-spacing: -.02em; font-weight: 700; }

h1.fs-1 { font-size: 1.75rem !important; font-weight: 800 !important; margin-bottom: 1.25rem; }

/* ---------- Navbar ---------- */
.navbar.bg-body-tertiary {
  background: rgba(255, 255, 255, .85) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--cd-border);
  box-shadow: 0 1px 12px rgba(15, 23, 42, .05);
  padding-top: .65rem;
  padding-bottom: .65rem;
}

.navbar-brand {
  font-weight: 800;
  color: var(--cd-primary-dark) !important;
  letter-spacing: -.02em;
  display: flex;
  align-items: center;
  gap: .55rem;
}

.navbar-brand .brand-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--cd-primary-light), var(--cd-primary));
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  box-shadow: 0 3px 10px rgba(15, 118, 110, .35);
}

.navbar .nav-link {
  color: var(--cd-ink-soft);
  font-weight: 600;
  font-size: .925rem;
  border-radius: 10px;
  padding: .5rem .9rem !important;
  margin: 0 .1rem;
  transition: color .15s ease, background-color .15s ease;
}

.navbar .nav-link:hover { color: var(--cd-primary-dark); background: var(--cd-primary-soft); }
.navbar .nav-link.active { color: var(--cd-primary-dark); background: var(--cd-primary-soft); }
.navbar .nav-link i { margin-right: .3rem; opacity: .85; }

.cd-user-chip { color: var(--cd-ink-soft); font-weight: 600; font-size: .9rem; }
.cd-user-chip i { font-size: 1.4rem; color: var(--cd-primary); }
.cd-logout-form { margin-left:.5rem; }
.cd-logout-form button { display:grid; place-items:center; width:36px; height:36px; border:0; border-radius:10px; color:var(--cd-ink-soft); background:transparent; }
.cd-logout-form button:hover { color:#be123c; background:#fff1f2; }

/* ---------- Contenedor principal ---------- */
.container-fluid.p-4 {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}

/* ---------- Tarjetas ---------- */
.card {
  border: 1px solid var(--cd-border);
  border-radius: var(--cd-radius);
  box-shadow: var(--cd-shadow);
  transition: transform .18s ease, box-shadow .18s ease;
}

.card:hover { transform: translateY(-2px); box-shadow: var(--cd-shadow-lg); }

.card .card-body { padding: 1.4rem; }
.card .card-title { font-weight: 700; }

/* Tarjetas azules del sistema → tema claro con acento */
.card.text-bg-primary {
  background: var(--cd-surface) !important;
  color: var(--cd-ink) !important;
  border-top: 4px solid var(--cd-primary-light);
}

.card.text-bg-primary .card-title { color: var(--cd-ink); }
.card.text-bg-primary .card-text { color: var(--cd-ink-soft); }

.card.text-bg-primary .btn-light {
  background: var(--cd-primary);
  border-color: var(--cd-primary);
  color: #fff;
  font-weight: 600;
}

.card.text-bg-primary .btn-light:hover {
  background: var(--cd-primary-dark);
  border-color: var(--cd-primary-dark);
  color: #fff;
}

/* Iconos de tarjetas del dashboard */
.cd-card-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  margin-bottom: .9rem;
  color: #fff;
  background: linear-gradient(135deg, var(--cd-primary-light), var(--cd-primary));
  box-shadow: 0 4px 12px rgba(15, 118, 110, .3);
}

.cd-card-icon.icon-amber { background: linear-gradient(135deg, #fbbf24, #d97706); box-shadow: 0 4px 12px rgba(217, 119, 6, .3); }
.cd-card-icon.icon-sky { background: linear-gradient(135deg, #38bdf8, #0284c7); box-shadow: 0 4px 12px rgba(2, 132, 199, .3); }
.cd-card-icon.icon-violet { background: linear-gradient(135deg, #a78bfa, #7c3aed); box-shadow: 0 4px 12px rgba(124, 58, 237, .3); }
.cd-card-icon.icon-rose { background: linear-gradient(135deg, #fb7185, #e11d48); box-shadow: 0 4px 12px rgba(225, 29, 72, .3); }

/* Accesos rápidos del dashboard */
.cd-shortcut {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: 1rem 1.15rem;
  background: var(--cd-surface);
  border: 1px solid var(--cd-border);
  border-radius: var(--cd-radius);
  box-shadow: var(--cd-shadow);
  color: var(--cd-ink);
  text-decoration: none;
  font-weight: 600;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.cd-shortcut:hover {
  transform: translateY(-2px);
  box-shadow: var(--cd-shadow-lg);
  border-color: var(--cd-primary-light);
  color: var(--cd-primary-dark);
}

.cd-shortcut i {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--cd-primary-soft);
  color: var(--cd-primary-dark);
  font-size: 1rem;
  flex-shrink: 0;
}

/* ---------- Botones ---------- */
.btn { border-radius: 999px; font-weight: 500; padding: .5rem 1.1rem; }

.btn-primary {
  --bs-btn-bg: var(--cd-primary);
  --bs-btn-border-color: var(--cd-primary);
  --bs-btn-hover-bg: var(--cd-primary-dark);
  --bs-btn-hover-border-color: var(--cd-primary-dark);
  --bs-btn-active-bg: var(--cd-primary-dark);
  --bs-btn-active-border-color: var(--cd-primary-dark);
  box-shadow: 0 2px 8px rgba(15, 118, 110, .25);
}

.btn-secondary {
  --bs-btn-bg: #fff;
  --bs-btn-color: var(--cd-ink);
  --bs-btn-border-color: var(--cd-border);
  --bs-btn-hover-bg: var(--cd-bg);
  --bs-btn-hover-color: var(--cd-ink);
  --bs-btn-hover-border-color: var(--cd-border);
  --bs-btn-active-bg: var(--cd-bg);
  --bs-btn-active-color: var(--cd-ink);
  --bs-btn-active-border-color: var(--cd-border);
}

.btn-success {
  --bs-btn-bg: #059669;
  --bs-btn-border-color: #059669;
  --bs-btn-hover-bg: #047857;
  --bs-btn-hover-border-color: #047857;
}

.btn-danger {
  --bs-btn-bg: #e11d48;
  --bs-btn-border-color: #e11d48;
  --bs-btn-hover-bg: #be123c;
  --bs-btn-hover-border-color: #be123c;
}

/* ---------- Tablas ---------- */
.table {
  background: var(--cd-surface);
  border-radius: var(--cd-radius);
  overflow: hidden;
  box-shadow: var(--cd-shadow);
  border: 1px solid var(--cd-border);
  border-collapse: separate;
  border-spacing: 0;
}

.table caption {
  padding: 1rem 0;
  caption-side: top;
}

.table thead th {
  background: #f8fafc;
  color: var(--cd-ink-soft);
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  border-bottom: 1px solid var(--cd-border);
  padding: .85rem 1rem;
}

.table tbody td { padding: .8rem 1rem; border-color: #f1f5f9; }

.table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-bg-type: #fbfdfd; }
.table-hover > tbody > tr:hover > * { --bs-table-bg-state: var(--cd-primary-soft); }

/* ---------- Formularios ---------- */
.form-control, .form-select {
  border-radius: 10px;
  border-color: var(--cd-border);
  padding: .55rem .85rem;
}

.form-control:focus, .form-select:focus {
  border-color: var(--cd-primary-light);
  box-shadow: 0 0 0 .2rem rgba(20, 184, 166, .18);
}

.form-label { font-weight: 600; font-size: .875rem; color: var(--cd-ink); }

/* Etiquetas compactas sobre el borde de campos generados por formularios */
form .mb-3:has(> .form-control),
form .mb-3:has(> .form-select) { position:relative; padding-top:.4rem; }
form .mb-3:has(> .form-control) > .form-label,
form .mb-3:has(> .form-select) > .form-label { position:absolute; z-index:2; top:.05rem; left:.72rem; margin:0; padding:0 .32rem; color:var(--cd-ink-soft); background:#fff; font-size:.66rem; font-weight:800; line-height:1; }
form .mb-3:has(> .form-control) > .form-control,
form .mb-3:has(> .form-select) > .form-select { min-height:46px; padding:.72rem .85rem .55rem; border-width:1.5px; font-size:.82rem; }
form .mb-3:has(> .form-control:focus) > .form-label,
form .mb-3:has(> .form-select:focus) > .form-label { color:var(--cd-primary); }
form .mb-3:has(> .is-invalid) > .form-label { color:#be123c; }

.cd-login-form > div { position:relative; padding-top:.4rem; }
.cd-login-form > div > .form-label { position:absolute; z-index:3; top:.05rem; left:.72rem; margin:0; padding:0 .32rem; color:var(--cd-ink-soft); background:#fff; font-size:.66rem; font-weight:800; line-height:1; }
.cd-login-form > div:focus-within > .form-label { color:var(--cd-primary); }

/* ---------- Dropdowns ---------- */
.dropdown-menu {
  border: 1px solid var(--cd-border);
  border-radius: 12px;
  box-shadow: var(--cd-shadow-lg);
  padding: .4rem;
}

.dropdown-item {
  border-radius: 8px;
  padding: .5rem .75rem;
  font-weight: 500;
  font-size: .925rem;
}

.dropdown-item:hover { background: var(--cd-primary-soft); color: var(--cd-primary-dark); }
.dropdown-item i { margin-right: .35rem; opacity: .8; width: 1.1rem; text-align: center; }

/* ---------- Alertas / mensajes ---------- */
.alert { border-radius: var(--cd-radius); border: none; box-shadow: var(--cd-shadow); }

/* ---------- Badges ---------- */
.badge { border-radius: 999px; font-weight: 600; padding: .4em .75em; }

/* ---------- Inicio de sesión ---------- */
.cd-login-page { position: relative; overflow-x: hidden; background: #eef7f5; }

.cd-login-orb { position: fixed; border-radius: 50%; filter: blur(3px); pointer-events: none; z-index: 0; }
.cd-login-orb-one { width: 280px; height: 280px; right: -120px; top: -100px; background: rgba(45, 212, 191, .16); }
.cd-login-orb-two { width: 220px; height: 220px; right: 22%; bottom: -130px; background: rgba(13, 148, 136, .1); }

.cd-login-shell {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr);
}

.cd-login-intro {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(2rem, 5vw, 5rem);
  color: #fff;
  background: linear-gradient(145deg, #064e4a 0%, #0f766e 55%, #14b8a6 100%);
}

.cd-login-intro::before,
.cd-login-intro::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.18);
}

.cd-login-intro::before { width: 520px; height: 520px; right: -220px; top: -170px; }
.cd-login-intro::after { width: 320px; height: 320px; left: -150px; bottom: -150px; }

.cd-login-brand, .cd-login-mobile-brand {
  position: relative;
  display: flex;
  align-items: center;
  gap: .8rem;
  font-weight: 800;
  font-size: 1.15rem;
  letter-spacing: -.02em;
}

.cd-login-brand-icon {
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  color: var(--cd-primary-dark);
  background: #fff;
  box-shadow: 0 10px 24px rgba(3, 46, 43, .2);
}

.cd-login-copy { position: relative; max-width: 650px; margin: 5rem 0; }
.cd-login-kicker { display: inline-flex; align-items: center; gap: .45rem; margin-bottom: 1.1rem; font-weight: 700; color: #99f6e4; }
.cd-login-copy h1 { color: #fff; font-size: clamp(2.5rem, 4.7vw, 4.6rem); line-height: 1.03; font-weight: 800; }
.cd-login-copy p { max-width: 590px; margin: 1.5rem 0 0; color: rgba(255,255,255,.78); font-size: 1.08rem; line-height: 1.7; }
.cd-login-features { position: relative; display: flex; flex-wrap: wrap; gap: 1.5rem; color: rgba(255,255,255,.9); font-weight: 600; }
.cd-login-features i { margin-right: .45rem; color: #99f6e4; }

.cd-login-panel { display: grid; place-items: center; padding: clamp(1.5rem, 5vw, 5rem); background: rgba(255,255,255,.78); backdrop-filter: blur(18px); }
.cd-login-card { width: min(100%, 440px); padding: clamp(1.5rem, 3vw, 2.25rem); border: 1px solid rgba(255,255,255,.9); border-radius: 24px; background: rgba(255,255,255,.92); box-shadow: 0 24px 70px rgba(15, 118, 110, .12); }
.cd-login-mobile-brand { display: none; color: var(--cd-primary-dark); margin-bottom: 3rem; }
.cd-login-mobile-brand small { display: block; margin-top: .08rem; color: var(--cd-ink-soft); font-size: .68rem; font-weight: 600; letter-spacing: .02em; }
.cd-login-mobile-brand .cd-login-brand-icon { color: #fff; background: var(--cd-primary); }
.cd-login-heading { margin-bottom: 2rem; }
.cd-login-eyebrow { color: var(--cd-primary); font-weight: 700; font-size: .82rem; text-transform: uppercase; letter-spacing: .1em; }
.cd-login-heading h2 { margin: .45rem 0 .6rem; font-size: 2rem; font-weight: 800; }
.cd-login-heading p { color: var(--cd-ink-soft); margin: 0; }
.cd-login-form { display: grid; gap: 1.25rem; }
.cd-input-wrap { position: relative; }
.cd-input-wrap > i { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: #94a3b8; z-index: 1; }
.cd-input-wrap .form-control { min-height: 54px; padding-left: 2.8rem; background: #f8fafc; border-width: 1.5px; }
.cd-input-wrap .form-control[name="password"] { padding-right: 3rem; }
.cd-password-toggle { position: absolute; right: .75rem; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border: 0; border-radius: 9px; color: #64748b; background: transparent; }
.cd-password-toggle:hover { color: var(--cd-primary-dark); background: var(--cd-primary-soft); }
.cd-login-submit { min-height: 52px; margin-top: .35rem; display: flex; align-items: center; justify-content: center; gap: .65rem; }
.cd-login-submit i { transition: transform .2s ease; }
.cd-login-submit:hover i { transform: translateX(4px); }
.cd-login-alert { display: flex; gap: .75rem; align-items: center; padding: .85rem 1rem; margin-bottom: 1.25rem; border-radius: 10px; color: #9f1239; background: #fff1f2; font-size: .9rem; font-weight: 600; }
.cd-login-divider { display: flex; align-items: center; gap: .8rem; margin: 1.6rem 0 1rem; color: #94a3b8; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.cd-login-divider::before, .cd-login-divider::after { content: ""; flex: 1; height: 1px; background: var(--cd-border); }
.cd-login-trust { display: flex; justify-content: center; flex-wrap: wrap; gap: .7rem 1.2rem; color: #64748b; font-size: .76rem; font-weight: 600; }
.cd-login-trust i { margin-right: .3rem; color: var(--cd-primary); }

@media (max-width: 900px) {
  .cd-login-shell { grid-template-columns: 1fr; }
  .cd-login-intro { display: none; }
  .cd-login-panel { min-height: 100vh; background: transparent; }
  .cd-login-mobile-brand { display: flex; }
}

@media (max-width: 520px) {
  .cd-login-panel { padding: 1rem; }
  .cd-login-card { padding: 1.5rem; border-radius: 20px; }
  .cd-login-mobile-brand { margin-bottom: 2.5rem; }
  .cd-login-heading h2 { font-size: 1.8rem; }
}

/* ---------- Wizard de tratamientos ---------- */
.cd-page-heading { display:flex; align-items:center; gap:1rem; margin-bottom:1.5rem; }
.cd-page-return { display:inline-flex; align-items:center; gap:.45rem; margin:0 0 1rem; padding:.55rem .75rem; border:1px solid var(--cd-border); border-radius:10px; color:var(--cd-primary-dark); background:#fff; box-shadow:0 4px 12px rgba(15,118,110,.05); text-decoration:none; font-size:.75rem; font-weight:800; transition:transform .2s ease,border-color .2s ease,background .2s ease; }
.cd-page-return:hover { transform:translateX(-2px); border-color:#99e7dc; color:var(--cd-primary-dark); background:var(--cd-primary-soft); }
.cd-page-heading h1 { margin:.15rem 0 .2rem; font-size:1.9rem; font-weight:800; }

/* ---------- Formulario compacto de pacientes ---------- */
.cd-patient-form-page { width:min(100%,920px); margin:0 auto; }
.cd-patient-form-heading { display:flex; align-items:center; gap:.9rem; margin-bottom:1rem; }
.cd-patient-form-heading > span { display:grid; place-items:center; width:52px; height:52px; flex:0 0 52px; border-radius:15px; color:#fff; background:linear-gradient(135deg,var(--cd-primary-light),var(--cd-primary)); box-shadow:0 8px 20px rgba(15,118,110,.2); }
.cd-patient-form-heading small { color:var(--cd-primary); font-size:.68rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.cd-patient-form-heading h1 { margin:.1rem 0 .18rem; font-size:1.65rem; font-weight:800; }
.cd-patient-form-heading p { margin:0; color:var(--cd-ink-soft); font-size:.78rem; }
.cd-patient-form-card { padding:1.35rem; border:1px solid var(--cd-border); border-radius:17px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-patient-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem 1rem; }
.cd-patient-form-grid .mb-3 { margin-bottom:0!important; }
.cd-patient-form-grid label { margin-bottom:.35rem; font-size:.74rem; font-weight:700; }
.cd-patient-form-grid .form-control { min-height:44px; padding:.6rem .75rem; font-size:.82rem; }
.cd-floating-field { position:relative; padding-top:.38rem; }
.cd-floating-field label { position:absolute; z-index:2; top:0; left:.7rem; margin:0; padding:0 .32rem; color:var(--cd-ink-soft); background:#fff; font-size:.66rem; font-weight:800; line-height:1; }
.cd-floating-field .form-control { min-height:46px; padding:.72rem .85rem .55rem; border-width:1.5px; }
.cd-floating-field .form-control:focus + label { color:var(--cd-primary); }
.cd-floating-field.has-error label { color:#be123c; }
.cd-floating-field.has-error .form-control { border-color:#fb7185; }
.cd-floating-field .errorlist { margin:.35rem 0 0; padding-left:.9rem; color:#be123c; font-size:.7rem; }
.cd-patient-form-full { grid-column:1/-1; }
.cd-patient-form-actions { display:flex; align-items:center; justify-content:flex-end; gap:.6rem; margin-top:1.15rem; padding-top:1rem; border-top:1px solid var(--cd-border); }
.cd-patient-form-actions .btn { min-width:125px; }

/* ---------- Equipo y especialistas ---------- */
.cd-team-page,.cd-specialist-form-page,.cd-treatment-form-page { width:min(100%,980px); margin:0 auto; }
.cd-team-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.cd-team-heading > div > span { color:var(--cd-primary); font-size:.66rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.cd-team-heading h1 { margin:.18rem 0; font-size:1.65rem; font-weight:800; }
.cd-team-heading p { margin:0; color:var(--cd-ink-soft); font-size:.78rem; }
.cd-team-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.cd-team-grid article { display:flex; align-items:center; gap:.8rem; padding:1rem; border:1px solid var(--cd-border); border-radius:14px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-team-grid article > span { display:grid; place-items:center; width:46px; height:46px; flex:0 0 46px; border-radius:13px; color:var(--cd-primary-dark); background:var(--cd-primary-soft); font-size:.78rem; font-weight:800; }
.cd-team-grid h2 { margin:0 0 .15rem; font-size:.88rem; font-weight:800; }
.cd-team-grid p { margin:0 0 .25rem; color:var(--cd-ink-soft); font-size:.68rem; }
.cd-team-grid small { color:#047857; font-size:.62rem; font-weight:700; }
.cd-team-empty { grid-column:1/-1; display:grid; place-items:center; min-height:260px; padding:2rem; border:1px dashed #b9d8d4; border-radius:16px; color:var(--cd-ink-soft); background:#f8fcfb; text-align:center; }
.cd-team-empty > i { margin-bottom:.6rem; color:var(--cd-primary); font-size:2rem; }
.cd-team-empty h2 { margin:0; color:var(--cd-ink); font-size:1rem; }
.cd-team-empty p { max-width:380px; margin:.35rem 0 1rem; }
.cd-specialist-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 1rem; }
.cd-specialist-form-grid > .mb-3:nth-last-child(-n+2) { grid-column:span 1; }
.cd-treatment-form-page .cd-patient-form-card { max-width:800px; }

/* ---------- Ficha individual del paciente ---------- */
.cd-patient-detail-actions { display:flex; flex-wrap:wrap; gap:.55rem; }
.cd-patient-data-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(260px,.55fr); gap:1rem; }
.cd-patient-data-card,.cd-patient-quick-card { padding:1.25rem; border:1px solid var(--cd-border); border-radius:16px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-patient-data-card .cd-owner-section-head > i { color:var(--cd-primary); font-size:1.35rem; }
.cd-patient-data-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0; }
.cd-patient-data-grid > div { padding:1rem .25rem; border-bottom:1px solid #edf1f3; }
.cd-patient-data-grid > div:nth-last-child(-n+2) { border-bottom:0; }
.cd-patient-data-grid .full { grid-column:1/-1; }
.cd-patient-data-grid dt { margin-bottom:.3rem; color:var(--cd-ink-soft); font-size:.64rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.cd-patient-data-grid dd { margin:0; color:var(--cd-ink); font-size:.86rem; font-weight:700; }
.cd-patient-quick-card > span { color:var(--cd-primary); font-size:.65rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.cd-patient-quick-card h2 { margin:.25rem 0 .8rem; font-size:1rem; font-weight:800; }
.cd-patient-quick-card > a { display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:.65rem; padding:.75rem 0; border-bottom:1px solid #edf1f3; color:var(--cd-ink); text-decoration:none; }
.cd-patient-quick-card > a:last-child { border-bottom:0; }
.cd-patient-quick-card > a > i:first-child { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; color:var(--cd-primary-dark); background:var(--cd-primary-soft); }
.cd-patient-quick-card > a > i:last-child { color:#94a3b8; font-size:.65rem; }
.cd-patient-quick-card strong,.cd-patient-quick-card small { display:block; }
.cd-patient-quick-card strong { font-size:.76rem; }
.cd-patient-quick-card small { margin-top:.12rem; color:var(--cd-ink-soft); font-size:.63rem; }
.cd-clinical-history-card { margin-top:1rem; padding:1.25rem; border:1px solid var(--cd-border); border-radius:16px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-clinical-history-card .cd-owner-section-head { align-items:center; }
.cd-clinical-history-card .cd-owner-section-head p { margin:.15rem 0 0; color:var(--cd-ink-soft); font-size:.65rem; }
.cd-clinical-history-list { display:grid; gap:.65rem; margin-top:.85rem; }
.cd-clinical-history-list article { display:grid; grid-template-columns:76px minmax(0,1fr); overflow:hidden; border:1px solid var(--cd-border); border-radius:13px; background:#fbfdfd; }
.cd-clinical-history-date { display:grid; place-content:center; padding:.8rem; color:var(--cd-primary-dark); border-right:1px solid #d9eeeb; background:var(--cd-primary-soft); text-align:center; }
.cd-clinical-history-date strong { font-size:1.3rem; line-height:1; }
.cd-clinical-history-date span { margin-top:.15rem; font-size:.58rem; font-weight:800; text-transform:uppercase; }
.cd-clinical-history-date small { margin-top:.2rem; color:var(--cd-ink-soft); font-size:.55rem; }
.cd-clinical-history-body { padding:.8rem 1rem; }
.cd-clinical-history-title { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.cd-clinical-history-title span { color:var(--cd-primary); font-size:.57rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.cd-clinical-history-title h3 { margin:.12rem 0 0; font-size:.78rem; font-weight:800; }
.cd-clinical-history-title > small { color:var(--cd-ink-soft); font-size:.58rem; white-space:nowrap; }
.cd-clinical-history-body > p { margin:.45rem 0; color:var(--cd-ink-soft); font-size:.65rem; }
.cd-clinical-history-tags { display:flex; flex-wrap:wrap; gap:.35rem; }
.cd-clinical-history-tags span { display:inline-flex; align-items:center; gap:.28rem; padding:.25rem .45rem; border-radius:7px; color:#475569; background:#eef2f6; font-size:.56rem; font-weight:700; }
.cd-clinical-history-tags span.warning { color:#b45309; background:#fef3c7; }
.cd-clinical-history-empty { display:grid; place-items:center; min-height:190px; margin-top:.8rem; padding:1.5rem; border:1px dashed #b9d8d4; border-radius:13px; color:var(--cd-ink-soft); background:#f8fcfb; text-align:center; }
.cd-clinical-history-empty > i { margin-bottom:.45rem; color:var(--cd-primary); font-size:1.6rem; }
.cd-clinical-history-empty h3 { margin:0; font-size:.86rem; }
.cd-clinical-history-empty p { margin:.25rem 0 .65rem; font-size:.65rem; }
.cd-clinical-history-empty a { color:var(--cd-primary-dark); font-size:.65rem; font-weight:800; text-decoration:none; }
.cd-history-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; padding:1.4rem 0 1rem; }
.cd-history-heading h1 { margin:.15rem 0; font-size:clamp(1.45rem,3vw,2rem); }
.cd-history-heading p { margin:0; color:var(--cd-ink-soft); font-size:.78rem; }
.cd-history-summary { display:grid; grid-template-columns:repeat(4,minmax(105px,1fr)); overflow:hidden; border:1px solid var(--cd-border); border-radius:14px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-history-summary div { display:grid; gap:.12rem; padding:.75rem .9rem; border-left:1px solid var(--cd-border); }
.cd-history-summary div:first-child { border-left:0; }
.cd-history-summary span { color:var(--cd-ink-soft); font-size:.56rem; font-weight:700; }
.cd-history-summary strong { color:var(--cd-ink); font-size:.92rem; }
.cd-attention-timeline { display:grid; gap:.75rem; margin-left:.75rem; padding-left:1rem; border-left:2px solid #ccece7; }
.cd-attention-card { position:relative; display:grid; grid-template-columns:76px minmax(0,1fr); border:1px solid var(--cd-border); border-radius:16px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-attention-card::before { content:""; position:absolute; top:1.35rem; left:-1.55rem; width:10px; height:10px; border:3px solid #fff; border-radius:50%; background:var(--cd-primary); box-shadow:0 0 0 2px #94dcd2; }
.cd-attention-date { display:grid; align-content:center; justify-items:center; padding:1rem .7rem; border-right:1px solid #d9eeeb; border-radius:16px 0 0 16px; color:var(--cd-primary-dark); background:var(--cd-primary-soft); }
.cd-attention-date strong { font-size:1.55rem; line-height:1; }
.cd-attention-date span { margin-top:.18rem; font-size:.66rem; font-weight:900; text-transform:uppercase; }
.cd-attention-date small { color:var(--cd-ink-soft); font-size:.58rem; }
.cd-attention-main { min-width:0; padding:1rem 1.1rem; }
.cd-attention-main > header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.cd-attention-main > header > div > span { color:var(--cd-primary); font-size:.57rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.cd-attention-main h2 { margin:.15rem 0 0; font-size:1rem; }
.cd-attention-meta { display:flex; flex-wrap:wrap; gap:.45rem 1rem; margin-top:.6rem; color:var(--cd-ink-soft); font-size:.64rem; }
.cd-attention-meta span { display:inline-flex; align-items:center; gap:.32rem; }
.cd-attention-meta i { color:var(--cd-primary); }
.cd-attention-notes { margin:.65rem 0 0; padding:.55rem .7rem; border-radius:9px; color:#475569; background:#f5f8fa; font-size:.66rem; }
.cd-attention-diagnosis { display:flex; gap:.5rem; margin:.55rem 0 0; color:#475569; font-size:.65rem; }
.cd-attention-diagnosis > i { margin-top:.12rem; color:var(--cd-primary); }
.cd-attention-diagnosis span { display:grid; gap:.12rem; }
.cd-attention-details { margin-top:.65rem; border-top:1px solid var(--cd-border); }
.cd-attention-details summary { display:flex; align-items:center; gap:.4rem; padding:.65rem 0 0; color:var(--cd-primary-dark); cursor:pointer; font-size:.64rem; font-weight:800; list-style:none; }
.cd-attention-details summary span { margin-left:auto; color:var(--cd-ink-soft); font-size:.56rem; }
.cd-attention-measurements { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; padding-top:.6rem; }
.cd-attention-measurements div { display:grid; padding:.55rem .65rem; border:1px solid var(--cd-border); border-radius:9px; background:#fbfdfd; }
.cd-attention-measurements strong { font-size:.62rem; }
.cd-attention-measurements span,.cd-attention-measurements small { color:var(--cd-ink-soft); font-size:.57rem; }
.cd-history-empty { margin-top:.5rem; }

@media (max-width:650px) {
  .cd-patient-form-grid { grid-template-columns:1fr; }
  .cd-patient-form-full { grid-column:auto; }
  .cd-patient-form-card { padding:1rem; }
  .cd-patient-form-actions { align-items:stretch; flex-direction:column-reverse; }
  .cd-patient-form-actions .btn { width:100%; }
  .cd-team-heading { align-items:flex-start; flex-direction:column; }
  .cd-team-heading .btn { width:100%; }
  .cd-team-grid,.cd-specialist-form-grid { grid-template-columns:1fr; }
  .cd-team-empty { grid-column:auto; }
}

@media (max-width:850px) {
  .cd-patient-data-layout { grid-template-columns:1fr; }
  .cd-patient-detail-actions { width:100%; }
  .cd-patient-detail-actions .btn { flex:1; }
}

@media (max-width:520px) {
  .cd-patient-data-grid { grid-template-columns:1fr; }
  .cd-patient-data-grid .full { grid-column:auto; }
  .cd-patient-data-grid > div { border-bottom:1px solid #edf1f3!important; }
  .cd-patient-data-grid > div:last-child { border-bottom:0!important; }
  .cd-clinical-history-list article { grid-template-columns:1fr; }
  .cd-clinical-history-date { display:flex; align-items:center; justify-content:center; gap:.35rem; border-right:0; border-bottom:1px solid #d9eeeb; }
  .cd-clinical-history-title { flex-direction:column; gap:.3rem; }
  .cd-history-heading { align-items:stretch; flex-direction:column; }
  .cd-history-summary { grid-template-columns:repeat(2,1fr); }
  .cd-history-summary div:nth-child(3) { border-left:0; border-top:1px solid var(--cd-border); }
  .cd-history-summary div:nth-child(4) { border-top:1px solid var(--cd-border); }
  .cd-attention-card { grid-template-columns:1fr; }
  .cd-attention-date { display:flex; align-items:center; justify-content:flex-start; gap:.35rem; border-right:0; border-bottom:1px solid #d9eeeb; border-radius:16px 16px 0 0; }
  .cd-attention-measurements { grid-template-columns:1fr; }
}
.cd-page-heading p { margin:0; color:var(--cd-ink-soft); }
.cd-page-eyebrow { color:var(--cd-primary); font-size:.76rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.cd-page-icon { display:grid; place-items:center; width:54px; height:54px; flex:0 0 54px; border-radius:15px; color:#fff; background:linear-gradient(135deg,var(--cd-primary-light),var(--cd-primary)); box-shadow:0 7px 18px rgba(15,118,110,.22); }

.cd-wizard-progress { display:grid; grid-template-columns:repeat(4,1fr); gap:.65rem; max-width:920px; margin-bottom:1.25rem; }
.cd-wizard-step { display:flex; align-items:center; gap:.6rem; width:100%; padding:.75rem .9rem; border:1px solid var(--cd-border); border-radius:12px; color:var(--cd-ink-soft); background:#fff; font:600 .85rem/1.2 inherit; text-align:left; transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease; }
.cd-wizard-step:disabled { opacity:1; }
.cd-wizard-step.available,.cd-wizard-step.complete { cursor:pointer; }
.cd-wizard-step.available:hover,.cd-wizard-step.complete:hover { border-color:#63d5c5; background:#f2fdfa; transform:translateY(-1px); box-shadow:0 5px 14px rgba(16,113,104,.08); }
.cd-wizard-step.locked { color:#9ca9b9; background:#f8fafb; }
.cd-wizard-progress b { display:grid; place-items:center; width:28px; height:28px; flex:0 0 28px; border-radius:9px; color:var(--cd-ink-soft); background:#eef2f4; font-size:.75rem; }
.cd-wizard-step.active { color:var(--cd-primary-dark); border-color:#99e7dc; background:#edfcf9; }
.cd-wizard-step.active b,.cd-wizard-step.complete b { color:#fff; background:var(--cd-primary); }
.cd-wizard-step.complete { color:var(--cd-primary-dark); }

.cd-wizard-card { max-width:920px; padding:clamp(1.25rem,3vw,2rem); border:1px solid var(--cd-border); border-radius:18px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-step-heading { display:flex; align-items:center; gap:.85rem; margin-bottom:1.5rem; }
.cd-step-heading > div:first-child { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; border-radius:12px; color:var(--cd-primary-dark); background:var(--cd-primary-soft); }
.cd-step-heading h2 { margin:0 0 .2rem; font-size:1.25rem; font-weight:700; }
.cd-step-heading p { margin:0; color:var(--cd-ink-soft); font-size:.88rem; }
.cd-step-heading h2 small { display:inline-flex; margin-left:.35rem; padding:.18rem .42rem; border-radius:999px; color:#475569; background:#e9eef3; font-size:.58rem; font-weight:800; vertical-align:middle; }
.cd-clinical-optional-note { display:flex; align-items:flex-start; gap:.65rem; margin-bottom:.85rem; padding:.75rem .85rem; border:1px solid #b8e7e1; border-radius:12px; color:var(--cd-primary-dark); background:#f0fcfa; }
.cd-clinical-optional-note > i { margin-top:.1rem; color:var(--cd-primary); }
.cd-clinical-optional-note div { display:grid; gap:.1rem; }
.cd-clinical-optional-note strong { font-size:.7rem; }
.cd-clinical-optional-note span { color:var(--cd-ink-soft); font-size:.62rem; }
.cd-wizard-actions { display:flex; justify-content:flex-end; gap:.7rem; padding-top:1.4rem; margin-top:1.4rem; border-top:1px solid var(--cd-border); }

.cd-wizard-card.cd-teeth-step { max-width:1200px; }
.cd-treatment-odontogram { padding:1rem; border:1px solid var(--cd-border); border-radius:15px; background:#fbfdfd; }
.cd-treatment-arch-scroll { overflow-x:auto; padding:.25rem 0 .5rem; scrollbar-width:thin; scrollbar-color:#b7d5d1 transparent; }
.cd-treatment-arch { display:grid; grid-template-columns:repeat(16,minmax(0,38px)); gap:.12rem; justify-content:center; min-width:640px; }
.cd-treatment-tooth { position:relative; min-width:0; }
.cd-treatment-tooth-input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.cd-treatment-tooth-figure { position:relative; display:flex; flex-direction:column; align-items:center; gap:.12rem; padding:.22rem .1rem; border:1.5px solid transparent; border-radius:10px; transition:background-color .15s ease,border-color .15s ease; }
.cd-treatment-tooth-input:checked + .cd-treatment-tooth-figure { border-color:var(--cd-primary); background:#f0fdfa; }
.cd-treatment-tooth-number { display:grid; place-items:center; min-width:20px; height:16px; padding:0 .22rem; border:0; border-radius:5px; color:var(--cd-ink-soft); background:#f1f5f9; font-size:.55rem; font-weight:800; cursor:pointer; transition:color .15s ease,background-color .15s ease; }
.cd-treatment-tooth-number:hover { color:var(--cd-primary-dark); background:#ccfbf1; }
.cd-treatment-tooth-number:focus-visible { outline:2px solid var(--cd-primary); outline-offset:1px; }
.cd-treatment-tooth-input:checked + .cd-treatment-tooth-figure .cd-treatment-tooth-number { color:#fff; background:var(--cd-primary-dark); }

/* Esquema odontológico: raíces + corona con sus cinco caras */
.cd-tooth-glyph { display:block; width:100%; height:auto; overflow:visible; }
.cd-treatment-lower .cd-tooth-glyph { transform:scaleY(-1); }
.cd-tooth-root { fill:#fff; stroke:#94a3b8; stroke-width:1.5; stroke-linejoin:round; transition:fill .15s ease,stroke .15s ease; }
.cd-tooth-face { fill:#fff; stroke:#94a3b8; stroke-width:1.3; stroke-linejoin:round; cursor:pointer; transition:fill .15s ease,stroke .15s ease; }
.cd-tooth-face:hover { fill:#ccfbf1; stroke:var(--cd-primary); }
.cd-tooth-face.is-selected { fill:var(--cd-primary); stroke:var(--cd-primary-dark); }
.cd-tooth-face.is-selected:hover { fill:var(--cd-primary-dark); }
.cd-treatment-tooth-input:checked + .cd-treatment-tooth-figure .cd-tooth-root { fill:#ccfbf1; stroke:var(--cd-primary-dark); }

/* Curvatura suave de la arcada */
.cd-treatment-upper .cd-treatment-tooth:nth-child(1),.cd-treatment-upper .cd-treatment-tooth:nth-child(16) { transform:translateY(-7px); }
.cd-treatment-upper .cd-treatment-tooth:nth-child(2),.cd-treatment-upper .cd-treatment-tooth:nth-child(15) { transform:translateY(-5px); }
.cd-treatment-upper .cd-treatment-tooth:nth-child(3),.cd-treatment-upper .cd-treatment-tooth:nth-child(14) { transform:translateY(-3px); }
.cd-treatment-upper .cd-treatment-tooth:nth-child(4),.cd-treatment-upper .cd-treatment-tooth:nth-child(13) { transform:translateY(-1.5px); }
.cd-treatment-lower .cd-treatment-tooth:nth-child(1),.cd-treatment-lower .cd-treatment-tooth:nth-child(16) { transform:translateY(7px); }
.cd-treatment-lower .cd-treatment-tooth:nth-child(2),.cd-treatment-lower .cd-treatment-tooth:nth-child(15) { transform:translateY(5px); }
.cd-treatment-lower .cd-treatment-tooth:nth-child(3),.cd-treatment-lower .cd-treatment-tooth:nth-child(14) { transform:translateY(3px); }
.cd-treatment-lower .cd-treatment-tooth:nth-child(4),.cd-treatment-lower .cd-treatment-tooth:nth-child(13) { transform:translateY(1.5px); }
.cd-treatment-arch-label { display:flex; align-items:center; gap:.7rem; margin:.35rem 0; color:var(--cd-ink-soft); font-size:.62rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.cd-treatment-arch-label i { flex:1; height:1px; background:var(--cd-border); }
.cd-treatment-midline { display:flex; align-items:center; gap:.6rem; margin:.55rem 0; color:#94a3b8; font-size:.58rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.cd-treatment-midline::before,.cd-treatment-midline::after { content:""; flex:1; border-top:1px dashed #cbd5e1; }
.cd-treatment-tooth-hint { margin:.8rem 0 0; color:var(--cd-ink-soft); font-size:.68rem; text-align:center; }
.cd-treatment-tooth-hint i { margin-right:.25rem; color:var(--cd-primary); }

.cd-odontometry-panel { margin-top:1rem; padding:1rem; border:1px solid #bfdbfe; border-radius:15px; background:#f8fbff; }
.cd-odontometry-panel > header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-bottom:.85rem; border-bottom:1px solid #dbeafe; }
.cd-odontometry-panel > header > div { display:flex; align-items:center; gap:.75rem; }
.cd-odontometry-panel > header > div > span { display:grid; place-items:center; width:40px; height:40px; flex:0 0 40px; border-radius:11px; color:#1d4ed8; background:#dbeafe; }
.cd-odontometry-panel header small { color:#2563eb; font-size:.6rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.cd-odontometry-panel header h2 { margin:.1rem 0; font-size:1rem; font-weight:800; }
.cd-odontometry-panel header p { margin:0; color:var(--cd-ink-soft); font-size:.68rem; }
.cd-odontometry-panel header > strong { padding:.35rem .6rem; border-radius:999px; color:#1e40af; background:#dbeafe; font-size:.64rem; white-space:nowrap; }
.cd-odontometry-empty { display:grid; place-items:center; min-height:130px; color:#94a3b8; text-align:center; }
.cd-odontometry-empty[hidden] { display:none; }
.cd-odontometry-empty i { margin-bottom:.35rem; font-size:1.5rem; }
.cd-odontometry-empty p { margin:0; font-size:.72rem; }
.cd-odontometry-cards { display:grid; gap:.7rem; padding-top:.75rem; }
.cd-odontometry-card { padding:.85rem; border:1px solid #dbeafe; border-radius:12px; background:#fff; }
.cd-odontometry-card-head { display:flex; align-items:center; justify-content:space-between; gap:.7rem; margin-bottom:.7rem; }
.cd-odontometry-card-head > div { display:flex; align-items:center; gap:.55rem; }
.cd-odontometry-card-head > div > span { display:grid; place-items:center; width:31px; height:31px; border-radius:9px; color:#1e40af; background:#dbeafe; font-size:.68rem; font-weight:800; }
.cd-odontometry-card-head h3 { margin:0; font-size:.78rem; font-weight:800; }
.cd-odontometry-card-head p { margin:.05rem 0 0; color:var(--cd-ink-soft); font-size:.6rem; }
.cd-odontometry-card-head button { display:inline-flex; align-items:center; gap:.3rem; padding:.4rem .55rem; border:1px solid #bfdbfe; border-radius:8px; color:#1d4ed8; background:#eff6ff; font-size:.62rem; font-weight:800; }
.cd-odontometry-rows { display:grid; gap:.55rem; }
.cd-odontometry-row { display:grid; grid-template-columns:minmax(100px,.8fr) minmax(105px,.75fr) minmax(110px,.8fr) minmax(160px,1.35fr) 30px; align-items:end; gap:.5rem; padding:.6rem; border-radius:10px; background:#f8fafc; }
.cd-odontometry-row label { display:block; margin-bottom:.28rem; color:var(--cd-ink-soft); font-size:.58rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.cd-odontometry-row .form-control,.cd-odontometry-row .form-select { min-height:38px; padding:.45rem .55rem; border-radius:8px; font-size:.7rem; }
.cd-mm-input { position:relative; }
.cd-mm-input .form-control { padding-right:2rem; }
.cd-mm-input span { position:absolute; right:.55rem; top:50%; transform:translateY(-50%); color:#94a3b8; font-size:.6rem; font-weight:800; pointer-events:none; }
.cd-remove-canal { display:grid; place-items:center; width:30px; height:30px; margin-bottom:.25rem; border:0; border-radius:8px; color:#be123c; background:#fff1f2; }
.cd-remove-canal:hover { background:#ffe4e6; }

.cd-clinical-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.cd-clinical-section { padding:1rem; border:1px solid var(--cd-border); border-radius:14px; background:#fbfdfd; }
.cd-clinical-section.full { grid-column:1/-1; }
.cd-clinical-section > header,.cd-clinical-section > summary { display:flex; align-items:center; gap:.65rem; margin-bottom:.85rem; padding-bottom:.7rem; border-bottom:1px solid #eaf0f1; }
.cd-clinical-section > summary { cursor:pointer; list-style:none; user-select:none; }
.cd-clinical-section > summary::-webkit-details-marker { display:none; }
.cd-clinical-section:not([open]) > summary { margin-bottom:0; padding-bottom:0; border-bottom:0; }
.cd-clinical-section > header > span,.cd-clinical-section > summary > span { display:grid; place-items:center; width:30px; height:30px; flex:0 0 30px; border-radius:9px; color:var(--cd-primary-dark); background:var(--cd-primary-soft); font-size:.68rem; font-weight:800; }
.cd-clinical-section > header h3,.cd-clinical-section > summary h3 { margin:0; font-size:.82rem; font-weight:800; }
.cd-clinical-section > header p,.cd-clinical-section > summary p { margin:.08rem 0 0; color:var(--cd-ink-soft); font-size:.62rem; }
.cd-clinical-caret { margin-left:auto; color:var(--cd-ink-soft); font-size:.7rem; transition:transform .18s ease; }
.cd-clinical-section[open] > summary .cd-clinical-caret { transform:rotate(180deg); }
.cd-clinical-section > summary:hover .cd-clinical-caret { color:var(--cd-primary-dark); }
.cd-clinical-fields { display:grid; gap:.7rem; }
.cd-clinical-fields.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.cd-clinical-fields.three { grid-template-columns:.65fr 1.2fr 1.2fr; margin-top:.8rem; }
.cd-clinical-fields.diagnosis { grid-template-columns:1.4fr .45fr .55fr; }
.cd-clinical-fields.diagnosis > label:nth-child(n+4) { grid-column:span 1; }
.cd-clinical-field { position:relative; display:block; margin:0; }
.cd-clinical-field.mt { margin-top:.8rem; }
.cd-clinical-field > span { display:block; margin-bottom:.32rem; color:var(--cd-ink-soft); font-size:.59rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.cd-clinical-field .form-control,.cd-clinical-field .form-select { min-height:40px; border-color:#dbe4ea; border-radius:9px; font-size:.7rem; }
.cd-clinical-field textarea.form-control { min-height:72px; resize:vertical; }
.cd-clinical-field .form-control:focus,.cd-clinical-field .form-select:focus { border-color:#5eead4; box-shadow:0 0 0 3px rgba(20,184,166,.1); }
.cd-clinical-field > small { position:absolute; right:.55rem; bottom:.62rem; color:#94a3b8; font-size:.55rem; font-weight:700; pointer-events:none; }
.cd-clinical-field > small + .errorlist { position:static; }
.cd-clinical-field .errorlist,.cd-clinical-section > .errorlist { margin:.25rem 0 0; padding:0; color:#be123c; font-size:.58rem; list-style:none; }
.cd-clinical-checks { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.45rem; }
.cd-clinical-checks.compact { grid-template-columns:repeat(3,minmax(0,1fr)); }
.cd-clinical-checks label { position:relative; display:flex; align-items:center; min-height:39px; margin:0; cursor:pointer; }
.cd-clinical-checks input { position:absolute; width:1px; height:1px; opacity:0; }
.cd-clinical-checks label > span { display:flex; align-items:center; width:100%; min-height:39px; padding:.48rem .55rem; border:1px solid #dbe4ea; border-radius:9px; color:var(--cd-ink-soft); background:#fff; font-size:.6rem; font-weight:700; transition:border-color .15s ease,background-color .15s ease,color .15s ease; }
.cd-clinical-checks label > span::before { content:""; width:15px; height:15px; flex:0 0 15px; margin-right:.4rem; border:1.5px solid #cbd5e1; border-radius:5px; background:#fff; box-shadow:inset 0 0 0 3px #fff; }
.cd-clinical-checks input:checked + span { color:var(--cd-primary-dark); border-color:#5eead4; background:#ecfdf9; }
.cd-clinical-checks input:checked + span::before { border-color:var(--cd-primary); background:var(--cd-primary); }
.cd-vital-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }

@media (max-width:600px) {
  .cd-wizard-progress { gap:.35rem; }
  .cd-wizard-step { justify-content:center; padding:.6rem .35rem; font-size:.72rem; }
  .cd-wizard-progress b { display:none; }
  .cd-treatment-odontogram { padding:.7rem; }
  .cd-odontometry-panel > header { align-items:flex-start; flex-direction:column; }
  .cd-odontometry-row { grid-template-columns:1fr; }
  .cd-remove-canal { width:100%; margin:0; }
  .cd-wizard-actions .btn { flex:1; }
  .cd-clinical-form-grid,.cd-clinical-fields.two,.cd-clinical-fields.three,.cd-clinical-fields.diagnosis,.cd-vital-grid { grid-template-columns:1fr; }
  .cd-clinical-section.full,.cd-clinical-fields.diagnosis > label:nth-child(n+4) { grid-column:auto; }
  .cd-clinical-checks,.cd-clinical-checks.compact { grid-template-columns:1fr; }
}

@media (min-width:601px) and (max-width:980px) {
  .cd-odontometry-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cd-remove-canal { grid-column:2; justify-self:end; }
  .cd-clinical-checks { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* ---------- Directorio de pacientes ---------- */
.cd-patients-page { display:grid; gap:1.15rem; }
.cd-patients-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; }
.cd-patients-heading > div > span { color:var(--cd-primary); font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.cd-patients-heading h1 { margin:.15rem 0 .25rem; font-size:1.8rem; font-weight:800; }
.cd-patients-heading p { margin:0; color:var(--cd-ink-soft); font-size:.86rem; }
.cd-patient-list-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; }
.cd-patient-list-metrics article { display:flex; align-items:center; gap:.8rem; padding:1rem; border:1px solid var(--cd-border); border-radius:14px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-patient-list-metrics article > span { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; border-radius:12px; }
.cd-patient-list-metrics article > span.teal { color:var(--cd-primary-dark); background:var(--cd-primary-soft); }
.cd-patient-list-metrics article > span.amber { color:#b45309; background:#fef3c7; }
.cd-patient-list-metrics article > span.violet { color:#6d28d9; background:#ede9fe; }
.cd-patient-list-metrics small { display:block; color:var(--cd-ink-soft); font-size:.65rem; font-weight:700; }
.cd-patient-list-metrics strong { display:block; margin:.05rem 0; font-size:1.2rem; font-weight:800; }
.cd-patient-list-metrics p { margin:0; color:#94a3b8; font-size:.62rem; }
.cd-patient-list-card { overflow:hidden; border:1px solid var(--cd-border); border-radius:16px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-patient-list-card > header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.15rem; border-bottom:1px solid var(--cd-border); }
.cd-patient-list-card > header h2 { margin:0; font-size:1rem; font-weight:800; }
.cd-patient-list-card > header p { margin:.12rem 0 0; color:var(--cd-ink-soft); font-size:.68rem; }
.cd-patient-search { display:flex; align-items:center; gap:.5rem; width:min(340px,100%); padding:.58rem .75rem; border:1px solid var(--cd-border); border-radius:10px; color:#94a3b8; background:#f8fafc; }
.cd-patient-search:focus-within { border-color:#5eead4; box-shadow:0 0 0 3px rgba(20,184,166,.1); }
.cd-patient-search input { width:100%; border:0; outline:0; color:var(--cd-ink); background:transparent; font-size:.72rem; }
.cd-patient-list-table-wrap { overflow-x:auto; }
.cd-patient-list-table { width:100%; min-width:1080px; border-collapse:collapse; }
.cd-patient-list-table th { padding:.72rem 1rem; color:var(--cd-ink-soft); background:#f8fafc; font-size:.62rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.cd-patient-list-table td { padding:.85rem 1rem; border-top:1px solid #eef2f5; vertical-align:middle; }
.cd-patient-list-table tbody tr { transition:background-color .15s ease; }
.cd-patient-list-table tbody tr:hover { background:#fbfefd; }
.cd-patient-list-table td > small,.cd-patient-list-table td > strong { display:block; }
.cd-patient-list-table td > small { margin-top:.28rem; color:var(--cd-ink-soft); font-size:.62rem; }
.cd-patient-list-person { display:flex; align-items:center; gap:.65rem; min-width:205px; color:inherit; text-decoration:none; }
.cd-patient-list-person > span { display:grid; place-items:center; width:38px; height:38px; flex:0 0 38px; border-radius:11px; color:var(--cd-primary-dark); background:var(--cd-primary-soft); font-size:.68rem; font-weight:800; }
.cd-patient-list-person strong { display:block; color:var(--cd-ink); font-size:.75rem; font-weight:800; }
.cd-patient-list-person small { display:block; margin-top:.12rem; color:var(--cd-ink-soft); font-size:.59rem; }
.cd-patient-contact { font-size:.7rem; }
.cd-patient-next-treatment { display:block; max-width:210px; margin-top:.3rem; overflow:hidden; color:var(--cd-ink-soft); font-size:.6rem; text-overflow:ellipsis; white-space:nowrap; }
.cd-list-status { display:inline-flex; align-items:center; gap:.28rem; padding:.25rem .48rem; border-radius:999px; font-size:.58rem; font-weight:800; white-space:nowrap; }
.cd-list-status i { width:6px; height:6px; border-radius:50%; background:currentColor; }
.cd-list-status.success { color:#047857; background:#d1fae5; }
.cd-list-status.warning { color:#b45309; background:#fef3c7; }
.cd-list-status.danger { color:#be123c; background:#ffe4e6; }
.cd-patient-account { display:flex; align-items:center; gap:.45rem; }
.cd-patient-account > strong { font-size:.78rem; font-weight:800; }
.cd-patient-list-actions { display:flex; align-items:center; gap:.4rem; }
.cd-patient-list-actions > .btn { padding:.45rem .65rem; font-size:.65rem; white-space:nowrap; }
.cd-patient-list-actions .dropdown .btn { padding:.45rem .6rem; font-size:.65rem; }
.cd-patient-list-empty { padding:2.5rem 1rem; color:var(--cd-ink-soft); text-align:center; }
.cd-patient-list-empty i { margin-bottom:.55rem; color:var(--cd-primary); font-size:1.5rem; }
.cd-patient-list-empty h3 { margin:0 0 .25rem; font-size:.9rem; }
.cd-patient-list-empty p { margin:0; font-size:.7rem; }
.cd-patient-filter-empty { padding:1.25rem; color:var(--cd-ink-soft); text-align:center; font-size:.72rem; }
.cd-patient-filter-empty[hidden] { display:none; }

@media (max-width:850px) {
  .cd-patients-heading,.cd-patient-list-card > header { align-items:stretch; flex-direction:column; }
  .cd-patients-heading .btn { align-self:flex-start; }
  .cd-patient-list-metrics { grid-template-columns:1fr; }
  .cd-patient-search { width:100%; }
}

/* ---------- Expediente y odontograma ---------- */
.cd-patient-record { border:1px solid var(--cd-border); border-radius:20px; overflow:hidden; background:#fff; box-shadow:var(--cd-shadow-lg); }
.cd-patient-header { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.25rem 1.5rem; color:#fff; background:linear-gradient(115deg,var(--cd-primary-dark),var(--cd-primary)); }
.cd-patient-identity { display:flex; align-items:center; gap:1rem; min-width:0; }
.cd-patient-avatar { display:grid; place-items:center; width:58px; height:58px; flex:0 0 58px; border:3px solid rgba(255,255,255,.5); border-radius:50%; color:var(--cd-primary-dark); background:#fff; font-weight:800; box-shadow:0 7px 18px rgba(0,0,0,.15); }
.cd-record-label { display:block; margin-bottom:.1rem; color:#99f6e4; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.cd-patient-identity h1 { margin:0 0 .15rem; color:#fff; font-size:1.35rem; font-weight:800; }
.cd-patient-identity p { margin:0; color:rgba(255,255,255,.72); font-size:.8rem; }
.cd-patient-switcher { min-width:260px; }
.cd-patient-switcher label { display:block; margin-bottom:.35rem; color:rgba(255,255,255,.75); font-size:.7rem; font-weight:700; }
.cd-patient-switcher > div { display:flex; gap:.45rem; }
.cd-patient-switcher .form-select { border:0; background-color:#fff; }
.cd-patient-switcher .btn { box-shadow:none; }

.cd-record-tabs { display:flex; gap:.2rem; overflow-x:auto; padding:0 1.25rem; border-bottom:1px solid var(--cd-border); background:#fff; }
.cd-record-tabs a,.cd-record-tabs span { display:flex; align-items:center; gap:.42rem; padding:.9rem 1rem .75rem; border-bottom:3px solid transparent; color:var(--cd-ink-soft); text-decoration:none; white-space:nowrap; font-size:.78rem; font-weight:600; }
.cd-record-tabs a:hover { color:var(--cd-primary-dark); }
.cd-record-tabs .active { color:var(--cd-primary-dark); border-bottom-color:var(--cd-primary); background:#f5fcfa; }

.cd-record-layout { display:grid; grid-template-columns:270px minmax(0,1fr); min-height:610px; }
.cd-record-sidebar { padding:1.35rem; border-right:1px solid var(--cd-border); background:#f8fafc; }
.cd-summary-title { display:flex; align-items:center; gap:.7rem; padding-bottom:1rem; border-bottom:1px solid var(--cd-border); }
.cd-summary-title > span { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; color:var(--cd-primary-dark); background:var(--cd-primary-soft); }
.cd-summary-title h2 { margin:0 0 .1rem; font-size:.98rem; font-weight:700; }
.cd-summary-title p { margin:0; color:var(--cd-ink-soft); font-size:.7rem; }
.cd-patient-facts { display:grid; gap:0; margin:1rem 0; }
.cd-patient-facts > div { padding:.7rem 0; border-bottom:1px solid #edf1f3; }
.cd-patient-facts dt { margin-bottom:.25rem; color:var(--cd-ink-soft); font-size:.66rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.cd-patient-facts dd { margin:0; color:var(--cd-ink); font-size:.82rem; font-weight:600; overflow-wrap:anywhere; }
.cd-clinical-metrics { display:grid; gap:.55rem; padding:1rem; border:1px solid #bdebe4; border-radius:12px; background:#edfcf9; }
.cd-clinical-metrics div { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.cd-clinical-metrics span { color:var(--cd-ink-soft); font-size:.72rem; }
.cd-clinical-metrics strong { color:var(--cd-primary-dark); font-size:.88rem; }
.cd-treatment-preview { margin-top:1.25rem; }
.cd-treatment-preview h3 { margin-bottom:.7rem; font-size:.8rem; font-weight:700; }
.cd-treatment-preview > div { display:flex; justify-content:space-between; gap:.5rem; padding:.55rem 0; border-bottom:1px solid var(--cd-border); font-size:.72rem; }
.cd-treatment-preview > div span { color:var(--cd-ink); font-weight:600; }
.cd-treatment-preview > div small,.cd-treatment-preview > p { color:var(--cd-ink-soft); font-size:.68rem; }
.cd-empty-patient { display:grid; justify-items:center; gap:.8rem; padding:2rem .5rem; text-align:center; color:var(--cd-ink-soft); }
.cd-empty-patient > i { font-size:2rem; color:var(--cd-primary); }

.cd-odontogram-panel { min-width:0; padding:1.35rem 1.5rem; background:#fff; }
.cd-odontogram-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; }
.cd-section-kicker { color:var(--cd-primary); font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.cd-odontogram-heading h2 { margin:.15rem 0 .15rem; font-size:1.25rem; font-weight:800; }
.cd-odontogram-heading p { margin:0; color:var(--cd-ink-soft); font-size:.78rem; }
.cd-odontogram-actions { display:flex; gap:.45rem; }

.cd-arch-label { display:flex; align-items:center; gap:.75rem; margin:.4rem 0 .6rem; color:var(--cd-ink-soft); font-size:.66rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.cd-arch-label i { flex:1; height:1px; background:var(--cd-border); }
.cd-dental-arch { display:grid; grid-template-columns:repeat(16,minmax(48px,1fr)); gap:.3rem; min-width:840px; }
.cd-tooth-unit { display:grid; justify-items:center; gap:.28rem; min-width:0; padding:.5rem .18rem; border:1px solid transparent; border-radius:10px; color:var(--cd-ink); background:transparent; transition:background-color .15s ease,border-color .15s ease,transform .15s ease; }
.cd-tooth-unit:hover,.cd-tooth-unit:focus { transform:translateY(-2px); border-color:var(--cd-primary-light); background:var(--cd-primary-soft); outline:none; }
.cd-tooth-number { display:grid; place-items:center; min-width:25px; height:22px; padding:0 .25rem; border-radius:7px; color:var(--cd-primary-dark); background:var(--cd-primary-soft); font-size:.65rem; font-weight:700; }
.cd-tooth-image { display:grid; place-items:center; width:46px; height:62px; color:#b6c4c8; }
.cd-tooth-image img { max-width:46px; max-height:62px; object-fit:contain; filter:drop-shadow(0 2px 2px rgba(15,23,42,.1)); }
.cd-tooth-image i { font-size:2rem; }
.cd-tooth-unit small { width:100%; overflow:hidden; color:var(--cd-ink-soft); font-size:.58rem; text-overflow:ellipsis; white-space:nowrap; }
.cd-dental-upper .cd-tooth-image { align-items:end; }
.cd-dental-lower .cd-tooth-image { align-items:start; }
.cd-dental-midline { display:flex; align-items:center; justify-content:center; margin:.7rem 0; }
.cd-dental-midline::before,.cd-dental-midline::after { content:""; width:28%; height:1px; background:linear-gradient(90deg,transparent,var(--cd-border)); }
.cd-dental-midline::after { background:linear-gradient(90deg,var(--cd-border),transparent); }
.cd-dental-midline span { padding:0 .65rem; color:#94a3b8; font-size:.6rem; text-transform:uppercase; }
.cd-odontogram-panel { overflow-x:auto; }
.cd-odontogram-legend { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; min-width:840px; padding-top:1rem; margin-top:1rem; border-top:1px solid var(--cd-border); color:var(--cd-ink-soft); font-size:.68rem; }
.cd-odontogram-legend > span { display:flex; align-items:center; gap:.4rem; }
.cd-odontogram-legend > span i { width:10px; height:10px; border-radius:3px; background:var(--cd-primary-soft); border:1px solid var(--cd-primary); }
.cd-odontogram-legend > span i.selected { background:var(--cd-primary); }
.cd-odontogram-legend small { margin-left:auto; }

@media (max-width:900px) {
  .cd-record-layout { grid-template-columns:1fr; }
  .cd-record-sidebar { border-right:0; border-bottom:1px solid var(--cd-border); }
  .cd-patient-facts { grid-template-columns:repeat(3,1fr); gap:1rem; }
  .cd-patient-facts > div { border-bottom:0; }
}

@media (max-width:650px) {
  .cd-patient-header { align-items:stretch; flex-direction:column; }
  .cd-patient-switcher { min-width:0; }
  .cd-record-tabs { padding:0 .5rem; }
  .cd-patient-facts { grid-template-columns:1fr; gap:0; }
  .cd-patient-facts > div { border-bottom:1px solid var(--cd-border); }
  .cd-odontogram-heading { flex-direction:column; }
  .cd-odontogram-actions { width:100%; }
  .cd-odontogram-actions .btn:first-child { flex:1; }
}

/* ---------- Panel del propietario ---------- */
.cd-owner-dashboard { display:grid; gap:1.2rem; }
.cd-owner-hero { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.6rem 1.75rem; border-radius:20px; color:#fff; background:linear-gradient(115deg,var(--cd-primary-dark),var(--cd-primary)); box-shadow:0 12px 30px rgba(15,118,110,.2); }
.cd-owner-kicker { display:flex; align-items:center; gap:.45rem; margin-bottom:.45rem; color:#99f6e4; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.cd-owner-hero h1 { margin:0 0 .35rem; font-size:1.8rem; font-weight:700; }
.cd-owner-hero p { margin:0; color:rgba(255,255,255,.72); font-size:.86rem; }
.cd-owner-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.55rem; }
.cd-owner-actions .btn-light { color:var(--cd-primary-dark); }

.cd-care-flow { padding:.9rem 1rem; border:1px solid var(--cd-border); border-radius:18px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-care-flow-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.65rem; }
.cd-care-flow-head > div:first-child > span { color:var(--cd-primary); font-size:.66rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.cd-care-flow-head h2 { margin:.15rem 0; font-size:1rem; font-weight:800; }
.cd-care-flow-head p { margin:0; color:var(--cd-ink-soft); font-size:.78rem; }
.cd-care-flow-patient { display:flex; align-items:center; gap:.5rem; padding:.45rem .65rem; border-radius:12px; color:var(--cd-primary-dark); background:var(--cd-primary-soft); }
.cd-care-flow-patient > i { display:grid; place-items:center; width:30px; height:30px; border-radius:9px; color:#fff; background:var(--cd-primary); }
.cd-care-flow-patient span { color:var(--cd-ink-soft); font-size:.65rem; }
.cd-care-flow-patient strong { display:block; color:var(--cd-ink); font-size:.76rem; }
.cd-care-flow-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.55rem; }
.cd-care-flow-grid article { position:relative; display:flex; flex-direction:column; min-height:0; padding:.7rem .8rem; overflow:hidden; border:1px solid var(--cd-border); border-radius:14px; background:#fbfdfd; transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.cd-care-flow-grid article:not(.is-locked):hover { transform:translateY(-2px); border-color:#99e7dc; box-shadow:0 10px 24px rgba(15,118,110,.08); }
.cd-care-flow-grid article.is-current { border-color:#5eead4; background:linear-gradient(145deg,#f0fdfa,#fff); }
.cd-care-flow-grid article.is-complete .cd-care-flow-number { color:#fff; background:var(--cd-primary); }
.cd-care-flow-grid article.is-locked { opacity:.58; background:#f8fafc; }
.cd-care-flow-number { position:absolute; top:.55rem; right:.55rem; display:grid; place-items:center; width:21px; height:21px; border-radius:8px; color:var(--cd-ink-soft); background:#e9eff1; font-size:.68rem; font-weight:800; }
.cd-care-flow-icon { display:grid; place-items:center; width:30px; height:30px; margin-bottom:.45rem; border-radius:9px; font-size:.8rem; color:var(--cd-primary-dark); background:var(--cd-primary-soft); }
.cd-care-flow-grid small { color:var(--cd-primary); font-size:.62rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.cd-care-flow-grid h3 { margin:.15rem 0 .2rem; font-size:.8rem; font-weight:800; }
.cd-care-flow-grid p { margin:0 0 .5rem; color:var(--cd-ink-soft); font-size:.66rem; line-height:1.4; }
.cd-care-flow-grid a,.cd-care-flow-disabled { display:flex; align-items:center; gap:.35rem; margin-top:auto; color:var(--cd-primary-dark); text-decoration:none; font-size:.7rem; font-weight:800; }
.cd-care-flow-grid a i { transition:transform .2s ease; }
.cd-care-flow-grid a:hover i { transform:translateX(3px); }
.cd-care-flow-disabled { color:#94a3b8; }

.cd-owner-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.85rem; }
.cd-owner-metrics article { display:flex; align-items:flex-start; gap:.8rem; min-width:0; padding:1.15rem; border:1px solid var(--cd-border); border-radius:15px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-owner-metric-icon { display:grid; place-items:center; width:40px; height:40px; flex:0 0 40px; border-radius:11px; color:var(--cd-primary-dark); background:var(--cd-primary-soft); }
.cd-owner-metric-icon.sky { color:#0369a1; background:#e0f2fe; }
.cd-owner-metric-icon.violet { color:#6d28d9; background:#ede9fe; }
.cd-owner-metric-icon.amber { color:#b45309; background:#fef3c7; }
.cd-owner-metrics small { display:block; margin-bottom:.18rem; color:var(--cd-ink-soft); font-size:.67rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.cd-owner-metrics strong { display:block; overflow:hidden; color:var(--cd-ink); font-size:1.35rem; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.cd-owner-metrics p { margin:.25rem 0 0; color:#94a3b8; font-size:.67rem; }

.cd-owner-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr); gap:1rem; }
.cd-owner-section { padding:1.25rem; border:1px solid var(--cd-border); border-radius:16px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-owner-section-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-bottom:1rem; border-bottom:1px solid var(--cd-border); }
.cd-owner-section-head span { display:block; margin-bottom:.2rem; color:var(--cd-primary); font-size:.65rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.cd-owner-section-head h2 { margin:0; font-size:1rem; font-weight:700; }
.cd-owner-section-head > a { color:var(--cd-primary-dark); text-decoration:none; font-size:.72rem; font-weight:700; }

.cd-agenda-list article { display:grid; grid-template-columns:48px minmax(0,1fr) auto; align-items:center; gap:.8rem; padding:.8rem 0; border-bottom:1px solid #edf1f3; }
.cd-agenda-list article:last-child { border-bottom:0; }
.cd-agenda-list time { display:grid; place-items:center; padding:.4rem; border-radius:10px; color:var(--cd-primary-dark); background:var(--cd-primary-soft); }
.cd-agenda-list time strong { font-size:1rem; line-height:1; }
.cd-agenda-list time span { margin-top:.2rem; font-size:.58rem; font-weight:700; text-transform:uppercase; }
.cd-agenda-list h3 { margin:0 0 .2rem; font-size:.84rem; font-weight:700; }
.cd-agenda-list p { margin:0; color:var(--cd-ink-soft); font-size:.7rem; }
.cd-status-dot { padding:.3rem .55rem; border-radius:999px; color:#92400e; background:#fef3c7; font-size:.62rem; font-weight:700; }
.cd-status-dot.status-ap { color:#047857; background:#d1fae5; }
.cd-status-dot.status-cd { color:#1d4ed8; background:#dbeafe; }
.cd-owner-empty { display:grid; place-items:center; gap:.5rem; min-height:150px; color:#94a3b8; text-align:center; }
.cd-owner-empty i { font-size:1.6rem; }
.cd-owner-empty p { margin:0; font-size:.75rem; }

.cd-owner-finance { display:flex; flex-direction:column; }
.cd-collection-ring { position:relative; display:grid; place-items:center; width:132px; height:132px; margin:1.4rem auto; border-radius:50%; background:conic-gradient(var(--cd-primary) calc(var(--collection) * 1%),#e7efee 0); }
.cd-collection-ring::before { content:""; position:absolute; width:98px; height:98px; border-radius:50%; background:#fff; }
.cd-collection-ring > div { position:relative; z-index:1; display:grid; text-align:center; }
.cd-collection-ring strong { color:var(--cd-ink); font-size:1.3rem; }
.cd-collection-ring span { color:var(--cd-ink-soft); font-size:.65rem; }
.cd-finance-breakdown { display:grid; gap:.65rem; margin-bottom:1rem; }
.cd-finance-breakdown div { display:flex; align-items:center; justify-content:space-between; gap:.8rem; font-size:.72rem; }
.cd-finance-breakdown span { display:flex; align-items:center; gap:.4rem; color:var(--cd-ink-soft); }
.cd-finance-breakdown i { width:9px; height:9px; border-radius:3px; background:var(--cd-primary); }
.cd-finance-breakdown i.pending { background:#d9e3e2; }

.cd-recent-patients > div { display:grid; grid-template-columns:38px minmax(0,1fr) 28px; align-items:center; gap:.7rem; padding:.65rem 0; border-bottom:1px solid #edf1f3; }
.cd-recent-patients > div:last-child { border-bottom:0; }
.cd-recent-patients > div > span { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; color:var(--cd-primary-dark); background:var(--cd-primary-soft); font-size:.7rem; font-weight:800; }
.cd-recent-patients strong,.cd-recent-patients small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cd-recent-patients strong { font-size:.78rem; }
.cd-recent-patients small { margin-top:.15rem; color:var(--cd-ink-soft); font-size:.65rem; }
.cd-recent-patients a { display:grid; place-items:center; width:28px; height:28px; border-radius:8px; color:var(--cd-primary-dark); text-decoration:none; background:#f4f8f7; }

.cd-owner-tool-list { display:grid; }
.cd-owner-tool-list a { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:.7rem; padding:.75rem 0; border-bottom:1px solid #edf1f3; color:var(--cd-ink); text-decoration:none; }
.cd-owner-tool-list a:last-child { border-bottom:0; }
.cd-owner-tool-list a > i:first-child { display:grid; place-items:center; width:34px; height:34px; border-radius:9px; color:var(--cd-primary-dark); background:var(--cd-primary-soft); }
.cd-owner-tool-list a > i:last-child { color:#94a3b8; font-size:.65rem; }
.cd-owner-tool-list strong,.cd-owner-tool-list small { display:block; }
.cd-owner-tool-list strong { font-size:.76rem; }
.cd-owner-tool-list small { margin-top:.15rem; color:var(--cd-ink-soft); font-size:.63rem; }

@media (max-width:1050px) {
  .cd-care-flow-grid { grid-template-columns:repeat(2,1fr); }
  .cd-owner-metrics { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:780px) {
  .cd-owner-hero { align-items:flex-start; flex-direction:column; }
  .cd-owner-actions { width:100%; justify-content:flex-start; }
  .cd-owner-actions .btn { flex:1; }
  .cd-owner-grid { grid-template-columns:1fr; }
}

@media (max-width:520px) {
  .cd-care-flow-head { align-items:flex-start; flex-direction:column; }
  .cd-care-flow-patient { width:100%; }
  .cd-care-flow-grid { grid-template-columns:1fr; }
  .cd-care-flow-grid article { min-height:0; }
  .cd-owner-metrics { grid-template-columns:1fr; }
  .cd-owner-hero { padding:1.25rem; }
  .cd-owner-actions { flex-direction:column; }
  .cd-agenda-list article { grid-template-columns:46px minmax(0,1fr); }
  .cd-status-dot { grid-column:2; justify-self:start; }
}

/* ---------- Registro de propietarios ---------- */
.cd-register-prompt { margin:1.25rem 0 0; color:var(--cd-ink-soft); text-align:center; font-size:.8rem; }
.cd-register-prompt a { color:var(--cd-primary-dark); font-weight:700; }
.cd-register-page { background:#eef5f4; }
.cd-register-errors { display:flex; gap:.9rem; padding:1rem 1.1rem; border:1px solid #fecdd3; border-radius:14px; color:#881337; background:#fff1f2; outline:none; }
.cd-register-errors-icon { display:grid; place-items:center; width:38px; height:38px; flex:0 0 38px; border-radius:11px; color:#fff; background:#e11d48; }
.cd-register-errors h3 { margin:0 0 .2rem; color:#881337; font-size:1rem; font-weight:800; }
.cd-register-errors p { margin:0 0 .35rem; font-size:.86rem; }
.cd-register-errors ul { margin:0; padding-left:1.1rem; font-size:.86rem; }
.cd-register-shell { min-height:100vh; display:grid; grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr); }
.cd-register-aside { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; padding:clamp(2rem,4vw,4.5rem); color:#fff; background:linear-gradient(150deg,#0b3e3a,#0f766e); }
.cd-register-aside::after { content:""; position:absolute; width:420px; height:420px; right:-230px; bottom:-210px; border:70px solid rgba(255,255,255,.06); border-radius:50%; }
.cd-register-brand { position:relative; display:flex; align-items:center; gap:.7rem; color:#fff; text-decoration:none; font-weight:800; }
.cd-register-brand span { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; color:var(--cd-primary-dark); background:#fff; }
.cd-register-aside > div { position:relative; max-width:470px; }
.cd-register-kicker { display:block; margin-bottom:.7rem; color:#99f6e4; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.cd-register-aside h1 { margin:0 0 1rem; color:#fff; font-size:clamp(2rem,3.5vw,3.8rem); font-weight:800; line-height:1.05; }
.cd-register-aside p { margin:0; color:rgba(255,255,255,.7); line-height:1.65; }
.cd-register-aside ul { position:relative; display:grid; gap:.7rem; padding:0; margin:0; list-style:none; color:rgba(255,255,255,.85); font-size:.8rem; font-weight:600; }
.cd-register-aside li i { margin-right:.5rem; color:#99f6e4; }

.cd-register-panel { padding:clamp(1.5rem,5vw,4.5rem); background:#fff; }
.cd-register-heading { max-width:760px; margin:0 auto 2rem; }
.cd-register-heading > a { color:var(--cd-primary-dark); text-decoration:none; font-size:.8rem; font-weight:700; }
.cd-register-heading > span { display:block; margin:2rem 0 .45rem; color:var(--cd-primary); font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.cd-register-heading h2 { margin:0 0 .45rem; font-size:1.8rem; font-weight:800; }
.cd-register-heading p { margin:0; color:var(--cd-ink-soft); }
.cd-register-form { display:grid; gap:1.1rem; max-width:760px; margin:0 auto; }
.cd-register-form fieldset { padding:1.25rem; border:1px solid var(--cd-border); border-radius:15px; background:#fbfdfd; }
.cd-register-form legend { float:none; width:auto; padding:0; margin:0 0 1rem; color:var(--cd-ink); font-size:.82rem; font-weight:700; }
.cd-register-form legend span { display:inline-grid; place-items:center; width:27px; height:27px; margin-right:.4rem; border-radius:8px; color:#fff; background:var(--cd-primary); font-size:.68rem; }
.cd-register-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.2rem 1rem; }
.cd-register-grid > div:nth-child(5) { grid-column:1/-1; }
.cd-register-full { grid-column:1/-1; }
.cd-register-form .helptext,.cd-register-form .form-text { color:#84939b; font-size:.65rem; }
.cd-register-submit { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:.4rem; }
.cd-register-submit p { margin:0; color:var(--cd-ink-soft); font-size:.72rem; }
.cd-register-submit p i { color:var(--cd-primary); }
.cd-password-field { min-width:0; }
.cd-password-meter { display:grid; grid-template-columns:repeat(4,1fr); gap:.35rem; margin:-.15rem 0 .8rem; }
.cd-password-meter i { height:4px; border-radius:999px; background:#e2e8f0; transition:background-color .2s ease,transform .2s ease; }
.cd-password-meter i.is-valid { transform:scaleY(1.35); background:#10b981; }
.cd-password-rules { display:grid; gap:.42rem; padding:0; margin:0; list-style:none; }
.cd-password-rules li,.cd-password-match { display:flex; align-items:flex-start; gap:.42rem; margin:0; color:#84939b; font-size:.68rem; transition:color .2s ease; }
.cd-password-rules li i,.cd-password-match i { width:14px; margin-top:.1rem; flex:0 0 14px; }
.cd-password-rules li.is-valid,.cd-password-match.is-valid { color:#047857; font-weight:600; }
.cd-password-rules li.is-valid i,.cd-password-match.is-valid i { color:#10b981; }

@media (max-width:820px) {
  .cd-register-shell { grid-template-columns:1fr; }
  .cd-register-aside { position:relative; height:auto; min-height:290px; gap:2.5rem; padding:2rem; }
  .cd-register-aside ul { display:none; }
  .cd-register-panel { padding:2rem 1.25rem; }
}

@media (max-width:560px) {
  .cd-register-grid { grid-template-columns:1fr; }
  .cd-register-grid > div:nth-child(5),.cd-register-full { grid-column:auto; }
  .cd-register-submit { align-items:stretch; flex-direction:column; }
}

/* ---------- Superadministración de plataforma ---------- */
.cd-platform-dashboard { display:grid; gap:1.15rem; }
.cd-platform-hero { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.6rem 1.75rem; border-radius:18px; color:#fff; background:linear-gradient(115deg,#102f46,#174f65); box-shadow:0 12px 30px rgba(15,47,68,.22); }
.cd-platform-hero > div:first-child > span { display:flex; align-items:center; gap:.45rem; margin-bottom:.4rem; color:#a5d9df; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.cd-platform-hero h1 { margin:0 0 .3rem; color:#fff; font-size:1.8rem; font-weight:800; }
.cd-platform-hero p { margin:0; color:rgba(255,255,255,.7); font-size:.84rem; }
.cd-platform-hero > div:last-child { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.55rem; }
.cd-platform-hero .btn-light { color:#123a4d; }

.cd-platform-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.85rem; }
.cd-platform-metrics article { display:flex; align-items:flex-start; gap:.8rem; padding:1.1rem; border:1px solid var(--cd-border); border-radius:14px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-platform-metrics article > i { display:grid; place-items:center; width:40px; height:40px; flex:0 0 40px; border-radius:10px; color:#174f65; background:#e2f1f4; }
.cd-platform-metrics span,.cd-platform-metrics strong,.cd-platform-metrics small { display:block; }
.cd-platform-metrics span { margin-bottom:.18rem; color:var(--cd-ink-soft); font-size:.65rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.cd-platform-metrics strong { color:var(--cd-ink); font-size:1.28rem; line-height:1.2; }
.cd-platform-metrics small { margin-top:.2rem; color:#94a3b8; font-size:.65rem; }

.cd-platform-section { min-width:0; padding:1.25rem; border:1px solid var(--cd-border); border-radius:16px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-platform-section-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-bottom:1rem; border-bottom:1px solid var(--cd-border); }
.cd-platform-section-head span { display:block; margin-bottom:.2rem; color:#19708a; font-size:.64rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.cd-platform-section-head h2 { margin:0 0 .2rem; font-size:1rem; font-weight:700; }
.cd-platform-section-head p { margin:0; color:var(--cd-ink-soft); font-size:.7rem; }
.cd-clinic-table-wrap { overflow-x:auto; }
.cd-clinic-table { width:100%; min-width:1050px; border-collapse:collapse; }
.cd-clinic-table th { padding:.75rem .65rem; border-bottom:1px solid var(--cd-border); color:var(--cd-ink-soft); font-size:.62rem; font-weight:700; letter-spacing:.06em; text-align:left; text-transform:uppercase; }
.cd-clinic-table td { padding:.85rem .65rem; border-bottom:1px solid #edf1f3; color:var(--cd-ink); font-size:.72rem; vertical-align:middle; }
.cd-clinic-table tbody tr:hover { background:#f8fbfc; }
.cd-clinic-table td > strong,.cd-clinic-table td > small { display:block; }
.cd-clinic-table td > small { margin-top:.2rem; color:var(--cd-ink-soft); font-size:.63rem; }
.cd-clinic-table td:last-child a { display:grid; place-items:center; width:28px; height:28px; border-radius:8px; color:#174f65; background:#eaf3f5; text-decoration:none; }
.cd-clinic-name { display:flex; align-items:center; gap:.65rem; }
.cd-clinic-name > span { display:grid; place-items:center; width:36px; height:36px; flex:0 0 36px; border-radius:10px; color:#fff; background:linear-gradient(135deg,#226a7f,#123c52); font-weight:800; }
.cd-clinic-name strong,.cd-clinic-name small { display:block; }
.cd-clinic-name small { margin-top:.15rem; color:var(--cd-ink-soft); font-size:.61rem; }
.cd-plan-badge { display:inline-flex; padding:.3rem .55rem; border-radius:999px; color:#155e75; background:#cffafe; font-size:.62rem; font-weight:700; }
.cd-clinic-status { display:inline-flex; align-items:center; gap:.4rem; color:#9f1239; font-size:.65rem; font-weight:700; }
.cd-clinic-status i { width:7px; height:7px; border-radius:50%; background:#fb7185; }
.cd-clinic-status.active { color:#047857; }
.cd-clinic-status.active i { background:#10b981; box-shadow:0 0 0 3px #d1fae5; }
.cd-platform-empty { display:grid; place-items:center; gap:.7rem; min-height:190px; color:#94a3b8; }
.cd-platform-empty > i { font-size:1.8rem; }
.cd-platform-empty p { margin:0; }

.cd-platform-bottom { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.cd-platform-health { display:grid; gap:.15rem; padding-top:.65rem; }
.cd-platform-health div { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.65rem 0; border-bottom:1px solid #edf1f3; font-size:.72rem; }
.cd-platform-health div:last-child { border-bottom:0; }
.cd-platform-health span { color:var(--cd-ink-soft); }
.cd-platform-health span i { width:18px; color:#0f766e; }
.cd-platform-health strong { color:#047857; font-size:.68rem; }
.cd-platform-links { display:grid; }
.cd-platform-links a { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:.7rem; padding:.7rem 0; border-bottom:1px solid #edf1f3; color:var(--cd-ink); text-decoration:none; }
.cd-platform-links a:last-child { border-bottom:0; }
.cd-platform-links a > i:first-child { display:grid; place-items:center; width:34px; height:34px; border-radius:9px; color:#174f65; background:#e2f1f4; }
.cd-platform-links a > i:last-child { color:#94a3b8; font-size:.65rem; }
.cd-platform-links strong,.cd-platform-links small { display:block; }
.cd-platform-links strong { font-size:.75rem; }
.cd-platform-links small { margin-top:.15rem; color:var(--cd-ink-soft); font-size:.62rem; }

@media (max-width:1050px) {
  .cd-platform-metrics { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:750px) {
  .cd-platform-hero { align-items:flex-start; flex-direction:column; }
  .cd-platform-hero > div:last-child { width:100%; justify-content:flex-start; }
  .cd-platform-hero .btn { flex:1; }
  .cd-platform-bottom { grid-template-columns:1fr; }
}

@media (max-width:520px) {
  .cd-platform-metrics { grid-template-columns:1fr; }
  .cd-platform-hero { padding:1.25rem; }
  .cd-platform-hero > div:last-child { flex-direction:column; }
}

/* ===== Recetas medicas ===== */
.cd-prescription-page, .cd-rx-print-page { display:grid; gap:1rem; }
.cd-rx-heading h1 { margin:.15rem 0 .2rem; font-size:1.5rem; }
.cd-rx-heading p { margin:0; color:var(--cd-ink-soft); font-size:.85rem; }
.cd-rx-form { display:grid; gap:1rem; }
.cd-rx-card { padding:1.1rem 1.2rem; border:1px solid var(--cd-border); border-radius:16px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-rx-card h2 { display:flex; align-items:center; gap:.5rem; margin:0 0 .9rem; font-size:1rem; color:var(--cd-primary-dark); }
.cd-rx-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:.8rem; }
.cd-rx-card label { display:grid; gap:.3rem; font-size:.72rem; font-weight:700; color:var(--cd-ink-soft); text-transform:uppercase; letter-spacing:.03em; }
.cd-rx-full { margin-top:.8rem; }
.cd-rx-error { font-weight:600; color:#b42318; text-transform:none; letter-spacing:0; }

.cd-rx-item { position:relative; margin-bottom:.8rem; padding:.9rem 1rem; border:1px solid #d9eeeb; border-radius:14px; background:var(--cd-primary-soft); }
.cd-rx-item.is-removed { display:none; }
.cd-rx-item-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:.6rem; }
.cd-rx-number { display:grid; place-items:center; width:26px; height:26px; border-radius:50%; color:#fff; font-size:.8rem; font-weight:800; background:var(--cd-primary); }
.cd-rx-remove { border:0; border-radius:8px; padding:.25rem .5rem; color:#b42318; background:transparent; cursor:pointer; }
.cd-rx-remove:hover { background:#fee4e2; }
.cd-rx-item-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:.7rem; }
.cd-rx-item-grid .span-2 { grid-column:span 2; }
.cd-rx-delete { display:flex; align-items:center; gap:.4rem; margin-top:.6rem; font-size:.7rem; color:var(--cd-ink-soft); }
.cd-rx-actions { display:flex; justify-content:flex-end; gap:.6rem; }
.cd-rx-previous { margin:0; padding:0; list-style:none; display:grid; gap:.5rem; }
.cd-rx-previous li { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.6rem .8rem; border:1px solid var(--cd-border); border-radius:12px; }
.cd-rx-previous span { display:block; color:var(--cd-ink-soft); font-size:.8rem; }

/* Hoja imprimible */
.cd-rx-toolbar { display:flex; justify-content:space-between; gap:.6rem; }
.cd-rx-sheet { position:relative; overflow:hidden; max-width:780px; margin:0 auto; padding:2.4rem 2.6rem 2rem; border:1px solid var(--cd-border); border-radius:18px; background:#fff; box-shadow:var(--cd-shadow-lg); }
.cd-rx-sheet::after { content:""; position:absolute; inset:10px; border:1px solid #e6f2f0; border-radius:12px; pointer-events:none; }
.cd-rx-watermark { position:absolute; right:-1rem; bottom:-3rem; font-family:Georgia,'Times New Roman',serif; font-size:22rem; line-height:1; color:var(--cd-primary); opacity:.045; pointer-events:none; user-select:none; }
.cd-rx-sheet > *:not(.cd-rx-watermark) { position:relative; }

.cd-rx-sheet-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem; padding-bottom:1.1rem; border-bottom:3px double var(--cd-primary); }
.cd-rx-brand { display:flex; align-items:flex-start; gap:.85rem; }
.cd-rx-logo { display:grid; place-items:center; width:52px; height:52px; border-radius:14px; color:#fff; font-size:1.4rem; background:linear-gradient(135deg,var(--cd-primary) 0%,var(--cd-primary-dark) 100%); box-shadow:0 4px 10px rgba(15,118,110,.28); }
.cd-rx-clinic h1 { margin:0; font-family:Georgia,'Times New Roman',serif; font-size:1.55rem; letter-spacing:.01em; color:var(--cd-primary-dark); }
.cd-rx-clinic-tag { margin:.05rem 0 .4rem; font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--cd-primary); }
.cd-rx-clinic-contact { display:flex; flex-wrap:wrap; gap:.35rem 1rem; margin:0; color:var(--cd-ink-soft); font-size:.74rem; }
.cd-rx-clinic-contact i { margin-right:.25rem; color:var(--cd-primary); font-size:.7rem; }
.cd-rx-stamp { display:grid; justify-items:center; gap:.1rem; padding:.65rem 1rem .55rem; border:1.5px solid var(--cd-primary); border-radius:12px; background:var(--cd-primary-soft); text-align:center; }
.cd-rx-stamp span { font-size:.6rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; color:var(--cd-primary-dark); }
.cd-rx-stamp strong { font-size:1.15rem; letter-spacing:.02em; color:var(--cd-ink); }
.cd-rx-stamp small { color:var(--cd-ink-soft); font-size:.68rem; }

.cd-rx-patient { display:grid; grid-template-columns:repeat(4,1fr); gap:.9rem 1.4rem; padding:1.1rem 0 1.2rem; border-bottom:1px solid var(--cd-border); }
.cd-rx-field-wide { grid-column:span 2; }
.cd-rx-field-full { grid-column:1 / -1; }
.cd-rx-field span { display:block; margin-bottom:.1rem; font-size:.58rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:var(--cd-ink-soft); }
.cd-rx-field strong { display:block; padding-bottom:.25rem; border-bottom:1px dotted #b9d6d1; font-size:.92rem; font-weight:600; color:var(--cd-ink); }

.cd-rx-body { display:grid; grid-template-columns:70px 1fr; gap:1rem; padding:1.4rem 0 1.2rem; }
.cd-rx-symbol { font-family:Georgia,'Times New Roman',serif; font-size:3.4rem; line-height:.9; color:var(--cd-primary); }
.cd-rx-list { margin:0; padding:0 0 0 1.25rem; display:grid; gap:1.05rem; counter-reset:med; }
.cd-rx-list li { padding-bottom:.85rem; border-bottom:1px dashed #d5e6e3; }
.cd-rx-list li:last-child { border-bottom:0; padding-bottom:0; }
.cd-rx-list li::marker { font-weight:800; color:var(--cd-primary); }
.cd-rx-med { display:flex; flex-wrap:wrap; align-items:baseline; gap:.55rem; }
.cd-rx-med strong { font-size:1.05rem; letter-spacing:.01em; }
.cd-rx-med span { color:var(--cd-ink-soft); font-size:.85rem; }
.cd-rx-med em { margin-left:auto; padding:.14rem .6rem; border:1px solid #cfe9e4; border-radius:999px; background:var(--cd-primary-soft); color:var(--cd-primary-dark); font-size:.7rem; font-style:normal; font-weight:700; white-space:nowrap; }
.cd-rx-posology { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; margin-top:.3rem; font-size:.9rem; font-weight:600; color:var(--cd-ink); }
.cd-rx-dot { width:5px; height:5px; border-radius:50%; background:var(--cd-primary-light); }
.cd-rx-dot:first-child { display:none; }
.cd-rx-note { margin-top:.3rem; color:var(--cd-ink-soft); font-size:.8rem; }
.cd-rx-note i { margin-right:.3rem; color:var(--cd-primary); }

.cd-rx-instructions { margin-bottom:1.2rem; padding:.85rem 1rem; border-left:3px solid var(--cd-primary); border-radius:0 12px 12px 0; background:#f4faf9; }
.cd-rx-instructions h3 { margin:0 0 .3rem; font-size:.72rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:var(--cd-primary-dark); }
.cd-rx-instructions h3 i { margin-right:.35rem; }
.cd-rx-instructions p { margin:0; font-size:.88rem; }

.cd-rx-foot { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-top:2.6rem; padding-top:1rem; border-top:1px solid var(--cd-border); }
.cd-rx-next { margin:0 0 .35rem; font-size:.85rem; }
.cd-rx-next i { margin-right:.3rem; color:var(--cd-primary); }
.cd-rx-legal { margin:0; color:var(--cd-ink-soft); font-size:.68rem; font-style:italic; }
.cd-rx-line { padding-top:.45rem; min-width:250px; border-top:1.5px solid var(--cd-ink); text-align:center; }
.cd-rx-line span { display:block; font-weight:700; font-size:.92rem; }
.cd-rx-line small { color:var(--cd-ink-soft); font-size:.68rem; }

@media print {
  .no-print, .cd-sidebar, .cd-topbar, nav, header.cd-patient-header, .cd-record-tabs { display:none !important; }
  body, .container-fluid, main { margin:0 !important; padding:0 !important; background:#fff !important; }
  .cd-rx-sheet { max-width:none; border:0; border-radius:0; box-shadow:none; padding:.5cm .2cm; }
  .cd-rx-sheet::after { display:none; }
  .cd-rx-watermark, .cd-rx-logo, .cd-rx-stamp, .cd-rx-instructions, .cd-rx-med em { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  @page { margin:1.4cm; }
}

@media (max-width:720px) {
  .cd-rx-item-grid .span-2 { grid-column:span 1; }
  .cd-rx-sheet { padding:1.3rem 1.1rem; }
  .cd-rx-sheet-head { flex-direction:column; }
  .cd-rx-stamp { justify-self:start; }
  .cd-rx-patient { grid-template-columns:1fr 1fr; }
  .cd-rx-body { grid-template-columns:1fr; gap:.3rem; }
  .cd-rx-symbol { font-size:2.4rem; }
  .cd-rx-foot { flex-direction:column; align-items:stretch; }
  .cd-rx-line { min-width:0; }
}

/* Recetas dentro de la tarjeta de atencion */
.cd-attention-rx { margin:.5rem 0 0; padding:0; list-style:none; display:grid; gap:.4rem; }
.cd-attention-rx li { display:flex; align-items:center; justify-content:space-between; gap:.8rem; padding:.5rem .7rem; border:1px solid var(--cd-border); border-radius:10px; }
.cd-attention-rx span { display:block; color:var(--cd-ink-soft); font-size:.78rem; }
.cd-attention-rx a { font-size:.78rem; font-weight:700; color:var(--cd-primary-dark); text-decoration:none; white-space:nowrap; }
.cd-attention-rx a:hover { text-decoration:underline; }
.cd-attention-actions { margin-top:.7rem; display:flex; gap:.5rem; }
.cd-attention-rx-btn { display:inline-flex; align-items:center; gap:.4rem; padding:.4rem .8rem; border:1px solid #cfe9e4; border-radius:999px; color:var(--cd-primary-dark); background:var(--cd-primary-soft); font-size:.78rem; font-weight:700; text-decoration:none; }
.cd-attention-rx-btn:hover { color:#fff; background:var(--cd-primary); }

/* Autocompletado de medicamentos */
.cd-rx-suggest { position:absolute; z-index:1200; margin:0; padding:.25rem; max-height:260px; overflow-y:auto; list-style:none; border:1px solid var(--cd-border); border-radius:12px; background:#fff; box-shadow:0 12px 28px rgba(16,42,38,.16); }
.cd-rx-suggest li { display:grid; gap:.05rem; padding:.45rem .6rem; border-radius:8px; cursor:pointer; }
.cd-rx-suggest li:hover, .cd-rx-suggest li.is-active { background:var(--cd-primary-soft); }
.cd-rx-suggest strong { font-size:.85rem; color:var(--cd-ink); }
.cd-rx-suggest span { font-size:.75rem; color:var(--cd-ink-soft); }
.cd-rx-suggest em { font-size:.7rem; font-style:normal; color:var(--cd-primary); }

/* ===== Agenda de citas ===== */
.cd-agenda-page { display:grid; gap:1rem; }
.cd-agenda-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; }
.cd-agenda-heading h1 { margin:.15rem 0 .2rem; font-size:1.5rem; }
.cd-agenda-heading p { margin:0; color:var(--cd-ink-soft); font-size:.85rem; }
.cd-agenda-bar { display:flex; flex-wrap:wrap; align-items:center; gap:.7rem; padding:.7rem .9rem; border:1px solid var(--cd-border); border-radius:14px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-agenda-nav { display:flex; align-items:center; gap:.4rem; }
.cd-agenda-arrow, .cd-agenda-today { display:grid; place-items:center; min-width:36px; height:36px; padding:0 .7rem; border:1px solid var(--cd-border); border-radius:10px; color:var(--cd-ink); font-size:.8rem; font-weight:700; text-decoration:none; background:#fff; }
.cd-agenda-arrow:hover, .cd-agenda-today:hover { border-color:var(--cd-primary); color:var(--cd-primary-dark); }
.cd-agenda-today.is-current { color:#fff; background:var(--cd-primary); border-color:var(--cd-primary); }
.cd-agenda-date { width:auto; }
.cd-agenda-doctor { max-width:230px; }
.cd-agenda-block { margin-left:auto; }

.cd-agenda-empty { display:grid; justify-items:center; gap:.4rem; padding:2.6rem 1rem; border:1px dashed #bcd8d3; border-radius:16px; background:#fff; text-align:center; }
.cd-agenda-empty i { font-size:1.8rem; color:var(--cd-primary); }
.cd-agenda-empty h3 { margin:.2rem 0 0; font-size:1.05rem; }
.cd-agenda-empty p { margin:0 0 .6rem; color:var(--cd-ink-soft); font-size:.85rem; }

.cd-agenda-grid { display:grid; gap:.55rem; }
.cd-slot { display:flex; align-items:center; gap:.9rem; border:1px solid var(--cd-border); border-radius:14px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-slot-time { display:grid; justify-items:center; min-width:64px; padding:.6rem .5rem; border-right:1px solid #e2efec; color:var(--cd-primary-dark); font-weight:800; font-size:.95rem; }
.cd-slot-time small { color:var(--cd-ink-soft); font-weight:600; font-size:.66rem; }

.cd-slot.is-free { flex-direction:column; align-items:stretch; gap:0; }
.cd-slot.is-free summary { display:flex; align-items:center; gap:.9rem; cursor:pointer; list-style:none; }
.cd-slot.is-free summary::-webkit-details-marker { display:none; }
.cd-slot-free-label { color:var(--cd-primary); font-size:.82rem; font-weight:700; }
.cd-slot.is-free:hover { border-color:#9fd6cd; }
.cd-slot.is-past summary { opacity:.5; }
.cd-slot-form { display:grid; gap:.6rem; padding: .4rem .9rem .9rem calc(64px + .9rem); }
.cd-slot-form label { display:grid; gap:.25rem; font-size:.7rem; font-weight:700; color:var(--cd-ink-soft); text-transform:uppercase; letter-spacing:.04em; }
.cd-slot-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.cd-slot-form .btn { justify-self:start; }

.cd-slot.is-busy { padding-right:.8rem; }
.cd-slot-body { display:grid; gap:.1rem; padding:.55rem 0; }
.cd-slot-body strong { font-size:.92rem; }
.cd-slot-body > span { color:var(--cd-ink-soft); font-size:.78rem; }
.cd-slot-meta { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:.15rem; font-size:.72rem; color:var(--cd-ink-soft); }
.cd-slot-status { padding:.08rem .55rem; border-radius:999px; font-weight:800; font-size:.66rem; text-transform:uppercase; letter-spacing:.04em; }
.status-co .cd-slot-status { color:#115e59; background:#ccfbf1; }
.status-rq .cd-slot-status { color:#92400e; background:#fef3c7; }
.status-at .cd-slot-status { color:#1e40af; background:#dbeafe; }
.status-na .cd-slot-status { color:#b42318; background:#fee4e2; }
.cd-slot-actions { display:flex; align-items:center; gap:.35rem; margin-left:auto; }
.cd-slot-actions form { display:flex; gap:.35rem; }
.cd-slot-btn { display:grid; place-items:center; width:32px; height:32px; border:1px solid var(--cd-border); border-radius:9px; color:var(--cd-ink-soft); background:#fff; cursor:pointer; }
.cd-slot-btn:hover { border-color:var(--cd-primary); color:var(--cd-primary-dark); }
.cd-slot-btn.is-danger:hover { border-color:#b42318; color:#b42318; background:#fee4e2; }
.cd-slot-wa { display:grid; place-items:center; width:32px; height:32px; border-radius:9px; color:#fff; font-size:1rem; text-decoration:none; background:#25d366; }
.cd-slot-wa:hover { background:#1ebe5b; color:#fff; }

/* Configuracion de horario */
.cd-schedule-card { display:grid; gap:1rem; padding:1.2rem 1.3rem; border:1px solid var(--cd-border); border-radius:16px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-schedule-slot { display:flex; align-items:center; gap:.8rem; }
.cd-schedule-slot label { font-size:.8rem; font-weight:700; color:var(--cd-ink-soft); }
.cd-schedule-slot select { width:auto; }
.cd-schedule-table { display:grid; gap:.4rem; }
.cd-schedule-row { display:grid; grid-template-columns:170px 1fr 1fr; gap:.8rem; align-items:center; padding:.55rem .7rem; border:1px solid var(--cd-border); border-radius:12px; }
.cd-schedule-head { border:0; padding-bottom:0; font-size:.66rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--cd-ink-soft); }
.cd-schedule-row:not(.cd-schedule-head):not(.is-on) .cd-schedule-range { opacity:.4; pointer-events:none; }
.cd-schedule-row.is-on { border-color:#9fd6cd; background:#f6fbfa; }
.cd-schedule-day { display:flex; align-items:center; gap:.6rem; cursor:pointer; }
.cd-schedule-day input { position:absolute; opacity:0; }
.cd-schedule-switch { position:relative; width:38px; height:22px; border-radius:999px; background:#d7e3e1; transition:background .15s; }
.cd-schedule-switch::after { content:""; position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:#fff; transition:left .15s; }
.cd-schedule-day input:checked + .cd-schedule-switch { background:var(--cd-primary); }
.cd-schedule-day input:checked + .cd-schedule-switch::after { left:19px; }
.cd-schedule-range { display:flex; align-items:center; gap:.45rem; }
.cd-schedule-range span { color:var(--cd-ink-soft); font-size:.75rem; }
.cd-schedule-actions { display:flex; justify-content:flex-end; gap:.6rem; }

@media (max-width:720px) {
  .cd-schedule-row { grid-template-columns:1fr; }
  .cd-slot-form-grid { grid-template-columns:1fr; }
  .cd-slot-form { padding-left:.9rem; }
  .cd-agenda-block { margin-left:0; }
}

/* Calendario semanal tipo Teams */
.cd-view-toggle { display:inline-flex; padding:.2rem; gap:.15rem; border:1px solid var(--cd-border); border-radius:11px; background:#fff; }
.cd-view-toggle a, .cd-view-toggle .is-current { display:inline-flex; align-items:center; gap:.35rem; padding:.35rem .75rem; border-radius:8px; font-size:.78rem; font-weight:700; text-decoration:none; color:var(--cd-ink-soft); }
.cd-view-toggle a:hover { color:var(--cd-primary-dark); background:var(--cd-primary-soft); }
.cd-view-toggle .is-current { color:#fff; background:var(--cd-primary); }
.cd-agenda-tools { display:flex; align-items:center; gap:.6rem; }

.cd-week-wrap { overflow-x:auto; border:1px solid var(--cd-border); border-radius:16px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-week-grid { display:grid; grid-template-columns:52px repeat(7, minmax(108px, 1fr)); min-width:820px; }
.cd-week-gutter-head { border-bottom:1px solid var(--cd-border); }
.cd-week-head { display:grid; justify-items:center; gap:.05rem; padding:.55rem 0 .5rem; border-bottom:1px solid var(--cd-border); border-left:1px solid #eef4f3; text-decoration:none; color:var(--cd-ink-soft); }
.cd-week-head span { font-size:.64rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.cd-week-head strong { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:var(--cd-ink); font-size:.95rem; }
.cd-week-head:hover strong { background:var(--cd-primary-soft); }
.cd-week-head.is-today strong { color:#fff; background:var(--cd-primary); }

.cd-week-gutter { position:relative; height:620px; }
.cd-week-gutter span { position:absolute; right:.5rem; transform:translateY(-50%); color:var(--cd-ink-soft); font-size:.64rem; font-weight:600; }
.cd-week-col { position:relative; display:block; height:620px; border-left:1px solid #eef4f3; background:#fafcfc; text-decoration:none; overflow:hidden; }
.cd-week-col:hover { background:#f4faf9; }
.cd-week-col.is-today { background:#f2fbf9; }
.cd-week-line { position:absolute; left:0; right:0; border-top:1px solid #edf3f2; }
.cd-week-open { position:absolute; left:0; right:0; background:#fff; box-shadow:inset 3px 0 0 #b9e5de; }
.cd-week-col.is-today .cd-week-open { background:#fff; }
.cd-week-blocked { position:absolute; inset:0; display:grid; place-content:center; gap:.2rem; padding:.5rem; background:repeating-linear-gradient(-45deg,#f6f8f8 0 10px,#eef1f1 10px 20px); color:var(--cd-ink-soft); font-size:.68rem; font-weight:700; text-align:center; z-index:2; }

.cd-week-event { position:absolute; left:4px; right:4px; display:grid; align-content:start; gap:.05rem; padding:.28rem .45rem; border-radius:8px; border-left:3px solid; overflow:hidden; z-index:3; }
.cd-week-event strong { font-size:.68rem; line-height:1.15; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cd-week-event em { font-size:.62rem; font-style:normal; opacity:.8; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cd-week-event.status-co { color:#115e59; background:#ccfbf1; border-color:#0f766e; }
.cd-week-event.status-rq { color:#92400e; background:#fef3c7; border-color:#d97706; }
.cd-week-event.status-at { color:#1e40af; background:#dbeafe; border-color:#2563eb; }
.cd-week-event.status-na { color:#b42318; background:#fee4e2; border-color:#d92d20; }
.cd-week-event:hover { filter:brightness(.97); }

.cd-week-now { position:absolute; left:0; right:0; border-top:2px solid #ef4444; z-index:4; }
.cd-week-now::before { content:""; position:absolute; left:-1px; top:-5px; width:8px; height:8px; border-radius:50%; background:#ef4444; }

@media (max-width:720px) {
  .cd-agenda-heading { flex-direction:column; align-items:stretch; }
}

/* Recuperacion de contrasena */
.cd-auth-shell { display:grid; place-items:center; min-height:100vh; padding:1.5rem; }
.cd-auth-card { width:min(430px, 100%); display:grid; gap:1.1rem; }
.cd-auth-brand { justify-content:center; }
.cd-auth-status { display:grid; justify-items:center; gap:.45rem; text-align:center; }
.cd-auth-status-icon { display:grid; place-items:center; width:56px; height:56px; border-radius:50%; color:var(--cd-primary-dark); font-size:1.4rem; background:var(--cd-primary-soft); }
.cd-auth-status-icon.is-error { color:#b42318; background:#fee4e2; }
.cd-auth-status h2 { margin:0; font-size:1.25rem; }
.cd-auth-status p { margin:0; color:var(--cd-ink-soft); font-size:.88rem; }
.cd-auth-hint { margin:0; padding:.6rem .75rem; border-radius:10px; background:var(--cd-primary-soft); color:var(--cd-primary-dark); font-size:.75rem; }
.cd-auth-change-card { display:grid; gap:.9rem; max-width:480px; padding:1.2rem 1.3rem; border:1px solid var(--cd-border); border-radius:16px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-auth-change-card label { display:grid; gap:.3rem; font-size:.72rem; font-weight:700; color:var(--cd-ink-soft); text-transform:uppercase; letter-spacing:.04em; }

.cd-recovery-card { display:grid; gap:.8rem; max-width:640px; padding:1.2rem 1.3rem; border:1px solid var(--cd-border); border-radius:16px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-recovery-card h2 { display:flex; align-items:center; gap:.5rem; margin:0; font-size:1rem; color:var(--cd-primary-dark); }
.cd-recovery-card > p { margin:0; color:var(--cd-ink-soft); font-size:.85rem; }
.cd-recovery-link { display:flex; gap:.5rem; }
.cd-recovery-link input { font-size:.78rem; color:var(--cd-ink-soft); }
.cd-recovery-actions { display:flex; align-items:center; gap:.8rem; }
.cd-recovery-nophone { color:var(--cd-ink-soft); font-size:.8rem; }
.cd-recovery-note { margin:.2rem 0 0; padding:.6rem .75rem; border-radius:10px; background:#f4faf9; color:var(--cd-ink-soft); font-size:.75rem; }
.cd-forgot-link { margin:.4rem 0 0; text-align:center; font-size:.8rem; }
.cd-forgot-link a { color:var(--cd-primary-dark); font-weight:600; text-decoration:none; }
.cd-forgot-link a:hover { text-decoration:underline; }
.cd-team-recovery { margin-left:auto; }

/* Asistente de agenda (voz y texto) */
.cd-assist { position:fixed; right:1.4rem; bottom:1.4rem; z-index:1300; display:grid; justify-items:end; gap:.6rem; }
.cd-assist-fab { display:grid; place-items:center; width:52px; height:52px; border:0; border-radius:50%; color:#fff; font-size:1.15rem; cursor:pointer; background:linear-gradient(135deg,var(--cd-primary) 0%,var(--cd-primary-dark) 100%); box-shadow:0 8px 22px rgba(15,118,110,.4); }
.cd-assist-fab:hover { transform:scale(1.06); }
.cd-assist-panel { width:min(360px, calc(100vw - 2.8rem)); border:1px solid var(--cd-border); border-radius:16px; background:#fff; box-shadow:var(--cd-shadow-lg); overflow:hidden; }
.cd-assist-panel > header { display:flex; align-items:center; justify-content:space-between; padding:.6rem .9rem; color:#fff; background:var(--cd-primary); font-size:.85rem; font-weight:700; }
.cd-assist-panel > header button { border:0; background:transparent; color:#fff; cursor:pointer; font-size:1rem; }
.cd-assist-log { display:grid; gap:.45rem; max-height:260px; overflow-y:auto; padding:.8rem .9rem; }
.cd-assist-msg { margin:0; padding:.5rem .7rem; border-radius:12px; font-size:.8rem; line-height:1.35; }
.cd-assist-msg.is-bot { justify-self:start; background:var(--cd-primary-soft); color:var(--cd-primary-dark); border-bottom-left-radius:4px; }
.cd-assist-msg.is-yo { justify-self:end; background:#eef2f1; color:var(--cd-ink); border-bottom-right-radius:4px; }
.cd-assist-msg.is-error { background:#fee4e2; color:#b42318; }
#assist-form { display:flex; gap:.4rem; padding:.6rem .7rem; border-top:1px solid var(--cd-border); }
#assist-text { flex:1; border:1px solid var(--cd-border); border-radius:10px; padding:.45rem .6rem; font-size:.82rem; }
#assist-form button { display:grid; place-items:center; width:36px; height:36px; border:1px solid var(--cd-border); border-radius:10px; background:#fff; color:var(--cd-primary-dark); cursor:pointer; }
#assist-form button[type=submit] { background:var(--cd-primary); border-color:var(--cd-primary); color:#fff; }
#assist-mic.is-live { color:#fff; background:#ef4444; border-color:#ef4444; animation:cd-pulso 1.1s infinite; }
#assist-mic:disabled { opacity:.4; cursor:not-allowed; }
@keyframes cd-pulso { 0%,100% { box-shadow:0 0 0 0 rgba(239,68,68,.5); } 50% { box-shadow:0 0 0 8px rgba(239,68,68,0); } }

/* Flujo diario ultracompacto: barra de accesos */
.cd-care-flow-head > div:first-child > p { display:none; }
.cd-care-flow-grid article { flex-direction:row; align-items:center; gap:.55rem; padding:.5rem .65rem; }
.cd-care-flow-grid article p, .cd-care-flow-grid article small { display:none; }
.cd-care-flow-icon { width:28px; height:28px; margin-bottom:0; flex:none; }
.cd-care-flow-number { position:static; order:-1; width:20px; height:20px; flex:none; font-size:.62rem; }
.cd-care-flow-grid h3 { margin:0; font-size:.78rem; line-height:1.2; }
.cd-care-flow-grid a, .cd-care-flow-disabled { margin:0 0 0 auto; font-size:0; }
.cd-care-flow-grid a i, .cd-care-flow-disabled i { font-size:.8rem; }

/* ===== Estilo "banca": menta suave, tarjetas aireadas ===== */
.cd-owner-hero { color:var(--cd-ink); background:linear-gradient(150deg,#cfe6de 0%,#e6f2ee 55%,#f2f8f6 100%); border:1px solid rgba(255,255,255,.7); box-shadow:0 14px 34px rgba(45,90,80,.14); }
.cd-owner-hero h1 { color:var(--cd-ink); }
.cd-owner-hero p { color:#4a635c; }
.cd-owner-kicker { color:var(--cd-primary-dark) !important; }
.cd-agenda-bar, .cd-care-flow, .cd-rx-card, .cd-schedule-card, .cd-recovery-card, .cd-auth-change-card, .cd-week-wrap { border-radius:20px; }
.cd-slot, .cd-attention-card { border-radius:16px; }

/* Foto del odontologo en el saludo */
.cd-hero-identity { display:flex; align-items:center; gap:1rem; }
.cd-hero-avatar { display:grid; place-items:center; flex:none; width:72px; height:72px; border-radius:50%; overflow:hidden; border:3px solid #fff; box-shadow:0 6px 18px rgba(45,90,80,.25); text-decoration:none; }
.cd-hero-avatar img { width:100%; height:100%; object-fit:cover; }
.cd-hero-avatar.is-empty { gap:.1rem; border:2px dashed #8fbcb0; background:rgba(255,255,255,.55); color:var(--cd-primary-dark); }
.cd-hero-avatar.is-empty i { font-size:1rem; }
.cd-hero-avatar.is-empty span { font-size:.55rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.cd-hero-avatar.is-empty:hover { background:#fff; border-style:solid; }
@media (max-width:720px) { .cd-hero-avatar { width:56px; height:56px; } }

/* Recortador de fotografia de perfil */
#div_id_photo { display:none; }
.cd-photo-block { display:flex; align-items:center; gap:1.1rem; margin-bottom:1.1rem; padding:1rem 1.1rem; border:1px solid var(--cd-border); border-radius:16px; background:#fbfdfd; }
.cd-photo-preview { display:grid; place-items:center; flex:none; width:84px; height:84px; border-radius:50%; overflow:hidden; border:3px solid #fff; background:var(--cd-primary-soft); color:var(--cd-primary-dark); font-size:1.3rem; box-shadow:0 6px 16px rgba(45,90,80,.18); }
.cd-photo-preview img { width:100%; height:100%; object-fit:cover; }
.cd-photo-buttons strong { display:block; font-size:.85rem; }
.cd-photo-buttons p { margin:.15rem 0 .55rem; color:var(--cd-ink-soft); font-size:.75rem; }
.cd-photo-buttons > div { display:flex; gap:.5rem; }

.cd-crop-modal { position:fixed; inset:0; z-index:1500; display:grid; place-items:center; padding:1rem; background:rgba(15,42,38,.55); backdrop-filter:blur(4px); }
.cd-crop-card { display:grid; gap:.9rem; padding:1.2rem 1.3rem 1.1rem; border-radius:18px; background:#fff; box-shadow:var(--cd-shadow-lg); }
.cd-crop-card h2 { margin:0; font-size:1rem; color:var(--cd-primary-dark); }
.cd-crop-viewport { position:relative; width:280px; height:280px; margin:0 auto; overflow:hidden; border-radius:14px; background:#0f2a26; touch-action:none; cursor:grab; }
.cd-crop-viewport:active { cursor:grabbing; }
.cd-crop-viewport img { position:absolute; max-width:none; user-select:none; pointer-events:none; }
.cd-crop-mask { position:absolute; inset:0; border-radius:50%; box-shadow:0 0 0 400px rgba(15,42,38,.55); pointer-events:none; }
.cd-crop-zoom { display:flex; align-items:center; gap:.7rem; color:var(--cd-ink-soft); }
.cd-crop-zoom input { flex:1; accent-color:var(--cd-primary); }
.cd-crop-actions { display:flex; justify-content:flex-end; gap:.6rem; }

/* Trazo fino estilo banca: los numeros grandes en semibold, no black */
.cd-owner-metrics strong { font-weight:650; }
.cd-owner-metrics small, .cd-owner-metrics p { font-weight:400; }

/* Widgets personalizables del panel */
.cd-widgets-modal { position:fixed; inset:0; z-index:1500; display:grid; place-items:center; padding:1rem; background:rgba(15,42,38,.5); backdrop-filter:blur(4px); }
.cd-widgets-card { display:grid; gap:.7rem; width:min(400px,100%); padding:1.2rem 1.3rem; border-radius:18px; background:#fff; box-shadow:var(--cd-shadow-lg); }
.cd-widgets-card h2 { margin:0; font-size:1rem; color:var(--cd-primary-dark); }
.cd-widgets-card > p { margin:0; color:var(--cd-ink-soft); font-size:.8rem; }
.cd-widgets-list { display:grid; gap:.35rem; }
.cd-widget-row { display:flex; align-items:center; gap:.6rem; padding:.5rem .65rem; border:1px solid var(--cd-border); border-radius:12px; cursor:pointer; }
.cd-widget-row:hover { background:#f6fbfa; }
.cd-widget-row input { position:absolute; opacity:0; }
.cd-widget-row strong { font-size:.82rem; font-weight:600; }
.cd-widget-row input:checked ~ strong { color:var(--cd-primary-dark); }
.cd-widgets-actions { display:flex; justify-content:flex-end; gap:.6rem; }

/* Chips de estado en el widget de citas */
.status-chip-co { color:#115e59; background:#ccfbf1; }
.status-chip-rq { color:#92400e; background:#fef3c7; }
.status-chip-at { color:#1e40af; background:#dbeafe; }
.status-chip-na { color:#b42318; background:#fee4e2; }
.cd-widget-row input:checked + .cd-schedule-switch { background:var(--cd-primary); }
.cd-widget-row input:checked + .cd-schedule-switch::after { left:19px; }

/* Saludo del hero: "Buenas tardes," arriba y el nombre grande abajo */
.cd-owner-hero h1 { display:grid; gap:.05rem; }
.cd-hero-saludo { font-size:.95rem; font-weight:400; color:#4a635c; letter-spacing:0; }
.cd-hero-nombre { font-size:1.75rem; font-weight:700; line-height:1.15; }

/* ===== Tablero de widgets estilo iPhone ===== */
.cd-widget-board { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.85rem; align-items:stretch; }
.cd-widget { position:relative; min-width:0; grid-column:span 2; display:flex; flex-direction:column; }
.cd-widget.size-s { grid-column:span 1; }
.cd-widget.size-l { grid-column:1 / -1; }
.cd-widget > section, .cd-widget > aside, .cd-widget > div:not(.cd-widget-tools) { flex:1; height:auto; }
/* El contenido interior se reparte para llenar la altura de la fila */
.cd-widget .cd-owner-section { display:flex; flex-direction:column; }
.cd-widget .cd-owner-section .cd-agenda-list,
.cd-widget .cd-owner-section .cd-recent-patients,
.cd-widget .cd-owner-section .cd-owner-tool-list { flex:1; }
.cd-widget .cd-owner-empty { display:grid; place-content:center; height:100%; }
.cd-widget .cd-care-flow { display:flex; flex-direction:column; }
.cd-widget .cd-care-flow-grid { flex:1; align-content:start; }

/* Ajustes internos segun el tamano elegido */
.cd-widget.size-m .cd-care-flow-grid { grid-template-columns:repeat(2,1fr); }
.cd-widget.size-s .cd-care-flow-grid { grid-template-columns:1fr; }
.cd-widget.size-m .cd-owner-metrics { grid-template-columns:repeat(2,1fr); }
.cd-widget.size-s .cd-owner-metrics { grid-template-columns:1fr; }
.cd-widget.size-s .cd-owner-section-head { flex-direction:column; align-items:flex-start; gap:.2rem; }
.cd-widget.size-s .cd-care-flow-head { flex-direction:column; align-items:flex-start; }

/* Bandeja de widgets ocultos */
.cd-widget-tray { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; padding:.7rem .9rem; border:1px dashed #9fd6cd; border-radius:14px; background:rgba(255,255,255,.65); }
.cd-widget-tray > span { color:var(--cd-primary-dark); font-size:.78rem; font-weight:700; }
.cd-widget-tray em { color:var(--cd-ink-soft); font-size:.75rem; }
#tray-chips { display:flex; flex-wrap:wrap; gap:.4rem; }
.cd-tray-chip { display:inline-flex; align-items:center; gap:.35rem; padding:.35rem .75rem; border:1px solid var(--cd-border); border-radius:999px; background:#fff; color:var(--cd-ink); font-size:.75rem; font-weight:600; cursor:pointer; }
.cd-tray-chip:hover { border-color:var(--cd-primary); color:var(--cd-primary-dark); background:var(--cd-primary-soft); }

/* Herramientas de edicion sobre cada widget */
.cd-widget-tools { position:absolute; inset:0; z-index:5; display:none; pointer-events:none; border-radius:18px; outline:2px dashed #8fd0c5; outline-offset:4px; }
.is-editing .cd-widget-tools { display:block; }
.cd-wtool-quitar { position:absolute; top:-9px; left:-9px; display:grid; place-items:center; width:26px; height:26px; border:0; border-radius:50%; color:#fff; background:#64748b; font-size:.7rem; cursor:pointer; pointer-events:auto; box-shadow:0 3px 8px rgba(15,23,42,.3); }
.cd-wtool-quitar:hover { background:#b42318; }
.cd-widget-sizes { position:absolute; bottom:-11px; left:50%; transform:translateX(-50%); display:flex; gap:.25rem; padding:.2rem; border-radius:999px; background:#fff; box-shadow:0 4px 12px rgba(15,23,42,.18); pointer-events:auto; }
.cd-widget-sizes button { width:26px; height:22px; border:0; border-radius:999px; background:transparent; color:var(--cd-ink-soft); font-size:.66rem; font-weight:800; cursor:pointer; }
.cd-widget-sizes button.is-active { color:#fff; background:var(--cd-primary); }

/* Modo edicion: tembleque iPhone */
.is-editing .cd-widget { cursor:grab; }
.is-editing .cd-widget:nth-child(odd) { animation:cd-tiembla 0.32s infinite ease-in-out; }
.is-editing .cd-widget:nth-child(even) { animation:cd-tiembla 0.32s infinite ease-in-out reverse; animation-delay:-.16s; }
.cd-widget.is-dragging { opacity:.45; animation:none !important; }
@keyframes cd-tiembla { 0%,100% { transform:rotate(-.25deg); } 50% { transform:rotate(.25deg); } }
@media (prefers-reduced-motion: reduce) { .is-editing .cd-widget { animation:none !important; } }

@media (max-width:980px) {
  .cd-widget-board { grid-template-columns:repeat(2,1fr); }
  .cd-widget, .cd-widget.size-l { grid-column:span 2; }
  .cd-widget.size-s { grid-column:span 1; }
}
@media (max-width:640px) {
  .cd-widget-board { grid-template-columns:1fr; }
  .cd-widget, .cd-widget.size-s, .cd-widget.size-l { grid-column:span 1; }
}
.cd-wtool-mover { color:var(--cd-primary-dark) !important; }
.cd-wtool-mover:hover { background:var(--cd-primary-soft) !important; }
.cd-wtool-sep { width:1px; height:14px; margin:auto .1rem; background:var(--cd-border); }

/* Recordatorios */
.cd-remind-btn { position:relative; }
.cd-remind-badge { display:inline-grid; place-items:center; min-width:18px; height:18px; margin-left:.4rem; padding:0 .3rem; border-radius:999px; color:#fff; background:#d97706; font-size:.64rem; font-weight:800; }
.cd-remind-wa { width:auto !important; padding:0 .7rem; gap:.35rem; display:inline-flex !important; align-items:center; font-size:.76rem; font-weight:700; }
.cd-remind-nophone { color:var(--cd-ink-soft); font-size:.74rem; }
.cd-slot-btn.is-go { color:#fff; background:var(--cd-primary); border-color:var(--cd-primary); }
.cd-slot-btn.is-go:hover { background:var(--cd-primary-dark); color:#fff; }

/* ===== Receta formato oficial (talonario MSP) ===== */
.cd-rxo { max-width:800px; margin:0 auto; padding:1.6rem 1.9rem 1.2rem; border:1.5px solid #7c9a94; border-radius:14px; background:#fff; box-shadow:var(--cd-shadow-lg); color:#243b36; font-size:.82rem; }
.cd-rxo b { font-weight:600; border-bottom:1px solid #9db8b2; padding:0 .35rem; min-width:2.2rem; display:inline-block; }
.cd-rxo-head { display:flex; justify-content:space-between; gap:1.2rem; }
.cd-rxo-brand { display:flex; gap:.7rem; }
.cd-rxo-logo { display:grid; place-items:center; width:46px; height:46px; border-radius:12px; color:#fff; font-size:1.3rem; background:linear-gradient(135deg,var(--cd-primary),var(--cd-primary-dark)); }
.cd-rxo-brand h1 { margin:0; font-size:1.35rem; font-weight:800; color:var(--cd-primary-dark); letter-spacing:.02em; }
.cd-rxo-doctor { margin:.05rem 0 0; font-family:"Dancing Script","Snell Roundhand",cursive; font-size:1.45rem; font-weight:700; line-height:1.1; color:#2c4a44; }
.cd-rxo-title { margin:0; font-size:.68rem; font-weight:800; letter-spacing:.12em; }
.cd-rxo-numfecha { text-align:right; }
.cd-rxo-num { margin:0 0 .4rem; font-size:.8rem; }
.cd-rxo-num strong { color:#c0392b; font-size:1.05rem; letter-spacing:.05em; }
.cd-rxo-fecha { display:flex; align-items:center; gap:.45rem; justify-content:flex-end; font-size:.72rem; }
.cd-rxo-fecha b { border:1px solid #9db8b2; border-radius:5px; padding:.1rem .35rem; min-width:2rem; text-align:center; }
.cd-rxo-contacto { display:flex; flex-wrap:wrap; gap:.3rem 1.1rem; margin:.5rem 0 0; padding-bottom:.6rem; border-bottom:2px solid var(--cd-primary); color:#4a635c; font-size:.72rem; }
.cd-rxo-contacto i { color:var(--cd-primary); margin-right:.25rem; }

.cd-rxo-paciente { display:grid; gap:.55rem; padding:.8rem 0; border-bottom:1px solid #cfe0dc; }
.cd-rxo-fila { display:flex; flex-wrap:wrap; gap:.5rem 1.4rem; }
.cd-rxo-fila label { font-size:.76rem; }
.cd-rxo-fila label.grande { flex:1; }
.cd-rxo-fila label.grande b { min-width:12rem; }
.cd-rxo-sexo .caja { display:inline-grid; place-items:center; width:15px; height:15px; margin:0 .5rem 0 .2rem; border:1px solid #7c9a94; border-radius:3px; vertical-align:-2px; font-size:.7rem; font-weight:800; line-height:1; }
.chico { min-width:1.6rem !important; }

.cd-rxo-tabla { width:100%; margin:.9rem 0 .4rem; border-collapse:collapse; }
.cd-rxo-tabla th { padding:.4rem .55rem; border:1px solid #7c9a94; background:#eef6f4; font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.03em; text-align:left; }
.cd-rxo-tabla th:last-child { width:32%; }
.cd-rxo-tabla td { padding:.4rem .55rem; border:1px solid #9db8b2; font-size:.8rem; }
.cd-rxo-tabla tr.vacia td { height:1.5rem; }

.cd-rxo-indicaciones { padding:.4rem 0 .6rem; }
.cd-rxo-indicaciones h2 { margin:0 0 .3rem; font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.cd-rxo-indicaciones ol { margin:0; padding-left:1.2rem; display:grid; gap:.3rem; font-size:.8rem; }

.cd-rxo-pie { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-top:1.6rem; }
.cd-rxo-firma { border:1px solid #9db8b2; border-radius:8px; padding:.45rem .6rem 0; min-height:78px; }
.cd-rxo-firma label { font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:#4a635c; }
.cd-rxo-firma p { margin:1.4rem 0 .3rem; text-align:center; font-weight:600; }
.cd-rxo-espacio-firma { min-height:1.6rem; }
.cd-rxo-legal { margin:.8rem 0 0; padding-top:.5rem; border-top:1px dashed #9db8b2; color:#4a635c; font-size:.66rem; font-style:italic; text-align:center; }

@media print {
  .cd-rxo { max-width:none; border-radius:0; box-shadow:none; }
  .cd-rxo-logo, .cd-rxo-tabla th { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
}
@media (max-width:720px) {
  .cd-rxo { padding:1rem; }
  .cd-rxo-head { flex-direction:column; }
  .cd-rxo-numfecha { text-align:left; }
  .cd-rxo-fecha { justify-content:flex-start; }
  .cd-rxo-pie { grid-template-columns:1fr; }
}

/* Panel de datos del paciente en la emision de receta */
.cd-rx-paciente-card { background:#f6fbfa; border-color:#cfe9e4; }
.cd-rx-paciente-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem 1rem; }
.cd-rx-paciente-grid > div > span { display:block; font-size:.6rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--cd-ink-soft); margin-bottom:.15rem; }
.cd-rx-paciente-grid strong { font-size:.88rem; }
@media (max-width:720px) { .cd-rx-paciente-grid { grid-template-columns:1fr; } }

/* ===== Financiamiento: cotizador y cuotas ===== */
.cd-fin-card { display:grid; gap:.9rem; padding:1.1rem 1.2rem; border:1px solid var(--cd-border); border-radius:16px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-fin-title { display:flex; align-items:center; gap:.5rem; margin:0; font-size:.95rem; color:var(--cd-primary-dark); }
.cd-fin-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; }
.cd-fin-grid label { display:grid; gap:.3rem; font-size:.72rem; font-weight:700; color:var(--cd-ink-soft); text-transform:uppercase; letter-spacing:.04em; }
.cd-fin-grid .span-2 { grid-column:span 3; }
.cd-fin-resumen { display:grid; grid-template-columns:repeat(4,1fr); gap:.7rem; }
.cd-fin-resumen > div { padding:.6rem .75rem; border:1px solid var(--cd-border); border-radius:12px; }
.cd-fin-resumen span { display:block; font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--cd-ink-soft); }
.cd-fin-resumen strong { font-size:1rem; }
.cd-fin-resumen .destacado { border-color:var(--cd-primary); background:var(--cd-primary-soft); }
.cd-fin-resumen .destacado strong { color:var(--cd-primary-dark); font-size:1.2rem; }
.cd-fin-tabla-wrap summary { cursor:pointer; font-size:.8rem; font-weight:700; color:var(--cd-primary-dark); }
.cd-fin-tabla { width:100%; margin-top:.6rem; border-collapse:collapse; font-size:.78rem; }
.cd-fin-tabla th { padding:.35rem .5rem; background:#eef6f4; text-align:left; font-size:.64rem; text-transform:uppercase; }
.cd-fin-tabla td { padding:.35rem .5rem; border-bottom:1px solid #eef3f2; }
.cd-fin-guardar { display:flex; justify-content:flex-end; }

.cd-fin-lista { display:grid; gap:.7rem; }
.cd-fin-item { display:grid; gap:.55rem; padding:.9rem 1.1rem; border:1px solid var(--cd-border); border-radius:16px; background:#fff; box-shadow:var(--cd-shadow); }
.cd-fin-item.is-done { background:#f6fbf8; }
.cd-fin-item-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.cd-fin-item-head strong { display:block; font-size:.95rem; }
.cd-fin-item-head span { color:var(--cd-ink-soft); font-size:.8rem; }
.cd-fin-item-head small { display:block; color:var(--cd-ink-soft); font-size:.72rem; }
.cd-fin-chip.is-done { display:inline-flex; align-items:center; gap:.35rem; padding:.3rem .7rem; border-radius:999px; color:#047857; background:#d1fae5; font-size:.72rem; font-weight:800; }
.cd-fin-barra { height:8px; border-radius:999px; background:#e8f0ee; overflow:hidden; }
.cd-fin-barra i { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--cd-primary-light),var(--cd-primary)); }
.cd-fin-item-meta { display:flex; flex-wrap:wrap; gap:.4rem 1.3rem; font-size:.76rem; color:var(--cd-ink-soft); }
.cd-fin-abonos summary { cursor:pointer; font-size:.74rem; font-weight:700; color:var(--cd-primary-dark); }
.cd-fin-abonos ul { margin:.4rem 0 0; padding:0; list-style:none; display:grid; gap:.25rem; }
.cd-fin-abonos li { display:flex; justify-content:space-between; padding:.3rem .5rem; border-bottom:1px dashed #e2ecea; font-size:.76rem; }
@media (max-width:720px) { .cd-fin-grid, .cd-fin-resumen { grid-template-columns:1fr 1fr; } .cd-fin-grid .span-2 { grid-column:span 2; } }

/* Mi horario: que quepa en cualquier ancho (antes desbordaba entre ~720 y ~1000px) */
.cd-schedule-row { grid-template-columns:150px 1fr 1fr; }
.cd-schedule-range input { flex:1; min-width:0; padding-left:.45rem; padding-right:.25rem; }
@media (max-width:1000px) {
  .cd-schedule-head { display:none; }
  .cd-schedule-row { grid-template-columns:1fr; gap:.5rem; }
  .cd-schedule-range { position:relative; padding-left:4.4rem; }
  .cd-schedule-range::before { position:absolute; left:.2rem; top:50%; transform:translateY(-50%); font-size:.6rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--cd-ink-soft); }
  .cd-schedule-row > .cd-schedule-range:nth-of-type(1)::before { content:"Mañana"; }
  .cd-schedule-row > .cd-schedule-range:nth-of-type(2)::before { content:"Tarde"; }
}
