/* Portal de ayuda Nubelfon — estilos basados en nubelfon.com */

@font-face { font-family: Ubuntu; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/ubuntu-400-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Ubuntu; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/ubuntu-400-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Ubuntu; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/ubuntu-500-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Ubuntu; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/ubuntu-500-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Ubuntu; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/ubuntu-700-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Ubuntu; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/ubuntu-700-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
    --nf-font: "Ubuntu", system-ui, -apple-system, "Segoe UI", sans-serif;
    --nf-ink: #040606;
    --nf-ink-secondary: #434c4f;
    --nf-muted: #7d8886;
    --nf-border: #e3e8e7;
    --nf-surface: #ffffff;
    --nf-surface-mist: #f4f7f6;
    --nf-mint: #4fd1b5;
    --nf-teal: #37a18d;
    --nf-teal-deep: #037b63;
    --nf-teal-ink: #025e4b;
    --nf-teal-tint: #dcf0eb;
    --nf-teal-tint-subtle: #e6f5f1;
    --nf-on-teal-deep-muted: #ddf6f0;
    --nf-amber: #ffc857;
    --nf-coral: #ff6b6b;
    --nf-coral-tint: #ffeded;
    --nf-coral-ink: #8f2424;
    --nf-control-border: #b8c2c0;
    --nf-radius-sm: 8px;
    --nf-radius-md: 16px;
    --nf-radius-lg: 24px;
    --nf-radius-full: 999px;
    --nf-shadow-card: 0 1px 2px #0406060f, 0 10px 28px #0406061f;
    --nf-hero: linear-gradient(100deg, #025e4b 0%, #299780 55%, #025e4b 100%);
}

*, *::before, *::after { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
}

body.nf-portal {
    font-family: var(--nf-font);
    color: var(--nf-ink);
    background: var(--nf-surface-mist);
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.nf-portal a { color: inherit; text-decoration: none; }
.nf-portal a:focus-visible,
.nf-portal button:focus-visible,
.nf-portal input:focus-visible,
.nf-portal summary:focus-visible {
    outline: 3px solid var(--nf-ink);
    outline-offset: 2px;
}

.nf-container {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
}

.nf-icon { width: 1.25em; height: 1.25em; flex-shrink: 0; }

/* ---------- Header ---------- */
.nf-header {
    background: var(--nf-surface);
    border-bottom: 1px solid var(--nf-border);
    position: sticky;
    top: 0;
    z-index: 10;
}
.nf-header .nf-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 72px;
}
.nf-logo img { height: 36px; width: auto; display: block; }
.nf-nav { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; justify-content: flex-end; }
.nf-nav-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: var(--nf-radius-full);
    font-weight: 500;
    font-size: .95rem;
    color: var(--nf-ink-secondary) !important;
    transition: background .15s, color .15s;
}
.nf-nav-link:hover { background: var(--nf-teal-tint-subtle); color: var(--nf-teal-ink) !important; }
.nf-nav-link.is-active { background: var(--nf-teal-tint); color: var(--nf-teal-ink) !important; }
.nf-user { display: inline-flex; align-items: center; gap: 8px; }
.nf-user img { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; }

/* ---------- Buttons ---------- */
.nf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 20px;
    border-radius: var(--nf-radius-full);
    border: 0;
    font-family: inherit;
    font-weight: 700;
    font-size: .95rem;
    cursor: pointer;
    background: var(--nf-mint);
    color: var(--nf-ink) !important;
    transition: background .15s, color .15s, transform .15s;
}
.nf-btn:hover { background: var(--nf-teal); color: var(--nf-ink) !important; }
.nf-btn-outline {
    background: transparent;
    color: var(--nf-surface) !important;
    box-shadow: inset 0 0 0 2px var(--nf-on-teal-deep-muted);
}
.nf-btn-outline:hover { background: rgba(255,255,255,.12); color: var(--nf-surface) !important; }

