/* ACCESO del portal · GENERADA por tools/ui2/base-core.mjs --hoja login (migración única desde la hoja original).
   Sin un solo color: lo visual viene del pack del tenant (--tenant-*), MAESTRA 0329 H2. */
@font-face{font-family:KyomuLato;src:url('./fonts/lato-regular.ttf');font-weight:400;font-display:swap}@font-face{font-family:KyomuLato;src:url('./fonts/lato-bold.ttf');font-weight:700;font-display:swap}@font-face{font-family:KyomuBrand;src:url('./fonts/montserrat-light.ttf');font-weight:300;font-display:swap}
kyomu-login{display:block;width:100%;max-width:390px;margin-inline:auto;color:var(--tenant-d-c5a9aa9541, var(--tenant-texto));font-family:var(--tenant-d-a94363a81f, var(--tenant-fuente-texto));font-size:14px;line-height:1.4;color-scheme:dark;--kl-green:var(--tenant-d-37a7b2a2aa, var(--tenant-fondo));--kl-muted:var(--tenant-d-b8b91da094, var(--tenant-texto-suave));--kl-gold:var(--tenant-d-f3336a73dc, var(--tenant-primario));--kl-border:var(--tenant-d-f9b7bd65e4, color-mix(in srgb, var(--tenant-borde) 50.2%, transparent));--kl-radius:15px}kyomu-login *{box-sizing:border-box}kyomu-login button,kyomu-login input{font:inherit}kyomu-login button,kyomu-login a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}kyomu-login button{cursor:pointer}kyomu-login button:disabled{cursor:default;opacity:.55}kyomu-login button:focus-visible,kyomu-login a:focus-visible,kyomu-login input:focus-visible{outline:2px solid var(--tenant-d-8bd6455682, var(--tenant-foco));outline-offset:4px}kyomu-login h1,kyomu-login h2,kyomu-login p{margin:0}kyomu-login svg{width:22px;height:22px;flex:none}kyomu-login [hidden]{display:none!important}.kl-shell{position:relative;isolation:isolate;overflow:hidden;min-height:844px;min-height:max(844px,100svh);padding:60px 20px 28px;padding-top:calc(60px + env(safe-area-inset-top));background:radial-gradient(ellipse at 57% 0,var(--tenant-d-dac4a1828f, color-mix(in srgb, var(--tenant-realce) 40%, transparent)),transparent 19%),radial-gradient(ellipse at 0 12%,var(--tenant-d-6306013f42, color-mix(in srgb, var(--tenant-superficie) 50.2%, transparent)),transparent 40%),radial-gradient(ellipse at 96% 70%,var(--tenant-d-b8fe800bb7, color-mix(in srgb, var(--tenant-superficie) 40%, transparent)),transparent 28%),var(--tenant-d-4b5870bcfb, var(--tenant-fondo))}.kl-shell:before,.kl-shell:after{content:'';z-index:-1;position:absolute;pointer-events:none;background:var(--tenant-d-910db2e3db, var(--tenant-imagen-cabecera)) center/contain no-repeat}.kl-shell:before{width:192px;height:214px;right:32px;top:-46px;opacity:.85}.kl-shell:after{width:285px;height:410px;left:-137px;bottom:-40px;transform:rotate(175deg);opacity:.8}.kl-header{position:relative;margin:0 8px 21px}.kl-brand{font:300 37px/1.15 var(--tenant-d-948a533c8e, var(--tenant-fuente-titulos));letter-spacing:2px;white-space:nowrap}.kl-brand small{display:block;font:400 9px/1.5 var(--tenant-d-a2b799d77c, var(--tenant-fuente-texto));letter-spacing:1.9px;margin-top:5px}.kl-mantra{position:absolute;top:24px;right:0;font-size:8px;letter-spacing:1.5px;line-height:1.5;color:var(--tenant-d-6ee65cef2f, var(--tenant-texto-suave))}.kl-mantra:after{content:'';display:block;height:1px;width:15px;background:var(--tenant-d-082146daab, var(--tenant-realce));margin-top:7px}.kl-header h1{margin-top:34px;font-size:25px;line-height:1.2;letter-spacing:-.4px}.kl-welcome{margin-top:4px!important;font-size:16px;color:var(--kl-muted);letter-spacing:.1px;white-space:nowrap}.kl-welcome span{font-size:23px;color:var(--tenant-d-df8ed6a974, var(--tenant-texto-suave));vertical-align:middle;margin-left:2px}.kl-card{position:relative;padding:23px 21px 18px;border:1px solid var(--kl-border);border-radius:var(--kl-radius);background:radial-gradient(ellipse at 98% 0,var(--tenant-d-ef074646a4, color-mix(in srgb, var(--tenant-realce) 27.1%, transparent)),transparent 49%),radial-gradient(ellipse at 0 0,var(--tenant-d-5fdf89fd59, color-mix(in srgb, var(--tenant-superficie) 29%, transparent)),transparent 65%),linear-gradient(120deg,var(--tenant-d-bc6431e712, color-mix(in srgb, var(--tenant-fondo-2) 80%, transparent)),var(--tenant-d-87d4f46daa, color-mix(in srgb, var(--tenant-fondo) 80%, transparent)));box-shadow:inset 0 1px 0 var(--tenant-d-ef7f368a6d, color-mix(in srgb, var(--tenant-sombra) 5.1%, transparent)),0 12px 30px var(--tenant-d-46400fef84, color-mix(in srgb, var(--tenant-sombra) 31.4%, transparent));overflow:hidden}.kl-card:before{content:'';position:absolute;inset:auto auto -36px -42px;width:180px;height:180px;background:var(--tenant-d-ae5134256f, var(--tenant-textura-tarjeta)) center/contain no-repeat;transform:rotate(85deg);opacity:.7;pointer-events:none}.kl-card>*{position:relative}.kl-card-heading{display:flex;align-items:center;gap:18px;margin-bottom:20px}.kl-user{width:42px;height:42px;display:grid;place-items:center;border:1.5px solid var(--tenant-d-114d39178e, var(--tenant-borde));border-radius:50%;flex:none}.kl-user svg{width:26px;height:26px}.kl-card h2{font-size:21px;line-height:1.15;font-weight:700}.kl-card-heading p{font-size:13px;color:var(--tenant-d-69dae749fa, var(--tenant-texto));margin-top:3px}.kl-field{display:flex;align-items:center;min-width:0;gap:15px;position:relative;border:1px solid var(--tenant-d-8f117184bb, color-mix(in srgb, var(--tenant-borde) 53.3%, transparent));border-radius:10px;background:linear-gradient(100deg,var(--tenant-d-a94515ed1a, color-mix(in srgb, var(--tenant-superficie) 29%, transparent)),var(--tenant-d-e2b385a230, color-mix(in srgb, var(--tenant-superficie) 22%, transparent)));min-height:45px;margin-top:10px;padding:10px 14px;box-shadow:inset 0 1px 1px var(--tenant-d-43c0f516b2, color-mix(in srgb, var(--tenant-sombra) 9.4%, transparent))}.kl-field:focus-within{border-color:var(--tenant-d-5d40059c70, var(--tenant-borde));box-shadow:0 0 0 3px var(--tenant-d-f39d78a43a, color-mix(in srgb, var(--tenant-sombra) 8.6%, transparent))}.kl-field>svg{width:21px;height:21px;color:var(--tenant-d-6184acdd65, var(--tenant-texto))}.kl-field input{color:var(--tenant-d-aa6a73e82d, var(--tenant-texto));background:none;border:0;outline:none!important;min-width:0;width:100%;font-size:16px;padding:0;line-height:1.4}.kl-field input::placeholder{color:var(--tenant-d-dca823025b, var(--tenant-texto-suave));font-size:14px;opacity:1}.kl-field input:-webkit-autofill{-webkit-text-fill-color:var(--tenant-d-1a8745d572, var(--tenant-realce));box-shadow:0 0 0 60px var(--tenant-d-dddbd6abb8, var(--tenant-sombra)) inset;border-radius:5px}.kl-eye{display:grid;place-items:center;border:0;padding:0;background:none;color:var(--tenant-d-77fcdf8153, var(--tenant-texto));width:26px;height:26px;flex:none}.kl-eye[aria-pressed=true]{color:var(--tenant-d-334f49b81c, var(--tenant-texto-sobre-primario))}.kl-options{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:12px 0 20px;font-size:12px}.kl-options>label{display:flex;align-items:center;gap:7px;white-space:nowrap}.kl-options input{accent-color:var(--tenant-d-94bd91b17e, var(--tenant-secundario));width:18px;height:18px;margin:0}.kl-text{color:var(--tenant-d-430f40bd7e, var(--tenant-texto));background:none;border:0;padding:0;font-size:12px;text-decoration:underline;text-underline-offset:4px}.kl-primary,.kl-secondary{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;min-height:42px;padding:10px 12px;border-radius:30px;font-size:15px;font-weight:700;transition:transform .18s,filter .18s}.kl-primary{border:1px solid var(--tenant-d-64e4c90fb4, color-mix(in srgb, var(--tenant-primario) 60%, transparent));background:linear-gradient(105deg,var(--tenant-d-9317a96c41, var(--tenant-primario)),var(--tenant-d-161213af9b, var(--tenant-primario)) 53%,var(--tenant-d-37358f0136, var(--tenant-primario)));color:var(--tenant-d-f4b8d1f1c8, var(--tenant-texto-sobre-primario));margin-top:19px}.kl-primary:hover{filter:brightness(1.06)}.kl-primary:active,.kl-secondary:active{transform:scale(.985)}.kl-secondary{border:1px solid var(--tenant-d-677ace8f70, var(--tenant-borde));background:var(--tenant-d-446d45aeec, color-mix(in srgb, var(--tenant-fondo-2) 20%, transparent));color:var(--tenant-d-2417d4fa7f, var(--tenant-texto));margin-top:10px;min-height:38px;font-size:14px}.kl-divider{display:flex;align-items:center;gap:15px;margin:16px 0}.kl-divider span{flex:1;height:1px;background:var(--tenant-d-3ccd42a5cf, var(--tenant-realce))}.kl-divider i{font-style:normal;font-size:13px}.kl-secure{display:flex;align-items:center;justify-content:center;gap:11px}.kl-secure>svg{width:24px;height:28px}.kl-secure p{font-size:12px}.kl-secure small{display:block;color:var(--tenant-d-7c04c602a5, var(--tenant-texto-suave));font-size:10px;margin-top:2px}.kl-contact{border:1px solid var(--kl-border);border-radius:12px;background:linear-gradient(120deg,var(--tenant-d-fc181fefac, color-mix(in srgb, var(--tenant-superficie) 33.3%, transparent)),var(--tenant-d-d807ad11b3, color-mix(in srgb, var(--tenant-superficie) 20%, transparent)));padding:19px 14px;margin:30px auto 0;min-width:247px;width:max-content;max-width:100%}
/* MAESTRA 1216 (6): la etiqueta de WhatsApp en UNA línea. La caja mide 247px (mínimo) y solo crece si la tipografía de la clínica es más ancha; con la de Kyomu no cambia. */
.kl-contact a{white-space:nowrap}.kl-contact a,.kl-contact button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:38px;border:1px solid var(--tenant-d-de96f8ed58, var(--tenant-borde));border-radius:30px;background:var(--tenant-d-674a125ad2, color-mix(in srgb, var(--tenant-superficie) 18.8%, transparent));font-size:12px;font-weight:700;color:var(--tenant-d-be828ba5ab, var(--tenant-texto));text-decoration:none;padding:8px}.kl-contact svg{width:19px;height:19px}.kl-contact svg:first-child{width:22px;height:22px}.kl-help{margin-top:10px!important;color:var(--tenant-d-5605d54d36, var(--tenant-texto));font-size:12px}.kl-footer{display:flex;align-items:center;justify-content:center;gap:12px;margin:59px auto 0;max-width:225px;padding-bottom:env(safe-area-inset-bottom)}.kl-footer span{width:40px;height:1px;background:var(--tenant-d-22776614dc, color-mix(in srgb, var(--tenant-realce) 53.3%, transparent))}.kl-footer p{font-size:8px;letter-spacing:1.5px;text-align:center;line-height:1.7;white-space:nowrap}.kl-error{padding:10px 12px;margin-top:12px!important;border:1px solid var(--tenant-d-3ecc81459f, color-mix(in srgb, var(--tenant-error) 46.7%, transparent));border-radius:10px;background:var(--tenant-d-e7b609b100, color-mix(in srgb, var(--tenant-error) 20%, transparent));color:var(--tenant-d-f935fbef16, var(--tenant-error));font-size:13px;line-height:1.45}.kl-status{font-size:12px;color:var(--tenant-d-654ac4ad3d, var(--tenant-texto));margin:10px 0!important}.kl-back,.kl-resend{display:block;margin:17px auto 0;min-height:30px}.kl-description{font-size:14px;color:var(--tenant-d-b0bd5c5e49, var(--tenant-texto));margin-bottom:16px!important;overflow-wrap:anywhere}.kl-result{padding:6px 0 8px;font-size:14px;color:var(--tenant-d-b0e0a55432, var(--tenant-texto));line-height:1.6}.kl-result>svg{display:block;width:38px;height:38px;margin:5px auto 18px;color:var(--tenant-d-cfbe30540e, var(--tenant-texto))}.kl-result p+p{margin-top:12px}.kl-hint{color:var(--tenant-d-cdeaf58dd7, var(--tenant-texto-suave));font-size:12px;margin:8px 0!important}.kl-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.kl-demo{margin-top:20px!important;text-align:center;color:var(--tenant-d-ff51f1d4c8, var(--tenant-texto-suave));font-size:11px}.kl-card-heading{animation:kl-enter .24s ease-out}@keyframes kl-enter{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){kyomu-login *,kyomu-login *:before,kyomu-login *:after{animation:none!important;transition:none!important}}kyomu-login [data-motion=off] *{animation:none!important;transition:none!important}@media(max-width:350px){.kl-shell{padding-inline:14px;padding-top:45px}.kl-header{margin-inline:5px}.kl-brand{font-size:31px}.kl-brand small{font-size:7px;letter-spacing:1.6px}.kl-mantra{font-size:7px;top:12px}.kl-header h1{font-size:22px}.kl-welcome{font-size:13px;white-space:normal}.kl-card{padding:21px 17px}.kl-card-heading{gap:12px}.kl-card h2{font-size:20px}.kl-card-heading p{font-size:12px}.kl-options{font-size:11px;flex-wrap:wrap;row-gap:12px}.kl-text{font-size:11px}.kl-field{gap:11px;padding-inline:12px}.kl-footer{margin-top:45px}}@media(min-width:600px){kyomu-login{box-shadow:0 0 80px var(--tenant-d-1b58b0b510, color-mix(in srgb, var(--tenant-sombra) 33.3%, transparent))}}
/* Reference composition at 390 × 844; native status bar belongs to the device. */
.kl-header{margin-bottom:15px}.kl-header h1{margin-top:24px;font-size:24px}.kl-welcome{line-height:22px}.kl-welcome span{font-size:18px;line-height:1}.kl-options{margin-bottom:0}.kl-card-heading{margin-bottom:18px}.kl-primary{padding-block:9px}.kl-secondary{padding-block:8px}.kl-shell{padding-bottom:18px}
@media(max-width:350px){.kl-header h1{font-size:22px}}
/* E2E-D43 en el login (PORTALE2E, 24-sep; mismo criterio que la cabecera de PORTALSHELL b1b78bf333): una marca larga no pisa el
   mantra de la esquina. El mantra se queda con su esquina y un ancho máximo; la marca, con el resto, y se corta con «…». */
.kl-mantra{max-width:38%}
/* MAESTRA 3020 (PROD): el tope era el 62 % de la cabecera y solo cabía justo a 390 px (la lámina 05): en un móvil más estrecho el subtítulo de la marca
   («CENTRO DE BIENESTAR INTEGRAL») salía cortado. Ahora deja libre solo lo que ocupa la frase de la derecha («VEN A CUIDARTE», unos 50 px). */
.kl-brand{max-width:calc(100% - 64px);overflow:hidden;text-overflow:ellipsis}
/* RUN24-C · E8: lo opcional que falta no aparece (MAESTRA 0329). Sin mantra o sin pie en la marca del tenant, sus rayas
   decorativas tampoco (el componente pinta el contenedor vacío). */
.kl-mantra:empty,.kl-footer:has(>p:empty){display:none}
/* E8 parte 2 (MAESTRA 0457): sin enlace de WhatsApp del servidor, ni botón ni su caja. */
.kl-contact:empty{display:none}
