/* views/doctor.css — Panel médico (acento verde). Prefijo doc-. */

/* Login */
.doc-login .login__tarjeta, .login__tarjeta:has(.doc-login) { border-top-color: var(--nh-verde-400); }
.doc-login__titulo { color: var(--nh-verde-900); margin: .5rem 0 .25rem; }
.doc-login__sub { margin: 0 0 var(--nh-sp-4); }
.doc-login__demo { margin-top: var(--nh-sp-3); background: var(--nh-verde-pastel); border-color: var(--nh-verde-400); color: var(--nh-verde-900); }
.doc-login__demo:hover { background: #ddf0e4; }
.doc-login__links { display: flex; flex-direction: column; gap: .35rem; text-align: center; margin: var(--nh-sp-4) 0 0; font-size: var(--nh-fs-sm); }

/* Buscador de pacientes */
.doc-buscar { margin-bottom: var(--nh-sp-6); }
.doc-buscar__label { display: block; font-weight: 800; font-size: var(--nh-fs-md); margin-bottom: .5rem; color: var(--nh-texto); }
.doc-buscar__campo { position: relative; }
.doc-buscar__icono { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%; background: var(--nh-verde-pastel); color: var(--nh-verde-600); display: grid; place-items: center; }
.doc-buscar__icono .icono-linea { width: 20px; height: 20px; }
.doc-buscar__input { width: 100%; padding: 1rem 1.25rem 1rem 74px; border: 1px solid var(--nh-borde); border-radius: 18px; background: #fff; font: inherit; font-size: var(--nh-fs-md); box-shadow: var(--nh-sombra-sm); }
.doc-buscar__input:focus { border-color: var(--nh-verde-400); outline: none; box-shadow: 0 0 0 3px var(--nh-verde-pastel); }

/* Tarjetas de paciente (borde de color, avatar circular con icono de área) */
.doc-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--nh-sp-4); }
.doc-paciente {
  display: grid; grid-template-columns: auto 1fr auto; gap: var(--nh-sp-4); align-items: center;
  background: #fff; border: 1px solid var(--nh-borde); border-left: 6px solid var(--doc-color, var(--nh-verde-400));
  border-radius: 20px; padding: var(--nh-sp-4) var(--nh-sp-6);
  transition: transform .16s ease, box-shadow .16s ease;
}
.doc-paciente:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(30, 107, 73, .1); }
.doc-paciente--verde  { --doc-color: var(--nh-verde-400); --doc-suave: var(--nh-verde-pastel); --doc-icono: var(--nh-verde-600); }
.doc-paciente--azul   { --doc-color: var(--nh-azul);      --doc-suave: var(--nh-azul-pastel);  --doc-icono: #3d8fd0; }
.doc-paciente--rosa   { --doc-color: var(--nh-rosa);      --doc-suave: var(--nh-rosa-pastel);  --doc-icono: #c0563b; }
.doc-paciente--morado { --doc-color: var(--nh-morado);    --doc-suave: var(--nh-morado-pastel);--doc-icono: #6b4fa1; }
.doc-paciente__avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--doc-suave); color: var(--doc-icono); display: grid; place-items: center; flex: none; }
.doc-paciente__avatar .icono-linea { width: 30px; height: 30px; }
.doc-paciente__info { min-width: 0; }
.doc-paciente__nombre { margin: 0 0 .25rem; font-size: var(--nh-fs-lg); font-weight: 800; color: var(--nh-verde-900); display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.doc-paciente__datos { margin: 0; font-size: var(--nh-fs-sm); color: var(--nh-texto-2); }
.doc-paciente__meta { color: var(--nh-texto-2); opacity: .85; }
.doc-paciente__btn { gap: .5rem; white-space: nowrap; }
.doc-paciente__btn .icono-linea { width: 18px; height: 18px; }
@media (max-width: 720px) {
  .doc-paciente { grid-template-columns: auto 1fr; }
  .doc-paciente__btn { grid-column: 1 / -1; justify-content: center; }
  .doc-paciente__meta { display: block; margin-top: .15rem; }
}

/* Paneles de la ficha clínica */
.doc-panel--verde { border-top: 5px solid var(--nh-verde-400); }
.doc-panel--azul { border-top: 5px solid var(--nh-azul); }
.doc-kpis { margin-bottom: var(--nh-sp-6); }

/* Informes */
.doc-informe { border-left-color: var(--nh-verde-400); }
.doc-informe__titulo { margin: 0 0 .25rem; }
.doc-informe__extracto { margin: 0 0 .5rem; color: var(--nh-texto-2); font-size: var(--nh-fs-sm); white-space: pre-line; }
.doc-archivo { padding: .5rem; }

/* Evoluciones */
.doc-evolucion { border-left-color: var(--nh-azul); }
.doc-evolucion p { margin: 0 0 .35rem; font-size: var(--nh-fs-sm); }
.doc-evolucion__reco { background: var(--nh-amarillo-pastel); border-radius: 10px; padding: .5rem .7rem; color: #6b4b00; }

/* Objetivos e hitos (fase 7: los define el doctor) */
.doc-form-inline { margin-bottom: var(--nh-sp-3); }
.doc-form-inline .formulario__acciones { margin-top: .25rem; justify-content: flex-start; }
.doc-form-hito { display: grid; grid-template-columns: 160px 1fr; gap: 0 var(--nh-sp-3); align-items: start; }
.doc-form-hito .formulario__acciones { grid-column: 1 / -1; }
.doc-objetivo__controles { display: flex; align-items: center; gap: var(--nh-sp-3); margin-top: .35rem; }
.doc-objetivo__controles input[type="range"] { flex: 1 1 auto; accent-color: var(--nh-verde-400); min-height: 32px; }
.doc-ayuda { margin: .25rem 0 var(--nh-sp-4); font-size: var(--nh-fs-xs); }
.doc-subtitulo { margin: var(--nh-sp-4) 0 var(--nh-sp-3); font-size: 1.02rem; color: var(--nh-verde-900); }
.doc-hitos { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.doc-hito { display: grid; grid-template-columns: auto 1fr auto; gap: .6rem; align-items: center; padding: .5rem .7rem; border-radius: 12px; background: var(--nh-fondo-2, #f6f8f7); font-size: var(--nh-fs-sm); }
.doc-hito__fecha { font-weight: 700; color: var(--nh-verde-600); white-space: nowrap; }
.doc-hitos__vacio { font-size: var(--nh-fs-sm); }

/* ============================================================
   Agenda tipo hoja de cálculo (fase 15). Prefijo hoja-.
   ============================================================ */
.hoja-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--nh-sp-4); margin-bottom: var(--nh-sp-4); flex-wrap: wrap; }
.hoja-cab__titulo { display: flex; align-items: center; gap: 1rem; }
.hoja-cab__titulo h1 { margin: 0 0 .15rem; font-size: clamp(1.7rem, 3vw, 2.2rem); font-weight: 900; color: var(--nh-verde-900); }
.hoja-cab__ico { flex: none; width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; background: var(--nh-verde-pastel); color: var(--nh-verde-600); }
.hoja-cab__ico svg { width: 24px; height: 24px; }
.hoja-estado-guardado { align-self: center; font-size: var(--nh-fs-sm); font-weight: 700; padding: .35rem .8rem; border-radius: 999px; min-height: 1.9rem; }
.hoja-estado-guardado.is-guardando { background: var(--nh-amarillo-pastel, #fff6d6); color: #6b4b00; }
.hoja-estado-guardado.is-ok { background: var(--nh-verde-pastel); color: var(--nh-verde-900); }
.hoja-estado-guardado.is-error { background: #fdecea; color: #a12a1f; }

.hoja-tabs { display: flex; gap: .4rem; flex-wrap: wrap; margin-bottom: var(--nh-sp-4); border-bottom: 2px solid #dfe9e3; }
.hoja-tab { border: 0; background: transparent; padding: .7rem 1.1rem; font: inherit; font-weight: 800; color: var(--nh-texto-2); border-radius: 12px 12px 0 0; cursor: pointer; margin-bottom: -2px; border-bottom: 3px solid transparent; }
.hoja-tab:hover { background: #f1f7f3; color: var(--nh-verde-900); }
.hoja-tab.is-activa { color: var(--nh-verde-900); border-bottom-color: var(--nh-verde-400); background: #fff; }

.hoja-barra { display: grid; gap: .6rem; margin-bottom: var(--nh-sp-4); }
.hoja-semana { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.hoja-semana__titulo { margin-left: auto; color: var(--nh-verde-900); font-size: 1.05rem; }
.hoja-semana__ir .control--sm { min-height: 36px; padding: .3rem .6rem; font-size: var(--nh-fs-sm); }
.control--sm { min-height: 36px; padding: .3rem .6rem; font-size: var(--nh-fs-sm); }
.hoja-resumen { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.hoja-resumen--wrap { row-gap: .8rem; }
.hoja-kpi { display: inline-flex; align-items: baseline; gap: .35rem; padding: .35rem .8rem; border-radius: 999px; background: #fff; border: 1px solid #dfe9e3; font-size: var(--nh-fs-sm); color: var(--nh-texto-2); }
.hoja-kpi strong { color: var(--nh-verde-900); font-size: 1.05rem; }
.hoja-kpi--si { border-color: #b9e3c8; background: #eefaf2; } .hoja-kpi--si strong { color: #1d7a45; }
.hoja-kpi--no { border-color: #f3c3bd; background: #fdf1ef; } .hoja-kpi--no strong { color: #b3261e; }
.hoja-filtro { display: inline-flex; align-items: center; gap: .5rem; font-size: var(--nh-fs-sm); color: var(--nh-texto-2); margin-left: auto; }
.hoja-leyenda { display: inline-flex; gap: .8rem; flex-wrap: wrap; font-size: var(--nh-fs-xs); color: var(--nh-texto-2); }
.hoja-leyenda__item { display: inline-flex; align-items: center; gap: .3rem; }
.hoja-punto { display: inline-block; width: 12px; height: 12px; border-radius: 3px; border: 1px solid rgba(0,0,0,.08); }

/* Colores del Excel (estado de agendamiento / pagos) */
.hoja-estado--verde    { background: #b7f0c4 !important; }
.hoja-estado--amarillo { background: #fff2a8 !important; }
.hoja-estado--rosa     { background: #f9c2f4 !important; }
.hoja-estado--rojo     { background: #f7b1ab !important; }

/* Barra de desplazamiento horizontal ARRIBA de la tabla (junto a los encabezados); la de abajo se oculta. */
.hoja-scroll { overflow-x: auto; overflow-y: hidden; height: 16px; margin-bottom: 2px; border-radius: 8px; background: #e9edf0; scrollbar-color: #6f8f7e #e9edf0; scrollbar-width: thin; }
.hoja-scroll::-webkit-scrollbar { height: 12px; }
.hoja-scroll::-webkit-scrollbar-track { background: #e9edf0; border-radius: 8px; }
.hoja-scroll::-webkit-scrollbar-thumb { background: #6f8f7e; border-radius: 8px; border: 2px solid #e9edf0; }
.hoja-scroll::-webkit-scrollbar-thumb:hover { background: var(--nh-verde-600); }
.hoja-scroll__int { height: 1px; }
.hoja-scroll.is-oculta { display: none; }
/* La tabla tiene su propio desplazamiento vertical (encabezados fijos): no hay que bajar por toda la página. */
.hoja-wrap--alto { max-height: calc(100vh - 330px); min-height: 340px; overflow: auto; scrollbar-width: thin; }
.hoja-wrap--alto::-webkit-scrollbar { display: block; width: 12px; height: 0; }
.hoja-wrap--alto::-webkit-scrollbar-thumb { background: #b9c9c0; border-radius: 8px; border: 3px solid #fff; }
.hoja-wrap--alto::-webkit-scrollbar-track { background: transparent; }
.hoja-wrap--alto .hoja-tabla thead th { box-shadow: 0 1px 0 #cfd8dc; }
.hoja-filtros { display: flex; align-items: flex-end; gap: .8rem; flex-wrap: wrap; padding: .7rem .9rem; border: 1px solid #dfe9e3; border-radius: 14px; background: #fff; }
.hoja-filtros .hoja-filtro { margin-left: 0; flex-direction: column; align-items: flex-start; gap: .25rem; }
.hoja-filtros .hoja-filtro > span { font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--nh-texto-2); }
.hoja-filtro--buscar { flex: 1 1 260px; } .hoja-filtro--buscar .control { width: 100%; }
.hoja-filtros .btn { align-self: flex-end; }
.hoja-wrap { scrollbar-width: none; }
.hoja-wrap::-webkit-scrollbar { display: none; }

/* Bloque de un día */
.hoja-dia { margin-bottom: var(--nh-sp-4); }
.hoja-wrap { background: #fff; border: 1px solid #d9e3dd; border-radius: 14px; box-shadow: 0 6px 18px rgba(30,107,73,.05); overflow: auto; }
.hoja-dia--hoy .hoja-wrap { border-color: var(--nh-verde-400); box-shadow: 0 0 0 3px rgba(46,158,107,.15); }
.hoja-tabla { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: .9rem; min-width: 1120px; }
.hoja-tabla th { background: #e9edf0; color: #2b3a44; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 800; padding: .55rem .5rem; text-align: left; border: 1px solid #cfd8dc; position: sticky; top: 0; z-index: 1; }
.hoja-tabla td { border: 1px solid #e1e8e4; padding: 0; vertical-align: middle; height: 38px; }
.hoja-th--fecha { width: 92px; } .hoja-th--dia { width: 96px; } .hoja-th--hora { width: 92px; } .hoja-th--nombre { width: 220px; }
.hoja-th--asistencia { width: 120px; } .hoja-th--plan { width: 150px; } .hoja-th--modalidad { width: 118px; } .hoja-th--profesional { width: 110px; }
.hoja-th--obs { width: auto; } .hoja-th--acc { width: 40px; } .hoja-th--estado { width: 190px; } .hoja-th--num { width: 118px; } .hoja-th--fechapago { width: 150px; }
.hoja-fecha { background: #f4f8f6; text-align: center; vertical-align: middle !important; padding: .5rem !important; }
.hoja-fecha__dia { display: block; font-size: 1.9rem; font-weight: 900; color: var(--nh-verde-900); line-height: 1; }
.hoja-fecha__mes { display: block; font-size: .72rem; font-weight: 800; color: var(--nh-texto-2); text-transform: uppercase; margin-top: .25rem; }
.hoja-fecha__hoy { display: inline-block; margin-top: .4rem; padding: .15rem .55rem; border-radius: 999px; background: var(--nh-verde-400); color: #fff; font-size: .68rem; font-weight: 800; }
.hoja-dianombre { background: #f4f8f6; text-align: center; vertical-align: middle !important; font-weight: 800; color: var(--nh-verde-900); writing-mode: vertical-rl; transform: rotate(180deg); padding: .5rem !important; letter-spacing: .08em; text-transform: uppercase; font-size: .8rem; }
.hoja-celda { position: relative; background: #fff; }
.hoja-fila--vacia .hoja-celda { background: #fbfcfb; }
.hoja-fila--extra .hoja-celda--hora { background: #f7f3ff; }
.hoja-input { width: 100%; height: 38px; border: 0; background: transparent; padding: 0 .55rem; font: inherit; font-size: .9rem; color: var(--nh-texto); outline: none; min-width: 0; }
.hoja-input::placeholder { color: #b8c2bd; }
.hoja-celda:focus-within { outline: 2px solid var(--nh-verde-400); outline-offset: -2px; background: #fff !important; z-index: 2; }
.hoja-celda--hora { background: #f4f8f6; }
.hoja-celda--hora .hoja-hora { display: inline-block; padding: 0 .55rem; font-weight: 800; color: var(--nh-verde-900); font-size: .85rem; }
.hoja-celda--hora .hoja-input { font-weight: 800; color: var(--nh-verde-900); }
.hoja-mas { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 24px; height: 24px; border-radius: 50%; border: 0; background: #dfeee5; color: var(--nh-verde-900); font-weight: 900; line-height: 1; cursor: pointer; opacity: 0; transition: opacity .12s; }
.hoja-fila:hover .hoja-mas, .hoja-mas:focus-visible { opacity: 1; }
.hoja-celda--nombre .hoja-input { font-weight: 700; }
.hoja-celda--asistencia .hoja-input { text-transform: uppercase; font-weight: 800; text-align: center; }
.hoja-celda--plan .hoja-input, .hoja-celda--modalidad .hoja-input { text-transform: uppercase; font-size: .82rem; }
.hoja-celda--si { background: #b7f0c4 !important; } .hoja-celda--si .hoja-input { color: #14532d; }
.hoja-celda--no { background: #f7b1ab !important; } .hoja-celda--no .hoja-input { color: #7f1d1d; }
.hoja-celda--reprogramar { background: #fff2a8 !important; } .hoja-celda--reprogramar .hoja-input { color: #6b4b00; }
.hoja-celda--virtual { background: #cfe6fb !important; } .hoja-celda--virtual .hoja-input { color: #0b4a80; }
.hoja-celda--otro { background: #eef1ef !important; }
.hoja-celda--num .hoja-input { text-align: right; font-variant-numeric: tabular-nums; }
.hoja-celda--pago { display: table-cell; }
.hoja-celda--pago .hoja-input { width: calc(100% - 30px); }
.hoja-check { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 24px; height: 24px; display: grid; place-items: center; cursor: pointer; }
.hoja-check input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.hoja-check span { width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid #9fb5a8; background: #fff; color: transparent; font-size: .8rem; display: grid; place-items: center; }
.hoja-check input:checked + span { background: #1d7a45; border-color: #1d7a45; color: #fff; }
.hoja-celda--select { padding: 0 !important; }
.hoja-select { width: 100%; height: 38px; border: 0; background: transparent; padding: 0 .4rem; font: inherit; font-size: .82rem; font-weight: 700; color: var(--nh-texto); outline: none; }
.hoja-nombre .hoja-input { font-weight: 800; }
.hoja-acc { text-align: center; background: #fff; }
.hoja-borrar { border: 0; background: transparent; cursor: pointer; font-size: .95rem; opacity: .35; padding: .3rem; border-radius: 8px; line-height: 1; }
.hoja-fila:hover .hoja-borrar, .hoja-borrar:focus-visible { opacity: 1; }
.hoja-borrar:hover { background: #fdecea; }
.hoja-grupo td { background: #ffe8a8 !important; color: #5c4300; font-weight: 900; letter-spacing: .06em; padding: .45rem .7rem !important; font-size: .82rem; }
.hoja-grupo__meta { font-weight: 700; letter-spacing: 0; text-transform: none; color: #7a5c00; }
.hoja-vacio { padding: 1.5rem !important; text-align: center; color: var(--nh-texto-2); }
.hoja-ayuda { margin: .25rem 0 var(--nh-sp-4); font-size: var(--nh-fs-sm); color: var(--nh-texto-2); display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; }
.hoja-ayuda kbd { font: inherit; font-size: .78rem; padding: .05rem .4rem; border: 1px solid #cfd8dc; border-bottom-width: 2px; border-radius: 6px; background: #fff; }
.hoja-tabla--pacientes { min-width: 1830px; } .hoja-tabla--pagos { min-width: 1320px; }

/* ===== Registros: lectura clara (filas alternas, columnas fijas, bandas de grupo, chips de color) ===== */
.hoja-tabla { font-size: .93rem; }
.hoja-tabla th { background: #e6f3ec; color: var(--nh-verde-900); border-color: #cfe3d7; white-space: nowrap; padding: .7rem .6rem; font-size: .7rem; }
.hoja-tabla td { height: 46px; border-color: #e6ede9; }
.hoja-input { height: 46px; padding: 0 .7rem; }
.hoja-fila:nth-of-type(even) .hoja-celda { background: #fafcfb; }
.hoja-fila:hover .hoja-celda { background: #f1f8f4; }
.hoja-fila:hover .hoja-acc { background: #f1f8f4; }
/* Columnas fijas a la izquierda al desplazar horizontalmente */
.hoja-fija { position: sticky; z-index: 2; }
.hoja-fija--1 { left: 0; }
.hoja-tabla--pacientes .hoja-fija--2 { left: 190px; box-shadow: 4px 0 8px -4px rgba(20, 40, 30, .18); }
.hoja-tabla--pagos .hoja-fija--1 { width: 150px; } .hoja-tabla--pagos .hoja-fija--2 { left: 150px; box-shadow: 4px 0 8px -4px rgba(20, 40, 30, .18); }
th.hoja-fija { z-index: 4; }
.hoja-fila .hoja-fija { background: #fff; }
.hoja-fila:nth-of-type(even) .hoja-fija { background: #fafcfb; }
/* Anchos de columna */
.hoja-th--horario { width: 230px; } .hoja-th--plan { width: 170px; } .hoja-th--fecha, .hoja-th--fechapago { width: 150px; } .hoja-th--prof { width: 150px; }
.hoja-th--pago { width: 150px; } .hoja-th--estpago { width: 150px; } .hoja-th--citas { width: 80px; } .hoja-th--concepto { width: 220px; } .hoja-th--medio { width: 150px; } .hoja-th--comp { width: 110px; }
/* Estado de agendamiento: punto de color + selector limpio */
.hoja-celda--select { display: table-cell; padding: 0 0 0 .6rem !important; background: #fff; }
.hoja-punto-estado { position: absolute; left: .7rem; top: 50%; transform: translateY(-50%); width: 12px; height: 12px; border-radius: 50%; border: 1px solid rgba(0,0,0,.1); }
.hoja-punto-estado--vacio { background: #e3e8e5 !important; }
.hoja-celda--select .hoja-select { padding-left: 1.5rem; height: 46px; font-size: .84rem; color: var(--nh-texto); }
.hoja-nombre .hoja-input { font-weight: 800; color: #1d3b2b; }
/* Pagos: verde suave cuando está recibido, rosa suave cuando falta */
.hoja-celda--pagado { background: #e6f7ec !important; } .hoja-celda--pagado .hoja-input { color: #14532d; font-weight: 700; }
.hoja-celda--pendiente { background: #fdeceb !important; } .hoja-celda--pendiente .hoja-input { color: #9f1d1d; font-weight: 700; }
.hoja-celda--estpago .hoja-input { text-transform: uppercase; font-size: .8rem; font-weight: 800; letter-spacing: .02em; }
.hoja-celda--total .hoja-input { font-weight: 800; color: var(--nh-verde-900); }
.hoja-celda--valor .hoja-input { font-weight: 800; color: var(--nh-verde-900); }
.hoja-celda--citas .hoja-input { text-align: center; font-weight: 700; }
.hoja-celda--plan .hoja-input { text-transform: uppercase; font-size: .8rem; font-weight: 700; color: #3b4d44; }
.hoja-celda--fecha .hoja-input { font-size: .86rem; font-variant-numeric: tabular-nums; }
.hoja-check span { width: 22px; height: 22px; }
/* Medio de pago con color propio */
.hoja-medio .hoja-input { font-weight: 700; font-size: .84rem; }
.hoja-medio--transferencia { background: #e8f1fb !important; } .hoja-medio--transferencia .hoja-input { color: #1d4f8a; }
.hoja-medio--nequi { background: #f1e9fb !important; } .hoja-medio--nequi .hoja-input { color: #5b2d91; }
.hoja-medio--daviplata { background: #fdeceb !important; } .hoja-medio--daviplata .hoja-input { color: #a12a1f; }
.hoja-medio--efectivo { background: #e6f7ec !important; } .hoja-medio--efectivo .hoja-input { color: #14532d; }
.hoja-medio--tarjeta { background: #fff4d6 !important; } .hoja-medio--tarjeta .hoja-input { color: #7a5200; }
.hoja-medio--otro { background: #eef1ef !important; }
.hoja-celda--comp .hoja-input { text-align: center; font-weight: 700; }
/* Bandas de grupo (profesional / mes): el contenido queda fijo a la izquierda al desplazar */
.hoja-grupo td { background: #fff3c4 !important; border-left: 5px solid #e0b000; padding: 0 !important; height: 40px; }
.hoja-grupo--mes td { background: #e6f3ec !important; border-left-color: var(--nh-verde-400); }
.hoja-grupo__fila { position: sticky; left: 0; display: inline-flex; align-items: center; gap: .7rem; padding: 0 .9rem; height: 40px; max-width: calc(100vw - 140px); }
.hoja-grupo__ico { font-size: 1rem; }
.hoja-grupo__nombre { font-weight: 900; letter-spacing: .05em; text-transform: uppercase; color: #5c4300; font-size: .82rem; }
.hoja-grupo--mes .hoja-grupo__nombre { color: var(--nh-verde-900); }
.hoja-grupo__meta { font-weight: 600; color: #7a5c00; font-size: .8rem; letter-spacing: 0; text-transform: none; }
.hoja-grupo--mes .hoja-grupo__meta { color: #3b6b52; }
.hoja-grupo__alerta { color: #a12a1f; font-weight: 800; }
/* Pacientes: filas de solo lectura (se editan en la ficha con botón Guardar) */
.hoja-texto { display: block; padding: 0 .7rem; line-height: 46px; height: 46px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--nh-texto); }
.hoja-texto--vacio { color: #b8c2bd; }
.hoja-texto--num { text-align: right; font-variant-numeric: tabular-nums; }
/* Fase 22: celdas que vienen "en vivo" de la ficha del paciente vinculado. */
.hoja-texto--vinc { color: #1e6b49; font-weight: 700; }
.hoja-vinc { font-size: .78em; margin-left: .25rem; opacity: .85; cursor: help; }
.hoja-vinc--celda { position: absolute; right: .45rem; top: 50%; transform: translateY(-50%); margin: 0; }
.hoja-fila--vinc .hoja-celda--nombre .hoja-input { padding-right: 1.7rem; }
.hoja-celda--citas .hoja-input::-webkit-outer-spin-button, .hoja-celda--citas .hoja-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.hoja-celda--citas .hoja-input { -moz-appearance: textfield; appearance: textfield; }
.hoja-fila--vinc .hoja-celda--plan, .hoja-fila--vinc .hoja-celda--fecha, .hoja-fila--vinc .hoja-celda--citas { background: color-mix(in srgb, #27865b 7%, transparent); }
.hoja-texto--centro { text-align: center; }
.hoja-celda--estado .hoja-texto { padding-left: 1.6rem; font-size: .84rem; font-weight: 700; }
.hoja-celda--pago .hoja-texto { padding-right: 2.1rem; }
.hoja-editar { border: 0; background: #e6f3ec; color: var(--nh-verde-900); cursor: pointer; font-size: .82rem; font-weight: 800; padding: .35rem .6rem; border-radius: 10px; line-height: 1; }
.hoja-editar:hover { background: #cfe8d9; }
.hoja-acc--doble { display: flex; align-items: center; justify-content: center; gap: .3rem; height: 46px; }
.hoja-th--acc2 { width: 120px; }
.hoja-fila--nueva .hoja-celda, .hoja-fila--nueva .hoja-fija { animation: hoja-flash 2.4s ease; }
@keyframes hoja-flash { 0%, 60% { background-color: #fff2a8; } 100% { background-color: inherit; } }
.hoja-confirm__detalle { margin: .5rem 0 0; }
/* Ficha de paciente (modal) */
.hoja-ficha .formulario--2col { gap: 1rem; }
.hoja-ficha__seccion { margin: .35rem 0 0; font-size: .78rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; color: var(--nh-verde-900); border-bottom: 1px solid #dfe9e3; padding-bottom: .35rem; }
.hoja-ficha__check { display: flex; align-items: center; gap: .6rem; min-height: 48px; padding: 0 .9rem; border: 1.5px solid #e5eee8; border-radius: 12px; background: #fffdf7; font-weight: 700; cursor: pointer; }
.hoja-ficha__check input { width: 20px; height: 20px; accent-color: var(--nh-verde-600); }
.hoja-grupo__total { margin-left: .2rem; padding: .15rem .6rem; border-radius: 999px; background: #fff; color: var(--nh-verde-900); font-weight: 900; font-size: .82rem; border: 1px solid #b9e3c8; }
.visualmente-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
@media (max-width: 767px) {
  .hoja-tabla { min-width: 980px; }
  .hoja-semana__titulo { margin-left: 0; width: 100%; }
  .hoja-filtro { margin-left: 0; }
}

/* Plan casero */
.doc-recurso { border-left-color: var(--nh-verde-400); }
.doc-recurso__actividades { margin: .25rem 0 .6rem; padding-left: 1.2rem; font-size: var(--nh-fs-sm); color: var(--nh-texto-2); display: grid; gap: .2rem; }
@media (max-width: 720px) {
  .doc-form-hito { grid-template-columns: 1fr; }
}

/* ---------- Registros en el celular: tarjetas en vez de la tabla (la tabla no cabía y no se podía tocar) ---------- */
.hoja-tarjetas { display: grid; gap: .75rem; }
.hoja-tarjetas__grupo { margin-top: .4rem; padding: .55rem .8rem; border-radius: 12px; background: #fff7d6; border: 1px solid #f1e2a6; }
.hoja-tarjetas__grupo .hoja-grupo__fila { position: static; display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .6rem; height: auto; max-width: none; padding: 0; }
.hoja-tarjetas__grupo .hoja-grupo__meta { flex-basis: 100%; }
.hoja-tarjeta { display: grid; gap: .65rem; padding: .9rem .95rem; border: 1px solid #dfe8e3; border-left: 5px solid #cfd8d4; border-radius: 14px; background: #fff; box-shadow: 0 2px 8px rgba(30, 80, 60, .05); }
.hoja-tarjeta[data-estado="agendado"] { border-left-color: #3bb36b; }
.hoja-tarjeta[data-estado="parcial"] { border-left-color: #e2b80f; }
.hoja-tarjeta[data-estado="no_agendado"] { border-left-color: #d96fd0; }
.hoja-tarjeta[data-estado="inactivo"] { border-left-color: #e0574b; }
.hoja-tarjeta--pago { border-left-color: var(--nh-verde-400); }
.hoja-tarjeta__cab { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem .6rem; }
.hoja-tarjeta__cab .hoja-punto-estado { position: static; transform: none; flex: none; }
.hoja-tarjeta__nombre { margin: 0; flex: 1 1 140px; min-width: 0; font-size: 1.05rem; font-weight: 900; color: var(--nh-verde-900); overflow-wrap: anywhere; }
.hoja-tarjeta__valor { font-size: 1.1rem; color: var(--nh-verde-900); }
.hoja-tarjeta__estpago { padding: .2rem .6rem; border-radius: 999px; background: #eef1ef; font-size: .72rem; font-weight: 800; letter-spacing: .02em; color: #56645d; }
.hoja-tarjeta__estpago.hoja-celda--pagado { background: #e6f7ec !important; color: #14532d; }
.hoja-tarjeta__estpago.hoja-celda--pendiente { background: #fdeceb !important; color: #9f1d1d; }
.hoja-tarjeta__agenda { display: flex; align-items: center; gap: .6rem; font-size: .85rem; font-weight: 700; color: #4c5a54; }
.hoja-tarjeta__agenda .control { flex: 1; min-width: 0; }
.hoja-tarjeta__datos { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem .8rem; }
.hoja-tarjeta__dato dt { font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: #7a8781; }
.hoja-tarjeta__dato dd { margin: .05rem 0 0; font-weight: 700; color: #24302a; overflow-wrap: anywhere; }
.hoja-tarjeta__pagos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; }
.hoja-tarjeta__pago { display: grid; align-content: start; gap: .2rem; padding: .5rem .55rem; border-radius: 10px; background: #f6f8f7; min-width: 0; }
.hoja-tarjeta__pago-tit { font-size: .7rem; font-weight: 800; color: #6b7872; }
.hoja-tarjeta__pago strong { font-size: .95rem; overflow-wrap: anywhere; }
.hoja-tarjeta__check { display: flex; align-items: center; gap: .3rem; font-size: .72rem; font-weight: 700; cursor: pointer; }
.hoja-tarjeta__check input { width: 18px; height: 18px; accent-color: #1d7a45; margin: 0; flex: none; }
.hoja-tarjeta__notas { margin: 0; font-size: .85rem; color: #4c5a54; overflow-wrap: anywhere; }
.hoja-tarjeta__acciones { display: flex; gap: .5rem; }
.hoja-tarjeta__acciones .btn { flex: 1; justify-content: center; }
.hoja-tarjeta__borrar { color: #b23b3b; }
@media (max-width: 380px) { .hoja-tarjeta__pagos { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .hoja-tarjeta__pago--total { grid-column: 1 / -1; } }

/* ---------- Registros en el celular: parte de arriba compacta ---------- */
@media (max-width: 767px) {
  .hoja-cab { margin-bottom: .6rem; }
  .hoja-cab__titulo { gap: .7rem; }
  .hoja-cab__ico { width: 40px; height: 40px; }
  .hoja-cab__titulo h1 { font-size: 1.6rem; }
  .hoja-cab .portal__sub { font-size: .85rem; }
  .hoja-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: .3rem; margin-bottom: .7rem; }
  .hoja-tab { padding: .6rem .4rem; font-size: .88rem; text-align: center; }
  .hoja-barra { gap: .5rem; margin-bottom: .8rem; }
  .hoja-leyenda { display: none; }
  .hoja-resumen--wrap { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; row-gap: .45rem; }
  .hoja-resumen--wrap .hoja-kpi { justify-content: center; padding: .3rem .5rem; font-size: .8rem; }
  .hoja-resumen--wrap .btn { justify-content: center; margin: 0; }
  .hoja-resumen--wrap .btn--primario { grid-column: 1 / -1; }
  .hoja-resumen--wrap .btn--secundario { font-size: .82rem; padding-left: .5rem; padding-right: .5rem; }
  .hoja-txt-largo { display: none; }
  .hoja-filtros { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem .5rem; padding: .55rem .6rem; }
  .hoja-filtros .hoja-filtro { min-width: 0; gap: .15rem; }
  .hoja-filtros .hoja-filtro > span { font-size: .72rem; }
  .hoja-filtros .hoja-filtro .control { width: 100%; min-width: 0; }
  .hoja-filtros .hoja-filtro--buscar { grid-column: 1 / -1; order: -1; }
  .hoja-filtros .hoja-filtro--ancho { grid-column: 1 / -1; } /* "Todas las profesionales" completo */
  .hoja-filtros .btn { grid-column: 1 / -1; justify-self: start; }
}

/* ---------- Fase 39: "Pago a doctoras" (un bloque por profesional, como el Excel, con los colores de NeuroHeal) ---------- */
.hoja-tabla--doctoras { min-width: 760px; }
.hoja-tabla--doctoras th { background: #e6f3ec; color: var(--nh-verde-900); border-color: #cfe3d7; text-align: center; white-space: normal; }
/* Columnas proporcionadas (antes el nombre se quedaba con casi todo el ancho y el resto quedaba apretado). */
.hoja-tabla--doctoras .hoja-th--nombre { width: 36%; text-align: left; }
.hoja-tabla--doctoras .hoja-th--fechapago { width: 22%; }
.hoja-tabla--doctoras .hoja-th--plan { width: 20%; }
.hoja-tabla--doctoras .hoja-th--num { width: 16%; }
.hoja-tabla--doctoras .hoja-th--acc { width: 6%; min-width: 52px; }
/* Encabezado fijo que tapa bien las filas al desplazarse (con bordes "separados" no se asoman letras arriba ni abajo). */
.hoja-tabla--doctoras { border-collapse: separate; border-spacing: 0; }
.hoja-tabla--doctoras th, .hoja-tabla--doctoras td { border-width: 0 1px 1px 0; }
.hoja-tabla--doctoras th:first-child, .hoja-tabla--doctoras td:first-child { border-left-width: 1px; }
.hoja-tabla--doctoras th { z-index: 3; vertical-align: middle; line-height: 1.25; padding: .8rem .6rem; }
/* Fecha, plan y valor centrados para que la tabla se vea simétrica. */
.hoja-tabla--doctoras .hoja-celda--fecha .hoja-input, .hoja-tabla--doctoras .hoja-celda--plan .hoja-input,
.hoja-tabla--doctoras .hoja-celda--valor-doc .hoja-input { text-align: center; }
.hoja-tabla--doctoras .hoja-acc { text-align: center; }
.hoja-tabla--doctoras + .hoja-ayuda, .hoja-wrap + .hoja-ayuda { margin-top: .7rem; }
.hoja-grupo--doc td { background: #eef7f1 !important; border-left-color: var(--nh-verde-400); }
.hoja-grupo--doc .hoja-grupo__fila { display: flex; max-width: none; height: auto; min-height: 48px; padding: .4rem .9rem .4rem .9rem; }
/* "＋ Añadir fila": más pequeño y con aire, para que no quede pegado al borde de la tabla ni a la columna del borrar. */
.hoja-grupo--doc .hoja-grupo__mas { min-height: 32px; padding: .3rem .85rem; font-size: .82rem; margin-right: .25rem; white-space: nowrap; }
.hoja-grupo--doc .hoja-grupo__nombre { color: var(--nh-verde-900); font-size: .88rem; }
.hoja-grupo--doc .hoja-grupo__meta { color: #3b6b52; }
.hoja-grupo__mas { margin-left: auto; }
.hoja-celda--valor-doc, .hoja-celda--valor-doc .hoja-input { background: #f4faf6 !important; }
.hoja-celda--valor-doc .hoja-input { text-align: right; font-weight: 800; color: var(--nh-verde-900); }
.hoja-tarjetas__grupo--doc { background: #eef7f1; border-color: #cfe3d7; border-left: 4px solid var(--nh-verde-400); margin-top: .9rem; }
.hoja-tarjetas__grupo--doc .hoja-grupo__nombre { color: var(--nh-verde-900); }
.hoja-tarjetas__grupo--doc .hoja-grupo__meta { color: #3b6b52; }
.hoja-tarjetas__grupo--doc .hoja-grupo__mas { margin-left: 0; }

/* ---------- Fase 43: "Pacientes valoración" (envío del informe: verde enviado / rojo pendiente, como el Excel) ---------- */
.hoja-tabla--valoracion { min-width: 860px; }
.hoja-tabla--valoracion th { background: #e6f3ec; color: var(--nh-verde-900); border-color: #cfe3d7; white-space: normal; }
.hoja-tabla--valoracion .hoja-th--nombre { width: 260px; }
.hoja-tabla--valoracion .hoja-th--prof { width: 150px; }
.hoja-tabla--valoracion .hoja-th--interes { width: auto; }
.hoja-tabla--valoracion .hoja-th--plan { width: 160px; }
.hoja-tabla--valoracion .hoja-th--informe { width: 200px; }
.hoja-celda--informe .hoja-select { padding-left: .5rem; }
.hoja-celda--informe.hoja-celda--pagado .hoja-select { color: #14532d; }
.hoja-celda--informe.hoja-celda--pendiente .hoja-select { color: #9f1d1d; }

/* Columna "Citas" de Pacientes y planes: "X de N sesiones", contada con las citas completadas (como en "Mi plan"). */
.hoja-tabla--pacientes .hoja-th--citas { width: 130px; }
.hoja-sesiones { display: block; padding: .45rem .5rem; text-align: center; white-space: nowrap; font-size: .85rem; color: var(--nh-verde-900); }
.hoja-sesiones b { font-size: .95rem; }
.hoja-sesiones small { color: #3b6b52; font-size: .75rem; }
.hoja-sesiones--completo { color: #1f7a4d; }

/* Excel: sesiones editables a mano (realizadas y total), se siguen contando solas */
.hoja-ses { display: flex; align-items: center; justify-content: center; gap: .25rem; padding: .3rem .35rem; white-space: nowrap; color: var(--nh-verde-900); }
.hoja-ses__input { width: 3.1em; height: 30px; border: 1px solid #d7e6dd; border-radius: 8px; background: #fff; text-align: center; font: inherit; font-weight: 800; font-size: .88rem; color: var(--nh-verde-900); padding: 0 .1rem; -moz-appearance: textfield; }
.hoja-ses__input::-webkit-outer-spin-button, .hoja-ses__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.hoja-ses__input:focus { outline: 2px solid #b9d8c6; border-color: var(--nh-verde-600); }
.hoja-ses__de { font-size: .75rem; color: #3b6b52; }
.hoja-ses--completo .hoja-ses__input { background: #e6f7ec; border-color: #a8dcbc; }
.hoja-ses__auto { border: 0; background: none; cursor: pointer; font-size: .95rem; color: #5b3f9e; padding: 0 .15rem; line-height: 1; }
.hoja-tabla--pacientes .hoja-th--citas { width: 150px; }
