/* =========================================================
   SOFI PATIENT MANAGER · PORTAL UI v0.2
   Nutrición Sofía Ottaviano · Hello Elementor safe
   Mobile first / estilos encapsulados en .sofi-pm
========================================================= */
body.sofi-pm-page .page-header{display:none!important}
body.sofi-pm-page .site-main,
body.sofi-pm-page main#content,
body.sofi-pm-page .page-content{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}

.sofi-pm{
  --spm-bg:#f6f1e8;
  --spm-bg-soft:#fffaf4;
  --spm-surface:#fffdfa;
  --spm-white:#ffffff;
  --spm-text:#2b2724;
  --spm-muted:#6f665d;
  --spm-line:#ddd0c0;
  --spm-pink:#e83d9b;
  --spm-pink-dark:#cf2f85;
  --spm-green:#95a56b;
  --spm-green-dark:#738252;
  --spm-brown:#6f625d;
  --spm-dark:#191716;
  --spm-radius-lg:34px;
  --spm-radius:26px;
  --spm-radius-sm:18px;
  --spm-shadow:0 22px 54px rgba(43,39,36,.10);
  --spm-shadow-soft:0 12px 30px rgba(43,39,36,.065);
  --spm-font:Inter,Arial,Helvetica,sans-serif;
  --spm-title:Montserrat,Inter,Arial,Helvetica,sans-serif;
  position:relative;
  width:100%;
  max-width:100%;
  min-height:420px;
  color:var(--spm-text);
  font-family:var(--spm-font);
  line-height:1.55;
  box-sizing:border-box;
}
.sofi-pm,.sofi-pm *,.sofi-pm *::before,.sofi-pm *::after{box-sizing:border-box}
.sofi-pm a{text-decoration:none!important}
.sofi-pm svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sofi-pm h1,.sofi-pm h2,.sofi-pm h3{font-family:var(--spm-title);color:var(--spm-text);font-weight:900;letter-spacing:-.035em}
.sofi-pm p{color:var(--spm-muted)}

/* PORTAL SHELL */
.sofi-pm--portal{
  background:
    radial-gradient(circle at 92% 4%,rgba(232,61,155,.07),transparent 28%),
    radial-gradient(circle at 8% 92%,rgba(149,165,107,.11),transparent 34%),
    var(--spm-bg);
  padding:0 0 94px;
}
.sofi-pm__shell{width:100%;max-width:1180px;margin:0 auto;padding:18px 14px;display:grid;grid-template-columns:1fr;gap:18px}
.sofi-pm__sidebar{display:none}
.sofi-pm__main{min-width:0;width:100%}

/* MOBILE APP HEADER */
.sofi-pm__mobilehead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;padding:13px 4px 10px}
.sofi-pm__mobilehead div{display:grid;gap:1px}
.sofi-pm__mobilehead small{color:var(--spm-muted);font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.sofi-pm__mobilehead strong{font-family:var(--spm-title);font-size:1rem;color:var(--spm-text)}
.sofi-pm__avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--spm-brown);color:#fff;font-size:.78rem;font-weight:900;box-shadow:0 8px 22px rgba(43,39,36,.14)}

