/* Componente visual independiente. Todos los selectores están limitados a iv-. */
.iv-demo{margin:0}
.iv-access{--iv-bg:#fafcff;--iv-surface:#fff;--iv-ink:#10213d;--iv-muted:#53647c;--iv-border:#7b8ba2;--iv-blue:#0867d4;--iv-on-blue:#fff;--iv-hover:#0759ba;--iv-active:#064ea6;--iv-error:#b42318;--iv-error-bg:#fff1f0;--iv-glass:rgba(255,255,255,.64);--iv-glass-border:rgba(255,255,255,.85);--iv-line:#d9e2ee;--iv-scheme:light;--iv-light:block;--iv-dark:none}
@media(prefers-color-scheme:dark){.iv-access[data-theme="auto"]{--iv-bg:#101b2b;--iv-surface:#19283c;--iv-ink:#f2f6fd;--iv-muted:#b4c2d6;--iv-border:#788ba5;--iv-blue:#a5c4ff;--iv-on-blue:#10213d;--iv-hover:#bed4ff;--iv-active:#8eafe9;--iv-error:#ffb4ab;--iv-error-bg:#402429;--iv-glass:rgba(38,59,83,.78);--iv-glass-border:#7088a4;--iv-line:#35465d;--iv-scheme:dark;--iv-light:none;--iv-dark:block}}
.iv-access[data-theme="oscuro"]{--iv-bg:#101b2b;--iv-surface:#19283c;--iv-ink:#f2f6fd;--iv-muted:#b4c2d6;--iv-border:#788ba5;--iv-blue:#a5c4ff;--iv-on-blue:#10213d;--iv-hover:#bed4ff;--iv-active:#8eafe9;--iv-error:#ffb4ab;--iv-error-bg:#402429;--iv-glass:rgba(38,59,83,.78);--iv-glass-border:#7088a4;--iv-line:#35465d;--iv-scheme:dark;--iv-light:none;--iv-dark:block}
.iv-access,.iv-access *{box-sizing:border-box}
.iv-access{min-height:100svh;background:var(--iv-bg);color:var(--iv-ink);font-family:"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.5;color-scheme:var(--iv-scheme)}
.iv-access [hidden]{display:none!important}
.iv-access button,.iv-access input{font:inherit}
.iv-access button{cursor:pointer}
.iv-access :is(button,input):focus-visible{outline:3px solid var(--iv-blue);outline-offset:3px}
.iv-access button:disabled{cursor:wait}
.iv-panel{padding:38px 28px calc(52px + env(safe-area-inset-bottom,0px))}
.iv-content{width:100%;max-width:400px;margin:auto}
.iv-brand{width:140px;margin:0 auto}
.iv-brand img{width:100%;height:auto}
.iv-logo-light{display:var(--iv-light)}.iv-logo-dark{display:var(--iv-dark)}
.iv-photo-desktop{display:none}
.iv-photo-mobile{position:relative;height:144px;margin-top:33px}
.iv-photo-mobile picture{display:block;height:100%;border-radius:20px;overflow:hidden;background:var(--iv-surface)}
.iv-photo-mobile img{width:100%;height:100%;object-fit:cover;object-position:center}
.iv-glass{position:absolute;z-index:1;right:-10px;top:-21px;width:62px;height:88px;display:grid;place-items:center;background:var(--iv-glass);border:1px solid var(--iv-glass-border);border-radius:22px 22px 24px 22px;transform:skewY(-12deg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 8px 22px #10213d12;pointer-events:none}
.iv-glass svg{width:26px;height:26px;transform:skewY(12deg);color:var(--iv-muted)}
@supports not (backdrop-filter:blur(12px)){.iv-glass{background:var(--iv-surface)}}
@media(prefers-reduced-transparency:reduce){.iv-glass{background:var(--iv-surface);backdrop-filter:none;-webkit-backdrop-filter:none}}
.iv-heading{margin-top:23px;text-align:center}
.iv-heading h1{margin:0;font-size:28px;line-height:36px;font-weight:700;letter-spacing:-.45px}
.iv-heading p{margin:8px 0 0;color:var(--iv-muted);font-size:16px;line-height:24px}
.iv-subtitle-desktop,.iv-help-desktop{display:none}
.iv-form{margin-top:31px}
.iv-field+.iv-field{margin-top:26px}
.iv-field label{display:block;font-size:14px;line-height:20px;font-weight:600;margin-bottom:10px}
.iv-input-wrap{position:relative}
.iv-input-wrap input{width:100%;min-width:0;height:52px;padding:0 52px;border:1px solid var(--iv-border);border-radius:10px;background:var(--iv-surface);color:var(--iv-ink);font-size:16px;line-height:24px}
.iv-input-wrap input::placeholder{color:var(--iv-muted);opacity:1}
.iv-input-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);height:24px;width:24px;color:var(--iv-muted);pointer-events:none}
.iv-input-icon svg{width:24px;height:24px}
.iv-eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);height:44px;width:44px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--iv-muted);padding:0}
.iv-eye svg{width:20px;height:20px}.iv-eye-slash{display:none}.iv-eye[aria-pressed="true"] .iv-eye-slash{display:block}
.iv-remember{display:flex;align-items:flex-start;gap:12px;min-height:48px;margin-top:20px;padding:4px 0;cursor:pointer}
.iv-remember input{appearance:none;-webkit-appearance:none;flex:none;width:24px;height:24px;margin:5px 0 0;border:1px solid var(--iv-border);border-radius:6px;background:var(--iv-surface);display:grid;place-items:center}
.iv-remember input:checked{background:var(--iv-blue);border-color:var(--iv-blue)}
.iv-remember input:checked:after{content:"";width:6px;height:12px;border:solid var(--iv-on-blue);border-width:0 2px 2px 0;transform:translateY(-2px) rotate(45deg)}
.iv-remember-title{display:block;font-size:14px;line-height:22px}.iv-remember small{font-size:13px;line-height:20px;color:var(--iv-muted)}
.iv-help-mobile{display:block}
.iv-submit{width:100%;height:54px;margin-top:24px;border:0;border-radius:12px;background:var(--iv-blue);color:var(--iv-on-blue);font-size:18px!important;font-weight:600!important;transition:background-color .12s ease}
.iv-submit:active{background:var(--iv-active)}
@media(hover:hover){.iv-submit:hover:not(:disabled){background:var(--iv-hover)}.iv-eye:hover,.iv-footer button:hover{color:var(--iv-ink)}}
.iv-footer{display:flex;justify-content:center;gap:8px;border-top:1px solid var(--iv-line);margin-top:36px;padding-top:12px}
.iv-footer button{min-width:88px;min-height:44px;padding:8px;border:0;border-radius:8px;background:transparent;color:var(--iv-muted);font-size:14px;line-height:20px}
.iv-live:empty{display:none}.iv-live{margin:12px 0 0;color:var(--iv-muted);font-size:14px}
.iv-notice{background:var(--iv-error-bg);border:1px solid var(--iv-error);border-radius:10px;padding:12px 16px;color:var(--iv-error);margin-bottom:20px;font-size:14px}
.iv-field-error{font-size:14px;color:var(--iv-error);margin:6px 0 0}.iv-input-wrap input[aria-invalid="true"]{border:2px solid var(--iv-error)}
@media(max-width:359px){.iv-panel{padding-left:20px;padding-right:20px}.iv-heading h1{font-size:26px}.iv-footer{gap:0}}
@media(min-width:1024px){
 .iv-access{display:grid;grid-template-columns:1fr 1fr;min-height:100svh}
 .iv-photo-desktop{display:block;position:relative;min-height:100%}
 .iv-photo-desktop picture{position:absolute;inset:0;display:block;background:var(--iv-surface)}
 .iv-photo-desktop img{width:100%;height:100%;object-fit:cover;object-position:center}
 .iv-photo-desktop .iv-glass{top:64px;right:-72px;width:110px;height:194px;border-radius:26px}
 .iv-photo-mobile{display:none}
 .iv-panel{display:flex;align-items:center;padding:80px 48px}
 .iv-content{max-width:552px}
 .iv-brand{width:240px}
 .iv-heading{margin-top:43px}
 .iv-heading h1{font-size:40px;line-height:48px}
 .iv-heading p{font-size:17px;line-height:26px}
 .iv-subtitle-desktop,.iv-help-desktop{display:block}.iv-subtitle-mobile,.iv-help-mobile{display:none}
 .iv-form{margin-top:58px}
 .iv-field label{font-size:15px;line-height:22px;margin-bottom:10px}
 .iv-input-wrap input{height:56px}
 .iv-field+.iv-field{margin-top:24px}
 .iv-remember{margin-top:24px}
 .iv-remember-title{font-size:16px;line-height:24px}.iv-remember small{font-size:14px;line-height:22px}
 .iv-submit{height:56px;margin-top:24px}
 .iv-footer{margin-top:48px;gap:50px}
}
@media(prefers-reduced-motion:reduce){.iv-access *{transition:none!important;animation:none!important}}
@media(forced-colors:active){.iv-access button,.iv-input-wrap input,.iv-remember input{border:1px solid ButtonText}.iv-remember input:checked:after{border-color:Highlight}.iv-glass{background:Canvas;backdrop-filter:none}}

/* ── Integración en inmo. · entrega 23 (Claude Code). Solo acopla el componente a la página; no cambia su aspecto. ── */
body.en-acceso > header,
body.en-acceso #connection{display:none}
body.en-acceso #app{max-width:none;margin:0;padding:0}
body.en-acceso{background:#fafcff}
html[data-theme="dark"] body.en-acceso{background:#101b2b}
/* El aviso recibe el foco para que los lectores lo anuncien; su propio borde rojo ya lo señala. */
.iv-notice:focus{outline:none}
/* Reglas generales de styles.css que se colaban en el componente: se anulan solo dentro del acceso. */
.iv-access .iv-input-wrap input{min-height:0}
.iv-access .iv-remember input{min-height:0;padding:0}
.iv-access .iv-submit{padding:0}
.iv-access .iv-footer button{font-weight:400}
/* Aviso conservado de la pantalla anterior: no hay recuperación de contraseña por correo. */
.iv-nota-recuperacion{margin:20px auto 0;max-width:400px;color:var(--iv-muted);font-size:13px;line-height:20px;text-align:center}
@media(min-width:1024px){.iv-nota-recuperacion{max-width:552px;margin-top:24px;font-size:14px;line-height:22px}}

.iv-access button{appearance:none;-webkit-appearance:none}