/* ---------- Hero ---------- */
.nf-hero {
    background: var(--nf-hero);
    color: #fff;
    padding: 72px 0 120px;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.nf-hero::after {
    content: "";
    position: absolute;
    right: -120px;
    top: -120px;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(79, 209, 181, .35), transparent 70%);
    pointer-events: none;
}
.nf-hero.is-compact { padding: 48px 0 96px; text-align: left; }
.nf-eyebrow {
    display: inline-block;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--nf-ink);
    background: var(--nf-mint);
    padding: 4px 12px;
    border-radius: var(--nf-radius-full);
    margin-bottom: 18px;
}
.nf-hero h1 {
    font-size: clamp(2rem, 4.5vw, 3.1rem);
    line-height: 1.12;
    margin: 0 0 14px;
    font-weight: 700;
    letter-spacing: -.01em;
}
.nf-hero.is-compact h1 { font-size: clamp(1.7rem, 3.5vw, 2.4rem); }
.nf-hero p.nf-lead {
    margin: 0 auto 32px;
    max-width: 640px;
    font-size: 1.1rem;
    color: var(--nf-on-teal-deep-muted);
}
.nf-hero.is-compact p.nf-lead { margin-left: 0; margin-bottom: 0; }

.nf-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    font-size: .9rem;
    color: var(--nf-on-teal-deep-muted);
    margin-bottom: 14px;
}
.nf-breadcrumbs a { color: #fff !important; font-weight: 500; }
.nf-breadcrumbs a:hover { text-decoration: underline; }

/* ---------- Search ---------- */
.nf-search {
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: 680px;
    margin: 0 auto;
    background: var(--nf-surface);
    border-radius: var(--nf-radius-full);
    padding: 6px 6px 6px 22px;
    box-shadow: 0 12px 32px rgba(2, 94, 75, .35);
}
.nf-search .nf-icon { color: var(--nf-muted); }
.nf-search input {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    font-family: inherit;
    font-size: 1.05rem;
    color: var(--nf-ink);
    padding: 12px 4px;
}
.nf-search input:focus { outline: none; }
.nf-search:focus-within { box-shadow: 0 0 0 3px var(--nf-mint), 0 12px 32px rgba(2, 94, 75, .35); }
.nf-search .nf-btn { padding: 12px 24px; }

/* ---------- Cards ---------- */
.nf-main { flex: 1; }
.nf-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    margin-top: -72px;
    position: relative;
    z-index: 1;
}
.nf-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    background: var(--nf-surface);
    border: 1px solid var(--nf-border);
    border-radius: var(--nf-radius-lg);
    padding: 28px 24px 24px;
    box-shadow: var(--nf-shadow-card);
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
    position: relative;
}
.nf-card:hover {
    transform: translateY(-4px);
    border-color: var(--nf-mint);
    box-shadow: 0 1px 2px #0406060f, 0 18px 40px #04060626;
}
.nf-card-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--nf-teal-tint);
    color: var(--nf-teal-ink);
    margin-bottom: 20px;
}
.nf-card-icon .nf-icon { width: 30px; height: 30px; }
.nf-card h2 {
    font-size: 1.25rem;
    margin: 0 0 8px;
    font-weight: 700;
}
.nf-card p {
    margin: 0 0 22px;
    color: var(--nf-ink-secondary);
    font-size: .95rem;
    flex: 1;
}
.nf-card-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    font-size: .95rem;
    color: var(--nf-teal-deep);
}
.nf-card-cta .nf-icon { transition: transform .2s; }
.nf-card:hover .nf-card-cta .nf-icon { transform: translateX(3px); }
.nf-card.is-accent { background: var(--nf-teal-deep); border-color: var(--nf-teal-deep); color: #fff; }
.nf-card.is-accent p { color: var(--nf-on-teal-deep-muted); }
.nf-card.is-accent .nf-card-icon { background: var(--nf-mint); color: var(--nf-ink); }
.nf-card.is-accent .nf-card-cta { color: var(--nf-mint); }
.nf-card.is-accent:hover { border-color: var(--nf-mint); }

/* ---------- Sections / lists ---------- */
.nf-section { padding: 56px 0 24px; }
.nf-section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}
.nf-section-head h2 { margin: 0; font-size: 1.4rem; }
.nf-section-head a { color: var(--nf-teal-deep) !important; font-weight: 500; font-size: .95rem; }
.nf-section-head a:hover { text-decoration: underline; }

