
/* iOS-inspired finish: system typography, translucent chrome and grouped controls. */
:root{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Segoe UI',sans-serif;--ios-surface:rgba(255,255,255,.76);--ios-border:rgba(255,255,255,.85);--ios-shadow:0 12px 36px -18px #203d3826,0 1px 2px #203d3808}
body{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit}h1{font-weight:700;letter-spacing:-.055em}h2,h3{font-weight:650}h1 em,h2 em,.auth-story h2 em{font-family:inherit;font-style:normal;font-weight:600;letter-spacing:inherit}.nav,.top,header.top{border-radius:26px;background:var(--ios-surface);border:1px solid var(--ios-border);box-shadow:var(--ios-shadow),inset 0 1px 0 #ffffff70;backdrop-filter:blur(28px) saturate(165%);-webkit-backdrop-filter:blur(28px) saturate(165%)}.card,.detail-panel,.stat{border-radius:28px;box-shadow:var(--ios-shadow);border-width:1px}.button,button,.btn{border-radius:999px;min-height:44px;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.button:hover,button:hover,.btn:hover{transform:none}.button:active,button:active,.btn:active{transform:scale(.98)}input:not([type=checkbox]):not([type=radio]),select,textarea{border-radius:14px;min-height:46px;font-size:16px}input[type=checkbox],input[type=radio]{accent-color:var(--green,var(--accent,#0f8f6f))}.badge{border-radius:999px}.tabs{border-radius:19px;gap:4px;backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%)}.tabs button{border-radius:14px;min-height:44px}.tabs button[aria-selected=true],.tabs button.active{box-shadow:0 2px 7px #10291d15,inset 0 1px #ffffff50}.agenda-preview,.opportunity-window{transform:none;border-radius:30px;box-shadow:0 32px 65px -28px #203f3759,0 0 0 5px #ffffff50}.floating-note,.review-note{transform:none;border-radius:23px;background:var(--ios-surface);border:1px solid var(--ios-border);backdrop-filter:blur(24px) saturate(165%);-webkit-backdrop-filter:blur(24px) saturate(165%);box-shadow:var(--ios-shadow)}.week-strip .chosen{border-radius:15px}.appointment,.opportunity-example{border-radius:16px}.preview-top,.window-top{padding-top:4px}.brand{font-weight:750}.eyebrow{letter-spacing:.11em}.closing-panel,.focus-panel{border-radius:32px}.faq-list details{padding:22px 0}.faq-list summary{min-height:24px}.tabs button .icon svg{width:21px;height:21px;display:block}dialog{border-radius:30px;box-shadow:0 32px 100px #142b3340}dialog::backdrop{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}button:disabled{transform:none}.pw-toggle,.pw-toggle:hover,.pw-toggle:active{transform:translateY(-50%);min-height:44px;min-width:44px;border-radius:10px}.legal-nav a{min-height:38px;display:inline-flex;align-items:center}
@media(max-width:750px){.nav,.top,header.top{top:max(8px,env(safe-area-inset-top));border-radius:22px}.card,.stat,.detail-panel{border-radius:24px}.hero h1{font-size:clamp(52px,11vw,70px)}.advisory-hero h1{font-size:clamp(35px,8.7vw,48px)}.floating-note,.review-note{border-radius:20px}dialog{width:calc(100% - 16px);max-height:88dvh;border-radius:28px;padding:25px 22px}.tabs{scroll-margin-top:100px}.scene-caption,.scene-disclaimer{font-size:9px}}
@media(prefers-reduced-motion:reduce){button,.button,.btn{transition:none!important;transform:none!important}.pw-toggle{transform:translateY(-50%)!important}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.nav,.top,header.top,.floating-note,.review-note{background:var(--ios-solid,#fff);backdrop-filter:none;-webkit-backdrop-filter:none}.card,.stat,.detail-panel{border-color:currentColor}}

body:not(.ios-app){background:radial-gradient(ellipse 750px 500px at 95% 5%,#dce9e03b,transparent),#f5f6f2}.hero h1{line-height:1.05}.hero h1 em{color:#658566}.hero-note{font-size:12px}.hero .lead{font-size:17px}.scene-orbit{opacity:.8}.auth-story .mini-agenda{transform:none;border-radius:26px}.ios-app header.top{background:#18342ac9;--ios-border:#9fb3a025}.ios-app .tabs{background:#233e31cf;border:1px solid #a5c19d25}.ios-app .tabs button.active{background:#89a97826}.ios-app .card{box-shadow:0 15px 35px -18px #0005,inset 0 1px #ffffff06}.ios-app .auth-form>h1,.ios-app .premium-intro h1{font-weight:700}.ios-app .auth-story h2{font-weight:650;letter-spacing:-.055em}.ios-app .auth-story h2 em{color:#bcd69e}.ios-app .foot{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
@media(prefers-color-scheme:light){.ios-app{--bg:#f2f4ef;--bg-glow:radial-gradient(ellipse 900px 650px at 0 0,#e0e9d988,transparent);--surface:linear-gradient(145deg,#ffffffeb,#f9fcf7e6);--surface-flat:#f0f3ec;--surface-row:#e8eee2;--ink:#1c392b;--ink-soft:#61755f;--ink-faint:#6e7d68;--line:#34482a15;--line-strong:#34482a29;color-scheme:light;--ios-solid:#f6f8f2}.ios-app header.top{background:#ffffffb8;--ios-border:#fff}.ios-app .card{box-shadow:var(--ios-shadow),inset 0 1px #fff}.ios-app .tabs{background:#e8eee1e0;border-color:#d7e1ce}.ios-app .tabs button{color:#65765e}.ios-app .tabs button.active{background:#fff;color:#36572c}.ios-app .auth-kicker,.ios-app .auth-story p,.ios-app .premium-intro p,.ios-app .field label,.ios-app .foot{color:#5a7056}.ios-app .auth-story h2 em{color:#6e8c52}.ios-app .mini-agenda{background:linear-gradient(140deg,#e8efde,#f4f7ee);border-color:#dae4cf}.ios-app .mini-agenda>span{color:#607953}.ios-app .salon-cover{background:radial-gradient(ellipse at 60% 30%,#c1d8a9,#90ab7c)}.ios-app .salon-cover:after{background:linear-gradient(0deg,#f9fcf7,transparent 85%)}.ios-app .auth-form a,.ios-app .forgot-link,.ios-app .auth-form>.muted a{color:#3f6834}.ios-app .auth-legal{color:#61755f}}
@media(prefers-color-scheme:dark){.ios-app{--ios-solid:#1c3328}}
@media(max-width:750px){.ios-app .tabs{margin:0 12px max(8px,env(safe-area-inset-bottom));padding-bottom:10px}.ios-app:has(.tabs) .wrap{padding-bottom:calc(var(--tabbar-h) + 40px + env(safe-area-inset-bottom))}.hero .lead{font-size:16px}}

@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.ios-app header.top{background:var(--ios-solid,#1c3328)}}
/* CitasYa identity refresh: Apple system blue, indigo and neutral titanium. */
:root{--green:#0a84ff;--orange:#5e5ce6;--accent:#0a84ff;--accent-2:#64d2ff;--accent-dark:#0066cc;--accent-ink:#fff}
body.ios-app{--bg:#0b0b10;--bg-glow:radial-gradient(ellipse 900px 620px at 92% -8%,rgba(10,132,255,.18),transparent 68%),radial-gradient(ellipse 760px 600px at -18% 72%,rgba(94,92,230,.12),transparent 72%);--surface:linear-gradient(145deg,#222228,#151519);--surface-flat:#1c1c21;--surface-row:#24242a;--ink:#f5f5f7;--ink-soft:#aeaeb2;--ink-faint:#8e8e93;--line:rgba(255,255,255,.1);--line-strong:rgba(255,255,255,.18);--ios-surface:rgba(28,28,32,.72);--ios-border:rgba(255,255,255,.11);--ios-solid:#1c1c20;--ios-shadow:0 18px 48px -24px rgba(0,0,0,.8),inset 0 1px rgba(255,255,255,.06);color-scheme:dark}
body.ios-app header.top{background:rgba(25,25,29,.72);--ios-border:rgba(255,255,255,.11)}
body.ios-app .tabs{background:rgba(28,28,34,.72);border-color:rgba(255,255,255,.1)}
body.ios-app .tabs button{color:#aeaeb2}
body.ios-app .tabs button.active{background:rgba(10,132,255,.15);color:#64d2ff}
body.ios-app .auth-kicker,body.ios-app .premium-intro p,body.ios-app .field label,body.ios-app .foot{color:#aeaeb2}
body.ios-app .auth-story h2 em{color:#64d2ff}
body.ios-app .auth-story .mini-agenda{background:linear-gradient(145deg,rgba(10,132,255,.18),rgba(94,92,230,.12));border-color:rgba(100,210,255,.18)}
body.ios-app .mini-agenda>span{color:#9bdcff}
body.ios-app .mini-agenda div{background:#0a84ff;color:#fff}
body.ios-app .salon-cover{background:radial-gradient(ellipse at 60% 30%,#3a66a5,#151b2a)}
body.ios-app .salon-cover:after{background:linear-gradient(0deg,#151519,transparent 85%)}
body.ios-app .auth-form a,body.ios-app .forgot-link,body.ios-app .auth-form>.muted a{color:#64d2ff}
body.ios-app input[type=checkbox],body.ios-app input[type=radio]{accent-color:#0a84ff}
body:not(.ios-app){--ink:#1c1c1e;--muted:#636366;--line:#d8d8de;background:radial-gradient(circle at 92% 2%,rgba(10,132,255,.12),transparent 32%),radial-gradient(circle at 4% 44%,rgba(94,92,230,.08),transparent 30%),#f2f2f7;color:var(--ink)}
body:not(.ios-app) .brand span,body:not(.ios-app) .brand-mark,body:not(.ios-app) .eyebrow,body:not(.ios-app) h1 em,body:not(.ios-app) h2 em,body:not(.ios-app) .text-link{color:#007aff}
body:not(.ios-app) .status-dot{background:#0a84ff;box-shadow:0 0 0 4px rgba(10,132,255,.1)}
body:not(.ios-app) .button:not(.secondary):not(.light),body:not(.ios-app) button:not(.secondary){background:linear-gradient(145deg,#168cff,#0066cc);color:#fff;box-shadow:0 12px 24px -15px rgba(0,122,255,.72)}
body:not(.ios-app) .button.secondary,body:not(.ios-app) button.secondary{background:rgba(255,255,255,.72);color:#1c1c1e;box-shadow:inset 0 0 0 1px rgba(60,60,67,.16)}
body:not(.ios-app) .scene-orbit{background:radial-gradient(circle at 35% 30%,#edf6ff,#d9e9ff 62%,transparent 72%)}
body:not(.ios-app) .week-strip .chosen,body:not(.ios-app) .time-art b.selected{background:#0a84ff;color:#fff}
body:not(.ios-app) .appointment.green{background:#e7f2ff;border-left-color:#0a84ff}
body:not(.ios-app) .notification-icon{background:#e4f2ff;color:#007aff}
body:not(.ios-app) .step-art{background:linear-gradient(135deg,#eef5ff,#f5f5fa)}
body:not(.ios-app) .confirm-art{background:#edf2fb}
body:not(.ios-app) .confirm-art>b{color:#007aff}
body:not(.ios-app) .focus-panel{background:radial-gradient(circle at 95% 98%,#5e5ce6,#172d58 64%)}
body:not(.ios-app) .focus-panel .eyebrow,body:not(.ios-app) .focus-panel h2 em{color:#b8dcff}
body:not(.ios-app) .detail-panel{background:linear-gradient(145deg,rgba(255,255,255,.84),rgba(236,241,250,.78));border-color:#dce3ef}
body:not(.ios-app) .feature-icon{border-color:#b7c9e4;color:#007aff}
body:not(.ios-app) .card.featured{background:radial-gradient(ellipse at 0 0,#234f91,#151d34 85%);border-color:#2f4f83}
body:not(.ios-app) .featured .badge{background:#dcecff;color:#174d88}
body:not(.ios-app) .feature-list li:before,body:not(.ios-app) .featured .feature-list li:before{color:#0a84ff}
body:not(.ios-app) .closing-panel{background:radial-gradient(ellipse at 50% 135%,#d7e9ff,transparent 70%),linear-gradient(135deg,#f5f7fb,#e9eef7);border-color:#dce3ed}
body:not(.ios-app) .legal-nav a{background:#e6f1ff}
body:not(.ios-app) input:focus,body:not(.ios-app) select:focus,body:not(.ios-app) textarea:focus{border-color:#0a84ff;box-shadow:0 0 0 3px rgba(10,132,255,.14)}
body.ios-app.theme-naranja,body.ios-app.theme-azul{--accent:#0a84ff;--accent-2:#64d2ff;--accent-dark:#0066cc;--accent-ink:#fff}
body.ios-app.theme-esmeralda{--accent:#64d2ff;--accent-2:#bfebff;--accent-dark:#0a84ff;--accent-ink:#071a2e}
body.ios-app.theme-morado{--accent:#bf5af2;--accent-2:#da8fff;--accent-dark:#8944ab;--accent-ink:#fff}
body.ios-app.theme-rosa{--accent:#ff375f;--accent-2:#ff87a0;--accent-dark:#c81d45;--accent-ink:#fff}
body.ios-app.theme-dorado{--accent:#8e8e93;--accent-2:#d1d1d6;--accent-dark:#636366;--accent-ink:#fff}
@media(prefers-color-scheme:light){
body.ios-app{--bg:#f2f2f7;--bg-glow:radial-gradient(ellipse 900px 650px at 92% -8%,rgba(10,132,255,.12),transparent 68%),radial-gradient(ellipse 700px 560px at -14% 70%,rgba(94,92,230,.07),transparent 72%);--surface:linear-gradient(145deg,rgba(255,255,255,.94),rgba(247,247,250,.88));--surface-flat:#f2f2f7;--surface-row:#e9e9ef;--ink:#1c1c1e;--ink-soft:#636366;--ink-faint:#8e8e93;--line:rgba(60,60,67,.12);--line-strong:rgba(60,60,67,.22);--ios-surface:rgba(255,255,255,.72);--ios-border:rgba(255,255,255,.86);--ios-solid:#fff;color-scheme:light}
body.ios-app header.top{background:rgba(255,255,255,.72);--ios-border:rgba(255,255,255,.88)}
body.ios-app .tabs{background:rgba(229,229,234,.72);border-color:rgba(60,60,67,.1)}
body.ios-app .tabs button{color:#636366}
body.ios-app .tabs button.active{background:#fff;color:#007aff}
body.ios-app .auth-kicker,body.ios-app .premium-intro p,body.ios-app .field label,body.ios-app .foot{color:#636366}
body.ios-app .auth-story .mini-agenda{background:linear-gradient(145deg,#e8f3ff,#f0efff);border-color:#d8e8fb}
body.ios-app .salon-cover{background:radial-gradient(ellipse at 60% 30%,#b7d8ff,#849fc8)}
body.ios-app .salon-cover:after{background:linear-gradient(0deg,#f8f8fb,transparent 85%)}
}
@media(prefers-color-scheme:dark){
body:not(.ios-app){--ink:#f5f5f7;--muted:#aeaeb2;--line:rgba(255,255,255,.1);background:radial-gradient(circle at 92% 2%,rgba(10,132,255,.17),transparent 34%),radial-gradient(circle at 4% 44%,rgba(94,92,230,.11),transparent 31%),#0b0b10;color:var(--ink)}
body:not(.ios-app) .button.secondary,body:not(.ios-app) button.secondary{background:rgba(44,44,48,.72);color:#f5f5f7;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
}
.whatsapp-reminder{display:inline-flex;align-items:center;margin-top:10px;padding:10px 15px;background:linear-gradient(145deg,#168cff,#0066cc)!important;color:#fff!important;border:0!important;box-shadow:0 10px 22px -14px rgba(0,132,255,.75)!important}
.reminder-permission{display:block;margin-top:6px;color:var(--ink-soft);font-size:10px}
.reminder-setup{border-left:0!important;border:1px solid color-mix(in srgb,var(--accent) 24%,transparent)!important;background:color-mix(in srgb,var(--accent) 9%,transparent)!important;border-radius:18px!important}.reminder-setup strong{font-size:12px}.reminder-setup p{margin:5px 0 0;color:var(--ink-soft);font-size:11px;line-height:1.65}
/* Dark-mode contrast correction for the public CitasYa site. */
@media(prefers-color-scheme:dark){
  body:not(.ios-app) .nav{
    background:rgba(28,28,32,.78);
    border-color:rgba(255,255,255,.12);
    color:#f5f5f7;
    box-shadow:0 18px 42px -24px rgba(0,0,0,.9),inset 0 1px rgba(255,255,255,.07);
  }
  body:not(.ios-app) .nav a:not(.button){color:#d1d1d6}
  body:not(.ios-app) .nav .brand,
  body:not(.ios-app) .nav .brand strong{color:#f5f5f7}
  body:not(.ios-app) .card:not(.featured),
  body:not(.ios-app) .detail-panel,
  body:not(.ios-app) .setup-card,
  body:not(.ios-app) .closing-panel{
    background:linear-gradient(145deg,rgba(36,36,42,.96),rgba(23,23,28,.96));
    border-color:rgba(255,255,255,.12);
    color:#f5f5f7;
    box-shadow:0 22px 48px -30px rgba(0,0,0,.95),inset 0 1px rgba(255,255,255,.06);
  }
  body:not(.ios-app) .card:not(.featured) h2,
  body:not(.ios-app) .card:not(.featured) h3,
  body:not(.ios-app) .detail-panel h2,
  body:not(.ios-app) .detail-panel h3,
  body:not(.ios-app) .closing-panel h2,
  body:not(.ios-app) .pricing-grid .card:not(.featured) .price,
  body:not(.ios-app) .pricing-grid .card:not(.featured) .price-subtitle{color:#f5f5f7}
  body:not(.ios-app) .card:not(.featured) p,
  body:not(.ios-app) .card:not(.featured) .muted,
  body:not(.ios-app) .detail-panel p,
  body:not(.ios-app) .closing-panel p,
  body:not(.ios-app) .pricing-grid .card:not(.featured) small{color:#b8b8c0}
  body:not(.ios-app) .pricing-grid .card:not(.featured) .feature-list{color:#e5e5ea}
  body:not(.ios-app) .pricing-grid .card:not(.featured) .price-subtitle{border-color:rgba(255,255,255,.14)}
  body:not(.ios-app) .agenda-preview{
    background:linear-gradient(145deg,#ffffff,#eef1f6);
    color:#1c1c1e;
    border-color:#fff;
  }
  body:not(.ios-app) .agenda-preview .eyebrow,
  body:not(.ios-app) .agenda-preview small,
  body:not(.ios-app) .agenda-preview time,
  body:not(.ios-app) .agenda-preview .week-strip>span{color:#52525a}
  body:not(.ios-app) .step-art{color:#1c1c1e}
  body:not(.ios-app) .step-art>span{color:#52525a}
  body:not(.ios-app) .step-art b:not(.selected){color:#1c1c1e}
  body:not(.ios-app) input,
  body:not(.ios-app) select,
  body:not(.ios-app) textarea{background:#1c1c21;color:#f5f5f7;border-color:rgba(255,255,255,.15)}
  body:not(.ios-app) .notice{background:#27231d;color:#f1e6d3;border-color:#51493d}
  body:not(.ios-app) footer,
  body:not(.ios-app) .site-footer p{color:#aeaeb2}
}
@media(prefers-color-scheme:dark){
  body:not(.ios-app) .nav{background-color:#1c1c20}
  body:not(.ios-app) .card:not(.featured),
  body:not(.ios-app) .detail-panel,
  body:not(.ios-app) .setup-card,
  body:not(.ios-app) .closing-panel{background-color:#1c1c21}
  body:not(.ios-app) .focus-panel{background-color:#172d58}
  body:not(.ios-app) .featured{background-color:#172448}
}


/* Solid colour fallbacks also make contrast measurable and resilient. */
body:not(.ios-app) .nav{background-color:#f5f5f7}
body:not(.ios-app) .card:not(.featured){background-color:#ffffff}
body:not(.ios-app) .detail-panel{background-color:#f0f3f8}
body:not(.ios-app) .setup-card{background-color:#ededef}
body:not(.ios-app) .focus-panel{background-color:#172d58}
body:not(.ios-app) .featured{background-color:#172448}
@media(prefers-color-scheme:dark){
 body:not(.ios-app) .nav{background-color:#1c1c20}
 body:not(.ios-app) .card:not(.featured),body:not(.ios-app) .detail-panel,body:not(.ios-app) .setup-card,body:not(.ios-app) .closing-panel{background-color:#1c1c21}
}


/* Portfolio and breathing room in the mobile configuration view. */
.config-stack{display:grid;gap:26px}.config-stack>.card{margin:0}
body.ios-app:has(.tabs) .wrap{padding-bottom:calc(var(--tabbar-h) + 72px + env(safe-area-inset-bottom))}
.portfolio-manager{margin-top:30px;padding-top:26px;border-top:1px solid var(--line)}
.portfolio-manager-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.portfolio-manager-item{position:relative;aspect-ratio:1;margin:0;border-radius:17px;overflow:hidden;background:var(--surface-flat);border:1px solid var(--line)}
.portfolio-manager-item img{width:100%;height:100%;object-fit:cover;display:block}
.portfolio-remove{position:absolute;right:6px;top:6px;width:30px;min-width:30px;min-height:30px;padding:0;border-radius:999px;background:rgba(15,15,18,.78);color:#fff;border:1px solid rgba(255,255,255,.3);font-size:20px;line-height:1}
.portfolio-empty{grid-column:1/-1;padding:22px;border:1px dashed var(--line-strong);border-radius:17px;color:var(--ink-soft);text-align:center;font-size:13px}
.client-portfolio{margin:24px 0 30px}.client-portfolio-heading{display:flex;align-items:end;justify-content:space-between;margin:0 4px 13px}.client-portfolio-heading span{font-size:10px;letter-spacing:.14em;font-weight:750;color:var(--accent)}.client-portfolio-heading h2{margin:0;font-size:18px;color:var(--ink)}
.client-portfolio-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(148px,42%);gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 3px 9px;scrollbar-width:none}.client-portfolio-track::-webkit-scrollbar{display:none}
.client-portfolio-photo{scroll-snap-align:start;aspect-ratio:4/5;min-height:0;padding:0;overflow:hidden;border-radius:22px;border:1px solid var(--line-strong);background:var(--surface-flat);box-shadow:0 12px 28px -18px #000}.client-portfolio-photo img{width:100%;height:100%;object-fit:cover;display:block}
.portfolio-dialog{width:min(92vw,620px);max-height:88dvh;padding:0;overflow:visible;border:0;background:transparent}.portfolio-dialog img{display:block;width:100%;max-height:84dvh;object-fit:contain;border-radius:26px}.portfolio-dialog button{position:absolute;right:10px;top:10px;z-index:2;width:38px;min-width:38px;min-height:38px;padding:0;border-radius:50%;background:rgba(15,15,18,.72);color:#fff;border:1px solid rgba(255,255,255,.32);font-size:25px}.portfolio-dialog::backdrop{background:rgba(0,0,0,.74);backdrop-filter:blur(12px)}
@media(max-width:750px){.config-stack{gap:30px}.portfolio-manager-grid{grid-template-columns:repeat(3,1fr)}.client-portfolio-track{grid-auto-columns:46%}}

body:not(.ios-app) .floating-note{color:#1c1c1e} body:not(.ios-app) .floating-note strong{color:#1c1c1e} body:not(.ios-app) .floating-note small{color:#636366}



/* ==========================================================================
   Corrección de contraste — 12/09/2026
   Medido con un navegador real sobre los píxeles ya renderizados (no leyendo
   el CSS): 49 incumplimientos reales de WCAG AA, 18 de ellos graves. Ninguno
   de los colores de abajo está elegido a ojo — cada uno se calculó para
   superar 4.5:1 en texto normal y 3:1 en texto grande contra el fondo que de
   verdad queda detrás, degradados incluidos.

   Tres causas de raíz, que conviene recordar antes de tocar colores otra vez:

   1. Reglas de color que viven FUERA de cualquier media query. El valor
      pensado para oscuro se aplicaba también en claro. Es lo que dejaba los
      enlaces de login y registro en cian #64d2ff sobre fondo blanco: 1.4:1,
      literalmente ilegibles, y nadie lo había visto porque en oscuro se ven
      bien.
   2. El bloque de corrección de oscuro de más arriba no cubría .legal-nav,
      que se quedaba con el chip claro #e6f1ff y el texto blanco heredado de
      --ink: 1.05:1. Es el fallo que se ve a simple vista en legal.html.
   3. El refresco de identidad a azul iOS no llegó a todas las reglas: varias
      seguían con los verdes de la marca anterior (.step-number, .eyebrow,
      .scene-caption, .preview-menu, .button.light), que además de desentonar
      no llegaban al mínimo sobre los fondos nuevos.
   ========================================================================== */

/* --- 1. Chips de la navegación legal ------------------------------------ */
/* Antes: 1.05:1 en oscuro (texto blanco heredado sobre chip azul claro). */
body:not(.ios-app) .legal-nav a{background:#e6f1ff;color:#0066cc}          /* 4.87 */
@media(prefers-color-scheme:dark){
  body:not(.ios-app) .legal-nav a{background:#1f2733;color:#e9eef7}        /* 12.92 */
}

/* --- 2. Azul de texto: un valor por esquema ------------------------------ */
/* #007aff sobre blanco sólo da 4.02, y sobre #f2f2f7 baja a 3.60. */
body:not(.ios-app) .eyebrow,
body:not(.ios-app) .text-link,
body:not(.ios-app) .feature-icon,
body:not(.ios-app) .notification-icon,
body:not(.ios-app) h1 em,
body:not(.ios-app) h2 em,
body:not(.ios-app) .brand span{color:#0066cc}                              /* 5.57 sobre blanco */
@media(prefers-color-scheme:dark){
  body:not(.ios-app) .eyebrow,
  body:not(.ios-app) .text-link,
  body:not(.ios-app) .feature-icon,
  body:not(.ios-app) h1 em,
  body:not(.ios-app) h2 em,
  body:not(.ios-app) .brand span{color:#5aabff}                            /* 6.56 sobre #222228 */
}
/* El icono de notificación conserva su pastilla clara en los dos esquemas. */
body:not(.ios-app) .notification-icon{background:#e4f2ff;color:#0066cc}    /* 4.89 */
/* Los de dentro del panel azul oscuro ya cumplían: no se tocan. */
body:not(.ios-app) .focus-panel .eyebrow,
body:not(.ios-app) .focus-panel h2 em{color:#b8dcff}

/* --- 3. Botones sólidos: el blanco necesita un azul más profundo --------- */
/* El degradado anterior arrancaba en #168cff, que con texto blanco da 3.37. */
body:not(.ios-app) .button:not(.secondary):not(.light),
body:not(.ios-app) button:not(.secondary):not(.light),
.whatsapp-reminder{background:linear-gradient(145deg,#0a70d4,#00529f)!important}  /* 4.91 en su punto más claro */

/* --- 4. Restos de la identidad verde anterior --------------------------- */
/* Desentonaban con el azul y además no llegaban al mínimo. */
body:not(.ios-app) .step-number{color:#6b6b75}                             /* antes #869174: 2.89 */
body:not(.ios-app) .scene-caption{color:#5a5a64}                           /* antes #778573: 3.21 */
body:not(.ios-app) .button.light{background:#dceaff;color:#0b3d73}         /* antes verde #e5edcc */
@media(prefers-color-scheme:dark){
  body:not(.ios-app) .step-number{color:#9aa0ab}
  body:not(.ios-app) .scene-caption{color:#9aa0ab}
}

/* --- 5. Texto apagado dentro de la agenda de ejemplo --------------------- */
/* Esa tarjeta se pinta clara en los DOS esquemas, así que su texto apagado
   necesita el mismo valor oscuro siempre, no sólo en el bloque de oscuro. */
body:not(.ios-app) .agenda-preview .eyebrow,
body:not(.ios-app) .agenda-preview small,
body:not(.ios-app) .preview-appointment time,
body:not(.ios-app) .preview-menu,
body:not(.ios-app) .agenda-preview .week-strip>span{color:#5a5a63}         /* 6.3 sobre blanco */
body:not(.ios-app) .week-strip .chosen,
body:not(.ios-app) .week-strip .chosen em,
body:not(.ios-app) .time-art b.selected{background:#0066cc;color:#fff}     /* 5.57, antes 3.65 */

/* --- 6. Pistas y textos de apoyo de los formularios --------------------- */
body:not(.ios-app) .hint{color:#6b6b75}                                    /* antes #8e8e93: 3.15 */

/* --- 7. Páginas de acceso (.ios-app) en esquema CLARO ------------------- */
/* Aquí estaba el fallo más serio y el menos visible: estas reglas no tenían
   variante clara, así que el cian pensado para el fondo oscuro se pintaba
   sobre blanco. Ratios de 1.4 a 1.66 — texto invisible en la práctica. */
@media(prefers-color-scheme:light){
  body.ios-app .auth-form a,
  body.ios-app .forgot-link,
  body.ios-app .auth-form>.muted a,
  body.ios-app .auth-legal a,
  body.ios-app .auth-story h2 em{color:#0066cc}                            /* 5.57, antes 1.4-1.66 */
  body.ios-app .mini-agenda>span{color:#0b3d73}
  body.ios-app .hint,
  body.ios-app .auth-legal{color:#6b6b75}
}

/* --- 8. Bloque de soporte del pie -------------------------------------- */
/* El correo se muestra como texto seleccionable en vez de esconderse tras un
   mailto: que no abre nada si no hay cliente de correo configurado. */
.soporte{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap}
.soporte button{min-height:34px;padding:7px 14px;font-size:12px;border-radius:999px}
.soporte #correoSoporte,.soporte .correo{user-select:all;-webkit-user-select:all}

/* --- 9. Fondo del elemento raíz ---------------------------------------- */
/* comercial.css y premium.css pintan :root con el crema verdoso de la marca
   anterior (#faf7f0 / #f6f7f0). Como <html> tiene fondo propio, el de <body>
   deja de propagarse al lienzo: asomaba una franja clara de 16-40px sobre la
   barra de navegación en TODAS las páginas y en los dos esquemas, y era lo
   que se veía al hacer scroll elástico en el móvil. Va aquí, al final, para
   ganar por orden de cascada sin subir especificidad. */
/* Ojo con la especificidad: premium.css lo declara en :root, que es una
   pseudo-clase (0,1,0) y gana a un selector de tipo `html` (0,0,1) aunque
   éste vaya después. Hay que responder con :root, no con html. */
:root{background:#f2f2f7}
@media(prefers-color-scheme:dark){
  :root{background:#0b0b10}
}
