/* NetFasho — sistema visual derivado del logo La Mano Invisible TV. */
:root {
    --nf-ink: #020611;
    --nf-night: #061329;
    --nf-navy: #0a2450;
    --nf-blue: #075bc7;
    --nf-blue-bright: #1688ff;
    --nf-blue-soft: #e8f2ff;
    --nf-silver: #d9e1eb;
    --nf-surface: #f3f6fb;
    --nf-panel: #ffffff;
    --nf-text: #111827;
    --nf-muted: #68758a;
    --nf-border: #dce4ef;
    --nf-live: #d81322;
    --nf-gold: #e5b20a;

    --fire-navy-950: var(--nf-ink);
    --fire-navy-900: var(--nf-night);
    --fire-navy-800: var(--nf-navy);
    --fire-navy-700: var(--nf-blue);
    --fire-red-700: #9d101c;
    --fire-red-600: var(--nf-live);
    --fire-red-500: #ef3442;
    --fire-red-100: #ffebed;
    --fire-surface: var(--nf-surface);
    --fire-text: var(--nf-text);
    --fire-muted: var(--nf-muted);
    --fire-border: var(--nf-border);
    --bazar-primary: var(--nf-blue);
    --bazar-primary-hover: #064ca6;
    --bazar-primary-dark: var(--nf-night);
    --bazar-primary-light: var(--nf-blue-soft);
    --brand-yellow: var(--nf-blue-bright);
    --brand-yellow-dark: var(--nf-blue);
    --brand-black: var(--nf-night);
    --brand-black-soft: var(--nf-ink);
    --brand-green: var(--nf-blue-bright);
    --brand-green-dark: var(--nf-blue);
    --table-yellow: var(--nf-blue-bright);
    --table-black: var(--nf-night);
    --table-green: var(--nf-blue);
    --table-green-dark: var(--nf-night);
    --table-border: var(--nf-border);
    --table-hover: rgba(7, 91, 199, .055);
    --table-background: var(--nf-panel);
    --table-text: var(--nf-text);
    --socios-yellow: var(--nf-blue-bright);
    --socios-yellow-hover: var(--nf-blue);
    --socios-black: var(--nf-night);
    --socios-green: var(--nf-blue);
    --socios-green-dark: var(--nf-night);
    --surface: var(--nf-surface);
    --border: var(--nf-border);
    --text: var(--nf-text);
    --muted: var(--nf-muted);
}