.nf-panel {
    background: var(--nf-surface);
    border: 1px solid var(--nf-border);
    border-radius: var(--nf-radius-lg);
    box-shadow: var(--nf-shadow-card);
    padding: 28px;
    position: relative;
    z-index: 1;
}
.nf-panel.is-raised { margin-top: -64px; }

.nf-filter {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--nf-border);
    border-radius: var(--nf-radius-full);
    padding: 4px 18px;
    background: var(--nf-surface-mist);
    margin-bottom: 8px;
}
.nf-filter .nf-icon { color: var(--nf-muted); }
.nf-filter input {
    flex: 1;
    border: 0;
    background: transparent;
    font: inherit;
    padding: 10px 0;
    color: var(--nf-ink);
}
.nf-filter input:focus { outline: none; }
.nf-filter:focus-within { border-color: var(--nf-teal); box-shadow: 0 0 0 3px var(--nf-teal-tint); }

.nf-shelf { margin-top: 32px; }
.nf-shelf-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1.15rem;
    margin: 0 0 14px;
}
.nf-shelf-title .nf-count {
    font-size: .8rem;
    font-weight: 500;
    color: var(--nf-teal-ink);
    background: var(--nf-teal-tint);
    border-radius: var(--nf-radius-full);
    padding: 2px 10px;
}
.nf-books {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 14px;
}
.nf-book {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 16px;
    border: 1px solid var(--nf-border);
    border-radius: var(--nf-radius-md);
    background: var(--nf-surface);
    transition: border-color .15s, background .15s, transform .15s;
}
.nf-book:hover { border-color: var(--nf-mint); background: var(--nf-teal-tint-subtle); transform: translateY(-2px); }
.nf-book-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--nf-teal-tint);
    color: var(--nf-teal-ink);
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.nf-book strong { display: block; font-weight: 700; line-height: 1.3; }
.nf-book span { display: block; font-size: .85rem; color: var(--nf-ink-secondary); margin-top: 4px; }

.nf-empty {
    text-align: center;
    padding: 40px 16px;
    color: var(--nf-ink-secondary);
}

/* ---------- Book contents ---------- */
.nf-toc { list-style: none; margin: 0; padding: 0; }
.nf-toc > li + li { border-top: 1px solid var(--nf-border); }
.nf-toc-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 8px;
    border-radius: var(--nf-radius-sm);
    font-weight: 500;
}
a.nf-toc-item:hover { background: var(--nf-teal-tint-subtle); color: var(--nf-teal-ink); }
.nf-toc-item .nf-icon { color: var(--nf-teal); }
.nf-toc details > summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 8px;
    border-radius: var(--nf-radius-sm);
    font-weight: 700;
}
.nf-toc details > summary::-webkit-details-marker { display: none; }
.nf-toc details > summary:hover { background: var(--nf-teal-tint-subtle); }
.nf-toc details > summary .nf-chevron { margin-left: auto; color: var(--nf-muted); transition: transform .2s; }
.nf-toc details[open] > summary .nf-chevron { transform: rotate(90deg); }
.nf-toc details > summary .nf-icon:first-child { color: var(--nf-teal-deep); }
.nf-toc .nf-sub { list-style: none; margin: 0 0 12px 22px; padding: 0 0 0 16px; border-left: 2px solid var(--nf-teal-tint); }
.nf-toc .nf-sub .nf-toc-item { padding: 10px 8px; font-weight: 400; }
.nf-toc .nf-chapter-link { font-size: .85rem; font-weight: 500; color: var(--nf-teal-deep) !important; padding: 6px 8px; display: inline-block; }
.nf-toc .nf-chapter-link:hover { text-decoration: underline; }
.nf-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }

