/*!
 * LolaUp · tema brutalista (capa de tema)
 * Se carga DESPUÉS de application.css / authentication.css / dashboard.css y ANTES de extra/custom.css.
 * Todo el tema vive bajo `body.lb` (o `.lb-*`) para no alterar páginas que aún no lo usan.
 * Colores de marca leídos de extra/colors.css (Admin → General): --primaryColor / --secondaryColor / --iconColorOp2.
 * Fuentes: Bricolage Grotesque y JetBrains Mono (SIL OFL 1.1), autoalojadas en assets/fonts/brutal/.
 */

/* ---------- Fuentes (woff2, latin + latin-ext, variables) ---------- */
@font-face {
    font-family: 'Bricolage Grotesque';
    font-style: normal;
    font-weight: 400 800;
    font-stretch: 100%;
    font-display: swap;
    src: url('../../fonts/brutal/bricolagegrotesque-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Bricolage Grotesque';
    font-style: normal;
    font-weight: 400 800;
    font-stretch: 100%;
    font-display: swap;
    src: url('../../fonts/brutal/bricolagegrotesque-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: 'JetBrains Mono';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../../fonts/brutal/jetbrainsmono-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../../fonts/brutal/jetbrainsmono-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;
}

/* ---------- Tokens ---------- */
:root {
    --lu-pink: var(--primaryColor, #FF0080);
    --lu-berry: var(--secondaryColor, #8B0046);
    --lu-pink-soft: var(--iconColorOp2, #FF74B9);
    --lu-ink: #0A0A0A;
    --lu-paper: #F6F1EA;
    --lu-white: #FFFFFF;
    --lu-pink-tint: #FFE0EF;
    --lu-display: 'Bricolage Grotesque', 'Arial Black', 'Helvetica Neue', Arial, system-ui, sans-serif;
    --lu-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;
    --lu-bounce: cubic-bezier(.2, 1.5, .4, 1);
    --lu-bounce-soft: cubic-bezier(.2, 1.2, .4, 1);
    --lu-bounce-hard: cubic-bezier(.2, 1.8, .4, 1);
    --lu-wipe: cubic-bezier(.7, 0, .2, 1);
    --lu-gutter: clamp(16px, 4vw, 48px);
}

/* ---------- Keyframes ---------- */
@keyframes lb-dropIn { 0% { transform: translateY(-110%) rotate(-14deg); opacity: 0 } 60% { transform: translateY(8%) rotate(3deg); opacity: 1 } 100% { transform: none } }
@keyframes lb-marq { from { transform: translateX(0) } to { transform: translateX(-50%) } }
@keyframes lb-marqR { from { transform: translateX(-50%) } to { transform: translateX(0) } }
@keyframes lb-spin { to { transform: rotate(360deg) } }
@keyframes lb-bob { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(10px) } }
@keyframes lb-slideIn { from { transform: translateX(105%) } to { transform: none } }
@keyframes lb-popIn { 0% { transform: scale(.4) rotate(-8deg); opacity: 0 } 70% { transform: scale(1.08) rotate(2deg); opacity: 1 } 100% { transform: none } }
@keyframes lb-stamp { 0% { transform: scale(3) rotate(-30deg); opacity: 0 } 60% { transform: scale(.92) rotate(-8deg); opacity: 1 } 100% { transform: scale(1) rotate(-6deg) } }
@keyframes lb-flipIn { 0% { transform: translateY(-60%) rotateX(80deg); opacity: 0 } 100% { transform: none; opacity: 1 } }
@keyframes lb-fall { 0% { transform: translateY(-20px) rotate(0) } 100% { transform: translateY(110vh) rotate(720deg) } }
@keyframes lb-wobble { 0%, 100% { transform: rotate(-3deg) scale(1) } 50% { transform: rotate(3deg) scale(1.04) } }
@keyframes lb-wobble6 { 0%, 100% { transform: rotate(3deg) scale(1) } 50% { transform: rotate(9deg) scale(1.04) } }
@keyframes lb-up { from { transform: translateY(120%) } to { transform: none } }
@keyframes lb-upX { from { transform: translate(-50%, 140%) } to { transform: translate(-50%, 0) } }
@keyframes lb-blink { 50% { opacity: 0 } }
@keyframes lb-shine { 0% { background-position: -200% 0 } 100% { background-position: 200% 0 } }

/* Movimiento: toggle del root y preferencia del sistema */
[data-motion="off"] *, [data-motion="off"] *::before, [data-motion="off"] *::after { animation: none !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- Base ---------- */
body.lb {
    background: var(--lu-paper);
    color: var(--lu-ink);
    font-family: var(--lu-display);
    font-size: 17px;
    line-height: 1.45;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-optical-sizing: auto;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
.lb *, .lb *::before, .lb *::after { box-sizing: border-box; }
.lb ::selection { background: var(--lu-pink); color: var(--lu-ink); }
.lb :focus-visible { outline: 3px solid var(--lu-pink); outline-offset: 3px; box-shadow: none; }
.lb h1, .lb h2, .lb h3, .lb h4, .lb h5, .lb h6, .lb .h1, .lb .h2, .lb .h3, .lb .h4, .lb .h5, .lb .h6 { font-family: var(--lu-display); font-weight: 800; letter-spacing: -.02em; color: inherit; }
.lb a { color: inherit; }
.lb .lb-link, .lb .link, .lb-prose a { color: var(--lu-ink); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.lb .lb-link:hover, .lb .link:hover, .lb-prose a:hover { color: var(--lu-berry); }
.lb img { max-width: 100%; }
.lb .text-muted { color: #4a4a4a !important; }
.lb .red { color: var(--lu-berry); }
.lb-main { flex: 1 0 auto; overflow-x: clip; width: 100%; }
.lb-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.lb-mono { font-family: var(--lu-mono); }
.lb-wrap { padding-left: var(--lu-gutter); padding-right: var(--lu-gutter); }
.lb-logo-ink { filter: brightness(0); }

/* ---------- Botones ---------- */
.lb .lb-btn,
.lb .btn.btn-primary,
.lb .btn.btn-secondary,
.lb .btn.btn-outline-primary,
.lb .btn.btn-outline-secondary,
.lb .btn.btn-gradient,
.lb .btn.btn-green,
.lb .btn.btn-danger,
.lb .btn.btn-dark,
.lb .btn.btn-facebook {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    font: 800 17px/1.1 var(--lu-display);
    letter-spacing: -.01em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--lu-ink);
    background: var(--lu-pink);
    border: 3px solid var(--lu-ink);
    border-radius: 0;
    padding: 10px 18px;
    box-shadow: 4px 4px 0 var(--lu-ink);
    cursor: pointer;
    transition: transform .15s, box-shadow .15s, background-color .15s, color .15s, letter-spacing .25s;
}
.lb .lb-btn::before, .lb .btn::before { content: none; }
.lb .lb-btn:hover, .lb .btn.btn-primary:hover, .lb .btn.btn-secondary:hover, .lb .btn.btn-outline-primary:hover,
.lb .btn.btn-outline-secondary:hover, .lb .btn.btn-gradient:hover, .lb .btn.btn-green:hover, .lb .btn.btn-danger:hover, .lb .btn.btn-dark:hover, .lb .btn.btn-facebook:hover {
    transform: translate(-2px, -2px);
    box-shadow: 6px 6px 0 var(--lu-ink);
    color: var(--lu-ink);
}
.lb .lb-btn:active, .lb .btn.btn-primary:active, .lb .btn.btn-secondary:active, .lb .btn.btn-outline-primary:active,
.lb .btn.btn-gradient:active, .lb .btn.btn-green:active, .lb .btn.btn-danger:active, .lb .btn.btn-dark:active {
    transform: translate(4px, 4px);
    box-shadow: 0 0 0 var(--lu-ink);
}
.lb .btn:disabled, .lb .btn.disabled, .lb .lb-btn:disabled { opacity: .55; transform: none; box-shadow: 2px 2px 0 var(--lu-ink); cursor: not-allowed; }
.lb .btn.btn-secondary, .lb .btn.btn-outline-secondary, .lb .btn.btn-outline-primary, .lb .btn.btn-gradient, .lb .lb-btn--paper { background: var(--lu-paper); }
.lb .btn.btn-secondary:hover, .lb .btn.btn-outline-secondary:hover, .lb .btn.btn-outline-primary:hover, .lb .btn.btn-gradient:hover, .lb .lb-btn--paper:hover { background: var(--lu-pink); }
.lb .btn.btn-danger { background: var(--lu-ink); color: var(--lu-paper); box-shadow: 4px 4px 0 var(--lu-berry); }
.lb .btn.btn-danger:hover { color: var(--lu-paper); background: var(--lu-berry); box-shadow: 6px 6px 0 var(--lu-ink); }
.lb .btn.btn-green { background: var(--lu-paper); }
.lb .lb-btn--ink, .lb .btn.btn-dark {
    background: var(--lu-ink);
    color: var(--lu-pink);
    box-shadow: 6px 6px 0 var(--lu-pink);
}
.lb .lb-btn--ink:hover, .lb .btn.btn-dark:hover { color: var(--lu-pink); box-shadow: 9px 9px 0 var(--lu-pink); transform: translate(-3px, -3px); }
.lb .lb-btn--ink:active, .lb .btn.btn-dark:active { transform: translate(6px, 6px); box-shadow: 0 0 0 var(--lu-pink); }
.lb .lb-btn--ghost { background: transparent; box-shadow: none; }
.lb .lb-btn--ghost:hover { background: var(--lu-white); box-shadow: 4px 4px 0 var(--lu-ink); }
.lb .lb-btn--lg { font-size: 20px; padding: 16px 26px; }
.lb .lb-btn--mono, .lb .lb-chip-btn {
    font: 700 13px/1.1 var(--lu-mono);
    letter-spacing: .04em;
    background: var(--lu-paper);
    box-shadow: none;
    padding: 10px 12px;
}
.lb .lb-btn--mono:hover, .lb .lb-chip-btn:hover { background: var(--lu-pink); box-shadow: none; transform: none; }
.lb .lb-btn--block { width: 100%; }
.lb .btn.btn-facebook { background: #1877F2; color: #fff; }
.lb .btn.btn-facebook:hover { color: #fff; }
.lb .btn-close { border-radius: 0; opacity: 1; }

/* ---------- Formularios ---------- */
.lb .form-label, .lb .lb-label {
    display: block;
    font: 700 13px/1.3 var(--lu-mono);
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 6px;
    color: var(--lu-ink);
}
.lb .form-control, .lb .form-select, .lb .lb-input {
    font: 400 18px/1.3 var(--lu-display);
    color: var(--lu-ink);
    background-color: var(--lu-white);
    border: 3px solid var(--lu-ink);
    border-radius: 0;
    padding: 12px;
    min-height: 50px;
    box-shadow: none;
    transition: box-shadow .15s;
}
.lb .form-select { padding-right: 40px; }
.lb textarea.form-control { min-height: 120px; }
.lb .form-control:focus, .lb .form-select:focus, .lb .lb-input:focus {
    border-color: var(--lu-ink);
    box-shadow: 5px 5px 0 var(--lu-pink);
    outline: none;
}
.lb .form-control::placeholder { color: #6b6b6b; }
.lb .form-control[readonly] { background: var(--lu-white); }
.lb .form-control.is-invalid { border-color: var(--lu-berry); box-shadow: 5px 5px 0 var(--lu-berry); }
.lb .form-check-input {
    width: 24px; height: 24px;
    border: 3px solid var(--lu-ink);
    border-radius: 0;
    margin-top: 0;
    background-color: var(--lu-white);
    cursor: pointer;
}
.lb .form-check-input:checked { background-color: var(--lu-pink); border-color: var(--lu-ink); }
.lb .form-check-input:focus { box-shadow: 0 0 0 3px var(--lu-pink); border-color: var(--lu-ink); }
.lb .form-check { display: flex; align-items: center; gap: 10px; padding-left: 0; }
.lb .form-check .form-check-input { float: none; margin-left: 0; flex: none; }
.lb .form-check-label { font-size: 17px; cursor: pointer; }
.lb .input-group > .form-control { border-right: 0; }
.lb .input-group > .btn { box-shadow: none; transform: none; }
.lb .input-password { position: relative; display: flex; border: 3px solid var(--lu-ink); background: var(--lu-white); transition: box-shadow .15s; }
.lb .input-password:focus-within { box-shadow: 5px 5px 0 var(--lu-pink); }
.lb .input-password .form-control { border: 0; flex: 1; min-width: 0; box-shadow: none !important; }
.lb .input-password button {
    position: static;
    flex: none;
    min-width: 54px;
    border: 0;
    border-left: 3px solid var(--lu-ink);
    background: var(--lu-paper);
    color: var(--lu-ink);
    font: 700 13px var(--lu-mono);
    cursor: pointer;
}
.lb .input-password button:hover { background: var(--lu-pink); }
.lb .form-phone { display: flex; gap: 0; }
.lb .form-phone .form-select { flex: 0 0 42%; border-right: 0; }

/* ---------- Tarjetas / modales / menús ---------- */
.lb .card, .lb .dash-card {
    background: var(--lu-white);
    border: 3px solid var(--lu-ink) !important;
    border-radius: 0;
    box-shadow: 5px 5px 0 var(--lu-ink) !important;
}
.lb .card-header, .lb .dash-card .dash-card-header { background: var(--lu-paper); border-bottom: 3px solid var(--lu-ink); border-radius: 0 !important; font-weight: 800; }
.lb .modal-content {
    background: var(--lu-paper);
    border: 4px solid var(--lu-ink);
    border-radius: 0;
    box-shadow: 12px 12px 0 var(--lu-ink);
    animation: lb-popIn .45s var(--lu-bounce-soft);
}
.lb .modal-header { border-bottom: 3px solid var(--lu-ink); background: var(--lu-pink); }
.lb .modal-header.border-0 { background: transparent; }
.lb .modal-title { font-weight: 800; font-size: 26px; letter-spacing: -.02em; }
.modal-backdrop.show { opacity: .55; background: #0A0A0A; }
.lb .dropdown-menu {
    border: 3px solid var(--lu-ink);
    border-radius: 0;
    box-shadow: 5px 5px 0 var(--lu-ink);
    background: var(--lu-white);
    padding: 6px;
    font: 700 13px var(--lu-mono);
}
.lb .dropdown-item { padding: 10px 12px; color: var(--lu-ink); border-radius: 0; white-space: normal; }
.lb .dropdown-item:hover, .lb .dropdown-item:focus { background: var(--lu-pink); color: var(--lu-ink); }
.lb .dropdown-item.active, .lb .dropdown-item:active { background: var(--lu-ink); color: var(--lu-pink); }
.lb .dropdown-item.text-danger { color: var(--lu-berry) !important; }
.lb .alert { border: 3px solid var(--lu-ink); border-radius: 0; background: var(--lu-white); color: var(--lu-ink); font-weight: 600; }
.lb .alert-danger { box-shadow: 5px 5px 0 var(--lu-berry); }
.lb .alert-info, .lb .alert-success, .lb .alert-warning { box-shadow: 5px 5px 0 var(--lu-pink); }
.lb .table { --bs-table-bg: transparent; }
.lb .table > :not(caption) > * > * { border-bottom: 2px solid var(--lu-ink); }
.lb .badge { border-radius: 0; font-family: var(--lu-mono); }
.lb .page-item .page-link { border: 3px solid var(--lu-ink) !important; border-radius: 0 !important; color: var(--lu-ink); font: 700 14px var(--lu-mono); min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; margin-left: 6px !important; background: var(--lu-white); }
.lb .page-item.active .page-link { background: var(--lu-ink); color: var(--lu-pink); border-radius: 0; }
.lb .page-item .page-link:hover { background: var(--lu-pink); color: var(--lu-ink); }
.lb .tooltip-inner { background: var(--lu-ink); color: var(--lu-pink); border-radius: 0; font: 700 12px var(--lu-mono); }

/* Toastr → toast brutal (fijo arriba al centro) */
#toast-container { top: 72px !important; left: 50% !important; right: auto !important; bottom: auto !important; transform: translateX(-50%); width: min(92vw, 440px); pointer-events: none; }
#toast-container > div {
    width: 100% !important;
    margin: 0 0 10px !important;
    padding: 14px 20px !important;
    background: #0A0A0A !important;
    background-image: none !important;
    color: var(--lu-pink) !important;
    border: 3px solid var(--lu-pink);
    border-radius: 0 !important;
    box-shadow: 6px 6px 0 var(--lu-pink) !important;
    opacity: 1 !important;
    font: 700 15px/1.35 var(--lu-mono);
    pointer-events: auto;
    animation: lb-popIn .35s var(--lu-bounce-hard);
}
#toast-container > .toast-error { border-color: #fff; color: #fff !important; box-shadow: 6px 6px 0 var(--lu-berry) !important; }
#toast-container > .toast-error::before { content: '✕ '; }
#toast-container .toast-progress { background: var(--lu-pink); opacity: 1; height: 3px; }
#toast-container .toast-close-button { color: inherit; opacity: 1; text-shadow: none; }

/* Toast propio del tema */
.lb-toast { position: fixed; left: 50%; top: 64px; transform: translateX(-50%); z-index: 2000; pointer-events: none; width: max-content; max-width: 92vw; }
.lb-toast > div {
    background: var(--lu-ink); color: var(--lu-pink);
    border: 3px solid var(--lu-pink); box-shadow: 6px 6px 0 var(--lu-pink);
    padding: 14px 20px; font: 700 15px/1.35 var(--lu-mono);
    animation: lb-popIn .35s var(--lu-bounce-hard);
}

/* SweetAlert2 */
.lb .swal2-popup, .swal2-popup { border: 4px solid #0A0A0A; border-radius: 0 !important; box-shadow: 12px 12px 0 #0A0A0A; background: #F6F1EA; font-family: var(--lu-display); }
.swal2-title { font-weight: 800 !important; letter-spacing: -.02em; color: #0A0A0A !important; }
.swal2-styled { border-radius: 0 !important; border: 3px solid #0A0A0A !important; font: 800 16px var(--lu-display) !important; text-transform: uppercase; box-shadow: 4px 4px 0 #0A0A0A !important; }
.swal2-styled.swal2-confirm { background: var(--lu-pink) !important; color: #0A0A0A !important; }
.swal2-styled.swal2-cancel { background: #F6F1EA !important; color: #0A0A0A !important; }

/* Cookies (helper cookiePopUp) */
.lb .cookies {
    left: 16px;
    width: min(calc(100vw - 32px), 340px);
    max-width: none;
    padding: 16px;
    border: 3px solid var(--lu-ink);
    border-radius: 0;
    background: var(--lu-white);
    box-shadow: 6px 6px 0 var(--lu-ink);
    transition: none;
    z-index: 1050;
}
.lb .cookies.show { bottom: 16px; animation: lb-up .6s var(--lu-bounce) .2s backwards; }
.lb .cookies .cookies-img { display: none; }
.lb .cookies .cookies-text { text-align: left !important; font-size: 16px; line-height: 1.35; margin: 0 0 12px !important; }
.lb .cookies .d-flex { gap: 8px; }
.lb .cookies .btn { flex: 1; margin: 0 !important; padding: 10px !important; font: 700 13px var(--lu-mono); box-shadow: none; }
.lb .cookies .btn:hover { transform: none; box-shadow: none; }

/* ---------- Espacios de anuncio (reservan tamaño; se ocultan si el proveedor no imprime nada) ---------- */
.lb-ad { position: relative; margin: 0 auto 28px; width: 100%; display: flex; flex-direction: column; align-items: center; }
.lb-ad::before { content: attr(data-label); align-self: flex-start; font: 700 11px var(--lu-mono); letter-spacing: .1em; text-transform: uppercase; margin-bottom: 4px; }
.lb-ad > * { width: 100%; display: flex; justify-content: center; align-items: center; border: 3px dashed var(--lu-ink); background: repeating-linear-gradient(45deg, transparent 0 10px, rgba(0, 0, 0, .04) 10px 20px); overflow: hidden; }
.lb-ad--leader { max-width: 734px; }
.lb-ad--page { width: calc(100% - 2 * var(--lu-gutter)); }
.lb-ad--leader > * { min-height: 96px; }
.lb-ad--box { max-width: 306px; }
.lb-ad--box > * { min-height: 256px; }
.lb-ad:has(> :empty) { display: none; }
.lb-ad center, .lb-ad .vr-adv-unit { margin: 0 !important; padding: 0 !important; width: 100%; }

/* ---------- Cabecera pública ---------- */
.lb-header { position: sticky; top: 0; z-index: 1020; background: var(--lu-paper); border-bottom: 3px solid var(--lu-ink); }
.lb-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding: 12px var(--lu-gutter); }
.lb-nav .lb-logo { display: block; flex: none; }
.lb-nav .lb-logo img { display: block; height: 42px; width: auto; max-width: 160px; transition: transform .3s var(--lu-bounce); }
.lb-nav .lb-logo:hover img { transform: rotate(-4deg) scale(1.05); }
.lb-nav .nav-bar-menu { order: 3; flex: 1 1 100%; min-width: 0; }
.lb-nav .nav-bar-menu .overlay, .lb-nav .nav-bar-menu .btn-close, .lb-nav .nav-bar-menu-icon { display: none !important; }
.lb-nav .nav-bar-links { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin: 0 -6px; padding: 2px 6px; }
.lb-nav .nav-bar-links::-webkit-scrollbar { display: none; }
.lb-nav .nav-bar-link {
    font: 700 14px/1 var(--lu-mono);
    letter-spacing: .04em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--lu-ink);
    padding: 12px 10px;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .15s, color .15s;
}
.lb-nav .nav-bar-link:hover, .lb-nav .nav-bar-link:focus-visible { background: var(--lu-ink); color: var(--lu-pink); }
.lb-nav-actions { order: 2; margin-left: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.lb-nav-actions .lb-lang > button, .lb-nav-actions .lb-user > button {
    display: inline-flex; align-items: center; gap: 6px;
    min-height: 44px; padding: 8px 8px;
    font: 700 13px var(--lu-mono); letter-spacing: .04em; text-transform: uppercase;
    background: transparent; border: 0; color: var(--lu-ink); cursor: pointer;
}
.lb-nav-actions .lb-lang > button:hover { background: var(--lu-ink); color: var(--lu-pink); }
.lb-nav-actions .lb-user > button { border: 3px solid var(--lu-ink); background: var(--lu-white); padding: 4px 10px 4px 4px; }
.lb-nav-actions .lb-user > button img { width: 32px; height: 32px; object-fit: cover; border: 2px solid var(--lu-ink); }
.lb-nav-actions .lb-user .lb-user-name { max-width: 14ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lb-nav-signin {
    display: inline-flex; align-items: center; min-height: 44px;
    font: 700 14px var(--lu-mono); letter-spacing: .04em; text-transform: uppercase; text-decoration: none;
    color: var(--lu-ink); background: var(--lu-paper); border: 3px solid var(--lu-ink); padding: 8px 14px;
    transition: transform .15s, box-shadow .15s;
}
.lb-nav-signin:hover { transform: translate(-3px, -3px); box-shadow: 3px 3px 0 var(--lu-ink); color: var(--lu-ink); }
.lb-nav-up { font-size: 15px !important; padding: 8px 16px !important; }
@media (min-width: 1100px) {
    .lb-nav .nav-bar-menu { order: 1; flex: 1 1 auto; }
    .lb-nav-actions { order: 2; }
}
@media (max-width: 480px) {
    .lb-nav { gap: 10px 12px; }
    .lb-nav .lb-logo img { height: 34px; }
    .lb-nav-actions { gap: 6px; }
    .lb-nav-signin { padding: 8px 10px; font-size: 13px; }
    .lb-nav-up { padding: 8px 12px !important; }
    .lb-nav-actions .lb-user .lb-user-name { display: none; }
}

/* Título de página (layout pages) */
.lb-pagehead { padding: clamp(28px, 5vw, 56px) var(--lu-gutter) 0; }
.lb-pagehead h1 { margin: 0; font-weight: 800; font-size: clamp(44px, 7vw, 104px); line-height: .88; letter-spacing: -.045em; text-transform: uppercase; overflow-wrap: anywhere; }

/* ---------- Pie ---------- */
.lb-footer { background: var(--lu-ink); color: var(--lu-paper); padding: 56px var(--lu-gutter) 28px; overflow: hidden; margin-top: auto; }
.lb-footer-logo { display: block; }
.lb-footer-logo img { width: 100%; height: auto; display: block; transition: transform .6s var(--lu-bounce); }
.lb-footer-logo:hover img { transform: skewX(-8deg) scale(1.02); }
.lb-footer-bar { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-top: 32px; padding-top: 20px; border-top: 3px solid var(--lu-pink); font: 700 13px/1.5 var(--lu-mono); letter-spacing: .03em; }
.lb-footer-bar p { margin: 0; }
.lb-footer-links { display: flex; gap: 8px 20px; flex-wrap: wrap; align-items: center; }
.lb-footer-links a { color: var(--lu-paper); text-transform: uppercase; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; padding: 6px 0; }
.lb-footer-links a:hover { color: var(--lu-pink); }
.lb-motion-toggle { font: 700 12px var(--lu-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--lu-paper); background: transparent; border: 2px solid var(--lu-paper); padding: 8px 10px; min-height: 36px; cursor: pointer; }
.lb-motion-toggle:hover, .lb-motion-toggle[aria-pressed="true"] { background: var(--lu-pink); color: var(--lu-ink); border-color: var(--lu-pink); }

/* ---------- Titulares compartidos ---------- */
.lb-h2 { margin: 0; font-weight: 800; font-size: clamp(48px, 7vw, 112px); line-height: .85; letter-spacing: -.04em; text-transform: uppercase; overflow-wrap: anywhere; }
.lb-lede { font: 400 15px/1.5 var(--lu-mono); max-width: 38ch; margin: 0; }
.lb-sechead { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; margin-bottom: 36px; }
.lb-drop { display: inline-block; animation: lb-dropIn .9s var(--lu-bounce) backwards; animation-delay: calc(var(--l, 0) * .32s + var(--i, 0) * .045s); transition: transform .2s, color .2s; }
.lb-letters:hover .lb-drop:hover { transform: translateY(-10px) rotate(-8deg); color: var(--lu-berry); }
.lb-line { display: block; overflow: hidden; padding: .04em 0; }
.lb-sp { display: inline-block; width: .28em; }

/* ---------- Home: hero ---------- */
.lb-hero { padding: clamp(28px, 5vw, 64px) var(--lu-gutter) 56px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 40px; align-items: center; position: relative; }
.lb-badge { display: inline-flex; gap: 8px; align-items: center; font: 700 13px/1.3 var(--lu-mono); letter-spacing: .12em; text-transform: uppercase; border: 2px solid var(--lu-ink); padding: 6px 10px; background: var(--lu-white); }
.lb-badge::before { content: ''; flex: none; width: 10px; height: 10px; background: var(--lu-pink); animation: lb-blink 1s steps(1) infinite; }
.lb-hero-text { container-type: inline-size; min-width: 0; }
.lb-hero h1 { margin: 20px 0 0; font-weight: 800; font-size: clamp(56px, 10.5vw, 176px); line-height: .84; letter-spacing: -.045em; text-transform: uppercase; }
.lb-hero h1 .lb-line:last-child { color: var(--lu-pink); }
/* Que la palabra más larga quepa en su columna (el tope de 176px del diseño desborda una columna de ~660px) */
@supports (font-size: 1cqi) { .lb-hero h1 { font-size: clamp(56px, min(10.5vw, 18cqi), 176px); } }
.lb-hero-copy { font-size: clamp(18px, 1.6vw, 22px); line-height: 1.4; max-width: 34ch; margin: 28px 0 0; text-wrap: pretty; }
.lb-hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 28px; }
.lb-hero-stage { position: relative; min-height: 420px; display: flex; align-items: center; justify-content: center; }
.lb-dropcard {
    width: min(100%, 460px); aspect-ratio: 1 / 1.05;
    background: var(--lu-pink); color: var(--lu-ink);
    border: 4px solid var(--lu-ink); box-shadow: 14px 14px 0 var(--lu-ink);
    transform: rotate(2.5deg);
    display: flex; flex-direction: column; justify-content: space-between;
    padding: 28px; cursor: pointer; text-decoration: none;
    transition: transform .3s cubic-bezier(.2, 1.6, .4, 1), box-shadow .3s;
}
.lb-dropcard:hover, .lb-dropcard:focus-visible { transform: rotate(-1.5deg) scale(1.03); box-shadow: 20px 20px 0 var(--lu-ink); color: var(--lu-ink); }
.lb-dropcard-head, .lb-dropcard-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; font: 700 13px var(--lu-mono); letter-spacing: .08em; text-transform: uppercase; }
.lb-dropcard-zone { border: 4px dashed var(--lu-ink); flex: 1; margin: 20px 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; background: rgba(255, 255, 255, .12); text-align: center; padding: 10px; }
.lb-arrow { font: 800 110px/1 var(--lu-display); animation: lb-bob 1.6s ease-in-out infinite; }
.lb-dropcard-zone strong { font: 800 clamp(26px, 3vw, 38px)/.95 var(--lu-display); letter-spacing: -.02em; text-transform: uppercase; }
.lb-sticker { position: absolute; top: -6px; left: -4px; width: 150px; height: 150px; background: var(--lu-paper); border: 3px solid var(--lu-ink); border-radius: 50%; display: flex; align-items: center; justify-content: center; pointer-events: none; }
.lb-sticker svg { position: absolute; width: 140px; height: 140px; animation: lb-spin 14s linear infinite; }
.lb-sticker svg text { font: 700 16.5px var(--lu-mono); letter-spacing: 2.5px; fill: var(--lu-ink); text-transform: uppercase; }
.lb-sticker i { width: 46px; height: 46px; background: var(--lu-pink); border: 3px solid var(--lu-ink); transform: rotate(45deg); }
@media (max-width: 520px) {
    .lb-hero-stage { min-height: 0; padding: 30px 6px 10px; }
    .lb-sticker { width: 110px; height: 110px; top: 4px; }
    .lb-sticker svg { width: 102px; height: 102px; }
    .lb-sticker i { width: 34px; height: 34px; }
    .lb-arrow { font-size: 80px; }
    .lb-dropcard { padding: 20px; }
}

/* Cintas */
.lb-marq { overflow: hidden; position: relative; margin: 0 -20px; }
.lb-marq > div { display: flex; width: max-content; white-space: nowrap; }
.lb-marq span { padding-right: 24px; }
.lb-marq--ink { background: var(--lu-ink); color: var(--lu-pink); border-block: 3px solid var(--lu-ink); transform: rotate(-1.5deg); z-index: 2; }
.lb-marq--ink > div { animation: lb-marq 22s linear infinite; font: 800 clamp(28px, 4vw, 54px)/1 var(--lu-display); padding: 16px 0; letter-spacing: -.02em; text-transform: uppercase; }
.lb-marq--pink { background: var(--lu-pink); color: var(--lu-ink); border-bottom: 3px solid var(--lu-ink); transform: rotate(1deg); margin-top: -6px; }
.lb-marq--pink > div { animation: lb-marqR 30s linear infinite; font: 700 18px/1 var(--lu-mono); padding: 12px 0; text-transform: uppercase; }

/* Funciones */
.lb-features { padding: 96px var(--lu-gutter) 72px; }
.lb-fgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); border-top: 3px solid var(--lu-ink); border-left: 3px solid var(--lu-ink); }
.lb-fcell {
    border-right: 3px solid var(--lu-ink); border-bottom: 3px solid var(--lu-ink);
    padding: 28px; min-height: 250px; display: flex; flex-direction: column; justify-content: space-between; gap: 24px;
    background: linear-gradient(var(--lu-pink), var(--lu-pink)) bottom / 100% 0% no-repeat var(--lu-paper);
    transition: background-size .35s var(--lu-wipe);
}
.lb-fcell:hover { background-size: 100% 100%; }
.lb-fcell-top { display: flex; justify-content: space-between; align-items: flex-start; }
.lb-fcell-n { font: 800 72px/.8 var(--lu-display); letter-spacing: -.04em; }
.lb-fcell-g { font: 700 26px var(--lu-mono); }
.lb-fcell h3 { margin: 0 0 8px; font-weight: 800; font-size: 28px; letter-spacing: -.02em; line-height: 1; }
.lb-fcell p { margin: 0; font-size: 17px; line-height: 1.4; text-wrap: pretty; }

/* Precios */
.lb-pricing { padding: 72px var(--lu-gutter); background: var(--lu-ink); color: var(--lu-paper); border-block: 3px solid var(--lu-ink); }
.lb-pricing .lb-h2 { color: var(--lu-pink); }
.lb-pricing .lb-lede { color: var(--lu-paper); }
.lb-plans { display: block; }
.lb .plan-switcher {
    position: relative; display: grid; grid-template-columns: repeat(3, 1fr);
    border: 3px solid var(--lu-ink); min-width: min(100%, 420px); background: transparent; border-radius: 0; padding: 0; box-shadow: none;
}
.lb-pricing .plan-switcher { border-color: var(--lu-paper); }
.lb .plan-switcher::before { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 33.3333%; background: var(--lu-pink); transition: left .45s var(--lu-bounce); }
.lb .plan-switcher:has(.plan-switcher-item:nth-child(2).active)::before { left: 33.3333%; }
.lb .plan-switcher:has(.plan-switcher-item:nth-child(3).active)::before { left: 66.6667%; }
.lb .plan-switcher .plan-switcher-item {
    position: relative; z-index: 1; min-height: 48px;
    font: 700 14px var(--lu-mono); letter-spacing: .04em; text-transform: uppercase;
    background: transparent; border: 0; border-radius: 0; color: inherit; padding: 14px 10px; cursor: pointer; transition: color .3s;
}
.lb .plan-switcher .plan-switcher-item.active { color: var(--lu-ink); background: transparent; box-shadow: none; }
.lb .plans { margin-top: 48px; }
.lb .plans .plans-item { display: none; }
.lb .plans .plans-item.active { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 28px; align-items: start; }
.lb .plans .plan {
    position: relative; height: auto;
    background: var(--lu-paper); color: var(--lu-ink);
    border: 3px solid var(--lu-ink); border-radius: 0;
    padding: 28px; box-shadow: 8px 8px 0 var(--lu-ink);
    transition: transform .3s var(--lu-bounce);
}
.lb-pricing .plans .plan { border-color: var(--lu-paper); box-shadow: 8px 8px 0 var(--lu-pink); }
.lb .plans .plan:hover { transform: translateY(-8px) rotate(-1deg); }
.lb .plans .plan.plan-featured { background: var(--lu-pink); transform: translateY(-12px); box-shadow: 8px 8px 0 var(--lu-ink); }
.lb-pricing .plans .plan.plan-featured { box-shadow: 8px 8px 0 var(--lu-paper); }
.lb .plans .plan.plan-featured:hover { transform: translateY(-20px) rotate(-1deg); }
.lb .plans .plan .plan-badge {
    position: absolute; top: -18px; right: 16px; left: auto; width: auto; height: auto;
    background: var(--lu-ink); color: var(--lu-pink);
    font: 700 13px var(--lu-mono); letter-spacing: .06em; text-transform: uppercase;
    padding: 8px 12px; border: 3px solid var(--lu-pink); border-radius: 0;
    transform: rotate(6deg); animation: lb-wobble6 2.4s ease-in-out infinite;
}
.lb .plans .plan .plan-badge span { color: inherit; background: transparent; padding: 0; }
.lb .plans .plan .plan-title { margin: 0; font-weight: 800; font-size: 34px; letter-spacing: -.02em; line-height: 1; text-transform: uppercase; overflow-wrap: anywhere; }
.lb .plans .plan .plan-text { margin: 10px 0 0; font-size: 16px; color: inherit; }
.lb-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; margin: 18px 0 4px; }
.lb-price strong { font: 800 72px/.9 var(--lu-display); letter-spacing: -.05em; }
.lb-price span { font: 700 14px var(--lu-mono); text-transform: uppercase; }
.lb-rows { list-style: none; padding: 0; margin: 22px 0; border-top: 2px solid var(--lu-ink); }
.lb-rows li { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 10px 0; border-bottom: 2px solid var(--lu-ink); font-size: 16px; }
.lb-rows li strong { font: 700 14px var(--lu-mono); text-align: right; }
.lb-rows li.is-off { opacity: .7; text-decoration: line-through; text-decoration-thickness: 2px; }
.lb-rows .lb-tick { font: 700 15px var(--lu-mono); }
.lb .plans .plan .plan-action { margin-top: 0; }
.lb .plans .plan .plan-action form { margin: 0; }
.lb .plans .plan .plan-action .btn {
    width: 100%; min-height: 54px;
    background: var(--lu-ink); color: var(--lu-pink);
    border: 3px solid var(--lu-ink); box-shadow: none;
    font: 800 18px var(--lu-display); padding: 14px !important;
    transition: letter-spacing .25s;
}
.lb .plans .plan .plan-action .btn::after { content: ' →'; }
.lb .plans .plan .plan-action .btn:hover { letter-spacing: .08em; transform: none; box-shadow: none; color: var(--lu-pink); }
.lb .plans .plan.plan-featured .plan-action .btn { color: var(--lu-paper); }
.lb .plans .alert { grid-column: 1 / -1; }

/* FAQ */
.lb-faq { padding: 88px var(--lu-gutter); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 40px; }
.lb-faq-more { display: inline-block; margin-top: 24px; font: 700 15px var(--lu-mono); text-transform: uppercase; }
.lb-acc { border-top: 3px solid var(--lu-ink); }
.lb-acc details { border-bottom: 3px solid var(--lu-ink); transition: background-color .25s; }
.lb-acc details[open] { background: var(--lu-pink); }
.lb-acc summary {
    list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px;
    padding: 20px 12px; cursor: pointer;
    font: 800 clamp(20px, 2vw, 26px)/1.15 var(--lu-display); letter-spacing: -.01em;
}
.lb-acc summary::-webkit-details-marker { display: none; }
.lb-acc summary::after { content: '+'; flex: none; font: 400 40px/1 var(--lu-mono); transition: transform .35s cubic-bezier(.2, 1.6, .4, 1); }
.lb-acc details[open] summary::after { transform: rotate(45deg); }
.lb-acc-body { padding: 0 12px 22px; font-size: 18px; line-height: 1.45; max-width: 60ch; animation: lb-popIn .35s ease-out; transform-origin: top left; }
.lb-acc-body > :last-child { margin-bottom: 0; }

/* Blog (home) */
.lb-blog { padding: 72px var(--lu-gutter); border-top: 3px solid var(--lu-ink); }
.lb-posts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 24px; }
.lb-post { background: var(--lu-white); border: 3px solid var(--lu-ink); box-shadow: 5px 5px 0 var(--lu-ink); display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.lb-post:hover { transform: translate(-4px, -4px) rotate(-1deg); box-shadow: 10px 10px 0 var(--lu-ink); }
.lb-post-img { aspect-ratio: 16 / 9; background: center / cover no-repeat var(--lu-pink-tint); border-bottom: 3px solid var(--lu-ink); }
.lb-post-body { padding: 16px; display: grid; gap: 8px; }
.lb-post-meta { font: 700 12px var(--lu-mono); text-transform: uppercase; letter-spacing: .04em; }
.lb-post-title { font-weight: 800; font-size: 22px; line-height: 1.1; text-decoration: none; color: var(--lu-ink); }
.lb-post-title:hover { color: var(--lu-berry); }

/* Contacto */
.lb-contact { padding: 80px var(--lu-gutter); background: var(--lu-pink); border-top: 3px solid var(--lu-ink); }
.lb-contact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 40px; align-items: start; }
.lb-contact p.lb-contact-copy { font-size: 20px; line-height: 1.4; max-width: 30ch; margin-top: 20px; }
.lb-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 16px; background: var(--lu-paper); border: 3px solid var(--lu-ink); box-shadow: 10px 10px 0 var(--lu-ink); padding: 24px; }
.lb-form .lb-full { grid-column: 1 / -1; }
.lb-form > div > .mb-3:last-child, .lb-form .mb-3 { margin-bottom: 0 !important; }
.lb-form .lb-send { grid-column: 1 / -1; width: 100%; font-size: 22px; padding: 16px; box-shadow: none; }
.lb-form .lb-send:hover { background: var(--lu-berry); color: #fff; box-shadow: none; transform: none; }

/* ---------- Uploadbox (panel lateral) ---------- */
.lb .uploadbox { position: fixed; inset: 0; width: auto; height: auto; z-index: 1300; display: block; visibility: hidden; opacity: 1; transition: visibility 0s .45s; }
.lb .uploadbox.active { visibility: visible; transition: none; }
.lb .uploadbox > .overlay { position: absolute; inset: 0; width: auto; height: auto; background: rgba(10, 10, 10, .55); opacity: 0; transition: opacity .3s; cursor: pointer; }
.lb .uploadbox.active > .overlay { opacity: 1; }
.lb .uploadbox .uploadbox-content {
    position: absolute; top: 0; right: 0; bottom: 0; left: auto;
    width: min(100%, 560px); height: auto; max-height: none;
    display: flex; flex-direction: column;
    background: var(--lu-paper); border-left: 4px solid var(--lu-ink);
    transform: translateX(105%); transition: transform .45s cubic-bezier(.2, 1.2, .3, 1);
    overflow: hidden;
}
.lb .uploadbox.active .uploadbox-content { transform: none; }
.lb .uploadbox .uploadbox-header { display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 4px solid var(--lu-ink); background: var(--lu-pink); flex: none; }
.lb .uploadbox .uploadbox-header h2 { margin: 0; font-weight: 800; font-size: 32px; letter-spacing: -.03em; text-transform: uppercase; line-height: 1; }
.lb .uploadbox .uploadbox-header .btn-close {
    margin-left: auto; width: 44px; height: 44px; flex: none; padding: 0;
    background: var(--lu-paper); border: 3px solid var(--lu-ink); border-radius: 0; opacity: 1;
    font: 800 20px/1 var(--lu-mono); color: var(--lu-ink); display: inline-flex; align-items: center; justify-content: center;
    transition: transform .25s; box-shadow: none;
}
.lb .uploadbox .uploadbox-header .btn-close:hover { transform: rotate(90deg); }
.lb .uploadbox .uploadbox-body { flex: 1 1 auto; overflow-y: auto; overflow-x: hidden; padding: 20px; display: block; position: relative; }
.lb .uploadbox .uploadbox-body-header { display: flex; flex-wrap: wrap; gap: 6px 14px; font: 400 12px/1.5 var(--lu-mono); text-transform: uppercase; margin-bottom: 14px; }
.lb .uploadbox .uploadbox-body-header strong { font-weight: 700; }
.lb .uploadbox .uploadbox-body-content { display: grid; gap: 18px; align-content: start; justify-content: stretch; }
.lb .uploadbox .uploadbox-body .uploadbox-body-content .uploadbox-drag {
    display: block; position: relative; min-height: 0; height: auto; padding: 0;
    border: 4px dashed var(--lu-ink); background: var(--lu-white); text-align: center; transition: background-color .2s;
}
.lb .uploadbox .uploadbox-body .uploadbox-body-content .uploadbox-drag:hover, .lb .uploadbox .uploadbox-drag.dz-drag-hover { background: var(--lu-pink-tint); }
.lb .uploadbox .uploadbox-body .uploadbox-body-content .uploadbox-drag.inactive { display: block; }
.lb .uploadbox .uploadbox-body .uploadbox-body-content .uploadbox-drag-inner { display: block; padding: 26px; cursor: pointer; }
.lb .uploadbox .uploadbox-drag.inactive .uploadbox-drag-inner { padding: 14px; }
.lb .uploadbox .uploadbox-drag.inactive .lb-arrow { font-size: 34px; }
.lb .uploadbox .uploadbox-drag .lb-arrow { font-size: 54px; color: var(--lu-ink); margin: 0; }
.lb .uploadbox .uploadbox-drag h3 { font-weight: 800; font-size: 22px; margin: 6px 0 0; letter-spacing: -.01em; }
.lb .uploadbox .uploadbox-drag p { font: 400 12px/1.5 var(--lu-mono); margin: 6px 0 0; text-transform: uppercase; }
.lb .uploadbox .uploadbox-drag p a { text-decoration: underline; text-decoration-thickness: 2px; cursor: pointer; font-weight: 700; }
.lb .uploadbox .uploadbox-body .uploadbox-body-content .uploadbox-drag .dz-hidden-input { visibility: hidden !important; width: 0 !important; height: 0 !important; }
.lb .uploadbox .uploadbox-body .uploadbox-body-content .uploadbox-wrapper { display: none; padding: 0; }
.lb .uploadbox .uploadbox-body .uploadbox-body-content .uploadbox-wrapper.active { display: grid; gap: 18px; }
.lb .uploadbox .dropzone { display: grid; gap: 14px; margin: 0; min-height: 0; padding: 0; border: 0; background: transparent; }
.lb .uploadbox .dropzone .dz-preview { width: auto; margin: 0; padding: 0; min-height: 0; position: relative; }
.lb .uploadbox .dropzone .dz-preview .dz-preview-container {
    padding: 14px; min-height: 0; height: auto;
    background: var(--lu-white); border: 3px solid var(--lu-ink); border-radius: 0; box-shadow: none;
    animation: lb-popIn .4s var(--lu-bounce);
}
.lb .uploadbox .dropzone .dz-preview.dz-success .dz-preview-container { border-color: var(--lu-ink); box-shadow: 5px 5px 0 var(--lu-pink); }
.lb .uploadbox .dropzone .dz-preview.dz-error .dz-preview-container { border-color: var(--lu-berry); box-shadow: 5px 5px 0 var(--lu-berry); }
.lb .uploadbox .dropzone .dz-preview .dz-details { display: flex; align-items: center; gap: 12px; padding: 0; position: static; min-height: 0; text-align: left; }
.lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-name { flex: 1; min-width: 0; text-align: left; padding: 0; margin: 0; font-size: 18px; font-weight: 800; line-height: 1.15; overflow-wrap: anywhere; white-space: normal; }
.lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-size { font: 700 13px var(--lu-mono); margin: 4px 0 0 !important; color: var(--lu-ink); }
.lb .uploadbox .dz-tile { flex: none; width: 46px; height: 54px; display: flex; align-items: flex-end; justify-content: flex-start; padding: 4px; background: var(--lu-ink); color: var(--lu-pink); font: 800 13px/1 var(--lu-display); text-transform: uppercase; clip-path: polygon(0 0, 72% 0, 100% 22%, 100% 100%, 0 100%); overflow: hidden; }
.lb .uploadbox .dz-tile::after { content: attr(data-type); }
.lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-actions { position: static; width: auto; padding: 0; display: flex; gap: 6px; flex: none; order: 3; }
.lb .uploadbox .dz-actions a { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border: 2px solid var(--lu-ink); background: var(--lu-paper); color: var(--lu-ink); cursor: pointer; }
.lb .uploadbox .dz-actions a:hover { background: var(--lu-pink); }
.lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-edit { position: static; width: 36px; height: 36px; border-radius: 0; background: var(--lu-paper); box-shadow: none; }
.lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-edit i, .lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-remove i { font-size: 14px; color: var(--lu-ink); }
.lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-success-mark,
.lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-error-mark,
.lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-details-info { display: none; }
.lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-error-message { position: static; display: none; margin-top: 8px; padding: 8px; font: 700 12px var(--lu-mono); background: var(--lu-ink); color: #fff; border-radius: 0; opacity: 1; width: auto; }
.lb .uploadbox .dropzone .dz-preview.dz-error .dz-preview-container .dz-error-message { display: block; }
.lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-progress { display: none; position: relative; height: auto; margin: 10px 0 0; background: transparent; border-radius: 0; overflow: visible; }
.lb .uploadbox .dropzone .dz-preview.dz-processing .dz-preview-container .dz-progress { display: block; }
.lb .uploadbox .dropzone .dz-preview.dz-complete .dz-preview-container .dz-progress { display: none; }
.lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-progress .dz-upload { position: relative; display: block; height: 6px; background: var(--lu-pink); border: 0; margin-top: 4px; max-width: 100%; }
.lb-js .lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-progress .dz-upload, html.lb-js .uploadbox .dz-upload { height: 0; overflow: hidden; margin: 0; }
.lb .uploadbox .lb-segs { display: none; grid-template-columns: repeat(20, 1fr); gap: 3px; }
html.lb-js .lb .uploadbox .lb-segs { display: grid; }
.lb .uploadbox .lb-segs i { height: 16px; border: 2px solid var(--lu-ink); background: var(--lu-white); transition: background-color .15s; }
.lb .uploadbox .lb-segs i.on { background: var(--lu-pink); }
.lb .uploadbox .lb-uprow { display: flex; gap: 6px; margin-top: 6px; font: 700 12px var(--lu-mono); text-transform: uppercase; }
.lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-progress .dz-upload-precent { position: static; color: var(--lu-ink); text-shadow: none; font: inherit; }
.lb .uploadbox .dz-preview-container > .mt-3 { margin-top: 10px !important; }
.lb .uploadbox .dz-preview-container > .mt-3 > .form-label { display: none; }
.lb .uploadbox .dz-preview-container .form-group { display: flex; border: 3px solid var(--lu-ink); position: relative; }
.lb .uploadbox .dz-preview-container .form-group::before { content: attr(data-lb-label); flex: none; display: flex; align-items: center; font: 700 11px var(--lu-mono); letter-spacing: .06em; background: var(--lu-ink); color: var(--lu-pink); padding: 10px 8px; white-space: nowrap; text-transform: uppercase; }
.lb .uploadbox .dz-preview-container .form-group .form-control { flex: 1; min-width: 0; border: 0; min-height: 40px; font: 400 13px var(--lu-mono); padding: 8px; background: var(--lu-white) !important; box-shadow: none; }
.lb .uploadbox .dz-preview-container .btn-copy { position: static; flex: none; display: inline-flex; align-items: center; gap: 6px; border: 0; border-left: 3px solid var(--lu-ink); background: var(--lu-pink); padding: 0 12px; font: 700 12px var(--lu-mono); text-transform: uppercase; color: var(--lu-ink); cursor: pointer; min-height: 40px; visibility: visible; opacity: 1; }
.lb .uploadbox .dz-preview-container .btn-copy:hover { background: var(--lu-ink); color: var(--lu-pink); }
.lb .uploadbox .dz-preview-container > a.btn { margin-top: 10px !important; font: 700 12px var(--lu-mono) !important; background: var(--lu-paper); border: 2px solid var(--lu-ink); box-shadow: none; min-height: 40px; padding: 8px 10px; }
.lb .uploadbox .dz-preview-container > a.btn i { display: none; }
.lb .uploadbox .dz-preview-container > a.btn::after { content: ' →'; }
.lb .uploadbox .dz-preview-container > a.btn:hover { background: var(--lu-pink); transform: none; box-shadow: none; }
/* Edición de contraseña por archivo (plantilla Dropzone) */
.lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-file-edit { z-index: 1400; }
.lb .uploadbox .dropzone .dz-preview .dz-preview-container .dz-file-edit .dz-file-edit-box { border: 4px solid var(--lu-ink); border-radius: 0; box-shadow: 10px 10px 0 var(--lu-ink); background: var(--lu-paper); }
.lb .uploadbox .dz-file-edit-box .lb-lock { font: 800 64px/1 var(--lu-display); text-align: center; }
.lb .uploadbox .uploadbox-wrapper-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; max-width: none; margin: 0; }
.lb .uploadbox .uploadbox-wrapper-form .mb-3 { margin: 0 !important; }
.lb .uploadbox .uploadbox-wrapper-form .form-label { font-size: 12px; }
.lb .uploadbox .uploadbox-wrapper-form .form-select { font-size: 16px; min-height: 48px; padding: 10px 36px 10px 10px; background-color: var(--lu-white) !important; border-color: var(--lu-ink); }
.lb .uploadbox .uploadbox-wrapper-form .lb-hint { font: 400 12px/1.5 var(--lu-mono); align-self: end; margin: 0; }
.lb .uploadbox .uploadbox-wrapper-form .upload-files-btn { grid-column: 1 / -1; width: 100%; font-size: 20px; padding: 14px; }
.lb .uploadbox .uploadbox-foot { flex: none; display: flex; gap: 10px; padding: 16px 20px; border-top: 4px solid var(--lu-ink); background: var(--lu-white); }
.lb .uploadbox .uploadbox-foot .upload-more-btn { flex: 1; }
.lb .uploadbox .uploadbox-foot .reset-upload-box { flex: none; }
.lb .uploadbox .uploadbox-foot:not(:has(> :not(.d-none))) { display: none; }
.lb .uploadbox input, .lb .uploadbox select, .lb .uploadbox textarea { background-color: var(--lu-white) !important; }
.lb-confetti { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 5; }
.lb-confetti span { position: absolute; top: -20px; border: 2px solid var(--lu-ink); animation: lb-fall var(--t, 2s) cubic-bezier(.3, .1, .6, 1) var(--d, 0s) both; }
@media (max-width: 560px) { .lb .uploadbox .uploadbox-content { border-left: 0; } }

/* Arrastrar a cualquier parte */
.lb-dropall { position: fixed; inset: 0; z-index: 3000; background: var(--lu-pink); display: flex; align-items: center; justify-content: center; padding: 16px; color: var(--lu-ink); }
.lb-dropall[hidden] { display: none; }
.lb-dropall::before { content: ''; position: absolute; inset: 16px; border: 6px dashed var(--lu-ink); pointer-events: none; }
.lb-dropall div { font: 800 clamp(80px, 18vw, 280px)/.8 var(--lu-display); letter-spacing: -.06em; text-align: center; text-transform: uppercase; animation: lb-wobble .8s ease-in-out infinite; pointer-events: none; }
.lb-dropall div span { display: block; }

/* ---------- Descarga ---------- */
.lb-dl { padding: 24px var(--lu-gutter) 64px; }
.lb-dl-grid { display: flex; flex-wrap: wrap; gap: 28px; align-items: flex-start; }
.lb-dl-main { flex: 999 1 440px; min-width: 0; order: 1; }
.lb-dl-side { flex: 1 1 260px; max-width: 300px; display: grid; gap: 20px; order: 2; margin: 0 auto; }
.lb-dl-side .lb-ad { margin: 0; }
.lb .filebox {
    background: var(--lu-white); color: var(--lu-ink);
    border: 4px solid var(--lu-ink); border-radius: 0;
    box-shadow: 12px 12px 0 var(--lu-ink);
    overflow: visible; font-size: 17px;
    animation: lb-popIn .6s cubic-bezier(.2, 1.4, .4, 1);
}
.lb-fb-band { background: var(--lu-pink); border-bottom: 4px solid var(--lu-ink); padding: 10px 18px; display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font: 700 13px var(--lu-mono); letter-spacing: .06em; text-transform: uppercase; }
.lb-fb-body { padding: clamp(18px, 3vw, 32px); display: flex; gap: 24px; flex-wrap: wrap; align-items: center; }
.lb-typetile {
    width: 120px; height: 140px; flex: none;
    background: var(--lu-ink); color: var(--lu-pink); border: 4px solid var(--lu-ink);
    display: flex; align-items: flex-end; justify-content: flex-start; padding: 10px;
    font: 800 40px/1 var(--lu-display); text-transform: uppercase; letter-spacing: -.03em;
    clip-path: polygon(0 0, 72% 0, 100% 22%, 100% 100%, 0 100%);
    transform: rotate(-4deg); transition: transform .3s cubic-bezier(.2, 1.6, .4, 1);
    overflow: hidden;
}
.lb-typetile:hover { transform: rotate(6deg) scale(1.08); }
.lb-typetile.is-long { font-size: 30px; }
.lb-fb-info { flex: 1 1 240px; min-width: 0; }
.lb .filebox .filebox-title { margin: 0; font-weight: 800; font-size: clamp(28px, 3.4vw, 46px); line-height: 1; letter-spacing: -.03em; overflow-wrap: anywhere; white-space: normal; width: auto; }
.lb-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; font: 700 13px var(--lu-mono); text-transform: uppercase; }
.lb-chips span { border: 2px solid var(--lu-ink); padding: 4px 8px; }
.lb .filebox .filebox-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.lb .filebox .filebox-actions a { font: 700 13px/1.1 var(--lu-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--lu-ink); background: var(--lu-paper); border: 3px solid var(--lu-ink); padding: 10px 12px; min-height: 44px; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; text-decoration: none; margin: 0; transition: background-color .15s; }
.lb .filebox .filebox-actions a:hover { background: var(--lu-pink); color: var(--lu-ink); }
.lb .filebox .filebox-download {
    border-top: 4px solid var(--lu-ink);
    padding: clamp(18px, 3vw, 32px);
    min-height: 280px;
    display: flex; flex-direction: column; justify-content: center; gap: 16px;
    margin: 0; width: auto;
}
.lb .filebox .filebox-download .download-counter {
    all: unset; box-sizing: border-box;
    display: flex; align-items: center; gap: 28px; flex-wrap: wrap; width: 100%; cursor: default;
}
.lb-count { font: 800 clamp(120px, 16vw, 200px)/.8 var(--lu-display); letter-spacing: -.06em; color: var(--lu-pink); -webkit-text-stroke: 4px var(--lu-ink); paint-order: stroke fill; perspective: 400px; min-width: 1.2ch; display: inline-block; }
.lb-count .counter-number { display: inline-block; margin: 0 !important; }
.lb-count .counter-number.lb-flip { animation: lb-flipIn .55s var(--lu-bounce-soft); }
.lb-wait { flex: 1 1 220px; display: block; }
.lb-wait strong { display: block; font: 800 32px/1 var(--lu-display); letter-spacing: -.02em; text-transform: uppercase; }
.lb-bar { display: block; height: 18px; border: 3px solid var(--lu-ink); margin: 16px 0 0; background: var(--lu-paper); overflow: hidden; }
.lb-bar i { display: block; height: 100%; width: 0; background: var(--lu-ink); transition: width 1s linear; }
.lb-premium { font: 700 14px var(--lu-mono); text-transform: uppercase; align-self: flex-start; }
.lb .filebox .filebox-download .download-link,
.lb .filebox .filebox-download .downloading-btn {
    display: flex; align-items: center; justify-content: center; text-align: center;
    width: 100%; height: auto; min-height: 96px;
    font: 800 clamp(28px, 4vw, 52px)/1 var(--lu-display); letter-spacing: -.03em; text-transform: uppercase; text-decoration: none;
    color: var(--lu-ink);
    background: linear-gradient(100deg, var(--lu-pink) 40%, var(--lu-pink-soft) 50%, var(--lu-pink) 60%) 0 0 / 200% 100%;
    border: 4px solid var(--lu-ink); border-radius: 0; box-shadow: 8px 8px 0 var(--lu-ink);
    padding: 28px 20px; cursor: pointer; overflow-wrap: anywhere;
    animation: lb-popIn .5s var(--lu-bounce), lb-shine 2.5s linear .5s infinite;
    transition: transform .15s, box-shadow .15s;
}
.lb .filebox .filebox-download .download-link::before { content: '↓\00a0'; }
.lb .filebox .filebox-download .download-link:hover { transform: translate(-3px, -3px); box-shadow: 11px 11px 0 var(--lu-ink); color: var(--lu-ink); }
.lb .filebox .filebox-download .download-link:active { transform: translate(8px, 8px); box-shadow: 0 0 0 var(--lu-ink); }
.lb .filebox .filebox-download .downloading-btn { background: var(--lu-ink); color: var(--lu-pink); animation: none; cursor: progress; }
.lb .filebox .filebox-download .reDownload-btn {
    display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px;
    align-self: flex-start; width: auto; height: auto;
    font: 800 clamp(26px, 4.5vw, 56px)/.95 var(--lu-display); letter-spacing: -.03em; text-transform: uppercase;
    color: var(--lu-pink); background: var(--lu-white); border: 6px solid var(--lu-pink); border-radius: 0;
    padding: 12px 20px; box-shadow: none; transform: rotate(-6deg);
    animation: lb-stamp .6s cubic-bezier(.2, 1.2, .4, 1) both;
    -webkit-text-stroke: 1px var(--lu-ink);
}
.lb .filebox .filebox-download .reDownload-btn #reDownloadBtn { font: 700 14px var(--lu-mono); -webkit-text-stroke: 0; color: var(--lu-ink); background: var(--lu-pink); border: 3px solid var(--lu-ink); padding: 10px 12px; text-decoration: none; }
.lb .filebox .filebox-download .reDownload-btn #reDownloadBtn:hover { background: var(--lu-ink); color: var(--lu-pink); }
/* Panel híbrido en línea (lu-view.js dentro de .filebox): piel brutal, sin tocar su lógica */
.lb .filebox .solred-lola-inline .lu-xfer { border: 4px solid var(--lu-ink); border-radius: 0; background: var(--lu-white); box-shadow: 12px 12px 0 var(--lu-ink); }
.lb .filebox .solred-lola-inline .lu-btn { border-radius: 0; border: 3px solid var(--lu-ink); font-family: var(--lu-mono); font-weight: 700; text-transform: uppercase; }
.lb .filebox .solred-lola-inline .lu-xname { font-family: var(--lu-display); font-weight: 800; letter-spacing: -.02em; }
.lb .filebox .solred-network-entry { border-top: 4px solid var(--lu-ink); padding: 14px clamp(18px, 3vw, 32px); font: 700 14px var(--lu-mono); }
.lb .filebox .solred-network-retry { margin-left: 10px; font: 700 13px var(--lu-mono); background: var(--lu-pink); border: 3px solid var(--lu-ink); padding: 8px 12px; text-transform: uppercase; cursor: pointer; }

.lb-about { margin-top: 36px; display: grid; gap: 18px; }
.lb-about h2 { margin: 0; font-weight: 800; font-size: 32px; letter-spacing: -.02em; text-transform: uppercase; overflow-wrap: anywhere; }
.lb-about [data-solred-about] { margin: 0; font-size: 18px; line-height: 1.5; max-width: 65ch; }
.lb-about .lb-ad { margin: 0; }
.lb-dl-extra { padding: 56px var(--lu-gutter); border-top: 3px solid var(--lu-ink); }
.lb-dl-extra h2 { font-weight: 800; font-size: clamp(32px, 4vw, 56px); letter-spacing: -.03em; text-transform: uppercase; margin: 0 0 24px; }
.lb-dl-extra img { max-width: 100%; height: auto; }

/* Contraseña */
.lb-lock { max-width: 640px; margin: clamp(24px, 6vw, 72px) auto; padding: 0 var(--lu-gutter); width: 100%; }
.lb-lockcard { background: var(--lu-white); border: 4px solid var(--lu-ink); box-shadow: 12px 12px 0 var(--lu-ink); animation: lb-popIn .6s cubic-bezier(.2, 1.4, .4, 1); }
.lb-lockcard .lb-fb-body { align-items: flex-start; }
.lb-lockcard form { display: grid; gap: 14px; margin-top: 18px; }
.lb-lockcard h1 { margin: 0; font-weight: 800; font-size: clamp(30px, 4vw, 46px); line-height: 1; letter-spacing: -.03em; text-transform: uppercase; }

/* ---------- Acceso (login/registro) ---------- */
.lb-auth { display: flex; flex-wrap: wrap; min-height: 100vh; }
.lb-auth-art { flex: 1 1 420px; background: var(--lu-pink); border-right: 4px solid var(--lu-ink); padding: 28px var(--lu-gutter); display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; min-height: 420px; position: relative; }
.lb-auth-art .lb-logo img { height: 45px; width: auto; display: block; }
.lb-auth-art h1 { margin: 40px 0; font-weight: 800; font-size: clamp(72px, 11vw, 180px); line-height: .82; letter-spacing: -.05em; text-transform: uppercase; }
.lb-auth-art .lb-marq { margin: 0 -60px; transform: rotate(-3deg); background: var(--lu-ink); color: var(--lu-pink); border-block: 3px solid var(--lu-ink); }
.lb-auth-art .lb-marq > div { animation: lb-marq 16s linear infinite; font: 700 18px var(--lu-mono); padding: 10px 0; text-transform: uppercase; }
.lb-auth-panel { flex: 1 1 420px; padding: 40px clamp(16px, 4vw, 64px); display: flex; flex-direction: column; gap: 24px; }
.lb-auth-top { display: flex; justify-content: flex-end; align-items: center; gap: 10px; flex-wrap: wrap; }
.lb-auth-body { flex: 1; display: flex; align-items: center; }
.lb-auth-inner { width: 100%; max-width: 520px; margin: 0 auto; }
.lb-tabs { display: grid; grid-template-columns: 1fr 1fr; border: 3px solid var(--lu-ink); margin-bottom: 28px; }
.lb-tabs a { font: 800 18px var(--lu-display); text-transform: uppercase; text-align: center; text-decoration: none; padding: 14px; color: var(--lu-ink); background: var(--lu-paper); min-height: 48px; }
.lb-tabs a + a { border-left: 3px solid var(--lu-ink); }
.lb-tabs a[aria-current="page"] { background: var(--lu-ink); color: var(--lu-pink); }
.lb-tabs a:not([aria-current="page"]):hover { background: var(--lu-pink); }
.lb .sign-form { max-width: none; width: 100%; padding: 0; margin: 0; background: transparent; box-shadow: none; border: 0; border-radius: 0; }
.lb .sign-form .sign-form-header { text-align: left; margin-bottom: 20px; }
.lb .sign-form .sign-form-title { font-weight: 800; font-size: clamp(28px, 3vw, 40px); letter-spacing: -.03em; text-transform: uppercase; line-height: 1; margin: 0 0 8px; }
.lb .sign-form .sign-form-text { font: 400 14px/1.5 var(--lu-mono); color: var(--lu-ink); margin: 0; }
.lb .sign-form form .btn.btn-primary, .lb .lb-submit {
    width: 100%; font-size: 22px; padding: 18px; min-height: 64px;
    background: var(--lu-ink); color: var(--lu-pink); box-shadow: 6px 6px 0 var(--lu-pink);
}
.lb .sign-form form .btn.btn-primary:hover, .lb .lb-submit:hover { color: var(--lu-pink); transform: translate(-3px, -3px); box-shadow: 9px 9px 0 var(--lu-pink); }
.lb .sign-form form .btn.btn-primary:active, .lb .lb-submit:active { transform: translate(6px, 6px); box-shadow: 0 0 0 var(--lu-pink); }
.lb .sign-form .lb-forgot { font: 700 13px var(--lu-mono); color: var(--lu-berry); text-transform: uppercase; }
.lb .sign-form .login-with { margin-top: 20px; }
.lb .sign-form .login-with-divider { font: 700 12px var(--lu-mono); text-transform: uppercase; text-align: center; margin: 14px 0; }
.lb .sign-form .g-recaptcha, .lb .lb-form .g-recaptcha { max-width: 100%; overflow: hidden; }
.lb-auth-plain { flex: 1 1 100%; padding: 40px var(--lu-gutter); }
.lb-auth-foot { font: 700 12px var(--lu-mono); display: flex; flex-wrap: wrap; gap: 8px 16px; justify-content: space-between; border-top: 3px solid var(--lu-ink); padding-top: 14px; }
.lb-auth-foot a { color: var(--lu-ink); text-transform: uppercase; }
.lb .verify-email, .lb .sign-form .alert { text-align: left; }
@media (max-width: 860px) { .lb-auth-art { border-right: 0; border-bottom: 4px solid var(--lu-ink); min-height: 0; } .lb-auth-art h1 { margin: 28px 0; } }

/* ---------- Panel de usuario (layout dash) ---------- */
.lb .dash { padding-top: 68px; font-size: 16px; background: var(--lu-paper); }
.lb .dash .dash-navbar { height: 68px; background: var(--lu-paper); color: var(--lu-ink); border-bottom: 3px solid var(--lu-ink); padding: 0 12px; }
.lb .dash .dash-navbar .logo { width: 248px; }
.lb .dash .dash-navbar .logo img { height: 36px; }
.lb .dash .dash-navbar .dash-nav-link { color: var(--lu-ink); border-radius: 0; width: 44px; height: 44px; }
.lb .dash .dash-navbar .dash-nav-link.v2 { padding: 0 10px; font: 700 13px var(--lu-mono); text-transform: uppercase; }
.lb .dash .dash-navbar .dash-nav-link:hover { background: var(--lu-ink); color: var(--lu-pink); }
.lb .dash .dash-navbar .user-avatar img { border-radius: 0; border: 2px solid var(--lu-ink); }
.lb .dash .dash-navbar .search .search-input input { border: 3px solid var(--lu-ink); border-radius: 0; background: var(--lu-white); font-family: var(--lu-display); }
.lb .dash .user-menu .user-menu-dropdown { border: 3px solid var(--lu-ink); border-radius: 0; box-shadow: 5px 5px 0 var(--lu-ink); font: 700 13px var(--lu-mono); }
.lb .dash .user-menu .user-menu-link:hover { background: var(--lu-pink); color: var(--lu-ink); }
.lb .dash .noti .dropdown-menu-header, .lb .dash .noti .dropdown-menu-footer { font: 700 12px var(--lu-mono); text-transform: uppercase; }
.lb .dash .dash-sidebar { top: 68px; height: calc(100% - 68px); }
.lb .dash .dash-sidebar .dash-sidebar-container { top: 68px; height: calc(100% - 68px); background: var(--lu-ink); color: var(--lu-paper); border-right: 3px solid var(--lu-ink); }
.lb .dash .dash-sidebar .overlay { background: rgba(10, 10, 10, .55); }
.lb .dash .dash-sidebar .dash-sidebar-links { display: grid; gap: 6px; padding: 18px; }
.lb .dash .dash-sidebar .dash-sidebar-logo { display: block; padding: 22px 18px 0; }
.lb .dash .dash-sidebar .dash-sidebar-logo img { width: 130px; height: auto; display: block; }
.lb .dash .dash-sidebar .dash-sidebar-links .dash-sidebar-link { color: var(--lu-paper); border: 2px solid transparent; text-decoration: none; font: 700 14px var(--lu-mono); letter-spacing: .04em; text-transform: uppercase; transition: border-color .15s; }
.lb .dash .dash-sidebar .dash-sidebar-links .dash-sidebar-link .dash-sidebar-link-title { padding: 12px; }
.lb .dash .dash-sidebar .dash-sidebar-links .dash-sidebar-link .dash-sidebar-link-title i { width: 30px; }
.lb .dash .dash-sidebar .dash-sidebar-links .dash-sidebar-link:hover { border-color: var(--lu-pink); }
.lb .dash .dash-sidebar .dash-sidebar-links .dash-sidebar-link:hover .dash-sidebar-link-title { background: transparent; }
.lb .dash .dash-sidebar .dash-sidebar-links .dash-sidebar-link.current { background: var(--lu-pink); color: var(--lu-ink); border-color: var(--lu-pink); }
.lb .dash .dash-sidebar .dash-sidebar-links .dash-sidebar-link.current .dash-sidebar-link-title { background: transparent; color: var(--lu-ink); }
.lb .dash .dash-sidebar .dash-sidebar-footer { padding: 18px; }
.lb .dash .dash-storage { border: 2px solid var(--lu-paper); padding: 14px; font: 400 12px/1.5 var(--lu-mono); }
.lb .dash .dash-storage .dash-storage-info { display: block; margin-bottom: 8px; }
.lb .dash .dash-storage .dash-storage-title { display: block; font-weight: 700; letter-spacing: .06em; margin-bottom: 8px; color: var(--lu-paper); }
.lb .dash .dash-storage .dash-storage-info .dash-storage-text { color: var(--lu-paper); font-size: 12px; }
.lb .dash .dash-storage .dash-storage-progress { height: 14px; border: 2px solid var(--lu-paper); border-radius: 0; background: transparent; margin-bottom: 8px; }
.lb .dash .dash-storage .dash-storage-progress span { border-radius: 0; background: var(--lu-pink); }
.lb .dash .dash-storage .dash-storage-progress span.bg-warning { background: var(--lu-pink-soft) !important; }
.lb .dash .dash-storage .dash-storage-progress span.bg-danger { background: #fff !important; }
.lb .dash .dash-storage .btn { margin-top: 10px !important; width: 100%; font-size: 15px; box-shadow: 4px 4px 0 var(--lu-pink); }
.lb .dash .dash-container { padding: 28px clamp(16px, 3vw, 40px) 120px; max-width: 1500px; }
.lb .dash .dash-page-header { margin-bottom: 28px; }
.lb .dash .dash-page-title { font-weight: 800; font-size: clamp(40px, 5vw, 72px); line-height: .9; letter-spacing: -.045em; text-transform: uppercase; margin: 0 0 6px; }
.lb .dash .breadcrumb { font: 700 12px var(--lu-mono); text-transform: uppercase; letter-spacing: .06em; }
.lb .dash .breadcrumb-item a { color: var(--lu-ink); }
.lb .dash .dash-page-footer { font: 700 12px var(--lu-mono); border-top: 3px solid var(--lu-ink); background: transparent; padding: 18px clamp(16px, 3vw, 40px); }
.lb .dash .counter-card { border: 3px solid var(--lu-ink); border-radius: 0; box-shadow: 5px 5px 0 var(--lu-ink); background: var(--lu-white) !important; color: var(--lu-ink); }
.lb .dash .counter-card.color-1 { background: var(--lu-pink) !important; }
.lb .dash .counter-card .stats .stats-cont .stats-info .stats-number { font-weight: 800; font-size: 44px; letter-spacing: -.04em; }
.lb .dash .counter-card .stats .stats-cont .stats-icon { border-radius: 0; background: var(--lu-ink); color: var(--lu-pink); }
@media (max-width: 1199.98px) { .lb .dash .dash-navbar .logo { width: auto; } }

/* Mis archivos */
.lb-fhead { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; }
.lb-hello { font: 700 12px var(--lu-mono); letter-spacing: .08em; text-transform: uppercase; }
.lb-fhead h1 { margin: 6px 0 0; font-weight: 800; font-size: clamp(52px, 7vw, 104px); line-height: .85; letter-spacing: -.045em; text-transform: uppercase; }
.lb-fhead h1 sup { font: 700 18px var(--lu-mono); color: var(--lu-berry); vertical-align: top; margin-left: 6px; top: 0; }
.lb-toolbar { display: flex; gap: 12px; flex-wrap: wrap; margin: 28px 0 24px; align-items: center; }
.lb-toolbar form { flex: 1 1 240px; display: flex; margin: 0; }
.lb-toolbar input[type="search"] { flex: 1; min-width: 0; }
.lb-filters { display: flex; gap: 6px; flex-wrap: wrap; }
.lb-filters button { font: 700 13px var(--lu-mono); letter-spacing: .04em; text-transform: uppercase; border: 3px solid var(--lu-ink); background: var(--lu-paper); color: var(--lu-ink); padding: 10px 12px; min-height: 44px; cursor: pointer; transition: transform .15s; }
.lb-filters button:hover { transform: translateY(-3px); }
.lb-filters button[aria-pressed="true"] { background: var(--lu-ink); color: var(--lu-pink); }
.lb-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 22px; margin-bottom: 28px; }
.lb .filemanager-file.lb-fcard {
    position: relative; display: flex; flex-direction: column;
    background: var(--lu-white); border: 3px solid var(--lu-ink); border-radius: 0;
    box-shadow: 5px 5px 0 var(--lu-ink); padding: 0; height: auto; text-align: left;
    animation: lb-popIn .45s var(--lu-bounce) backwards; animation-delay: calc(var(--n, 0) * .05s);
    transition: transform .2s, box-shadow .2s; cursor: pointer;
}
.lb .filemanager-file.lb-fcard:hover { transform: translate(-4px, -4px) rotate(-1deg); box-shadow: 10px 10px 0 var(--lu-ink); }
.lb .filemanager-file.lb-fcard.selected { box-shadow: 8px 8px 0 var(--lu-pink); border-color: var(--lu-ink); background: var(--lu-white); }
.lb .filemanager-file.lb-fcard[hidden] { display: none; }
.lb .lb-fcard .filemanager-file-actions { position: absolute; top: 10px; left: 10px; right: 10px; display: flex; justify-content: space-between; align-items: flex-start; z-index: 2; padding: 0; }
.lb .lb-fcard .filemanager-file-actions .form-check { margin: 0; padding: 0; min-height: 0; }
.lb .lb-fcard .filemanager-file-actions .form-check-input { width: 30px; height: 30px; margin: 0; background-color: var(--lu-white); box-shadow: none; }
.lb .lb-fcard.selected .filemanager-file-actions .form-check-input { background-color: var(--lu-pink); box-shadow: 3px 3px 0 var(--lu-ink); }
.lb .lb-fcard .lb-kebab { width: 34px; height: 34px; border: 3px solid var(--lu-ink); background: var(--lu-paper); font: 800 16px/1 var(--lu-mono); color: var(--lu-ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.lb .lb-fcard .lb-kebab:hover { background: var(--lu-pink); }
.lb .lb-fcard .dropdown-menu { min-width: 200px; }
.lb .lb-fcard .dropdown-menu form { margin: 0; }
.lb .lb-fcard .dropdown-menu .dropdown-item i { width: 18px; }
.lb-ftile { height: 150px; display: flex; align-items: flex-end; justify-content: flex-end; padding: 12px; border-bottom: 3px solid var(--lu-ink); font: 800 54px/1 var(--lu-display); letter-spacing: -.04em; text-transform: uppercase; text-decoration: none; overflow: hidden; }
.lb .lb-ftile--image { background: var(--lu-pink); color: var(--lu-ink); }
.lb .lb-ftile--doc { background: var(--lu-white); color: var(--lu-ink); }
.lb .lb-ftile--video { background: var(--lu-ink); color: var(--lu-pink); }
.lb .lb-ftile--audio { background: var(--lu-berry); color: #fff; }
.lb .lb-ftile--zip { background: var(--lu-pink-soft); color: var(--lu-ink); }
.lb-ftile.is-long { font-size: 40px; }
.lb-ftile:hover { color: inherit; }
.lb-fcard-body { padding: 12px; display: flex; flex-direction: column; flex: 1; }
.lb .lb-fcard .filemanager-file-title { font-weight: 800; font-size: 17px; line-height: 1.15; overflow-wrap: anywhere; color: var(--lu-ink); text-decoration: none; display: block; white-space: normal; text-align: left; }
.lb .lb-fcard .filemanager-file-title:hover { color: var(--lu-berry); }
.lb .lb-fcard .filemanager-file-meta { font: 400 12px var(--lu-mono); margin-top: 6px; color: var(--lu-ink); text-align: left; }
.lb-fcard-btns { display: flex; gap: 6px; margin-top: auto; padding-top: 10px; }
.lb-fcard-btns > * { flex: 1; font: 700 12px var(--lu-mono); letter-spacing: .04em; text-transform: uppercase; text-align: center; text-decoration: none; border: 2px solid var(--lu-ink); background: var(--lu-paper); color: var(--lu-ink); padding: 8px; min-height: 36px; cursor: pointer; }
.lb-fcard-btns > *:hover { background: var(--lu-pink); color: var(--lu-ink); }
.lb-empty { border: 3px dashed var(--lu-ink); padding: 48px 20px; text-align: center; font: 800 32px/1.1 var(--lu-display); text-transform: uppercase; }
.lb-empty span { display: block; font: 400 15px/1.5 var(--lu-mono); text-transform: none; margin-top: 8px; }
.lb-empty .lb-btn { margin-top: 18px; }
/* Barra de acciones en lote (= .filemanager-actions de dashboard.js) */
.lb .filemanager-actions {
    position: fixed; left: 50%; bottom: 20px; z-index: 1040;
    width: min(92vw, 640px); transform: translate(-50%, 0);
    display: none; gap: 10px; align-items: center; flex-wrap: wrap;
    background: var(--lu-ink); color: var(--lu-paper);
    border: 3px solid var(--lu-pink); box-shadow: 8px 8px 0 var(--lu-pink);
    padding: 12px 14px; border-radius: 0; margin: 0;
}
.lb .filemanager-actions.show { display: flex; animation: lb-upX .4s var(--lu-bounce); }
.lb .filemanager-actions .lb-selcount { font: 800 22px var(--lu-display); margin-right: auto; text-transform: uppercase; }
.lb .filemanager-actions .form-check { margin: 0; }
.lb .filemanager-actions form { margin: 0; }
.lb .filemanager-actions .btn, .lb .filemanager-actions .lb-batch-btn {
    font: 700 13px var(--lu-mono); letter-spacing: .04em; text-transform: uppercase;
    padding: 10px 12px; min-height: 44px; box-shadow: none; border: 2px solid var(--lu-paper);
    background: transparent; color: var(--lu-paper); cursor: pointer; display: inline-flex; align-items: center;
}
.lb .filemanager-actions .btn:hover, .lb .filemanager-actions .lb-batch-btn:hover { transform: none; box-shadow: none; background: var(--lu-paper); color: var(--lu-ink); }
.lb .filemanager-actions .lb-batch-copy { background: var(--lu-pink); border-color: var(--lu-pink); color: var(--lu-ink); }
.lb .filemanager-actions .lb-batch-x { border: 0; font-size: 16px; }
.lb .share-modal .share a, .lb #share .share a { width: 44px; height: 44px; border-radius: 0; border: 3px solid var(--lu-ink); display: inline-flex; align-items: center; justify-content: center; }

/* ---------- Errores ---------- */
.lb-err { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 40px var(--lu-gutter); }
.lb-err-in { width: 100%; max-width: 900px; }
.lb-err-code { margin: 0; font: 800 clamp(140px, 30vw, 360px)/.8 var(--lu-display); letter-spacing: -.06em; color: var(--lu-pink); -webkit-text-stroke: 6px var(--lu-ink); paint-order: stroke fill; animation: lb-flipIn .6s var(--lu-bounce-soft); }
.lb-err-title { margin: 24px 0 12px; font-weight: 800; font-size: clamp(32px, 5vw, 64px); line-height: .95; letter-spacing: -.03em; text-transform: uppercase; }
.lb-err p { font: 400 15px/1.6 var(--lu-mono); max-width: 60ch; }
.lb-err .lb-btn { margin-top: 12px; }
.lb-err-logo img { height: 42px; width: auto; margin-bottom: 32px; }

/* ---------- Páginas heredadas dentro del layout nuevo ---------- */
.lb .section-content { background: transparent; }
.lb .section-content .section-content-title { font-weight: 800; letter-spacing: -.03em; text-transform: uppercase; }
.lb .post, .lb .accordion-item { border: 3px solid var(--lu-ink) !important; border-radius: 0 !important; box-shadow: 5px 5px 0 var(--lu-ink) !important; }
.lb .accordion-button { font-weight: 800; border-radius: 0 !important; }
.lb .accordion-button:not(.collapsed) { background: var(--lu-pink); color: var(--lu-ink); box-shadow: none; }

/* Neutraliza estilos heredados de dashboard.css en la galería */
.lb .filemanager-file.lb-fcard { align-items: stretch; }
.lb .lb-fcard .form-check { visibility: visible; opacity: 1; }
.lb .lb-fcard .filemanager-file-actions { margin: 0; width: auto; }
.lb .lb-fcard .filemanager-file-icon.lb-ftile { width: auto; height: 150px; margin: 0; display: flex; align-items: flex-end; justify-content: flex-end; }
.lb .lb-fcard .filemanager-file-title { margin: 0; }
.lb .filemanager-actions > * { margin: 0; }
.lb .filemanager-actions .form-check label { margin: 0; }

/* Legacy (application/authentication/dashboard.css) fija colores de .btn con !important y opacity en :hover: se contrarresta aquí */
.lb .btn:hover, .lb .lb-btn:hover { opacity: 1; }
.lb .lb-btn, .lb .btn.btn-primary { background-color: var(--lu-pink) !important; color: var(--lu-ink) !important; border-color: var(--lu-ink) !important; }
.lb .btn.btn-secondary, .lb .btn.btn-outline-primary, .lb .btn.btn-outline-secondary, .lb .btn.btn-gradient, .lb .btn.btn-green,
.lb .lb-btn.lb-btn--paper, .lb .lb-btn.lb-btn--mono { background-color: var(--lu-paper) !important; background-image: none !important; color: var(--lu-ink) !important; border-color: var(--lu-ink) !important; }
.lb .btn.btn-secondary:hover, .lb .btn.btn-outline-primary:hover, .lb .btn.btn-outline-secondary:hover, .lb .btn.btn-gradient:hover, .lb .btn.btn-green:hover,
.lb .lb-btn.lb-btn--paper:hover, .lb .lb-btn.lb-btn--mono:hover { background-color: var(--lu-pink) !important; }
.lb .lb-btn.lb-btn--ink, .lb .btn.btn-dark { background-color: var(--lu-ink) !important; color: var(--lu-pink) !important; }
.lb .lb-btn.lb-btn--ghost { background-color: transparent !important; }
.lb .lb-btn.lb-btn--ghost:hover { background-color: var(--lu-white) !important; }
.lb .btn.btn-danger { background-color: var(--lu-ink) !important; color: var(--lu-paper) !important; }
.lb .btn.btn-danger:hover { background-color: var(--lu-berry) !important; }
.lb .sign-form form .btn.btn-primary, .lb .lb-submit { background-color: var(--lu-ink) !important; color: var(--lu-pink) !important; }
.lb .plans .plan .plan-action .btn { background-color: var(--lu-ink) !important; color: var(--lu-pink) !important; border-color: var(--lu-ink) !important; }
.lb .plans .plan.plan-featured .plan-action .btn { color: var(--lu-paper) !important; }
.lb .plans .plan { overflow: visible; }
.lb .plans .plan .plan-badge { z-index: 2; }
.lb .filemanager-actions .btn.btn-secondary, .lb .filemanager-actions .btn.btn-danger { background-color: transparent !important; color: var(--lu-paper) !important; border-color: var(--lu-paper) !important; box-shadow: none; }
.lb .filemanager-actions .btn.btn-secondary:hover, .lb .filemanager-actions .btn.btn-danger:hover { background-color: var(--lu-paper) !important; color: var(--lu-ink) !important; }
.lb .lb-btn:disabled, .lb .btn:disabled { opacity: .55; }

/* Secondary pages (audit 2026-10-25) */
.page-card.margin{margin-top:24px!important}
.page-card{border:3px solid var(--lu-ink,#0A0A0A)!important;box-shadow:6px 6px 0 var(--lu-ink,#0A0A0A)!important;border-radius:0!important;border-top-width:3px!important}
.lb-auth-art h1{font-size:clamp(56px,8vw,140px)!important;overflow-wrap:normal;word-break:keep-all}
@media(max-width:480px){.lb-auth-panel{flex-basis:100%!important;min-width:0}}
.lb-pagehead h1.page-title::after,h1.page-title::after{margin-left:0!important}
.blog-sidebar .card{border:3px solid var(--lu-ink,#0A0A0A)!important;box-shadow:6px 6px 0 var(--lu-ink,#0A0A0A)!important;border-radius:0!important}

/* Toastr notices · owner report 2026-10-25: toastr's own type rules
   (#toast-container > .toast-error, id + class) win over `> div` and paint
   their 24px icon tiled across the whole notice. Same specificity + !important
   here, the icon becomes a glyph, and the close button sits in its own column. */
#toast-container > .toast,
#toast-container > .toast-error,
#toast-container > .toast-success,
#toast-container > .toast-info,
#toast-container > .toast-warning {
    background: #0A0A0A !important;
    background-image: none !important;
    padding: 14px 44px 14px 20px !important;
    position: relative;
    word-break: normal;
    overflow-wrap: anywhere;
}
#toast-container > .toast-success::before { content: '✓ '; }
#toast-container > .toast-info::before,
#toast-container > .toast-warning::before { content: '! '; }
#toast-container .toast-close-button {
    position: absolute !important; top: 10px !important; right: 12px !important;
    float: none !important; font-size: 22px; line-height: 1;
}
#toast-container .toast-close-button button,
#toast-container button.toast-close-button { background: none; border: 0; color: inherit; padding: 0; cursor: pointer; }
#toast-container .toast-close-button .icon-off::before,
#toast-container .toast-close-button:empty::before { content: '×'; font-style: normal; }
#toast-container .toast-title { font-weight: 800; }
#toast-container .toast-message { font: inherit; color: inherit; }