/* TITLES */
.sofi-pm__top{display:grid;gap:16px;margin:0 0 20px}
.sofi-pm__top h1,.sofi-pm__bookinghead h1{margin:7px 0 8px;font-size:clamp(2rem,9vw,2.65rem);line-height:1.04;letter-spacing:-.045em}
.sofi-pm__top p,.sofi-pm__bookinghead p{margin:0;color:var(--spm-muted);font-size:.98rem;line-height:1.62}
.sofi-pm__eyebrow{display:inline-flex;width:max-content;max-width:100%;align-items:center;justify-content:center;margin:0;padding:7px 13px;border-radius:999px;background:var(--spm-brown);color:#fff!important;font-size:.75rem;font-weight:900;line-height:1.1;letter-spacing:.01em;text-transform:none}

/* CARDS */
.sofi-pm__card{position:relative;width:100%;margin:0 0 14px;padding:22px 18px;border:1px solid rgba(221,208,192,.95);border-radius:22px;background:rgba(255,253,250,.96);box-shadow:var(--spm-shadow-soft);overflow:hidden}
.sofi-pm__card h2{margin:0 0 10px;font-size:1.34rem;line-height:1.16}
.sofi-pm__card p{margin:0 0 10px;line-height:1.6}
.sofi-pm__card p:last-child{margin-bottom:0}
.sofi-pm__next{background:radial-gradient(circle at 100% 0,rgba(232,61,155,.09),transparent 32%),rgba(255,253,250,.97);border-color:rgba(221,208,192,.95)}
.sofi-pm__next::before{content:"";position:absolute;left:0;top:0;width:6px;height:100%;background:linear-gradient(180deg,var(--spm-pink),var(--spm-green))}
.sofi-pm__next h2{margin:10px 0 8px;font-size:1.55rem}
.sofi-pm__next strong{color:var(--spm-text)}

/* BUTTONS */
.sofi-pm__btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:50px;width:auto;max-width:100%;padding:13px 20px;border:1px solid var(--spm-pink)!important;border-radius:999px!important;background:var(--spm-pink)!important;color:#fff!important;font-family:var(--spm-font)!important;font-size:.94rem!important;font-weight:900!important;line-height:1.15!important;text-align:center;cursor:pointer;box-shadow:0 14px 30px rgba(232,61,155,.21);transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease,color .2s ease}
.sofi-pm__btn:hover,.sofi-pm__btn:focus{background:var(--spm-pink-dark)!important;border-color:var(--spm-pink-dark)!important;color:#fff!important;transform:translateY(-1px);box-shadow:0 17px 34px rgba(232,61,155,.25)}
.sofi-pm__btn--soft{background:#fff!important;color:var(--spm-text)!important;border-color:#d8c8b7!important;box-shadow:0 8px 20px rgba(43,39,36,.04)}
.sofi-pm__btn--soft:hover{background:#fff!important;color:var(--spm-green-dark)!important;border-color:var(--spm-green)!important;box-shadow:0 10px 24px rgba(43,39,36,.06)}
.sofi-pm__btn--ghost{background:transparent!important;color:var(--spm-pink)!important;border-color:rgba(232,61,155,.38)!important;box-shadow:none}
.sofi-pm__btn--ghost:hover{background:rgba(232,61,155,.07)!important;color:var(--spm-pink-dark)!important}
.sofi-pm__btn--large{width:100%;min-height:56px;font-size:1rem!important}
.sofi-pm__textlink{color:var(--spm-muted)!important;font-weight:800;font-size:.9rem}
.sofi-pm__textlink:hover{color:var(--spm-pink)!important}
.sofi-pm__profile-actions{text-align:center;padding:10px 0 2px}

/* HOME TILES */
.sofi-pm__tiles{display:grid;grid-template-columns:1fr;gap:12px;margin-top:14px}
.sofi-pm__tile{position:relative;display:grid;gap:4px;min-height:108px;padding:20px 19px;border:1px solid rgba(221,208,192,.95);border-radius:20px;background:rgba(255,253,250,.94);color:var(--spm-text)!important;box-shadow:0 10px 26px rgba(43,39,36,.05);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.sofi-pm__tile::after{content:"›";position:absolute;right:17px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(232,61,155,.09);color:var(--spm-pink);font-size:1.3rem;font-weight:900}
.sofi-pm__tile:hover{transform:translateY(-2px);border-color:rgba(232,61,155,.28);box-shadow:0 16px 34px rgba(43,39,36,.075)}
.sofi-pm__tile strong{display:block;padding-right:38px;font-family:var(--spm-title);font-size:1.04rem;font-weight:900}
.sofi-pm__tile span{display:block;padding-right:38px;color:var(--spm-muted);font-size:.86rem;line-height:1.45}

/* APPOINTMENTS */
.sofi-pm__appointment-list{display:grid;gap:12px}
.sofi-pm__appointment{position:relative;display:grid;gap:16px;padding:20px 18px;border:1px solid rgba(221,208,192,.95);border-radius:20px;background:rgba(255,253,250,.96);box-shadow:0 10px 28px rgba(43,39,36,.05)}
.sofi-pm__appointment h3{margin:9px 0 5px;font-size:1.1rem;line-height:1.2}
.sofi-pm__appointment p{margin:0;color:var(--spm-muted);font-size:.92rem}
.sofi-pm__appointment small{display:block;margin-top:9px;color:var(--spm-muted);line-height:1.45}
.sofi-pm__appointment-actions{display:grid;grid-template-columns:1fr;gap:8px}
.sofi-pm__appointment-actions form{margin:0}
.sofi-pm__appointment-actions .sofi-pm__btn{width:100%;min-height:46px}
.sofi-pm__status{display:inline-flex;align-items:center;width:max-content;padding:5px 9px;border-radius:999px;background:#eee;color:#5e5955;font-size:.68rem;text-transform:uppercase;font-weight:900;letter-spacing:.04em}
.sofi-pm__status--confirmed{background:rgba(149,165,107,.16);color:#5f6d40}
.sofi-pm__status--cancelled{background:rgba(232,61,155,.09);color:#a63170}

/* FORMS */
.sofi-pm__form{display:grid;grid-template-columns:1fr;gap:15px}
.sofi-pm__field{display:flex;flex-direction:column;gap:7px;min-width:0}
.sofi-pm__field>span{color:var(--spm-text);font-size:.8rem;font-weight:900}
.sofi-pm__field input,.sofi-pm__field select,.sofi-pm__field textarea{appearance:none;width:100%!important;max-width:100%!important;min-height:50px!important;margin:0!important;padding:13px 14px!important;border:1px solid var(--spm-line)!important;border-radius:15px!important;background:#fff!important;color:var(--spm-text)!important;font-family:var(--spm-font)!important;font-size:16px!important;line-height:1.35!important;box-shadow:none!important;outline:none!important}
.sofi-pm__field textarea{min-height:118px!important;resize:vertical}
.sofi-pm__field input:focus,.sofi-pm__field select:focus,.sofi-pm__field textarea:focus{border-color:var(--spm-pink)!important;box-shadow:0 0 0 3px rgba(232,61,155,.10)!important}
.sofi-pm__form-full{grid-column:1/-1}

/* BOOKING */
.sofi-pm--booking,.sofi-pm--auth{background:radial-gradient(circle at 90% 5%,rgba(232,61,155,.07),transparent 30%),radial-gradient(circle at 10% 95%,rgba(149,165,107,.10),transparent 32%),var(--spm-bg);padding:34px 14px 54px}
.sofi-pm__bookinghead{width:100%;max-width:900px;margin:0 auto 22px}
.sofi-pm__bookingform{width:100%;max-width:900px;margin:0 auto}
.sofi-pm__bookingform>.sofi-pm__card{counter-increment:spm-step}
.sofi-pm__choicegrid{display:grid;grid-template-columns:1fr;gap:10px}
.sofi-pm__choice{position:relative;display:block;cursor:pointer}
.sofi-pm__choice input{position:absolute!important;opacity:0!important;pointer-events:none!important}
.sofi-pm__choice span{position:relative;display:block;min-height:104px;padding:18px 48px 18px 17px;border:1px solid var(--spm-line);border-radius:18px;background:#fff;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease,transform .18s ease}
.sofi-pm__choice span::after{content:"";position:absolute;right:17px;top:20px;width:22px;height:22px;border:2px solid #d7cbc0;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 5px #fff}
.sofi-pm__choice strong{display:block;margin-bottom:6px;color:var(--spm-text);font-size:1rem;font-weight:900}
.sofi-pm__choice small{display:block;color:var(--spm-muted);font-size:.84rem;line-height:1.42}
.sofi-pm__choice input:checked+span{border-color:var(--spm-pink);background:rgba(232,61,155,.035);box-shadow:0 0 0 3px rgba(232,61,155,.09);transform:translateY(-1px)}
.sofi-pm__choice input:checked+span::after{border-color:var(--spm-pink);background:var(--spm-pink)}
.sofi-pm__hint{margin-top:11px;color:var(--spm-muted);font-size:.82rem;line-height:1.4}
.sofi-pm__privacy{max-width:680px;margin:13px auto 0!important;color:var(--spm-muted)!important;font-size:.75rem!important;text-align:center;line-height:1.5!important}

/* ALERTS */
.sofi-pm__alert{width:calc(100% - 28px);max-width:900px;margin:14px auto 0;padding:14px 16px;border:1px solid transparent;border-radius:16px;font-size:.88rem;font-weight:800;line-height:1.45;box-shadow:0 8px 22px rgba(43,39,36,.04)}
.sofi-pm__alert--ok{background:#edf5ea;border-color:#d7e6cf;color:#536538}
.sofi-pm__alert--error{background:#fff0f5;border-color:#f4ccdf;color:#993368}

/* LOGIN */
.sofi-pm__authcard{width:100%;max-width:470px;margin:0 auto;padding:26px 20px;border:1px solid rgba(221,208,192,.95);border-radius:26px;background:rgba(255,253,250,.97);box-shadow:var(--spm-shadow)}
.sofi-pm__authcard h2{margin:8px 0;font-size:2rem;line-height:1.05}
.sofi-pm__authcard p{margin:0 0 22px;color:var(--spm-muted);line-height:1.55}
.sofi-pm__authcard label{color:var(--spm-text);font-size:.8rem;font-weight:900}
.sofi-pm__authcard input[type=text],.sofi-pm__authcard input[type=password]{width:100%!important;min-height:50px!important;margin:6px 0 13px!important;padding:13px 14px!important;border:1px solid var(--spm-line)!important;border-radius:15px!important;background:#fff!important;font-size:16px!important;box-shadow:none!important}
.sofi-pm__authcard input[type=submit]{width:100%!important;min-height:50px!important;margin-top:6px!important;padding:13px 20px!important;border:1px solid var(--spm-pink)!important;border-radius:999px!important;background:var(--spm-pink)!important;color:#fff!important;font-weight:900!important;cursor:pointer}
.sofi-pm__authcard .login-remember{display:flex;align-items:center;gap:8px;margin:3px 0 12px}
.sofi-pm__authcard .login-remember label{font-weight:700;color:var(--spm-muted)}
.sofi-pm__authlinks{display:grid;gap:10px;margin-top:18px;padding-top:17px;border-top:1px solid rgba(221,208,192,.7);font-size:.84rem;font-weight:800}
.sofi-pm__authlinks a{color:var(--spm-pink)!important}

/* MOBILE BOTTOM NAV */
.sofi-pm__mobilebar{position:fixed;z-index:999;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);align-items:end;min-height:68px;padding:7px 7px calc(6px + env(safe-area-inset-bottom)*.15);border:1px solid rgba(221,208,192,.88);border-radius:22px;background:rgba(255,253,250,.94);box-shadow:0 18px 48px rgba(43,39,36,.18);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.sofi-pm__mobilebar>a{display:grid;justify-items:center;align-content:center;gap:4px;min-width:0;min-height:52px;padding:6px 2px;border-radius:14px;color:#80766e!important;font-size:.62rem;font-weight:800;line-height:1;text-align:center}
.sofi-pm__mobilebar>a svg{width:20px;height:20px}
.sofi-pm__mobilebar>a.is-active{color:var(--spm-pink)!important;background:rgba(232,61,155,.06)}
.sofi-pm__mobilebar .sofi-pm__mobilebar-main{position:relative;top:-10px;color:#fff!important}
.sofi-pm__mobilebar-main svg{width:24px!important;height:24px!important;padding:11px;box-sizing:content-box;border-radius:50%;background:var(--spm-pink);color:#fff;box-shadow:0 12px 28px rgba(232,61,155,.35)}
.sofi-pm__mobilebar-main span{color:var(--spm-pink);font-weight:900}

@media(max-width:420px){
  .sofi-pm__shell{padding-left:12px;padding-right:12px}
  .sofi-pm__top h1,.sofi-pm__bookinghead h1{font-size:1.95rem}
  .sofi-pm__card{padding-left:17px;padding-right:17px}
  .sofi-pm__mobilebar{left:7px;right:7px}
}

@media(min-width:640px){
  .sofi-pm__shell{padding:24px 20px}
  .sofi-pm__top{grid-template-columns:minmax(0,1fr) auto;align-items:end}
  .sofi-pm__top>.sofi-pm__btn{justify-self:end}
  .sofi-pm__card{padding:26px;border-radius:26px}
  .sofi-pm__next{display:flex;align-items:center;justify-content:space-between;gap:26px}
  .sofi-pm__tiles{grid-template-columns:repeat(3,1fr);gap:14px}
  .sofi-pm__form{grid-template-columns:1fr 1fr;gap:16px}
  .sofi-pm__choicegrid{grid-template-columns:repeat(3,1fr);gap:12px}
  .sofi-pm__appointment{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:22px}
  .sofi-pm__appointment-actions{display:flex;align-items:center;justify-content:flex-end}
  .sofi-pm__appointment-actions .sofi-pm__btn{width:auto}
  .sofi-pm__authlinks{grid-template-columns:1fr auto}
}

@media(min-width:900px){
  .sofi-pm--portal{padding-bottom:0;min-height:720px}
  .sofi-pm__shell{grid-template-columns:244px minmax(0,1fr);gap:30px;padding-top:34px;padding-bottom:42px}
  .sofi-pm__sidebar{position:sticky;top:24px;align-self:start;display:flex;flex-direction:column;min-height:640px;padding:22px 16px;border-radius:30px;background:radial-gradient(circle at 30% 0,rgba(232,61,155,.12),transparent 30%),linear-gradient(180deg,#2b2724,var(--spm-dark));color:#fff;box-shadow:0 20px 50px rgba(43,39,36,.16)}
  .sofi-pm__brand{display:flex;align-items:center;gap:11px;padding:4px 7px 20px;margin-bottom:12px;border-bottom:1px solid rgba(255,255,255,.10)}
  .sofi-pm__brandmark{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:15px;background:linear-gradient(145deg,#d7b18b,#bd8d62);color:#fff;font-family:var(--spm-title);font-size:.78rem;font-weight:900;box-shadow:0 9px 20px rgba(0,0,0,.12)}
  .sofi-pm__brand div{display:grid;gap:2px;min-width:0}
  .sofi-pm__brand strong{color:#fff;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sofi-pm__brand small{color:rgba(255,255,255,.58);font-size:.67rem}
  .sofi-pm__desktopnav{display:grid;gap:5px}
  .sofi-pm__nav{display:flex;align-items:center;gap:11px;min-height:46px;padding:11px 13px;border-radius:15px;color:rgba(255,255,255,.72)!important;font-size:.86rem;font-weight:800;transition:background .18s ease,color .18s ease,transform .18s ease}
  .sofi-pm__nav svg{width:18px;height:18px;flex:0 0 18px}
  .sofi-pm__nav:hover,.sofi-pm__nav.is-active{background:rgba(255,255,255,.10);color:#fff!important;transform:translateX(1px)}
  .sofi-pm__nav.is-active{box-shadow:inset 3px 0 0 var(--spm-pink)}
  .sofi-pm__sidebarfoot{margin-top:auto;padding-top:16px;border-top:1px solid rgba(255,255,255,.10)}
  .sofi-pm__mobilehead,.sofi-pm__mobilebar{display:none}
  .sofi-pm__main{padding-top:7px}
  .sofi-pm__top{margin-bottom:25px}
  .sofi-pm__top h1,.sofi-pm__bookinghead h1{font-size:clamp(2.55rem,4vw,3.5rem)}
  .sofi-pm__bookinghead{margin-bottom:30px}
  .sofi-pm--booking,.sofi-pm--auth{padding-top:58px;padding-bottom:76px}
  .sofi-pm__bookingform>.sofi-pm__card{margin-bottom:18px}
}

@media(min-width:1100px){
  .sofi-pm__shell{gap:42px}
  .sofi-pm__sidebar{min-height:670px}
  .sofi-pm__card{padding:30px}
  .sofi-pm__appointment{padding:24px 26px}
}

/* v0.3 · pagos, créditos y cancelación */
.sofi-pm__payment-note{border-color:rgba(232,61,155,.20);background:radial-gradient(circle at 100% 0,rgba(232,61,155,.08),transparent 34%),var(--spm-surface)}
.sofi-pm__credit{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px 0 18px;padding:15px 18px;border:1px solid rgba(149,165,107,.28);border-radius:18px;background:rgba(149,165,107,.10)}
.sofi-pm__credit strong{color:var(--spm-green-dark)}.sofi-pm__credit span{font-weight:900;color:var(--spm-dark)}
.sofi-pm__meet{display:inline-flex;align-items:center;gap:8px;margin-top:12px;color:var(--spm-green-dark)!important;font-size:.86rem;font-weight:900}.sofi-pm__meet svg{width:19px;height:19px}
.sofi-pm__cancelbox{width:100%;border:1px solid rgba(207,47,133,.16);border-radius:16px;background:rgba(232,61,155,.04)}
.sofi-pm__cancelbox summary{cursor:pointer;list-style:none;padding:12px 14px;color:var(--spm-pink-dark);font-size:.82rem;font-weight:900;text-align:center}.sofi-pm__cancelbox summary::-webkit-details-marker{display:none}
.sofi-pm__cancelbox form{display:grid;gap:10px;padding:0 12px 12px}.sofi-pm__cancelbox .sofi-pm__field{margin:0}.sofi-pm__cancelbox textarea{min-height:68px}
.sofi-pm__status--pending_payment{background:rgba(202,165,123,.15)!important;color:#8c633b!important}.sofi-pm__status--needs_attention{background:rgba(232,61,155,.12)!important;color:var(--spm-pink-dark)!important}.sofi-pm__status--expired,.sofi-pm__status--payment_failed{background:rgba(111,102,93,.11)!important;color:#6f665d!important}
@media(min-width:640px){.sofi-pm__cancelbox{width:auto;min-width:190px}.sofi-pm__cancelbox summary{padding-left:18px;padding-right:18px}}

/* v0.4 · pago manual, comprobantes y obras sociales */
.sofi-pm__payment-flow{border-color:rgba(232,61,155,.18);background:radial-gradient(circle at 100% 0,rgba(232,61,155,.07),transparent 34%),var(--spm-surface)}
.sofi-pm__payment-timer{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:-4px 0 22px;padding:14px 16px;border-radius:16px;background:#2b2724;color:#fff}.sofi-pm__payment-timer span{font-size:.82rem;color:rgba(255,255,255,.7)}.sofi-pm__payment-timer strong{font-family:var(--spm-title);font-size:1.35rem;letter-spacing:-.03em}.sofi-pm__payment-timer.is-expired{background:#7a625f}
.sofi-pm__payment-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:22px}.sofi-pm__payment-summary>div{padding:13px 14px;border:1px solid rgba(221,208,192,.78);border-radius:15px;background:rgba(255,255,255,.72)}.sofi-pm__payment-summary span,.sofi-pm__payment-summary strong{display:block}.sofi-pm__payment-summary span{margin-bottom:4px;color:var(--spm-muted);font-size:.72rem}.sofi-pm__payment-summary strong{font-size:.9rem}
.sofi-pm__payment-steps{display:grid;gap:16px}.sofi-pm__payment-step{display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;padding:18px;border:1px solid rgba(221,208,192,.82);border-radius:20px;background:#fff}.sofi-pm__payment-step h3{margin:0 0 7px;font-family:var(--spm-title);font-size:1.05rem}.sofi-pm__payment-step p{margin:0 0 14px}.sofi-pm__stepnum{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(232,61,155,.11);color:var(--spm-pink);font-weight:900}
.sofi-pm__receipt-form{display:grid;gap:12px}.sofi-pm__receipt-form .sofi-pm__field{margin:0}.sofi-pm__payment-success{text-align:left}.sofi-pm__status--receipt_pending{background:rgba(232,61,155,.11)!important;color:var(--spm-pink-dark)!important}.sofi-pm__status--receipt_rejected{background:rgba(142,47,52,.12)!important;color:#8e2f34!important}
.sofi-pm__insurance-mini{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 auto 18px;max-width:960px;padding:13px 16px;border:1px solid rgba(149,165,107,.28);border-radius:18px;background:rgba(149,165,107,.09)}.sofi-pm__insurance-mini strong,.sofi-pm__insurance-mini span{display:block}.sofi-pm__insurance-mini span{margin-top:4px;color:var(--spm-muted);font-size:.78rem}.sofi-pm__insurance-mini a{color:var(--spm-green-dark)!important;font-weight:900;white-space:nowrap}
.sofi-pm__insurance-section{padding:34px 0;background:transparent}.sofi-pm__insurance-head{max-width:720px;margin-bottom:24px}.sofi-pm__insurance-head h2{margin:0 0 10px;font-family:var(--spm-title);font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.05}.sofi-pm__insurance-head p{margin:0;color:var(--spm-muted)}.sofi-pm__insurance-grid{display:flex;flex-wrap:wrap;gap:10px}.sofi-pm__insurance-card{min-width:180px;padding:14px 16px;border:1px solid rgba(221,208,192,.88);border-radius:16px;background:var(--spm-surface);box-shadow:0 8px 20px rgba(43,39,36,.04)}.sofi-pm__insurance-card strong,.sofi-pm__insurance-card span{display:block}.sofi-pm__insurance-card strong{font-family:var(--spm-title);font-size:.92rem}.sofi-pm__insurance-card span{margin-top:4px;color:var(--spm-muted);font-size:.72rem;line-height:1.35}.sofi-pm__insurance-cta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:20px}.sofi-pm__insurance-cta small{color:var(--spm-muted)}
@media(max-width:639px){.sofi-pm__payment-summary{grid-template-columns:1fr}.sofi-pm__payment-step{grid-template-columns:34px minmax(0,1fr);padding:15px}.sofi-pm__stepnum{width:32px;height:32px}.sofi-pm__insurance-mini{display:grid;gap:10px}.sofi-pm__insurance-mini a{white-space:normal}.sofi-pm__insurance-card{width:100%;min-width:0}.sofi-pm__insurance-cta{display:grid}.sofi-pm__insurance-cta .sofi-pm__btn{width:100%}}

/* =========================================================
   v0.7.1 · CALENDARIO VISUAL DE DISPONIBILIDAD
========================================================= */
.sofi-pm__availability-card{overflow:visible}
.sofi-pm__availability-lead{max-width:720px;margin:-2px 0 14px!important;color:var(--spm-muted)!important;font-size:.9rem!important;line-height:1.55!important}
.sofi-pm__schedule-summary{display:grid;gap:5px;margin:0 0 18px;padding:13px 15px;border:1px solid rgba(149,165,107,.30);border-radius:16px;background:rgba(149,165,107,.09);color:var(--spm-muted);font-size:.82rem;line-height:1.45}
.sofi-pm__schedule-summary strong{color:var(--spm-green-dark);font-size:.84rem}
.sofi-pm__calendar{width:100%;padding:14px;border:1px solid rgba(221,208,192,.92);border-radius:20px;background:#fff;box-shadow:0 10px 24px rgba(43,39,36,.045)}
.sofi-pm__calendar-head{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:8px;margin-bottom:12px}
.sofi-pm__calendar-head strong{font-family:var(--spm-title);font-size:1rem;text-align:center;color:var(--spm-text)}
.sofi-pm__calendar-nav{appearance:none;width:40px;height:40px;padding:0;border:1px solid var(--spm-line);border-radius:13px;background:#fff;color:var(--spm-text);font-size:1.55rem;line-height:1;cursor:pointer;box-shadow:none;transition:.18s ease}
.sofi-pm__calendar-nav:hover:not(:disabled){border-color:var(--spm-pink);color:var(--spm-pink);background:rgba(232,61,155,.04)}
.sofi-pm__calendar-nav:disabled{opacity:.28;cursor:not-allowed}
.sofi-pm__calendar-weekdays,.sofi-pm__calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.sofi-pm__calendar-weekdays{margin-bottom:5px}
.sofi-pm__calendar-weekdays span{padding:5px 0;color:var(--spm-muted);font-size:.64rem;font-weight:900;text-align:center;letter-spacing:.04em}
.sofi-pm__calendar-grid{min-height:260px;align-content:start}
.sofi-pm__calendar-blank{min-height:54px}
.sofi-pm__calendar-day{appearance:none;position:relative;display:grid;align-content:center;justify-items:center;gap:2px;min-width:0;min-height:54px;padding:5px 2px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--spm-text);font-family:var(--spm-font);cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease,opacity .16s ease}
.sofi-pm__calendar-number{font-size:.86rem;font-weight:900;line-height:1}
.sofi-pm__calendar-day small{display:block;max-width:100%;overflow:hidden;color:var(--spm-muted);font-size:.51rem;font-weight:800;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}
.sofi-pm__calendar-day.is-available{border-color:rgba(149,165,107,.42);background:rgba(149,165,107,.08)}
.sofi-pm__calendar-day.is-available::after{content:"";position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--spm-green)}
.sofi-pm__calendar-day.is-available:hover{transform:translateY(-1px);border-color:var(--spm-green-dark);background:rgba(149,165,107,.14);box-shadow:0 7px 16px rgba(115,130,82,.12)}
.sofi-pm__calendar-day.is-selected{border-color:var(--spm-pink)!important;background:rgba(232,61,155,.10)!important;box-shadow:0 0 0 2px rgba(232,61,155,.12)!important;color:var(--spm-pink-dark)}
.sofi-pm__calendar-day.is-selected::after{background:var(--spm-pink)}
.sofi-pm__calendar-day.is-full{border-color:rgba(232,61,155,.11);background:rgba(232,61,155,.035);opacity:.68}
.sofi-pm__calendar-day.is-full small{color:#a15b7d}
.sofi-pm__calendar-day.is-closed,.sofi-pm__calendar-day.is-outside{opacity:.28}
.sofi-pm__calendar-day:disabled{cursor:not-allowed}
.sofi-pm__calendar-loading{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:9px;min-height:230px;padding:20px;color:var(--spm-muted);font-size:.86rem;text-align:center}
.sofi-pm__calendar-loading.is-error{color:#993368}
.sofi-pm__spinner{width:18px;height:18px;border:2px solid rgba(111,102,93,.2);border-top-color:var(--spm-pink);border-radius:50%;animation:spmSpin .7s linear infinite}
@keyframes spmSpin{to{transform:rotate(360deg)}}
.sofi-pm__calendar-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:12px;padding-top:11px;border-top:1px solid rgba(221,208,192,.68);color:var(--spm-muted);font-size:.68rem;font-weight:800}
.sofi-pm__calendar-legend span{display:inline-flex;align-items:center;gap:6px}
.sofi-pm__calendar-legend i{display:inline-block;width:9px;height:9px;border-radius:50%}
.sofi-pm__calendar-legend i.is-available{background:var(--spm-green)}
.sofi-pm__calendar-legend i.is-full{background:rgba(232,61,155,.48)}
.sofi-pm__calendar-legend i.is-closed{background:#cfc7bf}
.sofi-pm__selected-date{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:12px 14px;border-radius:15px;background:rgba(232,61,155,.07);border:1px solid rgba(232,61,155,.16)}
.sofi-pm__selected-date span{color:var(--spm-muted);font-size:.72rem;font-weight:800}
.sofi-pm__selected-date strong{color:var(--spm-pink-dark);font-size:.86rem;text-align:right}
.sofi-pm__times{margin-top:18px}
.sofi-pm__times-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
.sofi-pm__times-head strong{color:var(--spm-text);font-size:.9rem}
.sofi-pm__times-head span{color:var(--spm-muted);font-size:.72rem;text-align:right}
.sofi-pm__time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sofi-pm__time{appearance:none;min-height:44px;padding:9px 8px;border:1px solid var(--spm-line);border-radius:13px;background:#fff;color:var(--spm-text);font-family:var(--spm-font);font-size:.82rem;font-weight:900;cursor:pointer;transition:.16s ease}
.sofi-pm__time:hover{border-color:var(--spm-green);background:rgba(149,165,107,.07)}
.sofi-pm__time.is-selected{border-color:var(--spm-pink);background:var(--spm-pink);color:#fff;box-shadow:0 8px 18px rgba(232,61,155,.22)}

@media(max-width:420px){
  .sofi-pm__calendar{padding:10px;border-radius:17px}
  .sofi-pm__calendar-weekdays,.sofi-pm__calendar-grid{gap:3px}
  .sofi-pm__calendar-day{min-height:49px;border-radius:10px;padding-left:1px;padding-right:1px}
  .sofi-pm__calendar-number{font-size:.8rem}
  .sofi-pm__calendar-day small{font-size:.45rem}
  .sofi-pm__calendar-day.is-available::after{top:4px;right:4px;width:5px;height:5px}
  .sofi-pm__time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sofi-pm__times-head{display:grid;gap:3px}.sofi-pm__times-head span{text-align:left}
  .sofi-pm__selected-date{display:grid}.sofi-pm__selected-date strong{text-align:left}
}

@media(min-width:640px){
  .sofi-pm__calendar{padding:18px}
  .sofi-pm__calendar-weekdays,.sofi-pm__calendar-grid{gap:7px}
  .sofi-pm__calendar-day{min-height:66px;border-radius:14px}
  .sofi-pm__calendar-number{font-size:.95rem}
  .sofi-pm__calendar-day small{font-size:.58rem}
  .sofi-pm__time-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
