:root{--blue:#07518a;--blue2:#0b6cae;--lime:#b8d800;--ink:#183142;--bg:#f3f7fa;--line:#dce6eb;--white:#fff}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}.app{display:flex;min-height:100vh}.side{width:255px;background:linear-gradient(180deg,var(--blue),#063e6c);color:white;padding:25px 15px;position:fixed;height:100vh}.brand{font-size:25px;font-weight:800;letter-spacing:-1px}.brand span{color:white}.brand i{color:var(--lime);font-style:normal;font-weight:600}.brand.big{font-size:36px;text-align:center;color:white}.nav{margin-top:45px}.nav button{display:block;width:100%;border:0;background:transparent;color:#dcebf5;text-align:left;padding:14px 15px;border-radius:12px;margin:6px 0;cursor:pointer;font-weight:600}.nav button:hover,.nav button.active{background:rgba(255,255,255,.13);color:white}.main{margin-left:255px;width:calc(100% - 255px);padding:0 34px 40px}.top{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.user{font-size:14px}.pageTitle{margin:28px 0}.pageTitle h1{margin:0;font-size:28px;letter-spacing:-.7px}.pageTitle p{color:#71808a;margin:7px 0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:20px}.card{background:white;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 5px 20px rgba(18,52,74,.04)}.stat small{color:#70808a}.stat b{display:block;font-size:32px;margin-top:8px;color:var(--blue)}.primary{background:var(--lime);border:0;color:#183142;font-weight:800;padding:11px 18px;border-radius:10px;cursor:pointer}.primary:hover{filter:brightness(.96)}.ghost{background:white;border:1px solid var(--line);padding:9px 14px;border-radius:10px;cursor:pointer}.row{display:flex;align-items:center;gap:12px}.week{display:flex;background:white;border:1px solid var(--line);border-radius:16px;padding:8px;margin:15px 0 20px;gap:5px}.day{flex:1;border:0;background:transparent;border-radius:11px;padding:9px;color:#73818a;text-transform:capitalize;cursor:pointer}.day b{display:block;font-size:18px;color:var(--ink)}.day.active{background:var(--blue);color:white}.day.active b{color:white}.agendaLayout{display:grid;grid-template-columns:minmax(700px,1fr) 250px;gap:18px}.schedule{background:white;border:1px solid var(--line);border-radius:18px;overflow:auto}.scheduleHead{padding:18px 22px;font-weight:800;text-transform:capitalize;border-bottom:1px solid var(--line)}.grid{display:grid;grid-template-columns:68px repeat(var(--cols),minmax(170px,1fr));min-width:720px}.profHead{padding:13px 12px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px}.profHead span{display:block;color:#81909a;font-size:11px;margin-top:3px}.time{height:54px;padding:7px 8px;color:#84919a;font-size:11px;border-bottom:1px solid var(--line)}.slot{height:54px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding:3px;cursor:pointer}.slot:hover{background:#f8fbfd}.appt{height:48px;border-radius:8px;padding:6px 8px;background:#e6f5fb;border-left:4px solid var(--blue2);font-size:11px;overflow:hidden}.appt b{font-size:12px}.appt.confirmada{background:#eff8c9;border-color:var(--lime)}.appt.pendiente{background:#fff3cf;border-color:#f0b429}.appt.realizada{background:#e1f4e8;border-color:#4ca86a}.appt.cancelada{background:#fde7e7;border-color:#d45a5a}.rightPanel{display:grid;gap:15px;height:min-content}.table{width:100%;background:white;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:16px;overflow:hidden}.table th,.table td{text-align:left;padding:15px;border-bottom:1px solid var(--line)}.table th{color:#75838c;font-size:12px}.modal{position:fixed;inset:0;background:rgba(8,33,51,.42);display:flex;align-items:center;justify-content:center;padding:20px;z-index:10}.modalBox{background:white;border-radius:20px;padding:25px;width:min(680px,100%);box-shadow:0 20px 60px rgba(0,0,0,.2)}.modalBox h2{margin-top:0}.formGrid,.form2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.full{grid-column:1/-1}.field label,label{display:block;font-size:12px;font-weight:700;color:#62737e;margin-bottom:6px}.field input,.field select,input,select,textarea{width:100%;padding:11px;border:1px solid #cedbe2;border-radius:9px;background:white}.modalActions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.loginBody{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#063e6c,#0b6cae)}.loginCard,.installCard{background:white;border-radius:24px;padding:38px;width:min(460px,92vw);box-shadow:0 25px 70px rgba(0,0,0,.25)}.installCard{width:min(760px,94vw)}.loginCard .brand{color:var(--blue)}.loginCard .brand span{color:var(--blue)}.installCard .brand{color:var(--blue)}.installCard .brand span{color:var(--blue)}.loginCard p,.installCard p{color:#74828c;text-align:center;margin-bottom:25px}.loginCard label{margin-top:15px}.full{width:100%;margin-top:20px}.alert{padding:12px;background:#fde8e8;color:#9d3030;border-radius:10px;margin:10px 0}.installCard h3{margin:22px 0 10px;color:var(--blue)}@media(max-width:1000px){.side{width:70px;padding:22px 8px}.brand{font-size:0}.brand:after{content:"FN";font-size:21px;color:var(--lime)}.nav button{font-size:0;text-align:center}.nav button:first-letter{font-size:18px}.main{margin-left:70px;width:calc(100% - 70px)}.agendaLayout{grid-template-columns:1fr}.rightPanel{display:none}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.main{padding:0 15px 25px}.stats{grid-template-columns:1fr 1fr}.formGrid,.form2{grid-template-columns:1fr}.week{overflow:auto}.day{min-width:70px}.pageTitle h1{font-size:23px}}.patientSearch{margin:0 0 16px;max-width:520px}.patientRow{cursor:pointer}.patientRow:hover{background:#f3f9fc}.patientPicker{position:relative}.patientResults{display:none;position:absolute;z-index:30;top:calc(100% + 5px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(18,52,74,.15);max-height:260px;overflow:auto}.patientOption{display:block;width:100%;text-align:left;border:0;background:#fff;padding:10px 12px;cursor:pointer;border-bottom:1px solid #edf2f5}.patientOption:hover{background:#f3f8fb}.patientOption b,.patientOption span{display:block}.patientOption span{font-size:12px;color:#71808a;margin-top:2px}.noResults{padding:12px;color:#71808a;font-size:14px}.helpText{display:block;color:#7d8b94;margin-top:6px;font-size:11px}.danger{background:#fff0f0;color:#b23b3b;border:1px solid #f2caca;padding:10px 14px;border-radius:10px;font-weight:700;cursor:pointer}.danger:hover{background:#ffe2e2}.appointmentActions .actionSpacer{flex:1}.backLink{border:0;background:transparent;color:var(--blue);font-weight:700;padding:0;margin:0 0 12px;cursor:pointer}.profileGrid{display:grid;grid-template-columns:1fr 260px;gap:18px}.profileName{display:flex;align-items:center;gap:15px;margin-bottom:25px}.profileName h2{margin:0}.profileName span{color:#71808a}.avatar{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;font-size:24px;font-weight:800}.infoGrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.infoGrid div{background:#f7fafb;border-radius:12px;padding:13px}.infoGrid small,.notes small{display:block;color:#75838c;margin-bottom:5px}.infoGrid b{display:block;word-break:break-word}.notes{margin-top:18px;border-top:1px solid var(--line);padding-top:15px}.notes p{margin:5px 0}.activityNum{font-size:42px;font-weight:800;color:var(--blue)}.historyList{margin-top:12px}.historyItem{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.historyItem span{display:block;color:#71808a;font-size:13px;margin-top:3px}.badge{display:inline-block!important;padding:5px 9px;border-radius:999px;font-size:11px!important;font-weight:700}.badge.confirmada{background:#eff8c9;color:#5c7100}.badge.pendiente{background:#fff3cf;color:#966f00}.badge.realizada{background:#e1f4e8;color:#287544}.badge.cancelada{background:#fde7e7;color:#b23b3b}.muted{color:#71808a}@media(max-width:800px){.profileGrid{grid-template-columns:1fr}.infoGrid{grid-template-columns:1fr}.historyItem{align-items:flex-start;gap:10px}}

/* v1.1 Agenda profesional multivista */
.agendaTop{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:26px 0 18px}.agendaTop h1{margin:0;font-size:29px}.agendaTop p{margin:6px 0 0;color:#71808a}.agendaControls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.viewSwitch{display:flex;background:#e9f0f4;padding:4px;border-radius:11px}.viewSwitch button{border:0;background:transparent;padding:8px 13px;border-radius:8px;font-weight:700;color:#657681;cursor:pointer}.viewSwitch button.on{background:#fff;color:var(--blue);box-shadow:0 2px 7px rgba(18,52,74,.12)}.currentTitle{padding:0 6px;text-transform:capitalize}.agendaProLayout{display:grid;grid-template-columns:235px minmax(0,1fr);gap:18px}.agendaSidebar{display:grid;gap:15px;align-content:start}.miniCalendar{padding:16px}.miniNav{display:flex;align-items:center;justify-content:space-between;text-transform:capitalize;margin-bottom:13px}.miniNav button{border:0;background:#edf3f6;border-radius:8px;width:29px;height:29px;font-size:21px;cursor:pointer}.miniWeekdays,.miniDays{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.miniWeekdays span{font-size:10px;font-weight:800;color:#82909a;padding-bottom:5px}.miniDay{border:0;background:transparent;border-radius:7px;height:28px;cursor:pointer;font-size:12px}.miniDay:hover{background:#edf5f8}.miniDay.selected{background:var(--blue);color:#fff;font-weight:800}.miniDay.mutedDay{color:#b5c0c6}.todayMini{width:100%;border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px;margin-top:12px;font-weight:700;cursor:pointer;color:var(--blue)}.proFilters{padding:17px}.filterTitle{display:flex;justify-content:space-between;margin-bottom:12px}.filterTitle button{border:0;background:transparent;color:var(--blue);font-size:12px;font-weight:700;cursor:pointer}.proFilters label{display:flex;align-items:center;gap:8px;margin:10px 0;font-size:13px;color:#50616d;cursor:pointer}.proFilters input{width:auto}.proDot{width:9px;height:9px;border-radius:50%;display:inline-block}.agendaMain{min-width:0}.schedule{min-height:500px}.slot.occupied{cursor:pointer}.slot.occupied:hover{background:#f7fafb}.appt{cursor:pointer;box-shadow:0 2px 5px rgba(18,52,74,.08)}.appt:hover{transform:translateY(-1px);filter:brightness(.98)}.weekSchedule{overflow:auto}.weekGrid{display:grid;grid-template-columns:65px repeat(7,minmax(130px,1fr));min-width:850px}.weekTimeHead,.weekDayHead{height:58px;padding:12px;border-bottom:1px solid var(--line);border-left:1px solid var(--line)}.weekDayHead{text-align:center;text-transform:capitalize;color:#73818a}.weekDayHead b{display:block;font-size:18px;color:var(--ink)}.weekSlot{min-height:54px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding:3px;cursor:pointer}.weekSlot:hover{background:#f8fbfd}.weekAppt{padding:4px 6px;border-radius:7px;background:#e6f5fb;border-left:3px solid var(--blue);font-size:10px;margin-bottom:2px;cursor:pointer}.weekAppt small{display:block;color:#60717c;margin-top:2px}.weekAppt.confirmada{background:#eff8c9;border-color:var(--lime)}.weekAppt.pendiente{background:#fff3cf;border-color:#f0b429}.weekAppt.realizada{background:#e1f4e8;border-color:#4ca86a}.weekAppt.cancelada{background:#fde7e7;border-color:#d45a5a}.monthSchedule{overflow:auto}.monthWeekNames,.monthGrid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));min-width:840px}.monthWeekNames b{padding:12px;text-align:center;background:#f7fafb;border-bottom:1px solid var(--line);font-size:12px;color:#667782}.monthCell{min-height:130px;text-align:left;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;padding:9px;cursor:pointer;vertical-align:top}.monthCell:hover{background:#f8fbfd}.monthCell.selected{box-shadow:inset 0 0 0 2px var(--blue)}.monthCell.outside{background:#fafcfd;cursor:default}.monthCell>div:first-child{display:flex;justify-content:space-between}.monthCell>div:first-child span{font-size:10px;color:#74848e}.monthCell small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;color:#5b6c77;margin-top:4px}.monthDots{margin-top:6px}.monthDots i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--blue);margin-right:3px}.monthDots i.confirmada{background:#91ae00}.monthDots i.pendiente{background:#e5a100}.monthDots i.realizada{background:#3b9b5b}.monthDots i.cancelada{background:#c85c5c}@media(max-width:1100px){.agendaProLayout{grid-template-columns:1fr}.agendaSidebar{grid-template-columns:280px 1fr}.agendaTop{align-items:flex-start;flex-direction:column}.agendaControls{width:100%}}@media(max-width:700px){.agendaSidebar{grid-template-columns:1fr}.currentTitle{display:none}.agendaControls{gap:5px}.agendaTop h1{font-size:24px}.monthCell{min-height:90px}.monthCell small{display:none}}
.busySlot{background:#f4f7f8;cursor:not-allowed}.busyFill{height:100%;border-left:4px solid #b7c5cc;background:rgba(180,200,210,.18);border-radius:4px;cursor:pointer}.busySlot:hover{background:#eef3f5}

/* =========================================================
   FisNaturGest v1.2 — Menú lateral minimalista y limpio
   ========================================================= */
:root{
  --blue:#1769aa;
  --blue2:#2d7fbe;
  --lime:#b6cf20;
  --ink:#202a33;
  --bg:#f7f8fa;
  --line:#e6e9ed;
  --white:#ffffff;
}
body{background:#f7f8fa;color:#27313a}
.app{background:#f7f8fa}
.side{
  width:252px;
  background:#fff;
  color:#27313a;
  padding:24px 12px;
  border-right:1px solid #e9edf0;
  box-shadow:none;
}
.brand{
  padding:5px 14px 0;
  font-size:25px;
  letter-spacing:-1.2px;
  color:#1f5f97;
}
.brand span{color:#1f5f97}
.brand i{color:var(--lime);font-style:normal;font-weight:800}
.brandSub{
  margin:7px 14px 30px;
  color:#a0a8af;
  font-size:9px;
  letter-spacing:1.35px;
  font-weight:800;
}
.nav{margin-top:0}
.nav button{
  display:flex;
  align-items:center;
  gap:13px;
  width:100%;
  min-height:47px;
  margin:3px 0;
  padding:0 15px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#66727c;
  text-align:left;
  font-size:14px;
  font-weight:600;
  transition:background .16s,color .16s;
}
.navIcon{
  width:22px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  color:#8a969f;
  font-size:19px;
  font-weight:500;
  line-height:1;
}
.nav button:hover{
  background:#f5f7f8;
  color:#28343c;
}
.nav button:hover .navIcon{color:#4d5d68}
.nav button.active{
  background:#eaf3fb;
  color:#1769aa;
  font-weight:750;
}
.nav button.active .navIcon{color:#1769aa}
.main{
  margin-left:252px;
  width:calc(100% - 252px);
  padding:0 34px 40px;
  background:#f7f8fa;
}
.top{
  height:76px;
  border-bottom:1px solid #e9edf0;
}
.user{color:#5f6b74}
.card,.schedule,.week,.miniCalendar,.proFilters{
  box-shadow:none;
  border-color:#e4e9ed;
}
.primary{
  background:#1769aa;
  color:#fff;
  border-radius:8px;
}
.primary:hover{background:#115b96}
.ghost{
  border-color:#dde3e7;
  background:#fff;
  color:#53616b;
}
.viewSwitch{background:#edf1f4}
.viewSwitch button.on{color:#1769aa}
.day.active{background:#1769aa}
.miniDay.selected{background:#1769aa}
.stat b{color:#1769aa}
.appt{border-left-color:#2d7fbe}
.backLink{color:#1769aa}
.avatar{background:linear-gradient(135deg,#1769aa,#2d7fbe)}
.activityNum{color:#1769aa}

@media(max-width:1000px){
  .side{width:70px;padding:20px 8px}
  .brand{font-size:0;padding:5px 0;text-align:center}
  .brand:after{content:"FG";font-size:20px;color:#1769aa;font-weight:800}
  .brandSub{display:none}
  .nav button{justify-content:center;padding:0;font-size:0}
  .nav button span:last-child{display:none}
  .navIcon{font-size:19px}
  .main{margin-left:70px;width:calc(100% - 70px)}
}


/* v1.2.1 — Iconografía SVG y navegación activa definitiva */
.navIcon svg{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  display:block;
}
.nav button{
  position:relative;
}
.nav button.active::before{
  content:"";
  position:absolute;
  left:0;
  top:9px;
  bottom:9px;
  width:3px;
  border-radius:0 4px 4px 0;
  background:#1769aa;
}
.nav button.active{
  background:#eef6fc;
}
@media(max-width:1000px){
  .nav button.active::before{left:-1px}
}

.tabs{display:flex;gap:8px;border-bottom:1px solid #e5e9ec;margin-bottom:18px}.tab{border:0;background:transparent;padding:13px 16px;color:#68737b;font-weight:700;border-bottom:3px solid transparent}.tab.active{color:#1769aa;border-bottom-color:#1769aa}.formGrid,.permissionGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.formGrid label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700}.formGrid input,.formGrid select,.formGrid textarea{border:1px solid #dfe5e8;border-radius:8px;padding:11px}.formGrid textarea{min-height:90px}.permission{display:flex;align-items:center;justify-content:space-between;border:1px solid #e3e8eb;border-radius:9px;padding:13px}.notice{margin-top:18px;padding:12px;background:#f7f8fa;border-radius:8px}.clickRow:hover{background:#f6f9fb}@media(max-width:760px){.formGrid,.permissionGrid{grid-template-columns:1fr}}

/* =========================================================
   FisNaturGest v1.4.3 — Profesionales: interfaz renovada
   ========================================================= */
.professionalsTitle{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}
.eyebrow{display:block;color:#91a0aa;font-size:10px;font-weight:800;letter-spacing:1.5px;margin-bottom:7px}
.addProfessional{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:12px 17px}.addProfessional span{font-size:20px;font-weight:400;line-height:.8}
.professionalStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.professionalStats>div{background:#fff;border:1px solid #e5eaee;border-radius:12px;padding:14px 17px}.professionalStats span{display:block;color:#89959d;font-size:12px;margin-bottom:5px}.professionalStats b{font-size:22px;color:#26323a}
.professionalsCard{padding:0;overflow:hidden}.professionalListHead,.professionalItem{display:grid;grid-template-columns:minmax(250px,2fr) minmax(130px,1.1fr) minmax(120px,.9fr) minmax(110px,.8fr) 28px;gap:18px;align-items:center}.professionalListHead{padding:13px 22px;background:#fafbfc;border-bottom:1px solid #e8ecef;color:#98a2aa;font-size:10px;font-weight:800;letter-spacing:.7px}.professionalItem{width:100%;padding:17px 22px;border:0;border-bottom:1px solid #edf0f2;background:#fff;text-align:left;color:inherit;cursor:pointer;transition:background .16s,transform .16s}.professionalItem:last-child{border-bottom:0}.professionalItem:hover{background:#f8fbfd}.professionalIdentity{display:flex;align-items:center;gap:13px;min-width:0}.professionalIdentity b{display:block;font-size:14px;color:#29343c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.professionalIdentity span{display:block;color:#89949c;font-size:12px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.professionalAvatar{width:42px;height:42px;min-width:42px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--avatar) 14%,#fff);color:var(--avatar);font-size:14px;font-weight:800;border:1px solid color-mix(in srgb,var(--avatar) 18%,#fff)}.professionalSpecialty{font-size:13px;color:#5e6b74}.rolePill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:750;white-space:nowrap}.rolePill.admin{background:#eef1f7;color:#44536a}.rolePill.director{background:#f2edfb;color:#6951a5}.rolePill.reception{background:#fff4df;color:#956817}.rolePill.professional{background:#eaf5fb;color:#286c9b}.accessState{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:650}.accessState i{width:7px;height:7px;border-radius:50%;display:block}.accessState.enabled{color:#3d8060}.accessState.enabled i{background:#46b675}.accessState.disabled{color:#9a6161}.accessState.disabled i{background:#d97777}.rowArrow{font-size:24px;color:#a7b0b6;font-weight:300}.emptyProfessionals{text-align:center;padding:58px 20px}.emptyProfessionals>div{font-size:38px}.emptyProfessionals h2{margin:10px 0 6px;font-size:20px}.emptyProfessionals p{color:#7c8992;margin:0 auto 18px;max-width:420px}
.profileHero{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin-top:26px;padding:22px 24px}.profileHeroLeft{min-width:0}.profileHero .backLink{margin-bottom:17px}.profileHeroIdentity{display:flex;align-items:center;gap:16px}.heroAvatar{width:62px;height:62px;min-width:62px;font-size:19px}.profileHero h1{font-size:27px;letter-spacing:-.6px;margin:0 0 8px}.profileMeta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:#77848d;font-size:13px}.profileActions{display:flex;gap:9px;align-items:center}.profileActions button{white-space:nowrap}.profileActions .ghost:disabled{opacity:.45;cursor:not-allowed}.profileContent{margin-top:18px}.profileTabs{padding:0 4px}.sectionHeading{margin-bottom:22px}.sectionHeading h2{font-size:18px;margin:0 0 5px}.sectionHeading p{font-size:13px;color:#7b8790;margin:0}.modernForm label,.accessTop label{color:#65727b;font-size:12px;font-weight:700}.modernForm input,.modernForm select,.modernForm textarea,.accessTop input,.accessTop select{margin-top:6px;min-height:42px;border-color:#dfe5e9;background:#fff}.wideField{grid-column:span 2}.accessTop{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:28px}.permissionsHeader{border-top:1px solid #edf0f2;padding-top:22px;margin-top:2px}.permissionsHeader h3{margin:0 0 4px;font-size:16px}.permissionsHeader p{margin:0 0 14px;color:#7d8991;font-size:13px}.modernPermissions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.modernPermissions .permission{padding:14px 15px;border-color:#e5eaed;border-radius:10px;background:#fff}.modernPermissions .permission span{display:flex;flex-direction:column;gap:3px}.modernPermissions .permission b{font-size:13px;color:#364149}.modernPermissions .permission small{font-size:11px;color:#8b969e}.modernPermissions input{width:18px;height:18px;accent-color:#1769aa}.newProfessionalModal .modalHeader h2{margin:0 0 5px}.newProfessionalModal .modalHeader p{color:#77848d;font-size:13px;margin:0 0 22px}
@media(max-width:900px){.professionalListHead{display:none}.professionalItem{grid-template-columns:1fr auto;gap:10px}.professionalItem>.professionalSpecialty,.professionalItem>div:nth-child(3),.professionalItem>div:nth-child(4){display:none}.professionalStats{grid-template-columns:repeat(3,1fr)}.profileHero{align-items:flex-start;flex-direction:column}.profileActions{width:100%;justify-content:flex-end}.accessTop{grid-template-columns:1fr}.modernPermissions{grid-template-columns:1fr}}
@media(max-width:600px){.professionalsTitle{align-items:flex-start;flex-direction:column}.professionalStats{grid-template-columns:1fr 1fr}.professionalStats>div:last-child{grid-column:1/-1}.addProfessional{width:100%;justify-content:center}.profileHero{padding:18px}.profileHeroIdentity{align-items:flex-start}.profileHero h1{font-size:22px}.profileActions{justify-content:stretch}.profileActions button{flex:1}.wideField{grid-column:auto}.profileTabs{overflow:auto}.tab{white-space:nowrap}.professionalItem{padding:15px}.modernForm{grid-template-columns:1fr!important}}

/* v1.4.4 Agenda de 15 minutos y arrastrar/soltar */
.slotHint{float:right;font-size:11px;color:#758691;font-weight:500;text-transform:none}.grid15 .time{height:28px;padding-top:5px}.grid15 .slot{height:28px;padding:1px}.grid15 .appt{height:52px;position:relative;z-index:3;margin:-1px 0;cursor:grab;overflow:hidden}.appt.dragging,.weekAppt.dragging{opacity:.45;cursor:grabbing}.slot.dragOver,.weekSlot.dragOver{background:#e8f3f9!important;box-shadow:inset 0 0 0 2px var(--blue)}.grid15 .busyFill{border-left-width:3px}.weekGrid15 .time{height:28px;padding-top:5px}.weekGrid15 .weekSlot{min-height:28px;height:28px;padding:1px}.weekGrid15 .weekAppt{position:relative;z-index:3;cursor:grab;min-height:42px;overflow:hidden}.modalIntro{margin:-8px 0 18px;color:#71808a;font-size:13px}.field input[readonly]{background:#f3f7f9;color:#60717c}@media(max-width:700px){.slotHint{display:none}}

/* v1.4.5 Agenda timeline real de 15 minutos */
.timelineSchedule{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.timelineSchedule .scheduleHead{padding:16px 18px;border-bottom:1px solid var(--line);background:#fff}.timelineWrap,.weekTimelineWrap{display:grid;grid-template-columns:68px minmax(0,1fr);min-width:0}.timeScale{position:relative;height:calc(var(--timeline-height) + 62px);background:#fafcfd;border-right:1px solid var(--line)}.timeScale span{position:absolute;right:9px;transform:translateY(-7px);font-size:11px;color:#7b8b95}.timelineColumns{display:grid;grid-template-columns:repeat(var(--cols),minmax(180px,1fr));min-width:0}.timelineColumn{border-right:1px solid var(--line);min-width:0}.timelineColumn:last-child{border-right:0}.timelineProfHead{height:62px;display:flex;flex-direction:column;justify-content:center;padding:0 14px;border-bottom:1px solid var(--line);background:#fff}.timelineProfHead b{text-align:center;font-size:14px}.timelineProfHead span{text-align:center;color:#74848e;font-size:11px;margin-top:3px}.timelineBody{position:relative;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--slot-px,32px) - 1px),#e7eef2 calc(var(--slot-px,32px) - 1px),#e7eef2 var(--slot-px,32px));--slot-px:32px}.timelineBody:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 63px,rgba(7,81,138,.08) 64px);pointer-events:none}.dropSlot{position:absolute;left:0;right:0;z-index:1;cursor:pointer}.dropSlot:hover{background:rgba(7,81,138,.035)}.dropSlot.dragOver{background:rgba(184,216,0,.20)!important;box-shadow:inset 0 0 0 2px var(--blue)}.timelineAppt{
  position:absolute;left:5px;right:5px;z-index:10;
  border-radius:8px;padding:4px 8px;
  background:#e8f3f9;border-left:4px solid var(--blue);
  box-shadow:0 2px 8px rgba(18,52,74,.12);
  cursor:grab;overflow:hidden;display:flex;flex-direction:column;
  gap:2px;font-size:12px;box-sizing:border-box
}
.timelineAppt .apptPatient{
  display:block!important;visibility:visible!important;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  line-height:15px;font-weight:800;color:#263746;
  min-height:15px;flex:0 0 15px
}
.timelineAppt .apptTime,.timelineAppt .apptService{
  display:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.timelineAppt.showTime .apptTime{
  display:block;font-size:10px;color:#48606f;line-height:12px
}
.timelineAppt.showService .apptService{
  display:block;font-size:10px;color:#617481;line-height:11px
}
/* En citas bajas, nunca sacrificamos el nombre del paciente */
.timelineAppt:not(.showTime){
  justify-content:center;padding-top:2px;padding-bottom:2px
}
.timelineAppt.showTime:not(.showService){
  padding-top:4px
}
.timelineAppt.compact .apptService{display:none!important}
.timelineAppt.compact .apptPatient{line-height:14px;min-height:14px;flex-basis:14px}
.timelineAppt.compact.showTime .apptTime{font-size:9px;line-height:10px}
.timelineAppt.confirmada{background:#eff8c9;border-color:#91ae00}.timelineAppt.pendiente{background:#fff3cf;border-color:#e5a100}.timelineAppt.realizada{background:#e1f4e8;border-color:#3b9b5b}.timelineAppt.cancelada{background:#fde7e7;border-color:#c85c5c}.timelineAppt.dragging{opacity:.45;cursor:grabbing}.weekTimelineColumns{grid-template-columns:repeat(7,minmax(125px,1fr));min-width:875px}.weekTimelineWrap{min-width:943px}.timelineAppt.compact{font-size:10px;padding:4px 5px}.timelineAppt.compact .apptService{display:none!important}.timelineAppt.compact.showTime .apptTime{font-size:9px}@media(max-width:900px){.timelineWrap{overflow:auto}.timelineColumns{min-width:600px}.timelineSchedule{overflow:auto}.agendaMain{min-width:0}}

/* v1.4.6 Zoom de intervalos de Agenda */
.agendaZoom{display:inline-flex;align-items:center;gap:7px;margin-left:18px;vertical-align:middle;background:#fff;border:1px solid #e3e8eb;border-radius:10px;padding:5px 7px;box-shadow:0 2px 8px rgba(30,50,60,.05)}
.zoomBtn{width:30px;height:30px;border:0;border-radius:7px;background:#f2f6f7;color:#1769aa;font-size:21px;line-height:1;cursor:pointer;font-weight:500}
.zoomBtn:hover{background:#e4f0f5}
.zoomLabel{min-width:54px;text-align:center;line-height:1.05;font-weight:800;font-size:12px;color:#25323a}
.zoomLabel small{display:block;font-weight:500;font-size:9px;color:#8a969d;margin-top:3px}

/* v1.4.8 Control visible de escala de Agenda */
.agendaControls .agendaZoom{margin-left:2px;display:inline-flex;align-items:center;gap:6px;background:#f7fafc;border:1px solid #dce5eb;border-radius:10px;padding:4px 6px}
.agendaControls .zoomBtn{width:32px;height:32px;border:0;border-radius:7px;background:#fff;color:#1769aa;font-size:22px;font-weight:700;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.agendaControls .zoomBtn:hover{background:#eaf2f7}
.agendaControls .zoomLabel{min-width:58px;text-align:center;line-height:1.05;color:#263b49}
.agendaControls .zoomLabel b{display:block;font-size:13px}.agendaControls .zoomLabel small{display:block;font-size:9px;color:#83919b;margin-top:2px}
.majorSlot{border-top:2px solid #cbd9e2!important}.majorTime{font-weight:700;color:#3c5363}
.servicesGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px}.serviceCard{background:#fff;border:1px solid #e4e9ed;border-radius:16px;padding:20px;text-align:left;cursor:pointer;transition:.18s;box-shadow:0 4px 18px rgba(30,55,70,.04)}.serviceCard:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(30,55,70,.10);border-color:#b9cddd}.serviceCardTop{display:flex;justify-content:space-between;gap:12px}.serviceCard h2{margin:0 0 4px;font-size:18px;color:#263845}.serviceCard p{margin:0;color:#72808a}.serviceDesc{min-height:42px;margin:18px 0!important;font-size:14px}.serviceMeta{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;color:#4f6270}.serviceMeta span{background:#f4f7f8;border-radius:8px;padding:6px 8px}.serviceStatus{font-size:12px;font-weight:700}.serviceStatus.enabled{color:#208b54}.serviceStatus.disabled{color:#a33}.serviceAvatar{font-size:30px}.tariffRows{display:flex;flex-direction:column;gap:12px}.tariffRow{border:1px solid #e3e9ed;border-radius:12px;padding:14px;display:flex;align-items:end;gap:12px}.tariffInputs{display:grid;grid-template-columns:1.4fr .8fr .8fr 1.5fr .7fr;gap:10px;flex:1}.tariffInputs label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#63717c;font-weight:700}.tariffInputs input,.tariffInputs select{width:100%;padding:9px;border:1px solid #d8e0e5;border-radius:8px;background:#fff}.tariffInputs .checkLabel{flex-direction:row;align-items:center;padding-top:25px}.emptyServices{grid-column:1/-1;text-align:center;padding:50px}.emptyServices>div{font-size:42px}
@media(max-width:900px){.tariffRow{align-items:stretch;flex-direction:column}.tariffInputs{grid-template-columns:1fr 1fr}.tariffInputs label:nth-child(4){grid-column:1/-1}}
/* v1.7.5 · Acciones de paciente dentro de la edición de cita */
.appointmentPatientTools{display:flex;flex-direction:column;gap:10px}.patientProfileShortcut{width:100%;display:flex;align-items:center;gap:11px;padding:10px 12px;background:#f7f9fb;border:1px solid #e4e9ef;border-radius:12px;color:#263746;text-align:left;cursor:pointer;transition:.18s ease}.patientProfileShortcut:hover{background:#fff;border-color:#b9c8d7;box-shadow:0 5px 16px rgba(25,54,80,.08);transform:translateY(-1px)}.patientShortcutAvatar{width:34px;height:34px;border-radius:10px;background:#e8f0f7;color:#1d5b87;display:grid;place-items:center;font-weight:800}.patientProfileShortcut span:nth-child(2){display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.patientProfileShortcut small{font-size:11px;color:#7b8793}.patientProfileShortcut b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.patientShortcutArrow{font-size:18px;color:#3d7198}

/* v1.7.6 · Restauración de color exclusivo por servicio */
.timelineAppt{
  border-left:5px solid var(--service-color,#B7D900)!important;
}
.timelineAppt.confirmada,.timelineAppt.pendiente,.timelineAppt.realizada,.timelineAppt.cancelada{
  border-left-color:var(--service-color,#B7D900)!important;
}

/* v1.7.7 Recuperación de colores de servicio y ficha avanzada */
.serviceCard{position:relative;overflow:hidden}.serviceCard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--service-card-color,#B7D900)}
.serviceTitleWithColor{display:flex;gap:10px;align-items:flex-start}.serviceColorDot{width:14px;height:14px;border-radius:50%;display:block;margin-top:6px;flex:none;box-shadow:0 0 0 3px rgba(0,0,0,.05)}
.colorField{display:flex;align-items:center;gap:8px}.colorField input[type=color]{width:48px;height:40px;padding:3px;border-radius:9px}.patientFormSection{border-top:1px solid #edf1f3;padding:14px 0}.patientFormSection:first-of-type{border-top:0}.patientFormSection h3{margin:0 0 12px;font-size:14px}.patientModalHead p{margin:4px 0 14px;color:#7b8992;font-size:13px}
.timelineAppt{border-left:5px solid var(--service-color,#B7D900)!important}

/* v1.7.8 · Notificaciones integradas FisNaturGest */
.fisToast{
 position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.92);
 width:min(410px,calc(100vw - 40px));min-height:116px;
 background:rgba(255,255,255,.98);border:1px solid rgba(10,45,58,.08);
 border-radius:20px;box-shadow:0 22px 70px rgba(13,41,54,.22);
 z-index:99999;display:flex;align-items:center;gap:16px;padding:22px 48px 22px 22px;
 opacity:0;pointer-events:none;transition:opacity .26s ease,transform .26s cubic-bezier(.2,.8,.2,1);
 backdrop-filter:blur(12px);overflow:hidden;
}
.fisToastShow{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.fisToastIcon{
 width:48px;height:48px;border-radius:16px;display:grid;place-items:center;flex:none;
 font-size:25px;font-weight:800;color:#fff;background:#07518a;
 box-shadow:0 8px 18px rgba(7,81,138,.22);
}
.fisToast-success .fisToastIcon{background:linear-gradient(135deg,#07518a,#0b7594)}
.fisToast-error .fisToastIcon{background:#c94b4b}
.fisToast-warning .fisToastIcon{background:#d68b21}
.fisToast-info .fisToastIcon{background:#07518a}
.fisToastBody{display:flex;flex-direction:column;gap:5px;min-width:0}
.fisToastBody strong{font-size:16px;color:#12313f;letter-spacing:-.15px}
.fisToastBody span{font-size:13.5px;line-height:1.45;color:#6f7f87}
.fisToastClose{
 position:absolute;right:15px;top:14px;width:30px;height:30px;border:0;background:transparent;
 color:#8a989f;font-size:23px;line-height:28px;border-radius:9px;cursor:pointer;
}
.fisToastClose:hover{background:#f1f5f6;color:#183743}
.fisToastProgress{position:absolute;height:4px;left:0;bottom:0;width:100%;background:#07518a;transform-origin:left;animation:fisToastTimer 3.6s linear forwards}
.fisToast-error .fisToastProgress{background:#c94b4b}.fisToast-warning .fisToastProgress{background:#d68b21}
@keyframes fisToastTimer{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media(max-width:600px){.fisToast{padding:19px 42px 19px 18px;border-radius:17px}.fisToastIcon{width:43px;height:43px;border-radius:14px}.fisToastBody strong{font-size:15px}}

/* v1.7.9 · Notificaciones premium, coloridas y actuales */
.fisToast{
 position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.88);
 width:min(440px,calc(100vw - 36px));min-height:128px;
 padding:0 50px 0 0;border:0;border-radius:24px;overflow:hidden;
 background:linear-gradient(135deg,#ffffff 0%,#f7fbfa 100%);
 box-shadow:0 30px 90px rgba(7,81,138,.24),0 2px 0 rgba(255,255,255,.8) inset;
 z-index:99999;display:flex;align-items:center;gap:17px;
 opacity:0;pointer-events:none;transition:opacity .32s ease,transform .38s cubic-bezier(.16,1,.3,1);
}
.fisToastShow{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.fisToastGlow{position:absolute;width:220px;height:220px;left:-115px;top:-50px;border-radius:50%;background:radial-gradient(circle,rgba(183,217,0,.32),rgba(183,217,0,0) 70%);pointer-events:none}
.fisToastIcon{
 position:relative;margin-left:20px;width:70px;height:70px;flex:none;border-radius:23px;
 display:grid;place-items:center;color:#fff;font-size:31px;font-weight:800;
 background:linear-gradient(135deg,#07518a 0%,#0a7997 55%,#19a2a6 100%);
 box-shadow:0 14px 30px rgba(7,81,138,.28),inset 0 1px 1px rgba(255,255,255,.3);
 transform:rotate(-5deg);
}
.fisToastIcon:after{content:"";position:absolute;inset:5px;border:1px solid rgba(255,255,255,.25);border-radius:18px}
.fisToastIcon span{position:relative;z-index:1}
.fisToastBody{position:relative;z-index:2;display:flex;flex-direction:column;gap:5px;min-width:0;padding:23px 0}
.fisToastBadge{font-size:9px;letter-spacing:1.3px;font-weight:800;color:#07909b;margin-bottom:1px}
.fisToastBody strong{font-size:18px;color:#113442;letter-spacing:-.35px;line-height:1.15}
.fisToastBody span{font-size:13.5px;line-height:1.45;color:#71828a}
.fisToastClose{position:absolute;z-index:4;right:13px;top:12px;width:32px;height:32px;border:0;border-radius:11px;background:rgba(7,81,138,.06);color:#78909a;font-size:22px;cursor:pointer;transition:.18s}
.fisToastClose:hover{background:#07518a;color:#fff;transform:rotate(90deg)}
.fisToastProgress{position:absolute;z-index:4;left:0;bottom:0;width:100%;height:5px;background:linear-gradient(90deg,#07518a,#0a7997,#19a2a6,#b7d900);transform-origin:left;animation:fisToastTimer 4s linear forwards}
.fisToast-error .fisToastIcon{background:linear-gradient(135deg,#b83b50,#e05a61)}
.fisToast-error .fisToastGlow{background:radial-gradient(circle,rgba(224,90,97,.25),rgba(224,90,97,0) 70%)}
.fisToast-error .fisToastBadge{color:#cf4c58}.fisToast-error .fisToastProgress{background:linear-gradient(90deg,#b83b50,#e05a61,#f3a1a5)}
.fisToast-warning .fisToastIcon{background:linear-gradient(135deg,#d07a12,#f1ad32)}
.fisToast-warning .fisToastBadge{color:#d07a12}.fisToast-warning .fisToastProgress{background:linear-gradient(90deg,#d07a12,#f1ad32,#f4d18a)}
@media(max-width:600px){
 .fisToast{min-height:118px;border-radius:21px;gap:13px}
 .fisToastIcon{margin-left:15px;width:60px;height:60px;border-radius:20px;font-size:27px}
 .fisToastBody{padding:18px 0}.fisToastBody strong{font-size:16px}
}

/* v1.8.0 · Clientes 360º */
.patientHero{display:flex;align-items:center;gap:18px;padding:26px 28px;border-radius:24px;background:linear-gradient(135deg,#063f70,#07518a 55%,#0a7d91);color:#fff;box-shadow:0 16px 35px rgba(7,81,138,.15)}
.patientAvatarLarge{width:68px;height:68px;border-radius:22px;background:linear-gradient(135deg,#b7d900,#7ba800);display:grid;place-items:center;color:#12313f;font-weight:800;font-size:22px}
.patientHeroInfo{flex:1}.patientHeroInfo h1{margin:3px 0;font-size:27px}.patientHeroInfo p{margin:0;color:rgba(255,255,255,.75)}.eyebrow{font-size:10px;letter-spacing:1.4px;font-weight:800;color:#b7d900}.patientHeroActions{display:flex;gap:9px}.patientHeroActions .secondary{background:rgba(255,255,255,.13);color:#fff;border-color:rgba(255,255,255,.25)}
.patientTabs{display:flex;gap:4px;overflow:auto;padding:16px 2px 0;border-bottom:1px solid #e8eef0}.patientTab{border:0;background:transparent;padding:13px 15px;color:#70818a;white-space:nowrap;border-bottom:3px solid transparent;cursor:pointer;font-weight:650}.patientTab.active{color:#07518a;border-bottom-color:#b7d900}
.patientTabContent{padding:24px 0}.patientStatsGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.patientStat{background:#fff;border:1px solid #edf1f2;border-radius:18px;padding:20px}.patientStat b{display:block;font-size:27px;color:#07518a}.patientStat span{font-size:12px;color:#7a8991}
.patientSummaryGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.patientSummaryGrid section,.clinicalGrid section{background:#fff;border:1px solid #edf1f2;border-radius:18px;padding:20px}.patientSummaryGrid h3,.clinicalGrid h3{margin:0 0 9px;font-size:14px}.patientSummaryGrid p,.clinicalGrid p{margin:0 0 10px;color:#6f7f87;line-height:1.55}
.patientDataGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.patientDataGrid>div{background:#fff;border:1px solid #edf1f2;border-radius:14px;padding:14px}.patientDataGrid span{display:block;color:#87949b;font-size:11px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px}.patientDataGrid strong{color:#263f49;font-size:14px}
.patientTableWrap{overflow:auto;border:1px solid #edf1f2;border-radius:16px}.patientTable{width:100%;border-collapse:collapse;background:#fff}.patientTable th,.patientTable td{padding:14px 16px;text-align:left;border-bottom:1px solid #eef2f3;font-size:13px}.patientTable th{background:#f7fafb;color:#74848c;font-size:11px;text-transform:uppercase}.serviceMiniDot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:7px}.statusPill{padding:4px 8px;border-radius:20px;background:#eef5f6;font-size:11px}.statusPill.statusPaid{background:#eaf8ef;color:#2f7b4c}.statusPill.statusPending{background:#fff4e8;color:#a56a18}.patientPaymentsHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.patientPaymentsHeader h2{margin:0 0 5px}.patientPaymentsHeader p{margin:0;color:#7a8991}.patientPaymentsTotals{display:flex;gap:10px;flex-wrap:wrap}.patientPaymentsTotals span{min-width:105px;padding:10px 13px;background:#f7fafb;border:1px solid #edf1f2;border-radius:12px;text-align:right}.patientPaymentsTotals b{display:block;color:#07518a;font-size:16px}.patientPaymentsTotals small{display:block;color:#7a8991;font-size:10px;margin-top:2px}.patientTable td small{display:block;margin-top:3px}.emptyCell{text-align:center;color:#8b989f;padding:30px!important}
.clinicalGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.comingModule{text-align:center;padding:55px 20px;background:#fff;border:1px dashed #d8e2e5;border-radius:20px;color:#71828a}.comingModule>div{font-size:35px;margin-bottom:8px}.comingModule h3{color:#26414d}
@media(max-width:900px){.patientStatsGrid{grid-template-columns:repeat(2,1fr)}.patientDataGrid{grid-template-columns:repeat(2,1fr)}.patientHero{flex-wrap:wrap}.patientHeroActions{width:100%}}@media(max-width:600px){.patientDataGrid,.clinicalGrid,.patientSummaryGrid{grid-template-columns:1fr}.patientHeroActions{flex-direction:column}.patientHeroActions button{width:100%}}

/* v1.8.2: ficha de cliente integrada en la aplicación */
.profileBreadcrumb{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-size:13px;color:#84929a}.profileBreadcrumb .backLink{border:0;background:transparent;padding:0;color:#07518a;font-weight:750;cursor:pointer}.profileBreadcrumb span{padding-left:10px;border-left:1px solid #dfe7ea}.patient360{padding-top:28px}
/* v1.8.3: errores sin perder la estructura principal */
.errorPage{padding:42px;max-width:980px}.errorCard{display:flex;gap:22px;align-items:flex-start;padding:30px}.errorIcon{width:46px;height:46px;border-radius:14px;background:#fff1f0;color:#d84b45;display:grid;place-items:center;font-size:26px;font-weight:800}.errorCard h2{margin:0 0 8px}.errorCard p{margin:0 0 18px;color:#667585}

/* v1.8.4 · Cobros desde Agenda */
.timelineAppt.paid{background:#eef1f2!important;border-color:#aeb8bd!important;border-left-color:#8e989e!important;filter:saturate(.25)}
.timelineAppt.paid .apptPatient,.timelineAppt.paid .apptTime,.timelineAppt.paid .apptService{color:#5f6b72!important}
.paidMark{position:absolute;right:7px;bottom:5px;font-size:9px;font-weight:800;color:#68747b;background:rgba(255,255,255,.72);padding:2px 6px;border-radius:999px}
.appointmentContextMenu{position:fixed;z-index:100000;width:240px;background:#fff;border:1px solid #e4e9ed;border-radius:15px;box-shadow:0 18px 55px rgba(18,45,62,.20);padding:7px;animation:ctxIn .15s ease-out}.appointmentContextMenu button{width:100%;border:0;background:transparent;padding:11px 12px;border-radius:10px;text-align:left;font:inherit;color:#33434e;cursor:pointer}.appointmentContextMenu button:hover{background:#f3f7f9}.appointmentContextMenu .ctxPay{background:#edf6c7;color:#31511b;font-weight:800}.appointmentContextMenu .ctxPay:hover{background:#e3f0ad}.ctxTitle{display:flex;gap:10px;align-items:center;padding:8px 10px 10px;border-bottom:1px solid #edf1f3;margin-bottom:5px}.ctxTitle div{display:flex;flex-direction:column;min-width:0}.ctxTitle b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ctxTitle small{font-size:11px;color:#7a8992;margin-top:3px}.ctxDot{width:10px;height:32px;border-radius:8px;flex:none}.ctxPaid{padding:11px 12px;border-radius:10px;background:#f0f2f3;color:#66727a;font-size:12px;font-weight:700;margin:2px 0 4px}@keyframes ctxIn{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
.chargeModal{min-width:min(480px,calc(100vw - 40px))}.chargeIcon{width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,#07518a,#2c79ad);color:#fff;display:grid;place-items:center;font-size:25px;font-weight:800;box-shadow:0 10px 24px rgba(7,81,138,.2);margin-bottom:13px}.chargeHead>span{font-size:10px;letter-spacing:.12em;color:#6f8492;font-weight:800}.chargeHead h2{margin:4px 0;font-size:25px}.chargeHead p{margin:0 0 18px;color:#687984}.chargeAmount{background:#f7fafb;border:1px solid #e5ecef;border-radius:14px;padding:14px}.chargeAmount label,.chargeNotes{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:800;color:#52636e}.chargeAmount input,.chargeNotes input{border:1px solid #dce5e9;border-radius:10px;padding:11px;font-size:16px;background:#fff}.chargeMethods{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0}.chargeMethods label{position:relative}.chargeMethods input{position:absolute;opacity:0}.chargeMethods span{display:block;padding:11px;border:1px solid #dfe7eb;border-radius:11px;text-align:center;font-size:13px;cursor:pointer}.chargeMethods input:checked+span{border-color:#07518a;background:#edf5fa;color:#07518a;font-weight:800;box-shadow:0 0 0 2px rgba(7,81,138,.08)}.chargeNotes{margin-bottom:13px}.chargeSummary{display:flex;justify-content:space-between;align-items:center;background:#f0f3f4;border-radius:11px;padding:11px 13px;font-size:12px;color:#6d7a82}.chargeSummary b{color:#526068}.modal:has(.chargeModal) .modalBox{max-width:520px}

/* v1.11.0 · Contabilidad, cobros y facturación */
.eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:800;color:#0b8192;margin-bottom:5px}.financeTabs{display:flex;gap:8px;border-bottom:1px solid #e6edef;margin:18px 0 14px}.financeTab{border:0;background:transparent;padding:12px 16px;color:#74838a;font-weight:700;cursor:pointer;border-bottom:3px solid transparent}.financeTab.active{color:#075a78;border-bottom-color:#0a9b9c}.financeToolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;background:#fff;border:1px solid #e8eff1;padding:14px;border-radius:16px;margin-bottom:16px}.financeToolbar label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;color:#77868e;text-transform:uppercase}.financeToolbar input{padding:9px;border:1px solid #dbe5e7;border-radius:9px}.financeStats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.financeStat{background:#fff;border:1px solid #e8eff1;border-radius:18px;padding:20px}.financeStat span,.financeStat small{display:block;color:#7e8c92;font-size:12px}.financeStat b{display:block;font-size:27px;margin:8px 0;color:#23404b}.financeStat.income b,.amountPlus{color:#087d63}.financeStat.expense b,.amountMinus{color:#c25d54}.financeStat.balance b{color:#486b8d}.financeInfo,.financePanel{background:#fff;border:1px solid #e8eff1;border-radius:18px;padding:20px;margin-top:16px}.financeInfo h3,.financePanel h3{margin-top:0}.movementBadge{font-size:11px;font-weight:700;padding:5px 9px;border-radius:20px}.movementBadge.income{background:#e8f7f0;color:#087d63}.movementBadge.expense{background:#fff0ee;color:#c25d54}.deleteMove,.deleteInvoice{border:0;background:#fff0ee;color:#bd554e;border-radius:8px;padding:7px 9px;cursor:pointer}.invoiceHead{display:flex;justify-content:space-between;align-items:center;margin-top:14px}.invoiceWizard{min-width:560px}.invoiceWizard h2{margin:5px 0}.methodChecks{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:15px 0}.methodChecks label{background:#f6f9fa;padding:10px;border-radius:10px}.previewBox{margin:15px 0;padding:13px;background:#f2f8f8;border-radius:12px;font-size:13px}.previewBox div{padding:7px 0;border-bottom:1px solid #dceaea}.pendingInvoice{font-size:11px;background:#fff4d8;color:#9b7200;padding:4px 8px;border-radius:10px}@media(max-width:800px){.financeStats{grid-template-columns:1fr}.invoiceWizard{min-width:0;width:90vw}.financeToolbar{align-items:stretch}}
.financeTabs{display:flex;gap:8px;border-bottom:1px solid #e5eaec;margin:18px 0}.financeTab{border:0;background:white;padding:12px 16px;font-weight:700;color:#667;cursor:pointer}.financeTab.active{color:#087d8d;border-bottom:3px solid #087d8d}.financeToolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;background:#fff;padding:14px;border:1px solid #e5eaec;border-radius:14px}.financeToolbar label{display:flex;flex-direction:column;font-size:12px;gap:4px}.financeToolbar input{padding:9px;border:1px solid #dce4e6;border-radius:8px}.financeStats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.financeStat,.financePanel,.financeInfo{background:#fff;border:1px solid #e5eaec;border-radius:16px;padding:20px}.financeStat b{display:block;font-size:28px;margin:8px 0}.financeStat.income b{color:#087d63}.financeStat.expense b{color:#bd5b50}.financeStat.balance b{color:#0b7188}.financeInfo,.financePanel{margin-top:16px}.invoiceHead{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.invoiceWizard{min-width:480px}.methodChecks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0}.methodChecks label{padding:10px;background:#f5f8f8;border-radius:9px}@media(max-width:700px){.financeStats{grid-template-columns:1fr}.invoiceWizard{min-width:0;width:88vw}}

/* v1.11.8 eliminación contable */
.dangerAction{border:0;background:#fff0f0;color:#c33f3f;border-radius:8px;padding:7px 11px;font-size:12px;font-weight:700;cursor:pointer}.dangerAction:hover{background:#ffdede}

/* v1.11.9 · Acciones rápidas de cita */
.appointmentActionsMenu{min-width:245px;padding-bottom:8px}
.appointmentActionsMenu .ctxPay,.appointmentActionsMenu .ctxEdit,.appointmentActionsMenu .ctxDelete{width:100%;text-align:left;margin-top:5px;border:0;border-radius:10px;padding:11px 13px;font-weight:700;cursor:pointer;background:#f5f8f9;color:#32454c}
.appointmentActionsMenu .ctxPay{background:#e8f6f0;color:#087d63}
.appointmentActionsMenu .ctxEdit:hover{background:#eaf4f6}
.appointmentActionsMenu .ctxDelete{background:#fff0f0;color:#bf4545}
.appointmentActionsMenu .ctxDelete:hover{background:#ffdede}

/* v1.12.0 · clic izquierdo editar / derecho acciones */
.appointmentActionsMenu{min-width:230px}.appointmentActionsMenu .ctxEdit{display:none!important}

/* =========================================================
   v1.13.0 · REDISEÑO PREMIUM DEL MÓDULO CHAT (AISLADO)
   ========================================================= */
.chatPage{max-width:1500px;margin:0 auto}.chatHero{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px}.chatHero h1{margin:3px 0 5px;font-size:30px;color:#233d47}.chatHero p{margin:0;color:#7a8990}.chatNewBtn{border:0;background:linear-gradient(135deg,#087e86,#0b9f9c);color:#fff;border-radius:12px;padding:12px 18px;font-weight:700;box-shadow:0 8px 20px rgba(8,126,134,.18);cursor:pointer}.chatNewBtn span{font-size:19px;vertical-align:-1px;margin-right:4px}.chatApp{height:calc(100vh - 225px);min-height:570px;display:grid;grid-template-columns:350px 1fr;background:#fff;border:1px solid #e3ebed;border-radius:20px;overflow:hidden;box-shadow:0 12px 35px rgba(31,61,72,.06)}.chatPanel{border-right:1px solid #e8edef;display:flex;flex-direction:column;background:#fff}.chatSearch{margin:18px 16px 12px;background:#f4f7f8;border:1px solid transparent;border-radius:11px;padding:0 11px;display:flex;align-items:center;gap:7px;color:#7c8b92}.chatSearch:focus-within{border-color:#8fd1ce;background:#fff}.chatSearch span{font-size:21px;line-height:1}.chatSearch input{border:0;background:transparent;outline:0;padding:11px 0;width:100%;font-size:13px}.chatFilter{display:flex;gap:6px;padding:0 16px 13px;border-bottom:1px solid #edf1f2}.chatFilter button{border:0;background:transparent;padding:7px 11px;border-radius:8px;color:#809097;font-size:12px;font-weight:700;cursor:pointer}.chatFilter button.active{background:#e7f5f4;color:#087d7c}.chatConversationList{overflow:auto;flex:1;padding:8px}.conversationCard{display:flex;width:100%;gap:11px;padding:12px 10px;border:0;background:#fff;border-radius:13px;text-align:left;cursor:pointer;transition:.16s}.conversationCard:hover{background:#f5f8f8}.conversationCard.selected{background:#e9f7f5}.conversationAvatar,.threadAvatar{width:45px;height:45px;border-radius:15px;display:grid;place-items:center;font-size:15px;font-weight:800;flex:none}.conversationAvatar.interno,.threadAvatar.interno{background:#e8f2ff;color:#3974b5}.conversationAvatar.cliente,.threadAvatar.cliente{background:#e6f7f2;color:#087e6e}.conversationInfo{min-width:0;flex:1}.conversationTop{display:flex;justify-content:space-between;gap:8px;align-items:center}.conversationTop b{font-size:13px;color:#30454e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversationTop time{font-size:10px;color:#98a4a9;white-space:nowrap}.conversationBottom{display:flex;align-items:center;gap:6px;margin-top:5px;min-width:0}.conversationType{font-size:9px;text-transform:uppercase;letter-spacing:.4px;color:#0c8a86;font-weight:800;background:#e9f7f5;padding:3px 6px;border-radius:5px;flex:none}.lastMessage{font-size:11px;color:#89969c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chatEmptyList{padding:50px 20px;text-align:center;color:#89979d;display:flex;flex-direction:column;gap:6px;font-size:12px}.chatEmptyList div{font-size:30px}.chatContent{min-width:0;display:flex;background:#fafcfc}.chatWelcome{margin:auto;text-align:center;color:#7e8d94;max-width:380px}.welcomeIcon{width:82px;height:82px;border-radius:26px;background:linear-gradient(145deg,#e3f5f3,#effafa);display:grid;place-items:center;font-size:37px;margin:0 auto 18px}.chatWelcome h2{margin:0 0 8px;color:#354b54}.chatWelcome p{font-size:13px;line-height:1.6}.secondaryChatBtn{border:1px solid #a9d7d3;background:#fff;color:#087e7b;padding:10px 16px;border-radius:10px;font-weight:700;cursor:pointer;margin-top:8px}.chatThread{width:100%;display:flex;flex-direction:column;min-height:0}.threadHeader{height:75px;padding:0 22px;border-bottom:1px solid #e9eff0;background:#fff;display:flex;justify-content:space-between;align-items:center}.threadIdentity{display:flex;gap:11px;align-items:center}.threadAvatar{width:42px;height:42px;border-radius:13px}.threadIdentity h2{font-size:15px;margin:0;color:#31474f}.threadIdentity span{font-size:11px;color:#8a989e;display:block;margin-top:3px}.threadActions{display:flex;gap:7px}.threadActions button{border:0;background:#f4f7f8;color:#718087;width:33px;height:33px;border-radius:9px;cursor:pointer}.messageArea{flex:1;overflow:auto;padding:25px 32px;background:radial-gradient(circle at 10% 10%,rgba(10,158,156,.035),transparent 30%),#f8fafb;display:flex;flex-direction:column;gap:9px}.messageRow{display:flex}.messageRow.mine{justify-content:flex-end}.messageBubble{max-width:min(72%,600px);background:#fff;border:1px solid #e5ebed;border-radius:16px 16px 16px 5px;padding:10px 13px;color:#40535b;font-size:13px;line-height:1.45;box-shadow:0 2px 8px rgba(32,56,65,.035)}.messageRow.mine .messageBubble{background:linear-gradient(135deg,#0a8b89,#0b9d98);color:#fff;border:0;border-radius:16px 16px 5px 16px;box-shadow:0 5px 15px rgba(10,139,137,.16)}.messageAuthor{display:block;font-size:10px;font-weight:800;color:#087e7c;margin-bottom:4px}.messageBubble small{display:block;text-align:right;margin-top:5px;font-size:9px;color:#9ba6ab}.messageRow.mine small{color:rgba(255,255,255,.75)}.threadEmpty{margin:auto;text-align:center;color:#88969c;display:flex;flex-direction:column;gap:6px;font-size:12px}.threadEmpty div{font-size:34px}.messageComposer{padding:14px 18px;background:#fff;border-top:1px solid #e8edef;display:flex;align-items:center;gap:10px}.messageComposer input{flex:1;border:0;background:#f5f8f9;border-radius:11px;padding:13px 14px;outline:0;font-size:13px}.emojiBtn{border:0;background:transparent;font-size:20px;color:#8a999f;cursor:pointer}.sendBtn{border:0;background:#0a8c89;color:#fff;border-radius:10px;padding:11px 15px;font-weight:700;cursor:pointer}.sendBtn span{margin-left:5px}.newChatModal{width:min(620px,88vw)}.modalMiniTitle{font-size:10px;letter-spacing:1.5px;font-weight:800;color:#0a8987;margin-bottom:6px}.newChatModal h2{margin:0;color:#31474f}.newChatModal>p{font-size:13px;color:#7f8e94}.newChatTypes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.newChatType{border:1px solid #e0e8ea;background:#fff;border-radius:14px;padding:15px;text-align:left;cursor:pointer}.newChatType>div{font-size:24px;margin-bottom:7px}.newChatType b,.newChatType span{display:block}.newChatType span{font-size:11px;color:#89969c;margin-top:4px}.newChatType.active{border-color:#69beb8;background:#effafa;box-shadow:inset 0 0 0 1px #b8e1dd}.modernField{display:block;font-size:12px;font-weight:700;color:#586b73}.modernField span{color:#9aa5a9;font-weight:400}.modernField input,.modernField select{display:block;width:100%;box-sizing:border-box;margin-top:7px;border:1px solid #dce6e8;border-radius:9px;padding:11px;background:#fff}.selectLabel{font-size:12px;font-weight:700;color:#586b73;margin:16px 0 8px}.participantGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:220px;overflow:auto}.participantOption{display:flex;align-items:center;gap:8px;background:#f6f8f9;padding:9px;border-radius:9px;font-size:12px;color:#43555c}.miniAvatar{width:27px;height:27px;border-radius:8px;background:#e1f2f0;color:#087e7c;display:grid;place-items:center;font-size:9px;font-weight:800}.newChatFooter{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}
@media(max-width:900px){.chatApp{grid-template-columns:290px 1fr}.chatHero{align-items:flex-start}.chatHero p{display:none}.messageArea{padding:18px}.chatBubble{max-width:85%}}
@media(max-width:700px){.chatApp{height:auto;min-height:0;grid-template-columns:1fr}.chatPanel{height:300px;border-right:0;border-bottom:1px solid #e8edef}.chatContent{min-height:500px}.chatHero{gap:10px}.chatHero h1{font-size:24px}.chatNewBtn{font-size:12px;padding:10px}.sendBtn span{display:none}.participantGrid{grid-template-columns:1fr}}

/* v1.13.1 · Archivo de conversaciones */
.chatFilter{flex-wrap:wrap}.chatFilter button{position:relative}.chatFilter button[data-filter="archived"]{margin-left:auto;color:#7c878c}.chatFilter button[data-filter="archived"].active{background:#f0f3f4;color:#53646b}
.threadActions{position:relative}.chatThreadMenu{position:absolute;right:0;top:42px;width:245px;background:#fff;border:1px solid #e2e9eb;border-radius:12px;padding:6px;box-shadow:0 12px 32px rgba(30,55,65,.16);z-index:30}.chatThreadMenu button{width:100%;height:auto!important;padding:10px 12px!important;background:#fff!important;text-align:left;color:#43565e!important;border-radius:8px!important;font-size:12px!important;font-weight:650}.chatThreadMenu button:hover{background:#f3f7f8!important}.chatThreadMenu .deleteConv{color:#c74747!important}.menuDivider{height:1px;background:#edf0f1;margin:5px 3px}


/* v1.13.2 · Notificaciones unificadas y más rápidas */
.fisToastProgress{animation-duration:2s!important}
.fisToast{
  animation:fisToastEnter .28s cubic-bezier(.16,1,.3,1);
}
@keyframes fisToastEnter{
  from{opacity:0;transform:translate(-50%,-48%) scale(.94)}
  to{opacity:1;transform:translate(-50%,-50%) scale(1)}
}

/* v1.13.3 - Vista de tarjetas para Profesionales */
.professionalsGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.professionalCard{position:relative;overflow:hidden;width:100%;min-height:230px;padding:20px;background:#fff;border:1px solid #e4e9ed;border-radius:16px;text-align:left;color:inherit;cursor:pointer;box-shadow:0 4px 18px rgba(30,55,70,.04);transition:transform .18s,box-shadow .18s,border-color .18s}
.professionalCard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--professional-card-color,#1769aa)}
.professionalCard:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(30,55,70,.10);border-color:#b9cddd}
.professionalCardTop{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.professionalCard .professionalIdentity{gap:12px;min-width:0}
.professionalCard .professionalIdentity h2{margin:0 0 4px;font-size:18px;line-height:1.2;color:#263845}
.professionalCard .professionalIdentity p{margin:0;color:#72808a;font-size:14px}
.professionalCardStatus{font-size:12px;font-weight:750;white-space:nowrap;padding:5px 9px;border-radius:999px}
.professionalCardStatus.enabled{background:#edf8f1;color:#208b54}.professionalCardStatus.disabled{background:#fff0f0;color:#a33}
.professionalContact{display:flex;flex-direction:column;gap:9px;margin:20px 0 16px;padding-top:2px;min-height:54px}
.professionalContact div{display:flex;align-items:center;gap:8px;min-width:0;color:#71808a;font-size:13px}
.professionalContact span{width:22px;height:22px;border-radius:7px;background:#f3f6f8;display:grid;place-items:center;color:#647783;font-size:12px}
.professionalContact b{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.professionalCardFooter{display:flex;align-items:center;gap:9px;border-top:1px solid #edf0f2;padding-top:14px;margin-top:auto}
.professionalAccess{font-size:11px;color:#75828a;display:inline-flex;align-items:center;gap:5px;margin-left:auto;white-space:nowrap}
.professionalAccess i{width:7px;height:7px;border-radius:50%;display:block}.professionalAccess i.enabled{background:#46b675}.professionalAccess i.disabled{background:#d97777}
.cardArrow{font-size:24px;line-height:1;color:#a7b0b6;font-weight:300;margin-left:2px}
.professionalsGrid .emptyProfessionals{grid-column:1/-1}
@media(max-width:700px){.professionalsGrid{grid-template-columns:1fr}.professionalCard{min-height:0}.professionalCardTop{flex-direction:column}.professionalCardStatus{align-self:flex-start}.professionalCardFooter{flex-wrap:wrap}.professionalAccess{margin-left:0}.cardArrow{margin-left:auto}}
/* v1.13.4 - Profesionales: vista de tarjetas definitiva */
.professionalsCardsPage .professionalsGrid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))!important;gap:20px!important;margin-top:28px}
.professionalsCardsPage .professionalCard{display:flex!important;flex-direction:column!important;min-height:220px!important;border-radius:18px!important;background:#fff!important}
.professionalsCardsPage .professionalInfoRows{display:grid!important;gap:10px;margin:24px 0 16px}
.professionalsCardsPage .professionalInfoRows>div{display:flex;align-items:center;gap:9px;color:#73808a;font-size:13px;min-width:0}
.professionalsCardsPage .professionalInfoRows span{width:20px;text-align:center;color:var(--professional-card-color,#1769aa)}
.professionalsCardsPage .professionalInfoRows b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.professionalsCardsPage .professionalCardFooter{margin-top:auto!important}
@media(max-width:760px){.professionalsCardsPage .professionalsGrid{grid-template-columns:1fr!important;margin-top:18px}}

/* v1.13.5 – Refinamiento visual: profesionales más limpios y ligeros */
.professionalsCardsPage .professionalsGrid{gap:18px!important;margin-top:24px}
.professionalsCardsPage .professionalCard{min-height:214px!important;padding:22px!important;border-radius:16px!important;box-shadow:0 3px 14px rgba(30,55,70,.035)!important}
.professionalsCardsPage .professionalCard:before{width:3px!important}
.professionalsCardsPage .professionalCard:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(30,55,70,.07)!important}
.professionalsCardsPage .professionalIdentity{gap:12px!important}
.professionalsCardsPage .professionalAvatar{width:40px!important;height:40px!important;min-width:40px!important;font-size:13px!important;font-weight:650!important}
.professionalsCardsPage .professionalIdentity h2{font-size:17px!important;line-height:1.25!important;font-weight:600!important;letter-spacing:-.15px!important;margin:0 0 3px!important}
.professionalsCardsPage .professionalIdentity p{font-size:13px!important;font-weight:400!important;color:#7b8891!important}
.professionalsCardsPage .professionalCardStatus{font-size:11px!important;font-weight:600!important;padding:5px 10px!important;background:#f2f8f4!important;color:#4c7d61!important}
.professionalsCardsPage .professionalCardStatus.disabled{background:#faf2f2!important;color:#9a6666!important}
.professionalsCardsPage .professionalInfoRows{gap:7px!important;margin:19px 0 15px!important}
.professionalsCardsPage .professionalInfoRows>div{font-size:12.5px!important;font-weight:400!important;color:#87939a!important;line-height:1.35!important}
.professionalsCardsPage .professionalInfoRows span{width:18px!important;font-size:11px!important;opacity:.7!important}
.professionalsCardsPage .professionalInfoRows b{font-weight:400!important;color:#7b878e!important}
.professionalsCardsPage .professionalCardFooter{padding-top:13px!important;border-top-color:#f0f2f3!important}
.professionalsCardsPage .rolePill{font-size:10.5px!important;font-weight:600!important;padding:5px 9px!important;opacity:.9!important}
.professionalsCardsPage .professionalAccess{font-size:11px!important;font-weight:400!important;color:#87939a!important}
.professionalsCardsPage .professionalAccess i{width:6px!important;height:6px!important;opacity:.8!important}
.professionalsCardsPage .cardArrow{font-size:21px!important;font-weight:300!important;color:#b3bcc1!important;line-height:1!important}
/* v1.14.0 · Módulo Clientes integrado */
.clientsPage{padding-top:28px}.clientsHeader{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.clientsHeader .pageTitle{margin:0 0 20px}.clientsHeader .pageTitle h1{margin-top:4px}.clientsNewBtn{white-space:nowrap}.clientsOverview{display:grid;grid-template-columns:180px 180px 1fr;gap:12px;margin:12px 0 22px}.clientsOverview>div{background:#fff;border:1px solid #e7edf0;border-radius:16px;padding:15px 18px}.clientsOverview span{display:block;font-size:11px;color:#7c8a92;text-transform:uppercase;letter-spacing:.55px}.clientsOverview b{display:block;font-size:25px;font-weight:650;color:#21465f;margin-top:5px}.clientsOverview p{margin:4px 0 0;color:#71808a;font-size:13px}.clientsToolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.patientSearch{position:relative;display:flex;align-items:center;width:min(520px,100%);margin:0}.patientSearch>span{position:absolute;left:14px;color:#82919a;font-size:21px;z-index:1}.patientSearch input{padding-left:42px;height:46px;border-radius:13px;background:#fff}.clientsCount{font-size:13px;color:#7d8b94}.clientsGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.clientCard{appearance:none;border:1px solid #e2e9ed;background:#fff;border-radius:19px;padding:19px;text-align:left;color:#213946;cursor:pointer;transition:.18s ease;min-height:215px;display:flex;flex-direction:column}.clientCard:hover{transform:translateY(-2px);border-color:#b9cfda;box-shadow:0 12px 28px rgba(24,49,66,.07)}.clientCardTop{display:flex;justify-content:space-between;align-items:flex-start}.clientAvatar{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#e7f0f5,#d5e5ed);color:#28546f;font-size:16px;font-weight:650}.clientStatus{font-size:11px;padding:6px 9px;border-radius:999px}.clientStatus.active{background:#edf7f0;color:#397258}.clientStatus.inactive{background:#f9eeee;color:#a35454}.clientIdentity{margin-top:17px}.clientIdentity h2{margin:0;font-size:17px;font-weight:600;letter-spacing:-.2px}.clientIdentity p{margin:4px 0 0;color:#849199;font-size:12px}.clientContact{margin-top:16px;display:grid;gap:7px;color:#667780;font-size:12px}.clientContact span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clientCardFoot{border-top:1px solid #edf1f3;margin-top:auto;padding-top:13px;display:flex;justify-content:space-between;align-items:center;color:#537184;font-size:12px}.clientCardFoot b{font-size:18px;font-weight:400}.clientsEmpty{grid-column:1/-1;background:#fff;border:1px dashed #d8e3e8;border-radius:18px;text-align:center;padding:45px;color:#74838c}.clientsEmpty h2{color:#344c5a;font-size:18px;font-weight:600}.clientsEmpty div{font-size:28px}.patientEditorPage{padding:28px 0 40px}.editorHero{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff;border:1px solid #e4ebee;border-radius:20px;padding:22px 26px}.editorHero h1{margin:4px 0;font-size:25px;font-weight:600;letter-spacing:-.5px}.editorHero p{margin:0;color:#71808a;font-size:13px}.editorHeroActions{display:flex;gap:9px;white-space:nowrap}.editorTabs{display:flex;gap:4px;overflow:auto;border-bottom:1px solid #e5ecef;margin-top:20px}.editorTab{border:0;background:transparent;padding:13px 16px;color:#71808a;white-space:nowrap;cursor:pointer;border-bottom:3px solid transparent}.editorTab.active{color:#07518a;border-bottom-color:#b7d900}.editorPanels{margin-top:20px}.editorPanel{display:none;background:#fff;border:1px solid #e5ecef;border-radius:19px;padding:25px}.editorPanel.active{display:block}.editorSectionTitle{margin-bottom:20px}.editorSectionTitle h2{margin:0;font-size:17px;font-weight:600}.editorSectionTitle p{margin:5px 0 0;color:#78868e;font-size:13px}.editorPanel textarea{min-height:105px;resize:vertical}.editorFooter{display:flex;justify-content:flex-end;gap:10px;padding:18px 0}.patientEditorPage .formGrid{gap:18px}.patientEditorPage label{font-weight:600;color:#61717b;margin:0}.patientEditorPage input,.patientEditorPage select,.patientEditorPage textarea{margin-top:7px;font-weight:400;color:#263b47}.patientEditorPage input:focus,.patientEditorPage select:focus,.patientEditorPage textarea:focus{outline:0;border-color:#7ba4bd;box-shadow:0 0 0 3px rgba(7,81,138,.07)}
@media(max-width:1050px){.clientsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.clientsOverview{grid-template-columns:1fr 1fr}.clientsOverview>div:last-child{grid-column:1/-1}}@media(max-width:700px){.clientsHeader,.clientsToolbar,.editorHero{align-items:stretch;flex-direction:column}.clientsGrid{grid-template-columns:1fr}.clientsOverview{grid-template-columns:1fr}.clientsOverview>div:last-child{grid-column:auto}.clientsNewBtn{width:100%}.editorHeroActions{width:100%}.editorHeroActions button{flex:1}.editorPanel{padding:18px}.editorFooter button{flex:1}}


/* v1.14.1 CLIENTES: edición integrada, sin modal */
.patientEditorPage{max-width:1180px;margin:0 auto;padding:24px 0 48px}.patientEditorPage .editorHero{margin-bottom:0}.patientEditorPage .editorPanels{min-height:420px}.patientEditorPage .editorPanel{box-shadow:0 8px 28px rgba(22,48,64,.035)}


/* v1.14.2 · Clientes en formato lista compacto */
.clientsListWrap{background:#fff;border:1px solid #e2e9ed;border-radius:16px;overflow:hidden}.clientsListHeader,.clientRow{display:grid;grid-template-columns:minmax(250px,1.6fr) 125px 150px minmax(190px,1.3fr) 100px 36px;align-items:center;column-gap:14px}.clientsListHeader{padding:12px 18px;background:#f8fafb;border-bottom:1px solid #e8eef1;color:#81909a;font-size:10px;font-weight:600;letter-spacing:.6px;text-transform:uppercase}.clientsList{display:block}.clientRow{width:100%;min-height:72px;padding:10px 18px;border:0;border-bottom:1px solid #edf1f3;background:#fff;text-align:left;color:#334b58;cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.clientRow:last-child{border-bottom:0}.clientRow:hover{background:#f8fbfc;box-shadow:inset 3px 0 0 #b7d900}.clientCell{min-width:0;font-size:13px;color:#60717b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clientNameCell{display:flex;align-items:center;gap:12px}.clientAvatar.small{width:38px;height:38px;border-radius:12px;font-size:13px;flex:0 0 38px}.clientNameCell strong{display:block;font-size:14px;font-weight:600;color:#294454;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clientNameCell small{display:block;margin-top:3px;color:#93a0a7;font-size:11px}.clientDni{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#71818a;letter-spacing:.4px}.clientEmail{overflow:hidden;text-overflow:ellipsis}.clientArrow{font-size:26px;font-weight:300;color:#9aa8af;text-align:right}.clientsListWrap .clientsEmpty{border:0;border-radius:0}.clientsGrid{display:none!important}
@media(max-width:900px){.clientsListHeader{display:none}.clientRow{grid-template-columns:minmax(0,1fr) 110px 32px;gap:10px}.clientRow .clientCell:nth-child(3),.clientRow .clientCell:nth-child(4),.clientRow .clientCell:nth-child(5){display:none}.clientDni{font-size:11px}.clientArrow{grid-column:3}}
@media(max-width:560px){.clientRow{grid-template-columns:minmax(0,1fr) 28px;padding:10px 12px}.clientRow .clientDni{display:none}.clientArrow{grid-column:2}.clientsListWrap{border-radius:12px}.clientNameCell strong{font-size:13px}}

/* v1.14.4 · Estadísticas visibles en ficha de cliente */
.patientStatsPersistent{margin:24px 0 18px!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:14px!important}.patientStatsPersistent .patientStat{min-height:108px;padding:20px 18px!important;display:flex;flex-direction:column;justify-content:center}.patientStatsPersistent .patientStat b{font-size:26px!important;font-weight:650!important;line-height:1.2}.patientStatsPersistent .patientStat span{margin-top:7px;color:#73808c;font-size:13px}.patientStatsPersistent .moneyStat b{color:#1d5d8b}.patientStatsPersistent .patientStat:last-child b{font-size:17px!important}@media(max-width:1000px){.patientStatsPersistent{grid-template-columns:repeat(3,1fr)!important}}@media(max-width:640px){.patientStatsPersistent{grid-template-columns:repeat(2,1fr)!important}.patientStatsPersistent .patientStat{min-height:88px;padding:15px!important}}

/* v1.14.7 · Agenda: acceso a paciente y cancelaciones */
.appointmentPatientLink{display:flex;justify-content:flex-end;margin:-2px 0 12px}
.appointmentPatientLink .small{font-size:12px;padding:7px 10px}
.apptCancelled,.agendaEvent.apptCancelled,.appointment.apptCancelled{
  background:#fff1f1!important;border:1px solid #ef9a9a!important;color:#b42318!important;
  text-decoration:line-through;opacity:.9;min-height:24px!important;overflow:hidden;position:relative;
}
.apptCancelled::after{
  content:'✕ CANCELADA';position:absolute;right:5px;top:3px;color:#d92d20;font-size:9px;font-weight:700;text-decoration:none;
}

/* v1.14.8 */
.appointmentActionsMenu button[data-action="cancel"]{color:#c62828!important}
.appointmentActionsMenu button[data-action="cancel"]:hover{background:#fff1f1!important}

/* v1.14.9 · Menú contextual inteligente */
.appointmentActionsMenu{
  max-height:calc(100vh - 24px);
  overflow-y:auto;
}

/* v1.15.0 · Citas canceladas: liberación visual del horario */
.timelineAppt.apptCancelled{
  background:linear-gradient(90deg,#dc2626,#ef4444)!important;
  border-left-color:#991b1b!important;
  border:1px solid #fca5a5!important;
  color:#fff!important;
  opacity:.92;
  min-height:18px;
  display:flex!important;
  align-items:center;
  gap:7px;
  padding:3px 8px!important;
  box-sizing:border-box;
  overflow:hidden;
  z-index:2;
}
.timelineAppt.apptCancelled .cancelMark{
  width:18px;
  height:18px;
  min-width:18px;
  border-radius:50%;
  background:rgba(255,255,255,.2);
  border:1px solid rgba(255,255,255,.75);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  line-height:1;
  font-weight:700;
}
.timelineAppt.apptCancelled .cancelLabel{
  color:#fff!important;
  font-size:11px;
  font-weight:600;
  letter-spacing:.01em;
  white-space:nowrap;
}
.timelineAppt.apptCancelled:hover{
  opacity:1;
  filter:brightness(.98);
}

/* v1.15.1 · Cita cancelada y nueva cita en paralelo */
.timelineAppt.splitLeft{
  left:5px!important;
  right:auto!important;
  width:calc(50% - 7px)!important;
}
.timelineAppt.splitRight{
  left:calc(50% + 2px)!important;
  right:5px!important;
  width:auto!important;
}
.timelineAppt.splitLeft.apptCancelled{
  border-radius:8px!important;
}
.timelineAppt.splitRight{
  z-index:11;
}


/* v1.15.2 · División real en paralelo: cancelada izquierda / nueva derecha */
.timelineAppt.splitLeft{left:5px!important;right:auto!important;width:calc(50% - 7px)!important;z-index:12!important}
.timelineAppt.splitRight{left:calc(50% + 2px)!important;right:auto!important;width:calc(50% - 7px)!important;z-index:11!important}
.timelineAppt.splitLeft.apptCancelled{height:auto;min-height:0!important}


/* v1.15.3 · Cancelaciones como indicador discreto, sin ocupar la agenda */
.timelineBody{position:relative}
.cancelledBadge{position:absolute;right:8px;width:22px;height:22px;border:2px solid #fff;border-radius:50%;background:#e54848;color:#fff;display:grid;place-items:center;padding:0;font-size:10px;font-weight:800;line-height:1;cursor:pointer;z-index:50;box-shadow:0 3px 9px rgba(190,40,40,.28);transition:transform .15s ease,box-shadow .15s ease}
.cancelledBadge:hover{transform:scale(1.12);box-shadow:0 5px 14px rgba(190,40,40,.38)}
.cancelledBadge.compact{right:5px;width:20px;height:20px;font-size:9px}
.cancelledAppointmentsModal{width:min(520px,100%)}
.cancelledModalHead{display:flex;align-items:center;gap:14px;padding-bottom:17px;border-bottom:1px solid #edf0f2}
.cancelledModalIcon{width:42px;height:42px;border-radius:13px;background:#fff0f0;color:#dc3d3d;display:grid;place-items:center;font-size:27px;font-weight:500;line-height:1;flex:none}
.cancelledModalHead small{display:block;color:#c55050;font-size:9px;letter-spacing:.13em;font-weight:800;margin-bottom:3px}
.cancelledModalHead h2{margin:0;color:#33434e;font-size:21px;font-weight:650}
.cancelledModalHead p{margin:4px 0 0;color:#84919a;font-size:12px;text-transform:capitalize}
.cancelledAppointmentsList{display:grid;gap:9px;margin-top:16px;max-height:360px;overflow:auto}
.cancelledAppointmentItem{border:1px solid #edf0f2;border-left:3px solid #ea5454;border-radius:11px;padding:12px 13px;background:#fff}
.cancelledItemTop{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cancelledItemTop b{font-size:14px;font-weight:650;color:#384952}
.cancelledItemTop span{font-size:11px;color:#d45454;font-weight:700;white-space:nowrap}
.cancelledItemMeta{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;color:#7c8991;font-size:11px}
.cancelledItemMeta span:first-child{background:#f6f8f9;border-radius:6px;padding:3px 6px;color:#64747d}


/* v1.15.4 · Jerarquía correcta y restablecimiento de citas canceladas */
.modal{z-index:1000!important}
.cancelledBadge{z-index:6!important}
.patientResults{z-index:40}
.cancelledItemActions{display:flex;justify-content:flex-end;margin-top:10px}
.restoreCancelledBtn{border:1px solid #b9d86a;background:#f6fbdc;color:#45620d;border-radius:8px;padding:7px 10px;font-size:11px;font-weight:750;cursor:pointer}
.restoreCancelledBtn:hover{background:#edf7c4}
.restoreCancelledBtn:disabled{opacity:.6;cursor:wait}

/* v1.16.0 · Controles protegidos y visibilidad en Agenda */
.accessTop label small,.agendaVisibilityControl small{display:block;margin-top:6px;color:var(--muted,#667085);font-size:11px;line-height:1.35}
.accessTop select:disabled{opacity:.7;cursor:not-allowed;background:#f2f4f7}
.agendaVisibilityControl{grid-column:span 2}

/* v1.16.1 · Credenciales de acceso */
.accessTop label small,.agendaVisibilityControl small{display:block;margin-top:6px;color:var(--muted,#667085);font-size:11px;line-height:1.35}
.accessTop select:disabled{opacity:.7;cursor:not-allowed;background:#f2f4f7}
.agendaVisibilityControl{grid-column:span 2}


/* v1.16.6 · Configuración y formularios inteligentes */
#clinic .formGrid,#agendaCfg .formGrid,#billingCfg .formGrid,#systemCfg .formGrid{align-items:start}
#systemCfg small{color:#667085;font-size:12px;line-height:1.5}
.profileTabs .tab{white-space:nowrap}


/* Orden personalizable de profesionales en Agenda */
.agendaProItem{display:flex!important;align-items:center;gap:8px;cursor:grab;user-select:none;transition:background .15s ease,opacity .15s ease,transform .15s ease;padding:7px 6px!important;border-radius:8px}
.agendaProItem:hover{background:rgba(7,81,138,.06)}
.agendaProItem.dragging{opacity:.45}
.agendaProItem.dragOver{background:rgba(7,81,138,.12);box-shadow:inset 0 2px 0 #2f78b7}
.dragHandle{color:#8795a3;font-size:18px;line-height:1;cursor:grab;letter-spacing:-3px;width:13px;overflow:hidden;display:inline-block}
.agendaProName{flex:1}
.proFilters .filterTitle{margin-bottom:6px}

/* v1.17.1 · Orden manual de tarjetas */
.sortableCard{cursor:grab}.sortableCard:active{cursor:grabbing}.sortableCard.dragging{opacity:.45;transform:scale(.98)}

/* v1.17.2 · Chat y notificaciones globales */
.user{display:flex;align-items:center;gap:9px}
.notificationBell{position:relative;width:40px;height:40px;border:1px solid #dce6eb;background:#fff;border-radius:12px;display:grid;place-items:center;cursor:pointer;transition:.18s;box-shadow:0 3px 10px rgba(18,52,74,.05)}
.notificationBell:hover{transform:translateY(-1px);border-color:#8eb5c8;background:#f7fbfd}
.notificationBell.hasNotifications{border-color:#ef7373;background:#fff8f8;animation:bellPulse 1.7s ease-in-out infinite}
.bellIcon{font-size:18px;line-height:1}
.notificationBadge{position:absolute;right:-6px;top:-6px;min-width:19px;height:19px;padding:0 4px;border-radius:999px;background:#d94141;color:#fff;font-size:10px;font-style:normal;font-weight:800;place-items:center;border:2px solid #fff}
@keyframes bellPulse{0%,100%{transform:rotate(0)}15%{transform:rotate(7deg)}30%{transform:rotate(-7deg)}45%{transform:rotate(4deg)}60%{transform:rotate(0)}}

.newChatModal{width:min(660px,92vw)!important;max-height:min(760px,88vh);overflow:auto;padding:28px!important}
.newChatModal .modernField{margin-bottom:0!important}
.newChatModal .newChatTypes{margin:18px 0}
.newChatModal .selectLabel{display:flex;justify-content:space-between;align-items:center;margin:18px 0 9px}
.participantHelp{font-size:11px;font-weight:400;color:#92a0a6}
.participantGrid{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;max-height:270px!important;overflow-y:auto!important;padding:2px 3px 3px!important}
.participantOption{display:grid!important;grid-template-columns:22px 34px minmax(0,1fr) auto!important;align-items:center!important;gap:10px!important;min-height:58px!important;margin:0!important;padding:10px 12px!important;border:1px solid #e4ebed!important;background:#fff!important;border-radius:12px!important;color:#40545d!important;cursor:pointer!important}
.participantOption:hover{background:#f5fbfb!important;border-color:#9fd4d0!important}
.participantOption input{width:17px!important;height:17px!important;margin:0!important;padding:0!important;accent-color:#0a8987}
.participantOption .miniAvatar{width:34px!important;height:34px!important;border-radius:10px!important;font-size:10px!important;flex:none}
.participantName{display:block!important;min-width:0!important;font-size:13px!important;font-weight:700!important;color:#38505a!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.25!important;margin:0!important}
.participantOption small{font-size:10px;color:#0a8987;background:#e7f6f4;border-radius:999px;padding:4px 7px;font-weight:700}
@media(max-width:640px){.newChatModal{padding:22px!important}.newChatTypes{grid-template-columns:1fr!important}.participantGrid{max-height:230px!important}.newChatModal .newChatFooter{position:sticky;bottom:-28px;background:#fff;padding-top:14px;padding-bottom:2px}}

/* v1.18.3 · Horarios, festivos y ausencias */
.scheduleGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.scheduleDay{border:1px solid #e5ecef;border-radius:12px;padding:13px;background:#fff}
.dayToggle{display:flex!important;align-items:center!important;gap:9px;margin-bottom:10px!important}.dayToggle input{width:17px;height:17px;accent-color:#0a8987}
.timeRange{display:flex;align-items:center;gap:7px}.timeRange input{min-width:0;padding:8px}.timeRange span{color:#9aa8ad}
.scheduleActions{margin-top:16px}.softDivider{border:0;border-top:1px solid #e9eef0;margin:28px 0}
.absenceForm{display:grid;grid-template-columns:1fr 1fr 1fr 1.4fr auto;gap:10px;align-items:end}.absenceForm label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#56666d}.absenceForm input,.absenceForm select{height:40px}
.absenceList{margin-top:12px;border:1px solid #e8edef;border-radius:12px;overflow:hidden}.absenceItem{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-bottom:1px solid #edf1f2}.absenceItem:last-child{border-bottom:0}.absenceItem span{display:flex;flex-direction:column;gap:3px}.absenceItem small{color:#809097}.iconDanger{border:0;background:#fff0f0;color:#d64b4b;border-radius:8px;width:30px;height:30px;font-size:20px;cursor:pointer}
@media(max-width:850px){.scheduleGrid{grid-template-columns:1fr}.absenceForm{grid-template-columns:1fr 1fr}.absenceForm button{grid-column:1/-1}}

/* v1.18.4 · Disponibilidad visual de agenda y festivos */
.timelineBody{position:relative;overflow:hidden}
.nonWorkingShade{position:absolute;left:0;right:0;background:repeating-linear-gradient(135deg,#eef1f2 0,#eef1f2 8px,#e5e9eb 8px,#e5e9eb 16px);z-index:1;pointer-events:none;border-top:1px solid #d8dee1;border-bottom:1px solid #d8dee1}
.dropSlot.unavailableSlot{background:rgba(140,150,155,.12);cursor:not-allowed;z-index:2}
.dropSlot.unavailableSlot:hover{background:rgba(140,150,155,.18)}
.agendaClosedOverlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(222,226,228,.82);color:#778289;font-weight:800;letter-spacing:1.4px;font-size:13px;z-index:4;pointer-events:none;writing-mode:vertical-rl;text-orientation:mixed}
.agendaClosedOverlay.professionalClosed{background:rgba(230,233,235,.72);font-size:11px}
.timelineAppt,.cancelledBadge{z-index:6}
.holidayAdd{display:grid;grid-template-columns:180px minmax(220px,1fr) auto;gap:12px;align-items:end}.holidayAdd label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#56666d}
@media(max-width:700px){.holidayAdd{grid-template-columns:1fr}.holidayAdd button{width:100%}}

.secondShift{margin-top:7px;padding-top:7px;border-top:1px dashed #dfe6e8}.secondShift small{font-size:10px;color:#87959b;white-space:nowrap}
/* v1.19.0 Sistema de bonos */
.bonusHeader{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.bonusHeader h2{margin:0 0 5px}.bonusHeader p{margin:0;color:#708092}.bonusGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:18px}.bonusCard{background:#fff;border:1px solid #e1e8ef;border-radius:18px;padding:20px;box-shadow:0 8px 24px rgba(20,50,80,.06)}.bonusCard.agotado,.bonusCard.caducado,.bonusCard.cancelado{opacity:.68}.bonusCardTop{display:flex;justify-content:space-between;gap:12px}.bonusCard h3{margin:4px 0 14px;font-size:20px}.bonusStatus{padding:6px 10px;border-radius:999px;text-transform:capitalize;font-size:12px;font-weight:700;background:#e7f6ee;color:#26724b}.bonusStatus.agotado{background:#fff3d9;color:#966700}.bonusStatus.caducado,.bonusStatus.cancelado{background:#fde8e8;color:#a33d3d}.bonusProgress{height:10px;border-radius:99px;background:#edf1f4;overflow:hidden;margin:10px 0 14px}.bonusProgress>div{height:100%;background:linear-gradient(90deg,#b7d900,#197e8b);border-radius:99px}.bonusNumbers{display:grid;grid-template-columns:auto 1fr;align-items:end;column-gap:10px}.bonusNumbers strong{font-size:34px;line-height:1;color:#21476c}.bonusNumbers span{font-weight:700;color:#526579}.bonusNumbers small{grid-column:1/-1;margin-top:8px;color:#8794a2}.bonusMeta{display:flex;justify-content:space-between;gap:10px;margin:16px 0;color:#526579;font-size:14px}.bonusActions{display:flex;gap:8px;flex-wrap:wrap}.bonusUsageList{border-top:1px solid #edf0f2;margin-top:15px;padding-top:10px;font-size:13px;color:#586979}.bonusUsageList div{padding:5px 0;display:flex;justify-content:space-between}.bonusAlerts{padding:12px 15px;border:1px solid #f0c86d;background:#fff9e9;border-radius:12px;margin-bottom:16px;color:#8a650c}.bonusEmpty{grid-column:1/-1;text-align:center;padding:48px 20px;border:1px dashed #ccd7df;border-radius:18px;background:#fbfcfd}.bonusEmpty>div{font-size:38px}.bonusCreateModal{min-width:min(700px,92vw)}@media(max-width:700px){.bonusHeader{align-items:flex-start;flex-direction:column}.bonusCreateModal{min-width:0}.bonusMeta{flex-direction:column}}

.bonusAutoNotice{margin:12px 0;padding:10px 12px;border-radius:10px;background:#eef8df;color:#527000;font-size:13px;font-weight:600}.bonusCreateModal select[multiple]{height:auto;min-height:110px}.bonusCreateModal small{display:block;margin-top:5px;color:#78868c;font-weight:400}

/* v1.19.3 Bonos predefinidos */
.bonusTemplateGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.bonusTemplateCard{background:#fff;border:1px solid #dfe7e9;border-radius:14px;padding:16px}
.bonusTemplateCard h3{margin:7px 0 12px}.templateStats{display:flex;justify-content:space-between;margin:10px 0}
.bonusTemplateCard small{color:#718087}.bonusActions{display:flex;gap:8px;margin-top:14px}
.bonusEmpty{text-align:center;padding:40px;color:#718087}
/* v1.19.4 — Sistema visual de bonos con mini tarjetas */
.bonusSmartModal{width:min(940px,92vw);min-width:0!important}.modalPremiumHeader{display:flex;align-items:center;gap:14px;padding:2px 2px 18px;border-bottom:1px solid #edf1f3}.modalPremiumHeader h2{margin:3px 0 4px;font-size:26px;color:#243c52}.modalPremiumHeader p{margin:0;color:#718094}.modalTitleIcon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(135deg,#eef8d7,#e5f5f4);font-size:24px}.bonusQuickSection{padding:18px 0}.bonusQuickHeading{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px}.bonusQuickHeading h3,.sectionMiniHeading h3{margin:0;color:#31495f}.bonusQuickHeading p{margin:4px 0 0;color:#7b8997;font-size:13px}.bonusPickerGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:11px}.bonusPickerCard{appearance:none;text-align:left;background:#fff;border:1px solid #dfe8ec;border-radius:16px;padding:14px;cursor:pointer;transition:.18s ease;min-height:142px;color:#31485e}.bonusPickerCard:hover{transform:translateY(-2px);border-color:#7ab8bb;box-shadow:0 10px 24px rgba(20,65,85,.09)}.bonusPickerCard.selected{border:2px solid #197e8b;background:linear-gradient(145deg,#fff,#effafa);box-shadow:0 10px 25px rgba(25,126,139,.14)}.bonusPickerTop{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.bonusPickerIcon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#eef5f6;font-size:18px}.bonusPickerCheck{width:22px;height:22px;border-radius:50%;display:none;place-items:center;background:#197e8b;color:#fff;font-size:12px;font-weight:800}.bonusPickerCard.selected .bonusPickerCheck{display:grid}.bonusPickerCard strong{display:block;font-size:15px;margin-bottom:5px}.bonusPickerService{display:block;font-size:12px;color:#6f7f8e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bonusPickerStats{display:flex;justify-content:space-between;gap:8px;margin-top:14px;color:#21476c}.bonusPickerStats b{font-size:15px}.bonusPickerStats small{font-weight:600}.bonusPickerExpiry{display:block;margin-top:8px;color:#8a96a1;font-size:11px}.bonusCustomCard{border-style:dashed;background:#fbfcfd}.bonusPickerEmpty{grid-column:1/-1;padding:14px;border-radius:12px;background:#f7fafb;color:#778693;font-size:13px}.bonusSelectedInfo{display:flex;align-items:center;gap:8px;padding:11px 13px;border-radius:12px;background:#f3f8e8;color:#627039;font-size:13px;border:1px solid #e2ebc9}.bonusSelectedInfo span{font-weight:800;color:#7f9b00}.bonusDetailsSection{margin-top:18px;padding-top:18px;border-top:1px solid #edf1f3}.sectionMiniHeading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.sectionMiniHeading span{font-size:12px;color:#8b98a5}@media(max-width:640px){.bonusSmartModal{width:96vw}.modalPremiumHeader{align-items:flex-start}.bonusPickerGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.bonusQuickHeading,.sectionMiniHeading{align-items:flex-start;flex-direction:column;gap:4px}.bonusPickerCard{min-height:130px;padding:12px}}

/* Compartir bonos: selector visual de clientes */
.bonusShareSection{padding:16px;border:1px solid #e4ecef;border-radius:16px;background:linear-gradient(180deg,#fcfefe,#f7fbfb)}
.bonusShareHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.bonusShareLabel{display:block;font-weight:800;color:#31495f;font-size:14px}.bonusShareHeader p{margin:4px 0 0;font-size:12px;color:#7b8997}.bonusShareCounter{white-space:nowrap;padding:6px 9px;border-radius:999px;background:#e8f5f4;color:#197e8b;font-size:11px;font-weight:800}.bonusClientGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px}.bonusClientCard{position:relative;display:flex;align-items:center;gap:9px;width:100%;min-height:56px;padding:8px 10px;text-align:left;border:1px solid #dde7ea;border-radius:13px;background:#fff;color:#354c60;cursor:pointer;transition:.18s ease}.bonusClientCard:hover{border-color:#8abfc0;transform:translateY(-1px);box-shadow:0 7px 18px rgba(26,76,89,.08)}.bonusClientCard.selected{border-color:#197e8b;background:#effafa;box-shadow:0 7px 18px rgba(25,126,139,.12)}.bonusClientAvatar{flex:0 0 34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#edf3f4;color:#39747b;font-size:11px;font-weight:900}.bonusClientName{font-size:12px;font-weight:750;line-height:1.25}.bonusClientCheck{position:absolute;right:8px;top:8px;width:18px;height:18px;display:none;place-items:center;border-radius:50%;background:#197e8b;color:#fff;font-size:10px;font-weight:900}.bonusClientCard.selected .bonusClientCheck{display:grid}.bonusShareHelp{display:block;margin-top:10px;color:#758593;font-size:11px}.bonusClientEmpty{padding:12px;border:1px dashed #d9e4e7;border-radius:12px;color:#81909a;font-size:12px}@media(max-width:640px){.bonusShareHeader{flex-direction:column}.bonusClientGrid{grid-template-columns:1fr 1fr}}


/* v1.19.9 · MODALES LIMPIOS Y BONOS COMPACTOS */
.modal{z-index:1000!important;padding:28px!important;background:rgba(18,42,57,.46)!important;backdrop-filter:blur(4px)}
.modalBox{position:relative!important;width:min(760px,calc(100vw - 56px))!important;max-height:calc(100vh - 56px)!important;overflow-y:auto!important;padding:26px!important;border:1px solid rgba(255,255,255,.8)!important;border-radius:24px!important;box-shadow:0 28px 80px rgba(17,42,57,.28)!important;scrollbar-width:thin;scrollbar-color:#c5d3da transparent}
.modalUniversalClose{position:absolute!important;right:18px!important;top:18px!important;width:38px!important;height:38px!important;padding:0!important;border:1px solid #dce6ea!important;border-radius:50%!important;background:#f7fafb!important;color:#60727c!important;font-size:28px!important;line-height:34px!important;cursor:pointer!important;z-index:5!important;box-shadow:0 4px 12px rgba(30,60,75,.08)!important}.modalUniversalClose:hover{background:#eef5f6!important;color:#07518a!important}
.bonusCompactModal{width:min(900px,100%)!important;min-width:0!important;padding:28px!important}.bonusCompactHead{display:flex;align-items:center;gap:14px;padding-right:52px;margin-bottom:18px}.bonusCompactHead h2{margin:2px 0 4px;font-size:26px;color:#243c52}.bonusCompactHead p{margin:0;color:#748490;font-size:13px}.bonusChoiceSection{padding:16px;background:#f7fafb;border:1px solid #e7edef;border-radius:18px}.bonusChoiceTitle h3{margin:0;color:#31495f}.bonusChoiceTitle p{margin:4px 0 12px;color:#7b8997;font-size:12px}.bonusMiniGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px}.bonusMiniCard{min-height:138px;border:1px solid #dce6e9;border-radius:15px;padding:13px;background:#fff;text-align:left;color:#32495e;cursor:pointer;transition:.18s ease}.bonusMiniCard:hover{transform:translateY(-2px);border-color:#78b6b7;box-shadow:0 10px 22px rgba(25,75,90,.08)}.bonusMiniCard.selected{border:2px solid #197e8b;background:linear-gradient(145deg,#fff,#eef9f8);box-shadow:0 10px 24px rgba(25,126,139,.13)}.bonusMiniTop{display:flex;justify-content:space-between;align-items:center}.bonusMiniIcon{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#eef4f5}.bonusMiniCheck{display:none;width:22px;height:22px;place-items:center;border-radius:50%;background:#197e8b;color:#fff;font-size:11px;font-weight:900}.bonusMiniCard.selected .bonusMiniCheck{display:grid}.bonusMiniCard strong{display:block;margin-top:10px;font-size:14px}.bonusMiniCard>span:not(.bonusMiniIcon):not(.bonusMiniCheck){display:block;margin-top:3px;color:#788894;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bonusMiniData{display:flex;justify-content:space-between;align-items:center;margin-top:13px}.bonusMiniData b{font-size:14px;color:#21476c}.bonusMiniData small{font-size:10px;color:#758590}.bonusMiniCard em{display:block;margin-top:8px;font-size:10px;color:#8b98a2;font-style:normal}.bonusCustomMini{border-style:dashed;background:#fbfcfd}.bonusSelectionPill{margin:12px 0;padding:10px 13px;border-radius:12px;background:#f1f6e7;border:1px solid #e1eac9;color:#65733b;font-size:12px;font-weight:700}.bonusDetailsAccordion,.bonusShareAccordion{border:1px solid #e2eaed;border-radius:16px;background:#fff;margin-top:10px;overflow:hidden}.bonusDetailsAccordion summary,.bonusShareAccordion summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;background:#fbfcfc}.bonusDetailsAccordion summary::-webkit-details-marker,.bonusShareAccordion summary::-webkit-details-marker{display:none}.bonusDetailsAccordion summary b,.bonusShareAccordion summary b{display:block;color:#31495f;font-size:14px}.bonusDetailsAccordion summary small,.bonusShareAccordion summary small{display:block;margin-top:3px;color:#84919a;font-size:11px}.bonusDetailsAccordion summary i{font-style:normal;color:#6c7e89}.bonusDetailsBody,.bonusShareBody{padding:16px;border-top:1px solid #edf1f3}.bonusShareAccordion summary .bonusShareCounter{margin-left:auto}.bonusShareBody .bonusClientGrid{max-height:none!important;overflow:visible!important}.bonusCompactFooter{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:2px}.bonusCompactFooter .primary{padding-left:20px;padding-right:20px}.bonusSellInline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px 13px;border:1px solid #d9e8ec;border-radius:13px;background:#f7fbfc}.bonusSellInline b,.bonusSellInline small{display:block}.bonusSellInline b{font-size:13px;color:#385165}.bonusSellInline small{font-size:11px;color:#7c8b95;margin-top:3px}.secondary{background:#eef7f7;border:1px solid #bcdedc;color:#087e7b;padding:9px 12px;border-radius:10px;font-weight:800;cursor:pointer;white-space:nowrap}.secondary:hover{background:#e4f3f2}
.modal:has(.bonusCompactModal) .modalBox{width:min(900px,calc(100vw - 56px))!important}.modal:has(.bonusCompactModal){align-items:center!important}
@media(max-width:700px){.modal{padding:14px!important}.modalBox{width:calc(100vw - 28px)!important;max-height:calc(100vh - 28px)!important;padding:20px!important;border-radius:20px!important}.bonusCompactModal{padding:20px!important}.bonusMiniGrid{grid-template-columns:1fr 1fr}.bonusCompactHead{padding-right:40px}.bonusSellInline{align-items:flex-start;flex-direction:column}.bonusSellInline .secondary{width:100%}.bonusCompactFooter{position:sticky;bottom:0;background:#fff;padding-top:12px}}

/* v1.19.10 · Scroll invisible en ventanas flotantes
   Mantiene el desplazamiento con rueda, trackpad y táctil sin mostrar barras. */
.modalBox,
.modalBox *,
.newChatModal,
.participantGrid,
.bonusClientGrid,
.bonusShareBody,
.bonusDetailsBody{
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}
.modalBox::-webkit-scrollbar,
.modalBox *::-webkit-scrollbar,
.newChatModal::-webkit-scrollbar,
.participantGrid::-webkit-scrollbar,
.bonusClientGrid::-webkit-scrollbar,
.bonusShareBody::-webkit-scrollbar,
.bonusDetailsBody::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
}
/* La barra desaparece, pero el contenido sigue siendo completamente desplazable. */
.modalBox{scrollbar-color:transparent transparent !important;}


/* v1.19.11 — Iconografía unificada: menú lateral y configuración */
.configTabs .tab{display:inline-flex;align-items:center;gap:9px}
.configTabs .cfgNavIcon{width:22px;min-width:22px;height:22px;font-size:19px;color:currentColor}
.configTabs .cfgNavIcon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:block}
/* v1.19.12 · Iconografía interna alineada con el menú principal */
.configTabs .tab span:last-child{line-height:1}

/* Pilates v1.20: reutiliza el componente professionalCard */
.pilatesMiniSummary{display:flex;gap:18px;margin:2px 0;color:#6d7b84;font-size:14px}.pilatesMiniSummary span{display:inline-flex;gap:6px}.pilatesAvatar{font-size:21px!important}.pilatesInfoRows{gap:9px!important}.pilatesInfoRows div{margin-bottom:0!important}.pilatesEditor h2,.pilatesDetail h2{margin:4px 0 8px}.pilatesEditor>p{color:#72808a}.pilatesDetailHeader{display:flex;justify-content:space-between;gap:12px}.pilatesDetailHeader p{color:#72808a;margin:0}.pilatesDetailStats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0}.pilatesDetailStats div{padding:14px;border:1px solid #e6ecef;border-radius:12px;background:#f8fafb}.pilatesDetailStats b{display:block;font-size:22px}.pilatesDetailStats span{font-size:12px;color:#72808a}.pilatesStudentList{margin:10px 0 18px;border:1px solid #e7ecef;border-radius:12px;overflow:hidden}.pilatesStudentList>div{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #edf0f2}.pilatesStudentList b{flex:1}.pilatesPicker{max-height:380px;overflow:auto;border:1px solid #e7ecef;border-radius:12px}.pilatesPick{width:100%;display:flex;align-items:center;gap:10px;padding:12px;border:0;border-bottom:1px solid #edf0f2;background:#fff;text-align:left;cursor:pointer}.pilatesPick:hover{background:#f5f9fb}.pilatesPick span{display:flex;flex-direction:column;gap:2px;flex:1}.pilatesPick small{color:#7c8991}.dangerBtn{color:#b64040}@media(max-width:700px){.pilatesMiniSummary{flex-wrap:wrap}.pilatesDetailHeader{flex-direction:column}}
/* v1.20.1 · Clases de Pilates bloquean visualmente la Agenda */
.pilatesAgendaBlock{position:absolute;left:4px;right:4px;z-index:8;border:0;border-left:4px solid var(--pilates-color,#1769aa);border-radius:10px;background:linear-gradient(90deg,color-mix(in srgb,var(--pilates-color,#1769aa) 18%,white),color-mix(in srgb,var(--pilates-color,#1769aa) 6%,white));box-shadow:0 4px 12px rgba(30,55,70,.10);padding:7px 9px;text-align:left;color:#263845;cursor:pointer;overflow:hidden;display:flex;flex-direction:column;gap:2px}
.pilatesAgendaBlock:hover{box-shadow:0 7px 18px rgba(30,55,70,.16);transform:translateY(-1px)}
.pilatesAgendaBlock b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pilatesAgendaBlock span{font-size:11px;color:#536775}.pilatesAgendaBlock small{font-size:10px;font-weight:700;color:#1769aa}.pilatesAgendaBlock.compact{left:3px;right:3px;padding:5px 6px}.pilatesAgendaBlock.compact small{display:none}
.dropSlot:has(+ .pilatesAgendaBlock){cursor:not-allowed}
.pilatesDetailActions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:18px}.pilatesChargeList{border:1px solid #e7ecef;border-radius:12px;overflow:auto;max-height:330px;margin:14px 0}.pilatesChargeList label{display:flex;align-items:center;gap:10px;padding:11px 13px;border-bottom:1px solid #edf0f2;cursor:pointer}.pilatesChargeList label:last-child{border-bottom:0}.pilatesChargeList span{display:flex;flex-direction:column;flex:1;gap:2px}.pilatesChargeList small{color:#72808a}.pilatesChargeList input{width:18px;height:18px}

/* v1.20.3 · Facturación editable y factura A4 basada en modelo FisNatur */
.invoiceActions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.invoiceTableApp td:last-child{min-width:280px}.invoiceEditor{width:min(900px,92vw)}.invoiceEditGrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin:16px 0}.invoiceEditGrid label,.invoiceEditColumns label,.invoiceEditor .wideField{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#71808a}.invoiceEditGrid input,.invoiceEditColumns input,.invoiceEditColumns textarea,.invoiceEditor textarea{padding:10px;border:1px solid #dbe5e7;border-radius:9px;font:inherit;color:#263944}.invoiceEditColumns{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:18px}.invoiceEditColumns h3,.invoiceEditor>h3{margin:8px 0 10px}.invoiceEditColumns textarea,.invoiceEditor .wideField textarea{min-height:74px;resize:vertical}.invoiceLinesEdit{border:1px solid #e5ecee;border-radius:12px;overflow:auto;margin-bottom:10px}.invoiceLinesEdit table{width:100%;border-collapse:collapse}.invoiceLinesEdit th,.invoiceLinesEdit td{padding:8px;border-bottom:1px solid #e5ecee;text-align:left}.invoiceLinesEdit input{width:100%;padding:8px;border:1px solid #dbe5e7;border-radius:7px}.invoiceLinesEdit td:nth-child(2){width:145px}.invoiceLinesEdit td:nth-child(3){width:120px}.invoiceLinesEdit td:last-child{width:45px}.invoiceEditor .wideField{margin-top:14px}.invoiceEditor .modalActions{margin-top:18px}@media(max-width:800px){.invoiceEditGrid,.invoiceEditColumns{grid-template-columns:1fr}.invoiceActions{justify-content:flex-start}.invoiceTableApp td:last-child{min-width:0}}

/* WhatsApp v1.21.0 */
.whatsappPage{padding:30px}.whatsappHero{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:20px}.whatsappHero h1{margin:4px 0 7px}.whatsappHero p{margin:0;color:#809097}.waStatus{display:flex;align-items:center;gap:8px;background:#f4f6f7;padding:9px 13px;border-radius:999px;font-size:12px;font-weight:800;color:#78878d}.waStatus span{width:9px;height:9px;border-radius:50%;background:#b6c0c4}.waStatus.ok{color:#087d70;background:#e9f7f3}.waStatus.ok span{background:#1ab394}.whatsappGrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(360px,.8fr);gap:18px}.waInboxCard,.waSetupCard,.waAutomationCard{min-width:0}.waCardHead{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid #edf1f2}.waCardHead h2{margin:0 0 4px}.waCardHead p{margin:0;color:#8a989e;font-size:12px}.waInboxLayout{height:620px;display:grid;grid-template-columns:310px 1fr}.waConversationList{border-right:1px solid #e7edef;overflow:auto;padding:8px}.waConversation{width:100%;display:flex;gap:10px;border:0;background:#fff;text-align:left;padding:11px;border-radius:12px;cursor:pointer}.waConversation:hover,.waConversation.selected{background:#eef9f7}.waAvatar{width:40px;height:40px;border-radius:13px;background:#e1f5f0;color:#087d73;display:grid;place-items:center;font-size:12px;font-weight:900;flex:none}.waConversation>div:nth-child(2){min-width:0;flex:1}.waConversation b{display:block;color:#354a52;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.waConversation span{display:block;color:#8b999f;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.waConversation small{display:block;color:#a4afb3;font-size:9px;margin-top:4px}.waListEmpty{padding:35px 18px;color:#8a989e;text-align:center;font-size:12px}.waThread{min-width:0;display:flex;flex-direction:column;background:#f8fafb}.waThreadHeader{display:flex;align-items:center;gap:10px;padding:15px 18px;background:#fff;border-bottom:1px solid #e7edef}.waThreadHeader h3{margin:0;font-size:14px;color:#334950}.waThreadHeader span{font-size:10px;color:#8b999f}.waThreadPatient{margin-left:auto}.waMessages{flex:1;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:8px}.waMsgRow{display:flex}.waMsgRow.mine{justify-content:flex-end}.waMsgBubble{max-width:75%;background:#fff;border:1px solid #e2e9eb;border-radius:15px 15px 15px 4px;padding:10px 12px;font-size:12px;color:#42555d;white-space:pre-wrap}.waMsgRow.mine .waMsgBubble{background:#0b8d89;color:#fff;border:0;border-radius:15px 15px 4px 15px}.waMsgBubble small{display:block;text-align:right;margin-top:5px;font-size:9px;color:#9aa6aa}.waMsgRow.mine .waMsgBubble small{color:rgba(255,255,255,.75)}.waComposer{padding:12px;background:#fff;border-top:1px solid #e6edef;display:flex;gap:8px}.waComposer input{flex:1;border:1px solid #dce6e8;border-radius:10px;padding:11px;outline:0}.waEmpty,.waEmptySmall{margin:auto;text-align:center;color:#87959b}.waEmpty div{font-size:38px}.waEmpty h3{margin:8px 0 4px;color:#40545b}.waEmpty p{margin:0;font-size:12px}.waEmptySmall{padding:40px}.waConnectionBanner{padding:13px 15px;background:#f4f8f8;border:1px solid #e4eded;border-radius:12px;margin-bottom:18px;display:flex;flex-direction:column;gap:4px}.waConnectionBanner b{color:#2f4a52;font-size:12px}.waConnectionBanner span{font-size:11px;color:#859399}.waSetupNote{margin-top:16px;padding:12px 14px;background:#fbfcfc;border:1px dashed #cfdcde;border-radius:11px;display:flex;flex-direction:column;gap:5px}.waSetupNote b{font-size:11px;color:#52666e}.waSetupNote span{font-size:10px;color:#89979d}.waSetupNote code{font-size:10px;word-break:break-all;color:#087d79}.waConfigShortcut{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#f6f9f9;border:1px solid #e4ebed;border-radius:12px}.waConfigShortcut div{display:flex;flex-direction:column;gap:4px}.waConfigShortcut b{font-size:12px;color:#344b53}.waConfigShortcut span{font-size:11px;color:#87959b}.waAutomationCard{margin-top:18px;padding:22px}.waAutomationCard .sectionHeading{margin-bottom:18px}@media(max-width:1100px){.whatsappGrid{grid-template-columns:1fr}.waInboxLayout{height:540px}}@media(max-width:700px){.whatsappPage{padding:18px}.whatsappHero{align-items:flex-start;gap:12px;flex-direction:column}.waInboxLayout{grid-template-columns:1fr;height:auto}.waConversationList{height:260px;border-right:0;border-bottom:1px solid #e7edef}.waThread{height:520px}.waConfigShortcut{align-items:flex-start;gap:10px;flex-direction:column}}


/* v1.21.4 - WhatsApp reception controls responsive fix */
.profileActions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  max-width:100%;
}
.profileActions button{
  flex:0 0 auto;
  min-width:0;
}
.waSetupCard .profileActions{
  width:100%;
}
@media (max-width: 1100px){
  .whatsappGrid{
    grid-template-columns:minmax(0,1fr);
  }
  .waSetupCard .profileActions{
    flex-wrap:wrap;
  }
  .waSetupCard .profileActions button{
    flex:1 1 220px;
  }
}


/* WhatsApp Bandeja PRO 1.21.6 */
.waToolbar{padding:12px 18px;border-bottom:1px solid #e7edef;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.waSearch{display:flex;align-items:center;gap:7px;border:1px solid #dce6e8;border-radius:10px;padding:0 10px;min-width:230px;flex:1;background:#fff}.waSearch span{font-size:18px;color:#89979d}.waSearch input{border:0;outline:0;padding:10px 4px;width:100%;font-size:12px}.waFilters{display:flex;gap:5px;flex-wrap:wrap}.waFilters button{border:1px solid #e1e9eb;background:#fff;border-radius:999px;padding:7px 10px;color:#66777e;font-size:10px;font-weight:800;cursor:pointer}.waFilters button.active{background:#e9f7f3;border-color:#bce6dc;color:#087d70}.waFilters b{margin-left:3px}.waConversation{position:relative}.waConversation.unread b{font-weight:900;color:#233e46}.waConversation.unread span{color:#526970}.waUnreadDot{width:8px;height:8px;border-radius:50%;background:#1ab394;position:absolute;right:9px;top:13px}.waPatientMini{padding:8px 18px;background:#f7faf9;border-bottom:1px solid #e7edef;display:flex;gap:7px;align-items:center;font-size:10px}.waPatientMini b{color:#087d70}.waPatientMini span{color:#829196}.waThreadPatient{display:flex;gap:6px;align-items:center}.waThreadPatient .ghost{white-space:nowrap}
@media(max-width:700px){.waToolbar{align-items:stretch}.waSearch{min-width:100%}.waFilters{width:100%}}

/* v1.22.0 · WhatsApp integrado con paciente y agenda */
.waPatientPanel{background:#fff;border-bottom:1px solid #e7edef;padding:12px 16px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:14px;align-items:center}.waPatientIdentity{display:flex;gap:9px;align-items:center}.waPatientIdentity>div:last-child{display:flex;flex-direction:column;gap:3px;min-width:0}.waPatientIdentity b{font-size:12px;color:#344b53}.waPatientIdentity span{font-size:10px;color:#87959b}.waPatientAppointment{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#f7faf9;border:1px solid #e4eeeb;border-radius:11px;padding:9px 11px}.waPatientAppointment>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}.waPatientAppointment small{font-size:8px;font-weight:900;color:#087d70;letter-spacing:.05em}.waPatientAppointment strong{font-size:11px;color:#40545b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.waPatientAppointment span{font-size:9px;color:#87959b}.waPatientActions{display:flex;gap:5px;flex:none}.waQuickReplies{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 14px;background:#f4f8f8;border-bottom:1px solid #e7edef}.waQuickReplies>span{font-size:9px;font-weight:800;color:#7b8b91;margin-right:2px}.waQuickReplies button{border:1px solid #dbe6e8;background:#fff;border-radius:999px;padding:6px 9px;font-size:9px;color:#52676e;cursor:pointer}.waQuickReplies button:hover{background:#e9f7f3;border-color:#bce6dc;color:#087d70}.waPatientActions .small,.waThreadPatient .small{font-size:9px;padding:6px 8px}@media(max-width:900px){.waPatientPanel{grid-template-columns:1fr}.waPatientAppointment{align-items:flex-start}}@media(max-width:700px){.waPatientAppointment{flex-direction:column}.waPatientActions{width:100%}.waPatientActions button{flex:1}}

/* v1.22.1 WhatsApp + Agenda */
.waAgendaMini{margin:10px 0;border:1px solid #e3e8ed;border-radius:14px;padding:12px;background:#fbfcfd}.waAgendaMiniHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.waAgendaMiniHead h4{margin:3px 0 0;font-size:16px}.waNextAppointment{display:flex;align-items:center;gap:10px;margin-top:10px;padding:10px;border-radius:11px;background:#fff;border:1px solid #e5eaee}.waNextIcon{font-size:22px}.waNextInfo{display:flex;flex-direction:column;gap:3px;flex:1}.waNextInfo b{font-size:14px}.waNextInfo span{font-size:12px;color:#687782}.waAgendaMini .small{padding:8px 11px;font-size:12px}

.waAutomationMini{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid #dce8ea;border-radius:10px;background:#f7fbfb;margin:8px 12px;font-size:12px}.waAutomationMini b{font-size:11px;text-transform:uppercase;letter-spacing:.04em}.waAutomationMini span{color:#60727a}

/* v1.23.2 · WhatsApp clean desktop layout */
.whatsappHeroActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.whatsappHeroActions .secondary{white-space:nowrap}
.whatsappPage{padding:24px 28px 30px}
.whatsappPage>.waInboxCard{width:100%;min-width:0}
.waInboxLayout{height:calc(100vh - 265px);min-height:520px;grid-template-columns:320px minmax(0,1fr);overflow:hidden}
.waThread{min-width:0;min-height:0;overflow:hidden}
.waMessages{min-height:0}
.waCardHead{padding:16px 20px}
.waToolbar{padding:10px 16px}
/* Settings stay available without occupying the main WhatsApp workspace. */
.waSettingsModal{width:min(980px,92vw);max-height:82vh;overflow:auto;padding:4px}
.waSettingsModal h2{margin:4px 0 5px;color:#334950}
.waSettingsModal>p{margin:0 0 16px}
.waSettingsSection{border:1px solid #e1e9eb;border-radius:14px;background:#fff;margin:10px 0;overflow:hidden}
.waSettingsSection>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 16px}
.waSettingsSection>summary::-webkit-details-marker{display:none}
.waSettingsSection>summary>span:first-child{display:flex;flex-direction:column;gap:3px}
.waSettingsSection>summary b{font-size:13px;color:#344b53}
.waSettingsSection>summary small{font-size:10px;color:#87959b}
.waSettingsState{font-size:10px;font-weight:800;color:#087d70;background:#e9f7f3;padding:6px 9px;border-radius:999px;white-space:nowrap}
.waSettingsBody{padding:0 16px 16px;border-top:1px solid #edf1f2}
.waSettingsBody .profileActions{margin-top:12px}
.waSettingsModal .modalActions{justify-content:flex-end;margin-top:12px}
@media(max-width:900px){.whatsappHeroActions{justify-content:flex-start}.waInboxLayout{height:calc(100vh - 300px);grid-template-columns:280px minmax(0,1fr)}}
@media(max-width:700px){.whatsappPage{padding:18px}.whatsappHeroActions{width:100%;justify-content:space-between}.waInboxLayout{height:auto;min-height:0;grid-template-columns:1fr;overflow:visible}.waConversationList{height:260px;border-right:0;border-bottom:1px solid #e7edef}.waThread{height:520px}.waSettingsModal{width:94vw;max-height:86vh}}

/* v1.23.3 · WhatsApp estable y sin desbordamiento */
.whatsappPage{box-sizing:border-box;width:100%;max-width:100%;min-width:0;overflow:hidden}
.whatsappPage *{box-sizing:border-box}
.whatsappHero{min-width:0}
.whatsappHero>div:first-child{min-width:0}
.whatsappHeroActions{flex:0 0 auto}
.waInboxCard{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.waInboxLayout{width:100%;max-width:100%;min-width:0;height:calc(100vh - 265px);min-height:500px;overflow:hidden}
.waConversationList,.waThread{min-width:0;min-height:0}
.waThreadHeader,.waPatientPanel,.waQuickReplies,.waAgendaMini{min-width:0}
.waMessages{min-width:0;overflow-y:auto;overflow-x:hidden}
.waMsgBubble{overflow-wrap:anywhere;word-break:break-word}
.waComposer{min-width:0}
.waComposer input{min-width:0}
.waSettingsModal{box-sizing:border-box;max-width:calc(100vw - 40px);max-height:calc(100vh - 40px);overflow:auto}
@media(max-width:900px){
  .whatsappPage{padding:18px}
  .whatsappHero{align-items:flex-start;flex-direction:column}
  .whatsappHeroActions{width:100%;justify-content:flex-start}
  .waInboxLayout{height:calc(100vh - 315px);min-height:500px;grid-template-columns:280px minmax(0,1fr)}
}
@media(max-width:700px){
  .whatsappPage{padding:14px}
  .waInboxLayout{height:auto;min-height:0;grid-template-columns:1fr;overflow:visible}
  .waConversationList{height:250px;border-right:0;border-bottom:1px solid #e7edef}
  .waThread{height:520px}
  .waSettingsModal{max-width:94vw;max-height:88vh}
}

/* v1.23.6 · WhatsApp messages fixed scroll area */
.waInboxLayout{min-height:0;overflow:hidden}
.waThread{min-height:0;height:100%;overflow:hidden}
.waMessages{flex:1 1 0%;height:0;min-height:0;max-height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scroll-behavior:auto}
.waMsgRow{flex:0 0 auto}
.waMsgBubble{max-width:min(75%,720px);overflow-wrap:anywhere;word-break:break-word}
@media(max-width:700px){.waThread{height:520px;min-height:520px}.waMessages{height:0;min-height:0}}

/* v1.23.7 · WhatsApp: panel de mensajes con scroll interno real */
.waInboxCard{
  min-height:0 !important;
  overflow:hidden !important;
}
.waInboxLayout{
  display:grid !important;
  grid-template-columns:310px minmax(0,1fr) !important;
  height:calc(100vh - 265px) !important;
  min-height:500px !important;
  overflow:hidden !important;
}
.waThread{
  min-width:0 !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
}
.waMessages{
  min-width:0 !important;
  min-height:0 !important;
  height:auto !important;
  max-height:none !important;
  flex:1 1 0 !important;
  overflow-y:scroll !important;
  overflow-x:hidden !important;
  padding:20px !important;
  overscroll-behavior:contain !important;
  -webkit-overflow-scrolling:touch !important;
}
.waMsgRow{
  flex:0 0 auto !important;
}
@media(max-width:900px){
  .waInboxLayout{
    height:calc(100vh - 300px) !important;
    min-height:500px !important;
    grid-template-columns:280px minmax(0,1fr) !important;
  }
}
@media(max-width:700px){
  .waInboxLayout{
    height:auto !important;
    min-height:0 !important;
    grid-template-columns:1fr !important;
    overflow:visible !important;
  }
  .waThread{
    height:520px !important;
    min-height:520px !important;
  }
  .waMessages{
    min-height:0 !important;
    flex:1 1 0 !important;
  }
}

/* v1.23.8 · WhatsApp: viewport fijo y scroll independiente */
.app.whatsapp-view{height:100vh;min-height:0;overflow:hidden}
.app.whatsapp-view .side{position:fixed;left:0;top:0;bottom:0;height:100vh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin}
.app.whatsapp-view .main{height:100vh;min-height:0;overflow:hidden}
.app.whatsapp-view .chatPage{height:100%;min-height:0;display:flex;flex-direction:column}
.app.whatsapp-view .chatHero{flex:none}
.app.whatsapp-view .chatApp{height:calc(100vh - 190px);min-height:0;flex:1;overflow:hidden}
.app.whatsapp-view .chatPanel,.app.whatsapp-view .chatContent,.app.whatsapp-view .chatThread{min-height:0}
.app.whatsapp-view .messageArea{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.app.whatsapp-view .chatConversationList{min-height:0;overflow-y:auto;overscroll-behavior:contain}
@media(max-width:1000px){.app.whatsapp-view .side{width:70px}.app.whatsapp-view .main{margin-left:70px;width:calc(100% - 70px)}}
@media(max-width:700px){.app.whatsapp-view{height:auto;min-height:100vh;overflow:visible}.app.whatsapp-view .main{height:auto;min-height:100vh;overflow:visible}.app.whatsapp-view .chatPage{height:auto}.app.whatsapp-view .chatApp{height:auto;min-height:0}}

/* v1.23.9 · WhatsApp: permitir desplazamiento de la página sin perder el scroll interno */
.app.whatsapp-view{
  height:auto !important;
  min-height:100vh !important;
  overflow:visible !important;
}
.app.whatsapp-view .main{
  height:auto !important;
  min-height:100vh !important;
  overflow:visible !important;
}
.app.whatsapp-view .side{
  position:fixed !important;
  top:0 !important;
  bottom:0 !important;
  height:100vh !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
}
.app.whatsapp-view .chatPage{
  min-height:100vh !important;
  height:auto !important;
}
.app.whatsapp-view .chatApp{
  height:calc(100vh - 190px) !important;
  min-height:500px !important;
  overflow:hidden !important;
}
@media(max-width:700px){
  .app.whatsapp-view .chatApp{height:auto !important;min-height:0 !important;overflow:visible !important}
}