/* ---------- Footer ---------- */
.nf-footer {
    margin-top: 64px;
    background: var(--nf-ink);
    color: #c9d1cf;
    font-size: .9rem;
}
.nf-footer .nf-container {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding-top: 24px;
    padding-bottom: 24px;
}
.nf-footer a { color: var(--nf-mint) !important; }
.nf-footer a:hover { text-decoration: underline; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
    .nf-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .nf-container { padding: 0 16px; }
    .nf-header .nf-container { min-height: 64px; }
    .nf-logo img { height: 30px; }
    .nf-nav-link .nf-label { display: none; }
    .nf-hero { padding: 48px 0 96px; }
    .nf-search { padding-left: 16px; }
    .nf-search .nf-btn .nf-label { display: none; }
    .nf-search .nf-btn { padding: 12px 14px; }
    .nf-cards { grid-template-columns: 1fr; gap: 16px; }
    .nf-panel { padding: 20px 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .nf-portal * { transition: none !important; }
}

/* =====================================================================
   Formularios, alertas, tablas (soporte y ajustes)
   ===================================================================== */
.nf-narrow { max-width: 820px; }
.nf-inline-form { display: inline; margin: 0; }
.nf-icon-btn { border: 0; background: transparent; cursor: pointer; font: inherit; }
.nf-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.nf-muted { color: var(--nf-muted); font-weight: 400; }
.nf-hint { color: var(--nf-ink-secondary); font-size: .92rem; margin: 0 0 16px; }
.nf-hint a, .nf-form a:not(.nf-btn) { color: var(--nf-teal-deep) !important; font-weight: 500; text-decoration: underline; }
.nf-hint code, .nf-form code {
    font-size: .85em; background: var(--nf-surface-mist); border: 1px solid var(--nf-border);
    padding: 1px 6px; border-radius: 6px;
}
.nf-ok { color: var(--nf-teal-deep); }
.nf-ko { color: var(--nf-coral-ink); }

.nf-form-title { font-size: 1.2rem; margin: 32px 0 8px; }
.nf-form-title:first-of-type { margin-top: 8px; }
.nf-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.nf-field { margin-bottom: 18px; }
.nf-field label:not(.nf-file) { display: block; font-weight: 500; margin-bottom: 6px; }
.nf-form input[type=text], .nf-form input[type=email], .nf-form input[type=url],
.nf-form input[type=number], .nf-form select, .nf-form textarea {
    width: 100%;
    font: inherit;
    color: var(--nf-ink);
    background: var(--nf-surface);
    border: 1px solid var(--nf-control-border);
    border-radius: var(--nf-radius-sm);
    padding: 10px 12px;
    transition: border-color .15s, box-shadow .15s;
}
.nf-form textarea { resize: vertical; min-height: 160px; }
.nf-form input:focus, .nf-form select:focus, .nf-form textarea:focus {
    outline: none; border-color: var(--nf-teal); box-shadow: 0 0 0 3px var(--nf-teal-tint);
}
.nf-field-error { color: var(--nf-coral-ink); font-size: .88rem; margin: 6px 0 0; }
.nf-check { display: flex; gap: 10px; align-items: center; margin: 6px 0; cursor: pointer; }
.nf-check input { width: 18px; height: 18px; accent-color: var(--nf-teal-deep); }
.nf-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.nf-file {
    display: flex; align-items: center; gap: 10px; cursor: pointer;
    border: 1px dashed var(--nf-control-border); border-radius: var(--nf-radius-sm);
    padding: 14px 16px; background: var(--nf-surface-mist); color: var(--nf-ink-secondary);
}
.nf-file:hover { border-color: var(--nf-teal); color: var(--nf-teal-ink); }
.nf-file input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.nf-file:focus-within { outline: 3px solid var(--nf-ink); outline-offset: 2px; }

.nf-sender {
    display: flex; align-items: center; gap: 14px; padding: 14px 16px; margin-bottom: 20px;
    background: var(--nf-teal-tint-subtle); border: 1px solid var(--nf-teal-tint); border-radius: var(--nf-radius-md);
}
.nf-sender img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.nf-sender-label { display: block; font-size: .82rem; color: var(--nf-ink-secondary); }

.nf-form-actions { display: flex; justify-content: flex-end; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
.nf-form-actions.is-center { justify-content: center; }
.nf-btn-ghost { background: transparent; box-shadow: inset 0 0 0 1px var(--nf-control-border); color: var(--nf-ink) !important; }
.nf-btn-ghost:hover { background: var(--nf-surface-mist); color: var(--nf-ink) !important; }

.nf-alert { border-radius: var(--nf-radius-sm); padding: 12px 16px; margin-bottom: 20px; font-weight: 500; }
.nf-alert.is-error { background: var(--nf-coral-tint); color: var(--nf-coral-ink); }
.nf-alert.is-success { background: var(--nf-teal-tint); color: var(--nf-teal-ink); }

.nf-success { text-align: center; }
.nf-success .nf-card-icon { margin: 8px auto 16px; }
.nf-success h2 { margin: 0 0 10px; }
.nf-ticket-number {
    display: inline-block; margin-left: 6px; padding: 2px 12px; border-radius: var(--nf-radius-full);
    background: var(--nf-mint); color: var(--nf-ink); font-size: .9em;
}

.nf-table-wrap { overflow-x: auto; border: 1px solid var(--nf-border); border-radius: var(--nf-radius-md); }
.nf-table { width: 100%; border-collapse: collapse; min-width: 640px; }
.nf-table th, .nf-table td { text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--nf-border); vertical-align: middle; }
.nf-table th { font-size: .85rem; color: var(--nf-ink-secondary); background: var(--nf-surface-mist); font-weight: 500; }
.nf-table tr:last-child td { border-bottom: 0; }

/* Logo según tema */
.nf-logo-dark { display: none !important; }
html.dark-mode .nf-logo-light { display: none !important; }
html.dark-mode .nf-logo-dark { display: block !important; }

@media (max-width: 640px) {
    .nf-grid-2 { grid-template-columns: 1fr; }
}

/* =====================================================================
   Modo oscuro (se activa con la preferencia "modo oscuro" de BookStack)
   ===================================================================== */
html.dark-mode {
    color-scheme: dark;
    --nf-ink: #e8eeec;
    --nf-ink-secondary: #a9b5b2;
    --nf-muted: #8a9491;
    --nf-border: #24302e;
    --nf-control-border: #3a4845;
    --nf-surface: #131c1b;
    --nf-surface-mist: #0b1312;
    --nf-teal: #4fd1b5;
    --nf-teal-deep: #4fd1b5;
    --nf-teal-ink: #8fe6d3;
    --nf-teal-tint: #173a33;
    --nf-teal-tint-subtle: #11211f;
    --nf-on-teal-deep-muted: #c5ece3;
    --nf-coral-tint: #3a1d1d;
    --nf-coral-ink: #ff9a9a;
    --nf-shadow-card: 0 1px 2px #00000066, 0 10px 28px #00000080;
    --nf-hero: linear-gradient(100deg, #01382d 0%, #0b5c4c 55%, #01382d 100%);
}
html.dark-mode .nf-header { background: #0f1716; }
html.dark-mode .nf-footer { background: #050909; border-top: 1px solid var(--nf-border); }
html.dark-mode .nf-card.is-accent { background: #0b4a3d; border-color: #0b4a3d; }
html.dark-mode .nf-card.is-accent .nf-card-cta { color: var(--nf-mint); }
html.dark-mode .nf-search { box-shadow: 0 12px 32px #00000080; }
html.dark-mode .nf-btn:hover { background: #7ee0ca; }
html.dark-mode .nf-portal a:focus-visible,
html.dark-mode .nf-portal button:focus-visible { outline-color: var(--nf-mint); }
/* Texto siempre oscuro sobre fondos menta, y blanco sobre el degradado */
html.dark-mode .nf-btn:not(.nf-btn-ghost):not(.nf-btn-outline),
html.dark-mode .nf-eyebrow,
html.dark-mode .nf-card.is-accent .nf-card-icon,
html.dark-mode .nf-ticket-number { color: #040606 !important; }
html.dark-mode .nf-btn-outline { color: #fff !important; }
html.dark-mode .nf-card.is-accent { color: #fff; }