::selection { color: #fff; background: var(--nf-blue); }

body {
    color: var(--nf-text);
    background:
        radial-gradient(circle at 88% 4%, rgba(22, 136, 255, .09), transparent 25rem),
        var(--nf-surface);
}

a { color: var(--nf-blue); }
a:hover { color: #064ca6; }

.content-area {
    background:
        linear-gradient(rgba(243, 246, 251, .965), rgba(243, 246, 251, .985)),
        radial-gradient(circle at 92% 5%, rgba(22, 136, 255, .18), transparent 28rem);
}

.app-workspace {
    min-width: 0;
    flex: 1;
    display: flex;
    align-items: stretch;
}

.app-page {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Navegación */
.sidebar {
    background:
        radial-gradient(circle at 50% -2%, rgba(22, 136, 255, .28), transparent 17rem),
        radial-gradient(circle at 10% 75%, rgba(7, 91, 199, .16), transparent 20rem),
        linear-gradient(180deg, #06142d 0%, #020611 72%);
    border-right: 1px solid rgba(104, 166, 255, .18);
    box-shadow: 10px 0 34px rgba(2, 6, 17, .18);
}

.sidebar-brand { padding-top: 16px; }
.brand-link { gap: 12px; }
.brand-logo {
    width: 68px;
    height: 68px;
    flex-basis: 68px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 17px;
    background: #020611;
    box-shadow: 0 0 24px rgba(22, 136, 255, .24);
}
.brand-logo img { width: 100%; height: 100%; object-fit: cover; filter: none; }
.brand-company { color: #fff; font-family: "Arial Narrow", "Segoe UI", sans-serif; font-size: 1.05rem; letter-spacing: .16em; }
.brand-system { color: #75b9ff; font-size: .62rem; letter-spacing: .08em; }
.sidebar-divider { background: linear-gradient(90deg, var(--nf-blue-bright), rgba(22, 136, 255, .04)); }
.sidebar-link i:first-child, .nav-link-content i, .subnav-link i { color: #69b3ff; }
.sidebar-link:hover { color: #fff; background: rgba(22, 136, 255, .1); }
.sidebar-link.active {
    color: #fff;
    background: linear-gradient(135deg, var(--nf-blue), #073a84);
    box-shadow: 0 8px 22px rgba(7, 91, 199, .34), inset 0 1px rgba(255, 255, 255, .16);
}
.sidebar-link.active i:first-child, .sidebar-link.active .nav-link-content i { color: #fff; }
.subnav { border-left-color: rgba(22, 136, 255, .48); }
.subnav-link.active { color: #8ec7ff; background: rgba(22, 136, 255, .11); }
.security-badge { border-color: rgba(22, 136, 255, .24); background: rgba(22, 136, 255, .08); }
.security-badge > i { color: #69b3ff; }

.topbar {
    background: rgba(255, 255, 255, .92);
    border-bottom-color: var(--nf-border);
    box-shadow: 0 6px 22px rgba(6, 19, 41, .055);
    backdrop-filter: blur(16px);
}
.topbar-kicker { color: var(--nf-blue); letter-spacing: .09em; }
.topbar-title h1 { color: var(--nf-night); }
.user-avatar { color: #fff; background: linear-gradient(145deg, var(--nf-blue-bright), var(--nf-navy)); box-shadow: 0 5px 14px rgba(7, 91, 199, .22); }
.sidebar-toggle:hover, .user-menu:hover, .user-menu:focus { color: var(--nf-blue); background: var(--nf-blue-soft); border-color: #b7d8ff; }
.app-footer { color: var(--nf-muted); background: rgba(255, 255, 255, .78); border-top-color: var(--nf-border); }
.footer-separator { color: var(--nf-live); }

/* Superficies y componentes */
.page-section-header,
.content-area .form-title {
    border-color: var(--nf-border);
    border-left-color: var(--nf-blue) !important;
    border-top-color: var(--nf-blue) !important;
    background:
        radial-gradient(circle at 93% 20%, rgba(22, 136, 255, .1), transparent 15rem),
        #fff;
    box-shadow: 0 14px 34px rgba(6, 19, 41, .07);
}
.page-section-header::after { display: none; }
.page-section-icon { background: linear-gradient(145deg, var(--nf-blue-bright), var(--nf-night)); box-shadow: 0 8px 20px rgba(7, 91, 199, .24); }
.page-section-kicker, .list-toolbar-label i { color: var(--nf-blue); }
.page-section-header h1, .content-area .form-title h1, label, .form-label { color: var(--nf-night); }
.content-area .form-title h1::after { background: linear-gradient(90deg, var(--nf-blue-bright), var(--nf-live)); }

.form-section,
.personalFormManualWith,
.tableFormManualWith,
.card,
.modal-content,
.accordion-item {
    border-color: var(--nf-border) !important;
    background: var(--nf-panel);
    box-shadow: 0 12px 30px rgba(6, 19, 41, .065);
}
.content-area form.personalFormManualWith,
.content-area > .container-fluid > form:has(> .form-section) { border-color: var(--nf-border) !important; box-shadow: 0 18px 44px rgba(6, 19, 41, .09) !important; }
.content-area form.personalFormManualWith > .form-section,
.content-area > .container-fluid > form > .form-section,
.content-area form.personalFormManualWith > .modal-body,
.content-area > .container-fluid > form > .modal-body { border-top-color: var(--nf-blue) !important; }

.form-control, .form-select, .input-group-text {
    border-color: #cfd9e7;
    border-radius: 10px;
}
.form-control:focus, .form-select:focus {
    border-color: var(--nf-blue-bright);
    box-shadow: 0 0 0 .22rem rgba(22, 136, 255, .13);
}

.btn { border-radius: 10px; font-weight: 700; }
.btn-primary, .btn-success {
    color: #fff !important;
    border-color: var(--nf-blue) !important;
    background: linear-gradient(135deg, var(--nf-blue-bright), var(--nf-blue)) !important;
    box-shadow: 0 7px 16px rgba(7, 91, 199, .19);
}
.btn-primary:hover, .btn-success:hover { border-color: #064ca6 !important; background: linear-gradient(135deg, var(--nf-blue), #064ca6) !important; }
.btn-danger { background: var(--nf-live); border-color: var(--nf-live); }
.btn-warning { color: #161000; background: var(--nf-gold); border-color: var(--nf-gold); }
.btn-outline-primary { color: var(--nf-blue); border-color: var(--nf-blue); }
.btn-outline-primary:hover { color: #fff; background: var(--nf-blue); }

.table-responsive { border-color: var(--nf-border); box-shadow: 0 12px 28px rgba(6, 19, 41, .06); }
.table-responsive > table.table thead th,
.tableFormManualWith .table-responsive > table.table thead th {
    color: #eef6ff;
    background: linear-gradient(180deg, #0b2857, #06162f) !important;
    border-color: rgba(255, 255, 255, .08) !important;
}
.table-responsive > table.table tbody tr:hover > *,
.tableFormManualWith .table-responsive > table.table tbody tr:hover td { background: rgba(22, 136, 255, .055) !important; }
.badge.bg-primary { background: var(--nf-blue) !important; }
.badge.bg-danger { background: var(--nf-live) !important; }

/* Métodos registrados / OneClick */
.payment-toolbar {
    max-width: 1100px;
    margin: 0 auto 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.payment-toolbar > div { display: grid; gap: 2px; }
.payment-toolbar strong { color: var(--nf-night); }
.payment-toolbar small { color: var(--nf-muted); }
.payment-toolbar form { width: auto !important; margin: 0 !important; }
.payment-alert { max-width: 1100px; margin: 0 auto 1rem; padding: 12px 14px; border-radius: 10px; }
.payment-alert--error { color: #8d1520; border: 1px solid #ffc2c7; background: #fff0f1; }
.payment-alert--success { color: #12653c; border: 1px solid #a9e8c8; background: #edfff5; }
.payment-empty {
    max-width: 1100px;
    margin: 0 auto;
    padding: 3rem 1.5rem;
    color: var(--nf-muted);
    border: 1px dashed #b9c9dd;
    border-radius: 16px;
    background: #fff;
    text-align: center;
}
.payment-empty > i { color: var(--nf-blue); font-size: 2.5rem; }
.payment-empty h2 { margin: .75rem 0 .35rem; color: var(--nf-night); font-size: 1.15rem; }
.payment-empty p { margin: 0; }
.payment-card-grid { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fill, minmax(245px, 1fr)); gap: 1rem; }
.registered-card {
    min-height: 165px;
    padding: 18px;
    color: #dcecff;
    border: 1px solid #24518b;
    border-radius: 16px;
    background: radial-gradient(circle at 90% 10%, rgba(22,136,255,.32), transparent 9rem), linear-gradient(135deg, #0b2857, #030914);
    box-shadow: 0 14px 30px rgba(2,6,17,.18);
}
.registered-card.is-default { border-color: #d9ab18; box-shadow: 0 14px 30px rgba(2,6,17,.18), inset 0 0 0 1px rgba(229,178,10,.28); }
.registered-card__top { margin-bottom: 1.4rem; display: flex; align-items: center; justify-content: space-between; }
.registered-card__top i { color: #75b9ff; font-size: 1.45rem; }
.registered-card__top span { padding: 4px 8px; color: #ffe693; border-radius: 999px; background: rgba(229,178,10,.16); font-size: .67rem; font-weight: 800; text-transform: uppercase; }
.registered-card > strong { display: block; color: #fff; font-size: .85rem; text-transform: uppercase; }
.registered-card__number { margin: .45rem 0 .65rem; font-size: 1.05rem; font-weight: 750; letter-spacing: .08em; }
.registered-card > small { color: #8fa9c9; }
.registered-card__actions { margin-top: 1rem; padding-top: .8rem; display: flex; flex-wrap: wrap; gap: 7px; border-top: 1px solid rgba(117,185,255,.16); }
.registered-card__actions form { width: auto !important; margin: 0 !important; }
.registered-card__button { border: 1px solid #35689f; padding: 6px 9px; color: #b9dbff; border-radius: 8px; background: rgba(22,136,255,.1); font-size: .7rem; font-weight: 750; }
.registered-card__button:hover { color: #fff; background: rgba(22,136,255,.25); }
.registered-card__button--danger { color: #ffabb2; border-color: #873540; background: rgba(216,19,34,.1); }
.registered-card__button--danger:hover { color: #fff; background: rgba(216,19,34,.3); }
.oneclick-result { max-width: 500px; text-align: center; }
.oneclick-result__icon { margin: .5rem auto 1rem; font-size: 3.5rem; }
.oneclick-result__icon.is-success { color: #4ade80; }
.oneclick-result__icon.is-error { color: #ff6472; }
.oneclick-result p { margin: 0 0 1.25rem; color: #b8c7da; }
.oneclick-result .login100-form-btn { text-decoration: none; }

/* Inicio */
.home-hero {
    background:
        radial-gradient(circle at 80% 30%, rgba(22, 136, 255, .3), transparent 20rem),
        linear-gradient(125deg, #020611 0%, #081b3d 66%, #063b82 100%);
    border: 1px solid rgba(104, 166, 255, .18);
    box-shadow: 0 22px 50px rgba(2, 6, 17, .23);
}
.home-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: radial-gradient(rgba(255,255,255,.45) .7px, transparent .7px); background-size: 27px 27px; opacity: .16; }
.home-eyebrow { color: #8ac6ff; }
.home-hero-mark { opacity: .9; }
.home-hero-mark img { border: 1px solid rgba(255,255,255,.14); border-radius: 22px; box-shadow: 0 0 44px rgba(22,136,255,.3); }
.module-card-featured .module-icon, .module-icon { color: #fff; background: linear-gradient(145deg, var(--nf-blue-bright), var(--nf-navy)); }
.module-card:hover { border-color: #b8d9ff; box-shadow: 0 15px 32px rgba(7,91,199,.1); }
.module-card > .bi-arrow-right { color: var(--nf-blue); }

/* Chat */
.live-chat { border-color: rgba(104, 166, 255, .24); background: #071226; box-shadow: -10px 0 32px rgba(2, 6, 17, .12); }
.live-chat__header { background: linear-gradient(135deg, #0a3474, #061329 72%); border-bottom: 1px solid rgba(104, 166, 255, .2); }
.live-chat__header strong i { color: #6bb6ff; }
.live-chat__messages { background: linear-gradient(180deg, #071226, #030914); }
.live-chat__empty { color: #8193ac; }
.live-chat__empty i { color: #3d8ce4; }
.live-chat__message { border-color: #16335c; background: #0b1b35; box-shadow: 0 6px 14px rgba(0,0,0,.12); }
.live-chat__message.is-own { border-color: #1766bd; background: #0b2952; }
.live-chat__message-meta strong { color: #69b3ff; }
.live-chat__message-meta time { color: #6f829d; }
.live-chat__message p { color: #eef5ff; }
.live-chat__filters { border-color: #16335c; background: #071226; }
.live-chat__filters button { color: #93a8c4; }
.live-chat__filters button.is-active { color: #fff; background: linear-gradient(135deg, #0758ad, #0d3c7c); box-shadow: inset 0 0 0 1px rgba(107,182,255,.25); }
.live-chat__message.is-paid.paid-tier-1 { border-color: #e1a91a; background: linear-gradient(135deg, #49370a, #261e08); }
.live-chat__message.is-paid.paid-tier-2 { border-color: #13a878; background: linear-gradient(135deg, #073f39, #082923); }
.live-chat__message.is-paid.paid-tier-3 { border-color: #38bdf8; background: linear-gradient(135deg, #0c3f5b, #082536); }
.live-chat__message.is-paid.paid-tier-4 { border-color: #9b6cff; background: linear-gradient(135deg, #382365, #1d1338); }
.live-chat__message.is-paid.paid-tier-5 { border-color: #e13b52; background: linear-gradient(135deg, #59162a, #2b0b18); box-shadow: 0 8px 28px rgba(225,59,82,.22); }
.live-chat__message.is-paid .live-chat__paid-badge { color: #ffd75d; }
.live-chat__mention { color: #a9d5ff; background: rgba(22, 136, 255, .2); }
.live-chat__action { color: #89a0bd; }
.live-chat__action:hover { color: #9ed0ff; background: #122d51; }
.live-chat__like.is-active { color: #75b9ff; background: rgba(22, 136, 255, .2); }
.live-chat__moderate { color: #ff7c87; }
.live-chat__composer { border-top-color: #17345d; background: #071226; }
.live-chat__input-row textarea { color: #f5f9ff; border-color: #25466e; background: #0b1b35; }
.live-chat__input-row textarea::placeholder { color: #7285a0; }
.live-chat__emoji-button { background: #10284a; }
.live-chat__send { background: linear-gradient(135deg, var(--nf-blue-bright), var(--nf-blue)); }
.live-chat__emoji-picker { border-color: #25466e; background: #0b1b35; }
.live-chat__emoji-picker button:hover { background: #15345d; }
.live-chat-open { background: linear-gradient(180deg, #0a3474, #061329); box-shadow: -6px 0 20px rgba(2, 6, 17, .1); }
.live-chat-open:hover { background: linear-gradient(180deg, var(--nf-blue-bright), var(--nf-blue)); }

/* Acceso */
:root {
    --login-primary: var(--nf-blue);
    --login-primary-hover: #064ca6;
    --login-dark: #f1f6ff;
    --login-dark-soft: #c8d5e8;
    --login-secondary: #65afff;
    --login-secondary-dark: #9acbff;
    --login-background: var(--nf-ink);
    --login-white: #071226;
    --login-border: #284a73;
    --login-text: #f2f7ff;
    --login-muted: #93a6bf;
}
body:has(.login-page) {
    background:
        radial-gradient(circle at 16% 25%, rgba(22, 136, 255, .26), transparent 28rem),
        radial-gradient(circle at 85% 75%, rgba(7, 91, 199, .2), transparent 30rem),
        linear-gradient(145deg, #01040b, #06132a 58%, #020611);
}
.login-page::before { content: ""; position: fixed; inset: 0; pointer-events: none; background-image: radial-gradient(rgba(255,255,255,.7) .65px, transparent .65px); background-size: 31px 31px; opacity: .14; }
.wrap-login100 { border-color: rgba(103, 169, 255, .24); background: rgba(7, 18, 38, .94); box-shadow: 0 28px 75px rgba(0,0,0,.52), 0 0 48px rgba(22,136,255,.1); backdrop-filter: blur(18px); }
.wrap-login100::before { height: 5px; background: linear-gradient(90deg, var(--nf-blue), var(--nf-blue-bright) 72%, var(--nf-live) 72%, var(--nf-live)); }
.login100-form .wrap-input100:first-child img, .auth-brand-logo { display: block; width: min(100%, 310px) !important; height: auto; margin: 0 auto 12px !important; border-radius: 16px; box-shadow: 0 0 32px rgba(22,136,255,.18); }
.login100-form .login-heading, .login100-form label { color: #f1f6ff !important; }
.login100-form .login-heading small { color: #91a4bd; }
.login100-form .login-heading::after { background: linear-gradient(90deg, var(--nf-blue-bright), var(--nf-live)) !important; }
.login100-form .input100 {
    display: block;
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
    color: #f4f8ff !important;
    -webkit-text-fill-color: #f4f8ff;
    caret-color: var(--nf-blue-bright);
    border-color: #29496f;
    background: #0b1b35;
}
.login100-form .input100::placeholder { color: #6f8199; }
.login100-form .input100::selection { color: #fff; background: var(--nf-blue); }
.login100-form .input100:hover { border-color: #3f6b9e; }
.login100-form .input100:focus,
.login100-form .input100:active {
    color: #fff !important;
    -webkit-text-fill-color: #fff;
    border-color: var(--nf-blue-bright);
    background: #0d2242 !important;
    box-shadow: 0 0 0 4px rgba(22,136,255,.14);
}
.login100-form input.input100:-webkit-autofill,
.login100-form input.input100:-webkit-autofill:hover,
.login100-form input.input100:-webkit-autofill:focus,
.login100-form input.input100:-webkit-autofill:active {
    color: #f4f8ff !important;
    -webkit-text-fill-color: #f4f8ff !important;
    caret-color: var(--nf-blue-bright);
    border-color: #3f6b9e !important;
    -webkit-box-shadow: 0 0 0 1000px #0b1b35 inset !important;
    box-shadow: 0 0 0 1000px #0b1b35 inset !important;
    transition: background-color 9999s ease-out 0s;
}
.login100-form input.input100:autofill {
    color: #f4f8ff !important;
    -webkit-text-fill-color: #f4f8ff !important;
    background: #0b1b35 !important;
}
.login100-form-btn { background: linear-gradient(135deg, var(--nf-blue-bright), var(--nf-blue)); border-color: var(--nf-blue); box-shadow: 0 9px 22px rgba(7,91,199,.28); }
.login100-form-btn:hover { background: linear-gradient(135deg, var(--nf-blue), #064ca6); border-color: #064ca6; }
.login100-form .wrap-input100,
.login100-form .container-login100-form-btn {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.register-card { max-width: 520px; }
.register-grid { display: grid; grid-template-columns: minmax(0, 1fr); }
.register-grid__full { grid-column: auto; }
.registration-success { margin: 12px 0; padding: 11px 13px; color: #bce8d0; border: 1px solid rgba(65, 196, 126, .35); border-radius: 9px; background: rgba(22, 101, 52, .24); font-size: .8rem; }

/* Mensajes y estados de validación en las vistas de acceso. */
.login100-form .field-validation-error,
.login100-form .text-danger {
    display: block;
    margin-top: 6px;
    color: #ffabb2 !important;
    font-size: .76rem;
    font-weight: 650;
    line-height: 1.35;
}

.login100-form .input-validation-error {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    border-color: #ff6472 !important;
    background: #32121d !important;
    box-shadow: 0 0 0 3px rgba(216, 19, 34, .16) !important;
}

.login100-form .validation-summary-errors,
.login100-form [data-valmsg-summary="true"]:not(.validation-summary-valid) {
    display: block;
    margin: 12px 0;
    padding: 12px 14px;
    color: #ffe4e7 !important;
    border: 1px solid #b93b48 !important;
    border-left: 4px solid #ff6472 !important;
    border-radius: 9px;
    background: #351019 !important;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .16);
    font-size: .79rem;
    line-height: 1.45;
}

.login100-form .validation-summary-errors ul,
.login100-form [data-valmsg-summary="true"]:not(.validation-summary-valid) ul {
    margin: 0;
    padding-left: 18px;
}

.login100-form .validation-summary-errors li + li,
.login100-form [data-valmsg-summary="true"]:not(.validation-summary-valid) li + li {
    margin-top: 4px;
}

.login100-form .registration-success {
    color: #d8ffea !important;
    border-color: #2f9360;
    border-left: 4px solid #4ade80;
    background: #0e3825;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .14);
}

.fire-popup-navbar { background: linear-gradient(135deg, var(--nf-night), var(--nf-ink)); border-bottom: 3px solid var(--nf-blue); }
.fire-popup-navbar .navbar-brand img { max-height: 74px; border-radius: 10px; }

@media (max-width: 575.98px) {
    .brand-logo { width: 58px; height: 58px; flex-basis: 58px; }
    .home-hero-mark { opacity: .3; }
    .login100-form .wrap-input100:first-child img, .auth-brand-logo { max-width: 235px; }
    .register-grid { grid-template-columns: 1fr; }
    .register-grid__full { grid-column: auto; }
}

/* Administración de bloqueos del chat */
.chat-block-header { max-width:1200px; margin-right:auto; margin-left:auto; }
.chat-block-table { max-width:1200px; margin:0 auto; border-radius:16px; }
.chat-block-table td small { display:block; margin-top:3px; color:var(--nf-muted); font-size:.7rem; }
.chat-block-badge { display:inline-flex; padding:5px 9px; border-radius:999px; font-size:.68rem; font-weight:850; }
.chat-block-badge.is-temporary { color:#075985; background:#e0f2fe; }
.chat-block-badge.is-permanent { color:#991b1b; background:#fee2e2; }
.chat-block-empty { max-width:720px; margin:3rem auto; padding:3rem 1.5rem; border:1px dashed #b8c8db; border-radius:18px; background:#fff; text-align:center; }
.chat-block-empty > i { color:var(--nf-blue); font-size:2.5rem; }
.chat-block-empty h2 { margin:.8rem 0 .35rem; color:var(--nf-night); font-size:1.2rem; }
.chat-block-empty p { margin:0; color:var(--nf-muted); }

/* Selección y exhibición del mensaje destacado */
.highlight-admin-header,.highlight-toolbar,.highlight-list,.highlight-display-shell { max-width:1100px; margin-right:auto; margin-left:auto; }
.highlight-toolbar { margin-bottom:1rem; padding:13px 16px; display:flex; align-items:center; justify-content:space-between; gap:1rem; border:1px solid var(--nf-border); border-radius:14px; background:#fff; box-shadow:0 8px 24px rgba(6,19,41,.05); }
.highlight-toolbar > div { display:grid; gap:2px; }
.highlight-toolbar strong { color:var(--nf-night); font-size:.82rem; }
.highlight-toolbar small { color:var(--nf-muted); font-size:.72rem; }
.highlight-toolbar label,.highlight-display-toolbar label { display:flex; align-items:center; gap:8px; margin:0; color:var(--nf-muted); font-size:.72rem; white-space:nowrap; }
.highlight-toolbar select,.highlight-display-toolbar select { width:auto; min-width:125px; }
.highlight-list { display:grid; gap:10px; }
.highlight-list-item { position:relative; padding:15px 17px; overflow:hidden; border:1px solid #dce4ef; border-left:5px solid var(--highlight-color,#075bc7); border-radius:14px; background:#fff; box-shadow:0 8px 22px rgba(6,19,41,.055); }
.highlight-list-item.is-selected { box-shadow:0 0 0 2px var(--highlight-color,#075bc7),0 12px 28px rgba(6,19,41,.13); }
.highlight-list-item__meta,.highlight-list-item__footer { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.highlight-list-item__meta strong { color:var(--nf-night); font-size:.78em; }
.highlight-list-item__meta time { color:var(--nf-muted); font-size:.67em; }
.highlight-list-item p { margin:8px 0 12px; color:#26364c; font-size:1em; line-height:1.45; overflow-wrap:anywhere; }
.highlight-list-item__footer > span { color:var(--highlight-color,#075bc7); font-size:.7em; font-weight:800; }
.highlight-list-item__footer form { width:auto!important; margin:0!important; }
.tier-standard { --highlight-color:#075bc7; --highlight-bg:#eaf3ff; }
.tier-yellow { --highlight-color:#d4a400; --highlight-bg:#fff7cf; }
.tier-green { --highlight-color:#168447; --highlight-bg:#dcfce7; }
.tier-sky { --highlight-color:#0b91c9; --highlight-bg:#e0f5ff; }
.tier-violet { --highlight-color:#7340c7; --highlight-bg:#eee7ff; }
.tier-red { --highlight-color:#d11d2b; --highlight-bg:#ffe5e8; }
.text-size-sm { font-size:13px; }.text-size-md { font-size:16px; }.text-size-lg { font-size:20px; }.text-size-xl { font-size:26px; }
.highlight-display-shell { min-height:calc(100vh - 175px); display:flex; flex-direction:column; overflow:hidden; border:1px solid rgba(104,166,255,.24); border-radius:20px; background:radial-gradient(circle at 75% 20%,rgba(22,136,255,.18),transparent 25rem),linear-gradient(145deg,#020611,#071936); box-shadow:0 22px 55px rgba(2,6,17,.22); }
.highlight-display-toolbar { padding:13px 16px; display:flex; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid rgba(104,166,255,.18); }
.highlight-display-toolbar > div { display:grid; }
.highlight-display-toolbar span { color:#65afff; font-size:.62rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.highlight-display-toolbar strong { color:#fff; font-size:.92rem; }
.highlight-display-toolbar label { color:#a9bdd6!important; }
.highlight-stage { flex:1; min-height:300px; display:grid; place-items:center; padding:clamp(18px,5vw,65px); }
.highlight-stage__empty { display:grid; justify-items:center; gap:10px; color:#7187a4; }
.highlight-stage__empty[hidden],.highlight-card[hidden] { display:none; }
.highlight-stage__empty i { font-size:2.8em; }
.highlight-card { width:min(100%,900px); padding:clamp(22px,5vw,52px); color:#101827; border:3px solid var(--highlight-color,#075bc7); border-radius:24px; background:linear-gradient(145deg,#fff,var(--highlight-bg,#eaf3ff)); box-shadow:0 24px 70px rgba(0,0,0,.35),inset 0 1px #fff; }
.highlight-card__label { margin-bottom:18px; color:var(--highlight-color,#075bc7); font-size:.65em; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.highlight-card > strong { display:block; color:var(--highlight-color,#075bc7); font-size:.9em; }
.highlight-card > p { margin:12px 0 18px; color:#111827; font-size:1.65em; font-weight:750; line-height:1.24; overflow-wrap:anywhere; }
.highlight-card [data-highlight-amount] { color:var(--highlight-color,#075bc7); font-size:.78em; font-weight:900; }
@media(max-width:767.98px){.highlight-toolbar,.highlight-display-toolbar{align-items:flex-start;flex-direction:column}.highlight-list-item__footer{align-items:flex-start;flex-direction:column}.highlight-display-shell{min-height:100%;border-radius:14px}.highlight-stage{min-height:220px;padding:14px}.highlight-card{padding:22px;border-radius:17px}.text-size-xl{font-size:21px}}

@media (max-width: 767.98px) {
    .app-workspace { flex-direction: column; }
    .live-chat { box-shadow: 0 -8px 26px rgba(2, 6, 17, .12); }
}

/* Chat y señal: composición móvil según la orientación del dispositivo. */
@media (max-width: 991.98px) and (orientation: portrait) {
    .main-wrapper {
        height: 100dvh;
        min-height: 0;
        overflow: hidden;
    }

    .topbar { flex: 0 0 auto; }

    .app-workspace {
        min-height: 0;
        flex-direction: column;
        overflow: hidden;
    }

    .app-page {
        width: 100%;
        flex: 0 0 auto;
    }

    .content-area {
        width: 100%;
        aspect-ratio: 16 / 9;
        flex: none;
        overflow: auto;
    }

    .content-area > .container-fluid {
        min-height: 100%;
        padding-top: .75rem !important;
        padding-bottom: .75rem !important;
    }

    .app-footer { display: none; }

    .live-chat {
        position: relative;
        width: 100%;
        height: auto;
        min-height: 0;
        flex: 1 1 0;
        align-self: stretch;
        border-width: 1px 0 0;
    }

    .live-chat-open {
        position: relative;
        width: 100%;
        height: 48px;
        flex: 0 0 48px;
        flex-direction: row;
        justify-content: center;
        padding: 8px 14px;
        border: 0;
        border-top: 1px solid rgba(104, 166, 255, .24);
    }

    .live-chat-open span { writing-mode: horizontal-tb; }
}

@media (max-width: 991.98px) and (orientation: landscape) {
    .main-wrapper {
        height: 100dvh;
        min-height: 0;
        overflow: hidden;
    }

    .topbar { flex: 0 0 auto; }

    .app-workspace {
        min-height: 0;
        flex-direction: row;
        overflow-x: auto;
        overflow-y: hidden;
    }

    .app-page {
        width: auto;
        height: 100%;
        flex: 0 0 auto;
        aspect-ratio: 16 / 9;
    }

    .content-area {
        width: 100%;
        height: 100%;
        overflow: auto;
    }

    .content-area > .container-fluid {
        min-height: 100%;
        padding: .75rem !important;
    }

    .app-footer { display: none; }

    .live-chat {
        position: relative;
        width: auto;
        height: 100%;
        min-width: 240px;
        flex: 1 0 240px;
        align-self: stretch;
        border-width: 0 0 0 1px;
    }

    .live-chat-open {
        position: relative;
        width: 48px;
        height: 100%;
        flex: 0 0 48px;
        flex-direction: column;
        justify-content: flex-start;
        padding: 18px 8px;
        border: 0;
        border-left: 1px solid rgba(104, 166, 255, .24);
    }

    .live-chat-open span { writing-mode: vertical-rl; }

    .app-workspace.chat-is-collapsed .app-page {
        max-width: calc(100% - 48px);
    }
}

/* Home público */
.public-auth-actions { display: flex; align-items: center; gap: .65rem; }
.public-auth-link { padding: .5rem .7rem; color: var(--nf-night); font-size: .84rem; font-weight: 800; text-decoration: none; }
.public-auth-link:hover { color: var(--nf-blue); }
.public-auth-register { padding: .55rem .9rem !important; font-size: .8rem; }
.public-home-page .content-area { background: radial-gradient(circle at 84% 2%, rgba(22,136,255,.18), transparent 26rem), linear-gradient(145deg, #f7faff, #edf3fa); }
.public-home-page .home-hero { min-height: 360px; padding: clamp(2rem,5vw,4.5rem); overflow: hidden; border: 1px solid rgba(93,153,226,.2); border-radius: 24px; background: radial-gradient(circle at 78% 40%, rgba(18,100,222,.34), transparent 22rem), linear-gradient(130deg,#020611 0%,#061a3b 66%,#092c62 100%); box-shadow: 0 24px 60px rgba(2,6,17,.2); }
.public-home-page .home-hero::before { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(105deg,transparent 45%,rgba(229,178,10,.11) 45.2%,transparent 46%); }
.public-home-page .home-hero-copy { position:relative; z-index:2; max-width:690px; }
.public-home-page .home-eyebrow { color:#8fc8ff; letter-spacing:.1em; }
.public-home-page .home-hero h2 { max-width:650px; color:#fff; font-size:clamp(2.1rem,4.6vw,4.25rem); line-height:.98; letter-spacing:-.04em; }
.public-home-page .home-hero p { max-width:620px; color:#b8cae2; font-size:1rem; line-height:1.7; }
.public-home-page .home-hero-mark { right:-3%; width:min(38%,390px); opacity:.27; filter:drop-shadow(0 0 30px rgba(22,136,255,.45)); }
.home-secondary-action { color:#fff; border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.08); }
.home-secondary-action:hover { color:#fff; border-color:#fff; background:rgba(255,255,255,.15); }
.home-trust { display:flex; flex-wrap:wrap; gap:1.1rem; margin-top:1.5rem; color:#8da9cb; font-size:.76rem; font-weight:700; }
.home-trust i { margin-right:.3rem; color:var(--nf-gold); }
.public-home-page .home-access-section { margin-top:2rem; }
.public-home-page .home-modules { grid-template-columns:repeat(3,minmax(0,1fr)); }
.public-home-page .module-card { cursor:default; }
.home-status { margin-left:auto; padding:.35rem .55rem; color:#075bc7; border:1px solid #bcdcff; border-radius:999px; background:#eef7ff; font-size:.62rem; font-weight:900; text-transform:uppercase; white-space:nowrap; }
.home-manifesto { margin-top:1.25rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.home-manifesto > div { position:relative; padding:1.5rem 1.5rem 1.4rem 4.8rem; border:1px solid var(--nf-border); border-radius:18px; background:rgba(255,255,255,.88); box-shadow:0 12px 30px rgba(6,19,41,.06); }
.home-manifesto__number { position:absolute; top:1.45rem; left:1.35rem; color:var(--nf-gold); font-family:"Arial Narrow","Segoe UI",sans-serif; font-size:1.55rem; font-weight:900; }
.home-manifesto h3 { margin:0 0 .35rem; color:var(--nf-night); font-size:1rem; }
.home-manifesto p { margin:0; color:var(--nf-muted); font-size:.82rem; line-height:1.55; }
@media (max-width: 991.98px) {
    .public-home-page .home-hero { min-height:100%; padding:1.5rem; border-radius:18px; }
    .public-home-page .home-hero h2 { font-size:clamp(1.65rem,6vw,2.5rem); }
    .public-home-page .home-hero p { font-size:.82rem; line-height:1.45; }
    .public-home-page .home-trust, .public-home-page .home-access-section, .public-home-page .home-manifesto { display:none; }
}
@media (max-width: 575.98px) {
    .public-auth-link { display:none; }
    .public-auth-register { padding:.45rem .65rem !important; }
    .public-home-page .home-hero-mark { opacity:.16; }
}

/* Experiencia unificada de acceso y seguridad */
body:has(.auth-shell) { overflow-x:hidden; }
.login-page:has(.auth-shell) { padding:clamp(16px,4vw,48px); }
.auth-shell { position:relative; z-index:1; width:min(100%,980px); min-height:650px; display:grid; grid-template-columns:minmax(310px,.9fr) minmax(420px,1.1fr); overflow:hidden; border:1px solid rgba(104,166,255,.23); border-radius:26px; background:#071226; box-shadow:0 35px 90px rgba(0,0,0,.55),0 0 60px rgba(22,136,255,.1); }
.auth-shell--compact { width:min(100%,930px); min-height:620px; }
.auth-shell--register { width:min(100%,1120px); min-height:720px; grid-template-columns:minmax(320px,.78fr) minmax(560px,1.22fr); }
.auth-showcase { position:relative; isolation:isolate; display:flex; flex-direction:column; padding:34px; overflow:hidden; color:#fff; background:radial-gradient(circle at 35% 24%,rgba(22,136,255,.38),transparent 19rem),linear-gradient(155deg,#020611 0%,#061b3d 65%,#082959 100%); }
.auth-showcase::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(118deg,transparent 54%,rgba(229,178,10,.16) 54.3%,transparent 55.2%); }
.auth-showcase::after { content:""; position:absolute; z-index:-1; right:-90px; bottom:-100px; width:300px; aspect-ratio:1; border:1px solid rgba(108,179,255,.16); border-radius:50%; box-shadow:0 0 0 42px rgba(22,136,255,.035),0 0 0 85px rgba(22,136,255,.025); }
.auth-showcase__brand { align-self:flex-start; display:block; width:138px; overflow:hidden; border:1px solid rgba(255,255,255,.16); border-radius:16px; box-shadow:0 14px 35px rgba(0,0,0,.32); }
.auth-showcase__brand img { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
.auth-showcase__content { margin:auto 0; }
.auth-kicker { display:inline-flex; align-items:center; gap:7px; margin-bottom:18px; color:#86c5ff; font-size:.7rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.auth-kicker i { color:var(--nf-gold); }
.auth-showcase h1 { margin:0 0 18px; max-width:430px; color:#fff; font-family:"Arial Narrow","Segoe UI",sans-serif; font-size:clamp(2.5rem,4vw,4rem); font-weight:850; line-height:.98; letter-spacing:-.04em; }
.auth-showcase p { max-width:410px; margin:0; color:#a9bdd6; font-size:.9rem; line-height:1.7; }
.auth-showcase__footer { display:flex; align-items:center; gap:8px; color:#8199b8; font-size:.72rem; font-weight:700; }
.auth-showcase__footer i { color:#68b4ff; }
.auth-benefits { display:grid; gap:9px; margin:22px 0 0; padding:0; list-style:none; color:#b9cbe1; font-size:.78rem; }
.auth-benefits i { margin-right:7px; color:var(--nf-gold); }
.wrap-login100.auth-card { max-width:none; min-width:0; margin:0 !important; border:0; border-radius:0; background:linear-gradient(150deg,#0a1830,#071226); box-shadow:none; backdrop-filter:none; }
.wrap-login100.auth-card::before { display:none; }
.auth-form.login100-form { min-height:100%; display:flex; flex-direction:column; justify-content:center; padding:clamp(32px,5vw,66px) clamp(28px,5vw,64px) !important; }
.auth-mobile-brand { display:none; }
.auth-heading { margin-bottom:28px; }
.auth-heading > span { display:block; margin-bottom:7px; color:#65afff; font-size:.69rem; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.auth-heading h2 { margin:0 0 8px; color:#f6f9ff; font-size:clamp(1.7rem,3vw,2.25rem); font-weight:800; letter-spacing:-.025em; }
.auth-heading p { margin:0; color:#8297b2; font-size:.82rem; }
.auth-field { width:100%; margin-bottom:18px; }
.auth-field > label,.auth-label-row label { display:block; margin:0 0 7px; color:#dce9f8 !important; font-size:.75rem; font-weight:750; }
.auth-label-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.auth-label-row a { color:#74baff; font-size:.7rem; font-weight:700; text-decoration:none; }
.auth-input { position:relative; display:flex; align-items:center; }
.auth-input > i { position:absolute; z-index:2; left:15px; color:#6990bd; font-size:.95rem; pointer-events:none; }
.login100-form .auth-input .input100 { height:50px; padding:0 15px 0 44px !important; color:#f6f9ff !important; border:1px solid #29496f; border-radius:12px; background:#0b1b35; font-size:.86rem; }
.login100-form .auth-input .input100:focus { border-color:#1688ff; background:#0d2242 !important; box-shadow:0 0 0 4px rgba(22,136,255,.13); }
.auth-field > span { display:block; margin-top:5px; color:#ffabb2; font-size:.7rem; }
.auth-submit.login100-form-btn { width:100%; height:52px; margin-top:5px; display:flex; align-items:center; justify-content:space-between; padding:0 19px; border:1px solid #237fdc; border-radius:12px; color:#fff; font-size:.82rem; font-weight:850; letter-spacing:.01em; }
.auth-submit i { transition:transform .2s ease; }
.auth-submit:hover i { transform:translateX(4px); }
.auth-form-footer { margin-top:20px; color:#8094ad; font-size:.76rem; text-align:center; }
.auth-form-footer a { color:#74baff; font-weight:800; text-decoration:none; }
.auth-back { align-self:center; display:inline-flex; align-items:center; gap:6px; margin-top:16px; color:#7790ad; font-size:.7rem; font-weight:700; text-decoration:none; }
.auth-back:hover,.auth-form-footer a:hover,.auth-label-row a:hover { color:#fff; }
.auth-register-grid { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:16px; }
.auth-register-grid__confirm { grid-column:2; }
.auth-shell--register .auth-field { margin-bottom:13px; }
.auth-shell--register .auth-heading { margin-bottom:20px; }

@media (max-width: 820px) {
    .login-page:has(.auth-shell) { align-items:flex-start; padding:14px; }
    .auth-shell,.auth-shell--compact,.auth-shell--register { width:min(100%,560px); min-height:0; grid-template-columns:1fr; border-radius:20px; }
    .auth-showcase { display:none; }
    .wrap-login100.auth-card { border-radius:20px; }
    .auth-form.login100-form { min-height:0; padding:30px clamp(20px,6vw,38px) 32px !important; }
    .auth-mobile-brand { display:block; margin:0 auto 23px; width:112px; overflow:hidden; border:1px solid rgba(104,166,255,.22); border-radius:14px; box-shadow:0 10px 28px rgba(0,0,0,.3); }
    .auth-mobile-brand img { display:block; width:100% !important; height:auto; margin:0 !important; border-radius:0; box-shadow:none; }
}
@media (max-width: 575.98px) {
    .login-page:has(.auth-shell) { padding:0; }
    .auth-shell,.auth-shell--compact,.auth-shell--register { width:100%; min-height:100dvh; border:0; border-radius:0; }
    .wrap-login100.auth-card { border-radius:0; }
    .auth-form.login100-form { justify-content:flex-start; padding:24px 20px 28px !important; }
    .auth-mobile-brand { width:90px; margin-bottom:18px; }
    .auth-heading { margin-bottom:22px; }
    .auth-heading h2 { font-size:1.65rem; }
    .auth-register-grid { grid-template-columns:1fr; }
    .auth-register-grid__confirm { grid-column:auto; }
}
