/* Disfruta Admin: minimalista sobre la línea gráfica (lino, verde-bosque, naranja solo como acento).
   Una sola familia (Jost), sin sombras ni degradados; la jerarquía sale del tamaño y el peso. */
:root{
  --lino:#FBF4E6; --arena:#F1E2C8; --arena-l:#F8F1E2; --salvia:#DDE6D4; --bosque:#23392C; --bosque-d:#1A2B21;
  --naranja:#FA7D19; --naranja-t:#A8500B; --crema:#FFFDF8;
  --green:var(--bosque); --green-d:var(--bosque); --green-l:var(--salvia);
  --ink:var(--bosque); --muted:#6B7A6F; --line:#E9E0CC; --bg:var(--crema); --card:#fff;
  --amber:var(--naranja); --red:#B42318; --blue:#7C9A82;
  --sans:'Jost',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --radius:10px;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--sans);background:var(--bg);color:var(--ink);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-weight:600;letter-spacing:-.005em}
.app{display:grid;grid-template-columns:228px 1fr;min-height:100vh}

/* menú */
.side{background:var(--lino);border-right:1px solid var(--line);position:sticky;top:0;height:100vh;display:flex;flex-direction:column}
.side a.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600;color:var(--ink);padding:20px 20px 16px;line-height:1.15;flex:none}
.brand .sello{width:34px;height:34px;display:block;flex:none}
.brand small{display:block;font-size:11.5px;font-weight:400;color:var(--muted)}
.menu{flex:1;overflow:auto;padding:4px 12px 16px}
/* lo de todos los días: siempre a la vista, con icono */
.menu .principal{padding-bottom:14px;margin-bottom:10px;border-bottom:1px solid var(--line)}
.menu .principal a{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:8px;font-size:15px;font-weight:500;margin-bottom:2px}
.menu svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.75}
.menu a:hover{background:var(--arena)}
.menu .principal a.on{background:var(--bosque);color:var(--lino)}
.menu .principal a.on svg{opacity:1}
/* el resto: grupos que se abren al tocarlos */
.menu .grupo summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;padding:8px 10px;border-radius:8px;font-size:14px;color:var(--muted);user-select:none}
.menu .grupo summary::-webkit-details-marker{display:none}
.menu .grupo summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s}
.menu .grupo[open] summary::after{transform:rotate(45deg)}
.menu .grupo summary:hover{background:var(--arena);color:var(--ink)}
.menu .grupo[open] summary{color:var(--ink);font-weight:500}
.menu .grupo a{display:block;margin:1px 0 1px 18px;padding:6px 12px;border-left:1px solid #DDD2BA;border-radius:0 7px 7px 0;font-size:14px}
.menu .grupo a.on{border-left:2px solid var(--naranja);padding-left:11px;background:var(--arena);font-weight:500}
.menu .grupo[open]{margin-bottom:6px}
/* cuenta, fija abajo */
.cuenta{flex:none;border-top:1px solid var(--line);padding:12px 20px 14px}
.cuenta .nombre{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cuenta .acciones{display:flex;gap:14px;align-items:center;margin-top:2px;font-size:13px;color:var(--muted)}
.cuenta form{margin:0}
.cuenta a,.cuenta button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#C9BFA8}
.cuenta a:hover,.cuenta button:hover{color:var(--ink)}

/* principal */
.main{display:flex;flex-direction:column;min-width:0}
.top{display:flex;align-items:center;justify-content:space-between;padding:12px 32px;background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.top h1{font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0}
.who{display:none;align-items:center;gap:14px;color:var(--muted);font-size:13.5px}
@media(max-width:860px){.who{display:flex}}
.who a{text-decoration:underline;text-underline-offset:3px}
.avatar{display:none}
.wrap{padding:28px 32px 48px;max-width:1240px;width:100%}

/* aviso */
.demo-banner{background:none;border:1px solid var(--line);border-left:3px solid var(--naranja);color:var(--ink);padding:10px 14px;border-radius:var(--radius);font-size:13.5px;margin-bottom:24px;display:flex;gap:8px;align-items:flex-start}

/* indicadores */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:28px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.kpi .lbl{color:var(--muted);font-size:12.5px;font-weight:500}
.kpi .val{font-size:27px;font-weight:600;line-height:1.15;margin-top:6px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.kpi .sub{color:var(--muted);font-size:12.5px;margin-top:3px}
.kpi.red .val{color:var(--red)}
a.kpi:hover{border-color:var(--bosque)}

/* tarjetas y tablas */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;overflow-x:auto}
.card h2{font-size:15.5px;margin:0;padding:14px 18px;border-bottom:1px solid var(--line)}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}
th{color:var(--muted);font-size:12px;font-weight:500;background:none}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--arena-l)}
td a{text-decoration:underline;text-decoration-color:#C9BFA8;text-underline-offset:3px}
td a:hover{text-decoration-color:var(--bosque)}
td a.btn{text-decoration:none}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.badge{display:inline-block;padding:1px 8px;border-radius:6px;font-size:12px;font-weight:500}
.b-green{background:var(--salvia);color:var(--bosque)} .b-amber{background:var(--arena);color:var(--naranja-t)}
.b-red{background:#F6DDD6;color:#8F2A1B} .b-gray{background:#F0EADB;color:#5C6B60}

/* título de pantalla y acciones */
.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px;flex-wrap:wrap}
.toolbar h1{margin:0;font-size:25px;line-height:1.2;letter-spacing:-.01em}
.search{display:flex;gap:8px}
input,select,textarea{font:inherit;padding:8px 11px;border:1px solid #DDD2BA;border-radius:8px;background:#fff;color:var(--ink);width:100%}
input::placeholder,textarea::placeholder{color:#A9B0A6}
input:focus,textarea:focus,select:focus{outline:2px solid var(--salvia);border-color:var(--bosque)}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--bosque)}
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--bosque);color:var(--lino);border:1px solid var(--bosque);padding:8px 16px;border-radius:8px;font-family:var(--sans);font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--bosque-d)}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid #DDD2BA}
.btn.ghost:hover{background:var(--arena-l);border-color:var(--bosque)}

