:root {
  --vino: #6B1E2E; --vino-2: #8B2C3F; --vino-osc: #3E0F1A;
  --oro: #C9A96E; --oro-2: #E8D5B0; --champan: #F7F0E6;
  --fondo: #FBF8F4; --tarjeta: #FFFFFF; --texto: #2A1C18; --suave: #7A6558; --linea: #EADFD2;
  --ok: #2F7D4F; --alerta: #A5611B; --error: #A12A2A;
  --radio: 14px; --sombra: 0 1px 2px rgba(62,15,26,.06), 0 6px 20px rgba(62,15,26,.06);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { background: var(--fondo); color: var(--texto); font-family: 'DM Sans', system-ui, sans-serif; font-size: 15px; line-height: 1.45; }
[hidden] { display: none !important; }
button, input, select, textarea { font: inherit; color: inherit; }
input, select, textarea {
  width: 100%; background: #fff; border: 1px solid var(--linea); border-radius: 10px; padding: .6rem .75rem; outline: none;
}
input:focus, select:focus, textarea:focus { border-color: var(--oro); box-shadow: 0 0 0 3px rgba(201,169,110,.25); }
textarea { resize: vertical; }
label { display: block; font-size: .8rem; font-weight: 500; color: var(--suave); }
label > input, label > select, label > textarea { margin-top: .3rem; color: var(--texto); font-weight: 400; font-size: .95rem; }

.btn { border: 0; border-radius: 999px; padding: .65rem 1.2rem; font-weight: 500; cursor: pointer; transition: transform .05s, background .15s; white-space: nowrap; }
.btn:active { transform: scale(.98); }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn-vino { background: var(--vino); color: #fff; }
.btn-vino:hover { background: var(--vino-2); }
.btn-oro { background: var(--oro); color: var(--vino-osc); }
.btn-oro:hover { background: #d6b87f; }
.btn-borde { background: transparent; border: 1px solid var(--vino); color: var(--vino); }
.btn-texto { background: transparent; color: var(--vino); padding: .35rem .5rem; }
.btn-texto:hover { text-decoration: underline; }
.btn-block { width: 100%; margin-top: 1rem; padding: .85rem; }

.marca { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: 1.35rem; color: var(--vino); letter-spacing: .02em; }
.marca-sub { font-size: .68rem; letter-spacing: .28em; text-transform: uppercase; color: var(--oro); font-weight: 700; }

/* Login */
.login { min-height: 100vh; display: grid; place-items: center; padding: 16px; background: radial-gradient(circle at 30% 20%, #fff 0, var(--champan) 60%); }
.login-caja { width: 100%; max-width: 360px; background: #fff; padding: 2.2rem 1.8rem; border-radius: 20px; box-shadow: var(--sombra); text-align: center; display: grid; gap: .9rem; }
.login-caja label { text-align: left; }
.login-caja .marca-sub { margin-bottom: .6rem; }

/* Barra */
.barra { display: flex; align-items: center; gap: 1rem; padding: .9rem 16px; background: #fff; border-bottom: 1px solid var(--linea); position: sticky; top: 0; z-index: 5; }
.barra .usuario-actual { margin-left: auto; font-size: .85rem; color: var(--suave); }
.barra #btn-salir { margin-left: .2rem; }
.chip-demo { background: #FFF3D6; color: var(--alerta); font-size: .72rem; font-weight: 700; padding: .3rem .7rem; border-radius: 999px; letter-spacing: .04em; }

.contenedor { max-width: 1100px; margin: 0 auto; padding: 1.2rem 16px 4rem; display: grid; gap: 1rem; }
.panel { background: var(--tarjeta); border-radius: var(--radio); box-shadow: var(--sombra); padding: 1.2rem; }
.paso { font-family: 'Cormorant Garamond', serif; font-size: 1.35rem; font-weight: 600; color: var(--vino-osc); display: flex; align-items: center; gap: .6rem; margin-bottom: .9rem; }
.paso span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--vino); color: #fff; font-family: 'DM Sans'; font-size: .85rem; font-weight: 700; }

/* Buscador de cliente */
.buscador { position: relative; }
.sugerencias { list-style: none; position: absolute; left: 0; right: 0; top: calc(100% + 4px); background: #fff; border: 1px solid var(--linea); border-radius: 12px; box-shadow: var(--sombra); max-height: 340px; overflow: auto; z-index: 10; }
.sugerencias li { display: flex; align-items: center; gap: .7rem; padding: .6rem .8rem; cursor: pointer; border-bottom: 1px solid var(--linea); }
.sugerencias li:last-child { border-bottom: 0; }
.sugerencias li:hover, .sugerencias li.activo { background: var(--champan); }
.sugerencias .vacio { color: var(--suave); cursor: default; }
.mini-foto { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; background: var(--champan); flex: none; }
.sug-texto { min-width: 0; }
.sug-nombre { font-weight: 500; }
.sug-meta { font-size: .8rem; color: var(--suave); }
.badge-vip { display: inline-block; background: var(--vino); color: #fff; font-size: .62rem; font-weight: 700; letter-spacing: .08em; padding: .1rem .45rem; border-radius: 999px; margin-left: .35rem; vertical-align: middle; }

.cliente { display: flex; gap: 1rem; align-items: center; }
.cliente-foto { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; background: var(--champan); border: 2px solid var(--oro-2); flex: none; }
.cliente-nombre { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; font-weight: 600; }
.cliente-meta { color: var(--suave); font-size: .88rem; }
.cliente-acciones { display: flex; flex-wrap: wrap; gap: .2rem; margin-top: .3rem; margin-left: -.5rem; }
.contador { background: var(--champan); color: var(--vino); border-radius: 999px; padding: 0 .45rem; font-size: .75rem; font-weight: 700; }
.resumen { white-space: pre-wrap; font-family: inherit; font-size: .85rem; color: var(--suave); background: var(--champan); border-radius: 10px; padding: .8rem 1rem; margin-top: .9rem; }

/* Filtros */
.filtros { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; }
.checks { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; margin: .9rem 0; }
.check { display: flex; align-items: center; gap: .45rem; color: var(--texto); font-size: .9rem; font-weight: 400; cursor: pointer; }
.check input { width: auto; margin: 0; accent-color: var(--vino); }
.notas small { font-weight: 400; }

/* Resultados */
.cargando { text-align: center; padding: 2.5rem 0; color: var(--vino); font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; font-style: italic; }
.anillo { width: 38px; height: 38px; border: 3px solid var(--oro-2); border-top-color: var(--vino); border-radius: 50%; margin: 0 auto .8rem; animation: gira 1s linear infinite; }
@keyframes gira { to { transform: rotate(360deg); } }
.embudo { color: var(--suave); font-size: .85rem; margin: .2rem 0 .8rem; }
.embudo b { color: var(--texto); }
.error { color: var(--error); background: #FBECEC; border-radius: 10px; padding: .7rem 1rem; font-size: .88rem; }
.resultados { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1rem; }

.match { background: #fff; border-radius: var(--radio); box-shadow: var(--sombra); overflow: hidden; display: flex; flex-direction: column; }
.match.hecho { opacity: .55; }
.match-foto { position: relative; aspect-ratio: 1 / 1; background: var(--champan); }
.match-foto img { width: 100%; height: 100%; object-fit: cover; object-position: center 25%; display: block; }
.match-foto .sin-foto { position: absolute; inset: 0; display: grid; place-items: center; color: var(--suave); font-size: .85rem; }
.puesto { position: absolute; top: .7rem; left: .7rem; background: rgba(62,15,26,.85); color: var(--oro-2); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: .3rem .6rem; border-radius: 999px; }
.pct { position: absolute; bottom: .7rem; right: .7rem; background: #fff; color: var(--vino); font-weight: 700; font-size: 1.1rem; padding: .35rem .7rem; border-radius: 999px; box-shadow: var(--sombra); }
.pct small { font-size: .65rem; font-weight: 500; color: var(--suave); margin-left: .15rem; }
.match-cuerpo { padding: 1rem 1.1rem 1.1rem; display: grid; gap: .7rem; flex: 1; }
.match-nombre { font-family: 'Cormorant Garamond', serif; font-size: 1.45rem; font-weight: 600; line-height: 1.1; }
.match-meta { font-size: .85rem; color: var(--suave); }
.barras { display: grid; gap: .3rem; }
.barra-fila { display: grid; grid-template-columns: 100px 1fr 34px; align-items: center; gap: .5rem; font-size: .75rem; color: var(--suave); }
.barra-pista { height: 6px; background: var(--champan); border-radius: 99px; overflow: hidden; }
.barra-lleno { height: 100%; background: linear-gradient(90deg, var(--oro), var(--vino-2)); border-radius: 99px; }
.barra-fila b { text-align: right; color: var(--texto); font-weight: 500; }
.porque { list-style: none; display: grid; gap: .3rem; font-size: .86rem; }
.porque li { padding-left: 1.1rem; position: relative; }
.porque li::before { content: '◆'; position: absolute; left: 0; color: var(--oro); font-size: .7rem; top: .15rem; }
.vigilar { background: #FFF6E6; color: var(--alerta); border-radius: 8px; padding: .45rem .7rem; font-size: .82rem; }
.acciones { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-top: auto; padding-top: .3rem; }
.acciones .btn { padding: .6rem .5rem; font-size: .88rem; }
.acciones .btn-principal { grid-column: 1 / -1; }
.estado-hecho { grid-column: 1 / -1; text-align: center; font-size: .85rem; color: var(--ok); font-weight: 500; }

/* Modales */
.modal { border: 0; border-radius: 18px; padding: 0; width: min(1000px, calc(100vw - 24px)); max-height: calc(100vh - 24px); margin: auto; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.modal::backdrop { background: rgba(30,10,15,.55); }
.modal-angosto { width: min(620px, calc(100vw - 24px)); }
.modal-cab { display: flex; align-items: center; justify-content: space-between; padding: .9rem 1.2rem; border-bottom: 1px solid var(--linea); position: sticky; top: 0; background: #fff; z-index: 1; }
.modal-cab h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.35rem; font-weight: 600; color: var(--vino-osc); }
.ficha-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.2rem; padding: 1.2rem; }
#lienzo { width: 100%; height: auto; border-radius: 12px; box-shadow: var(--sombra); background: var(--champan); }
.ficha-edicion { display: grid; gap: .7rem; align-content: start; }
.ayuda { font-size: .82rem; color: var(--suave); }
.botones { display: flex; gap: .5rem; flex-wrap: wrap; }
.botones .btn { flex: 1; }

.h-lista { padding: .6rem 1.2rem 1.2rem; display: grid; gap: .5rem; }
.h-item { display: grid; grid-template-columns: 1fr auto; gap: .3rem .8rem; align-items: center; padding: .7rem 0; border-bottom: 1px solid var(--linea); }
.h-item select { width: auto; padding: .35rem .5rem; font-size: .85rem; }
.h-nombre { font-weight: 500; }
.h-meta { font-size: .8rem; color: var(--suave); }
.h-vacio { color: var(--suave); padding: 1rem 0; }

.aviso { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); background: var(--vino-osc); color: #fff; padding: .7rem 1.2rem; border-radius: 999px; font-size: .9rem; z-index: 50; box-shadow: var(--sombra); max-width: calc(100vw - 32px); text-align: center; }

@media (max-width: 760px) {
  .filtros { grid-template-columns: 1fr 1fr; }
  .ficha-cuerpo { grid-template-columns: 1fr; }
  .resultados { grid-template-columns: 1fr; }
  .cliente-foto { width: 56px; height: 56px; }
}

/* Psicología */
.chip-psico { margin-left: auto; background: var(--champan); color: var(--vino); border: 1px solid var(--oro-2); border-radius: 999px; padding: .3rem .8rem; font-size: .8rem; font-weight: 500; cursor: pointer; }
.chip-psico + .usuario-actual { margin-left: .6rem; }
.badge-psico { display: inline-block; background: var(--champan); color: var(--vino); border: 1px solid var(--oro); font-size: .62rem; font-weight: 700; letter-spacing: .06em; padding: .1rem .45rem; border-radius: 999px; margin-left: .35rem; vertical-align: middle; }
.p-cuerpo { padding: 1rem 1.2rem 1.4rem; display: grid; gap: .9rem; }
.p-aviso { font-size: .78rem; color: var(--suave); background: var(--champan); border-radius: 8px; padding: .5rem .8rem; }
.p-titulo { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 600; color: var(--vino-osc); margin-bottom: .2rem; }
.p-seccion p { font-size: .92rem; line-height: 1.55; }
.p-seccion ul { list-style: none; display: grid; gap: .3rem; font-size: .9rem; }
.p-seccion li { padding-left: 1.1rem; position: relative; }
.p-seccion li::before { content: '◆'; position: absolute; left: 0; color: var(--oro); font-size: .7rem; top: .2rem; }
.p-dos { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.p-respuestas { display: grid; gap: .6rem; font-size: .85rem; max-height: 50vh; overflow: auto; border-top: 1px solid var(--linea); padding-top: .8rem; }
.p-respuestas b { display: block; color: var(--suave); font-weight: 500; }
.pp-fila { display: grid; grid-template-columns: 1fr 100px auto auto; gap: .5rem; align-items: center; padding: .6rem 0; border-bottom: 1px solid var(--linea); }
.pp-fila input { padding: .4rem .5rem; }
@media (max-width: 760px) { .p-dos { grid-template-columns: 1fr; } .pp-fila { grid-template-columns: 1fr 90px; } .pp-fila .btn { grid-column: 1 / -1; } }

/* ── Tanda quincenal ───────────────────────────────────────── */
.chip-tanda { margin-left: 1rem; background: var(--vino); color: #fff; border: 0; border-radius: 999px; padding: .4rem .9rem; font-size: .82rem; font-weight: 500; cursor: pointer; }
.chip-tanda:hover { background: var(--vino-2); }
.t-cab { display: flex; align-items: center; }
.t-estado { display: grid; gap: .25rem; font-size: .88rem; margin-bottom: 1rem; padding: .8rem 1rem; background: var(--champan); border-radius: 10px; }
.t-estado .ok { color: var(--ok); font-weight: 500; } .t-estado .mal { color: var(--error); font-weight: 500; }
.t-generar { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; margin-bottom: .6rem; }
.t-generar .check { display: inline-flex; align-items: center; gap: .4rem; color: var(--texto); font-size: .9rem; }
.t-num { width: 70px; display: inline-block; padding: .3rem .5rem; margin: 0 .2rem; } .t-num-ancho { width: 90px; }
.t-lista { display: grid; gap: .5rem; }
.t-fila { display: grid; grid-template-columns: 1fr auto; gap: .2rem .8rem; text-align: left; background: #fff; border: 1px solid var(--linea); border-radius: 10px; padding: .7rem .9rem; cursor: pointer; font: inherit; color: inherit; }
.t-fila:hover { border-color: var(--oro); }
.t-fila-nombre { font-weight: 500; } .t-fila-meta { grid-column: 1 / -1; font-size: .8rem; color: var(--suave); }
.t-chip { font-size: .72rem; font-weight: 700; padding: .2rem .65rem; border-radius: 999px; background: var(--champan); color: var(--vino); align-self: start; white-space: nowrap; }
.t-gen { background: #FFF3D6; color: var(--alerta); } .t-env { background: #E3F0FA; color: #1F5F8B; } .t-ok { background: #E4F3EA; color: var(--ok); } .t-pau { background: #F6E3E3; color: var(--error); }
.t-resumen-cab { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.t-nombre { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; font-weight: 600; color: var(--vino-osc); }
.t-sub { font-size: .88rem; color: var(--suave); margin-top: .2rem; }
.t-progreso { height: 8px; background: var(--champan); border-radius: 999px; overflow: hidden; margin-top: .9rem; }
.t-progreso-lleno { height: 100%; background: linear-gradient(90deg, var(--oro), var(--vino)); transition: width .6s; }
.t-acciones { margin-top: .9rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.t-pestanas { display: flex; flex-wrap: wrap; gap: .35rem; margin: 1.2rem 0 .8rem; }
.t-pestana { background: transparent; border: 1px solid var(--linea); border-radius: 999px; padding: .4rem .85rem; font: inherit; font-size: .85rem; color: var(--suave); cursor: pointer; }
.t-pestana.activa { background: var(--vino); border-color: var(--vino); color: #fff; }
.t-pestana.activa .contador { background: rgba(255,255,255,.2); color: #fff; }
.t-items { display: grid; gap: 1rem; }
.t-vacio { text-align: center; padding: 2rem 0; }
.t-item { background: var(--tarjeta); border-radius: var(--radio); box-shadow: var(--sombra); padding: 1rem 1.1rem; display: grid; gap: .8rem; }
.t-item-cab { display: flex; justify-content: space-between; gap: .8rem; flex-wrap: wrap; align-items: flex-start; }
.t-item-cab .botones { display: flex; flex-wrap: wrap; gap: .2rem; align-items: center; }
.t-item-nombre { font-weight: 700; font-size: 1.02rem; color: var(--vino-osc); }
.t-item-meta { font-size: .78rem; color: var(--suave); margin-top: .15rem; word-break: break-all; }
.t-intentos { font-size: .7rem; font-weight: 700; padding: .12rem .5rem; border-radius: 999px; margin-left: .35rem; vertical-align: middle; }
.t-intentos.ok { background: #E4F3EA; color: var(--ok); } .t-intentos.sin { background: #F6E3E3; color: var(--error); }
.t-consejo textarea { font-family: 'Cormorant Garamond', serif; font-size: 1.08rem; font-style: italic; background: var(--champan); border-color: var(--oro-2); }
.t-cands { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .7rem; }
.t-cand { border: 1px solid var(--linea); border-radius: 12px; padding: .5rem; display: grid; gap: .3rem; align-content: start; position: relative; min-width: 0; }
.t-cand img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 8px; background: var(--champan); }
.t-cand-pct { position: absolute; top: .9rem; right: .9rem; background: rgba(62,15,26,.85); color: #fff; font-size: .75rem; font-weight: 700; padding: .1rem .45rem; border-radius: 999px; }
.t-cand-nombre { font-weight: 700; font-size: .9rem; } .t-cand-meta { font-size: .72rem; color: var(--suave); }
.t-razon { font-size: .8rem; padding: .4rem .5rem; resize: vertical; }
.t-cambiar { justify-self: start; font-size: .8rem; padding: .2rem .3rem; }
.t-cand .vigilar { font-size: .72rem; }
.t-reservas { font-size: .75rem; margin-top: -.3rem; }
.t-senales { display: flex; flex-wrap: wrap; gap: .4rem; }
.t-senal { font-size: .75rem; padding: .2rem .6rem; border-radius: 999px; background: var(--champan); color: var(--suave); }
.t-senal.ok { background: #E4F3EA; color: var(--ok); } .t-senal.oro { background: #FFF3D6; color: var(--alerta); }
.t-rec { display: grid; grid-template-columns: 1fr auto auto; gap: .6rem; align-items: center; padding: .7rem 0; border-bottom: 1px solid var(--linea); }
.t-rec.hecho { opacity: .6; }
.c-cuerpo { display: grid; grid-template-columns: 1fr 260px; gap: 1rem; padding: 1rem; }
.c-marco { width: 100%; height: 70vh; border: 1px solid var(--linea); border-radius: 10px; background: #F4ECE1; }
.c-prueba { display: grid; gap: .6rem; align-content: start; }
@media (max-width: 1000px) { .t-cands { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .chip-tanda { margin-left: .4rem; padding: .35rem .6rem; font-size: .75rem; }
  .t-cands { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .c-cuerpo { grid-template-columns: 1fr; } .c-marco { height: 60vh; }
  .t-rec { grid-template-columns: 1fr; }
}
.t-acciones .btn { flex: 0 0 auto; }
@media (max-width: 760px) {
  .barra { flex-wrap: wrap; gap: .5rem .6rem; }
  .barra .usuario-actual { display: none; }
  .barra .chip-psico { margin-left: auto; }
  .barra .chip-psico[hidden] + .usuario-actual + #btn-salir { margin-left: auto; }
}

/* Selecciones nuevas · Evaluar · Resumen */
.chip-sec { background: var(--champan); color: var(--vino); border: 1px solid var(--oro-2); margin-left: .5rem; }
.chip-sec:hover { background: var(--oro-2); }
.s-filtros { display: flex; flex-wrap: wrap; gap: .8rem 1.2rem; align-items: end; margin-top: .6rem; }
.s-filtros select { width: auto; }
.s-lista { display: grid; gap: .8rem; }
.s-item { background: #fff; border-radius: var(--radio); box-shadow: var(--sombra); padding: 1rem 1.1rem; display: grid; gap: .7rem; }
.s-item.hecho { opacity: .6; }
.s-pareja { display: grid; grid-template-columns: 1fr auto 1fr; gap: .8rem; align-items: center; }
.s-persona { display: flex; gap: .7rem; align-items: center; min-width: 0; }
.s-persona img, .s-persona .mini-foto { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex: none; }
.s-persona .h-nombre { font-weight: 600; }
.s-flecha { color: var(--oro); font-size: 1.4rem; text-align: center; }
.s-flecha small { display: block; font-size: .7rem; color: var(--suave); }
.s-item textarea { font-size: .9rem; }
.s-meta { font-size: .78rem; color: var(--suave); }
.e-grid { display: grid; grid-template-columns: 200px 1fr; gap: .8rem; }
.alerta-regla { background: #FBECEC; color: var(--error); border-radius: 8px; padding: .45rem .7rem; font-size: .82rem; }
@media (max-width: 760px) { .s-pareja { grid-template-columns: 1fr; } .s-flecha { transform: rotate(90deg); } .e-grid { grid-template-columns: 1fr; } .barra { flex-wrap: wrap; } .chip-sec { margin-left: .3rem; padding: .35rem .6rem; font-size: .75rem; } }

/* Código de Citas VIP junto a cada nombre */
.cod { display: inline-block; font-family: 'DM Sans', sans-serif; font-size: .78rem; font-weight: 700; letter-spacing: .02em; color: var(--vino); background: #F3E6D3; border: 1px solid #E2CBA8; padding: .08rem .5rem; border-radius: 6px; margin-left: .45rem; vertical-align: middle; white-space: nowrap; user-select: all; }
.match-nombre .cod, #cliente-nombre .cod { font-size: .9rem; }
