/* Recovery de HolonB: identidad del login, sin cambiar sus selectores funcionales. */
body.recovery-page {
    --recovery-brand: #fa004c;
    --recovery-border: #e3dfe1;
    margin: 0;
    min-height: 100vh;
    padding: 36px 20px 48px;
    color: #222;
    font: 15px/1.6 Roboto, Arial, sans-serif;
    background: radial-gradient(ellipse at 10% 90%, #fa004c0d, transparent 40%),
        radial-gradient(ellipse at 80% 5%, #fa004c16, transparent 38%),
        linear-gradient(135deg, #0d0d0d, #191517);
    isolation: isolate;
}
.recovery-page::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: -1;
    background-image: linear-gradient(#ffffff04 1px, transparent 1px),
        linear-gradient(90deg, #ffffff04 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(#000, transparent 90%);
}
.recovery-page .recovery-shell { float: none; max-width: 620px; margin: 0 auto; padding: 0; }
.recovery-page .recovery-brand {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
    margin: 0 0 30px;
    color: #fff;
}
.recovery-page .recovery-brand img { display: block; width: 133px; height: auto; }
.recovery-page .recovery-brand span {
    padding-left: 24px;
    border-left: 1px solid #ffffff30;
    font: 600 11px/1.6 Montserrat, Arial, sans-serif;
    letter-spacing: 4px;
}
.recovery-page .d14s-recovery-container {
    width: 100%;
    padding: 36px 40px 30px;
    border: 1px solid #ffffff18;
    border-top: 4px solid var(--recovery-brand);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 24px 80px #0003;
    text-align: center;
}
.recovery-page .d14s-recovery-container::after { content: ""; display: table; clear: both; }
.recovery-page .d14s-recovery-lock-icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    margin: 0 auto 20px;
    border: 1px solid #fa004c22;
    border-radius: 12px;
    background: #fff0f4;
    color: #c90040;
}
.recovery-page .d14s-recovery-lock-icon svg { width: 25px; height: 25px; }
.recovery-page h1 {
    margin: 0 0 26px;
    color: #111;
    font: 600 clamp(24px, 3vw, 32px)/1.2 Montserrat, Arial, sans-serif;
    letter-spacing: -1.1px;
}
.recovery-page .d14s-recovery-subtitle { margin: 20px 0 26px; color: #777; font-size: 14px; line-height: 1.75; }
.recovery-page .d14s-recovery-form-group { margin-bottom: 22px; text-align: left; }
.recovery-page label { display: block; margin-bottom: 8px; color: #444; font-size: 12px; font-weight: 600; }
.recovery-page input[type="email"],
.recovery-page input[type="text"],
.recovery-page select.form-control {
    width: 100%;
    min-height: 48px;
    height: auto;
    padding: 12px 14px;
    border: 1px solid var(--recovery-border);
    border-radius: 7px;
    background: #fbfafb;
    color: #222;
    font: 14px/1.6 Roboto, Arial, sans-serif;
    box-shadow: none;
    transition: border-color .15s, box-shadow .15s;
}
.recovery-page input[type="email"]:focus,
.recovery-page input[type="text"]:focus,
.recovery-page select.form-control:focus {
    border-color: var(--recovery-brand);
    outline: none;
    box-shadow: 0 0 0 3px #fa004c18;
    background: #fff;
}
.recovery-page input::placeholder { color: #999; opacity: 1; }
.recovery-page .d14s-recovery-submit-btn,
.recovery-page .d14s-coga-cont-btn-adds-solid {
    width: 100%;
    min-height: 49px;
    padding: 14px 18px;
    border: 1px solid transparent;
    border-radius: 7px;
    background: var(--recovery-brand);
    color: #fff;
    font: 600 13px/1.6 Montserrat, Arial, sans-serif;
    cursor: pointer;
    box-shadow: none;
    transition: background .15s;
    white-space: normal;
}
.recovery-page .d14s-recovery-submit-btn:hover,
.recovery-page .d14s-coga-cont-btn-adds-solid:hover { background: #cf003f; }
.recovery-page .d14s-coga-cont-btn-file {
    min-height: 49px;
    padding: 14px 18px;
    border: 1px solid var(--recovery-border);
    border-radius: 7px;
    background: #fff;
    color: #444;
    font: 500 13px/1.6 Montserrat, Arial, sans-serif;
    white-space: normal;
}
.recovery-page .d14s-coga-cont-btn-file:hover { border-color: #fa004c55; background: #fff0f4; color: #bd003a; }
.recovery-page button:focus-visible,
.recovery-page a:focus-visible { outline: 3px solid var(--recovery-brand); outline-offset: 4px; }
.recovery-page button:disabled { opacity: .6; cursor: not-allowed; }
.recovery-page .d14s-coga-cont-desktop-tabs {
    display: flex;
    margin-bottom: 22px;
    border-bottom: 1px solid var(--recovery-border);
}
.recovery-page .d14s-coga-cont-tab-button {
    flex: 1;
    margin-bottom: -1px;
    padding: 13px 8px;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: #777;
    font: 500 12px/1.6 Montserrat, Arial, sans-serif;
}
.recovery-page .d14s-coga-cont-tab-button:hover { color: #bd003a; background: #fff8fa; }
.recovery-page .d14s-coga-cont-tab-button.d14s-coga-cont-active { color: #bd003a; border-bottom-color: var(--recovery-brand); font-weight: 600; }
.recovery-page .rfc-help-box { margin-top: 22px; padding: 14px 16px; border: 1px solid #fa004c18; border-radius: 7px; background: #fff5f8; color: #665b60; font-size: 12px; text-align: left; }
.recovery-page .rfc-help-box strong { font-weight: 600; }
.recovery-page .rfc-help-box ul { margin: 8px 0 0; padding-left: 16px; }
.recovery-page .rfc-help-box li { margin-bottom: 4px; }
.recovery-page .d14s-recovery-success-message { display: none; margin-top: 22px; padding: 16px; border: 1px solid #bbdfc7; border-radius: 7px; background: #f0faf3; color: #166534; font-size: 13px; }
.recovery-page .d14s-recovery-success-message.d14s-recovery-show { display: block; }
.recovery-page .d14s-recovery-back-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 26px; color: #bd003a; font-size: 12px; font-weight: 500; text-decoration: none; }
.recovery-page .d14s-recovery-back-link::before { content: "←"; }
.recovery-page .d14s-recovery-back-link:hover { color: #990030; text-decoration: underline; }
.recovery-page .d14s-recovery-container > .text-futura { padding-top: 18px; border-top: 1px solid #efebed; font-family: Roboto, Arial, sans-serif; font-size: 11px; overflow-wrap: anywhere; }
.recovery-page #contentNewContact { border-color: var(--recovery-border) !important; background: #fbfafb; }
@media (max-width: 600px) {
    body.recovery-page { padding: 24px 16px 32px; }
    .recovery-page .d14s-recovery-container { padding: 28px 22px 24px; }
    .recovery-page .recovery-brand { gap: 16px; margin-bottom: 24px; }
    .recovery-page .recovery-brand img { width: 112px; }
    .recovery-page .recovery-brand span { padding-left: 16px; font-size: 9px; letter-spacing: 2px; }
    .recovery-page .d14s-recovery-subtitle { font-size: 13px; }
    .recovery-page input[type="email"], .recovery-page input[type="text"], .recovery-page select.form-control { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .recovery-page input, .recovery-page button { transition: none; }
}