/* formularios */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;padding:20px}
.form-grid .full{grid-column:1/-1}
label.field{display:block}
label.field .cap{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:5px}
.actions{padding:14px 20px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end}
.flash{padding:10px 14px;border-radius:var(--radius);margin-bottom:16px;font-size:14.5px}
.flash.ok{background:var(--salvia);color:var(--bosque)} .flash.err{background:#F6DDD6;color:#8F2A1B}
.empty{padding:40px;text-align:center;color:var(--muted)}
.muted{color:var(--muted)}

/* ingreso */
.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--lino);padding:24px 16px}
.login-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:36px 34px 32px;width:360px;max-width:92vw}
.login-card .sello{width:56px;height:56px;display:block;margin:0 0 18px}
.login-card h1{font-size:23px;line-height:1.2;margin:0 0 2px}
.login-card p.sub{color:var(--muted);font-size:14.5px;margin:0 0 24px}
.login-card label{display:block;margin-bottom:14px}
.login-card .cap{font-size:13px;color:var(--muted);font-weight:500;margin-bottom:5px;display:block}
.login-card .btn{width:100%;justify-content:center;margin-top:6px;padding:10px}

@media(max-width:860px){.app{grid-template-columns:1fr}.side{display:none}.card{overflow-x:auto}.grid2{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.wrap,.top{padding-left:16px;padding-right:16px}}

/* ---- ventas (23-sep-2026) ---- */
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:12px;padding:2px 8px;border-radius:6px;background:#F0EADB;color:#5C6B60;border:1px solid var(--line)}
.chip.ok{background:var(--salvia);color:var(--bosque);border-color:#C3D2B8}
.chip.hoy{background:var(--arena);color:var(--naranja-t);border-color:#E3CC9F}
.chip.falta{background:#F6DDD6;color:#8F2A1B;border-color:#EBC0B5}
.lista-busqueda{border:1px solid var(--line);border-radius:8px;max-height:260px;overflow:auto;margin-top:6px;background:#fff}
.lista-busqueda:empty{display:none}
.lista-busqueda .item{padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--line)}
.lista-busqueda .item:hover{background:var(--arena-l)}

/* ---- cobranza (24-sep-2026) ---- */
table.compacta th,table.compacta td{padding:8px 9px}
table.compacta .btn{padding:4px 10px}

/* ---- impresión (23-sep-2026) ---- */
.print-only{display:none}
@media print{
  .side,.top,.no-print,.demo-banner{display:none!important}
  .print-only{display:block}
  .app{display:block}.main{margin:0}.wrap{padding:0}
  .card{border:1px solid #ccc;page-break-inside:avoid}
  body{background:#fff;color:#111}
}

/* ---- mejoras generales (30-sep-2026) ---- */
/* en escritorio el título de cada pantalla alcanza: la barra superior queda solo para el celular */
.top{display:none}
.kpis{grid-template-columns:repeat(auto-fit,minmax(205px,1fr))}
.kpi .val{font-size:25px;white-space:nowrap}
/* fichas (tabla de dato y valor): etiqueta angosta, valor completo sin cortar */
tbody th{width:170px;vertical-align:top;white-space:normal}
tbody th+td{white-space:normal;max-width:none;overflow:visible;overflow-wrap:anywhere}
tbody tr:last-child th{border-bottom:0}
/* las celdas con botones no se recortan */
td:has(.btn),td:has(button),td:has(select),td:has(input){overflow:visible;max-width:none}
.btn-menu{display:none}
.velo{display:none}
@media(max-width:860px){
  .top{display:flex;padding:10px 16px}
  .top h1{font-size:15px;letter-spacing:0;text-transform:none;color:var(--ink);font-weight:600}
  .who{display:none}
  .btn-menu{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:14px;font-weight:500;color:var(--ink);background:#fff;border:1px solid #DDD2BA;border-radius:8px;padding:7px 12px;cursor:pointer}
  .btn-menu i{display:block;width:14px;height:10px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor;position:relative}
  .btn-menu i::after{content:"";position:absolute;left:0;right:0;top:3px;border-top:1.5px solid currentColor}
  .side{display:flex;position:fixed;left:0;top:0;bottom:0;width:270px;max-width:84vw;height:auto;z-index:40;transform:translateX(-100%);transition:transform .18s}
  body.menu-abierto .side{transform:none}
  body.menu-abierto .velo{display:block;position:fixed;inset:0;background:rgba(35,57,44,.35);z-index:30}
  .toolbar h1{font-size:21px}
  .wrap{padding-top:18px}
}
@media print{.top{display:none!important}}
/* la celda con etiquetas puede partir en dos líneas para que los botones de la fila entren */
td:has(.badge){white-space:normal}
/* paginación de listas */
.paginas{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;font-size:13.5px;color:var(--muted)}
.paginas .nums{display:flex;gap:4px;align-items:center}
.paginas a{padding:5px 11px;border:1px solid #DDD2BA;border-radius:8px;background:#fff;color:var(--ink)}
.paginas a:hover{border-color:var(--bosque)}
.paginas a.on{background:var(--bosque);border-color:var(--bosque);color:var(--lino);font-weight:500}
.paginas i{font-style:normal;padding:0 4px}

/* ---- agenda de citas (30-sep-2026) ---- */
.btn.mini{padding:4px 11px;font-size:13px;border-radius:7px}
.btn.texto{background:none;border-color:transparent;color:var(--muted);padding-left:6px;padding-right:6px;text-decoration:underline;text-decoration-color:#C9BFA8;text-underline-offset:3px}
.btn.texto:hover{background:none;color:var(--ink);text-decoration-color:var(--bosque)}
.seg{display:inline-flex;border:1px solid #DDD2BA;border-radius:8px;overflow:hidden;background:#fff}
.seg a{padding:8px 14px;font-size:14px;color:var(--muted)}
.seg a.on{background:var(--bosque);color:var(--lino);font-weight:500}
.resumen-dia{margin:-6px 0 16px;color:var(--muted);font-size:14.5px;display:flex;gap:6px 18px;flex-wrap:wrap;align-items:baseline}
.resumen-dia b{color:var(--ink);font-size:16px}
.resumen-dia .rojo{color:var(--red)}
.resumen-dia a{margin-left:auto;text-decoration:underline;text-underline-offset:3px;color:var(--naranja-t)}
.nota-pie{color:var(--muted);font-size:12.5px;margin:12px 2px 0;line-height:1.7}
.turnos{overflow:visible}
.franja{border-bottom:1px solid var(--line);scroll-margin-top:16px}
.franja:last-child{border-bottom:0}
.franja:target{background:var(--arena-l)}
.turno{display:grid;grid-template-columns:76px 1fr auto;gap:4px 14px;align-items:center;padding:12px 18px}
.turnos>.turno{border-top:1px solid var(--line)}
.turno .hora b{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.turno .hora small{display:block;font-size:11.5px;color:var(--muted)}
.turno .nombre{font-size:15.5px;font-weight:600;margin-right:6px}
a.nombre:hover{text-decoration:underline;text-underline-offset:3px}
.turno .detalle{font-size:13px;color:var(--muted);margin-top:1px}
.turno .detalle:empty{display:none}
.turno .acciones{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.turno .acciones form{margin:0}
.turno.libre{padding-top:7px;padding-bottom:7px;color:#A9B0A6}
.turno.libre .hora b{font-weight:400;font-size:14px;color:var(--muted)}
.turno.libre .quien{font-size:13.5px}
.turno.libre .acciones .btn{opacity:0}
.turno.libre:hover{background:var(--arena-l)}
.turno.libre:hover .acciones .btn,.turno.libre .acciones .btn:focus{opacity:1}
.turno.fal .nombre{color:var(--muted);text-decoration:line-through;text-decoration-color:#C9BFA8}
@media(hover:none){.turno.libre .acciones .btn{opacity:1}}
@media(max-width:700px){.turno{grid-template-columns:58px 1fr}.turno .acciones{grid-column:2;justify-content:flex-start}}
table.semana td{white-space:normal;vertical-align:top;font-size:13px;padding:7px 10px}
table.semana th.hoy a{color:var(--naranja-t);font-weight:600}
.cita-sem{display:block;padding:2px 7px;margin-bottom:3px;border-radius:6px;background:var(--arena);text-decoration:none!important}
.cita-sem.ate{background:var(--salvia)}
.cita-sem.fal{background:#F6DDD6;color:#8F2A1B}
/* ventanas de diálogo */
dialog.dialogo{border:1px solid var(--line);border-radius:14px;padding:0;width:440px;max-width:94vw;color:var(--ink);background:#fff;font:inherit;overflow:visible}
dialog.dialogo::backdrop{background:rgba(35,57,44,.4)}
.dialogo form{padding:24px 24px 20px;margin:0}
.dialogo h2{font-size:20px;margin:0 0 4px}
.dialogo .ayuda{color:var(--muted);font-size:13px;margin:0 0 4px}
.dialogo .ayuda a{text-decoration:underline;text-underline-offset:3px}
.dialogo .campos{display:grid;gap:14px;margin-top:16px}
.dialogo .dos{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dialogo .cap{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:5px}
.dialogo .elegido{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--arena-l);border-radius:8px;padding:10px 12px}
.dialogo .botones{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
@media print{.turno.libre{display:none}.turno{padding:6px 0}.card.turnos{border:0}}

/* agenda compacta: solo las citas, una línea por cita, ancho contenido */
.dia,.resumen-dia{max-width:900px}
.turnos>.turno{border-top:1px solid var(--line)}
.turnos>.turno:first-child{border-top:0}
.turno{grid-template-columns:52px 1fr auto;padding:8px 14px;gap:2px 12px;scroll-margin-top:16px}
.turno:target{background:var(--arena-l)}
.turno .hora b{font-size:14px}
.turno .quien{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.turno .nombre{font-size:14.5px;margin-right:4px}
.turno .detalle{display:inline;font-size:12.5px;margin:0 0 0 4px}
.turno .acciones{gap:4px;flex-wrap:nowrap}
.turno .btn.mini{padding:3px 9px;font-size:12.5px}
.libres{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:12px;font-size:13px;color:var(--muted)}
.libres .cap{margin-right:6px}
.libres button,.libres .h{font:inherit;font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--muted);background:none;border:1px solid var(--line);border-radius:6px;padding:2px 8px}
.libres button{cursor:pointer}
.libres button:hover{color:var(--ink);border-color:var(--bosque);background:#fff}
@media(max-width:700px){.turno{grid-template-columns:48px 1fr}.turno .quien{white-space:normal}.turno .detalle{display:block;margin:0}.turno .acciones{grid-column:2;justify-content:flex-start;flex-wrap:wrap}}

/* cabecera de la agenda: la fecha es el título (con flechas), las acciones son los únicos botones */
.ag-cab{display:flex;justify-content:space-between;align-items:center;gap:12px 20px;flex-wrap:wrap;margin-bottom:10px;max-width:900px}
.ag-fecha{display:flex;align-items:center;gap:2px;position:relative;margin-left:-8px}
.ag-fecha h1{margin:0;font-size:25px;line-height:1.2;letter-spacing:-.01em}
.ag-fecha h1 button{font:inherit;color:inherit;letter-spacing:inherit;background:none;border:0;padding:2px 6px;border-radius:8px;cursor:pointer}
.ag-fecha h1 button:hover{background:var(--arena)}
.ag-fecha .flecha{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;font-size:22px;line-height:1;color:var(--muted);padding-bottom:3px}
.ag-fecha .flecha:hover{background:var(--arena);color:var(--ink)}
.ag-fecha form{margin:0;position:absolute;left:40px;bottom:0;width:0;height:0;overflow:hidden}
.ag-fecha form input{width:1px;height:1px;padding:0;border:0;opacity:0}
.ag-acciones{display:flex;gap:8px}
.ag-sub{display:flex;align-items:baseline;gap:6px 22px;flex-wrap:wrap;margin-bottom:14px;max-width:900px;font-size:14px;color:var(--muted);border-bottom:1px solid var(--line)}
.pestanas{display:flex;gap:18px}
.pestanas a{padding:6px 0 8px;border-bottom:2px solid transparent;margin-bottom:-1px}
.pestanas a:hover{color:var(--ink)}
.pestanas a.on{color:var(--ink);font-weight:600;border-bottom-color:var(--naranja)}
.ag-sub .cuentas{display:flex;gap:4px 16px;flex-wrap:wrap}
.ag-sub .cuentas b{color:var(--ink)}
.ag-sub .rojo{color:var(--red)}
.ag-sub .der{margin-left:auto;display:flex;gap:16px}
.ag-sub .der a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:#C9BFA8}
.ag-sub .der a:hover{color:var(--ink)}
.ag-sub .der a.aviso{color:var(--naranja-t)}
table.semana{min-width:720px}
@media(max-width:700px){.ag-fecha h1{font-size:20px}.ag-acciones{width:100%}.ag-acciones .btn{flex:1;justify-content:center}}
.nota-pie{max-width:900px}

/* agenda en columnas: hora, paciente, celular, modalidad, quién agendó, acciones */
.dia,.ag-cab,.ag-sub,.nota-pie{max-width:1060px}
.turno{grid-template-columns:52px minmax(170px,1.5fr) 92px minmax(120px,.9fr) minmax(80px,.6fr) auto;align-items:center}
.turno.cab{padding-top:7px;padding-bottom:7px;font-size:12px;color:var(--muted);font-weight:500}
.turno .cel{font-size:13.5px;font-variant-numeric:tabular-nums}
.turno .modo,.turno .agendo{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.turno .modo small{font-size:12.5px;color:var(--muted)}
.turno .agendo{color:var(--muted)}
.turno .detalle{display:inline;font-size:12.5px;color:var(--muted);margin-left:4px}
.turno .marco{font-size:12px;color:var(--muted);margin-right:4px;white-space:nowrap}
.movs{margin-top:14px;font-size:13px;color:var(--muted);max-width:1060px}
.movs summary{cursor:pointer;width:max-content;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#C9BFA8;list-style:none}
.movs summary::-webkit-details-marker{display:none}
.movs summary:hover{color:var(--ink)}
.movs ul{list-style:none;margin:8px 0 0;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink)}
.movs li{padding:3px 0}
.movs .cuando{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:6px}
.movs b{font-weight:600}
@media(max-width:900px){
  .turno.cab{display:none}
  .turno{grid-template-columns:48px 1fr}
  .turno>div:not(.hora){grid-column:2}
  .turno .hora{grid-row:1 / span 5;align-self:start}
  .turno .quien{white-space:normal}
  .turno .cel:empty,.turno .modo:empty,.turno .agendo:empty{display:none}
  .turno .agendo::before{content:"Agendó: "}
  .turno .acciones{justify-content:flex-start;flex-wrap:wrap;margin-top:3px}
}
/* columnas de ancho fijo para que todas las filas queden alineadas */
.turno{grid-template-columns:52px minmax(0,1fr) 96px 170px 90px 296px}
@media(max-width:900px){.turno{grid-template-columns:48px 1fr}}

/* agenda: columna de motivo, semana en columnas por día y mes en calendario */
.turno{grid-template-columns:52px minmax(0,1fr) 92px 92px 112px 84px 296px}
.turno .motivo{font-size:13.5px;white-space:nowrap}
.pestanas{gap:16px}
.cita-sem{display:block;padding:3px 7px;margin-bottom:3px;border-radius:6px;background:var(--arena);font-size:12.5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cita-sem b{font-weight:600;font-variant-numeric:tabular-nums;margin-right:2px}
.cita-sem small{display:block;font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.cita-sem:hover{outline:1px solid var(--bosque)}
.sem-cols{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;max-width:1060px}
.sem-dia{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px;min-height:120px}
.sem-dia .cab{display:flex;justify-content:space-between;align-items:baseline;font-weight:600;font-size:14px;margin-bottom:8px}
.sem-dia .cab span{font-weight:400;font-size:12.5px;color:var(--muted)}
.sem-dia.hoy{border-color:var(--naranja)}
.sem-dia .vacio{margin:0;font-size:12.5px;color:#A9B0A6}
.card.mes{max-width:1060px;overflow:hidden}
.mes-cab,.mes-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.mes-cab div{padding:8px 10px;font-size:12px;color:var(--muted);font-weight:500;border-bottom:1px solid var(--line)}
.mes-dia{min-height:96px;padding:6px 6px 4px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}
.mes-dia:nth-child(7n){border-right:0}
.mes-dia .num{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:50%;font-size:13px;font-weight:500;margin-bottom:3px}
.mes-dia .num:hover{background:var(--arena)}
.mes-dia.hoy .num{background:var(--bosque);color:var(--lino)}
.mes-dia.fuera{background:var(--arena-l)}
.mes-dia.fuera .num{color:#A9B0A6}
.mes-dia .cita-sem{font-size:11.5px;padding:2px 5px;margin-bottom:2px}
.mes-dia .mas{font-size:11.5px;color:var(--muted);text-decoration:underline;text-underline-offset:2px}
@media(max-width:900px){
  .turno{grid-template-columns:48px 1fr}
  .turno .hora{grid-row:1 / span 6}
  .turno .motivo:empty{display:none}
  .sem-cols{grid-template-columns:1fr}
  .sem-dia{min-height:0}
  .mes-dia{min-height:64px;padding:4px 3px}
  .mes-dia .cita-sem{font-size:0;padding:0;height:6px;margin-bottom:2px}
  .mes-cab div{padding:6px 3px;font-size:11px;overflow:hidden}
}

/* asistencia: par Vino / Faltó; el marcado queda lleno (verde o rojo) */
.turno{grid-template-columns:52px minmax(0,1fr) 92px 88px 108px 80px 112px 200px}
.asistencia{display:inline-flex;width:max-content;border:1px solid #DDD2BA;border-radius:7px;overflow:hidden;background:#fff}
.asistencia form{margin:0;display:flex}
.asistencia form+form{border-left:1px solid #DDD2BA}
.asistencia button{font:inherit;font-size:12.5px;font-weight:500;color:var(--muted);background:none;border:0;padding:4px 10px;cursor:pointer}
.asistencia button:hover{background:var(--arena-l);color:var(--ink)}
.asistencia button.on.vino{background:#2F7D4F;color:#fff}
.asistencia button.on.falto{background:var(--red);color:#fff}
.asistencia:has(.badge){border:0;background:none}
.turno.ate{background:#F4F8F0}
.turno.fal{background:#FCF3F0}
.turno.fal .nombre{text-decoration:none;color:var(--ink)}
.turno .acciones{gap:0}
@media(max-width:900px){.turno{grid-template-columns:48px 1fr}.turno .hora{grid-row:1 / span 7}.turno .asistencia{margin-top:4px}}
@media print{.asistencia button:not(.on){display:none}.asistencia{border:0}}
/* quién marcó va debajo del par Vino / Faltó */
.asis{min-width:0}
.asis .marco{display:block;font-size:11.5px;margin:2px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.turno .acciones a.marco{font-size:12.5px;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#C9BFA8;margin-right:6px}
@media(max-width:900px){.turno .hora{grid-row:1 / span 8}}

/* ---- rutas del día (30-sep-2026) ---- */
.punto{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:1px}
.rutas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.card.ruta h2{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px}
.card.ruta h2 .resumen{font-weight:400;font-size:13px;color:var(--muted);margin-left:auto}
.card.ruta ol{list-style:none;margin:0;padding:6px 0;max-height:420px;overflow:auto}
.card.ruta li{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:6px 16px;font-size:13.5px}
.card.ruta li .n{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}
.card.ruta li .badge{margin-left:4px;font-size:11px}
.card.ruta .dir{color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card.ruta .sin-ubic{border-top:1px solid var(--line);padding:10px 16px;font-size:13px}
.card.ruta .sin-ubic a{text-decoration:underline;text-underline-offset:3px}

/* ---- nutrición ordenada: pacientes, ficha, consulta y citas pendientes (06-oct-2026) ---- */
/* mismo criterio que la agenda: ancho contenido, el título dice dónde se está, una acción principal y el resto como enlaces */
.nut{max-width:1060px}
.nut.angosta{max-width:900px}
.nut-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:12px 20px;flex-wrap:wrap;margin-bottom:16px}
.nut-cab h1{margin:0;font-size:25px;line-height:1.2;letter-spacing:-.01em}
.nut-cab .sub{color:var(--muted);font-size:14px;margin-top:4px}
.nut-cab .sub a,.enlace{text-decoration:underline;text-underline-offset:3px;text-decoration-color:#C9BFA8}
.nut-cab .sub a:hover,.enlace:hover{color:var(--ink);text-decoration-color:var(--bosque)}
.nut-cab .acc{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.nut-cab .acc form{margin:0}
/* franja de datos clave: un renglón, cada dato una sola vez */
.datos{display:flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-bottom:24px;overflow:hidden}
.datos>div{flex:1 1 170px;padding:12px 18px;border-right:1px solid var(--line);margin-right:-1px;min-width:0}
.datos .lbl{font-size:12px;color:var(--muted);font-weight:500}
.datos .val{font-size:18px;font-weight:600;margin-top:2px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.datos .val.vacio{font-weight:400;color:var(--muted);font-size:15px}
.datos .mas{font-size:12.5px;color:var(--muted);margin-top:1px}
.datos .baja{color:#2F7D4F}.datos .sube{color:var(--red)}
/* secciones: título suelto y debajo su contenido */
.sec{margin-top:26px}
.sec>h2{font-size:16px;margin:0 0 8px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.sec>h2 small{font-weight:400;font-size:13px;color:var(--muted)}
.sec>h2 .der{margin-left:auto;font-size:13px;font-weight:400;color:var(--muted)}
.sec .vacio{color:var(--muted);font-size:14px;margin:0}
.sec .card .vacio{padding:14px 18px}
.dos-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.bloque{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px}
.bloque h3{font-size:14px;margin:0 0 8px}
.bloque .chips{margin-bottom:4px}
.bloque .chip{font-size:13px;padding:2px 9px}
.bloque .fila{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--line);font-size:14px}
.bloque .fila:last-of-type{border-bottom:0}
.bloque .fila form{margin:0}
/* desplegables: lo que se usa poco queda cerrado */
details.mas-d{margin-top:8px;font-size:13.5px}
details.mas-d>summary{cursor:pointer;width:max-content;color:var(--muted);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#C9BFA8;list-style:none}
details.mas-d>summary::-webkit-details-marker{display:none}
details.mas-d>summary:hover{color:var(--ink)}
details.mas-d[open]>summary{margin-bottom:10px}
details.plegable>summary{list-style:none;cursor:pointer;padding:14px 18px;font-size:15.5px;font-weight:600;display:flex;align-items:baseline;gap:10px}
details.plegable>summary::-webkit-details-marker{display:none}
details.plegable>summary small{font-weight:400;font-size:13px;color:var(--muted)}
details.plegable>summary::after{content:"";margin-left:auto;align-self:center;width:7px;height:7px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(-45deg);transition:transform .15s}
details.plegable[open]>summary::after{transform:rotate(45deg)}
details.plegable[open]>summary{border-bottom:1px solid var(--line)}
details.plegable>summary:hover{background:var(--arena-l)}
.alim-grupo{margin:8px 0;font-size:13.5px}
.alim-grupo b{display:block;font-size:12px;font-weight:500;color:var(--muted);margin-bottom:2px}
.alim-grupo label{display:inline-flex;align-items:center;gap:5px;margin:2px 12px 2px 0}
/* consulta: medidas en renglones (nombre, valor, la anterior en gris) */
.nut .card+.card,.nut .card+details.card,.nut details.card+.card,.nut details.card+details.card{margin-top:14px}
.medidas{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2px 32px;padding:10px 18px 14px}
.medida{display:grid;grid-template-columns:1fr 96px 56px;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--line);font-size:14px}
.medida input{padding:5px 8px;font-size:14px;text-align:right}
.medida .ant{font-size:12.5px;color:#8A968C;text-align:right;font-variant-numeric:tabular-nums}
.medida b{text-align:right;font-variant-numeric:tabular-nums}
.medida .dif{font-size:12.5px;text-align:right;color:#8A968C;font-variant-numeric:tabular-nums}
.medida .dif.baja{color:#2F7D4F}.medida .dif.sube{color:var(--red)}
.med-grupo{font-size:12px;color:var(--muted);font-weight:500;margin:12px 0 2px}
.campos-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 18px;padding:16px 18px}
.campos-3 .full{grid-column:1/-1}
.campos-3 .cap small{font-weight:400;color:#8A968C}
.texto-libre{padding:14px 18px;font-size:15px;white-space:pre-wrap}
.cuenta-letras{font-size:12px;color:var(--muted);text-align:right;margin-top:3px}
/* citas pendientes: mismas filas que la agenda, agrupadas por día */
.pend-dia{font-size:13px;font-weight:600;margin:18px 2px 6px}
.pend-dia small{font-weight:400;color:var(--muted);margin-left:6px}
.turno.pend{grid-template-columns:52px minmax(0,1fr) 96px 170px 124px}
.turno.falta{grid-template-columns:104px minmax(0,1fr) 96px 190px 230px}
.turno.pend .tipo,.turno.falta .tipo{font-size:13.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.turno.falta .hora b{font-weight:500}
.turno.falta .hora small{display:inline;margin-left:4px}
@media(max-width:900px){
  .dos-col{grid-template-columns:1fr}
  .turno.pend,.turno.falta{grid-template-columns:1fr}
  .turno.pend>div,.turno.falta>div{grid-column:1!important;grid-row:auto!important}
  .turno.pend .tipo:empty,.turno.falta .tipo:empty{display:none}
  .nut-cab h1{font-size:21px}
  .nut-cab .acc{width:100%}
  .medida{grid-template-columns:1fr 88px 50px}
}
@media print{.nut-cab .acc{display:none}}
