/* IMPULSA en el portal: agenda, consultas y horarios.
   Usa las mismas piezas y colores del portal (--teal, --navy, .card, .kpi):
   tiene que sentirse una sección más, no otro sistema. */

.demo-cinta{background:#FFF4D6;color:#7A5200;font-size:12.5px;font-weight:600;text-align:center;padding:6px 12px;border-bottom:1px solid #F2DFA8}

#menuRep .mi .nuevo{margin-left:auto;font-style:normal;font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  background:#E8F5F6;color:var(--teal-dark);border-radius:20px;padding:2px 7px}
#menuRep .mi.on .nuevo{background:rgba(255,255,255,.22);color:#fff}
#menuRep .mi .insignia{font-style:normal;min-width:19px;height:19px;border-radius:10px;background:var(--warn);color:#fff;
  font-size:11px;font-weight:700;display:grid;place-items:center;padding:0 5px;margin-left:6px}
#menuRep .mi .insignia[hidden]{display:none}

.btn.b-pri{background:var(--teal);color:#fff;display:inline-flex;align-items:center;gap:6px}
.btn.b-pri:hover{background:var(--teal-dark)}
.btn.b-sec{background:#fff;color:var(--ink);border:1px solid var(--line);display:inline-flex;align-items:center;gap:6px}
.btn.b-sec:hover{border-color:var(--teal);color:var(--teal-dark)}
.btn svg{width:15px;height:15px}
.btn.chico{padding:5px 10px;font-size:12px}
.btn.ancho{width:100%;justify-content:center;margin-top:14px}
.tenue{color:var(--faint);font-size:12.5px}
.kpi[data-ir]{cursor:pointer}

/* Estados */
.est{display:inline-block;border-radius:20px;padding:2px 9px;font-size:11px;font-weight:700;white-space:nowrap}
.e-pend{background:#FFF1D6;color:#9A6400}
.e-ok{background:#E3F4EA;color:#1F7A4D}
.e-vino{background:#E8F5F6;color:var(--teal-dark)}
.e-aus{background:#FBE7E5;color:var(--danger)}
.e-off{background:#EEF2F5;color:var(--muted)}
.e-imp{background:var(--navy);color:#fff}

/* Aviso de reservas pendientes */
.aviso-ag{display:flex;align-items:center;gap:14px;background:#FFF8E8;border:1px solid #F3DDA8;border-radius:var(--r);padding:12px 16px;margin-bottom:16px}
.aviso-ag > svg{width:22px;height:22px;color:var(--warn);flex:0 0 auto}
.aviso-ag b{display:block;color:var(--ink)}
.aviso-ag span{font-size:12.5px;color:var(--muted)}
.aviso-ag .btn{margin-left:auto;white-space:nowrap}

/* Agenda: lista de la semana y ficha al costado */
.ag-g{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
@media(max-width:1100px){.ag-g{grid-template-columns:1fr}}
.ag-nav{margin-left:auto;display:flex;align-items:center;gap:6px;font-family:var(--body);font-size:12.5px;font-weight:600;color:var(--muted)}
.ag-nav button{border:1px solid var(--line);background:#fff;border-radius:7px;height:28px;min-width:28px;display:grid;place-items:center;cursor:pointer;color:var(--ink);padding:0 8px;font-weight:600}
.ag-nav button svg{width:15px;height:15px}
.ag-nav button.hoy{font-size:12px}
.ag-cuerpo{padding-top:10px}
.ag-acciones{display:flex;align-items:center;gap:12px;margin-bottom:6px;flex-wrap:wrap}
.ley{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}
.ley i{width:9px;height:9px;border-radius:50%;display:inline-block;margin-left:8px}
.o-imp{background:var(--teal)}
.o-par{background:#B7C3CF}
.ag-dia{padding:12px 0 4px;border-top:1px solid var(--line)}
.ag-dia:first-of-type{border-top:0}
.ag-dia h3{font-family:var(--disp);font-size:13.5px;margin:2px 0 8px;color:var(--navy);display:flex;align-items:center;gap:8px}
.ag-dia.es-hoy h3{color:var(--teal-dark)}
.ag-vacio{font-size:12.5px;color:var(--faint);padding:2px 0 8px}
.ag-bloq{font-size:12.5px;color:#9A6400;background:#FFF8E8;border-radius:8px;padding:6px 10px;margin-bottom:8px}
.ag-fila{display:grid;grid-template-columns:52px 10px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 10px;border-radius:9px;cursor:pointer;
  border:1px solid transparent;transition:background .15s,border-color .15s}
.ag-fila:hover{background:#F6F9FB}
.ag-fila.sel{background:#EEF8F8;border-color:#C9E6E8}
.ag-fila.pend{background:#FFFBF1}
.ag-fila .h{font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}
.ag-fila .o{width:10px;height:10px;border-radius:50%}
.ag-fila .p b{display:block;font-size:13.5px;color:var(--ink)}
.ag-fila .p small{font-size:11.5px;color:var(--muted)}
.ag-fila .a{display:flex;gap:6px;align-items:center}
@media(max-width:620px){.ag-fila{grid-template-columns:44px 10px minmax(0,1fr)}.ag-fila .a{grid-column:3}}

.fp{display:grid;grid-template-columns:1.3fr .9fr .8fr 1.2fr auto;gap:10px;align-items:end;background:#F7F9FB;border:1px solid var(--line);border-radius:9px;padding:12px;margin:6px 0 10px}
@media(max-width:900px){.fp{grid-template-columns:1fr 1fr}}

/* Ficha del paciente */
.ag-ficha{position:sticky;top:76px}
.ag-ficha > h2 svg{width:17px;height:17px;color:var(--teal-dark)}
.fi-nom{font-family:var(--disp);font-size:18px;color:var(--navy);font-weight:600}
.fi-tags{display:flex;gap:6px;margin:8px 0 12px}
.fi-dl{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;margin:0;font-size:12.5px}
.fi-dl dt{color:var(--muted)}
.fi-dl dd{margin:0;color:var(--ink);display:flex;align-items:center;gap:6px;overflow-wrap:anywhere}
.fi-dl dd svg{width:14px;height:14px;color:var(--faint);flex:0 0 auto}
.fi-nota,.fi-hist{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px}
.fi-nota small,.fi-hist small{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600;margin-bottom:5px}
.fi-hist div{display:flex;justify-content:space-between;align-items:center;padding:3px 0}

/* Mis consultas: embudo */
.intro-c{margin:0 0 14px;color:var(--muted);font-size:13px;max-width:70ch}
.embudo{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media(max-width:760px){.embudo{grid-template-columns:1fr 1fr}}
.emb{position:relative;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px 14px;overflow:hidden;background:#fff}
.emb .barra{position:absolute;left:0;bottom:0;height:4px;width:var(--w);background:var(--teal);border-radius:0 3px 3px 0}
.emb.os .barra{background:var(--navy)}
.emb b{font-family:var(--disp);font-size:26px;color:var(--navy);display:block;line-height:1.1}
.emb span{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600}
.emb em{position:absolute;top:12px;right:14px;font-style:normal;font-size:12px;font-weight:700;color:var(--teal-dark)}
.tabla-c{overflow-x:auto}
.tabla-c th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:10px 16px;border-bottom:1px solid var(--line);background:#F7F9FB}
.tabla-c td{padding:10px 16px;border-bottom:1px solid #F0F3F6}
.tabla-c .num{font-weight:700;color:var(--navy)}

/* Mis horarios */
.hr-g{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;align-items:start}
@media(max-width:1000px){.hr-g{grid-template-columns:1fr}}
.hr-dia{display:grid;grid-template-columns:130px 1fr auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.hr-dia .sw{margin:0}
.franjas{display:flex;flex-direction:column;gap:6px}
.franja{display:flex;align-items:center;gap:8px}
.franja input{width:110px}
.franja span{color:var(--muted);font-size:12.5px}
.x{border:0;background:transparent;color:var(--faint);cursor:pointer;width:26px;height:26px;border-radius:6px;display:grid;place-items:center}
.x:hover{color:var(--danger);background:#FBE7E5}
.x svg{width:14px;height:14px}
.hr-pie{border-top:1px solid var(--line);padding-top:14px;margin-top:4px}
@media(max-width:560px){.hr-dia{grid-template-columns:1fr}}
.bl{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #F0F3F6}
.bl b{display:block;font-size:13px}
.bl small{color:var(--muted);font-size:12px}
.bl-nuevo{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;align-items:end}
.bl-nuevo .f:nth-child(3){grid-column:1 / -1}
.bl-nuevo .btn{grid-column:1 / -1}
.vp{padding:8px 0;border-bottom:1px solid #F0F3F6}
.vp b{display:block;font-size:12.5px;color:var(--navy);margin-bottom:6px}
.vp div{display:flex;gap:6px;flex-wrap:wrap}
.vp span{border:1px solid var(--line);border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600}

/* IMPULSA en el Inicio */
.imp-ini{margin-bottom:6px}
.imp-cab{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}

/* Aviso flotante */
.toast-ag{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--navy);color:#fff;border-radius:10px;padding:11px 16px;
  display:flex;align-items:center;gap:10px;font-size:13px;box-shadow:0 12px 30px -12px rgba(18,35,63,.6);z-index:100;transition:opacity .4s,transform .4s}
.toast-ag svg{width:17px;height:17px;color:#7FE0C2}
.toast-ag.fuera{opacity:0;transform:translate(-50%,10px)}

/* ── Vista de semana: calendario ─────────────────────────── */
.seg{display:inline-flex;background:#EEF2F5;border-radius:9px;padding:3px}
.seg button{border:0;background:transparent;border-radius:7px;padding:6px 14px;font-weight:600;font-size:12.5px;color:var(--muted);cursor:pointer;font-family:inherit}
.seg button.on{background:#fff;color:var(--navy);box-shadow:0 1px 3px rgba(18,35,63,.15)}

.cal-ley{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:11.5px;color:var(--muted);margin:8px 0 10px}
.cal-ley span{display:inline-flex;align-items:center;gap:6px}
.cal-ley i{width:11px;height:11px;border-radius:3px;display:inline-block}
.cal-ley .tenue{margin-left:auto}

.cal-scroll{overflow:auto;max-height:640px;border:1px solid var(--line);border-radius:10px;background:#fff}
.cal{display:grid;grid-template-columns:52px repeat(var(--dias),minmax(108px,1fr));min-width:calc(52px + var(--dias) * 108px)}
.cal-esq,.cal-cab{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid var(--line)}
.cal-cab{padding:8px 6px 6px;text-align:center;border-left:1px solid var(--line)}
.cal-cab span{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:700}
.cal-cab b{display:block;font-family:var(--disp);font-size:19px;color:var(--navy);line-height:1.2}
.cal-cab em{display:block;font-style:normal;font-size:10.5px;color:var(--faint)}
.cal-cab.hoy b{background:var(--teal);color:#fff;border-radius:50%;width:30px;height:30px;line-height:30px;margin:2px auto}
.cal-cab.hoy span{color:var(--teal-dark)}

.cal-horas{position:relative;border-right:1px solid var(--line)}
.cal-h{position:absolute;right:8px;transform:translateY(-50%);font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.cal-h:first-child{transform:none}

/* Fondo: gris lo que no atiende, blanco lo que sí, una línea por hora */
.cal-col{position:relative;border-left:1px solid var(--line);cursor:copy;
  background:repeating-linear-gradient(180deg,transparent 0,transparent calc(69px - 1px),#EEF2F5 calc(69px - 1px),#EEF2F5 69px),
             repeating-linear-gradient(135deg,#F5F7F9 0,#F5F7F9 6px,#F0F3F6 6px,#F0F3F6 12px)}
.cal-col.hoy{background-color:#FAFEFE}
.cal-disp{position:absolute;left:0;right:0;background:
  repeating-linear-gradient(180deg,transparent 0,transparent calc(69px - 1px),#EEF2F5 calc(69px - 1px),#EEF2F5 69px),#fff}
.cal-bloq{position:absolute;left:0;right:0;z-index:1;background:repeating-linear-gradient(135deg,#FFF4D6 0,#FFF4D6 7px,#FBE9BC 7px,#FBE9BC 14px);
  border-top:2px solid var(--warn);display:flex;align-items:flex-start;justify-content:center;padding-top:8px;cursor:not-allowed}
.cal-bloq span{font-size:11px;font-weight:700;color:#8A5A00;background:rgba(255,255,255,.85);border-radius:6px;padding:2px 7px;text-align:center}

.cal-t{position:absolute;left:4px;right:4px;z-index:2;border:0;border-radius:7px;padding:4px 7px;text-align:left;cursor:pointer;
  display:flex;flex-direction:column;gap:0;overflow:hidden;font-family:inherit;border-left:3px solid;transition:transform .12s,box-shadow .12s}
.cal-t:hover{transform:translateY(-1px);box-shadow:0 6px 14px -8px rgba(18,35,63,.5);z-index:4}
.cal-t.sel{box-shadow:0 0 0 2px var(--navy);z-index:4}
.cal-t b{font-size:11px;font-weight:700;line-height:1.25}
.cal-t span{font-size:12px;font-weight:600;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-t small{font-size:10.5px;line-height:1.2;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t-ok{background:#DDF1F2;border-color:var(--teal);color:#0B4F53}
.t-pend{background:#FFEFC9;border-color:var(--warn);color:#6B4500}
.t-part{background:#E6EBF1;border-color:#8A9AAD;color:#2C3A4B}
.t-vino{background:#EAF6EE;border-color:var(--ok);color:#1F5F3D}
.t-aus{background:#FBE7E5;border-color:var(--danger);color:#8C2C24}
.t-off{background:#F1F3F5;border-color:#C5CED8;color:var(--muted);text-decoration:line-through}
.cal-ley i.t-ok{background:#DDF1F2;box-shadow:inset 3px 0 0 var(--teal)}
.cal-ley i.t-pend{background:#FFEFC9;box-shadow:inset 3px 0 0 var(--warn)}
.cal-ley i.t-part{background:#E6EBF1;box-shadow:inset 3px 0 0 #8A9AAD}
.cal-ley i.t-vino{background:#EAF6EE;box-shadow:inset 3px 0 0 var(--ok)}
.cal-ley i.t-aus{background:#FBE7E5;box-shadow:inset 3px 0 0 var(--danger)}
.t-pend::after{content:"";position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 3px rgba(227,154,43,.25);animation:latido-ag 1.8s ease-in-out infinite}
@keyframes latido-ag{50%{box-shadow:0 0 0 6px rgba(227,154,43,0)}}

.cal-ahora{position:absolute;left:-1px;right:0;height:2px;background:var(--danger);z-index:3;pointer-events:none}
.cal-ahora::before{content:"";position:absolute;left:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--danger)}

.fi-acc{display:flex;gap:8px;margin-top:14px}
.fi-acc .btn{flex:1;justify-content:center}
@media(prefers-reduced-motion:reduce){.t-pend::after{animation:none}}
