
/* ===== Fuente: style.css ===== */
:root {
    --sky: #1e1e46;
    --sky-dark: #1e1e46;
    --sky-soft: #e8e5e2;
    --sky-pale: #e8e5e2;
    --navy: #1e1e46;
    --ink: #1e1e46;
    --bone: #e8e5e2;
    --card: rgba(247, 245, 243, 0.94);
    --muted: #5f5d70;
    --cyan: #1e1e46;
    --line: rgba(30, 30, 70, 0.16);
    --shadow: 0 18px 50px rgba(30, 30, 70, 0.16);
    --radius: 8px;
    --display: 'E4 Digital Final', 'VT323', monospace;
    --body: 'Space Mono', 'SpaceMono-Regular', monospace;
    --title-font: 'E4 Digital Final', 'VT323', monospace;
    --subtitle-font: 'Space Mono', 'SpaceMono-Bold', monospace;
    --button-font: 'Space Mono', 'SpaceMono-Bold', monospace;
}

@font-face {
    font-family: 'E4 Digital Final';
    src: url('assets/fonts/E4-Digital-Final.ttf') format('truetype'),
         local('E4 Digital Final');
    font-display: swap;
}

@font-face {
    font-family: 'SpaceMono-Regular';
    src: local('SpaceMono-Regular'), local('Space Mono Regular'), local('Space Mono');
    font-display: swap;
}

@font-face {
    font-family: 'SpaceMono-Bold';
    src: local('SpaceMono-Bold'), local('Space Mono Bold');
    font-display: swap;
}

@font-face {
    font-family: 'SpaceMono-Italic';
    src: local('SpaceMono-Italic'), local('Space Mono Italic');
    font-display: swap;
}

@font-face {
    font-family: 'SpaceMono-BoldItalic';
    src: local('SpaceMono-BoldItalic'), local('Space Mono Bold Italic');
    font-display: swap;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: var(--body);
    color: var(--ink);
    background:
        radial-gradient(circle at top left, rgba(30, 30, 70, 0.14), transparent 32rem),
        linear-gradient(180deg, #f7f5f3 0%, var(--sky-pale) 44%, #ffffff 100%);
    line-height: 1.6;
    padding-bottom: 56px; /* espacio para la barra inferior fija */
}

[data-system-hidden] {
    display: none !important;
}
[data-builder-layout-hidden] {
    display: none !important;
}
body.builder-editor-preview {
    min-height: 100vh;
    padding: 0;
    background: #f7f5f3;
}
body.builder-editor-preview > header,
body.builder-editor-preview > footer,
body.builder-editor-preview .bottom-app-bar,
body.builder-editor-preview .mobile-menu,
body.builder-editor-preview .site-intro,
body.builder-editor-preview main > section:not(.builder-preview-active) {
    display: none !important;
}
body.builder-editor-preview main {
    width: 100%;
    max-width: none;
    margin: 0;
}
body.builder-editor-preview main > section.builder-preview-active {
    display: block !important;
    min-height: 100vh;
}
body.admin-body { min-height: 100vh; background: var(--sky-pale); display: grid; grid-template-columns: 280px 1fr; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
input, textarea, select {
    width: 100%;
    border: 1px solid var(--line);
    background: #f6f8f8;
    color: var(--ink);
    border-radius: var(--radius);
    padding: 0.85rem 0.95rem;
}
textarea { resize: vertical; }
label { display: grid; gap: 0.4rem; font-weight: 700; color: var(--navy); }
table { border-collapse: collapse; }

.sky-grid {
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image: linear-gradient(rgba(30,30,70,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(30,30,70,.08) 1px, transparent 1px);
    background-size: 36px 36px;
    mask-image: linear-gradient(to bottom, #000, transparent 80%);
}
.site-intro {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: grid;
    grid-template-rows: 1fr auto 1fr;
    place-items: center;
    min-height: 100vh;
    min-height: 100dvh;
    padding: max(1.25rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) max(1.25rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 25%, rgba(30, 30, 70,.3), transparent 24rem),
        linear-gradient(135deg, #1e1e46, #1e1e46 48%, #1e1e46);
    color: var(--bone);
    animation: introFadeIn .2s ease both;
    contain: layout paint style;
    isolation: isolate;
    cursor: progress;
}
.intro-logo-mark {
    grid-row: 2;
    display: grid;
    min-height: 180px;
    place-items: center;
    gap: .7rem;
    text-align: center;
    animation: introLogoLoading 1.8s cubic-bezier(.45, 0, .55, 1) infinite;
    will-change: transform, opacity;
}
.intro-logo-symbol {
    display: block;
    width: clamp(106px, 27vw, 154px);
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 50%;
}
.intro-logo-symbol img {
    display: block;
    width: auto;
    max-width: none;
    height: 100%;
    max-height: none;
    filter: brightness(0) invert(1) drop-shadow(0 18px 34px rgba(0,0,0,.36));
}
.intro-logo-mark .intro-brand-text {
    display: block;
    margin: 0;
    font-family: var(--title-font);
    font-size: clamp(1.4rem, 5vw, 2.7rem);
    line-height: 1;
    letter-spacing: .08em;
    color: #fff;
    text-shadow: 0 18px 34px rgba(0,0,0,.36);
}
.intro-loading-state {
    grid-row: 3;
    align-self: start;
    display: grid;
    width: min(280px, 72vw);
    gap: .65rem;
    justify-items: center;
    color: rgba(255,255,255,.78);
    text-align: center;
}
.intro-loading-state > span {
    position: relative;
    display: block;
    width: 100%;
    height: 3px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255,255,255,.16);
}
.intro-loading-state > span::after {
    position: absolute;
    inset: 0 auto 0 0;
    width: 42%;
    border-radius: inherit;
    background: rgba(255,255,255,.9);
    content: '';
    animation: introProgress 1.35s ease-in-out infinite;
    will-change: transform;
}
.intro-loading-state small {
    min-height: 1.4em;
    font-size: .76rem;
    font-weight: 750;
    letter-spacing: .035em;
}
.site-intro.is-leaving {
    pointer-events: none;
    animation: introFadeOut .34s ease forwards;
}
.public-loader,
.public-toast,
.admin-toast {
    position: fixed;
    z-index: 150;
    right: 1rem;
    bottom: 1rem;
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    max-width: min(360px, calc(100vw - 2rem));
    border: 1px solid rgba(30,30,70,.2);
    border-radius: var(--radius);
    background: rgba(255,250,240,.96);
    color: var(--navy);
    padding: .85rem 1rem;
    box-shadow: var(--shadow);
    font-weight: 900;
    animation: toastIn .22s ease both;
}
.public-loader[hidden],
.public-toast[hidden],
.admin-toast[hidden] { display: none; }
.public-loader span,
.admin-toast[data-tone="loading"]::before {
    width: 18px;
    height: 18px;
    border: 3px solid rgba(30,30,70,.2);
    border-top-color: var(--sky-dark);
    border-radius: 999px;
    animation: spin .8s linear infinite;
    content: '';
}
.admin-toast[data-tone="error"] { border-color: rgba(153,45,45,.32); color: #7a1e1e; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.site-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    gap: 1rem;
    justify-content: space-between;
    padding: 0.8rem clamp(1rem, 4vw, 3rem);
    background: rgba(237, 246, 248, 0.9);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--line);
}
.brand { display: flex; align-items: baseline; gap: 0.55rem; color: var(--navy); font-weight: 800; }
.brand-logo-img { max-width: clamp(156px, 16vw, 220px); max-height: 58px; object-fit: contain; display: block; }
.brand-mark { font-family: var(--display); font-size: clamp(2.45rem, 4vw, 3.3rem); letter-spacing: 0; color: var(--sky-dark); line-height: 1; }
.site-nav { display: flex; gap: clamp(0.85rem, 1.6vw, 1.25rem); align-items: center; font-weight: 900; font-size: clamp(0.94rem, 1.05vw, 1.08rem); }
.site-nav a { color: var(--navy); opacity: 0.86; }
.site-nav a:hover, .site-nav a.active { color: var(--sky-dark); opacity: 1; }
.nav-dropdown {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.nav-dropdown > a::after {
    content: '⌄';
    margin-left: .25rem;
    font-size: .8em;
}
.nav-dropdown-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    min-width: 132px;
    display: grid;
    gap: .15rem;
    padding: .45rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(247,245,243,.98);
    box-shadow: var(--shadow);
    transform: translateX(-50%) translateY(-6px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease;
}

.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}
.nav-dropdown-menu:empty { display: none; }
.nav-dropdown-menu a {
    padding: .42rem .55rem;
    border-radius: 6px;
    white-space: nowrap;
}
.nav-dropdown-menu a:hover { background: rgba(30,30,70,.08); }
.menu-toggle { display: none; border: 1px solid var(--line); background: var(--bone); border-radius: var(--radius); padding: 0.65rem 0.8rem; font-weight: 800; }
.btn {
    font-family: var(--button-font);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border-radius: var(--radius);
    border: 1px solid transparent;
    padding: 0.76rem 1rem;
    font-weight: 900;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--sky-dark); color: var(--bone); box-shadow: 4px 4px 0 var(--cyan); }
.btn-secondary { background: var(--bone); color: var(--navy); border-color: var(--sky); }
.section { padding: clamp(3.5rem, 7vw, 6rem) clamp(1rem, 5vw, 4rem); position: relative; }
.section[hidden] { display: none; }
.section.active-page { animation: pageEnter .32s ease both; }
.section > * { max-width: 1180px; margin-left: auto; margin-right: auto; }
.section-soft { background: rgba(217, 232, 239, 0.62); border-block: 1px solid var(--line); }
.hero-section,
.home-intro-grid {
    min-height: calc(100vh - 76px);
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 480px);
    align-items: center;
    gap: clamp(2rem, 6vw, 5rem);
}
.home-section {
    display: grid;
    gap: clamp(1.25rem, 3vw, 2rem);
}
.home-intro-grid {
    width: 100%;
    min-height: auto;
}
.hero-copy, .featured-magazine { max-width: none; }
.eyebrow {
    margin: 0 0 0.8rem;
    color: var(--sky-dark);
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.78rem;
}
h1, h2, h3 {
    margin: 0 0 1rem;
    line-height: 0.98;
    letter-spacing: 0;
    color: var(--navy);
}
h1 { font-size: var(--h1-size, clamp(2.25rem, 4.4vw, 4.15rem)); font-family: var(--title-font); font-weight: 400; }
h2 { font-size: var(--h2-size, clamp(1.65rem, 3vw, 2.75rem)); font-family: var(--title-font); font-weight: 400; }
h3 { font-size: 1.35rem; }
.lead { font-size: clamp(1.05rem, 2vw, 1.32rem); max-width: 64ch; color: #5f5d70; }
.hero-actions, .form-actions { display: flex; gap: 0.8rem; flex-wrap: wrap; margin: 1.5rem 0; }
.inline-form { display: flex; gap: 0.55rem; max-width: 560px; margin-top: 1.2rem; }
.inline-form button { border: 0; border-radius: var(--radius); background: var(--navy); color: var(--bone); padding: 0 1rem; font-weight: 900; cursor: pointer; }
.microcopy { color: var(--muted); font-size: 0.9rem; }
.cover-shell {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1rem;
    box-shadow: var(--shadow);
    display: grid;
    gap: 1rem;
    transform: rotate(-1.5deg);
}
.cover-shell img { aspect-ratio: 3/4; width: 100%; object-fit: cover; border-radius: 4px; border: 1px solid var(--line); }
.cover-click,
.banner-image-button {
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
}
.cover-shell p,
.magazine-card p,
.news-card-description {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.home-banner-carousel {
    width: 100%;
    max-width: 1180px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--navy);
    color: var(--bone);
    box-shadow: var(--shadow);
}
.banner-track {
    display: flex;
    width: 100%;
    animation: bannerSlide 22s infinite;
}
.banner-track:hover { animation-play-state: paused; }
.banner-slide {
    min-width: 100%;
    display: grid;
    grid-template-columns: minmax(180px, .42fr) minmax(0, .58fr);
    gap: clamp(1rem, 3vw, 2rem);
    align-items: center;
    padding: clamp(1rem, 3vw, 1.6rem);
    background: linear-gradient(110deg, rgba(232,229,226,.1), rgba(30,30,70,.94)), var(--navy);
}
.banner-slide img {
    width: min(230px, 100%);
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid rgba(232,229,226,.35);
    box-shadow: 12px 12px 0 rgba(232,229,226,.12);
}
.banner-copy {
    display: grid;
    justify-items: start;
    gap: .65rem;
}
.banner-copy .eyebrow,
.banner-copy h2 { color: var(--bone); }
.banner-copy h2 {
    margin: 0;
    font-size: clamp(2.4rem, 6vw, 4.9rem);
}
.banner-copy p:not(.eyebrow) {
    max-width: 52ch;
    margin: 0;
    color: rgba(232,229,226,.82);
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.banner-copy .btn-primary {
    background: var(--bone);
    color: var(--navy);
    box-shadow: 4px 4px 0 rgba(232,229,226,.25);
}
.chip {
    display: inline-flex;
    width: fit-content;
    border: 1px solid rgba(30,30,70,.28);
    background: rgba(30, 30, 70,.18);
    color: var(--sky-dark);
    border-radius: 999px;
    padding: 0.2rem 0.55rem;
    font-size: 0.78rem;
    font-weight: 900;
}
.section-heading { margin-bottom: 1.8rem; }
.section-heading p:not(.eyebrow) { max-width: 72ch; color: var(--muted); margin: 0; }
.cards-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.content-card, .admin-card, .form-card, .contact-panel, .month-card, .builder-block {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1rem;
    box-shadow: 0 10px 26px rgba(30,30,70,.08);
}
.content-card { display: grid; gap: 0.75rem; align-content: start; }
.content-card img { aspect-ratio: 16/10; object-fit: cover; border-radius: 6px; }
.news-cover-stack {
    align-content: start;
}
.news-cover-stack h3 {
    margin-bottom: 0;
}
.news-cover-stack img {
    width: min(100%, 520px);
    justify-self: center;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    max-height: 280px;
}
.news-card-subtitle,
.news-article-subtitle {
    color: var(--muted);
    font-weight: 800;
}
.magazine-card img { aspect-ratio: 3/4; }
.page-blocks {
    display: grid;
    gap: 0.85rem;
    margin: 1rem auto 1.35rem;
}
.page-blocks[hidden] { display: none; }
.builder-block h3 { margin-bottom: 0.45rem; color: var(--sky-dark); }
.builder-block p { margin: 0; color: #5f5d70; }
.builder-block {
    background: var(--block-bg, var(--card));
    border-color: color-mix(in srgb, var(--block-accent, var(--sky)) 34%, var(--line));
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.builder-block:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(30,30,70,.12); }
.builder-block h3 { color: var(--block-title, var(--sky-dark)); }
.builder-block p,
.builder-list { color: var(--block-text, #5f5d70); }
.builder-block .text-link,
.builder-eyebrow { color: var(--block-accent, var(--sky-dark)); }
.builder-eyebrow {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.builder-align-centro { text-align: center; justify-items: center; }
.builder-align-derecha { text-align: right; justify-items: end; }
.builder-width-ancho { max-width: none; }
.builder-width-compacto { max-width: 720px; }
.builder-layout-destacado { border-width: 2px; box-shadow: 10px 10px 0 color-mix(in srgb, var(--block-accent, var(--cyan)) 36%, transparent); }
.builder-layout-compacto { padding: .75rem; }
.builder-layout-editorial { border-left: 6px solid var(--block-accent, var(--sky)); }
.builder-card { display: grid; gap: 0.75rem; }
.builder-body {
    color: var(--block-text, var(--ink));
}
.builder-body > :first-child { margin-top: 0; }
.builder-body > :last-child { margin-bottom: 0; }
.builder-body iframe {
    width: 100%;
    min-height: 360px;
    border: 0;
    border-radius: var(--radius);
}
.builder-card img, .builder-banner img {
    width: 100%;
    aspect-ratio: 16 / 8;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid var(--line);
}
.builder-banner {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 1rem;
    align-items: center;
    background: linear-gradient(135deg, rgba(47,134,173,.12), rgba(255,250,240,.9));
}
.builder-featured-embed {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(240px, 340px);
    gap: 1rem;
    align-items: center;
    background: var(--navy);
    color: var(--bone);
}
.builder-featured-embed h3,
.builder-featured-embed p,
.builder-featured-embed .builder-eyebrow {
    color: var(--bone);
}
.builder-featured-embed .phone-video-frame {
    margin: 0 auto;
}
.builder-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: var(--block-bg, var(--navy));
    color: var(--block-text, var(--bone));
}
.builder-cta h3 { color: var(--block-title, var(--bone)); }
.builder-cta p { color: var(--block-text, var(--bone)); }
.builder-cta .btn-primary {
    background: var(--block-accent, var(--sky-dark));
    color: var(--bone);
    box-shadow: 4px 4px 0 color-mix(in srgb, var(--block-accent, var(--cyan)) 42%, var(--bone));
}
.builder-list { margin: 0; padding-left: 1.1rem; color: #5f5d70; font-weight: 700; }
.builder-separator {
    border: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--sky), transparent);
    margin: 0.25rem 0;
}
.text-link { color: var(--sky-dark); font-weight: 900; text-decoration: underline; text-underline-offset: 3px; }
.filter-bar { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin-bottom: 1rem; }
.provider-card dl, .contact-panel dl { display: grid; gap: 0.35rem; margin: 0; }
.provider-card dl div, .contact-panel dl div { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); padding-top: 0.45rem; }
dt { color: var(--muted); font-weight: 700; }
dd { margin: 0; font-weight: 800; }
.calendar-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.event-row { display: grid; grid-template-columns: 92px 1fr; gap: 0.8rem; padding: 0.75rem 0; border-top: 1px solid var(--line); }
.event-row time { color: var(--sky-dark); font-weight: 900; }
.event-row span { display: block; color: var(--muted); }
.home-feature-grid {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 1rem;
}
.home-news-feature,
.home-calendar-preview,
.home-quote-card,
.home-contact-card {
    width: 100%;
    max-width: 1180px;
}
.home-news-card {
    height: 100%;
    display: grid;
    grid-template-columns: minmax(180px, .52fr) minmax(0, .48fr);
    gap: 1rem;
    align-items: stretch;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: linear-gradient(180deg, #e8e5e2, #f7f5f3);
    box-shadow: 0 10px 26px rgba(30,30,70,.08);
    padding: 1rem;
}
.home-news-card > img {
    width: 100%;
    height: 100%;
    min-height: 260px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid var(--line);
}
.home-news-cover-stack {
    grid-template-columns: 1fr;
}
.home-news-cover-stack > div {
    display: grid;
    gap: .75rem;
}
.home-news-cover-stack img {
    width: min(100%, 620px);
    justify-self: center;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid var(--line);
}
.home-news-card h2,
.home-calendar-preview h2,
.home-quote-card h2,
.home-contact-card h2 {
    font-size: clamp(2rem, 4vw, 3.4rem);
}
.home-calendar-preview {
    display: grid;
    gap: 1rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--card);
    box-shadow: 0 10px 26px rgba(30,30,70,.08);
    padding: 1rem;
}
.home-calendar-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: start;
}
.home-calendar-months {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}
.mini-month-card {
    min-width: 0;
    display: grid;
    gap: .6rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(255,250,240,.55);
    padding: .75rem;
}
.traditional-month {
    display: grid;
    gap: .45rem;
}
.traditional-month strong {
    color: var(--navy);
    text-transform: capitalize;
}
.weekdays,
.month-days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: .25rem;
}
.weekdays span {
    color: var(--muted);
    font-size: .72rem;
    font-weight: 900;
    text-align: center;
}
.month-days span {
    min-height: 30px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    background: rgba(232,229,226,.72);
    color: var(--navy);
    font-size: .82rem;
    font-weight: 800;
}
.month-days span:empty { background: transparent; }
.month-days .has-event {
    background: var(--navy);
    color: var(--bone);
    box-shadow: 2px 2px 0 rgba(30,30,70,.18);
}
.about-section { display: grid; grid-template-columns: 0.7fr 1.3fr; gap: 1.5rem; align-items: start; }
.about-card { max-width: none; font-size: 1.15rem; }
.contact-layout { display: grid; grid-template-columns: 1.35fr 0.65fr; gap: 1rem; }
.contact-layout > .contact-panel:only-child {
    grid-column: 1 / -1;
}
.quote-card { grid-column: 1 / -1; }
/* .quote-builder is container for table, no grid needed */
.quote-builder:has(.quote-table-wrap) { overflow: auto; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,250,240,.54); }
.quote-form { display: grid; gap: .9rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.9rem; }
.form-card { display: grid; gap: 1rem; }
.form-status { min-height: 1.4rem; color: var(--sky-dark); font-weight: 800; }
.site-footer {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.4rem clamp(1rem, 5vw, 4rem);
    padding-bottom: calc(1.4rem + 56px); /* espacio extra por bottom bar */
    color: var(--bone);
    background: var(--navy);
}
.empty-state { padding: 1.2rem; border: 1px dashed rgba(30,30,70,.42); border-radius: var(--radius); color: var(--muted); background: rgba(255,255,255,.45); }
.reader-open { overflow: hidden; }
.reader-modal { position: fixed; inset: 0; z-index: 120; background: rgba(9,9,28,.84); padding: 1rem; overflow: auto; backdrop-filter: blur(16px); }
.reader-modal:fullscreen { background: #0b0b21; padding: 0; }
.reader-dialog { max-width: 1040px; margin: 2rem auto; background: var(--sky-pale); border-radius: var(--radius); padding: 1rem; box-shadow: var(--shadow); transition: max-width .28s ease, margin .28s ease, min-height .28s ease; }
.reader-expanded .reader-dialog,
.reader-modal:fullscreen .reader-dialog { max-width: none; min-height: 100svh; margin: 0; border-radius: 0; display: grid; grid-template-rows: auto auto 1fr auto; background: #11112e; color: var(--bone); }
.reader-close { float: right; border: 1px solid var(--line); border-radius: var(--radius); background: var(--bone); padding: 0.6rem 0.8rem; cursor: pointer; }
.reader-expanded .reader-close,
.reader-modal:fullscreen .reader-close { position: fixed; top: .8rem; right: .8rem; z-index: 5; background: rgba(232,229,226,.95); color: var(--navy); }
.reader-toolbar { display: flex; justify-content: space-between; gap: 1rem; align-items: center; clear: both; }
.reader-toolbar h2 { margin-bottom: 0; }
.reader-expanded .reader-toolbar,
.reader-modal:fullscreen .reader-toolbar { padding-right: 5.5rem; color: var(--bone); }
.reader-expanded .reader-toolbar h2,
.reader-expanded .reader-toolbar .eyebrow,
.reader-modal:fullscreen .reader-toolbar h2,
.reader-modal:fullscreen .reader-toolbar .eyebrow { color: var(--bone); }
.flipbook-lite { display: grid; gap: 0.8rem; min-height: 0; }
.reader-nav-controls,
.reader-tools { display: flex; justify-content: center; gap: .55rem; flex-wrap: wrap; }
.reader-tools { align-items: center; padding: .55rem; border: 1px solid rgba(30,30,70,.12); border-radius: var(--radius); background: rgba(247,245,243,.56); }
.reader-expanded .reader-tools,
.reader-modal:fullscreen .reader-tools { position: sticky; top: 0; z-index: 4; border-color: rgba(232,229,226,.16); background: rgba(17,17,46,.86); backdrop-filter: blur(16px); }
.reader-tools span { min-width: 4.2rem; text-align: center; font-weight: 900; color: var(--navy); }
.reader-expanded .reader-tools span,
.reader-modal:fullscreen .reader-tools span { color: var(--bone); }
.flipbook-lite button { border: 1px solid var(--line); background: var(--navy); color: var(--bone); border-radius: var(--radius); padding: 0.7rem; cursor: pointer; font-weight: 900; }
.reader-tools button:disabled { opacity: .42; cursor: not-allowed; }
.reader-tools button[aria-pressed="true"],
.reader-nav-controls button[aria-pressed="true"] { background: var(--bone); color: var(--navy); box-shadow: 3px 3px 0 rgba(30,30,70,.24); }
.reader-stage {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);
    gap: 1rem;
    align-items: start;
    min-height: 0;
    position: relative;
}
.reader-expanded .reader-stage,
.reader-modal:fullscreen .reader-stage { grid-template-columns: minmax(0, 1fr) minmax(230px, 310px); min-height: 0; }
.reader-landscape .reader-stage { grid-template-columns: minmax(0, 1fr); }
.reader-landscape .reader-video { display: none; }
.reader-page { min-height: 420px; display: grid; place-items: center; perspective: 1400px; position: relative; overflow: auto; padding: 1rem; border-radius: var(--radius); background: rgba(255,255,255,.28); }
.reader-expanded .reader-page,
.reader-modal:fullscreen .reader-page { min-height: calc(100svh - 220px); background: radial-gradient(circle at 50% 0%, rgba(232,229,226,.16), transparent 28rem), #0b0b21; }
.reader-landscape .reader-page { min-height: calc(100svh - 185px); }
.reader-video {
    background: #102245;
    color: var(--bone);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: var(--radius);
    padding: .95rem;
    box-shadow: 0 18px 38px rgba(0,0,0,.25);
    display: grid;
    gap: 1rem;
    width: 100%;
}
.reader-video .eyebrow,
.reader-video h3,
.reader-video p,
.reader-video a,
.reader-video span,
.reader-video div {
    color: var(--bone) !important;
}
.reader-video-divider {
    border-bottom-color: rgba(255,255,255,.16);
}
.reader-video-content {
    display: grid;
    gap: 1rem;
    width: 100%;
}
.reader-video-content > * {
    width: 100%;
}
.reader-video-content iframe,
.reader-video-content blockquote,
.reader-video-content .instagram-media,
.reader-video-content .phone-video-frame {
    width: 100% !important;
}
.reader-video-content iframe {
    min-height: 420px;
}
.phone-video-frame {
    position: relative;
    width: min(100%, 280px);
    margin: 0 auto .85rem;
    padding: 1.3rem .75rem 1.2rem;
    border-radius: 28px;
    background: #fff;
    border: 1px solid rgba(30,30,70,.14);
    box-shadow: 0 20px 36px rgba(0,0,0,.18), inset 0 0 0 3px rgba(30,30,70,.06);
}
.phone-video-frame iframe {
    width: 100%;
    aspect-ratio: 9 / 16;
    border: 0;
    border-radius: 18px;
    background: #fff;
}
.phone-speaker {
    position: absolute;
    top: .7rem;
    left: 50%;
    width: 64px;
    height: 5px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: rgba(255,255,255,.34);
}
.phone-home {
    position: absolute;
    bottom: .55rem;
    left: 50%;
    width: 44px;
    height: 4px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: rgba(255,255,255,.38);
}
.reader-spread {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(.5rem, 1.5vw, 1rem);
    align-items: center;
    justify-items: center;
    width: fit-content;
    max-width: 100%;
    transform: scale(var(--reader-zoom, 1));
    transform-origin: center top;
    transition: transform .18s ease;
}
.reader-spread-double { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.reader-page-fit-width .reader-spread { width: 100%; }
.reader-page-fit-width .reader-spread > * { width: 100%; max-height: none; }
.reader-page img { max-width: 100%; max-height: 72vh; border-radius: 6px; box-shadow: var(--shadow); transform-origin: left center; background: var(--bone); }
.reader-expanded .reader-page img,
.reader-expanded .pdf-page-canvas,
.reader-modal:fullscreen .reader-page img,
.reader-modal:fullscreen .pdf-page-canvas { max-height: calc(100svh - 245px); }
.reader-landscape .reader-page img,
.reader-landscape .pdf-page-canvas { max-height: calc(100svh - 210px); }
.pdf-page-canvas {
    max-width: 100%;
    max-height: 74vh;
    width: auto;
    height: auto;
    border-radius: 6px;
    background: var(--bone);
    box-shadow: 18px 18px 0 rgba(30,30,70,.16), var(--shadow);
    transform-origin: left center;
}
.pdf-flip-shell {
    width: min(100%, 900px);
    height: min(74vh, 760px);
    border-radius: 8px;
    border: 1px solid var(--line);
    overflow: hidden;
    background: var(--bone);
    box-shadow: 18px 18px 0 rgba(30,30,70,.16), var(--shadow);
    transform-origin: left center;
}
.pdf-flip-shell iframe {
    width: 100%;
    height: 100%;
    border: 0;
    background: var(--bone);
}
.reader-page.is-turning > img:not(.flipbook-page-out),
.reader-page.is-turning > .pdf-page-canvas:not(.flipbook-page-out),
.reader-page.is-turning > .reader-spread:not(.flipbook-page-out),
.reader-page.is-turning > .pdf-flip-shell:not(.flipbook-page-out) {
    animation: pageReveal .46s ease both;
}
.flipbook-page-out {
    position: absolute;
    inset: auto;
    z-index: 3;
    pointer-events: none;
    backface-visibility: hidden;
    transform-style: preserve-3d;
    filter: brightness(1.02);
}
.flipbook-page-out::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at left center, rgba(255,255,255,.48), transparent 34%),
        linear-gradient(90deg, rgba(30,30,70,.24), transparent 18%, rgba(255,255,255,.28) 52%, rgba(30,30,70,.2));
    mix-blend-mode: multiply;
    opacity: .42;
    pointer-events: none;
}
.flipbook-page-out::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255,255,255,.18), rgba(30,30,70,.22));
    pointer-events: none;
}
.flipbook-page-out.flipbook-next {
    transform-origin: left center;
    animation: physicalFlipNext .86s cubic-bezier(.17,.72,.22,1) forwards;
}
.flipbook-page-out.flipbook-prev {
    transform-origin: right center;
    animation: physicalFlipPrev .86s cubic-bezier(.17,.72,.22,1) forwards;
}
@keyframes pageReveal {
    0% { transform: scale(.985); opacity: .72; filter: brightness(.95); }
    100% { transform: scale(1); opacity: 1; filter: brightness(1); }
}
@keyframes physicalFlipNext {
    0% { transform: rotateY(0deg) translateX(0) skewY(0deg) scaleX(1); box-shadow: 18px 18px 0 rgba(30,30,70,.16), var(--shadow); opacity: 1; filter: brightness(1); }
    35% { transform: rotateY(-48deg) translateX(-3%) skewY(-1deg) scaleX(.96); box-shadow: 30px 18px 26px rgba(30,30,70,.28); opacity: .98; filter: brightness(1.08); }
    68% { transform: rotateY(-104deg) translateX(-11%) skewY(-2.6deg) scaleX(.88); box-shadow: 42px 12px 34px rgba(30,30,70,.22); opacity: .75; filter: brightness(.92); }
    100% { transform: rotateY(-154deg) translateX(-18%) skewY(-3deg) scaleX(.82); box-shadow: 48px 12px 34px rgba(30,30,70,.18); opacity: 0; }
}
@keyframes physicalFlipPrev {
    0% { transform: rotateY(0deg) translateX(0) skewY(0deg) scaleX(1); box-shadow: 18px 18px 0 rgba(30,30,70,.16), var(--shadow); opacity: 1; filter: brightness(1); }
    35% { transform: rotateY(48deg) translateX(3%) skewY(1deg) scaleX(.96); box-shadow: -30px 18px 26px rgba(30,30,70,.28); opacity: .98; filter: brightness(1.08); }
    68% { transform: rotateY(104deg) translateX(11%) skewY(2.6deg) scaleX(.88); box-shadow: -42px 12px 34px rgba(30,30,70,.22); opacity: .75; filter: brightness(.92); }
    100% { transform: rotateY(154deg) translateX(18%) skewY(3deg) scaleX(.82); box-shadow: -48px 12px 34px rgba(30,30,70,.18); opacity: 0; }
}
.share-sheet-modal,
.admin-tour-modal {
    position: fixed;
    inset: 0;
    z-index: 180;
    display: none;
    place-items: center;
    padding: 1rem;
    background: rgba(30,30,70,.7);
    backdrop-filter: blur(12px);
    animation: introFadeIn .18s ease both;
}
.share-sheet-modal.is-open,
.admin-tour-modal.is-open {
    display: grid;
}
.share-sheet,
.admin-tour-card {
    width: min(520px, 100%);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--bone);
    box-shadow: var(--shadow);
    padding: 1rem;
}
.share-close {
    float: right;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #f6f8f8;
    padding: .55rem .7rem;
    cursor: pointer;
    font-weight: 900;
}
.share-grid {
    clear: both;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    margin-top: 1rem;
}
.share-grid a,
.share-grid button {
    min-height: 46px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(237,246,248,.8);
    color: var(--navy);
    display: grid;
    place-items: center;
    font-weight: 900;
    cursor: pointer;
}
.social-links { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.social-links a {
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: .45rem .65rem;
    background: rgba(237,246,248,.72);
    color: var(--navy);
    font-weight: 900;
}
.news-paper-card { position: relative; background: linear-gradient(180deg, #e8e5e2, #f7f5f3); }
.news-paper-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-top: 5px solid rgba(30,30,70,.14);
    pointer-events: none;
}
.news-paper-card h3 { font-family: var(--title-font); font-size: clamp(1.55rem, 4vw, 2.2rem); line-height: .95; }
.news-paper-card .text-link {
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
    font: inherit;
}
.news-article-modal {
    position: fixed;
    inset: 0;
    z-index: 190;
    display: grid;
    place-items: center;
    padding: 1rem;
    overflow: auto;
    background: rgba(30,30,70,.72);
    backdrop-filter: blur(12px);
}
.news-article-sheet {
    width: min(860px, 100%);
    max-height: calc(100svh - 2rem);
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(30,30,70,.08) 1px, transparent 1px) 0 0 / 42px 42px,
        var(--bone);
    box-shadow: var(--shadow);
    padding: clamp(1rem, 4vw, 2rem);
}
.news-close { float: right; border: 1px solid var(--line); border-radius: 8px; padding: .55rem .7rem; background: #f6f8f8; font-weight: 900; cursor: pointer; }
.news-article-sheet h2 { clear: both; font-family: var(--title-font); color: var(--navy); line-height: .95; }
.news-date { color: var(--muted); font-weight: 900; }
.news-article-sheet img { width: 100%; max-height: 440px; object-fit: cover; border-radius: 8px; margin: 1rem 0; }
.news-body {
    columns: auto;
    column-count: 1;
    max-width: 82ch;
    font-family: var(--body);
    font-size: 1.06rem;
    line-height: 1.72;
    color: var(--ink);
    overflow-wrap: anywhere;
}
.news-body h1,
.news-body h2,
.news-body h3,
.news-body h4 {
    margin: 1.15em 0 .45em;
    color: var(--navy);
    font-family: var(--title-font);
    line-height: 1;
}
.news-body h1 { font-size: clamp(2rem, 5vw, 3.2rem); }
.news-body h2 { font-size: clamp(1.65rem, 4vw, 2.55rem); }
.news-body h3 { font-size: clamp(1.28rem, 3vw, 1.9rem); }
.news-body p { margin: .8em 0; }
.news-body ul,
.news-body ol {
    margin: .9em 0 1em;
    padding-left: 1.35em;
}
.news-body li { margin: .38em 0; }
.news-body a {
    color: var(--sky-dark);
    font-weight: 900;
    text-decoration: underline;
    text-underline-offset: .16em;
}
.news-body blockquote {
    margin: 1.2rem 0;
    padding: .9rem 1rem;
    border-left: 5px solid var(--navy);
    border-radius: 8px;
    background: rgba(255,255,255,.55);
    color: var(--muted);
    font-weight: 800;
}
.news-body pre {
    overflow-x: auto;
    border-radius: 8px;
    background: rgba(30,30,70,.08);
    padding: .9rem;
}
.news-body code {
    font-family: 'Space Mono', monospace;
    font-size: .92em;
}
.news-body iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
    min-height: 260px;
    border: 0;
    border-radius: 8px;
    margin: 1rem 0;
}
.news-body figure { break-inside: avoid; margin: 1rem 0; }
.news-body img { max-height: none; }
.news-media-figure {
    display: table;
    max-width: 100%;
    margin: 1rem auto;
    clear: both;
}
.news-media-figure img {
    width: 100%;
    border-radius: 8px;
    object-fit: contain;
}
.news-media-figure figcaption {
    display: table-caption;
    caption-side: bottom;
    color: var(--muted);
    font-size: .86rem;
    font-weight: 800;
    line-height: 1.35;
    padding-top: .35rem;
}
.news-media-sm { width: min(220px, 100%); }
.news-media-md { width: min(360px, 100%); }
.news-media-lg { width: min(560px, 100%); }
.news-media-full { width: 100%; clear: both; }
.news-media-left {
    float: left;
    clear: left;
    margin: .35rem 1.25rem .85rem 0;
}
.news-media-right {
    float: right;
    clear: right;
    margin: .35rem 0 .85rem 1.25rem;
}
.news-media-center {
    clear: both;
    margin-left: auto;
    margin-right: auto;
}
.news-body::after {
    content: '';
    display: block;
    clear: both;
}
.news-body blockquote {
    break-inside: avoid;
    margin: 1rem 0;
    padding: 1rem;
    border-left: 5px solid var(--sky-dark);
    background: rgba(237,246,248,.78);
    border-radius: 8px;
}
.news-body iframe {
    width: 100%;
    min-height: min(64vh, 460px);
    border: 0;
    border-radius: var(--radius);
    background: var(--navy);
    break-inside: avoid;
}
.profile-logo-editor {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(255,250,240,.72);
}
.profile-logo-preview {
    min-height: 110px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    border: 1px dashed rgba(30,30,70,.35);
    background: rgba(237,246,248,.75);
    font-family: 'VT323', monospace;
    font-size: 2.8rem;
    color: var(--sky-dark);
}
.profile-logo-preview img { max-width: 140px; max-height: 86px; object-fit: contain; }
.brand-kit-preview {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}
.brand-swatch {
    min-height: 128px;
    display: grid;
    align-content: end;
    gap: .15rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--swatch);
    color: #fff;
    padding: 1rem;
    box-shadow: 0 10px 26px rgba(30,30,70,.12);
}
.brand-swatch[style*="e8e5e2"] {
    color: var(--navy);
}
.brand-swatch span {
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .75rem;
}
.brand-swatch strong {
    font-family: var(--title-font);
    font-size: 2rem;
    line-height: 1;
}
.content-blocks { display: grid; gap: 1rem; margin: 1rem 0; }
.public-content-block {
    width: 100%;
    max-width: 980px;
    margin: var(--content-mt, 0) auto var(--content-mb, 0);
    padding: var(--content-padding, 0);
    border-radius: var(--content-radius, 0);
    background: var(--content-bg, transparent);
    box-shadow: var(--content-shadow, none);
    font-family: var(--content-font, 'Space Mono', monospace);
    font-size: var(--content-size, 18px);
    font-weight: var(--content-weight, 500);
    line-height: var(--content-line, 1.5);
    letter-spacing: var(--content-letter, 0);
    overflow-wrap: anywhere;
}
.public-content-block {
    width: min(var(--builder-width-percent, 100%), 100%);
    margin-top: calc(var(--content-mt, 0px) + var(--builder-margin-top, 0px));
    transform: translateX(var(--builder-offset-x, 0px));
}
.content-align-left { margin-left: 0; margin-right: auto; }
.content-align-center { margin-left: auto; margin-right: auto; }
.content-align-right { margin-left: auto; margin-right: 0; }
.content-width-compacto { max-width: 720px; }
.content-width-ancho { max-width: 1180px; }
.content-width-completo { max-width: none; }
.content-container-box { border: 1px solid var(--line); }
.content-container-card { border: 1px solid var(--line); background: var(--content-bg, var(--bone)); }
.content-container-section { max-width: none; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.public-content-block h1,
.public-content-block h2,
.public-content-block h3,
.public-content-block h4 { color: var(--navy); line-height: 1; margin: .35em 0; }
.public-content-block p { margin: .7em 0; }
.public-content-block ul,
.public-content-block ol {
    margin: .85em 0;
    padding-left: 1.35em;
}
.public-content-block li {
    margin: .35em 0;
}
.public-content-block a {
    color: var(--sky-dark);
    font-weight: 900;
    text-decoration: underline;
    text-underline-offset: .16em;
}
.public-content-block pre {
    overflow-x: auto;
    border-radius: 8px;
    background: rgba(30,30,70,.08);
    padding: .85rem;
}
.public-content-block code {
    font-family: 'Space Mono', monospace;
    font-size: .92em;
}
.public-content-block blockquote,
.content-highlight {
    margin: 1rem 0;
    padding: 1rem;
    border-left: 5px solid var(--sky-dark);
    border-radius: 8px;
    background: rgba(237,246,248,.8);
}
.public-content-block hr { border: 0; border-top: 1px solid var(--line); margin: 1.2rem 0; }
.public-content-block figure { margin: 1rem 0; }
.public-content-block img {
    width: var(--content-image-size, 100%);
    max-width: 100%;
    border-radius: var(--content-image-radius, 0);
    object-fit: cover;
}
.public-content-block figcaption { color: var(--muted); font-size: .88em; font-weight: 700; }
.public-content-block iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
    min-height: 260px;
    border: 0;
    border-radius: 8px;
    margin: 1rem 0;
}

/* Premium media blocks: no inherited color slab below the video. */
.public-content-block .sinapse-video-card,
.sinapse-video-card {
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    padding: clamp(5px, .7vw, 9px);
    overflow: hidden;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: clamp(18px, 2vw, 28px);
    background: rgba(255,255,255,.92);
    box-shadow: 0 22px 60px rgba(30,30,70,.14);
}
.public-content-block .sinapse-video,
.sinapse-video {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: clamp(14px, 1.6vw, 22px);
    background: linear-gradient(145deg, #11182c, #242452);
}
.public-content-block .sinapse-video iframe,
.public-content-block .sinapse-video video,
.sinapse-video iframe,
.sinapse-video video {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    margin: 0;
    border: 0;
    border-radius: inherit;
    object-fit: cover;
}
@media (max-width: 760px) {
    .public-content-block {
        width: 100% !important;
        transform: none !important;
    }
}
.content-image-left,
.content-image-right { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(0, 1fr); gap: 1rem; align-items: start; }
.content-image-right figure { order: 2; }
.content-image-background { background-size: cover; background-position: center; }
.content-button {
    display: inline-grid;
    place-items: center;
    min-height: 42px;
    margin: .5rem .4rem .5rem 0;
    padding: .65rem 1rem;
    border-radius: 8px;
    background: var(--sky-dark);
    color: var(--bone);
    font-weight: 900;
}
.content-table-wrap { overflow-x: auto; margin: 1rem 0; }
.public-content-block table { width: 100%; border-collapse: collapse; min-width: 520px; background: rgba(255,255,255,.55); }
.public-content-block th,
.public-content-block td { border: 1px solid var(--table-border, var(--line)); padding: var(--table-padding, .65rem); text-align: left; color: var(--table-text, inherit); }
.public-content-block th { background: var(--table-head, var(--navy)); color: var(--bone); }
.ql-align-center { text-align: center; }
.ql-align-right { text-align: right; }
.ql-align-justify { text-align: justify; }
.ql-size-small { font-size: .82em; }
.ql-size-large { font-size: 1.28em; }
.ql-size-huge { font-size: 1.72em; }
.ql-indent-1 { padding-left: 3em; }
.ql-indent-2 { padding-left: 6em; }
.ql-indent-3 { padding-left: 9em; }
.ql-indent-4 { padding-left: 12em; }
.visual-editor-card { display: grid; gap: 1rem; }
.visual-editor-shell { display: grid; gap: 1rem; }
.visual-toolbar,
.visual-preview-controls {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    padding: .65rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(237,246,248,.8);
}
.visual-toolbar button,
.visual-toolbar select,
.visual-upload,
.visual-preview-controls button {
    min-height: 38px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--bone);
    color: var(--navy);
    padding: .45rem .65rem;
    font-weight: 900;
    cursor: pointer;
}
.visual-upload input { display: none; }
.visual-media-input,
.visual-media-select {
    flex: 1 1 170px;
    min-width: 160px;
    min-height: 38px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--navy);
    padding: .45rem .65rem;
    font: inherit;
}
.news-rich-editor .news-media-figure {
    border: 2px solid transparent;
    border-radius: 10px;
    padding: .25rem;
    cursor: pointer;
}
.news-rich-editor .news-media-figure.is-selected {
    border-color: var(--navy);
    box-shadow: 0 0 0 3px rgba(30,30,70,.12);
}
.news-rich-editor .news-media-left,
.news-rich-editor .news-media-right {
    max-width: calc(100% - 1rem);
}
.visual-style-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}
.visual-editor-area {
    min-height: 280px;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--bone);
    outline: none;
}
.visual-editor-area:focus { box-shadow: 0 0 0 3px rgba(30, 30, 70,.35); }
.visual-preview {
    padding: 1rem;
    border: 1px dashed rgba(30,30,70,.35);
    border-radius: 8px;
    background: rgba(255,255,255,.45);
}
.visual-preview[data-mode="mobile"] {
    max-width: 390px;
    margin-inline: auto;
    border-color: var(--sky-dark);
}
.visual-preview-controls button.active { background: var(--navy); color: var(--bone); }
.admin-tour-progress {
    display: flex;
    gap: .35rem;
    margin: 1rem 0;
}
.admin-tour-progress span {
    width: 100%;
    height: 7px;
    border-radius: 999px;
    background: rgba(30,30,70,.18);
}
.admin-tour-progress span.active { background: var(--sky-dark); }

.admin-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: auto;
    background: var(--navy);
    color: var(--bone);
    padding: 1rem;
}
.admin-brand { color: var(--bone); margin-bottom: 1rem; display: flex; }
.base-label { margin: 1rem 0 0.45rem; color: var(--cyan); font-size: 0.75rem; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.admin-tab {
    width: 100%;
    text-align: left;
    border: 1px solid rgba(255,255,255,.1);
    background: rgba(255,255,255,.05);
    color: var(--bone);
    border-radius: var(--radius);
    padding: 0.72rem;
    margin-bottom: 0.4rem;
    cursor: pointer;
    font-weight: 800;
}
.admin-tab.active { background: var(--sky); color: #fff; }
.admin-logout { width: 100%; margin-top: 1rem; }
.admin-main { padding: clamp(1rem, 2vw, 1.4rem); overflow: auto; min-width: 0; }
.admin-panel { display: none; }
.admin-panel.active { display: block; }
.admin-heading {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: end;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}
.admin-heading .eyebrow { flex-basis: 100%; margin-bottom: -0.35rem; }
.admin-heading h1 { margin-right: auto; }
.admin-heading .btn { white-space: nowrap; }
.stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.8rem; margin-bottom: 1rem; }
.stat-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem; }
.stat-card strong { display: block; font-family: var(--display); font-size: 3rem; line-height: 1; color: var(--sky-dark); }
.stat-card span { color: var(--muted); font-weight: 800; }
.admin-two-col, .admin-grid-forms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.admin-lists { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.form-stack { display: grid; gap: 0.8rem; align-content: start; }
.wide-form { margin-bottom: 1rem; }
.check-row { display: flex; align-items: center; gap: 0.55rem; }
.check-row input { width: auto; }
.table-wrap { overflow: auto; background: var(--card); border-radius: var(--radius); border: 1px solid var(--line); }
.admin-table { width: 100%; min-width: 1120px; table-layout: fixed; }
.admin-table th, .admin-table td { padding: 0.7rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.admin-table th { color: var(--sky-dark); font-size: 0.78rem; text-transform: uppercase; }
.admin-table .crm-date { width: 96px; }
.admin-table .crm-name,
.admin-table .crm-company { width: 140px; }
.admin-table .crm-giro,
.admin-table .crm-interest { width: 120px; }
.admin-table .crm-phone { width: 116px; }
.admin-table .crm-email { width: 190px; }
.admin-table .crm-status { width: 168px; }
.admin-table .crm-status select {
    min-width: 0;
    width: 100%;
}
.admin-table .row-actions { display: flex; gap: 0.3rem; flex-wrap: wrap; }
.admin-table .row-actions button,
.admin-table .row-actions .text-link { padding: 0.3rem 0.5rem; font-size: 0.75rem; border-radius: 4px; border: 1px solid var(--line); background: #fff; cursor: pointer; font-weight: 600; white-space: nowrap; text-decoration: none; color: var(--navy); font-family: inherit; transition: background .12s; }
.admin-table .row-actions button:hover,
.admin-table .row-actions .text-link:hover { background: var(--sky); color: #fff; border-color: var(--sky); }
.admin-table .btn-notes { background: #e8f5e9; border-color: #a5d6a7; }
.admin-table .btn-notes:hover { background: #4caf50 !important; border-color: #4caf50 !important; }
.admin-table .btn-detail { background: #e3f2fd; border-color: #90caf9; }
.admin-table .btn-detail:hover { background: #1976d2 !important; border-color: #1976d2 !important; }
.row-actions { display: grid; grid-template-columns: 1fr; gap: 0.45rem; min-width: 120px; }
.row-actions a,
.row-actions button { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; text-align: center; }
.row-actions button, .mini-row button {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #f6f8f8;
    cursor: pointer;
    padding: 0.45rem 0.55rem;
    font-weight: 800;
}
.editor-list { display: grid; gap: 0.75rem; min-width: 0; }
.text-row {
    display: grid;
    grid-template-columns: minmax(190px, 0.46fr) minmax(320px, 1.35fr) minmax(170px, 0.42fr);
    gap: 0.8rem;
    align-items: stretch;
    background: rgba(255,250,240,.74);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 0.85rem;
    min-width: 0;
}
.text-row-meta,
.text-row-actions {
    display: grid;
    align-content: center;
    gap: 0.35rem;
    min-width: 0;
}
.text-row-meta strong {
    color: var(--navy);
    font-size: 1rem;
    line-height: 1.18;
}
.text-row strong, .text-row small { display: block; }
.text-row small { color: var(--muted); }
.text-row-editor {
    min-width: 0;
    gap: 0.35rem;
}
.text-row-editor span {
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.text-row textarea {
    min-height: 96px;
    width: 100%;
    min-width: 0;
    line-height: 1.45;
}
.text-row-actions .btn {
    min-height: 40px;
    width: 100%;
}
.text-row-actions .check-row {
    justify-content: flex-start;
}
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem; }
.settings-grid .btn { grid-column: 1 / -1; }
.mini-row { display: grid; grid-template-columns: 1fr auto auto auto; gap: 0.5rem; align-items: center; padding: 0.55rem 0; border-top: 1px solid var(--line); }
.mini-row div { display: grid; gap: 0.15rem; }
.mini-row span:first-child { font-weight: 900; color: var(--navy); }
.mini-row span { color: var(--muted); }
.login-overlay { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; background: rgba(30,30,70,.82); backdrop-filter: blur(14px); padding: 1rem; }
.login-overlay[hidden] { display: none; }
body.admin-locked .admin-sidebar,
body.admin-locked .admin-main {
    display: none !important;
}
.login-card { width: min(420px, 100%); background: var(--bone); border-radius: var(--radius); box-shadow: var(--shadow); padding: 1.2rem; display: grid; gap: 0.9rem; }

.synapse-panel {
    margin: -0.15rem 0 1rem;
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--sky) 36%, var(--line));
    border-radius: var(--radius);
    background:
        linear-gradient(135deg, rgba(30, 30, 70,.16), rgba(255,250,240,.82)),
        var(--card);
    box-shadow: 0 14px 34px rgba(30,30,70,.1);
    animation: synapseOpen .22s ease both;
}
.synapse-panel[hidden] { display: none; }
.synapse-panel h2 {
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    margin-bottom: .45rem;
}
.synapse-panel p { margin: 0; color: #5f5d70; }
.synapse-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
    margin-top: .9rem;
}
.synapse-grid article {
    display: grid;
    gap: .25rem;
    border: 1px solid rgba(30,30,70,.16);
    border-radius: var(--radius);
    background: rgba(255,250,240,.62);
    padding: .75rem;
}
.synapse-grid strong { color: var(--navy); }
.synapse-grid span { color: var(--muted); font-size: .92rem; }
.synapse-toggle {
    text-transform: uppercase;
    letter-spacing: .02em;
}

.form-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}
.form-title-row h2 { margin: 0; }
.form-title-row button,
.style-presets button,
.note-toolbar button {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(255,250,240,.86);
    color: var(--navy);
    cursor: pointer;
    font-weight: 900;
    padding: .55rem .7rem;
}
.builder-group {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(255,255,255,.34);
    padding: .75rem;
}
.builder-group summary {
    cursor: pointer;
    color: var(--sky-dark);
    font-weight: 900;
}
.builder-group-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-top: .75rem;
}
.builder-subtabs {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    margin: 0 0 1rem;
    padding: .45rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(255,250,240,.56);
}
.builder-subtab {
    min-height: 42px;
    border: 1px solid transparent;
    border-radius: var(--radius);
    background: transparent;
    color: var(--navy);
    cursor: pointer;
    font-weight: 900;
    padding: .55rem .85rem;
}
.builder-subtab:hover,
.builder-subtab.active {
    border-color: rgba(30,30,70,.24);
    background: var(--sky-dark);
    color: var(--bone);
    box-shadow: 3px 3px 0 var(--cyan);
}
.builder-subpanel {
    display: none;
    animation: synapseOpen .2s ease both;
}
.builder-subpanel.active {
    display: block;
}
.builder-studio {
    display: grid;
    gap: 1rem;
    margin-bottom: 1.2rem;
    border-radius: 8px;
}
.builder-studio-head,
.builder-current-page,
.builder-canvas-head,
.builder-preview-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .85rem;
}
.builder-studio-head h2,
.builder-current-page h2,
.builder-preview-head h2 {
    margin: 0;
}
.builder-studio-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: flex-end;
}
.builder-page-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    padding: .45rem;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 8px;
    background: rgba(255,255,255,.55);
}
.builder-page-chip {
    min-height: 38px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: var(--navy);
    cursor: pointer;
    font-weight: 900;
    padding: .45rem .75rem;
}
.builder-page-chip.active,
.builder-page-chip:hover {
    border-color: rgba(30,30,70,.2);
    background: var(--navy);
    color: var(--bone);
}
.builder-studio-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
    gap: 1rem;
    align-items: start;
}
.builder-studio-workbench,
.builder-live-preview-card {
    min-width: 0;
    display: grid;
    gap: .9rem;
}
.builder-module-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: .75rem;
}
.builder-module-card {
    position: relative;
    display: grid;
    gap: .75rem;
    align-content: space-between;
    min-height: 160px;
    border: 1px solid rgba(30,30,70,.14);
    border-radius: 8px;
    background: rgba(255,255,255,.82);
    padding: .9rem;
}
.builder-module-icon {
    width: 38px;
    height: 38px;
    display: inline-grid;
    place-items: center;
    border-radius: 8px;
    background: rgba(30,30,70,.08);
    color: var(--navy);
}
.builder-module-icon svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.builder-module-card h3 {
    margin: 0 0 .3rem;
    font-size: 1rem;
}
.builder-module-card p {
    margin: 0;
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.45;
}
.builder-module-card button,
.builder-row-actions button {
    min-height: 36px;
    border: 1px solid rgba(30,30,70,.14);
    border-radius: 7px;
    background: #fff;
    color: var(--navy);
    cursor: pointer;
    font-weight: 900;
    padding: .45rem .65rem;
    white-space: nowrap;
}
.builder-module-card button:hover,
.builder-row-actions button:hover {
    background: var(--navy);
    color: var(--bone);
}
.builder-page-canvas {
    display: grid;
    gap: .65rem;
}
.builder-canvas-row {
    display: grid;
    grid-template-columns: 12px minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: center;
    border: 1px solid rgba(30,30,70,.14);
    border-radius: 8px;
    background: rgba(255,255,255,.88);
    padding: .75rem;
}
.builder-canvas-row.is-hidden {
    opacity: .72;
    background: rgba(241,245,249,.75);
}
.builder-row-swatch {
    width: 12px;
    min-height: 58px;
    border-radius: 999px;
    background: var(--builder-swatch, #f1f5f9);
    border: 1px solid rgba(30,30,70,.12);
}
.builder-row-main {
    min-width: 0;
    display: grid;
    gap: .45rem;
}
.builder-row-title {
    display: grid;
    gap: .15rem;
}
.builder-row-title strong {
    color: var(--navy);
    overflow-wrap: anywhere;
}
.builder-row-title span {
    color: var(--muted);
    font-size: .85rem;
}
.builder-row-status,
.builder-row-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    align-items: center;
}
.builder-row-actions {
    justify-content: flex-end;
}
#media-type-filter {
    min-height: 40px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--navy);
    padding: .45rem .7rem;
    font: inherit;
    font-weight: 800;
}
.builder-status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    border-radius: 999px;
    background: rgba(30,30,70,.08);
    color: var(--navy);
    font-size: .78rem;
    font-weight: 900;
    padding: .25rem .55rem;
}
.builder-status-pill.ok {
    background: rgba(22,163,74,.12);
    color: #166534;
}
.builder-status-pill.muted {
    background: rgba(100,116,139,.14);
    color: #475569;
}
.builder-status-pill.warning {
    background: rgba(217,119,6,.14);
    color: #92400e;
}
.builder-live-preview-card {
    position: sticky;
    top: 1rem;
    border: 1px solid rgba(30,30,70,.14);
    border-radius: 8px;
    background: rgba(255,255,255,.88);
    padding: .9rem;
}
.builder-live-preview {
    width: 100%;
    min-height: 560px;
    border: 1px solid rgba(30,30,70,.16);
    border-radius: 8px;
    background: #fff;
}
.app-icon-preview {
    width: 112px;
    min-height: 112px;
    align-items: center;
    justify-content: center;
}
.app-icon-preview img {
    max-width: 84px;
    max-height: 84px;
    object-fit: contain;
    border-radius: 18px;
}
.style-presets,
.note-toolbar,
.builder-filter-row {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    margin: .75rem 0;
}
.color-pair {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: .5rem;
    align-items: center;
}
.color-pair input[type="color"] {
    min-height: 44px;
    padding: .2rem;
}
.builder-mini-row span:nth-child(3) { font-size: .82rem; }
.mini-row.media-mini-row {
    grid-template-columns: 58px minmax(0, 1fr) auto auto auto auto;
}
.media-thumb {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    border: 1px solid var(--line);
    background: #fff;
    object-fit: cover;
}
.media-file-thumb {
    display: inline-grid;
    place-items: center;
    color: var(--navy);
    font-size: .72rem;
    font-weight: 900;
}
.lite-notepad textarea {
    min-height: 260px;
    background:
        linear-gradient(rgba(30,30,70,.08) 1px, transparent 1px),
        rgba(255,250,240,.78);
    background-size: 100% 2rem;
    line-height: 2rem;
}
.builder-support-grid {
    display: grid;
    grid-template-columns: minmax(280px, .55fr) minmax(0, 1.45fr);
    gap: 1rem;
    align-items: start;
    margin-bottom: 1rem;
}
.texts-admin-card {
    min-width: 0;
}
.admin-card.texts-admin-card > h2 {
    font-size: clamp(1.8rem, 3vw, 2.45rem);
}

@keyframes pageEnter {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes synapseOpen {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes toastIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes introFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes introFadeOut {
    to { opacity: 0; visibility: hidden; }
}
@keyframes introLogoLoading {
    0%, 100% { opacity: .76; transform: translate3d(0, 2px, 0) scale(.985); }
    50% { opacity: 1; transform: translate3d(0, -2px, 0) scale(1); }
}
@keyframes introProgress {
    0% { transform: translate3d(-115%, 0, 0); }
    55%, 100% { transform: translate3d(275%, 0, 0); }
}
@keyframes bannerSlide {
    0%, 21% { transform: translateX(0); }
    25%, 46% { transform: translateX(-100%); }
    50%, 71% { transform: translateX(-200%); }
    75%, 96% { transform: translateX(-300%); }
    100% { transform: translateX(0); }
}
@keyframes readArrowBounce {
    0%, 100% { transform: translateY(0); opacity: .72; }
    50% { transform: translateY(8px); opacity: 1; }
}
@keyframes openMagazineHint {
    0%, 100% { transform: translate(-50%, 4px); opacity: .88; }
    50% { transform: translate(-50%, 0); opacity: 1; }
}

@media (max-width: 980px) {
    .site-nav { position: absolute; top: 100%; left: 1rem; right: 1rem; display: none; flex-direction: column; align-items: stretch; background: var(--bone); border: 1px solid var(--line); border-radius: var(--radius); padding: 0.8rem; box-shadow: var(--shadow); }
    .site-nav.is-open { display: flex; }
    .nav-dropdown { display: grid; align-items: stretch; }
    .nav-dropdown-menu {
        position: static;
        min-width: 0;
        margin-top: .35rem;
        box-shadow: none;
        transform: none;
        opacity: 1;
        pointer-events: auto;
        background: rgba(255,255,255,.44);
    }
    .menu-toggle { display: inline-flex; }
    .site-header .js-whatsapp { display: none; }
    .hero-section, .home-intro-grid, .home-feature-grid, .about-section, .contact-layout, .admin-two-col, .admin-grid-forms, .admin-lists, .builder-support-grid, .builder-studio-shell { grid-template-columns: 1fr; }
    /* reader-stage keeps its columns, but on small screens .reader-stage goes to 1fr from 760px media query */
    .cards-grid, .calendar-list, .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* .quote-builder is now a table container, no grid needed */
    body.admin-body { grid-template-columns: 1fr; }
    .admin-sidebar { position: static; height: auto; }
    .text-row { grid-template-columns: 1fr; }
    .synapse-grid { grid-template-columns: 1fr; }
    .builder-group-grid { grid-template-columns: 1fr; }
    .builder-subtabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .builder-subtab { width: 100%; }
    .builder-module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .builder-live-preview-card { position: static; }
    .builder-live-preview { min-height: 420px; }
}

@media (max-width: 640px) {
    .site-header { align-items: center; }
    .hero-section, .home-section { padding-top: 2rem; }
    .banner-slide,
    .home-news-card,
    .home-calendar-months { grid-template-columns: 1fr; }
    .builder-featured-embed { grid-template-columns: 1fr; }
    .banner-slide img { width: min(190px, 70vw); margin-inline: auto; }
    .quote-month-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .inline-form, .hero-actions, .form-actions, .reader-toolbar { flex-direction: column; align-items: stretch; }
    .cards-grid, .calendar-list, .filter-bar, .form-grid, .settings-grid, .stat-grid { grid-template-columns: 1fr; }
    .reader-page { min-height: 300px; }
    .reader-spread-double { grid-template-columns: 1fr; }
    .reader-expanded .reader-page,
    .reader-modal:fullscreen .reader-page { min-height: calc(100svh - 245px); padding: .65rem; }
    .reader-nav-controls { order: -1; position: sticky; top: .5rem; z-index: 4; padding: .45rem; border-radius: 10px; background: rgba(237,246,248,.82); backdrop-filter: blur(12px); }
    .reader-nav-controls button { flex: 1 1 0; min-width: 0; }
    .reader-tools { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; }
    .reader-tools span { min-width: 0; padding: .55rem .2rem; }
    .reader-tools button { min-width: 0; padding: .62rem .35rem; font-size: .82rem; }
    .site-footer { flex-direction: column; }
    .builder-subtabs { grid-template-columns: 1fr; }
    .builder-studio-head,
    .builder-current-page,
    .builder-canvas-head,
    .builder-preview-head,
    .builder-studio-actions {
        display: grid;
        justify-content: stretch;
    }
    .builder-module-grid { grid-template-columns: 1fr; }
    .builder-canvas-row { grid-template-columns: 10px minmax(0, 1fr); }
    .builder-row-actions {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }
.builder-row-actions button { flex: 1 1 120px; }
    .builder-live-preview { min-height: 360px; }
    .mini-row.media-mini-row {
        grid-template-columns: 48px minmax(0, 1fr);
    }
    .mini-row.media-mini-row button {
        grid-column: 1 / -1;
    }
    .admin-editor-modal {
        padding: .5rem;
    }
    .admin-editor-dialog {
        width: calc(100vw - 1rem);
        max-height: calc(100svh - 1rem);
    }
    .admin-editor-head,
    .admin-editor-body {
        padding: .9rem;
    }
    .profile-logo-editor { grid-template-columns: 1fr; }
    .brand-kit-preview { grid-template-columns: 1fr; }
    .content-image-left,
    .content-image-right { grid-template-columns: 1fr; }
    .content-image-right figure { order: 0; }
    .visual-style-grid { grid-template-columns: 1fr; }
}

/* Modal actions and menus: no collisions at any viewport width. */
.nav-dropdown:not(.has-submenu-content) > a::after,
.nav-dropdown-menu[hidden] {
    display: none !important;
}

:is(.news-article-sheet, .share-sheet, .subscribe-modal, .reader-dialog, .install-guide-app, .search-sheet) {
    min-width: 0;
}

:is(.news-article-sheet, .share-sheet, .subscribe-modal, .reader-dialog, .install-guide-app, .search-sheet) button,
:is(.news-article-sheet, .share-sheet, .subscribe-modal, .reader-dialog, .install-guide-app, .search-sheet) .btn {
    max-width: 100%;
    min-width: 0;
    height: auto;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.25;
}

.news-article-sheet .news-close,
.share-sheet .share-close,
.subscribe-modal > .subscribe-modal-close,
.reader-dialog > .reader-close {
    position: sticky;
    top: .35rem;
    right: auto;
    float: none;
    justify-self: end;
    margin: 0 0 .5rem auto;
}

.reader-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    min-width: 0;
    align-items: center;
}

.reader-toolbar > * {
    min-width: 0;
}

.reader-tools,
.share-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 120px), 1fr));
    align-items: stretch;
}

.reader-tools > *,
.share-grid > * {
    width: 100%;
    min-width: 0 !important;
}

.share-link-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    min-width: 0;
}

@media (max-width: 640px) {
    .reader-toolbar,
    .share-link-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .reader-toolbar > .btn,
    .share-link-row > button {
        width: 100%;
    }

    .reader-tools,
    .share-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 360px) {
    .reader-tools,
    .share-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* A single, bounded boot transition even when third-party scripts respond slowly. */
.site-intro {
    animation:
        introFadeIn .2s ease both,
        introAutoExit .3s ease 1.45s forwards;
}

@keyframes introAutoExit {
    to {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
}

/* ==========================================================
   MEJORAS FINALES - Sesion de revision El Cabezal
   ========================================================== */

/* --- Tipografias aplicadas correctamente --- */
h1, h2, h3, h4, .brand-mark, .stat-card strong, .intro-cover span, .intro-page strong {
    font-family: var(--title-font);
}
.eyebrow, .chip, .site-nav a, .app-bottom-nav a,
.quote-month-pill span, .filter-bar select, .text-link,
.admin-tab, .builder-subtab, .synapse-toggle {
    font-family: var(--title-font);
}
.btn,
button,
.btn-secondary {
    font-family: var(--button-font);
}
.btn-primary,
.featured-read-prompt,
.guide-book-cover span {
    font-family: var(--title-font);
}
p, .lead, .microcopy, label, input, textarea, select, td, th, dl, dd, dt, li, span, small {
    font-family: var(--body);
}

/* --- Cotizador redisenado como tabla compacta --- */
.quote-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--card);
    box-shadow: var(--shadow);
}
.quote-table {
    width: 100%;
    min-width: 820px;
    border-collapse: collapse;
    font-size: 0.88rem;
}
.quote-table th {
    padding: 0.7rem 0.5rem;
    text-align: center;
    background: var(--navy);
    color: var(--bone);
    font-weight: 900;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-family: var(--button-font);
    border: 1px solid rgba(255,255,255,0.1);
}
.quote-table th:first-child {
    text-align: left;
    padding-left: 0.8rem;
    position: sticky;
    left: 0;
    z-index: 2;
    background: var(--navy);
}
.quote-table td {
    padding: 0.55rem 0.4rem;
    text-align: center;
    border: 1px solid var(--line);
    background: rgba(255,250,240,0.5);
    cursor: pointer;
    transition: background 0.15s ease;
    font-weight: 700;
    min-width: 72px;
}
.quote-table td:first-child {
    text-align: left;
    padding-left: 0.8rem;
    font-weight: 900;
    color: var(--navy);
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--bone);
    min-width: 120px;
}
.quote-table td.quote-cell-selected {
    background: var(--navy) !important;
    color: var(--bone) !important;
}
.quote-table td.quote-cell-selected::after {
    content: "✓";
    margin-left: 0.3rem;
}
.quote-table td:hover {
    background: rgba(30,30,70,0.1);
}
.quote-table td.quote-cell-selected:hover {
    background: rgba(30,30,70,0.85) !important;
}
.quote-table .quote-service-row td:first-child {
    font-family: var(--button-font);
    font-size: 0.9rem;
}
.quote-benefits {
    display: grid;
    gap: 1rem;
    margin-top: 1.35rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line);
}
.quote-benefits-heading h3,
.quote-benefits-heading p { margin: 0; }
.quote-benefits-heading > p:last-child { margin-top: .35rem; color: var(--muted); line-height: 1.55; }
.quote-benefits-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.quote-benefit-card { min-width: 0; padding: .9rem 1rem; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.62); }
.quote-benefit-card summary { display: flex; align-items: center; justify-content: space-between; gap: .75rem; color: var(--navy); font-weight: 850; cursor: pointer; }
.quote-benefit-card summary b { padding: .25rem .45rem; border-radius: 999px; color: #245142; background: #d9f2e8; font-size: .65rem; letter-spacing: .04em; text-transform: uppercase; }
.quote-benefit-card[open] summary { margin-bottom: .75rem; }
.quote-benefit-card ul { display: grid; gap: .5rem; margin: 0; padding-left: 1.1rem; color: var(--muted); font-size: .86rem; line-height: 1.5; }
.home-social-embed iframe,
.home-social-embed blockquote { width: 100% !important; max-width: 100% !important; min-width: 0 !important; border: 0; }
.home-social-caption { display: grid; gap: .2rem; margin-top: .75rem; }
.home-social-caption span { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.home-social-caption strong { color: var(--navy); }

@media (max-width: 760px) {
    .quote-benefits-grid { grid-template-columns: 1fr; }
}

/* --- Calendario: dias con eventos marcados en azul --- */
.month-days .has-event {
    background: var(--navy);
    color: var(--bone);
    box-shadow: 2px 2px 0 rgba(30,30,70,0.18);
    cursor: pointer;
    position: relative;
}
.month-days .has-event::after {
    content: "";
    position: absolute;
    bottom: 3px;
    left: 50%;
    transform: translateX(-50%);
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--bone);
    opacity: 0.7;
}
.month-days .has-event:hover {
    transform: scale(1.08);
    z-index: 2;
}
.month-days .calendar-day {
    cursor: pointer;
    transition: transform .14s ease, background .14s ease, color .14s ease;
}
.month-days .calendar-day:hover,
.month-days .calendar-day:focus-visible {
    outline: none;
    background: rgba(30,30,70,.16);
    transform: translateY(-1px);
}
.month-days .calendar-day.has-event:hover,
.month-days .calendar-day.has-event:focus-visible {
    background: var(--navy);
    color: var(--bone);
}

/* --- Calendario: proximos eventos + boton ver mas --- */
.calendar-upcoming {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--line);
}
.calendar-upcoming h4 {
    font-family: var(--button-font);
    font-size: 0.85rem;
    color: var(--navy);
    margin: 0 0 0.5rem;
}
.calendar-view-all {
    display: inline-block;
    margin-top: 0.5rem;
    font-family: var(--button-font);
    font-size: 0.85rem;
    color: var(--navy);
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

/* --- Visor: flechas laterales de navegacion --- */
.reader-page-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 44px;
    height: 80px;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 8px;
    background: rgba(30,30,70,0.6);
    color: var(--bone);
    font-size: 1.8rem;
    font-weight: 900;
    cursor: pointer;
    display: grid;
    place-items: center;
    transition: background 0.2s ease, transform 0.2s ease;
    backdrop-filter: blur(4px);
}
.reader-page-arrow:hover {
    background: rgba(30,30,70,0.85);
    transform: translateY(-50%) scale(1.05);
}
.reader-arrow-left {
    left: 0.3rem;
}
.reader-arrow-right {
    right: 0.3rem;
}
.reader-expanded .reader-page-arrow,
.reader-modal:fullscreen .reader-page-arrow {
    background: rgba(17,17,46,0.8);
}
.reader-expanded .reader-page-arrow:hover,
.reader-modal:fullscreen .reader-page-arrow:hover {
    background: rgba(17,17,46,0.95);
}
.reader-page-wrap {
    position: relative;
    grid-column: 1;
    min-height: 0;
    display: grid;
}

/* --- Indicador visual de swipe/gesto --- */
.reader-swipe-hint {
    text-align: center;
    padding: 0.4rem;
    font-size: 0.78rem;
    color: var(--muted);
    font-family: var(--button-font);
    opacity: 0.6;
    animation: swipeHintPulse 2.5s ease-in-out infinite;
    pointer-events: none;
}
.reader-expanded .reader-swipe-hint,
.reader-modal:fullscreen .reader-swipe-hint {
    color: rgba(232,229,226,0.5);
}
@keyframes swipeHintPulse {
    0%, 100% { opacity: 0.4; }
    50% { opacity: 0.8; }
}

/* --- Reader stage layout ajustado --- */
/* --- Video separado visualmente con divisor --- */
.reader-video {
    background: #102245;
    color: var(--bone);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: var(--radius);
    padding: 1rem;
    box-shadow: 0 18px 38px rgba(0,0,0,.25);
    grid-column: 2;
    display: grid;
    gap: 1rem;
}
.reader-video .eyebrow,
.reader-video h3,
.reader-video p,
.reader-video a,
.reader-video span,
.reader-video div {
    color: var(--bone) !important;
}
.reader-video-divider {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    margin-bottom: 0.8rem;
    padding-bottom: 0.8rem;
    border-bottom: 2px solid rgba(255,255,255,.24);
}
.reader-video-divider span {
    font-family: var(--button-font);
    font-size: 0.85rem;
    font-weight: 900;
    color: var(--bone);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    white-space: nowrap;
}
.reader-video-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: rgba(255,255,255,.16);
}
.reader-video-content {
    display: grid;
    gap: 0.75rem;
    width: 100%;
}
.reader-video-content > * {
    width: 100%;
}
.reader-video-content iframe,
.reader-video-content blockquote,
.reader-video-content .instagram-media,
.reader-video-content .phone-video-frame {
    width: 100% !important;
}
.reader-video-content iframe {
    min-height: 420px;
}

/* --- Descripción extendida en el visor --- */
.reader-extended {
    grid-column: 1 / -1;
    background: var(--bone);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: .85rem;
    box-shadow: 0 10px 26px rgba(30,30,70,.08);
    margin-top: 0;
    width: 100%;
    justify-self: stretch;
}
.reader-extended-divider {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--navy);
}
.reader-extended-divider span {
    font-family: var(--button-font);
    font-size: 0.85rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--navy);
    white-space: nowrap;
}
.reader-extended-content {
    font-size: 0.92rem;
    line-height: 1.7;
    color: var(--navy);
    max-width: none;
    width: 100%;
    columns: auto;
    column-count: 1;
    white-space: normal;
}
.reader-extended-content p {
    margin: 0 0 0.9rem;
    max-width: none;
    width: 100%;
    white-space: normal;
}
.reader-expanded .reader-extended,
.reader-modal:fullscreen .reader-extended {
    background: linear-gradient(180deg, rgba(232,229,226,0.08) 0%, rgba(17,17,46,0.95) 100%);
    border-color: rgba(232,229,226,0.15);
}
.reader-expanded .reader-extended-divider,
.reader-modal:fullscreen .reader-extended-divider {
    border-bottom-color: rgba(232,229,226,0.2);
}
.reader-expanded .reader-extended-divider span,
.reader-modal:fullscreen .reader-extended-divider span {
    color: var(--bone);
}
.reader-expanded .reader-extended-content,
.reader-modal:fullscreen .reader-extended-content {
    color: var(--bone);
}

.reader-expanded .reader-video,
.reader-modal:fullscreen .reader-video {
    background: linear-gradient(180deg, rgba(232,229,226,0.08) 0%, rgba(17,17,46,0.95) 100%);
    border-color: rgba(232,229,226,0.15);
}
.reader-expanded .reader-video-divider,
.reader-modal:fullscreen .reader-video-divider {
    border-bottom-color: rgba(232,229,226,0.2);
}
.reader-expanded .reader-video-divider span,
.reader-modal:fullscreen .reader-video-divider span {
    color: var(--bone);
}

/* --- Barra superior del visor simplificada --- */
.reader-toolbar .btn-secondary {
    background: var(--bone);
    color: var(--navy);
    border-color: var(--sky);
    font-size: 0.85rem;
    padding: 0.55rem 0.85rem;
}
.reader-expanded .reader-toolbar .btn-secondary,
.reader-modal:fullscreen .reader-toolbar .btn-secondary {
    background: rgba(255,250,240,0.15);
    color: var(--bone);
    border-color: rgba(255,255,255,0.2);
}

/* --- Redes sociales en footer --- */
.footer-social {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    flex-wrap: wrap;
}
.footer-social a {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.35rem 0.65rem;
    border-radius: 6px;
    background: rgba(255,255,255,0.1);
    color: var(--bone);
    font-family: var(--button-font);
    font-size: 0.8rem;
    font-weight: 900;
    transition: background 0.15s ease;
}
.footer-social a:hover {
    background: rgba(255,255,255,0.2);
}

/* --- Hero simplificado: sin bloque "Que mueve a Cabezal" --- */
.home-section .home-intro-grid {
    min-height: auto;
}
.hero-copy .page-blocks:empty,
.hero-copy .content-blocks:empty {
    display: none;
}

/* --- Boton Duplicado quitado: no hay botones "Leer revista" y "Anunciarme" duplicados arriba --- */
.site-header .btn-primary {
    display: none;
}

/* --- Banner hero: imagen completa --- */
.home-banner-carousel {
    width: 100%;
    max-width: 1180px;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--line);
    background: var(--navy);
    color: var(--bone);
    box-shadow: var(--shadow);
}
.banner-slide {
    min-width: 100%;
    display: grid;
    grid-template-columns: minmax(200px, 0.38fr) minmax(0, 0.62fr);
    gap: clamp(1rem, 3vw, 2rem);
    align-items: center;
    padding: clamp(1.2rem, 3vw, 1.8rem);
    background: linear-gradient(110deg, rgba(232,229,226,0.08), rgba(30,30,70,0.92)), var(--navy);
}
.banner-slide img {
    width: min(200px, 100%);
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid rgba(232,229,226,0.3);
    box-shadow: 10px 10px 0 rgba(232,229,226,0.1);
}

/* --- Modal de eventos por dia --- */
#calendar-modal-events {
    display: grid;
    gap: 0.8rem;
    margin-top: 0.5rem;
}
#calendar-day-modal .share-sheet {
    width: min(520px, calc(100vw - 2rem));
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(30,30,70,.06) 1px, transparent 1px) 0 0 / 34px 34px,
        #fffaf0;
}
#calendar-modal-title {
    margin-right: 4.5rem;
    line-height: 1;
}
.calendar-day-event {
    padding: 0.75rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(255,255,255,0.72);
}
.calendar-day-event strong {
    display: block;
    color: var(--navy);
    font-size: 1.05rem;
}
.calendar-day-event span {
    color: var(--muted);
    font-size: 0.88rem;
}
.calendar-day-event p {
    margin: .45rem 0 0;
    color: var(--ink);
}
.calendar-day-empty {
    margin: 0;
    padding: 1rem;
    border: 1px dashed var(--line);
    border-radius: 8px;
    background: rgba(255,255,255,.62);
    color: var(--muted);
    font-weight: 900;
}

/* --- Filters: Categoria, Giro, Ubicacion (orden correcto) --- */
.filter-bar {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
    margin-bottom: 1rem;
}

/* --- Ajuste de tipografia en noticias --- */
.news-paper-card h3 {
    font-family: var(--title-font);
}
.news-article-sheet h2 {
    font-family: var(--title-font);
}
.news-body {
    font-family: var(--body);
}

/* --- Contacto: solo 3 intereses --- */
#lead-form select[name="interest_type"] option {
    font-family: var(--body);
}

/* --- Desktop: abrir visor en doble pagina por defecto --- */
@media (min-width: 1024px) {
    .reader-spread-double {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .reader-spread-single {
        grid-template-columns: 1fr !important;
    }
}

/* ============================================================
   PUBLIC HOME / READER FIXES
   ============================================================ */
.home-section .home-intro-grid {
    align-items: start;
    padding-top: clamp(.25rem, 1.4vw, 1rem);
}

.hero-copy {
    padding-top: 0;
}

.hero-copy .eyebrow {
    margin-bottom: .35rem;
}

.hero-copy h1 {
    margin-bottom: .65rem;
}

.inline-form {
    align-items: stretch;
    overflow: visible;
}

.inline-form input,
.inline-form button {
    min-height: 48px;
    line-height: 1.2;
}

.inline-form button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .75rem 1.1rem;
    white-space: nowrap;
    overflow: visible;
}

.cabezal-guide-book {
    position: relative;
    width: min(100%, 640px);
    min-height: 178px;
    margin: 1.4rem 0 1rem;
    perspective: 1000px;
}

.guide-book-cover {
    position: relative;
    z-index: 2;
    width: min(220px, 56vw);
    aspect-ratio: 3 / 4;
    display: grid;
    align-content: center;
    gap: .45rem;
    border: 1px solid rgba(232,229,226,.45);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(255,255,255,.12), transparent 36%),
        linear-gradient(160deg, #1e1e46 0%, #226887 100%);
    color: var(--bone);
    box-shadow: 12px 12px 0 rgba(30,30,70,.12), var(--shadow);
    padding: 1rem;
    cursor: pointer;
    transform-origin: right center;
    transition: transform .32s ease, box-shadow .32s ease;
}

.guide-book-cover span {
    font-family: var(--title-font);
    font-size: clamp(1.7rem, 5vw, 2.8rem);
    line-height: .88;
    text-transform: uppercase;
}

.guide-book-cover small {
    font-family: var(--button-font);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.guide-book-pages {
    position: static;
    inset: auto;
    min-height: 0;
    max-width: 560px;
    max-height: 0;
    margin-top: 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(30,30,70,.07) 1px, transparent 1px) 0 0 / 28px 28px,
        #fffaf0;
    box-shadow: 0 16px 36px rgba(30,30,70,.14);
    padding: .9rem 1rem .9rem 1.35rem;
    opacity: 0;
    overflow: hidden;
    transform: none;
    transition: max-height .22s ease, opacity .18s ease, margin-top .18s ease;
}

.cabezal-guide-book.is-open .guide-book-pages {
    max-height: 440px;
    margin-top: .9rem;
    opacity: 1;
}

.guide-book-pages ol {
    margin: 0;
    padding: 0;
    list-style: none;
    columns: 2 190px;
    column-gap: 1rem;
    font-size: .82rem;
    line-height: 1.28;
    font-weight: 800;
}

.guide-book-pages li {
    break-inside: avoid;
    margin: 0 0 .45rem;
}

.guide-book-pages strong {
    color: var(--navy);
}

.guide-book-more {
    margin: .55rem 0 0;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 800;
}

.cabezal-guide-book:hover .guide-book-cover,
.cabezal-guide-book:focus-within .guide-book-cover {
    transform: translateY(-2px);
    box-shadow: 12px 12px 0 rgba(30,30,70,.12), var(--shadow);
}

.cabezal-guide-book:hover .guide-book-pages,
.cabezal-guide-book:focus-within .guide-book-pages {
    opacity: 1;
    transform: none;
}

.featured-read-prompt {
    font-family: var(--title-font);
    color: var(--navy);
    font-size: clamp(2rem, 4.8vw, 3.9rem);
    line-height: .92;
    text-align: center;
    text-transform: uppercase;
    display: grid;
    justify-items: center;
    gap: .35rem;
}

.featured-read-arrow {
    display: inline-grid;
    place-items: center;
    width: 2.35rem;
    height: 2.35rem;
    border: 2px solid currentColor;
    border-radius: 999px;
    font-family: var(--body);
    font-size: 1.45rem;
    font-weight: 900;
    line-height: 1;
    animation: readArrowBounce 1.15s ease-in-out infinite;
}

.cover-shell {
    transform: none;
}

.cover-shell .cover-click {
    width: 100%;
    display: block;
}

.cover-shell img {
    object-fit: contain;
    background: #fff;
}

.reader-extended-divider {
    flex-wrap: wrap;
}

.reader-columns-toggle {
    margin-left: auto;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(247,245,243,.94);
    color: var(--navy);
    padding: .45rem .7rem;
    font-family: var(--button-font);
    font-size: .82rem;
    font-weight: 900;
    cursor: pointer;
}

.reader-columns-toggle[aria-pressed="true"] {
    background: var(--navy);
    color: var(--bone);
}

.reader-extended-content {
    column-count: 1 !important;
    columns: auto !important;
}

body.reader-text-two-columns .reader-extended-content {
    column-count: 2 !important;
    columns: 2 320px !important;
    column-gap: clamp(1.5rem, 4vw, 2.5rem);
}

body.reader-text-two-columns .reader-extended-content p,
body.reader-text-two-columns .reader-extended-content li,
body.reader-text-two-columns .reader-extended-content h1,
body.reader-text-two-columns .reader-extended-content h2,
body.reader-text-two-columns .reader-extended-content h3,
body.reader-text-two-columns .reader-extended-content h4,
body.reader-text-two-columns .reader-extended-content h5,
body.reader-text-two-columns .reader-extended-content h6 {
    break-inside: avoid;
}

.reader-expanded .reader-columns-toggle,
.reader-modal:fullscreen .reader-columns-toggle {
    border-color: rgba(232,229,226,.3);
    background: rgba(232,229,226,.1);
    color: var(--bone);
}

.reader-expanded .reader-columns-toggle[aria-pressed="true"],
.reader-modal:fullscreen .reader-columns-toggle[aria-pressed="true"] {
    background: var(--bone);
    color: var(--navy);
}

@media (max-width: 640px) {
    .home-section .home-intro-grid {
        padding-top: 0;
    }

    .featured-read-prompt {
        font-size: clamp(1.8rem, 12vw, 3rem);
    }

    .inline-form button {
        white-space: normal;
    }
}

/* --- Movil: abrir visor en una pagina por defecto --- */
@media (max-width: 760px) {
    .reader-spread-double {
        grid-template-columns: 1fr !important;
    }
    .reader-stage {
        grid-template-columns: 1fr;
    }
    .reader-video {
        grid-column: 1;
    }
    .reader-page-arrow {
        width: 36px;
        height: 64px;
        font-size: 1.4rem;
    }
    .reader-arrow-left {
        left: 0.1rem;
    }
    .reader-arrow-right {
        right: 0.1rem;
    }
    .reader-tools {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.35rem;
    }
    .quote-table {
        min-width: 680px;
        font-size: 0.8rem;
    }
    .quote-table td {
        min-width: 58px;
        padding: 0.45rem 0.3rem;
    }
    .footer-social {
        justify-content: center;
    }
}

/* Admin density: keep the panel comfortable at browser zoom 100%. */
body.admin-body {
    grid-template-columns: 240px minmax(0, 1fr);
    font-size: 14px;
}

.admin-main {
    padding: 1rem 1.25rem;
}

.admin-sidebar {
    padding: 1rem .75rem;
}

.admin-card {
    padding: 1rem;
}

.admin-heading {
    margin-bottom: 1rem;
}

.admin-heading h1 {
    font-size: clamp(1.35rem, 2vw, 1.7rem);
}

.admin-two-col,
.admin-grid-forms {
    grid-template-columns: repeat(2, minmax(320px, 1fr));
    gap: 1rem;
}

.form-stack {
    gap: .7rem;
}

.form-stack input,
.form-stack textarea,
.form-stack select {
    padding: .62rem .75rem;
    font-size: .88rem;
}

.btn {
    min-height: 38px;
    padding: .55rem .85rem;
}

.visual-toolbar {
    gap: .32rem;
    padding: .45rem;
}

.visual-toolbar button,
.visual-toolbar select,
.visual-upload {
    min-height: 34px;
    padding: .36rem .5rem;
    font-size: .78rem;
}

.admin-table th,
.admin-table td {
    padding: .55rem;
}

/* Directory taxonomy tree: WordPress-like parent/child view. */
.taxonomy-tree {
    display: grid;
    gap: .65rem;
}

.taxonomy-group {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(255,255,255,.72);
    overflow: hidden;
}

.taxonomy-group summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: .65rem;
    padding: .7rem .85rem;
    cursor: pointer;
    background: rgba(30,30,70,.06);
    color: var(--navy);
    font-weight: 900;
}

.taxonomy-group summary small,
.taxonomy-child small {
    color: var(--muted);
    font-size: .76rem;
    font-weight: 800;
}

.taxonomy-children {
    display: grid;
    gap: .35rem;
    padding: .55rem .75rem .75rem 1.4rem;
}

.taxonomy-child {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .55rem;
    padding: .5rem .6rem;
    border-left: 3px solid rgba(30,30,70,.18);
    border-radius: 6px;
    background: rgba(247,245,243,.88);
}

.taxonomy-child strong {
    display: block;
    color: var(--navy);
}

.taxonomy-actions {
    display: inline-flex;
    gap: .35rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.taxonomy-actions button {
    min-height: 30px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #fff;
    color: var(--navy);
    padding: .3rem .5rem;
    font-weight: 900;
    cursor: pointer;
}

.taxonomy-group-orphan summary {
    background: rgba(255,193,7,.13);
}

/* Brand typography connections. */
body,
p,
li,
dd,
td,
th,
label,
input,
textarea,
select {
    font-family: var(--body);
}

h1,
h2,
.section-heading h2,
.reader-toolbar h2 {
    font-family: var(--title-font);
}

h3,
h4,
.eyebrow,
.chip,
.microcopy {
    font-family: var(--subtitle-font);
}

.btn,
button,
.text-link,
.site-nav,
.reader-tools button {
    font-family: var(--button-font);
}

body.admin-body,
body.admin-body h1,
body.admin-body h2,
body.admin-body h3,
body.admin-body h4,
body.admin-body p,
body.admin-body li,
body.admin-body label,
body.admin-body input,
body.admin-body textarea,
body.admin-body select,
body.admin-body button {
    font-family: 'Space Mono', monospace;
}

/* Simple, reliable guide-book interaction. */
.cabezal-guide-book {
    min-height: auto;
    perspective: none;
}

.guide-book-cover {
    transform: none;
    transition: transform .16s ease, box-shadow .16s ease;
}

.guide-book-pages {
    position: static;
    max-width: 560px;
    min-height: 0;
    max-height: 0;
    margin-top: 0;
    opacity: 0;
    overflow: hidden;
    transform: none;
    transition: max-height .22s ease, opacity .18s ease, margin-top .18s ease;
}

.cabezal-guide-book.is-open .guide-book-cover {
    transform: translateY(-2px);
}

.cabezal-guide-book.is-open .guide-book-pages {
    max-height: 430px;
    margin-top: .9rem;
    opacity: 1;
}

.cabezal-guide-book:hover .guide-book-cover,
.cabezal-guide-book:focus-within .guide-book-cover {
    transform: translateY(-2px);
}

.cabezal-guide-book:hover .guide-book-pages,
.cabezal-guide-book:focus-within .guide-book-pages {
    transform: none;
}
@media (max-width: 480px) {
    .quote-table {
        min-width: 560px;
        font-size: 0.75rem;
    }
    .quote-table td {
        min-width: 48px;
        padding: 0.35rem 0.2rem;
    }
    .quote-table th {
        font-size: 0.7rem;
        padding: 0.5rem 0.3rem;
    }
}

/* --- Banner como imagen completa desde panel --- */
.home-banner {
    width: 100%;
    max-width: 1180px;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
    min-height: 180px;
    display: grid;
    place-items: center;
}
.home-banner[hidden] { display: none; }
.home-banner-img {
    width: 100%;
    max-height: 420px;
    object-fit: cover;
    display: block;
}
.home-banner .home-banner-carousel {
    width: 100%;
    overflow: hidden;
}
.home-banner .banner-track {
    display: flex;
    width: 100%;
    animation: bannerSlide 24s infinite;
}
.home-banner .banner-carousel-img {
    flex: 0 0 100%;
    width: 100%;
}

/* --- Barra inferior app: regresar, home, actualizar, candado panel --- */
.app-bottom-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 85;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.8rem;
    padding: 0.5rem 1rem;
    background: var(--navy);
    color: var(--bone);
    border-top: 1px solid rgba(255,255,255,0.1);
}
.app-bottom-bar button {
    background: transparent;
    border: 1px solid rgba(255,255,255,0.2);
    color: var(--bone);
    border-radius: var(--radius);
    padding: 0.4rem 0.7rem;
    cursor: pointer;
    font-weight: 900;
    font-size: 1.1rem;
    line-height: 1;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    transition: background 0.15s ease;
}
.app-bottom-bar button:hover {
    background: rgba(255,255,255,0.1);
}

/* --- Menu movil como pestañas horizontales arriba --- */
@media (max-width: 980px) {
    .site-header {
        flex-wrap: wrap;
    }
    .site-nav {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        gap: 0.4rem;
        background: transparent;
        border: none;
        border-radius: 0;
        padding: 0.4rem 0 0;
        box-shadow: none;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .site-nav::-webkit-scrollbar { display: none; }
    .site-nav a {
        white-space: nowrap;
        padding: 0.35rem 0.65rem;
        border-radius: var(--radius);
        border: 1px solid var(--line);
        background: rgba(255,250,240,0.7);
        font-size: 0.78rem;
        font-weight: 900;
        text-decoration: none;
        transition: background 0.15s;
    }
    .site-nav a:hover,
    .site-nav a.active {
        background: var(--navy);
        color: var(--bone);
        border-color: var(--navy);
    }
    .menu-toggle { display: none; }
}

/* --- "Lo mejor de redes" en inicio --- */
.home-social-card {
    grid-column: 1 / -1;
    max-width: min(1140px, calc(100vw - 2rem));
    margin: 0 auto;
    padding: 1rem;
}
.home-social-card .home-social-content {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.home-featured-content {
    width: 100%;
    display: grid;
    gap: 1rem;
    margin: clamp(1rem, 3vw, 2rem) auto;
}
.home-featured-content[hidden] {
    display: none;
}
.home-featured-content .section-heading {
    max-width: none;
    margin: 0;
    text-align: left;
}
.home-featured-content .section-heading h2 {
    margin-bottom: 0;
}
#home-destacado-blocks,
.featured-content-blocks {
    width: 100%;
    max-width: none;
    display: grid;
    gap: 1rem;
    margin: 0;
}
#home-destacado-blocks {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
}
#home-destacado-blocks .builder-banner,
#home-destacado-blocks .builder-cta,
#home-destacado-blocks .builder-featured-embed,
#home-destacado-blocks .builder-width-ancho,
.featured-content-blocks .content-width-ancho,
.featured-content-blocks .content-width-completo,
.featured-content-blocks .content-container-section {
    grid-column: 1 / -1;
}
.home-featured-content .builder-block,
.home-featured-content .public-content-block {
    width: 100%;
    max-width: none;
    min-width: 0;
}
.home-featured-content .builder-block {
    padding: clamp(1rem, 2.5vw, 1.75rem);
    border-radius: 8px;
}
.home-featured-content .builder-featured-embed {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
}
.builder-featured-media {
    margin: 0;
    width: 100%;
}
.builder-featured-media img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid color-mix(in srgb, var(--bone) 42%, transparent);
}
@media (max-width: 760px) {
    .home-featured-content .builder-featured-embed,
    .home-featured-content .builder-banner,
    .home-featured-content .builder-cta {
        grid-template-columns: 1fr;
        display: grid;
    }
    .home-featured-content .builder-cta {
        align-items: stretch;
    }
}

/* --- Reader: zoom limpio en modo lectura --- */
.reader-modal:fullscreen .reader-page img,
.reader-expanded .reader-page img,
.reader-modal:fullscreen .pdf-page-canvas,
.reader-expanded .pdf-page-canvas {
    max-height: calc(100svh - 200px) !important;
}
.reader-page {
    transition: transform 0.15s ease;
}
.reader-page-indicator {
    text-align: center;
    padding: 0.5rem;
    font-weight: 900;
    color: var(--navy);
}
.reader-expanded .reader-page-indicator,
.reader-modal:fullscreen .reader-page-indicator {
    color: var(--bone);
}

/* --- Pagina: ajustes responsive para tabla cotizador en movil --- */
.home-quote-card .quote-table-wrap {
    margin: 0.5rem 0;
}
.home-banner-img {
    max-height: 320px;
}
@media (max-width: 640px) {
    .home-banner-img {
        max-height: 200px;
    }
    .app-top-bar {
        justify-content: center;
    }
}

/* --- Mejora en los iconos sociales del footer --- */
.social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}
.social-links a {
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 0.45rem 0.65rem;
    background: rgba(237,246,248,0.72);
    color: var(--navy);
    font-weight: 900;
    font-family: var(--button-font);
    font-size: 0.85rem;
    transition: background 0.15s ease, transform 0.15s ease;
}
.social-links a:hover {
    background: var(--navy);
    color: var(--bone);
    transform: translateY(-1px);
}

.social-links a .social-icon {
    width: 20px;
    height: 20px;
    object-fit: contain;
    margin-right: 0.45rem;
    vertical-align: middle;
    display: inline-block;
}

.template-help {
    border: 1px solid rgba(30,30,70,.1);
    border-radius: var(--radius);
    background: rgba(255,250,240,.84);
    padding: 0.9rem 1rem;
    margin-bottom: 1rem;
}

.template-help strong {
    display: block;
    margin-bottom: 0.45rem;
    color: var(--navy);
}

.template-help ul {
    margin: 0;
    padding-left: 1.15rem;
}

.template-help li {
    margin-bottom: 0.35rem;
}

.social-settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.social-settings-item {
    display: grid;
    gap: 0.75rem;
    padding: 0.9rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: var(--radius);
    background: rgba(255,255,255,.82);
}

.social-settings-item label {
    display: grid;
    gap: 0.35rem;
    font-size: 0.92rem;
}

.social-settings-item input,
.social-settings-item textarea,
.social-settings-item select {
    width: 100%;
}

/* --- Accesos directos del panel --- */
.admin-quick-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0.5rem 0;
}
.admin-quick-links a {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.7rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(255,250,240,0.7);
    color: var(--navy);
    font-family: var(--button-font);
    font-size: 0.82rem;
    font-weight: 900;
    transition: background 0.15s ease;
}
.admin-quick-links a:hover {
    background: rgba(30,30,70,0.1);
}

/* --- Boton eliminar: estilo rojo para filas admin --- */
.btn-delete-row {
    background: rgba(180, 45, 45, 0.06) !important;
    color: #992d2d !important;
    border-color: rgba(180, 45, 45, 0.24) !important;
}
.btn-delete-row:hover {
    background: #992d2d !important;
    color: #fff !important;
    border-color: #992d2d !important;
}

/* ============================================================
   HEADER ACTIONS (search, profile, hamburger)
   ============================================================ */
.header-actions {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}
.header-search-toggle,
.header-profile-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(237,246,248,.72);
    color: var(--navy);
    cursor: pointer;
    transition: background .18s ease, transform .15s ease;
}
.header-search-toggle:hover,
.header-profile-btn:hover {
    background: rgba(30,30,70,.08);
    transform: translateY(-1px);
}

/* Hamburger */
.menu-toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(237,246,248,.72);
    cursor: pointer;
    padding: 0;
    transition: background .18s ease;
}
.menu-toggle:hover { background: rgba(30,30,70,.08); }
.hamburger-line {
    display: block;
    width: 20px;
    height: 2px;
    background: var(--navy);
    border-radius: 2px;
    transition: transform .25s ease, opacity .25s ease;
}
.menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(2) {
    opacity: 0;
}
.menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}
.site-nav { display: none; }

/* Header profile */
.header-profile {
    position: relative;
}
.header-profile-btn {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    overflow: hidden;
    padding: 0;
}
.header-profile-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background: var(--navy);
    color: var(--bone);
    font-weight: 900;
    font-size: 0.85rem;
    text-transform: uppercase;
}
.header-profile-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}
.header-profile-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 200px;
    background: var(--bone);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    z-index: 30;
    overflow: hidden;
    animation: toastIn .2s ease both;
}
.header-profile-menu a,
.header-profile-menu button {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.75rem 1rem;
    border: none;
    border-bottom: 1px solid var(--line);
    background: transparent;
    color: var(--navy);
    font-weight: 700;
    font-size: 0.88rem;
    text-align: left;
    cursor: pointer;
    transition: background .15s;
}
.header-profile-menu a:hover,
.header-profile-menu button:hover {
    background: rgba(30,30,70,.06);
}
.header-profile-menu a:last-child,
.header-profile-menu button:last-child { border-bottom: 0; }
.profile-section .profile-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    margin-top: 1.2rem;
}
.profile-section .profile-card {
    background: var(--bone);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1.2rem;
}
.profile-section .profile-card h3 {
    margin-top: 0;
    margin-bottom: 0.85rem;
}
.profile-section .profile-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1rem;
}
.profile-section .profile-actions .btn {
    min-width: 160px;
}
.profile-section .profile-content {
    margin-top: 1.5rem;
    max-width: 740px;
}
@media (max-width: 900px) {
    .profile-section .profile-grid {
        grid-template-columns: 1fr;
    }
}

/* Suscriptores: contenido legible para cliente final, sin palabras verticales. */
body.admin-body #tab-subscribers > .admin-two-col {
    grid-template-columns: minmax(320px, .72fr) minmax(520px, 1.28fr) !important;
    align-items: start;
}

body.admin-body #tab-subscribers .notification-channel-guide {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)) !important;
    gap: .8rem;
}

body.admin-body #tab-subscribers .notification-channel-guide article {
    grid-template-columns: 42px minmax(0, 1fr) !important;
    min-width: 0;
    min-height: 128px;
    padding: 1rem;
}

body.admin-body #tab-subscribers .notification-channel-guide article :is(strong, small, button) {
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: none !important;
}

body.admin-body #tab-subscribers .notification-channel-guide article button {
    grid-column: 1 / -1;
    width: 100%;
}

/* Los formularios globales viven visualmente dentro de Page Builder sin duplicar su lógica. */
body.admin-body.admin-embedded-builder-tool {
    display: block !important;
    min-height: 100dvh;
    overflow: hidden;
    background: #eef4f7;
}

body.admin-body.admin-embedded-builder-tool > :is(.admin-sidebar, .admin-global-topbar, .admin-main, .admin-bottom-nav, .admin-menu-toggle, .arturo-launcher) {
    display: none !important;
}

body.admin-body.admin-embedded-builder-tool .admin-editor-modal:not([hidden]) {
    position: fixed !important;
    z-index: 20 !important;
    inset: 0 !important;
    display: grid !important;
    padding: 12px !important;
    background: #eef4f7 !important;
}

body.admin-body.admin-embedded-builder-tool .admin-editor-dialog {
    width: min(1040px, 100%) !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: auto;
    border-color: rgba(44, 127, 162, .2) !important;
    box-shadow: 0 20px 60px rgba(27, 71, 98, .14) !important;
}

body.admin-body.admin-embedded-builder-tool .admin-editor-body {
    min-height: 0;
    overflow: auto;
}

@media (max-width: 1180px) {
    body.admin-body #tab-subscribers > .admin-two-col {
        grid-template-columns: 1fr !important;
    }
}
.notif-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    border-radius: 999px;
    background: #c0392b;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 900;
    padding: 0 4px;
}

/* ============================================================
   SEARCH OVERLAY
   ============================================================ */
.search-overlay {
    position: fixed;
    inset: 0;
    z-index: 160;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 2rem 1rem;
    background: rgba(30,30,70,.65);
    backdrop-filter: blur(14px);
    animation: introFadeIn .2s ease both;
}
.search-overlay[hidden] { display: none; }
.search-sheet {
    width: min(600px, 100%);
    max-height: calc(100svh - 4rem);
    overflow: auto;
    background: var(--bone);
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: var(--shadow);
    padding: 1.2rem;
}
.search-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}
.search-header h2 {
    font-size: 1.5rem;
    margin: 0;
}
.search-close-btn {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(255,255,255,.5);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--navy);
}
.search-close-btn:hover { background: rgba(30,30,70,.08); }
.search-input-wrap {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    border: 2px solid var(--sky);
    border-radius: var(--radius);
    padding: 0.6rem 0.85rem;
    background: #fff;
    margin-bottom: 1rem;
}
.search-input-wrap svg { flex-shrink: 0; color: var(--muted); }
.search-input-wrap input {
    border: none;
    background: transparent;
    font-size: 1.05rem;
    font-weight: 600;
    padding: 0;
    width: 100%;
    outline: none;
}
.search-results {
    display: grid;
    gap: 0.5rem;
}
.search-empty {
    text-align: center;
    color: var(--muted);
    padding: 2rem 0;
    font-size: 0.95rem;
}
.search-result-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(255,255,255,.5);
    cursor: pointer;
    transition: background .15s, transform .15s;
    text-decoration: none;
    color: var(--navy);
}
.search-result-item:hover {
    background: rgba(30,30,70,.06);
    transform: translateY(-1px);
}
.search-result-type {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--navy);
    color: var(--bone);
    font-size: 0.7rem;
    font-weight: 900;
    text-transform: uppercase;
}
.search-result-info { flex: 1; min-width: 0; }
.search-result-info strong {
    display: block;
    font-size: 0.92rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.search-result-info small {
    color: var(--muted);
    font-size: 0.78rem;
}

/* ============================================================
   MOBILE BOTTOM SHEET MENU
   ============================================================ */
.mobile-menu-overlay {
    position: fixed;
    inset: 0;
    z-index: 170;
    display: flex;
    align-items: flex-end;
    background: rgba(30,30,70,.55);
    backdrop-filter: blur(10px);
    animation: introFadeIn .2s ease both;
}
.mobile-menu-overlay[hidden] { display: none; }
.mobile-menu-sheet {
    width: 100%;
    max-height: 85vh;
    background: var(--bone);
    border-radius: 20px 20px 0 0;
    box-shadow: 0 -10px 40px rgba(30,30,70,.2);
    overflow: auto;
    animation: slideUpSheet .3s cubic-bezier(.22,.78,.22,1) both;
    padding: 0 0 1.5rem;
}
.mobile-menu-handle {
    width: 40px;
    height: 4px;
    background: rgba(30,30,70,.2);
    border-radius: 999px;
    margin: 12px auto 0.8rem;
}
.mobile-menu-nav {
    display: grid;
    gap: 2px;
    padding: 0 0.5rem;
}
.mobile-menu-nav a {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 1rem 1rem;
    border-radius: 12px;
    font-weight: 800;
    font-size: 1.05rem;
    color: var(--navy);
    transition: background .15s;
    text-decoration: none;
}
.mobile-menu-nav a:hover,
.mobile-menu-nav a.active {
    background: rgba(30,30,70,.07);
}
.mobile-menu-nav a.active {
    color: var(--sky-dark);
    background: rgba(30,30,70,.1);
}
.mobile-menu-nav a svg {
    flex-shrink: 0;
    opacity: 0.6;
}
.mobile-menu-footer {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
    padding: 0.8rem 1rem 0;
    border-top: 1px solid var(--line);
    margin-top: 0.5rem;
}
.mobile-admin-link {
    display: block;
    text-align: center;
    padding: 0.75rem;
    color: var(--muted);
    font-size: 0.85rem;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.install-app-menu-btn {
    display: inline-flex;
    width: 100%;
    gap: .45rem;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(30,30,70,.14);
    background: #fff;
    color: var(--ink);
    cursor: pointer;
}

.install-guide-modal {
    position: fixed;
    z-index: 10020;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 1rem;
    background:
        radial-gradient(circle at 16% 10%, rgba(44, 127, 162,.25), transparent 32%),
        rgba(10,15,32,.72);
    backdrop-filter: blur(22px) saturate(125%);
}

.install-guide-modal[hidden] {
    display: none;
}

.install-guide-app {
    width: min(520px, 100%);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 24px;
    background: rgba(250,251,255,.96);
    box-shadow: 0 30px 90px rgba(8,15,35,.35), inset 0 1px 0 #fff;
}

.install-guide-app > header {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .75rem;
    align-items: center;
    padding: 1rem;
    border-bottom: 1px solid rgba(30,30,70,.1);
    background: linear-gradient(135deg, rgba(44, 127, 162,.12), rgba(118,87,232,.08));
}

.install-guide-app h2,
.install-guide-app p {
    margin: 0;
}

.install-guide-icon {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    overflow: hidden;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(30,30,70,.13);
}

.install-guide-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#install-guide-close {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 999px;
    background: rgba(255,255,255,.84);
    color: var(--ink);
    font-size: 1.3rem;
    cursor: pointer;
}

.install-guide-body {
    display: grid;
    gap: .75rem;
    padding: 1rem;
}

.install-platform-panel {
    display: grid;
    gap: .6rem;
    padding: 1rem;
    border: 1px solid rgba(44, 127, 162,.14);
    border-radius: 16px;
    background: #f5f7ff;
}

.install-platform-panel[hidden] {
    display: none;
}

.install-platform-panel > strong {
    color: #2546b8;
}

.install-platform-panel p,
.install-platform-panel li {
    color: #5f6475;
    font-size: .82rem;
    line-height: 1.55;
}

.install-platform-panel ol {
    display: grid;
    gap: .5rem;
    margin: 0;
    padding-left: 1.4rem;
}

/* ============================================================
   FOOTER V2
   ============================================================ */
.site-footer {
    display: block;
    padding: 0;
    color: var(--bone);
    background: var(--navy);
    padding-bottom: 0;
}
.footer-main {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr;
    gap: 2rem;
    max-width: 1180px;
    margin: 0 auto;
    padding: 2.5rem clamp(1rem, 5vw, 4rem);
}
.footer-brand-text {
    font-family: var(--title-font);
    font-size: 2rem;
    color: var(--bone);
    display: block;
    margin-bottom: 0.6rem;
}
.footer-description {
    color: rgba(232,229,226,.7);
    font-size: 0.88rem;
    max-width: 42ch;
    margin: 0;
}
.footer-links-group h4 {
    color: var(--bone);
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 0.8rem;
}
.footer-nav {
    display: grid;
    gap: 0.4rem;
}
.footer-nav a {
    color: rgba(232,229,226,.7);
    font-size: 0.88rem;
    font-weight: 600;
    transition: color .15s;
}
.footer-nav a:hover { color: var(--bone); }
.footer-contact-info p {
    color: rgba(232,229,226,.7);
    font-size: 0.88rem;
    margin: 0 0 0.3rem;
}
.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.2rem clamp(1rem, 5vw, 4rem);
    border-top: 1px solid rgba(232,229,226,.15);
    font-size: 0.82rem;
    color: rgba(232,229,226,.55);
}
.footer-bottom a {
    color: rgba(232,229,226,.55);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.footer-private-lock {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(232,229,226,.22);
    border-radius: var(--radius);
    text-decoration: none;
    color: rgba(232,229,226,.74);
}
.footer-private-lock:hover {
    color: var(--bone);
    background: rgba(232,229,226,.08);
}

/* ============================================================
   SUBSCRIPTION MODAL
   ============================================================ */
.subscribe-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 175;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(30,30,70,.6);
    backdrop-filter: blur(14px);
    animation: introFadeIn .25s ease both;
}
.subscribe-modal-overlay[hidden] { display: none; }
.subscribe-modal {
    width: min(460px, 100%);
    background: var(--bone);
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: var(--shadow);
    overflow: hidden;
    position: relative;
    animation: toastIn .3s ease both;
}
.subscribe-modal-close {
    position: absolute;
    top: 0.8rem;
    right: 0.8rem;
    width: 36px;
    height: 36px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: rgba(255,255,255,.7);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 2;
    color: var(--navy);
}
.subscribe-modal-close:hover { background: rgba(30,30,70,.08); }
.subscribe-modal-content {
    padding: 2rem 1.5rem 1.5rem;
    text-align: center;
}
.subscribe-modal-content .eyebrow {
    color: var(--sky-dark);
}
.subscribe-modal-content h2 {
    font-size: clamp(1.8rem, 4vw, 2.4rem);
    margin: 0 0 0.5rem;
}
.subscribe-modal-content > p {
    color: var(--muted);
    font-size: 0.95rem;
    margin: 0 0 1.2rem;
}
.subscribe-modal-form {
    display: grid;
    gap: 0.65rem;
}
.subscribe-modal-form input,
.subscribe-modal-form select {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 0.8rem 1rem;
    font-size: 0.95rem;
    background: #fff;
}
.subscribe-modal-gift {
    color: var(--sky-dark);
    font-weight: 800;
    font-size: 0.88rem;
    margin: 0;
}

/* ============================================================
   SHARE SHEET ENHANCED
   ============================================================ */
.share-sheet {
    width: min(520px, 100%);
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--bone);
    box-shadow: var(--shadow);
    padding: 1.5rem;
}
.share-link-row {
    display: flex;
    gap: 0.5rem;
    margin: 1rem 0;
    padding: 0.6rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
}
.share-link-row input {
    flex: 1;
    border: none;
    background: transparent;
    font-size: 0.88rem;
    font-weight: 600;
    padding: 0;
    min-width: 0;
}
.share-link-row button {
    flex-shrink: 0;
    border: 1px solid var(--sky);
    border-radius: var(--radius);
    background: var(--navy);
    color: var(--bone);
    padding: 0.5rem 0.8rem;
    font-weight: 900;
    font-size: 0.78rem;
    cursor: pointer;
    white-space: nowrap;
    transition: background .15s;
}
.share-link-row button:hover { background: #16163a; }
.share-link-row button.copied {
    background: #27ae60;
    border-color: #27ae60;
}
.share-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.6rem;
}
.share-grid a,
.share-grid button {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 60px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(237,246,248,.72);
    color: var(--navy);
    font-weight: 800;
    font-size: 0.78rem;
    cursor: pointer;
    transition: background .15s, transform .15s;
    text-decoration: none;
}
.share-grid a:hover,
.share-grid button:hover {
    background: rgba(30,30,70,.08);
    transform: translateY(-1px);
}
.share-grid .share-icon {
    font-size: 1.2rem;
}

/* ============================================================
   ANIMATIONS
   ============================================================ */
@keyframes slideUpSheet {
    0% { transform: translateY(100%); }
    100% { transform: translateY(0); }
}

/* ============================================================
   RESPONSIVE ULTRA - MOBILE FIRST
   ============================================================ */
@media (max-width: 768px) {
    /* Footer mobile */
    .footer-main {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        padding: 2rem 1rem;
    }
    .footer-bottom {
        flex-direction: column;
        gap: 0.5rem;
        text-align: center;
        padding: 1rem;
    }

    /* Header mobile */
    .header-actions { gap: 0.35rem; }
    .header-search-toggle { width: 36px; height: 36px; }
    .header-search-toggle svg { width: 17px; height: 17px; }
    .brand-mark { font-size: 1.6rem; }

    /* Cards grid mobile */
    .cards-grid {
        grid-template-columns: 1fr;
    }

    /* Calendar list mobile */
    .calendar-list {
        grid-template-columns: 1fr;
    }

    /* Home feature grid mobile */
    .home-feature-grid {
        grid-template-columns: 1fr;
    }
    .home-news-card {
        grid-template-columns: 1fr;
    }
    .home-news-card > img {
        min-height: 180px;
    }

    /* About section mobile */
    .about-section {
        grid-template-columns: 1fr;
    }

    /* Contact layout mobile */
    .contact-layout {
        grid-template-columns: 1fr;
    }

    /* Filter bar mobile */
    .filter-bar {
        grid-template-columns: 1fr;
    }

    /* Form grid mobile */
    .form-grid {
        grid-template-columns: 1fr;
    }

    /* Home intro grid mobile */
    .home-intro-grid {
        grid-template-columns: 1fr;
    }

    /* Share grid mobile */
    .share-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* News body single column */
    .news-body {
        columns: 1;
    }

    /* Home calendar months mobile */
    .home-calendar-months {
        grid-template-columns: 1fr;
    }

    /* Section padding mobile */
    .section {
        padding: clamp(2rem, 5vw, 3rem) 1rem;
    }

    /* Bottom app bar */
    .app-bottom-bar {
        display: flex;
    }

    /* Brand mobile */
    .brand-mark {
        font-size: 1.8rem;
    }

    /* Admin two col mobile */
    .admin-two-col {
        grid-template-columns: 1fr;
    }

    /* Subscribe modal mobile */
    .subscribe-modal-content {
        padding: 1.5rem 1rem 1rem;
    }

    /* Search sheet mobile */
    .search-sheet {
        padding: 1rem;
    }
    .search-overlay {
        padding: 1rem 0.5rem;
    }

    /* Reader mobile */
    .reader-stage {
        grid-template-columns: 1fr;
    }
}

@media (min-width: 769px) {
    .app-bottom-bar { display: none; }
    .mobile-menu-overlay { display: none !important; }
}

@media (max-width: 480px) {
    .share-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .brand-mark { font-size: 1.5rem; }
    h1 { font-size: clamp(2.2rem, 9vw, 3.5rem); }
    h2 { font-size: clamp(1.6rem, 6vw, 2.5rem); }
}

/* ============================================================
   FINAL INTERACTION STABILIZERS
   ============================================================ */
@media (min-width: 981px) {
    .site-header {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
    }
    .site-nav {
        display: flex !important;
        position: static !important;
        flex-direction: row !important;
        justify-content: center;
        align-items: center;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        padding: 0 !important;
    }
    .menu-toggle {
        display: inline-flex !important;
    }
}
.desktop-login-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: clamp(1rem, 4vw, 3rem);
    z-index: 40;
    min-width: 180px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--bone);
    box-shadow: var(--shadow);
    padding: .45rem;
}
.desktop-login-menu[hidden] { display: none; }
.desktop-login-menu a,
.desktop-login-menu button {
    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    font: inherit;
    cursor: pointer;
    padding: .75rem .85rem;
    border-radius: 6px;
    color: var(--navy);
    font-weight: 900;
}
.desktop-login-menu a:hover,
.desktop-login-menu button:hover {
    background: rgba(30,30,70,.08);
}
@media (max-width: 980px) {
    .site-nav { display: none !important; }
    .desktop-login-menu { display: none !important; }
    .menu-toggle { display: inline-flex !important; }
}
.calendar-load-more {
    justify-self: center;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--bone);
    padding: .75rem 1rem;
    cursor: pointer;
}
.admin-modal-open { overflow: hidden; }
.admin-editor-modal {
    position: fixed;
    inset: 0;
    z-index: 9997;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(15, 23, 42, .58);
    backdrop-filter: blur(10px);
}
.admin-editor-modal[hidden] { display: none; }
.admin-editor-dialog {
    width: min(1180px, calc(100vw - 2rem));
    max-height: calc(100svh - 2rem);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(15,23,42,.28);
    border: 1px solid #e2e8f0;
}
.admin-editor-head {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid #e2e8f0;
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(10px);
}
.admin-editor-head h2 { margin: 0; color: #1e293b; }
.admin-editor-close {
    min-height: 38px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
    color: #1e293b;
    padding: .55rem .8rem;
    font-weight: 800;
    cursor: pointer;
}
.admin-editor-body {
    min-height: 0;
    overflow: auto;
    padding: 1.25rem;
}
.admin-editor-body > .admin-card {
    border: 0;
    box-shadow: none;
    padding: 0;
}
.admin-editor-body .form-stack,
.admin-editor-body .visual-editor-shell,
.admin-editor-body .settings-grid {
    max-width: none;
}
.admin-editor-body input,
.admin-editor-body textarea,
.admin-editor-body select {
    max-width: 100%;
}
.admin-editor-launcher {
    width: 100%;
    margin-bottom: .85rem;
}

/* ============================================================
   QUILL EDITOR OVERRIDES
   ============================================================ */
.quill-toolbar-pro,
.ql-toolbar.ql-snow {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    border: 1px solid var(--line) !important;
    border-radius: var(--radius) var(--radius) 0 0 !important;
    background: rgba(237,246,248,.8);
    box-shadow: 0 10px 24px rgba(30,30,70,.06);
    padding: .6rem !important;
}
.quill-toolbar-pro .ql-formats,
.ql-toolbar.ql-snow .ql-formats {
    display: inline-flex;
    align-items: center;
    gap: .12rem;
    margin: 0 .25rem 0 0 !important;
    padding: .15rem;
    border-radius: 8px;
    background: rgba(255,255,255,.52);
}
.quill-toolbar-pro button,
.quill-toolbar-pro .ql-picker,
.ql-toolbar.ql-snow button,
.ql-toolbar.ql-snow .ql-picker {
    border-radius: 7px;
}
.quill-toolbar-pro button:hover,
.quill-toolbar-pro button.ql-active,
.quill-toolbar-pro .ql-picker-label:hover,
.quill-toolbar-pro .ql-picker-label.ql-active,
.ql-toolbar.ql-snow button:hover,
.ql-toolbar.ql-snow button.ql-active,
.ql-toolbar.ql-snow .ql-picker-label:hover,
.ql-toolbar.ql-snow .ql-picker-label.ql-active {
    background: rgba(30,30,70,.08);
}
.quill-toolbar-pro .ql-picker-options,
.ql-toolbar.ql-snow .ql-picker-options {
    border-radius: 8px;
    box-shadow: 0 16px 34px rgba(30,30,70,.16);
}
.ql-container.ql-snow {
    border: 1px solid var(--line) !important;
    border-top: none !important;
    border-radius: 0 0 var(--radius) var(--radius) !important;
    font-family: var(--body);
    font-size: 0.95rem;
    min-height: 120px;
    background: #fff;
}
.ql-container.visual-editor-area {
    padding: 0 !important;
    outline: none !important;
    background: #fff !important;
}
.ql-container.visual-editor-area .ql-editor {
    padding: 1rem !important;
}
.ql-editor {
    min-height: 240px;
    line-height: 1.6;
}
.news-rich-editor .ql-editor {
    min-height: 340px;
}
.ql-editor h1 { font-size: 1.8rem; font-weight: 800; }
.ql-editor h2 { font-size: 1.4rem; font-weight: 700; }
.ql-editor h3 { font-size: 1.15rem; font-weight: 700; }
.ql-editor img { max-width: 100%; border-radius: 8px; }
.ql-editor blockquote {
    border-left: 4px solid var(--sky-dark);
    padding-left: 1rem;
    color: var(--muted);
    font-style: italic;
}
.quill-textarea-host {
    min-height: 120px;
}

.email-composer-card {
    margin-bottom: 1rem;
}

/* Contenido profesional de una o dos columnas (Quill y SINAPSE). */
.editor-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 3vw, 2.25rem);
    margin: 1.4rem 0;
}

.editor-columns > * {
    min-width: 0;
}

.public-content-block-grapes {
    width: 100%;
    max-width: none;
    padding: 0 !important;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent !important;
    box-shadow: none !important;
}

.public-content-block-grapes > :first-child {
    margin-top: 0;
}

@media (max-width: 700px) {
    .editor-columns {
        grid-template-columns: 1fr;
    }
}
.email-rich-editor .ql-editor {
    min-height: 320px;
}
.email-composer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}
.email-attachments-list {
    display: grid;
    gap: .55rem;
}
.email-attachment-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .7rem .8rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(255,255,255,.72);
}
.email-attachment-row div {
    min-width: 0;
    display: grid;
    gap: .12rem;
}
.email-attachment-row a {
    max-width: min(58vw, 520px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--sky-dark);
}
.email-attachment-row button {
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: .45rem .7rem;
    background: #fff;
    cursor: pointer;
}

.menu-builder {
    display: grid;
    gap: 1rem;
}
.menu-builder-add {
    display: grid;
    grid-template-columns: minmax(130px, .7fr) 1fr 1fr auto;
    gap: .65rem;
    align-items: end;
    padding: .85rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(237,246,248,.65);
}
.menu-builder-add button {
    min-height: 42px;
    border: 1px solid var(--navy);
    border-radius: 8px;
    background: var(--navy);
    color: var(--bone);
    font-weight: 800;
    cursor: pointer;
}
.menu-builder-board {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: .75rem;
}
.menu-parent {
    display: grid;
    gap: .65rem;
    align-content: start;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: .75rem;
    background: #fff;
}
.menu-parent-head {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
    border-bottom: 1px solid var(--line);
    padding-bottom: .55rem;
}
.menu-parent-head span {
    color: var(--muted);
    font-size: .78rem;
}
.menu-children-dropzone {
    min-height: 76px;
    display: grid;
    gap: .5rem;
    align-content: start;
    border: 1px dashed rgba(30,30,70,.22);
    border-radius: 8px;
    padding: .55rem;
    background: rgba(248,250,252,.8);
}
.menu-children-dropzone.is-over {
    border-color: var(--sky-dark);
    background: rgba(237,246,248,.95);
}
.menu-child {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr) auto;
    gap: .45rem;
    align-items: center;
    padding: .45rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 18px rgba(30,30,70,.06);
}
.menu-child.is-dragging {
    opacity: .56;
}
.menu-drag-handle {
    cursor: grab;
    color: var(--muted);
    font-weight: 900;
}
.menu-child input {
    min-width: 0;
    padding: .45rem .5rem;
    border: 1px solid var(--line);
    border-radius: 7px;
}
.menu-child button {
    border: 1px solid var(--line);
    border-radius: 7px;
    padding: .45rem .55rem;
    background: #fff;
    cursor: pointer;
}

/* ============================================================
   SECTION ORDER CONTROLS
   ============================================================ */
.block-order-controls {
    display: inline-flex;
    gap: 0.25rem;
    align-items: center;
}
.block-order-controls button {
    min-width: 28px;
    min-height: 28px;
    border: 1px solid var(--line);
    border-radius: 4px;
    background: rgba(255,250,240,.86);
    color: var(--navy);
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 900;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s ease;
    padding: 0.2rem 0.4rem;
}
.block-order-controls button:hover {
    background: var(--sky-dark);
    color: var(--bone);
    border-color: var(--sky-dark);
}
.block-order-controls button:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

/* ============================================================
   ENHANCED MODAL CLOSE
   ============================================================ */
.reader-close {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    z-index: 10;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: var(--radius);
    background: rgba(255,255,255,0.1);
    color: var(--bone);
    padding: 0.6rem 0.8rem;
    cursor: pointer;
    font-weight: 800;
}
.reader-dialog { position: relative; }
.share-close {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    z-index: 10;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--bone);
    padding: .55rem .7rem;
    cursor: pointer;
    font-weight: 900;
}
.news-close {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    z-index: 10;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: .55rem .7rem;
    background: var(--bone);
    font-weight: 900;
    cursor: pointer;
}
#calendar-day-modal.is-open {
    display: grid;
}

/* ============================================================
   TITLE WORD BREAK
   ============================================================ */
h1, h2, h3, .content-card h3, .section-heading h2 {
    word-break: break-word;
    overflow-wrap: break-word;
}

/* ============================================================
   FEATURED CONTENT WIDTH
   ============================================================ */
.featured-magazine,
.home-feature-grid,
.home-intro-grid {
    width: 100%;
    max-width: 100%;
}

/* ============================================================
   DEFINITIVE RESPONSIVE READER POLISH
   ============================================================ */
#reader-orientation { display: none; }
.reader-modal {
    overscroll-behavior: contain;
}
.reader-dialog {
    overflow: hidden;
}
.reader-page-wrap,
.reader-page,
.reader-stage,
.reader-spread {
    min-width: 0;
}
.reader-extended {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    justify-self: stretch !important;
    box-sizing: border-box;
    overflow: hidden;
}
.reader-extended-content,
.reader-extended-content * {
    max-width: 100% !important;
    column-count: 1 !important;
    columns: auto !important;
    overflow-wrap: anywhere;
}
.reader-extended-content {
    display: block;
    width: 100%;
    max-height: min(42svh, 430px);
    overflow: auto;
    padding-right: .25rem;
    white-space: normal;
    text-align: left;
}
.reader-extended-content p,
.reader-extended-content li,
.reader-extended-content h1,
.reader-extended-content h2,
.reader-extended-content h3,
.reader-extended-content h4,
.reader-extended-content h5,
.reader-extended-content h6 {
    color: inherit;
    line-height: 1.65;
    white-space: normal;
    word-break: normal;
    width: 100%;
}
.reader-extended-content h1,
.reader-extended-content h2,
.reader-extended-content h3,
.reader-extended-content h4,
.reader-extended-content h5,
.reader-extended-content h6 {
    margin: .35rem 0 .55rem;
    font-family: var(--heading-font);
}
.reader-extended-content ul,
.reader-extended-content ol {
    margin: 0 0 .9rem 1.2rem;
    padding: 0;
}
.pdf-fallback-note {
    padding: .75rem .9rem;
    border-top: 1px solid var(--line);
    background: rgba(237,246,248,.92);
    color: var(--navy);
    font-size: .84rem;
    font-weight: 800;
    line-height: 1.35;
}
.reader-embed-host {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    min-height: 320px;
    border-radius: 18px;
    overflow: hidden;
    background: #f7f5f3;
}
.reader-embed-host iframe,
.reader-embed-host blockquote,
.reader-embed-host .instagram-media,
.reader-embed-host .tiktok-embed {
    min-height: 320px;
    margin: 0 auto !important;
    background: transparent !important;
}
.reader-embed-loading {
    position: absolute;
    inset: 1.3rem .75rem 1.2rem;
    z-index: 2;
    display: grid;
    place-items: center;
    align-content: center;
    gap: .65rem;
    border-radius: 18px;
    background:
        linear-gradient(90deg, rgba(30,30,70,.05), rgba(30,30,70,.12), rgba(30,30,70,.05)),
        #f7f5f3;
    color: var(--navy);
    font-family: var(--button-font);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.reader-embed-loading span {
    width: 28px;
    height: 28px;
    border: 3px solid rgba(30,30,70,.18);
    border-top-color: var(--navy);
    border-radius: 999px;
    animation: spin .78s linear infinite;
}
.phone-video-frame:not(.is-loading) .reader-embed-loading {
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease;
}
.phone-video-frame {
    background: linear-gradient(180deg, #11112e, #060614);
    border-color: rgba(255,255,255,.16);
}
.phone-video-frame .phone-speaker,
.phone-video-frame .phone-home {
    background: rgba(255,255,255,.38);
}

@media (max-width: 760px) {
    .reader-modal {
        padding: 0;
        background: rgba(9,9,28,.92);
    }
    .reader-dialog {
        width: 100%;
        min-height: 100svh;
        margin: 0;
        border-radius: 0;
        display: grid;
        grid-template-rows: auto auto 1fr;
        padding: .8rem;
    }
    .reader-close {
        position: fixed;
        top: .65rem;
        right: .65rem;
        z-index: 10;
        display: grid;
        place-items: center;
        width: 42px;
        height: 42px;
        min-height: 42px;
        padding: 0;
        border-radius: 999px;
        background: rgba(247,245,243,.96);
        color: var(--navy);
        font-size: 0;
        box-shadow: 0 12px 28px rgba(0,0,0,.18);
    }
    .reader-close::before {
        content: "×";
        font-family: 'Space Mono', monospace;
        font-size: 1.8rem;
        line-height: 1;
        font-weight: 900;
    }
    .reader-toolbar {
        padding-right: 4.6rem;
        gap: .65rem;
    }
    .reader-toolbar h2 {
        font-size: clamp(1.35rem, 7vw, 2rem);
        line-height: 1;
        margin: 0;
    }
    #reader-pdf-link {
        display: none;
    }
    .reader-tools {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: .45rem !important;
        position: sticky;
        top: .45rem;
        z-index: 8;
        padding: .45rem;
        background: rgba(247,245,243,.88);
        backdrop-filter: blur(16px);
    }
    #reader-spread,
    #reader-orientation {
        display: none;
    }
    body.reader-expanded #reader-orientation {
        display: inline-flex;
    }
    body.reader-expanded .reader-tools {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
    body.reader-expanded.reader-landscape #reader-spread {
        display: inline-flex;
    }
    .reader-tools button {
        min-width: 0;
        min-height: 42px;
        padding: .55rem .38rem;
        font-size: .78rem;
        line-height: 1.1;
    }
    .reader-stage,
    .reader-expanded .reader-stage,
    .reader-modal:fullscreen .reader-stage {
        grid-template-columns: 1fr;
        gap: .75rem;
    }
    .reader-page {
        min-height: calc(100svh - 220px);
        max-height: none;
        padding: .55rem;
        touch-action: pan-x pan-y pinch-zoom;
        -webkit-overflow-scrolling: touch;
    }
    .reader-page img,
    .reader-expanded .reader-page img,
    .reader-modal:fullscreen .reader-page img,
    .pdf-page-canvas,
    .reader-expanded .pdf-page-canvas,
    .reader-modal:fullscreen .pdf-page-canvas {
        max-height: calc(100svh - 250px);
        width: auto;
        max-width: 100%;
    }
    .reader-spread-double {
        grid-template-columns: 1fr !important;
    }
    body.reader-expanded.reader-landscape .reader-spread-double,
    body.reader-expanded.reader-landscape .reader-spread {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .reader-video {
        grid-column: 1;
        padding: .75rem;
    }
    .phone-video-frame {
        width: min(100%, 300px);
        padding: 1.2rem .62rem 1.05rem;
    }
    .reader-extended {
        padding: .8rem;
    }
    .reader-extended-content {
        max-height: 34svh;
    }
}

@media (max-width: 760px) and (orientation: landscape) {
    body.reader-open.reader-expanded,
    body.reader-open.reader-landscape {
        overflow: hidden;
    }
    body.reader-expanded.reader-landscape .reader-modal,
    body.reader-expanded.reader-landscape .reader-modal:fullscreen {
        padding: 0;
        overflow: hidden;
        background: #060614;
    }
    body.reader-expanded.reader-landscape .reader-dialog,
    body.reader-expanded.reader-landscape .reader-modal:fullscreen .reader-dialog {
        width: 100svw;
        max-width: none;
        height: 100svh;
        min-height: 100svh;
        margin: 0;
        padding: 0;
        border-radius: 0;
        display: grid;
        grid-template-rows: auto 1fr;
        overflow: hidden;
        background: #060614;
    }
    body.reader-expanded #reader-spread {
        display: inline-flex;
    }
    body.reader-expanded .reader-tools {
        grid-template-columns: repeat(4, 42px) !important;
    }
    body.reader-expanded.reader-landscape .reader-tools {
        position: fixed;
        top: calc(.45rem + env(safe-area-inset-top));
        left: 50%;
        z-index: 20;
        width: auto;
        transform: translateX(-50%);
        gap: .32rem !important;
        padding: .28rem;
        border-radius: 999px;
        background: rgba(6,6,20,.68);
        border: 1px solid rgba(255,255,255,.16);
        backdrop-filter: blur(14px);
    }
    body.reader-expanded.reader-landscape .reader-tools button {
        width: 42px;
        height: 42px;
        min-height: 42px;
        padding: 0;
        border-radius: 999px;
        font-size: 0;
        display: grid;
        place-items: center;
        background: rgba(247,245,243,.92);
        color: var(--navy);
        border-color: rgba(255,255,255,.28);
        box-shadow: none;
    }
    body.reader-expanded.reader-landscape .reader-tools button::before {
        font-family: 'Space Mono', monospace;
        font-size: 1.25rem;
        line-height: 1;
        font-weight: 900;
    }
    body.reader-expanded.reader-landscape #reader-expand::before { content: "×"; font-size: 1.65rem; }
    body.reader-expanded.reader-landscape #reader-orientation::before { content: "↕"; }
    body.reader-expanded.reader-landscape #reader-spread::before { content: "◫"; }
    body.reader-expanded.reader-landscape #reader-share::before { content: "↗"; }
    body.reader-expanded.reader-landscape .reader-close {
        top: calc(.45rem + env(safe-area-inset-top));
        right: calc(.45rem + env(safe-area-inset-right));
        z-index: 21;
        width: 42px;
        height: 42px;
        background: rgba(247,245,243,.92);
    }
    .reader-dialog {
        padding: .55rem .75rem;
    }
    .reader-toolbar {
        display: none;
    }
    body.reader-expanded.reader-landscape .flipbook-lite,
    body.reader-expanded.reader-landscape .reader-stage,
    body.reader-expanded.reader-landscape .reader-page-wrap {
        min-height: 0;
        height: 100%;
    }
    body.reader-expanded.reader-landscape .reader-stage,
    body.reader-expanded.reader-landscape .reader-modal:fullscreen .reader-stage {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0;
    }
    .reader-page,
    .reader-expanded .reader-page,
    .reader-modal:fullscreen .reader-page {
        min-height: calc(100svh - 86px);
    }
    body.reader-expanded.reader-landscape .reader-page,
    body.reader-expanded.reader-landscape .reader-modal:fullscreen .reader-page {
        width: 100svw;
        height: 100svh;
        min-height: 100svh;
        max-height: 100svh;
        padding: calc(3.35rem + env(safe-area-inset-top)) .5rem .5rem;
        border-radius: 0;
        overflow: auto;
        touch-action: pan-x pan-y pinch-zoom;
        background: #060614;
        -webkit-overflow-scrolling: touch;
    }
    .reader-page img,
    .reader-expanded .reader-page img,
    .reader-modal:fullscreen .reader-page img,
    .pdf-page-canvas,
    .reader-expanded .pdf-page-canvas,
    .reader-modal:fullscreen .pdf-page-canvas {
        max-height: calc(100svh - 104px);
    }
    body.reader-expanded.reader-landscape .reader-page img,
    body.reader-expanded.reader-landscape .pdf-page-canvas,
    body.reader-expanded.reader-landscape .reader-modal:fullscreen .reader-page img,
    body.reader-expanded.reader-landscape .reader-modal:fullscreen .pdf-page-canvas {
        max-height: calc(100svh - 4.2rem);
        max-width: calc(100svw - 1rem);
        width: auto;
        height: auto;
    }
    body.reader-expanded.reader-landscape .reader-page-indicator,
    body.reader-expanded.reader-landscape .reader-swipe-hint,
    body.reader-expanded.reader-landscape .reader-page-arrow {
        display: none !important;
    }
    .reader-video,
    .reader-extended {
        display: none !important;
    }
}

@media (min-width: 761px) {
    #reader-orientation {
        display: none !important;
    }
}

/* ============================================================
   FINAL PUBLIC / ADMIN RESPONSIVE HARDENING
   ============================================================ */
.section,
.admin-main,
.admin-card,
.form-card,
.content-card,
.builder-block,
.public-content-block,
.news-article-sheet,
.share-sheet {
    min-width: 0;
}
p, li, dd, td, th, label, input, textarea, select, button, a {
    overflow-wrap: anywhere;
}
.admin-card,
.form-card,
.content-card,
.builder-block,
.news-paper-card,
.magazine-card,
.provider-card {
    max-width: 100%;
}
@media (max-width: 980px) {
    .admin-main {
        overflow-x: hidden;
    }
    .admin-card,
    .form-card,
    .content-card {
        padding: clamp(.9rem, 3vw, 1.25rem);
    }
    .admin-table,
    .quote-table {
        white-space: nowrap;
    }
}
@media (max-width: 640px) {
    body {
        overflow-x: hidden;
    }
    .section {
        padding-inline: .85rem;
    }
    .hero-copy,
    .featured-magazine,
    .home-feature-grid,
    .home-social-card,
    .home-quote-card,
    .home-contact-card {
        width: 100%;
    }
    .inline-form {
        display: grid;
    }
    .inline-form button,
    .btn {
        width: 100%;
    }
    .admin-heading {
        align-items: stretch;
    }
    .admin-heading-actions,
    .form-actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }
}

/* Final cascade guard for the reader column toggle. */
body.reader-text-two-columns .reader-extended-content {
    column-count: 2 !important;
    columns: 2 320px !important;
    column-gap: clamp(1.5rem, 4vw, 2.5rem);
}

body.reader-text-two-columns .reader-extended-content * {
    column-count: initial !important;
    columns: initial !important;
}

/* Final guard: public news reads like a normal horizontal article. */
.news-body {
    columns: auto !important;
    column-count: 1 !important;
    max-width: 82ch;
    font-family: var(--body);
    font-size: 1.06rem;
    line-height: 1.72;
    color: var(--ink);
    overflow-wrap: anywhere;
}
.news-body h1,
.news-body h2,
.news-body h3,
.news-body h4 {
    margin: 1.15em 0 .45em;
    color: var(--navy);
    font-family: var(--title-font);
    line-height: 1;
    letter-spacing: 0;
}
.news-body p { margin: .8em 0; }
.news-body ul,
.news-body ol {
    margin: .9em 0 1em;
    padding-left: 1.35em;
}
.news-body li { margin: .38em 0; }
.news-body a {
    color: var(--sky-dark);
    font-weight: 900;
    text-decoration: underline;
    text-underline-offset: .16em;
}
.news-body blockquote {
    margin: 1.2rem 0;
    padding: .9rem 1rem;
    border-left: 5px solid var(--navy);
    border-radius: 8px;
    background: rgba(255,255,255,.55);
    color: var(--muted);
    font-weight: 800;
}
.news-body iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
    min-height: 260px;
    border: 0;
    border-radius: 8px;
    margin: 1rem 0;
}

.news-grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: start;
}

.news-grid .news-paper-card {
    grid-column: span 4;
    min-height: 100%;
    overflow: hidden;
}

.news-grid .news-paper-card:nth-child(3n + 1) {
    grid-column: span 5;
    transform: translateY(.75rem);
}

.news-grid .news-paper-card:nth-child(3n + 2) {
    grid-column: span 3;
}

.news-grid .news-paper-card:nth-child(3n) {
    grid-column: span 4;
    transform: translateY(1.35rem);
}

.news-paper-card h3,
.news-article-sheet h2 {
    font-family: var(--title-font) !important;
    letter-spacing: 0;
}

.news-paper-card img,
.home-news-cover-stack img,
.news-article-sheet > img {
    max-height: 320px;
    object-fit: cover;
}

.news-card-description,
.news-card-subtitle,
.news-article-subtitle,
.news-date,
.news-body {
    font-family: var(--body);
}

@media (max-width: 980px) {
    .news-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .news-grid .news-paper-card,
    .news-grid .news-paper-card:nth-child(n) {
        grid-column: auto;
        transform: none;
    }
}

@media (max-width: 760px) {
    .cabezal-guide-book {
        min-height: auto;
    }

    .guide-book-cover {
        width: 100%;
        max-width: 260px;
        margin: 0 auto;
    }

    .guide-book-pages {
        position: static;
        max-width: none;
        margin-top: .9rem;
        transform: none;
        opacity: 1;
    }

    .guide-book-pages ol {
        columns: 1;
    }

    .news-media-left,
    .news-media-right {
        float: none;
        clear: both;
        margin: 1rem auto;
    }

    .news-grid {
        grid-template-columns: 1fr;
    }

    .news-grid .news-paper-card,
    .news-grid .news-paper-card:nth-child(n) {
        grid-column: 1;
        transform: none;
    }
}

/* Final guard: centered, click-controlled guide magazine. */
.cabezal-guide-book {
    width: min(100%, 620px) !important;
    margin: 1.35rem auto 1rem !important;
    display: grid;
    justify-items: center;
}

.cabezal-guide-book .guide-book-cover {
    width: min(240px, 72vw) !important;
    margin-inline: auto !important;
}

.cabezal-guide-book .guide-book-pages {
    width: min(560px, 100%) !important;
    position: static !important;
    inset: auto !important;
    margin-inline: auto !important;
    max-height: 0;
    opacity: 0;
    pointer-events: none;
    transform: none !important;
}

.cabezal-guide-book.is-open .guide-book-pages {
    max-height: 460px;
    opacity: 1;
    pointer-events: auto;
}

.cabezal-guide-book:not(.is-open) .guide-book-pages {
    margin-top: 0 !important;
}

/* Final guard: keep home calendar content pinned to the top. */
.home-feature-grid {
    align-items: start !important;
}

.home-calendar-preview {
    align-self: start !important;
    align-content: start !important;
    grid-auto-rows: max-content !important;
}

.home-calendar-preview.empty-state {
    min-height: 0 !important;
}

.home-calendar-months,
.calendar-upcoming {
    align-self: start !important;
}

/* Final guard: portadas de revistas claramente clickeables. */
.cover-click,
.magazine-cover-button {
    position: relative;
    display: block;
    width: 100%;
    border: 0;
    padding: 0;
    border-radius: 8px;
    background: transparent;
    cursor: pointer;
    overflow: hidden;
}

.magazine-cover-button {
    box-shadow: none;
}

.magazine-read-hint {
    display: block;
    width: 100%;
    margin-top: .7rem;
    color: var(--navy);
    font-family: var(--button-font);
    font-size: clamp(.72rem, 1.35vw, .86rem);
    font-weight: 900;
    line-height: 1.35;
    text-align: center;
    text-transform: uppercase;
}

.magazine-read-hint::before {
    content: '↑';
    display: inline-block;
    margin-right: .4rem;
    color: var(--sky-strong);
}

.cover-click img,
.magazine-cover-button img {
    display: block;
    width: 100%;
    transition: transform .24s ease, filter .24s ease;
}

.cover-click::before,
.magazine-cover-button::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(30,30,70,0), rgba(30,30,70,.72));
    opacity: 0;
    transition: opacity .22s ease;
    pointer-events: none;
}

.cover-click::after,
.magazine-cover-button::after {
    content: 'Abrir revista';
    position: absolute;
    left: 50%;
    bottom: 1rem;
    z-index: 2;
    display: inline-grid;
    place-items: center;
    min-height: 40px;
    padding: .55rem .85rem;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    color: var(--navy);
    font-family: var(--button-font);
    font-size: .88rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0;
    white-space: nowrap;
    opacity: 0;
    transform: translate(-50%, 8px);
    transition: opacity .22s ease, transform .22s ease;
    pointer-events: none;
}

.cover-click:hover img,
.cover-click:focus-visible img,
.magazine-cover-button:hover img,
.magazine-cover-button:focus-visible img {
    transform: scale(1.025);
    filter: saturate(1.04);
}

.cover-click:hover::before,
.cover-click:focus-visible::before,
.magazine-cover-button:hover::before,
.magazine-cover-button:focus-visible::before {
    opacity: 1;
}

.cover-click:hover::after,
.cover-click:focus-visible::after,
.magazine-cover-button:hover::after,
.magazine-cover-button:focus-visible::after {
    opacity: 1;
    transform: translate(-50%, 0);
}

.cover-shell .cover-click::after {
    opacity: .92;
    animation: openMagazineHint 1.65s ease-in-out infinite;
}

.cover-shell .cover-click::before {
    opacity: .28;
}

.magazine-card .magazine-cover-button img {
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid var(--line);
}

/* Final guard: contenido destacado / redes debe leer como franja ancha, no tarjeta centrada. */
#home-social-reel.home-social-card,
.home-social-card.form-card {
    width: 100% !important;
    max-width: 1180px !important;
    margin: clamp(1rem, 3vw, 2rem) auto !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

#home-social-reel > div {
    width: 100%;
    display: grid;
    gap: 1rem;
}

#home-social-reel .eyebrow {
    margin-bottom: .35rem;
}

#home-social-reel h2 {
    margin: 0;
    font-size: clamp(1.9rem, 4vw, 3.4rem);
}

#home-social-content {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
    gap: 1rem;
    align-items: stretch;
}

#home-social-content > iframe,
#home-social-content > blockquote,
#home-social-content > .phone-video-frame,
#home-social-content > .reader-embed-host,
#home-social-content > *:only-child {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
}

#home-social-content iframe {
    width: 100%;
    min-height: clamp(320px, 45vw, 560px);
    border: 0;
    border-radius: 8px;
}

/* Final guard: noticias publicas con tarjetas limpias y lectura editorial. */
.news-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)) !important;
    gap: clamp(1rem, 2vw, 1.35rem) !important;
    align-items: stretch !important;
}

.news-grid .news-paper-card,
.news-grid .news-paper-card:nth-child(n) {
    grid-column: auto !important;
    transform: none !important;
}

.news-paper-card {
    position: relative;
    display: grid;
    grid-template-rows: auto auto auto 1fr auto;
    gap: .85rem;
    min-height: 100%;
    padding: clamp(1rem, 2vw, 1.25rem);
    border-radius: 8px;
    background: color-mix(in srgb, var(--card) 86%, #fff 14%) !important;
    border: 1px solid var(--line);
    box-shadow: 0 10px 24px rgba(30,30,70,.07);
    overflow: hidden;
}

.news-paper-card::before {
    border-top: 4px solid color-mix(in srgb, var(--sky-dark) 28%, transparent);
}

.news-paper-card .chip {
    width: fit-content;
}

.news-paper-card h3 {
    margin: 0;
    font-size: clamp(1.35rem, 2.2vw, 1.95rem) !important;
    line-height: 1.03 !important;
}

.news-paper-card img {
    width: 100%;
    max-height: none !important;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid var(--line);
    justify-self: stretch;
}

.news-card-subtitle {
    margin: 0;
    font-size: .98rem;
    line-height: 1.55;
}

.news-card-description {
    display: block !important;
    -webkit-line-clamp: unset !important;
    -webkit-box-orient: initial !important;
    overflow: visible !important;
    margin: 0;
    color: var(--muted);
    font-size: .98rem;
    line-height: 1.7;
    text-align: justify;
    hyphens: auto;
}

.news-paper-card .text-link,
.home-news-card .text-link {
    display: inline-grid;
    place-items: center;
    min-height: 42px;
    width: 100%;
    margin-top: .25rem;
    border: 1px solid var(--navy);
    border-radius: 6px;
    background: transparent;
    color: var(--navy);
    text-align: center;
    text-decoration: none;
    font-weight: 900;
    cursor: pointer;
}

.news-paper-card .text-link:hover,
.home-news-card .text-link:hover {
    background: var(--navy);
    color: var(--bone);
}

.home-news-card {
    grid-template-columns: minmax(240px, .45fr) minmax(0, .55fr);
    gap: clamp(1rem, 2.5vw, 1.5rem);
    padding: clamp(1rem, 2.5vw, 1.4rem);
    border-radius: 8px;
}

.home-news-card h2 {
    margin-bottom: .45rem;
    font-size: clamp(1.8rem, 3.6vw, 3rem) !important;
}

.home-news-card .news-card-description {
    font-size: 1rem;
    line-height: 1.78;
}

.home-news-cover-stack img {
    width: 100%;
    max-height: 380px !important;
}

.news-article-modal {
    place-items: start center;
    padding: clamp(.75rem, 2.5vw, 1.5rem);
}

.news-article-sheet {
    width: min(960px, 100%) !important;
    max-height: calc(100svh - clamp(1.5rem, 5vw, 3rem));
    padding: clamp(1.15rem, 4vw, 2.6rem) !important;
    border-radius: 10px;
    background:
        linear-gradient(90deg, rgba(30,30,70,.045) 1px, transparent 1px) 0 0 / 42px 42px,
        var(--bone) !important;
}

.news-close {
    position: sticky;
    top: 0;
    z-index: 2;
    float: right;
    margin-left: 1rem;
}

.news-article-sheet .eyebrow,
.news-article-sheet h2,
.news-article-subtitle,
.news-date,
.news-article-sheet > img,
.news-body,
.news-article-sheet > .btn {
    max-width: 78ch;
    margin-left: auto;
    margin-right: auto;
}

.news-article-sheet h2 {
    font-size: clamp(2rem, 5vw, 4rem);
    line-height: .98 !important;
    margin-bottom: .65rem;
}

.news-article-subtitle {
    color: var(--muted);
    font-size: clamp(1.05rem, 1.9vw, 1.22rem);
    line-height: 1.58;
    font-weight: 800;
}

.news-date {
    margin-top: .45rem;
    margin-bottom: 1.2rem;
    color: var(--muted);
    font-size: .95rem;
}

.news-article-sheet > img {
    display: block;
    width: 100%;
    max-height: 460px !important;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: 8px;
    margin-top: 1.25rem;
    margin-bottom: 1.6rem;
}

.news-body {
    max-width: 74ch !important;
    font-size: clamp(1.02rem, 1.35vw, 1.14rem) !important;
    line-height: 1.86 !important;
    text-align: justify;
    text-wrap: pretty;
    hyphens: auto;
}

.news-body p {
    margin: 0 0 1.05em !important;
}

.news-body h1,
.news-body h2,
.news-body h3,
.news-body h4 {
    text-align: left;
    margin: 1.35em 0 .55em !important;
}

.news-body img {
    display: block;
    width: 100%;
    max-height: 460px;
    object-fit: cover;
    border-radius: 8px;
    margin: 1.2rem auto;
}

.news-body figure {
    margin: 1.35rem 0;
}

.news-body figcaption {
    color: var(--muted);
    font-size: .9rem;
    font-weight: 800;
    text-align: center;
}

@media (max-width: 760px) {
    #home-social-reel h2 {
        font-size: clamp(1.7rem, 10vw, 2.6rem);
    }

    .home-news-card {
        grid-template-columns: 1fr;
    }

    .news-body {
        text-align: left;
    }
}

/* Final guard: embeds tipo teléfono nunca deben desbordar el lector. */
.reader-stage,
.reader-page-wrap,
.reader-video,
.reader-video-content,
.reader-embed-host,
.phone-video-frame {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

.reader-video {
    overflow: hidden !important;
    contain: inline-size;
}

.reader-video-content {
    overflow: hidden !important;
    justify-items: center;
}

.reader-video-content > *,
.reader-embed-host > *,
.phone-video-frame > * {
    max-width: 100% !important;
    box-sizing: border-box;
}

.reader-video-content .phone-video-frame,
.builder-featured-embed .phone-video-frame,
#home-social-content .phone-video-frame {
    width: min(100%, 320px) !important;
    max-width: 100% !important;
    overflow: hidden auto;
}

.phone-video-frame iframe,
.phone-video-frame blockquote,
.phone-video-frame .instagram-media,
.phone-video-frame .tiktok-embed,
.reader-embed-host iframe,
.reader-embed-host blockquote,
.reader-embed-host .instagram-media,
.reader-embed-host .tiktok-embed {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.phone-video-frame iframe {
    display: block;
    min-height: 0;
    max-height: min(620px, calc(100svh - 220px));
}

.reader-embed-host {
    display: block;
    width: 100%;
    overflow: hidden;
}

@media (max-width: 900px) {
    .reader-stage,
    .reader-expanded .reader-stage,
    .reader-modal:fullscreen .reader-stage {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .reader-video {
        width: 100%;
        justify-self: stretch;
    }

    .reader-video-content .phone-video-frame {
        width: min(100%, 360px) !important;
    }
}

/* Final guard: tarjetas de noticias no generan huecos si falta imagen, subtitulo o texto. */
.news-grid {
    align-items: start !important;
}

.news-grid .news-paper-card {
    min-height: 0 !important;
    height: auto !important;
    align-self: start !important;
}

.news-paper-card {
    grid-template-rows: none !important;
    align-content: start;
}

.news-paper-card.news-no-cover {
    gap: .75rem;
}

.news-paper-card.news-no-cover .news-card-description {
    min-height: 0;
}

.news-paper-card.news-no-cover .text-link {
    margin-top: .35rem;
}

.news-card-subtitle:empty,
.news-card-description:empty,
.news-date:empty {
    display: none !important;
}

.home-news-card.news-no-cover {
    grid-template-columns: 1fr !important;
    min-height: 0;
}

/* Colecciones editoriales: cuatro columnas estables, ocho elementos iniciales. */
.magazine-grid,
.news-grid,
.providers-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-auto-rows: auto;
    align-items: start !important;
}

.magazine-grid > *,
.news-grid > *,
.providers-grid > * {
    min-width: 0;
    max-width: 100%;
}

.news-paper-card .news-card-description {
    min-height: 0 !important;
    overflow-wrap: anywhere;
}

.home-news-card,
.home-news-card > div {
    min-width: 0;
    min-height: 0 !important;
}

.home-news-card h2 {
    max-width: 22ch;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

.collection-show-more {
    display: grid;
    min-width: min(100%, 250px);
    min-height: 46px;
    place-items: center;
    margin: 1.25rem auto 0;
    padding: .7rem 1.1rem;
    border: 1px solid var(--navy);
    border-radius: 8px;
    background: transparent;
    color: var(--navy);
    font-family: var(--button-font);
    font-weight: 900;
    cursor: pointer;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}

.collection-show-more[hidden] { display: none; }
.collection-show-more:hover,
.collection-show-more:focus-visible {
    background: var(--navy);
    color: var(--bone);
    transform: translateY(-1px);
}

@media (max-width: 1120px) {
    .magazine-grid,
    .news-grid,
    .providers-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 640px) {
    .magazine-grid,
    .news-grid,
    .providers-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
    .home-news-card h2 {
        max-width: 100%;
        font-size: clamp(1.45rem, 8.5vw, 2.15rem) !important;
    }
}

/* Final guard: noticias con altura pareja por fila y contenido estable. */
.news-grid {
    align-items: stretch !important;
    grid-auto-rows: 1fr;
}

.news-grid .news-paper-card {
    height: 100% !important;
    min-height: 0 !important;
    align-self: stretch !important;
    display: grid !important;
    grid-template-rows: auto auto auto auto 1fr auto !important;
}

.news-paper-card.news-no-cover {
    grid-template-rows: auto auto minmax(180px, 1fr) auto !important;
}

.news-paper-card.news-no-cover .news-card-description {
    align-self: start;
}

.news-paper-card .text-link {
    align-self: end;
}

@media (max-width: 760px) {
    .news-grid {
        grid-auto-rows: auto;
    }

    .news-grid .news-paper-card {
        min-height: 0 !important;
        height: auto !important;
        grid-template-rows: none !important;
    }
}

/* Final guard: revista destacada de inicio compacta y estable. */
.featured-magazine {
    align-self: start;
    min-width: 0;
}

.featured-magazine .cover-shell {
    width: min(100%, 460px);
    margin-inline: auto;
    align-content: start;
    transform: none !important;
}

.featured-magazine .cover-shell .cover-click {
    max-height: min(58vh, 560px);
    background: #fff;
}

.featured-magazine .cover-shell .cover-click img {
    width: 100%;
    max-height: min(58vh, 560px);
    object-fit: contain !important;
    background: #fff;
}

.featured-magazine .cover-shell h2 {
    font-size: clamp(1.9rem, 3.4vw, 3.2rem);
}

/* Final guard: la guia de inicio solo se abre con click, sin residuos de hover/focus. */
.cabezal-guide-book {
    overflow: visible;
}

.cabezal-guide-book .guide-book-pages {
    display: grid !important;
    grid-template-rows: 0fr;
    width: min(560px, 100%) !important;
    max-height: 0 !important;
    margin-top: 0 !important;
    opacity: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    transform: none !important;
    transition: grid-template-rows .24s ease, opacity .18s ease, margin-top .18s ease;
}

.cabezal-guide-book .guide-book-pages > * {
    min-height: 0;
}

.cabezal-guide-book.is-open .guide-book-pages {
    grid-template-rows: 1fr;
    max-height: 520px !important;
    margin-top: .9rem !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

.cabezal-guide-book:not(.is-open) .guide-book-pages,
.cabezal-guide-book:not(.is-open):hover .guide-book-pages,
.cabezal-guide-book:not(.is-open):focus-within .guide-book-pages {
    grid-template-rows: 0fr;
    max-height: 0 !important;
    margin-top: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Final guard: figuras editables de portada desde el constructor. */
.cover-shape-none,
.cover-shape-none img {
    clip-path: none !important;
    border-radius: 8px !important;
}

.cover-shape-soft,
.cover-shape-soft img {
    clip-path: none;
    border-radius: 34px 12px 34px 12px !important;
}

.cover-shape-organic,
.cover-shape-organic img {
    clip-path: polygon(7% 0, 70% 0, 100% 28%, 100% 90%, 92% 100%, 34% 100%, 0 66%, 0 10%);
    border-radius: 28px !important;
}

.cover-shape-diagonal,
.cover-shape-diagonal img {
    clip-path: polygon(0 0, 88% 0, 100% 15%, 100% 100%, 12% 100%, 0 85%);
    border-radius: 22px !important;
}

.cover-shape-ticket,
.cover-shape-ticket img {
    clip-path: polygon(0 0, 100% 0, 100% 38%, 92% 50%, 100% 62%, 100% 100%, 0 100%, 0 62%, 8% 50%, 0 38%);
    border-radius: 18px !important;
}

.cover-shape-wave,
.cover-shape-wave img {
    clip-path: polygon(0 9%, 12% 0, 84% 0, 100% 12%, 100% 88%, 86% 100%, 20% 100%, 0 80%);
    border-radius: 46px 18px 42px 18px !important;
}

.cover-shape-arch,
.cover-shape-arch img {
    clip-path: inset(0 round 50% 50% 24px 24px);
}

.cover-shape-stamp,
.cover-shape-stamp img {
    clip-path: polygon(6% 0, 12% 5%, 18% 0, 24% 5%, 30% 0, 36% 5%, 42% 0, 48% 5%, 54% 0, 60% 5%, 66% 0, 72% 5%, 78% 0, 84% 5%, 90% 0, 100% 8%, 95% 14%, 100% 20%, 95% 26%, 100% 32%, 95% 38%, 100% 44%, 95% 50%, 100% 56%, 95% 62%, 100% 68%, 95% 74%, 100% 80%, 95% 86%, 100% 92%, 90% 100%, 84% 95%, 78% 100%, 72% 95%, 66% 100%, 60% 95%, 54% 100%, 48% 95%, 42% 100%, 36% 95%, 30% 100%, 24% 95%, 18% 100%, 12% 95%, 6% 100%, 0 92%, 5% 86%, 0 80%, 5% 74%, 0 68%, 5% 62%, 0 56%, 5% 50%, 0 44%, 5% 38%, 0 32%, 5% 26%, 0 20%, 5% 14%, 0 8%);
    border-radius: 14px !important;
}

.cover-shape-slash,
.cover-shape-slash img {
    clip-path: polygon(14% 0, 100% 0, 86% 100%, 0 100%);
    border-radius: 16px !important;
}

.cover-shape-corner,
.cover-shape-corner img {
    clip-path: polygon(0 0, 100% 0, 100% 82%, 82% 100%, 0 100%);
    border-radius: 24px !important;
}

.cover-shape-blob,
.cover-shape-blob img {
    clip-path: ellipse(48% 42% at 50% 50%);
    border-radius: 999px !important;
}

.cover-shape-demo {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    background:
        linear-gradient(135deg, rgba(30,30,70,.92), rgba(47,134,173,.82)),
        radial-gradient(circle at 25% 35%, #f7d326, transparent 28%);
    border: 1px solid var(--admin-border, var(--line));
}

.cover-shape-sheet {
    width: min(900px, 100%);
}

.cover-shape-form {
    display: grid;
    gap: 1rem;
}

.cover-shape-options {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: .8rem;
}

.cover-shape-option {
    display: grid;
    gap: .5rem;
    align-content: start;
    padding: .75rem;
    border: 1px solid var(--admin-border, var(--line));
    border-radius: 8px;
    background: rgba(255,255,255,.7);
    cursor: pointer;
}

.cover-shape-option input {
    justify-self: start;
}

.cover-shape-option strong {
    color: var(--navy);
    font-size: .92rem;
}

.cover-shape-option:has(input:checked) {
    border-color: var(--admin-primary, var(--sky-dark));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--sky-dark) 16%, transparent);
}

/* Final guard: titulos mas razonables en tarjetas y portadas. */
.news-paper-card h3 {
    font-size: clamp(1.15rem, 1.55vw, 1.55rem) !important;
    line-height: 1.08 !important;
}

.home-news-card h2 {
    font-size: clamp(1.55rem, 2.8vw, 2.35rem) !important;
    line-height: 1.04 !important;
}

.magazine-card h3 {
    font-size: clamp(1.1rem, 1.45vw, 1.45rem) !important;
    line-height: 1.12 !important;
}

.featured-magazine .cover-shell h2 {
    font-size: clamp(1.45rem, 2.4vw, 2.35rem) !important;
    line-height: 1.05 !important;
}

.builder-block h3 {
    font-size: clamp(1.2rem, 1.8vw, 1.8rem);
    line-height: 1.08;
}

/* Store-quality magazine presentation on the home page and catalog. */
.featured-magazine .cover-shell,
.featured-magazine > .cover-shell {
    gap: clamp(.8rem, 2vw, 1.2rem);
    padding: clamp(.8rem, 1.6vw, 1.15rem);
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 26px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 24px 70px rgba(30,30,70,.13);
    transform: none !important;
}
.magazine-product-media {
    position: relative;
    min-width: 0;
}
.magazine-product-badge {
    position: absolute;
    z-index: 4;
    top: .75rem;
    left: .75rem;
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    padding: .35rem .65rem;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 999px;
    background: rgba(17,24,44,.82);
    color: #fff;
    box-shadow: 0 8px 24px rgba(15,23,42,.2);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
    backdrop-filter: blur(14px);
    pointer-events: none;
}
.magazine-product-info {
    display: grid;
    gap: .65rem;
    align-content: start;
}
.magazine-product-info h2,
.magazine-product-info h3,
.magazine-product-info p { margin: 0; }
.magazine-product-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: .55rem;
    margin-top: .2rem;
}
.magazine-product-actions .btn {
    width: 100%;
    min-height: 44px;
    margin: 0;
    border-radius: 13px;
    box-shadow: none;
}
.magazine-product-note {
    color: var(--muted);
    font-size: .7rem;
    font-weight: 700;
    line-height: 1.4;
}
.magazine-card {
    gap: .9rem;
    padding: .75rem;
    overflow: hidden;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 22px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 18px 45px rgba(30,30,70,.1);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.magazine-card:hover {
    border-color: rgba(47,134,173,.28);
    box-shadow: 0 26px 60px rgba(30,30,70,.16);
    transform: translateY(-4px);
}
.magazine-card .magazine-cover-button,
.magazine-card .magazine-cover-button img {
    border-radius: 16px !important;
}
@media (max-width: 520px) {
    .magazine-product-actions { grid-template-columns: 1fr; }
}

/* Disponibilidad del cotizador. */
.quote-cell-unavailable {
    min-width: 76px;
    padding: .3rem !important;
    cursor: not-allowed !important;
    background: repeating-linear-gradient(135deg, #f3f4f6, #f3f4f6 6px, #e5e7eb 6px, #e5e7eb 12px) !important;
    color: #7f1d1d !important;
}
.quote-cell-unavailable span {
    display: block;
    font-size: clamp(.42rem, .75vw, .58rem);
    font-weight: 900;
    line-height: 1.1;
    overflow-wrap: anywhere;
}

/* HTML editorial y tablas creadas desde Quill. */
.editorial-flow-columns { margin: 1.25rem 0; }
.editorial-flow-content {
    column-count: 2;
    column-gap: clamp(1.25rem, 4vw, 2.5rem);
    column-rule: 1px solid rgba(30,30,70,.12);
}
.editorial-flow-content > * { break-inside: avoid; }
.editor-table-wrap { width: 100%; margin: 1.25rem 0; overflow-x: auto; }
.editor-table-wrap table { width: 100%; border-collapse: collapse; }
.editor-table-wrap td { min-width: 110px; padding: .75rem; vertical-align: top; }
.editor-table-wrap[data-table-border="none"] table,
.editor-table-wrap[data-table-border="none"] td { border: 0; }
.editor-table-wrap[data-table-border="thin"] td { border: 1px solid rgba(30,30,70,.28); }
.editor-table-wrap[data-table-border="thick"] td { border: 3px solid #1e1e46; }

/* El botón de cierre del lector mantiene contraste en todos los modos. */
.reader-close {
    border-color: rgba(255,255,255,.32) !important;
    background: #1e1e46 !important;
    color: #fff !important;
    box-shadow: 0 10px 28px rgba(0,0,0,.28);
}
.reader-close:hover,
.reader-close:focus-visible {
    background: #2c7fa2 !important;
    outline: 3px solid rgba(44, 127, 162,.28);
    outline-offset: 2px;
}

@media (max-width: 700px) {
    .editorial-flow-content { column-count: 1; column-rule: 0; }
}

/* Seguridad visual final de overlays públicos y contenido redimensionado. */
.news-article-modal,
.share-sheet-modal,
.subscribe-modal-overlay,
.search-overlay,
.mobile-menu-overlay,
.install-guide-modal,
.reader-modal {
    isolation: isolate;
    overscroll-behavior: contain;
}
.news-article-modal,
.share-sheet-modal,
.subscribe-modal-overlay,
.reader-modal {
    overflow: auto;
    padding: max(.65rem, env(safe-area-inset-top)) max(.65rem, env(safe-area-inset-right)) max(.65rem, env(safe-area-inset-bottom)) max(.65rem, env(safe-area-inset-left));
}
.reader-modal { padding: max(.65rem, env(safe-area-inset-top)) max(.65rem, env(safe-area-inset-right)) max(.65rem, env(safe-area-inset-bottom)) max(.65rem, env(safe-area-inset-left)) !important; }
.news-article-sheet,
.share-sheet,
.subscribe-modal,
.reader-dialog {
    max-width: calc(100vw - 1.3rem);
    max-height: calc(100dvh - 1.3rem);
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}
.reader-dialog {
    min-height: 0 !important;
    height: calc(100dvh - 1.3rem) !important;
}
.news-article-sheet .news-close,
.share-sheet .share-close {
    position: sticky;
    z-index: 12;
    top: 0;
}
.news-body img[width],
.magazine-rich-content img[width],
.public-content-block img[width],
.editor-table-wrap img[width] {
    max-width: 100%;
    height: auto;
}
.editor-table-wrap td img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: .35rem auto;
}

@media (max-width: 640px) {
    .news-article-sheet,
    .share-sheet,
    .subscribe-modal,
    .reader-dialog {
        width: 100%;
        max-width: 100%;
        max-height: calc(100dvh - 1rem);
        border-radius: 15px;
    }
    .news-article-sheet { padding: 1rem; }
}

/* ===== Fuente: styles.css ===== */
/* Mobile App Web Lite layer for El Cabezal. Desktop keeps the base style.css layout. */
.app-command-bar,
.app-bottom-nav {
    display: none;
}

@media (max-width: 760px) {
    :root {
        --app-command: 44px;
        --app-top: 0px;
        --app-bottom: 78px;
    }

    html {
        scroll-padding-top: calc(var(--app-top) + 72px);
    }

    body {
        padding-bottom: calc(var(--app-bottom) + var(--app-command) + env(safe-area-inset-bottom));
        background:
            radial-gradient(circle at 18% 0%, rgba(30, 30, 70, 0.14), transparent 18rem),
            linear-gradient(180deg, #f7f5f3 0%, #e8e5e2 52%, #ffffff 100%);
    }

    .app-command-bar {
        position: fixed;
        left: 0;
        right: 0;
        bottom: calc(var(--app-bottom) + env(safe-area-inset-bottom));
        z-index: 80;
        height: var(--app-command);
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1px;
        padding: 6px 10px;
        background: rgba(232, 229, 226, 0.94);
        border-top: 1px solid var(--line);
        box-shadow: 0 -10px 22px rgba(30,30,70,.12);
        backdrop-filter: blur(16px);
    }

    .app-command-bar button {
        min-width: 0;
        border: 1px solid rgba(30, 30, 70, 0.18);
        border-radius: 8px;
        background: rgba(247, 245, 243, 0.92);
        color: var(--navy);
        font-size: 1.2rem;
        font-weight: 900;
        line-height: 1;
        cursor: pointer;
    }

    .site-header {
        top: 0;
        min-height: 64px;
        padding: 0.65rem 1rem;
        justify-content: center;
        box-shadow: 0 8px 24px rgba(30, 30, 70, 0.08);
    }

    .site-header .brand {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    .brand-mark {
        font-size: 2.6rem;
    }

    .menu-toggle,
    .site-nav,
    .site-nav.is-open,
    .site-header > .js-whatsapp {
        display: none;
    }

    main {
        overflow-x: hidden;
    }

    .section {
        min-height: auto;
        padding: 2.25rem 1rem;
    }

    .hero-section {
        min-height: calc(100svh - var(--app-bottom) - var(--app-command) - 64px);
        display: grid;
        gap: 1.25rem;
        align-content: start;
    }

    h1 {
        font-size: clamp(3.1rem, 17vw, 4.8rem);
    }

    h2 {
        font-size: clamp(2.4rem, 13vw, 3.7rem);
    }

    .lead {
        font-size: 1.02rem;
    }

    .cover-shell {
        transform: none;
        padding: 0.8rem;
    }

    .content-card,
    .form-card,
    .contact-panel,
    .month-card,
    .about-card {
        border-radius: 8px;
        padding: 0.95rem;
    }

    .app-bottom-nav {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 80;
        height: calc(var(--app-bottom) + env(safe-area-inset-bottom));
        padding: 7px 8px calc(7px + env(safe-area-inset-bottom));
        display: grid;
        grid-template-columns: repeat(7, minmax(0, 1fr));
        gap: 6px;
        background: rgba(21, 52, 71, 0.94);
        border-top: 1px solid rgba(255, 255, 255, 0.18);
        box-shadow: 0 -12px 28px rgba(16, 37, 52, 0.24);
        backdrop-filter: blur(18px);
    }

    .app-bottom-nav a {
        min-width: 0;
        display: grid;
        place-items: center;
        align-content: center;
        gap: 1px;
        border-radius: 8px;
        color: rgba(255, 250, 240, 0.74);
        font-weight: 900;
        text-align: center;
    }

    .app-bottom-nav span {
        font-size: 1.15rem;
        line-height: 1;
    }

    .app-bottom-nav small {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 0.66rem;
        line-height: 1.05;
    }

    .app-bottom-nav a.active {
        background: rgba(30, 30, 70, 0.18);
        color: var(--bone);
        outline: 1px solid rgba(30, 30, 70, 0.32);
    }

    .site-footer {
        margin-bottom: calc(var(--app-bottom) + var(--app-command) + env(safe-area-inset-bottom));
    }

    .reader-modal {
        padding: .75rem .75rem calc(var(--app-bottom) + var(--app-command) + 0.75rem);
    }

    .reader-modal:fullscreen {
        padding: 0;
    }

    .pdf-flip-shell {
        height: calc(100svh - var(--app-bottom) - var(--app-command) - 180px);
        min-height: 420px;
        box-shadow: 8px 8px 0 rgba(30,30,70,.14), var(--shadow);
    }
}

/* Admin polish: same editorial sky system, with mobile app-like navigation. */
body.admin-body {
    background:
        radial-gradient(circle at 12% 0%, rgba(30, 30, 70, 0.14), transparent 25rem),
        linear-gradient(180deg, #e8e5e2 0%, #f7f5f3 100%);
}

.admin-main {
    background: transparent;
}

.admin-card,
.login-card,
.table-wrap {
    box-shadow: 0 14px 34px rgba(16, 37, 52, 0.1);
}

.admin-heading {
    padding: 0.8rem 0 0.4rem;
}

.admin-heading h1 {
    color: var(--navy);
}

.admin-tab span {
    display: inline-grid;
    place-items: center;
    width: 1.45rem;
    height: 1.45rem;
    margin-right: 0.4rem;
    border-radius: 6px;
    background: rgba(30, 30, 70, 0.14);
    color: var(--cyan);
}

.admin-tab.active span {
    background: rgba(255, 250, 240, 0.24);
    color: var(--bone);
}

.form-stack h2,
.admin-card h2 {
    font-size: clamp(1.7rem, 4vw, 2.35rem);
}

.form-stack label,
.settings-grid label,
.text-row label {
    font-size: 0.9rem;
}

.form-stack select,
.form-stack input,
.form-stack textarea,
.settings-grid input,
.text-row textarea {
    background: rgba(246, 248, 248, 0.92);
}

@media (max-width: 980px) {
    body.admin-body {
        display: block;
        padding-top: calc(58px + env(safe-area-inset-top));
        padding-bottom: calc(74px + env(safe-area-inset-bottom));
        overflow-x: hidden;
    }

    .admin-sidebar {
        position: fixed;
        left: 0;
        right: auto;
        top: 0;
        bottom: 0;
        z-index: 130;
        width: min(86vw, 320px);
        height: 100svh;
        max-height: none;
        display: flex;
        flex-direction: column;
        gap: 0.3rem;
        overflow-x: hidden;
        overflow-y: auto;
        padding: calc(68px + env(safe-area-inset-top)) 1rem calc(1rem + env(safe-area-inset-bottom));
        background: rgba(26, 26, 46, 0.98);
        border-right: 1px solid rgba(255,255,255,.16);
        box-shadow: 24px 0 44px rgba(15,23,42,0.28);
        backdrop-filter: blur(18px);
        transform: translateX(-104%);
        transition: transform .24s ease;
    }

    .admin-sidebar.is-open {
        transform: translateX(0);
    }

    .admin-brand,
    .base-label {
        display: flex;
    }

    .base-label {
        margin: 1rem 0 .35rem;
        padding-inline: .15rem;
        font-size: .68rem;
    }

    .admin-tab,
    .admin-logout {
        min-width: 0;
        width: 100%;
        min-height: 44px;
        height: auto;
        margin: 0;
        padding: .72rem .85rem;
        display: flex;
        justify-content: flex-start;
        gap: .7rem;
        text-align: left;
        font-size: .88rem;
        line-height: 1.15;
        border-radius: 8px;
    }

    .admin-tab span {
        margin: 0;
        width: 1.35rem;
        height: 1.35rem;
    }

    .admin-main {
        padding: 0.85rem 0.85rem 1rem;
    }

    .admin-menu-toggle {
        display: inline-flex !important;
        top: calc(.65rem + env(safe-area-inset-top));
        left: .75rem;
        z-index: 150;
        width: 44px;
        height: 44px;
        border-radius: 12px;
        box-shadow: 0 12px 28px rgba(15,23,42,.22);
    }

    .admin-bottom-nav {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: .25rem;
        padding: .42rem .45rem calc(.42rem + env(safe-area-inset-bottom));
    }

    .admin-bottom-nav .admin-tab {
        min-height: 48px;
        padding: .35rem .2rem;
        justify-content: center;
        text-align: center;
        font-size: .66rem;
        line-height: 1.05;
        white-space: normal;
    }

    .admin-heading {
        display: grid;
        gap: 0.7rem;
        align-items: start;
    }

    .admin-heading .btn {
        width: 100%;
    }

    .admin-table {
        min-width: 1120px;
    }

    .mini-row {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .mini-row button {
        width: 100%;
    }
}

@media (max-width: 640px) {
    .admin-two-col,
    .admin-grid-forms,
    .admin-lists,
    .settings-grid {
        grid-template-columns: 1fr;
    }

    .admin-card,
    .login-card {
        padding: 0.95rem;
    }

    .text-row {
        padding: 0.75rem;
    }
}

/* ===== Fuente: liquid-glass.css ===== */
/*
 * EL CABEZAL · LIQUID GLASS
 * Capa sensorial: conserva paleta, tipografía, proporciones y estructura.
 * Incluye fallback sólido para navegadores sin backdrop-filter.
 */
:root {
    --glass-surface: rgba(247, 245, 243, 0.72);
    --glass-surface-strong: rgba(247, 245, 243, 0.88);
    --glass-line: rgba(255, 255, 255, 0.58);
    --glass-shadow: 0 18px 50px rgba(30, 30, 70, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.72);
    --glass-blur: 20px;
    --glass-saturate: 126%;
}

html {
    background: #e8e5e2;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body::before,
body::after {
    content: "";
    position: fixed;
    z-index: -1;
    width: min(52vw, 680px);
    aspect-ratio: 1;
    border-radius: 50%;
    filter: blur(1px);
    pointer-events: none;
    opacity: .34;
}

body::before {
    top: -24vw;
    right: -14vw;
    background: radial-gradient(circle, rgba(30, 30, 70, .24), transparent 68%);
}

body::after {
    bottom: -32vw;
    left: -18vw;
    background: radial-gradient(circle, rgba(255, 255, 255, .92), transparent 66%);
}

.site-header,
.app-bottom-bar,
.search-sheet,
.mobile-menu-sheet,
.subscribe-modal-content,
.share-sheet,
.reader-dialog,
.header-profile-menu,
.desktop-login-menu {
    background-color: var(--glass-surface-strong);
    border-color: var(--glass-line);
    box-shadow: var(--glass-shadow);
}

.about-card,
.contact-panel,
.form-card,
.profile-card,
.news-paper-card,
.magazine-card,
.provider-card,
.event-card,
.builder-block,
.cover-shell,
.home-news-card,
.home-calendar-preview,
.cabezal-guide-book,
.admin-body .admin-card,
.admin-body .table-wrap,
.admin-body .builder-studio,
.admin-body .synapse-panel {
    background-color: var(--glass-surface);
    border-color: var(--glass-line);
    box-shadow: var(--glass-shadow);
}

.btn,
button,
input,
select,
textarea,
.site-nav a {
    -webkit-tap-highlight-color: transparent;
}

.btn,
.site-header button,
.app-bottom-bar a,
.mobile-menu-nav a {
    transform: translateZ(0);
}

@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .site-header,
    .app-bottom-bar,
    .search-sheet,
    .mobile-menu-sheet,
    .subscribe-modal-content,
    .share-sheet,
    .reader-dialog,
    .header-profile-menu,
    .desktop-login-menu,
    .about-card,
    .contact-panel,
    .form-card,
    .profile-card,
    .news-paper-card,
    .magazine-card,
    .provider-card,
    .event-card,
    .builder-block,
    .cover-shell,
    .home-news-card,
    .home-calendar-preview,
    .cabezal-guide-book,
    .admin-body .admin-card,
    .admin-body .table-wrap,
    .admin-body .builder-studio,
    .admin-body .synapse-panel {
        -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
        backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
    }
}

@media (hover: hover) and (pointer: fine) {
    .btn:hover,
    .news-paper-card:hover,
    .magazine-card:hover,
    .provider-card:hover,
    .admin-body .admin-card:hover {
        box-shadow: 0 22px 58px rgba(30, 30, 70, .16), inset 0 1px 0 rgba(255, 255, 255, .82);
    }
}

@media (max-width: 760px) {
    :root {
        --glass-blur: 16px;
    }

    .site-header {
        padding-top: max(.8rem, env(safe-area-inset-top));
    }

    .app-bottom-bar,
    .admin-bottom-nav {
        padding-bottom: max(.45rem, env(safe-area-inset-bottom)) !important;
    }

    .mobile-menu-sheet {
        padding-bottom: max(1rem, env(safe-area-inset-bottom));
    }
}

@media (prefers-reduced-motion: reduce) {
    .btn,
    button,
    .admin-card,
    .news-paper-card,
    .magazine-card {
        transition-duration: .01ms !important;
    }
}

@media (prefers-contrast: more) {
    :root {
        --glass-surface: rgba(247, 245, 243, .96);
        --glass-line: rgba(30, 30, 70, .38);
    }
}

/* ===== Fuente: admin-email.css ===== */
/* Email Studio: usa la identidad aprobada del panel, sin introducir otra marca. */
#tab-gifts {
    --email-ink: var(--admin-text, #1e293b);
    --email-muted: var(--admin-text-muted, #64748b);
    --email-primary: var(--admin-primary, #2563eb);
    --email-navy: #1e1e46;
    --email-bone: #e8e5e2;
}

.email-health-bar {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .85rem;
    align-items: center;
    margin-bottom: 1rem;
    padding: .9rem 1rem;
    border: 1px solid rgba(30, 30, 70, .12);
    border-radius: 14px;
    background: rgba(255, 255, 255, .7);
    box-shadow: 0 14px 40px rgba(30, 30, 70, .08);
    -webkit-backdrop-filter: blur(18px) saturate(125%);
    backdrop-filter: blur(18px) saturate(125%);
}

.email-health-bar p,
.email-health-bar strong { margin: 0; }
.email-health-bar p { color: var(--email-muted); font-size: .78rem; }
.email-health-bar > button {
    border: 0;
    background: transparent;
    color: var(--email-primary);
    cursor: pointer;
    font-size: .76rem;
    font-weight: 800;
}

.email-health-indicator {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border-radius: 50%;
    background: rgba(245, 158, 11, .12);
}
.email-health-indicator span {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #f59e0b;
    box-shadow: 0 0 0 5px rgba(245, 158, 11, .12);
}
.email-health-indicator[data-state="ok"] { background: rgba(22, 163, 74, .12); }
.email-health-indicator[data-state="ok"] span { background: #16a34a; box-shadow: 0 0 0 5px rgba(22, 163, 74, .12); }
.email-health-indicator[data-state="error"] { background: rgba(220, 38, 38, .12); }
.email-health-indicator[data-state="error"] span { background: #dc2626; box-shadow: 0 0 0 5px rgba(220, 38, 38, .12); }

.email-metrics-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
    margin-bottom: 1rem;
}
.email-metrics-grid article {
    display: grid;
    gap: .12rem;
    min-width: 0;
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, .68);
    border-radius: 16px;
    background: linear-gradient(145deg, rgba(255, 255, 255, .78), rgba(247, 245, 243, .62));
    box-shadow: 0 14px 40px rgba(30, 30, 70, .08), inset 0 1px 0 rgba(255,255,255,.9);
    -webkit-backdrop-filter: blur(18px) saturate(125%);
    backdrop-filter: blur(18px) saturate(125%);
}
.email-metrics-grid span { color: var(--email-muted); font-size: .72rem; font-weight: 700; }
.email-metrics-grid strong { color: var(--email-navy); font-size: clamp(1.55rem, 2.6vw, 2.25rem); line-height: 1.05; }
.email-metrics-grid small { color: var(--email-muted); font-size: .68rem; }

.email-studio-tabs {
    display: inline-flex;
    gap: .25rem;
    margin: .15rem 0 1rem;
    padding: .28rem;
    border: 1px solid rgba(30, 30, 70, .1);
    border-radius: 13px;
    background: rgba(255,255,255,.56);
}
.email-studio-tabs button,
.email-template-picker button,
.email-token-bar button,
.email-device-toggle button {
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--email-muted);
    cursor: pointer;
    font-weight: 800;
}
.email-studio-tabs button { padding: .6rem .9rem; font-size: .78rem; }
.email-studio-tabs button.active,
.email-template-picker button.active,
.email-device-toggle button.active {
    background: #fff;
    color: var(--email-navy);
    box-shadow: 0 5px 16px rgba(30,30,70,.1);
}

.email-studio-view { display: none; }
.email-studio-view.active { display: block; animation: fadeIn .2s ease; }

.email-studio-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.42fr) minmax(330px, .78fr);
    gap: 1rem;
    align-items: start;
}
.email-compose-column { display: grid; gap: 1rem; min-width: 0; }
.email-studio-shell .admin-card { background: rgba(255,255,255,.72); }
.email-campaign-basics { display: grid; gap: .85rem; }
.email-campaign-basics label,
.email-plain-text-label { display: grid; gap: .35rem; color: var(--email-ink); font-size: .78rem; font-weight: 700; }
.email-campaign-basics input,
.email-campaign-basics select,
.email-plain-text-label textarea {
    border: 1px solid rgba(30, 30, 70, .14);
    background: rgba(255,255,255,.74);
}
.email-save-state {
    padding: .32rem .55rem;
    border-radius: 999px;
    background: rgba(100,116,139,.1);
    color: var(--email-muted);
    font-size: .66rem;
    font-weight: 700;
}
.email-save-state[data-state="saving"] { color: #a16207; background: rgba(245,158,11,.12); }
.email-save-state[data-state="saved"] { color: #166534; background: rgba(22,163,74,.1); }

.email-subject-meter {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .7rem;
    align-items: center;
    margin-top: -.5rem;
    color: var(--email-muted);
    font-size: .65rem;
}
.email-subject-meter i {
    display: block;
    height: 4px;
    overflow: hidden;
    border-radius: 99px;
    background: linear-gradient(90deg, #16a34a var(--meter, 0%), rgba(100,116,139,.14) 0);
}
.email-subject-meter[data-tone="warn"] i { background: linear-gradient(90deg, #d97706 var(--meter, 100%), rgba(100,116,139,.14) 0); }

.email-advanced-settings {
    padding: .65rem .75rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 10px;
}
.email-advanced-settings summary { cursor: pointer; color: var(--email-muted); font-size: .72rem; font-weight: 800; }
.email-advanced-settings .form-grid { margin-top: .75rem; }
.email-selected-recipients {
    display: grid;
    gap: .55rem;
    padding: .7rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 10px;
    background: rgba(255,255,255,.48);
}
.email-selected-recipients[hidden] { display: none; }
.email-selected-recipients strong,
.email-selected-recipients span { font-size: .68rem; }
.email-recipient-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .35rem;
    max-height: 190px;
    overflow: auto;
}
.email-recipient-checklist label {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .45rem;
    align-items: center;
    padding: .42rem;
    border-radius: 8px;
    background: rgba(255,255,255,.62);
    font-size: .64rem;
}
.email-recipient-checklist input { width: auto; }

.email-composer-card { display: grid; gap: .75rem; min-width: 0; }
.email-template-picker { display: flex; flex-wrap: wrap; gap: .35rem; }
.email-template-picker button { padding: .5rem .7rem; font-size: .7rem; background: rgba(30,30,70,.05); }
.email-token-bar {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
    color: var(--email-muted);
    font-size: .68rem;
}
.email-token-bar button {
    padding: .32rem .5rem;
    border: 1px solid rgba(30,30,70,.11);
    background: rgba(255,255,255,.58);
    font-size: .65rem;
}
.email-token-bar button:hover { color: var(--email-primary); border-color: var(--email-primary); }

.email-rich-editor { min-height: 390px !important; background: rgba(255,255,255,.86) !important; }
.email-rich-editor .ql-editor { min-height: 390px; padding: 28px; font-family: 'Space Mono', monospace !important; line-height: 1.65; }
.email-rich-editor .ql-editor h1,
.email-rich-editor .ql-editor h2,
.email-rich-editor .ql-editor h3 { color: #1e1e46; font-family: 'Space Mono', monospace !important; }
.email-plain-text-label { margin-top: .35rem; }
.email-plain-text-label textarea { min-height: 110px; }
.email-attachment-toolbar { grid-template-columns: auto minmax(180px, 1fr) minmax(170px, .7fr) auto; }

.email-preview-column { position: sticky; top: 1rem; min-width: 0; }
.email-preview-card { display: grid; gap: .75rem; padding: 1rem !important; overflow: hidden; }
.email-preview-head { display: flex; justify-content: space-between; gap: .7rem; align-items: center; }
.email-preview-head p,
.email-preview-head h2 { margin: 0; }
.email-device-toggle { display: flex; gap: .2rem; padding: .2rem; border-radius: 10px; background: rgba(30,30,70,.05); }
.email-device-toggle button { width: 34px; height: 30px; }
.email-inbox-preview {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    gap: .15rem .55rem;
    padding: .7rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 10px;
    background: rgba(255,255,255,.82);
    font-family: 'Space Mono', monospace !important;
    font-size: .72rem;
}
.email-inbox-preview span { grid-row: 1 / 3; font-weight: 700; }
.email-inbox-preview strong,
.email-inbox-preview p { min-width: 0; overflow: hidden; margin: 0; text-overflow: ellipsis; white-space: nowrap; }
.email-inbox-preview p { color: #64748b; }
.email-preview-frame-wrap {
    width: 100%;
    min-height: 520px;
    overflow: hidden;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 12px;
    background: #e8e5e2;
    transition: max-width .2s ease;
}
.email-preview-frame-wrap[data-device="mobile"] { max-width: 375px; margin-inline: auto; }
.email-preview-frame { display: block; width: 100%; height: 520px; border: 0; background: #fff; }

.email-quality-checks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .35rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.email-quality-checks li {
    padding: .45rem .5rem .45rem 1.45rem;
    border-radius: 8px;
    background: rgba(100,116,139,.08);
    color: var(--email-muted);
    font-size: .62rem;
    font-weight: 700;
    position: relative;
}
.email-quality-checks li::before { content: "○"; position: absolute; left: .52rem; }
.email-quality-checks li.ok { color: #166534; background: rgba(22,163,74,.09); }
.email-quality-checks li.ok::before { content: "✓"; }

.email-composer-actions {
    position: sticky;
    z-index: 4;
    bottom: .75rem;
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    padding: .7rem;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 14px;
    background: rgba(247,245,243,.78);
    box-shadow: 0 14px 40px rgba(30,30,70,.12);
    -webkit-backdrop-filter: blur(18px) saturate(128%);
    backdrop-filter: blur(18px) saturate(128%);
}
#email-campaign-status { grid-column: 1 / -1; margin: 0; }

.resend-template-modal {
    position: fixed;
    z-index: 15000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: clamp(.6rem, 2vw, 1.25rem);
    background: rgba(15,23,42,.66);
    backdrop-filter: blur(14px) saturate(120%);
}
.resend-template-modal[hidden] { display: none !important; }
.resend-template-form {
    display: grid;
    gap: .85rem;
    width: min(1280px, 100%);
    max-height: calc(100dvh - 2rem);
    padding: clamp(.85rem, 1.5vw, 1.25rem);
    overflow: auto;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 24px;
    background: #f7f8fb;
    box-shadow: 0 34px 110px rgba(15,23,42,.4);
}
.resend-template-editor-head {
    position: sticky;
    z-index: 6;
    top: -.85rem;
    display: flex;
    justify-content: space-between;
    gap: .8rem;
    align-items: center;
    margin: -.85rem -.85rem 0;
    padding: .85rem 1rem;
    border-bottom: 1px solid rgba(30,30,70,.1);
    background: rgba(255,255,255,.93);
    backdrop-filter: blur(18px);
}
.resend-template-editor-head p,
.resend-template-editor-head h3 { margin: 0; }
.resend-template-head-actions { display: flex; gap: .45rem; align-items: center; }
.resend-template-close {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 11px;
    background: #fff;
    color: var(--email-navy);
    cursor: pointer;
    font-size: 1.25rem;
}
.resend-template-personalization {
    padding: .7rem .8rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 12px;
    background: #fff;
}
.resend-template-personalization summary { cursor: pointer; color: var(--email-navy); font-size: .74rem; font-weight: 800; }
.resend-template-personalization textarea { width: 100%; margin-top: .55rem; }
.resend-visual-builder {
    overflow: hidden;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 14px;
    background: #eef2f8;
}
.resend-block-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
    padding: .65rem;
    border-bottom: 1px solid rgba(30,30,70,.1);
    background: #fff;
}
.resend-block-toolbar span {
    color: var(--email-muted);
    font-size: .67rem;
    font-weight: 800;
}
.resend-block-toolbar button {
    min-height: 38px;
    padding: .4rem .7rem;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 10px;
    background: linear-gradient(145deg,#fff,#f5f7fc);
    color: var(--email-navy);
    cursor: pointer;
    font-size: .64rem;
    font-weight: 800;
}
.resend-block-toolbar button:hover {
    border-color: var(--email-primary);
    color: var(--email-primary);
}
.resend-visual-layout {
    display: grid;
    grid-template-columns: minmax(420px, 1fr) minmax(340px, .9fr);
    gap: 1rem;
    padding: 1rem;
}
.resend-visual-layout > div { min-width: 0; }
.resend-template-visual-editor {
    min-height: 520px;
    overflow: auto;
    outline: none;
    border: 2px solid transparent;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 12px 35px rgba(30,30,70,.09);
}
.resend-template-visual-editor:focus { border-color: rgba(44, 127, 162,.48); }
.resend-visual-layout .ql-toolbar.ql-snow {
    position: sticky;
    z-index: 3;
    top: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .2rem;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 13px 13px 0 0;
    background: rgba(255,255,255,.96);
}
.resend-visual-layout .ql-container.ql-snow {
    min-height: 500px;
    border-color: rgba(30,30,70,.12);
    border-radius: 0 0 13px 13px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(30,30,70,.09);
    font-size: 16px;
}
.resend-visual-layout .ql-editor {
    min-height: 500px;
    padding: 34px;
    line-height: 1.65;
}
#resend-template-preview {
    display: block;
    width: 100%;
    height: 590px;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(30,30,70,.09);
}
.resend-template-code {
    padding: .7rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 10px;
    background: rgba(255,255,255,.55);
}
.resend-template-code summary {
    cursor: pointer;
    color: var(--email-muted);
    font-size: .72rem;
    font-weight: 800;
}
.resend-template-code textarea {
    width: 100%;
    margin: .65rem 0;
    font-family: "Space Mono", monospace;
    font-size: .7rem;
}
.resend-templates-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: .75rem;
    margin-top: 1rem;
}
.resend-template-card {
    display: grid;
    gap: .75rem;
    padding: 1rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 16px;
    background: linear-gradient(145deg,#fff,#f8faff);
    box-shadow: 0 12px 32px rgba(30,30,70,.07);
}
.resend-template-card h3,
.resend-template-card p { margin: 0; }
.resend-template-card p:not(.eyebrow) { color: var(--email-muted); font-size: .7rem; }
.resend-template-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; }
.resend-template-actions button,
.resend-template-actions a {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 10px;
    background: #fff;
    color: var(--email-navy);
    cursor: pointer;
    font-size: .65rem;
    font-weight: 800;
    text-decoration: none;
}
.resend-template-actions [data-edit-resend-template] {
    grid-column: 1 / -1;
    border-color: var(--email-primary);
    background: var(--email-primary);
    color: #fff;
}

.email-contacts-layout {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(360px, 1.08fr);
    gap: 1rem;
    align-items: start;
}
.email-csv-guide,
.email-csv-import { display: grid; gap: 1rem; }
.email-csv-guide h2,
.email-csv-guide p,
.email-csv-import h2,
.email-csv-import p { margin: 0; }
.email-csv-steps {
    display: grid;
    gap: .65rem;
    margin: 0;
    padding-left: 1.25rem;
    color: var(--email-ink);
    font-size: .78rem;
    line-height: 1.55;
}
.email-csv-steps code,
.email-csv-example code {
    font-family: "Space Mono", ui-monospace, monospace;
}
.email-csv-example {
    overflow: auto;
    padding: .9rem;
    border: 1px solid rgba(44, 127, 162,.18);
    border-radius: 12px;
    background: #f5f7ff;
    color: #1e1e46;
    font-size: .7rem;
    line-height: 1.8;
    white-space: nowrap;
}
.email-csv-consent-note {
    padding: .75rem .85rem;
    border-left: 3px solid #d97706;
    border-radius: 0 10px 10px 0;
    background: rgba(245,158,11,.08);
    color: #78350f;
    font-size: .7rem;
    line-height: 1.5;
}
.email-csv-dropzone {
    display: grid;
    gap: .35rem;
    place-items: center;
    padding: 1.4rem;
    border: 1.5px dashed rgba(44, 127, 162,.38);
    border-radius: 14px;
    background: rgba(238,242,255,.66);
    color: var(--email-primary);
    cursor: pointer;
    text-align: center;
}
.email-csv-dropzone:hover { border-color: var(--email-primary); background: #f5f7ff; }
.email-csv-dropzone span { font-size: .82rem; font-weight: 800; }
.email-csv-dropzone small { color: var(--email-muted); font-size: .68rem; }
.email-csv-dropzone input { width: 100%; margin-top: .45rem; font-size: .72rem; }
.email-csv-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
}
.email-csv-summary[hidden],
.email-csv-preview[hidden] { display: none; }
.email-csv-summary article {
    display: grid;
    gap: .1rem;
    padding: .7rem;
    border-radius: 11px;
    background: rgba(30,30,70,.05);
}
.email-csv-summary strong { color: var(--email-navy); font-size: 1.1rem; }
.email-csv-summary span { color: var(--email-muted); font-size: .62rem; font-weight: 700; }
.email-csv-summary article[data-tone="error"] { background: rgba(220,38,38,.08); }
.email-csv-summary article[data-tone="error"] strong { color: #b91c1c; }
.email-csv-preview {
    max-height: 260px;
    overflow: auto;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 11px;
}
.email-csv-preview table { width: 100%; border-collapse: collapse; font-size: .68rem; }
.email-csv-preview th,
.email-csv-preview td {
    padding: .55rem .65rem;
    border-bottom: 1px solid rgba(30,30,70,.08);
    text-align: left;
}
.email-csv-preview th {
    position: sticky;
    top: 0;
    background: #f7f8fb;
    color: var(--email-navy);
}
.email-csv-preview td { color: var(--email-muted); }

.email-campaigns-list { display: grid; gap: .65rem; margin-top: 1rem; }
.email-campaign-row {
    display: grid;
    grid-template-columns: minmax(200px, 1.3fr) repeat(4, minmax(72px, .35fr)) auto;
    gap: .7rem;
    align-items: center;
    padding: .85rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 12px;
    background: rgba(255,255,255,.55);
}
.email-campaign-row h3,
.email-campaign-row p { margin: 0; }
.email-campaign-row h3 { font-size: .86rem; }
.email-campaign-row p,
.email-campaign-stat span { color: var(--email-muted); font-size: .65rem; }
.email-campaign-stat { display: grid; gap: .08rem; }
.email-campaign-stat strong { font-size: .84rem; }
.email-campaign-actions { display: flex; gap: .3rem; }
.email-campaign-actions button {
    min-height: 34px;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 8px;
    background: rgba(255,255,255,.7);
    color: var(--email-navy);
    cursor: pointer;
    font-size: .65rem;
    font-weight: 800;
}
.email-status-badge {
    display: inline-flex;
    width: fit-content;
    margin-top: .25rem;
    padding: .22rem .42rem;
    border-radius: 999px;
    background: rgba(37,99,235,.09);
    color: #1d4ed8;
    font-size: .6rem;
    font-weight: 800;
}
.email-status-badge[data-status="sent"] { color: #166534; background: rgba(22,163,74,.09); }
.email-status-badge[data-status="partial"],
.email-status-badge[data-status="failed"] { color: #991b1b; background: rgba(220,38,38,.09); }
.email-status-badge[data-status="scheduled"] { color: #92400e; background: rgba(245,158,11,.11); }

.email-gifts-divider { margin: 2rem 0 1rem; padding-top: 1.5rem; border-top: 1px solid rgba(30,30,70,.12); }
.email-gifts-divider p,
.email-gifts-divider h2 { margin: 0; }

@media (max-width: 1180px) {
    .email-studio-shell { grid-template-columns: minmax(0, 1fr); }
    .email-preview-column { position: static; }
    .email-preview-card { grid-template-columns: minmax(0, .7fr) minmax(340px, 1fr); align-items: start; }
    .email-preview-head,
    .email-inbox-preview,
    .email-quality-checks { grid-column: 1; }
    .email-preview-frame-wrap { grid-column: 2; grid-row: 1 / 5; }
    .resend-visual-layout { grid-template-columns: 1fr; }
    #resend-template-preview { height: 480px; }
    .email-contacts-layout { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    .email-metrics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .email-preview-card { display: grid; grid-template-columns: 1fr; }
    .email-preview-frame-wrap { grid-column: 1; grid-row: auto; }
    .email-campaign-row { grid-template-columns: 1fr 1fr 1fr; }
    .email-campaign-row > div:first-child,
    .email-campaign-actions { grid-column: 1 / -1; }
    .email-attachment-toolbar { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .email-health-bar { grid-template-columns: auto 1fr; }
    .email-health-bar > button { grid-column: 2; justify-self: start; padding: 0; }
    .email-studio-tabs { display: grid; grid-template-columns: repeat(2, 1fr); width: 100%; }
    .email-metrics-grid { gap: .55rem; }
    .email-metrics-grid article { padding: .75rem; }
    .email-composer-actions { display: grid; grid-template-columns: 1fr 1fr; bottom: calc(.5rem + env(safe-area-inset-bottom)); }
    .email-composer-actions .btn { width: 100%; padding-inline: .5rem; font-size: .68rem; }
    .email-quality-checks { grid-template-columns: 1fr; }
    .email-campaign-row { grid-template-columns: 1fr 1fr; }
    .email-campaign-row > div:first-child,
    .email-campaign-actions { grid-column: 1 / -1; }
}

/* ===== Fuente: sinapse-os.css ===== */
:root {
    --wos-surface: #ffffff;
    --wos-ink: #172033;
    --wos-muted: #64748b;
    --wos-line: rgba(30, 30, 70, .14);
    --wos-primary: #1e1e46;
    --wos-accent: #4f76df;
    --wos-radius: 22px;
}

body.wos-modal-open { overflow: hidden !important; }

.wos-public-identity {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.25rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 16px;
    background: rgba(255, 255, 255, .06);
}

.wos-public-identity p,
.wos-public-identity strong,
.wos-public-identity small { display: block; margin: 0; }
.wos-public-identity p { color: rgba(255, 255, 255, .58); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.wos-public-identity strong { margin-top: .18rem; color: #fff; }
.wos-public-identity small { margin-top: .2rem; color: rgba(255, 255, 255, .68); }
.wos-public-identity button {
    min-height: 42px;
    padding: .65rem .9rem;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 11px;
    color: #fff;
    background: transparent;
    font: inherit;
    font-size: .78rem;
    font-weight: 800;
    cursor: pointer;
}

.wos-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 30000;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(4, 8, 24, .76);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}

.wos-dialog {
    width: min(840px, 100%);
    max-height: min(900px, 92vh);
    max-height: min(900px, 92dvh);
    overflow: auto;
    color: var(--wos-ink);
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: var(--wos-radius);
    background: var(--wos-surface);
    box-shadow: 0 32px 100px rgba(0, 0, 0, .35);
}

.wos-dialog-header {
    position: sticky;
    top: 0;
    z-index: 2;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
    color: #fff;
    background: linear-gradient(135deg, #151532, #273b77);
}
.wos-dialog-header h2,
.wos-dialog-header p { margin: 0; }
.wos-dialog-header h2 { font-size: clamp(1.3rem, 4vw, 2rem); }
.wos-dialog-header > div > p:last-child { margin-top: .15rem; color: rgba(255, 255, 255, .72); }
.wos-eyebrow { color: #aecaee !important; font-size: .7rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.wos-product-mark { display: grid; width: 58px; height: 58px; place-items: center; border: 1px solid rgba(255,255,255,.3); border-radius: 16px; background: rgba(255,255,255,.1); }
.wos-product-mark span { font-weight: 900; line-height: 1; }
.wos-product-mark small { font-size: .55rem; letter-spacing: .12em; }
.wos-dialog-close { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 12px; color: #fff; background: rgba(255,255,255,.08); font-size: 1.6rem; cursor: pointer; }

.wos-dialog-body { display: grid; gap: 1.25rem; padding: 1.25rem; }
.wos-intro { margin: 0; color: var(--wos-muted); line-height: 1.7; }
.wos-spec-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin: 0; }
.wos-spec-grid > div { padding: .85rem; border: 1px solid var(--wos-line); border-radius: 14px; background: #f8fafc; }
.wos-spec-grid dt { color: var(--wos-muted); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.wos-spec-grid dd { margin: .3rem 0 0; font-weight: 750; overflow-wrap: anywhere; }
.wos-dialog-section { padding: 1rem; border: 1px solid var(--wos-line); border-radius: 16px; }
.wos-dialog-section h3 { margin: 0 0 .55rem; font-size: 1rem; }
.wos-dialog-section p,
.wos-dialog-section ul { margin: 0; color: var(--wos-muted); line-height: 1.65; }
.wos-dialog-section ul { padding-left: 1.2rem; }
.wos-dialog-actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.wos-dialog-actions a { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: .7rem 1rem; border-radius: 12px; color: #fff; background: var(--wos-primary); font-size: .78rem; font-weight: 850; text-decoration: none; }
.wos-dialog-footer { display: grid; gap: .25rem; padding: 1rem 1.25rem 1.25rem; color: var(--wos-muted); border-top: 1px solid var(--wos-line); font-size: .8rem; }
.wos-dialog-footer strong { color: var(--wos-ink); }

.wos-system-card { display: grid; gap: 1rem; }
.wos-system-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.wos-system-card-grid div { padding: .75rem; border: 1px solid var(--admin-border, #e2e8f0); border-radius: 10px; }
.wos-system-card-grid small,
.wos-system-card-grid strong { display: block; }
.wos-system-card-grid small { color: var(--admin-text-muted, #64748b); }

body[data-admin-theme="dark"] .wos-dialog,
body[data-admin-theme="blue-solar"] .wos-dialog { --wos-surface: #10182b; --wos-ink: #eef4ff; --wos-muted: #aab9d0; --wos-line: rgba(190, 211, 245, .18); }
body[data-admin-theme="dark"] .wos-spec-grid > div,
body[data-admin-theme="blue-solar"] .wos-spec-grid > div { background: rgba(255, 255, 255, .04); }

@media (max-width: 640px) {
    .wos-modal-backdrop { align-items: end; padding: 0; }
    .wos-dialog { width: 100%; max-height: 96vh; max-height: 96dvh; border-radius: 22px 22px 0 0; }
    .wos-dialog-header { grid-template-columns: auto 1fr auto; padding: 1rem; }
    .wos-product-mark { width: 48px; height: 48px; border-radius: 13px; }
    .wos-spec-grid { grid-template-columns: 1fr; }
    .wos-public-identity { align-items: stretch; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .wos-dialog, .wos-modal-backdrop { animation: none !important; transition: none !important; }
}

/* Public storefront stabilization: compact cards, reliable embeds and quote dialogs. */
body.quote-modal-open { overflow: hidden; }

.featured-magazine {
    align-self: start !important;
    justify-self: stretch;
    height: auto !important;
    min-height: 0 !important;
}
.featured-magazine .cover-shell {
    display: grid !important;
    grid-template-columns: minmax(190px, .78fr) minmax(220px, 1fr) !important;
    width: min(100%, 780px) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    align-items: center;
    gap: clamp(.9rem, 2vw, 1.35rem) !important;
    padding: clamp(.8rem, 2vw, 1.25rem) !important;
    border-radius: 24px !important;
    overflow: hidden;
}
.featured-magazine .magazine-product-media,
.featured-magazine .magazine-product-info { min-width: 0; min-height: 0; }
.featured-magazine .cover-click,
.featured-magazine .cover-click img {
    width: 100% !important;
    height: auto !important;
    max-height: 390px !important;
    object-fit: contain !important;
}
.featured-magazine .magazine-product-info p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}
.featured-magazine .magazine-product-actions { grid-template-columns: minmax(150px, 1fr) !important; }
.featured-magazine .magazine-product-actions .btn { max-width: 260px; }

.quote-toolbar,
.quote-request-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .75rem 1rem;
    padding: .8rem;
    border: 1px solid color-mix(in srgb, var(--navy) 12%, transparent);
    border-radius: 16px;
    background: rgba(255,255,255,.62);
}
.quote-toolbar { margin-block: .85rem; }
.quote-request-bar { margin-top: .85rem; }
.quote-toolbar .microcopy,
.quote-request-bar .microcopy { margin: 0; }
.quote-services-button { display: inline-flex; align-items: center; gap: .5rem; letter-spacing: .08em; }
.quote-request-bar .btn:disabled { opacity: .48; cursor: not-allowed; filter: grayscale(.5); }

.quote-modal[hidden] { display: none !important; }
.quote-modal.is-open {
    display: grid !important;
    place-items: center;
    padding: clamp(.75rem, 3vw, 2rem);
}
.quote-modal .share-sheet {
    width: min(940px, 100%);
    max-width: calc(100vw - 1.5rem);
    max-height: calc(100dvh - 1.5rem);
    padding: clamp(1rem, 3vw, 1.6rem);
    overflow: auto;
    border-radius: 24px;
    background: color-mix(in srgb, var(--bone) 94%, white);
}
.quote-request-sheet { width: min(680px, 100%) !important; }
.quote-services-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
    margin-top: 1rem;
}
.quote-service-card {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: .8rem;
    min-width: 0;
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--navy) 12%, transparent);
    border-radius: 18px;
    background: rgba(255,255,255,.82);
    box-shadow: 0 12px 34px rgba(30,30,70,.07);
}
.quote-service-icon {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 15px;
    color: #fff;
    background: linear-gradient(145deg, var(--navy), var(--sky-dark));
    font-size: 1.55rem;
    line-height: 1;
}
.quote-service-card h3 { margin: .25rem 0 .55rem; font-size: 1rem; }
.quote-service-card ul { display: grid; gap: .3rem; margin: 0; padding-left: 1.05rem; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.quote-service-tag { color: var(--sky-dark); font-size: .62rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.quote-request-recap { padding: .75rem .9rem; border-radius: 12px; color: var(--navy); background: rgba(47,134,173,.11); font-weight: 750; }

.reader-embed-host {
    width: 100%;
    min-height: 300px !important;
    background: #080812 !important;
}
.reader-embed-host iframe,
.reader-embed-host video {
    display: block;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 340px !important;
    max-width: 100% !important;
    border: 0;
    background: #080812;
}
.reader-embed-host video { height: auto; object-fit: contain; }
.reader-embed-unavailable {
    display: grid;
    place-items: center;
    align-content: center;
    gap: .45rem;
    min-height: 300px;
    padding: 1.25rem;
    color: #fff;
    text-align: center;
}
.reader-embed-unavailable > span { display: grid; width: 54px; height: 54px; place-items: center; border-radius: 999px; background: var(--sky-dark); font-size: 1.35rem; }
.reader-embed-unavailable p { margin: 0; color: rgba(255,255,255,.7); font-size: .8rem; }
.reader-embed-fallback {
    position: relative;
    z-index: 3;
    display: grid;
    gap: .45rem;
    width: 100%;
    padding: .8rem;
    color: #f8fafc;
    background: #101027;
    font-size: .72rem;
    line-height: 1.4;
}
.reader-embed-fallback strong { font-size: .82rem; }
.reader-embed-fallback span { color: rgba(255,255,255,.7); }
.reader-embed-fallback .btn { width: 100%; min-height: 40px; color: var(--navy); background: #fff; }
.phone-video-frame.embed-needs-fallback .reader-embed-host { opacity: .55; }
.phone-video-frame.embed-needs-fallback .reader-embed-fallback { box-shadow: 0 -12px 30px rgba(0,0,0,.22); }

.news-article-sheet,
.reader-dialog {
    border: 1px solid rgba(255,255,255,.5);
    box-shadow: 0 30px 90px rgba(10,18,38,.3);
}

@media (max-width: 760px) {
    .featured-magazine .cover-shell { grid-template-columns: minmax(0, 1fr) !important; width: min(100%, 430px) !important; }
    .featured-magazine .cover-click,
    .featured-magazine .cover-click img { max-height: min(52vh, 430px) !important; }
    .featured-magazine .magazine-product-actions .btn { max-width: none; }
    .quote-services-grid { grid-template-columns: minmax(0, 1fr); }
    .quote-service-card { grid-template-columns: 44px minmax(0, 1fr); padding: .85rem; }
    .quote-service-icon { width: 44px; height: 44px; font-size: 1.25rem; }
    .quote-request-bar .btn { width: 100%; }
}

/* ===== Fuente: backup-center.css ===== */
.admin-backup-button {
    position: relative;
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    gap: .55rem;
    padding: .65rem .85rem;
    border: 1px solid var(--admin-border, #d8e0ea);
    border-radius: 11px;
    color: var(--admin-text, #1e293b);
    background: var(--admin-card-bg, #fff);
    font: inherit;
    font-size: .78rem;
    font-weight: 800;
    cursor: pointer;
}
.admin-backup-button.backup-recommended { border-color: #d97706; box-shadow: 0 0 0 3px rgba(217,119,6,.12); }
.admin-backup-button [data-backup-change-count] { display: grid; min-width: 20px; height: 20px; place-items: center; padding: 0 .25rem; border-radius: 999px; color: #fff; background: #d97706; font-size: .68rem; }
.admin-backup-button [hidden] { display: none; }

.backup-center-backdrop { position: fixed; inset: 0; z-index: 31000; display: grid; place-items: center; padding: 1rem; background: rgba(4,8,24,.76); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.backup-center { width: min(760px, 100%); max-height: 92vh; max-height: 92dvh; overflow: auto; border: 1px solid rgba(255,255,255,.28); border-radius: 22px; color: var(--admin-text, #1e293b); background: var(--admin-card-bg, #fff); box-shadow: 0 32px 100px rgba(0,0,0,.36); }
.backup-center-head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem; color: #fff; background: linear-gradient(135deg,#151532,#273b77); }
.backup-center-head p,
.backup-center-head h2 { margin: 0; }
.backup-center-head p { color: #aecaee; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.backup-center-head button { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 12px; color: #fff; background: rgba(255,255,255,.08); font-size: 1.5rem; cursor: pointer; }
.backup-center-body { display: grid; gap: 1rem; padding: 1.2rem; }
.backup-health { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .9rem; padding: 1rem; border: 1px solid var(--admin-border, #e2e8f0); border-radius: 16px; background: rgba(44, 127, 162,.06); }
.backup-health > span { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 14px; color: #fff; background: #2c7fa2; font-size: 1.3rem; }
.backup-health strong,
.backup-health small { display: block; }
.backup-health small { margin-top: .25rem; color: var(--admin-text-muted, #64748b); line-height: 1.45; }
.backup-option { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .9rem; padding: 1rem; border: 1px solid var(--admin-border, #e2e8f0); border-radius: 16px; }
.backup-option h3,
.backup-option p { margin: 0; }
.backup-option p { margin-top: .3rem; color: var(--admin-text-muted, #64748b); font-size: .86rem; line-height: 1.5; }
.backup-file-picker { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; padding: .65rem .9rem; border: 1px dashed var(--admin-border, #cbd5e1); border-radius: 11px; font-size: .78rem; font-weight: 750; cursor: pointer; }
.backup-file-picker input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.backup-auto { padding: 1rem; border: 1px solid var(--admin-border, #e2e8f0); border-radius: 16px; }
.backup-auto label { display: flex; align-items: flex-start; gap: .75rem; cursor: pointer; }
.backup-auto input { width: 20px; height: 20px; margin-top: .1rem; }
.backup-auto strong,
.backup-auto small { display: block; }
.backup-auto small { margin-top: .25rem; color: var(--admin-text-muted, #64748b); }
.backup-cloud-list { display: grid; gap: .75rem; padding: 1rem; border: 1px solid var(--admin-border, #e2e8f0); border-radius: 16px; }
.backup-cloud-list h3,
.backup-cloud-list p { margin: 0; }
.backup-cloud-list p { margin-top: .25rem; color: var(--admin-text-muted, #64748b); font-size: .84rem; }
.backup-cloud-row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .7rem 0; border-top: 1px solid var(--admin-border, #e2e8f0); }
.backup-cloud-row strong,
.backup-cloud-row small { display: block; }
.backup-cloud-row small { color: var(--admin-text-muted, #64748b); }
.backup-cloud-row > div:last-child { display: flex; gap: .45rem; }
.backup-cloud-row button { min-height: 36px; padding: .5rem .65rem; border: 1px solid var(--admin-border, #cbd5e1); border-radius: 9px; color: var(--admin-text, #1e293b); background: transparent; font: inherit; font-size: .72rem; font-weight: 750; cursor: pointer; }
.backup-progress { position: relative; height: 34px; overflow: hidden; border-radius: 10px; background: rgba(44, 127, 162,.1); }
.backup-progress span { position: absolute; inset: 0 auto 0 0; width: 0; background: linear-gradient(90deg,#2c7fa2,#22b8cf); transition: width .2s ease; }
.backup-progress div { position: relative; z-index: 1; display: grid; height: 100%; place-items: center; color: var(--admin-text, #1e293b); font-size: .72rem; font-weight: 800; }
#backup-center-status[data-tone="ok"] { color: #16814b; }
#backup-center-status[data-tone="warning"] { color: #b45309; }
#backup-center-status[data-tone="error"] { color: #dc2626; }

@media (max-width: 700px) {
    .backup-center-backdrop { align-items: end; padding: 0; }
    .backup-center { width: 100%; max-height: 96vh; max-height: 96dvh; border-radius: 22px 22px 0 0; }
    .backup-option { grid-template-columns: 1fr; }
    .backup-option .btn,
    .backup-file-picker { width: 100%; }
    .backup-cloud-row { align-items: stretch; flex-direction: column; }
    .backup-cloud-row > div:last-child button { flex: 1; }
    .admin-backup-button > span:nth-child(2) { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .backup-progress span { transition: none; }
}

/* ===== Fuente: admin-notifications.css ===== */
/* Centro de notificaciones: adaptación ligera al sistema visual existente. */
.notification-center-card {
    display: grid;
    gap: 1rem;
    align-content: start;
}
.notification-channel-guide {
    display: grid;
    gap: .65rem;
}
.notification-channel-guide article {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    gap: .7rem;
    align-items: center;
    min-width: 0;
    padding: .75rem;
    border: 1px solid var(--admin-card-border, #d8deea);
    border-radius: 10px;
    background: rgba(255,255,255,.72);
}
.notification-channel-guide article > span {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 10px;
    background: color-mix(in srgb, var(--admin-primary, #1e1e46) 12%, #fff);
    color: var(--admin-primary, #1e1e46);
}
.notification-channel-guide article div { display: grid; min-width: 0; gap: .15rem; }
.notification-channel-guide article small { color: var(--admin-text-muted, #64748b); line-height: 1.35; }
.notification-channel-guide article button {
    min-height: 36px;
    padding: .45rem .65rem;
    border: 1px solid var(--admin-primary, #1e1e46);
    border-radius: 8px;
    background: transparent;
    color: var(--admin-primary, #1e1e46);
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}
@media (max-width: 620px) {
    .notification-channel-guide article { grid-template-columns: 38px minmax(0, 1fr); }
    .notification-channel-guide article button { grid-column: 1 / -1; width: 100%; }
}

/* ===== Fuente: /tmp/el-cabezal-admin-inline.css ===== */
        /* ============================================================
           ADMIN PANEL - COMPLETE MODERN OVERRIDE
           ============================================================ */
        :root {
            --admin-bg: #f0f2f5;
            --admin-sidebar-bg: #1a1a2e;
            --admin-sidebar-hover: #16213e;
            --admin-card-bg: #ffffff;
            --admin-card-border: #e2e8f0;
            --admin-card-shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.06);
            --admin-card-shadow-hover: 0 4px 12px rgba(0,0,0,0.12);
            --admin-primary: #2563eb;
            --admin-primary-hover: #1d4ed8;
            --admin-success: #16a34a;
            --admin-warning: #d97706;
            --admin-danger: #dc2626;
            --admin-text: #1e293b;
            --admin-text-muted: #64748b;
            --admin-text-light: #94a3b8;
            --admin-border: #e2e8f0;
            --admin-radius: 12px;
            --admin-radius-sm: 8px;
            --admin-radius-lg: 16px;
            --admin-transition: all 0.2s ease;
        }

        /* Reset global styles */
        html, body { padding: 0; margin: 0; background: var(--admin-bg); font-family: 'Space Mono', monospace; color: var(--admin-text); line-height: 1.5; min-height: 100vh; }
        body { display: grid; grid-template-columns: 260px 1fr; }
        *, *::before, *::after { box-sizing: border-box; }
        h1, h2, h3 { font-family: 'Space Mono', monospace; }
        a { text-decoration: none; color: var(--admin-primary); }
        button { font-family: inherit; }

        /* ===== LOGIN OVERLAY ===== */
        .login-overlay { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%); padding: 1rem; }
        .login-overlay[hidden] { display: none; }
        .login-card { width: min(420px, 100%); background: #fff; border-radius: var(--admin-radius-lg); box-shadow: 0 25px 50px rgba(0,0,0,0.25); padding: 2.5rem; display: grid; gap: 1.2rem; }
        .login-card .eyebrow { color: var(--admin-primary); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 0.25rem; }
        .login-card h1 { font-size: 2rem; font-weight: 800; color: var(--admin-text); margin: 0; }
        .login-card label { display: grid; gap: 0.4rem; font-weight: 600; font-size: 0.88rem; color: var(--admin-text); }
        .login-card input { width: 100%; border: 2px solid var(--admin-border); border-radius: var(--admin-radius-sm); padding: 0.85rem 1rem; font-size: 0.95rem; transition: var(--admin-transition); background: #f8fafc; }
        .login-card input:focus { outline: none; border-color: var(--admin-primary); box-shadow: 0 0 0 3px rgba(37,99,235,0.15); }
        .form-status { min-height: 1.2rem; font-size: 0.85rem; font-weight: 600; color: var(--admin-danger); }

        /* ===== SIDEBAR ===== */
        .admin-sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; background: var(--admin-sidebar-bg); color: #e2e8f0; padding: 1.5rem 1rem; display: flex; flex-direction: column; gap: 0.3rem; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.1) transparent; }
        .admin-sidebar::-webkit-scrollbar { width: 4px; }
        .admin-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 4px; }
        .admin-brand { display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem 0.75rem; margin-bottom: 1.5rem; text-decoration: none; color: #fff; }
        .brand-mark { font-family: 'VT323', monospace; font-size: 1.8rem; color: #fff; line-height: 1; }
        .admin-brand span:last-child { font-size: 0.75rem; font-weight: 600; color: rgba(255,255,255,0.5); text-transform: uppercase; letter-spacing: 0.08em; }
        .base-label { margin: 1.2rem 0 0.5rem; padding: 0 0.75rem; color: rgba(255,255,255,0.35); font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; }
        .admin-tab { display: flex; align-items: center; gap: 0.7rem; width: 100%; text-align: left; border: none; background: transparent; color: rgba(255,255,255,0.65); border-radius: var(--admin-radius-sm); padding: 0.7rem 0.85rem; cursor: pointer; font-size: 0.88rem; font-weight: 600; transition: var(--admin-transition); white-space: nowrap; font-family: inherit; }
        .admin-tab:hover { background: rgba(255,255,255,0.08); color: #fff; }
        .admin-tab.active { background: var(--admin-primary); color: #fff; box-shadow: 0 2px 8px rgba(37,99,235,0.3); }
        .admin-tab span { font-size: 1.1rem; width: 22px; text-align: center; }
        .admin-logout { margin-top: auto; padding: 0.7rem; border: 1px solid rgba(255,255,255,0.15); border-radius: var(--admin-radius-sm); background: transparent; color: rgba(255,255,255,0.5); cursor: pointer; font-size: 0.85rem; font-weight: 600; transition: var(--admin-transition); font-family: inherit; }
        .admin-logout:hover { background: rgba(220,38,38,0.15); color: #fca5a5; border-color: rgba(220,38,38,0.3); }

        /* ===== MAIN CONTENT ===== */
        .admin-main { padding: 1.5rem 2rem; overflow-y: auto; min-width: 0; }
        .admin-panel { display: none; }
        .admin-panel.active { display: block; animation: fadeIn 0.25s ease; }
        @keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

        .admin-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.75rem; margin-bottom: 1.5rem; }
        .admin-heading .eyebrow { color: var(--admin-primary); font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 0.25rem; }
        .admin-heading h1 { font-size: 1.8rem; font-weight: 800; color: var(--admin-text); margin: 0; }

        /* ===== BUTTONS ===== */
        .btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; min-height: 42px; padding: 0.65rem 1.2rem; border-radius: var(--admin-radius-sm); font-weight: 700; font-size: 0.88rem; cursor: pointer; transition: var(--admin-transition); border: none; text-decoration: none; font-family: inherit; }
        .btn-primary { background: var(--admin-primary); color: #fff; }
        .btn-primary:hover { background: var(--admin-primary-hover); transform: translateY(-1px); }
        .btn-secondary { background: #f1f5f9; color: var(--admin-text); border: 1px solid var(--admin-border); }
        .btn-secondary:hover { background: #e2e8f0; }
        .btn-danger { background: var(--admin-danger); color: #fff; }
        .btn-danger:hover { background: #b91c1c; }
        .admin-heading-actions { display: flex; flex-wrap: wrap; gap: 0.65rem; align-items: center; }
        .admin-menu-toggle { display: none; position: fixed; top: 1rem; left: 1rem; z-index: 110; width: 44px; height: 44px; border-radius: 14px; border: 1px solid rgba(255,255,255,0.22); background: rgba(15,23,42,0.96); color: #fff; align-items: center; justify-content: center; cursor: pointer; transition: var(--admin-transition); }
        .admin-menu-toggle:hover { background: rgba(37,99,235,0.95); }
        .admin-menu-toggle .hamburger-line { width: 18px; height: 2px; background: currentColor; display: block; border-radius: 999px; margin: 3px 0; }
        .admin-bottom-nav { display: none; position: fixed; inset: auto 0 0 0; z-index: 105; padding: 0.35rem 0.5rem; background: #fff; border-top: 1px solid rgba(148,163,184,0.16); box-shadow: 0 -10px 24px rgba(15,23,42,0.12); }
        .admin-bottom-nav .admin-tab { flex: 1; min-width: 0; border: none; border-radius: 12px; padding: 0.85rem 0.75rem; background: transparent; color: var(--admin-text-muted); font-size: 0.82rem; justify-content: center; }
        .admin-bottom-nav .admin-tab.active { color: var(--admin-primary); background: rgba(37,99,235,0.08); }
        .admin-bottom-nav .admin-tab span { display: block; }

        /* ===== CARDS ===== */
        .admin-card { background: var(--admin-card-bg); border: 1px solid var(--admin-card-border); border-radius: var(--admin-radius); padding: 1.5rem; box-shadow: var(--admin-card-shadow); transition: var(--admin-transition); }
        .admin-card:hover { box-shadow: var(--admin-card-shadow-hover); }
        .admin-card h2 { font-size: 1.15rem; font-weight: 700; color: var(--admin-text); margin-bottom: 1rem; }

        /* ===== STAT GRID ===== */
        .stat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }

        /* ===== TWO COL ===== */
        .admin-two-col { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-bottom: 1.5rem; }

        /* ===== FORMS ===== */
        .form-stack { display: grid; gap: 0.9rem; align-content: start; }
        .form-stack label { display: grid; gap: 0.35rem; font-weight: 600; font-size: 0.88rem; color: var(--admin-text); }
        .form-stack input, .form-stack textarea, .form-stack select { width: 100%; border: 2px solid var(--admin-border); border-radius: var(--admin-radius-sm); padding: 0.75rem 0.9rem; font-size: 0.92rem; background: #f8fafc; transition: var(--admin-transition); font-family: inherit; color: var(--admin-text); }
        .form-stack input:focus, .form-stack textarea:focus, .form-stack select:focus { outline: none; border-color: var(--admin-primary); box-shadow: 0 0 0 3px rgba(37,99,235,0.12); }
        .form-stack textarea { resize: vertical; min-height: 80px; }
        .form-title-row h2 { margin: 0; }
        .form-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }
        .microcopy { color: var(--admin-text-muted); font-size: 0.85rem; }
        .check-row { display: flex; align-items: center; gap: 0.5rem; font-weight: 600; font-size: 0.88rem; }
        .check-row input { width: auto; }

        /* ===== TABLE ===== */
        .table-wrap { overflow-x: auto; background: var(--admin-card-bg); border-radius: var(--admin-radius); border: 1px solid var(--admin-card-border); box-shadow: var(--admin-card-shadow); }
        .admin-table { width: 100%; min-width: 900px; border-collapse: collapse; }
        .admin-table th { padding: 0.85rem 0.75rem; text-align: left; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--admin-text-muted); background: #f8fafc; border-bottom: 2px solid var(--admin-border); }
        .admin-table td { padding: 0.75rem; border-bottom: 1px solid var(--admin-border); font-size: 0.88rem; vertical-align: top; }
        .admin-table tr:hover td { background: #f8fafc; }
        .admin-table select { width: 100%; padding: 0.5rem; border: 1px solid var(--admin-border); border-radius: 6px; font-size: 0.85rem; font-family: inherit; }

        /* ===== BUILDER ===== */
        .builder-subtabs { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 1.5rem; padding: 0.4rem; background: #f1f5f9; border-radius: var(--admin-radius); }
        .builder-subtab { min-height: 40px; border: none; border-radius: var(--admin-radius-sm); background: transparent; color: var(--admin-text-muted); cursor: pointer; font-weight: 700; font-size: 0.85rem; padding: 0.5rem 0.85rem; transition: var(--admin-transition); font-family: inherit; }
        .builder-subtab:hover { color: var(--admin-text); background: rgba(255,255,255,0.5); }
        .builder-subtab.active { background: #fff; color: var(--admin-primary); box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
        .builder-subpanel { display: none; }
        .builder-subpanel.active { display: block; animation: fadeIn 0.2s ease; }
        .builder-group { border: 1px solid var(--admin-border); border-radius: var(--admin-radius-sm); background: #f8fafc; padding: 0.85rem; margin-bottom: 0.75rem; }
        .builder-group summary { cursor: pointer; font-weight: 700; color: var(--admin-primary); font-size: 0.92rem; }
        .builder-group-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; margin-top: 0.75rem; }
        .color-pair { display: grid; grid-template-columns: 48px 1fr; gap: 0.5rem; align-items: center; }
        .color-pair input[type="color"] { min-height: 44px; padding: 0.2rem; border: 1px solid var(--admin-border); border-radius: 6px; }
        .style-presets { display: flex; gap: 0.4rem; flex-wrap: wrap; margin: 0.75rem 0; }
        .style-presets button { border: 1px solid var(--admin-border); border-radius: 6px; background: #fff; color: var(--admin-text); cursor: pointer; font-weight: 700; font-size: 0.82rem; padding: 0.45rem 0.7rem; transition: var(--admin-transition); font-family: inherit; }
        .style-presets button:hover { background: var(--admin-primary); color: #fff; }
        .builder-filter-row { display: flex; gap: 0.4rem; flex-wrap: wrap; margin: 0.75rem 0; }
        .featured-template-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0.55rem; margin: 1rem 0; }
        .featured-template-actions button { min-height: 42px; border: 1px solid var(--admin-border); border-radius: var(--admin-radius-sm); background: #fff; color: var(--admin-text); cursor: pointer; font-weight: 800; padding: 0.6rem 0.8rem; text-align: left; transition: var(--admin-transition); font-family: inherit; }
        .featured-template-actions button:hover { border-color: var(--admin-primary); color: var(--admin-primary); transform: translateY(-1px); box-shadow: var(--admin-card-shadow); }
        .mini-row { display: grid; grid-template-columns: 1fr auto auto auto; gap: 0.5rem; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid var(--admin-border); }
        .mini-row:last-child { border-bottom: none; }
        .mini-row div { display: grid; gap: 0.15rem; }
        .mini-row span:first-child { font-weight: 700; color: var(--admin-text); }
        .mini-row span { color: var(--admin-text-muted); font-size: 0.85rem; }
        .mini-row button { border: 1px solid var(--admin-border); border-radius: 6px; background: #f8fafc; padding: 0.4rem 0.65rem; font-weight: 700; font-size: 0.82rem; cursor: pointer; transition: var(--admin-transition); font-family: inherit; }
        .mini-row button:hover { background: #e2e8f0; }

        /* ===== VISUAL EDITOR ===== */
        .visual-editor-card { display: grid; gap: 1rem; }
        .visual-editor-shell { display: grid; gap: 1rem; }
        .visual-toolbar { display: flex; flex-wrap: wrap; gap: 0.35rem; padding: 0.55rem; border: 1px solid var(--admin-border); border-radius: var(--admin-radius-sm); background: #f8fafc; }
        .visual-toolbar button, .visual-toolbar select, .visual-upload { min-height: 36px; border: 1px solid var(--admin-border); border-radius: 6px; background: #fff; color: var(--admin-text); padding: 0.4rem 0.6rem; font-weight: 700; font-size: 0.82rem; cursor: pointer; font-family: inherit; }
        .visual-toolbar input[type="color"] { width: 38px; min-height: 36px; padding: 0.15rem; border: 1px solid var(--admin-border); border-radius: 6px; background: #fff; cursor: pointer; }
        .visual-toolbar button:hover { background: var(--admin-primary); color: #fff; }
        .visual-upload input { display: none; }
        .visual-style-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.65rem; }
        .visual-style-grid label { display: grid; gap: 0.2rem; font-size: 0.78rem; font-weight: 600; color: var(--admin-text-muted); }
        .visual-style-grid input, .visual-style-grid select { width: 100%; padding: 0.4rem; border: 1px solid var(--admin-border); border-radius: 6px; font-size: 0.82rem; font-family: inherit; }
        .visual-editor-area { min-height: 250px; padding: 1rem; border: 1px solid var(--admin-border); border-radius: var(--admin-radius-sm); background: #fff; outline: none; }
        .visual-editor-area:focus { box-shadow: 0 0 0 3px rgba(37,99,235,0.15); }
        .news-rich-toolbar { align-items: center; background: #f8fafc; border-bottom-left-radius: 0; border-bottom-right-radius: 0; margin-bottom: -0.9rem; }
        .news-rich-editor { min-height: 320px; border-top-left-radius: 0; border-top-right-radius: 0; line-height: 1.65; }
        .news-rich-editor figure { margin: 1rem 0; }
        .news-rich-editor img { max-width: 100%; border-radius: 8px; }
        .template-elements-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; margin-top: 0.85rem; }
        .template-layout-preview { min-height: 170px; display: grid; gap: 0.55rem; align-content: start; margin-top: 1rem; padding: 1rem; border: 1px dashed var(--admin-border); border-radius: var(--admin-radius-sm); background: #fff; }
        .template-preview-title { display: grid; gap: 0.35rem; }
        .template-preview-title span { width: 86px; height: 10px; border-radius: 999px; background: var(--admin-primary); opacity: 0.28; }
        .template-preview-title strong { width: 54%; height: 18px; border-radius: 6px; background: #1e293b; color: transparent; }
        .template-preview-image { width: 100%; aspect-ratio: 16 / 7; border-radius: 8px; background: linear-gradient(135deg, #dbeafe, #bfdbfe); }
        .template-layout-preview p { width: 86%; height: 10px; border-radius: 999px; background: #cbd5e1; margin: 0; }
        .template-layout-preview p + p { width: 68%; }
        .template-layout-preview ul { display: grid; gap: 0.35rem; margin: 0; padding-left: 1rem; }
        .template-layout-preview li { width: 58%; height: 8px; border-radius: 999px; background: #cbd5e1; color: transparent; }
        .template-layout-preview blockquote { width: 74%; height: 34px; border-left: 4px solid var(--admin-primary); background: #eff6ff; margin: 0; }
        .template-layout-preview button { width: 112px; height: 34px; border: 0; border-radius: 8px; background: var(--admin-primary); }
        .template-layout-preview[data-layout="image-left"],
        .template-layout-preview[data-layout="image-right"],
        .template-layout-preview[data-layout="magazine"] { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; }
        .template-layout-preview[data-layout="image-right"] .template-preview-image { order: 2; }
        .template-layout-preview[data-layout="centered"] { justify-items: center; text-align: center; }
        .visual-preview { padding: 1rem; border: 1px dashed var(--admin-border); border-radius: var(--admin-radius-sm); background: #f8fafc; }
        .visual-preview[data-mode="mobile"] { max-width: 390px; margin-inline: auto; border-color: var(--admin-primary); }
        .visual-preview-controls { display: flex; flex-wrap: wrap; gap: 0.35rem; padding: 0.55rem; border: 1px solid var(--admin-border); border-radius: var(--admin-radius-sm); background: #f8fafc; }
        .visual-preview-controls button { min-height: 36px; border: 1px solid var(--admin-border); border-radius: 6px; background: #fff; color: var(--admin-text); padding: 0.4rem 0.6rem; font-weight: 700; font-size: 0.82rem; cursor: pointer; font-family: inherit; }
        .visual-preview-controls button.active { background: var(--admin-primary); color: #fff; }

        /* ===== TEXTS EDITOR ===== */
        .texts-admin-card { min-width: 0; }
        .texts-admin-card > h2 { font-size: 1.3rem; }
        .editor-list { display: grid; gap: 0.75rem; }
        .text-row { display: grid; grid-template-columns: minmax(180px, 0.45fr) minmax(300px, 1.35fr) minmax(160px, 0.42fr); gap: 0.75rem; align-items: stretch; background: #f8fafc; border: 1px solid var(--admin-border); border-radius: var(--admin-radius-sm); padding: 0.85rem; }
        .text-row-meta, .text-row-actions { display: grid; align-content: center; gap: 0.3rem; }
        .text-row-meta strong { color: var(--admin-text); font-size: 0.95rem; }
        .text-row small { color: var(--admin-text-muted); font-size: 0.82rem; }
        .text-row textarea { min-height: 80px; width: 100%; border: 1px solid var(--admin-border); border-radius: 6px; padding: 0.6rem; font-size: 0.88rem; font-family: inherit; }
        .text-row-actions .btn { width: 100%; min-height: 38px; }

        /* ===== TAXONOMY ===== */
        .admin-lists { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }

        /* ===== NOTEPAD ===== */
        .lite-notepad textarea { min-height: 220px; background: #f8fafc; border: 1px solid var(--admin-border); border-radius: var(--admin-radius-sm); padding: 0.85rem; font-size: 0.92rem; line-height: 1.6; font-family: inherit; width: 100%; }

        /* ===== PROJECT SETTINGS ===== */
        .settings-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.9rem; }
        .settings-grid .btn { grid-column: 1 / -1; }

        /* ===== BRAND KIT ===== */
        .brand-kit-preview { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; margin-bottom: 1rem; }
        .brand-swatch { min-height: 100px; display: grid; align-content: end; gap: 0.15rem; border-radius: var(--admin-radius-sm); padding: 0.85rem; color: #fff; }
        .brand-swatch span { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }
        .brand-swatch strong { font-size: 1.8rem; line-height: 1; }

        /* ===== QUOTE MATRIX ===== */
        .quote-matrix-admin { display: grid; gap: 0.5rem; }
        .quote-table-wrap { overflow-x: auto; border: 1px solid var(--admin-border); border-radius: var(--admin-radius-sm); background: #fff; }
        .quote-table { width: 100%; min-width: 820px; border-collapse: collapse; }
        .quote-table th { padding: 0.65rem 0.5rem; text-align: center; background: var(--admin-sidebar-bg); color: #fff; font-weight: 700; font-size: 0.75rem; text-transform: uppercase; }
        .quote-table td { padding: 0.5rem 0.4rem; text-align: center; border: 1px solid var(--admin-border); cursor: pointer; }
        .quote-table td:first-child { text-align: left; padding-left: 0.75rem; font-weight: 700; }
        .quote-table td.quote-cell-selected { background: var(--admin-primary); color: #fff; }

        /* ===== SYNAPE PANEL ===== */
        .synapse-panel { margin: 0 0 1.5rem; padding: 1.25rem; border: 1px solid var(--admin-border); border-radius: var(--admin-radius); background: linear-gradient(135deg, #f0f9ff, #f8fafc); animation: fadeIn 0.2s ease; }
        .synapse-panel[hidden] { display: none; }
        .synapse-panel h2 { font-size: 1.3rem; margin-bottom: 0.3rem; }
        .synapse-panel p { color: var(--admin-text-muted); margin: 0; }
        .synapse-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.65rem; margin-top: 0.85rem; }
        .synapse-grid article { display: grid; gap: 0.2rem; border: 1px solid var(--admin-border); border-radius: var(--admin-radius-sm); background: #fff; padding: 0.7rem; }
        .synapse-grid strong { color: var(--admin-text); font-size: 0.92rem; }
        .synapse-grid span { color: var(--admin-text-muted); font-size: 0.85rem; }

        /* ===== TOAST ===== */
        .admin-toast { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 9999; display: inline-flex; align-items: center; gap: 0.6rem; max-width: min(380px, calc(100vw - 2rem)); border-radius: var(--admin-radius-sm); padding: 0.85rem 1.2rem; font-weight: 700; font-size: 0.92rem; box-shadow: 0 8px 24px rgba(0,0,0,0.15); animation: toastSlide 0.25s ease; }
        .admin-toast[hidden] { display: none; }
        .admin-toast[data-tone="ok"] { background: #dcfce7; color: #166534; border: 1px solid #bbf7d0; }
        .admin-toast[data-tone="error"] { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
        .admin-toast[data-tone="loading"] { background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe; }
        @keyframes toastSlide { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }

        /* ===== EMPTY STATE ===== */
        .empty-state { padding: 1.5rem; border: 1px dashed var(--admin-border); border-radius: var(--admin-radius-sm); color: var(--admin-text-muted); text-align: center; font-size: 0.92rem; }

        /* ===== ADMIN QUICK LINKS ===== */
        .admin-quick-links { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.5rem 0; }
        .admin-quick-links a { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.35rem 0.65rem; border: 1px solid var(--admin-border); border-radius: 6px; background: #f8fafc; color: var(--admin-text); font-size: 0.82rem; font-weight: 700; text-decoration: none; transition: var(--admin-transition); }
        .admin-quick-links a:hover { background: #e2e8f0; }

        /* ===== SESSION STATE ===== */
        #session-state { font-size: 0.85rem; color: var(--admin-text-muted); padding: 0.5rem; background: #f8fafc; border-radius: 6px; }

        /* ===== ROW ACTIONS ===== */
        .row-actions { display: grid; grid-template-columns: 1fr; gap: 0.4rem; min-width: 120px; }
        .row-actions a, .row-actions button { min-height: 36px; display: inline-flex; align-items: center; justify-content: center; text-align: center; border: 1px solid var(--admin-border); border-radius: 6px; background: #f8fafc; cursor: pointer; padding: 0.4rem 0.55rem; font-weight: 700; font-size: 0.82rem; font-family: inherit; }
        .btn-delete-row { background: rgba(220,38,38,0.06) !important; color: #991b1b !important; border-color: rgba(220,38,38,0.2) !important; }
        .btn-delete-row:hover { background: #dc2626 !important; color: #fff !important; }

        /* ===== CRM ===== */
        .crm-date { width: 96px; }
        .crm-name, .crm-company { width: 140px; }
        .crm-giro, .crm-interest { width: 120px; }
        .crm-phone { width: 116px; }
        .crm-email { width: 190px; }
        .crm-status { width: 168px; }

        /* ===== TOUR MODAL ===== */
        .admin-tour-modal { position: fixed; inset: 0; z-index: 9998; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(0,0,0,0.55); backdrop-filter: blur(10px); }
        .admin-tour-card { width: min(92vw, 860px); max-height: min(92vh, 820px); overflow-y: auto; background: #fff; border-radius: var(--admin-radius-lg); box-shadow: 0 25px 50px rgba(0,0,0,0.2); padding: 2rem; }
        .admin-tour-progress { display: flex; gap: 0.3rem; margin: 1rem 0; }
        .admin-tour-progress span { width: 100%; height: 6px; border-radius: 999px; background: #e2e8f0; }
        .admin-tour-progress span.active { background: var(--admin-primary); }
        .builder-help-flow { display: grid; gap: 1rem; margin: 1rem 0 1.25rem; }
        .builder-help-step { display: grid; gap: 0.5rem; padding: 1rem; border: 1px solid var(--admin-border); border-radius: var(--admin-radius-sm); background: #f8fafc; }
        .builder-help-step strong { display: flex; align-items: center; gap: 0.5rem; font-size: 1rem; }
        .builder-help-icon { display: inline-flex; width: 1.9rem; height: 1.9rem; align-items: center; justify-content: center; border-radius: 999px; background: var(--admin-primary); color: #fff; font-size: 1rem; }
        .builder-help-feature { display: grid; gap: 0.75rem; padding: 1rem; border: 1px solid var(--admin-border); border-radius: var(--admin-radius-lg); background: #fff; }
        .builder-help-feature h3 { margin: 0; font-size: 1rem; }
        .builder-help-feature p { margin: 0; color: var(--admin-text-muted); font-size: 0.92rem; }
        .builder-help-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 0.75rem; margin-top: 1rem; }
        .builder-help-pill { display: flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1rem; border-radius: 999px; border: 1px solid var(--admin-border); background: #f1f5f9; font-size: 0.88rem; }
        .builder-help-pill strong { color: var(--admin-text); }

        body.admin-modal-open { overflow: hidden; }
        .form-title-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }

        /* ===== MOBILE RESPONSIVE ===== */
        @media (max-width: 980px) {
            body { grid-template-columns: 1fr; }
            .admin-sidebar { position: fixed; top: 0; left: -280px; width: min(280px, 92vw); height: 100vh; z-index: 100; transition: left 0.3s ease; box-shadow: 0 20px 60px rgba(15,23,42,0.18); }
            .admin-sidebar.is-open { left: 0; }
            .admin-menu-toggle { display: inline-flex; }
            .admin-main { padding: 1rem; padding-bottom: 7rem; }
            .admin-two-col { grid-template-columns: 1fr; }
            .text-row { grid-template-columns: 1fr; }
            .builder-subtabs { grid-template-columns: repeat(2, 1fr); }
            .builder-group-grid { grid-template-columns: 1fr; }
            .synapse-grid { grid-template-columns: 1fr; }
            .visual-style-grid { grid-template-columns: repeat(2, 1fr); }
            .settings-grid { grid-template-columns: 1fr; }
            .stat-grid { grid-template-columns: repeat(2, 1fr); }
            .admin-lists { grid-template-columns: 1fr; }
            .admin-bottom-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.35rem; }
            .admin-bottom-nav .admin-tab { font-size: 0.8rem; padding: 0.75rem 0.6rem; }
        }
        @media (max-width: 640px) {
            .stat-grid { grid-template-columns: 1fr; }
            .builder-subtabs { grid-template-columns: 1fr; }
            .visual-style-grid { grid-template-columns: 1fr; }
            .brand-kit-preview { grid-template-columns: 1fr; }
        }

        /* New panel styles */
        .note-toolbar { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 0.5rem; }
        .note-toolbar button { min-height: 36px; border: 1px solid var(--admin-border); border-radius: 6px; background: #fff; padding: 0.4rem 0.6rem; font-weight: 700; font-size: 0.82rem; cursor: pointer; font-family: inherit; }
        .note-toolbar button:hover { background: var(--admin-primary); color: #fff; }
        .admin-grid-forms { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
        .form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }
        .inline-flex { display: flex; gap: 0.5rem; align-items: center; }
        .profile-logo-editor { display: grid; gap: 0.75rem; padding: 1rem; background: #f8fafc; border-radius: var(--admin-radius-sm); margin-bottom: 1rem; }
        .profile-logo-preview { min-height: 80px; display: flex; align-items: center; justify-content: center; background: #fff; border: 1px dashed var(--admin-border); border-radius: 8px; font-size: 2rem; font-weight: 900; font-family: 'VT323', monospace; color: var(--admin-text-muted); }
        .profile-logo-preview img { max-height: 80px; max-width: 200px; object-fit: contain; }
        .project-subtabs { margin-top: 0; }

        /* Final typography agreement: admin content favors Space Mono for reading. */
        body.admin-body,
        body.admin-body p,
        body.admin-body li,
        body.admin-body label,
        body.admin-body input,
        body.admin-body textarea,
        body.admin-body select,
        body.admin-body button,
        body.admin-body td,
        body.admin-body th,
        body.admin-body small,
        body.admin-body span {
            font-family: 'Space Mono', 'Space Mono', monospace;
        }

/* ===== Fuente: admin-system.css ===== */
/* ============================================================
   EL CABEZAL · SISTEMA DE APPS + ASISTENTE LOCAL
   ============================================================ */

body.admin-body {
    grid-template-columns: 304px minmax(0, 1fr);
}

.admin-sidebar {
    width: 304px;
    padding: 1rem;
    gap: .65rem;
    background:
        radial-gradient(circle at 18% 4%, rgba(68, 94, 180, .28), transparent 28%),
        linear-gradient(160deg, #17172d, #1e1e46 52%, #111127);
}

.admin-brand {
    margin-bottom: .35rem;
    padding: .65rem .7rem;
}

.admin-brand-copy {
    display: grid;
    gap: .05rem;
}

.admin-brand-copy small {
    color: rgba(255,255,255,.46);
    font-size: .56rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.admin-app-groups {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .3rem;
    padding: .3rem;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 14px;
    background: rgba(255,255,255,.035);
}

.admin-app-group {
    display: grid;
    place-items: center;
    gap: .2rem;
    min-width: 0;
    min-height: 48px;
    padding: .35rem .18rem;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: rgba(255,255,255,.48);
    cursor: pointer;
    transition: .18s ease;
}

.admin-app-group span {
    font-size: 1rem;
    line-height: 1;
}

.admin-app-group small {
    max-width: 100%;
    overflow: hidden;
    font-size: .5rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-app-group:hover,
.admin-app-group.active {
    background: rgba(255,255,255,.1);
    color: #fff;
}

.admin-app-group.active {
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.1), 0 8px 20px rgba(0,0,0,.16);
}

.admin-app-pages {
    min-height: 0;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.12) transparent;
}

.admin-app-page {
    display: none;
    animation: appPageIn .18s ease;
}

.admin-app-page.active {
    display: block;
}

.admin-app-page-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: .5rem;
    padding: .55rem .35rem .65rem;
}

.admin-app-page-head div {
    display: grid;
}

.admin-app-page-head strong {
    color: #fff;
    font-size: .72rem;
}

.admin-app-page-head small {
    color: rgba(255,255,255,.38);
    font-size: .52rem;
}

.admin-app-page-head > span {
    color: rgba(255,255,255,.25);
    font-size: .58rem;
}

.admin-app-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .48rem;
}

.admin-sidebar .admin-tab {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: .62rem !important;
    align-items: center;
    min-height: 62px;
    padding: .55rem !important;
    border: 1px solid rgba(255,255,255,.055) !important;
    border-radius: 14px !important;
    background: rgba(255,255,255,.035) !important;
    color: rgba(255,255,255,.66) !important;
    font-size: .62rem !important;
    line-height: 1.25;
    white-space: normal !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
}

.admin-sidebar .admin-tab span {
    display: grid !important;
    width: 42px !important;
    height: 42px;
    place-items: center;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 13px;
    background:
        linear-gradient(145deg, rgba(78, 111, 220, .86), rgba(45, 60, 137, .92));
    color: #fff;
    font-size: 1.12rem !important;
    box-shadow: 0 8px 18px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.24);
}

.admin-sidebar .admin-tab[data-tab="crm"] span,
.admin-sidebar .admin-tab[data-tab="subscribers"] span {
    background: linear-gradient(145deg, #22a68a, #126b68);
}

.admin-sidebar .admin-tab[data-tab="gifts"] span,
.admin-sidebar .admin-tab[data-tab="assistant"] span {
    background: linear-gradient(145deg, #bf5dd6, #6840ae);
}

.admin-sidebar .admin-tab[data-tab="magazines"] span,
.admin-sidebar .admin-tab[data-tab="news"] span {
    background: linear-gradient(145deg, #e47a5e, #a43d53);
}

.admin-sidebar .admin-tab[data-tab="brand"] span,
.admin-sidebar .admin-tab[data-tab="headers"] span,
.admin-sidebar .admin-tab[data-tab="templates"] span {
    background: linear-gradient(145deg, #e8b54d, #b56a23);
}

.admin-sidebar .admin-tab:hover {
    background: rgba(255,255,255,.075) !important;
    color: #fff !important;
    transform: translateY(-1px);
}

.admin-sidebar .admin-tab.active {
    border-color: rgba(125, 155, 255, .5) !important;
    background: rgba(74, 104, 204, .2) !important;
    color: #fff !important;
    box-shadow: 0 12px 24px rgba(0,0,0,.16), inset 0 0 0 1px rgba(255,255,255,.06) !important;
}

.admin-sidebar .admin-tab.active span {
    box-shadow: 0 10px 24px rgba(32, 62, 179, .36), inset 0 1px 0 rgba(255,255,255,.28);
}

.admin-sidebar-assistant {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .6rem;
    align-items: center;
    margin-top: auto;
    padding: .7rem;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 15px;
    background: linear-gradient(135deg, rgba(151, 71, 190, .2), rgba(67, 74, 166, .17));
    color: #fff;
    cursor: pointer;
}

.admin-sidebar-assistant > span {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 12px;
    background: linear-gradient(145deg, #bf5dd6, #6840ae);
    font-family: 'E4 Digital Final', 'VT323', monospace !important;
    font-size: 1.5rem;
    box-shadow: 0 8px 18px rgba(0,0,0,.22);
}

.admin-sidebar-assistant div {
    display: grid;
    text-align: left;
}

.admin-sidebar-assistant strong { font-size: .64rem; }
.admin-sidebar-assistant small { color: rgba(255,255,255,.48); font-size: .5rem; }

.admin-logout {
    margin-top: 0 !important;
}

.admin-context-appbar {
    position: sticky;
    z-index: 18;
    top: -.5rem;
    display: flex;
    gap: .42rem;
    align-items: center;
    margin: -.5rem 0 1.25rem;
    padding: .5rem;
    overflow-x: auto;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 16px;
    background: rgba(247,245,243,.72);
    box-shadow: 0 12px 34px rgba(30,30,70,.1);
    -webkit-backdrop-filter: blur(20px) saturate(130%);
    backdrop-filter: blur(20px) saturate(130%);
    scrollbar-width: none;
}

.admin-context-appbar::-webkit-scrollbar { display: none; }

.admin-context-appbar-label {
    padding: 0 .45rem;
    color: var(--admin-text-muted);
    font-size: .58rem;
    font-weight: 800;
    white-space: nowrap;
    text-transform: uppercase;
}

.wtm-app-menu { position: relative; flex: 0 0 auto; }
.admin-context-app.wtm-primary {
    border-color: rgba(44, 127, 162,.18);
    background: #fff;
    color: #1e1e46;
}
.admin-context-app.wtm-primary b { font-size: .7rem; }
.wtm-app-popover {
    position: absolute;
    z-index: 120;
    top: calc(100% + 8px);
    left: 0;
    display: grid;
    width: 270px;
    padding: .45rem;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(30,30,70,.18);
}
.wtm-app-popover.is-detached {
    position: fixed;
    z-index: 14000;
}
.wtm-app-popover[hidden] { display: none; }
.wtm-app-popover a {
    display: grid;
    gap: .12rem;
    padding: .7rem;
    border-radius: 10px;
    color: #1e1e46;
    text-decoration: none;
}
.wtm-app-popover a:hover { background: #f2f5ff; }
.wtm-app-popover strong { font-size: .68rem; }
.wtm-app-popover small { color: #667085; font-size: .55rem; }
.admin-fixed-shortcuts {
    display: flex;
    gap: .3rem;
    min-width: 0;
    overflow-x: auto;
}
.admin-fixed-shortcuts .admin-context-app { position: relative; padding-right: 2.1rem; }
.admin-custom-shortcut b {
    max-width: 110px;
    overflow: hidden;
    font-size: .58rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-shortcut-icon img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
.admin-fixed-shortcuts i {
    position: absolute;
    top: 3px;
    right: 4px;
    color: #98a2b3;
    font-style: normal;
    font-size: .65rem;
    cursor: pointer;
}
.admin-fixed-shortcuts i[data-edit-shortcut] { right: 16px; }
.admin-fixed-shortcuts i[data-remove-shortcut] { right: 4px; }
.admin-shortcut-modal form { display: grid; gap: 1rem; }
.shortcut-main-fields { display: grid; grid-template-columns: 1fr 1.35fr; gap: .7rem; }
.shortcut-main-fields label,
.shortcut-icon-method label { display: grid; gap: .35rem; color: #475467; font-size: .62rem; font-weight: 800; }
.shortcut-main-fields input,
.shortcut-icon-method input {
    min-height: 42px;
    padding: 0 .75rem;
    border: 1px solid #d0d5dd;
    border-radius: 10px;
    background: #fff;
    color: #1e1e46;
}
.shortcut-icon-fieldset { display: grid; gap: .7rem; padding: .85rem; border: 1px solid #e4e7ec; border-radius: 14px; }
.shortcut-icon-fieldset legend { padding: 0 .3rem; color: #1e1e46; font-size: .68rem; font-weight: 850; }
.shortcut-method-tabs { display: flex; gap: .35rem; }
.shortcut-method-tabs button,
.shortcut-icon-library button {
    min-height: 34px;
    border: 1px solid #d0d5dd;
    border-radius: 9px;
    background: #fff;
    color: #475467;
    cursor: pointer;
    font-weight: 800;
}
.shortcut-method-tabs button { padding: 0 .7rem; font-size: .56rem; }
.shortcut-method-tabs button.active,
.shortcut-icon-library button.active { border-color: #2c7fa2; background: #eef2ff; color: #2c7fa2; }
.shortcut-icon-library { display: grid; grid-template-columns: repeat(6, minmax(38px, 1fr)); gap: .4rem; }
.shortcut-icon-library button { font-size: 1rem; }
.shortcut-icon-method small { color: #667085; font-size: .54rem; }
.shortcut-icon-preview { display: flex; gap: .5rem; align-items: center; color: #667085; font-size: .58rem; }
.admin-shortcut-icon.is-preview { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: #eef2ff; color: #2c7fa2; font-size: 1.15rem; }
.shortcut-warehouse-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
    gap: .55rem;
    max-height: 300px;
    overflow: auto;
    padding: .25rem;
}
.shortcut-method-label {
    margin: .75rem 0 .35rem;
    color: #667085;
    font-size: .62rem;
    font-weight: 800;
}
.shortcut-warehouse-grid > button {
    display: grid;
    gap: .35rem;
    min-width: 0;
    padding: .4rem;
    border: 1px solid #e4e7ec;
    border-radius: 12px;
    background: #fff;
    color: #344054;
    cursor: pointer;
    text-align: left;
}
.shortcut-warehouse-grid > button.active {
    border-color: #2c7fa2;
    box-shadow: 0 0 0 3px rgba(44, 127, 162,.12);
}
.shortcut-warehouse-grid img {
    width: 100%;
    aspect-ratio: 1;
    border-radius: 9px;
    object-fit: cover;
}
.shortcut-warehouse-grid span {
    overflow: hidden;
    font-size: .58rem;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-magazine-store {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: .85rem;
    margin-top: .85rem;
}
.admin-magazine-product {
    display: grid;
    gap: .75rem;
    min-width: 0;
    padding: .65rem;
    overflow: hidden;
    border: 1px solid #e4e7ec;
    border-radius: 18px;
    background: linear-gradient(165deg, #fff, #f8faff);
    box-shadow: 0 14px 36px rgba(15,23,42,.08);
}
.admin-magazine-product.is-inactive { opacity: .62; filter: grayscale(.55); }
.admin-magazine-cover { position: relative; overflow: hidden; border-radius: 14px; background: #eef2f6; }
.admin-magazine-cover img { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.admin-magazine-cover span {
    position: absolute;
    top: .55rem;
    left: .55rem;
    padding: .3rem .5rem;
    border-radius: 999px;
    background: rgba(17,24,39,.82);
    color: #fff;
    font-size: .55rem;
    font-weight: 850;
    text-transform: uppercase;
    backdrop-filter: blur(12px);
}
.admin-magazine-copy { display: grid; gap: .35rem; min-width: 0; }
.admin-magazine-copy small { color: #2c7fa2; font-size: .6rem; font-weight: 850; text-transform: uppercase; }
.admin-magazine-copy strong { color: #101828; font-size: .88rem; line-height: 1.2; }
.admin-magazine-copy p {
    display: -webkit-box;
    min-height: 2.7em;
    margin: 0;
    overflow: hidden;
    color: #667085;
    font-size: .65rem;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.admin-magazine-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; margin-top: .25rem; }
.admin-magazine-actions button {
    min-height: 34px;
    border: 1px solid #d0d5dd;
    border-radius: 9px;
    background: #fff;
    color: #344054;
    cursor: pointer;
    font-size: .58rem;
    font-weight: 800;
}
.admin-magazine-actions button.primary { grid-column: 1 / -1; border-color: #2c7fa2; background: #2c7fa2; color: #fff; }
.admin-magazine-actions button.danger { color: #b42318; }
.admin-context-action {
    flex: 0 0 auto;
    min-height: 38px;
    padding: .4rem .65rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 10px;
    background: rgba(255,255,255,.76);
    color: #475467;
    cursor: pointer;
    font-size: .56rem;
    font-weight: 850;
}
.admin-context-action.health { color: #166534; }
.admin-context-action.health span {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-right: .3rem;
    border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 0 4px rgba(34,197,94,.12);
}
.site-health-backdrop {
    position: fixed;
    z-index: 12000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(17,24,39,.58);
    backdrop-filter: blur(10px);
}
.site-health-modal {
    display: grid;
    gap: 1rem;
    width: min(760px, 100%);
    max-height: 90vh;
    overflow: auto;
    padding: 1.2rem;
    border-radius: 22px;
    background: #f8f9fc;
    box-shadow: 0 28px 80px rgba(15,23,42,.3);
}
.site-health-modal > header,
.site-health-modal > footer { display: flex; justify-content: space-between; gap: .7rem; align-items: center; }
.site-health-modal h2,
.site-health-modal p { margin: 0; }
.site-health-modal > header button { border: 0; background: transparent; font-size: 1.5rem; cursor: pointer; }
.site-health-summary {
    display: flex;
    gap: .8rem;
    align-items: center;
    padding: 1rem;
    border-radius: 14px;
    background: #ecfdf3;
}
.site-health-summary > span { width: 14px; height: 14px; border-radius: 50%; background: #22c55e; }
.site-health-summary[data-health="warn"] { background: #fffaeb; }
.site-health-summary[data-health="warn"] > span { background: #f59e0b; }
.site-health-summary[data-health="error"] { background: #fef3f2; }
.site-health-summary[data-health="error"] > span { background: #ef4444; }
.site-health-summary div { display: grid; gap: .15rem; }
.site-health-summary small { color: #667085; font-size: .62rem; }
.site-health-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.site-health-grid article { display: flex; gap: .6rem; align-items: center; padding: .75rem; border: 1px solid #e4e7ec; border-radius: 12px; background: #fff; }
.site-health-grid article > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 9px; background: #ecfdf3; color: #15803d; font-weight: 900; }
.site-health-grid article[data-health="warn"] > span { background: #fff7ed; color: #c2410c; }
.site-health-grid article div { display: grid; gap: .1rem; }
.site-health-grid article strong { font-size: .68rem; }
.site-health-grid article small { color: #667085; font-size: .55rem; }
.site-health-guide { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.site-health-guide article { padding: .8rem; border-radius: 12px; background: #eef2ff; }
.site-health-guide strong { font-size: .68rem; }
.site-health-guide p { margin-top: .25rem; color: #667085; font-size: .58rem; line-height: 1.5; }
.automatic-order-control {
    display: grid;
    grid-template-columns: 34px minmax(0,1fr) 34px;
    gap: .35rem;
    align-items: center;
    padding: .35rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 10px;
    background: #f8faff;
}
.automatic-order-control span { color: #667085; font-size: .62rem; font-weight: 750; text-align: center; }
.automatic-order-control button {
    min-height: 32px;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 8px;
    background: #fff;
    color: #2c7fa2;
    cursor: pointer;
    font-weight: 900;
}

.admin-context-app {
    display: inline-flex;
    gap: .42rem;
    align-items: center;
    min-height: 40px;
    padding: .36rem .62rem .36rem .4rem;
    border: 1px solid transparent;
    border-radius: 11px;
    background: transparent;
    color: var(--admin-text-muted);
    cursor: pointer;
    font-size: .61rem;
    font-weight: 800;
    white-space: nowrap;
}

.admin-context-app span {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 9px;
    background: linear-gradient(145deg, #435fc4, #26387d);
    color: #fff;
    font-size: .82rem;
    box-shadow: 0 5px 12px rgba(30,30,70,.2);
}

.admin-context-app:hover,
.admin-context-app.active {
    border-color: rgba(37,99,235,.13);
    background: #fff;
    color: var(--admin-primary);
    box-shadow: 0 6px 16px rgba(30,30,70,.08);
}

@keyframes appPageIn {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Asistente flotante */
.arturo-chat-launcher {
    position: fixed;
    z-index: 9000;
    right: 1.25rem;
    bottom: max(1.25rem, env(safe-area-inset-bottom));
    display: inline-flex;
    gap: .5rem;
    align-items: center;
    min-height: 54px;
    padding: .42rem .8rem .42rem .42rem;
    border: 1px solid rgba(255,255,255,.58);
    border-radius: 18px;
    background: linear-gradient(145deg, rgba(191,93,214,.96), rgba(72,61,150,.97));
    color: #fff;
    box-shadow: 0 18px 44px rgba(46,35,118,.34), inset 0 1px 0 rgba(255,255,255,.3);
    cursor: pointer;
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
}

.arturo-chat-launcher span {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 13px;
    background: rgba(255,255,255,.13);
    font-family: 'E4 Digital Final', 'VT323', monospace !important;
    font-size: 1.6rem;
}

.arturo-chat-launcher strong { font-size: .67rem; }
.arturo-chat-launcher[hidden] { display: none !important; }
.admin-locked .arturo-chat-launcher,
.admin-locked .arturo-chat-panel { display: none !important; }

.arturo-chat-panel {
    position: fixed;
    z-index: 9001;
    right: 1.25rem;
    bottom: max(1.25rem, env(safe-area-inset-bottom));
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto auto auto;
    width: min(430px, calc(100vw - 1.5rem));
    height: min(720px, calc(100dvh - 2.5rem));
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 24px;
    background: rgba(247,245,243,.92);
    color: #1e1e46;
    box-shadow: 0 30px 90px rgba(30,30,70,.28), inset 0 1px 0 rgba(255,255,255,.8);
    -webkit-backdrop-filter: blur(28px) saturate(132%);
    backdrop-filter: blur(28px) saturate(132%);
    animation: arturoPanelIn .24s ease;
}

.arturo-chat-panel[hidden] { display: none; }

.arturo-chat-panel > header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .85rem;
    border-bottom: 1px solid rgba(30,30,70,.09);
    background: linear-gradient(135deg, rgba(30,30,70,.96), rgba(63,54,130,.94));
    color: #fff;
}

.arturo-chat-brand {
    display: flex;
    gap: .6rem;
    align-items: center;
}

.arturo-chat-brand > span {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border-radius: 13px;
    background: linear-gradient(145deg, #d77ce7, #4da3c7);
    font-family: 'E4 Digital Final', 'VT323', monospace !important;
    font-size: 1.6rem;
    box-shadow: 0 8px 20px rgba(0,0,0,.2);
}

.arturo-chat-brand div { display: grid; }
.arturo-chat-brand strong { font-size: .75rem; }
.arturo-chat-brand small { color: rgba(255,255,255,.58); font-size: .54rem; }

#arturo-chat-close {
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;
    background: rgba(255,255,255,.08);
    color: #fff;
    cursor: pointer;
    font-size: 1.3rem;
}

.arturo-context {
    padding: .48rem .85rem;
    border-bottom: 1px solid rgba(30,30,70,.07);
    background: rgba(30,30,70,.035);
    color: #6b6b83;
    font-size: .55rem;
    font-weight: 700;
}

.arturo-chat-log {
    display: grid;
    gap: .85rem;
    align-content: start;
    overflow-y: auto;
    padding: 1rem;
    overscroll-behavior: contain;
}

.arturo-message {
    display: flex;
    gap: .5rem;
    align-items: start;
    max-width: 94%;
}

.arturo-message-user {
    justify-self: end;
    flex-direction: row-reverse;
    max-width: 82%;
}

.arturo-avatar {
    display: grid;
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 9px;
    background: linear-gradient(145deg, #b75bd2, #5e43a6);
    color: #fff;
    font-family: 'E4 Digital Final', 'VT323', monospace !important;
    font-size: 1.1rem;
}

.arturo-message-content {
    min-width: 0;
    padding: .72rem .8rem;
    border: 1px solid rgba(30,30,70,.09);
    border-radius: 6px 16px 16px 16px;
    background: rgba(255,255,255,.78);
    box-shadow: 0 8px 24px rgba(30,30,70,.06);
}

.arturo-message-user .arturo-message-content {
    border: 0;
    border-radius: 16px 6px 16px 16px;
    background: #1e1e46;
    color: #fff;
}

.arturo-message-content small {
    display: block;
    margin-bottom: .18rem;
    color: #7b6a95;
    font-size: .52rem;
    font-weight: 800;
}

.arturo-message-content h3 {
    margin: 0 0 .35rem;
    color: #1e1e46;
    font-family: 'Space Mono', monospace !important;
    font-size: .72rem;
}

.arturo-message-content p {
    margin: 0;
    font-size: .66rem;
    line-height: 1.65;
}

.arturo-answer-block,
.arturo-warning {
    margin-top: .62rem;
    padding: .58rem;
    border-radius: 10px;
    background: rgba(30,30,70,.04);
    font-size: .61rem;
}

.arturo-answer-block strong,
.arturo-warning strong {
    font-size: .58rem;
}

.arturo-answer-block ol,
.arturo-warning ul {
    display: grid;
    gap: .28rem;
    margin: .35rem 0 0;
    padding-left: 1.15rem;
}

.arturo-warning {
    border: 1px solid rgba(217,119,6,.16);
    background: rgba(245,158,11,.08);
    color: #7a4a12;
}

.arturo-answer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .62rem;
}

.arturo-answer-actions button,
.arturo-related,
.arturo-feedback button {
    min-height: 30px;
    padding: .3rem .5rem;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 8px;
    background: #fff;
    color: #1e1e46;
    cursor: pointer;
    font-size: .54rem;
    font-weight: 800;
}

.arturo-message-content details {
    margin-top: .5rem;
    font-size: .56rem;
}

.arturo-message-content details summary {
    cursor: pointer;
    color: #6b6b83;
}

.arturo-related {
    display: block;
    width: 100%;
    margin-top: .3rem;
    text-align: left;
}

.arturo-feedback {
    display: flex;
    gap: .28rem;
    align-items: center;
    margin-top: .58rem;
    color: #77778d;
    font-size: .52rem;
}

.arturo-feedback button {
    min-height: 26px;
    padding: .2rem .38rem;
}

.arturo-feedback button.active {
    border-color: #7452b3;
    background: #7452b3;
    color: #fff;
}

.arturo-message.is-typing .arturo-message-content {
    display: flex;
    gap: .24rem;
    padding: .7rem .85rem;
}

.arturo-message.is-typing span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #8063a6;
    animation: arturoTyping 1s infinite ease-in-out;
}

.arturo-message.is-typing span:nth-child(2) { animation-delay: .14s; }
.arturo-message.is-typing span:nth-child(3) { animation-delay: .28s; }

.arturo-quick-prompts {
    display: flex;
    gap: .35rem;
    padding: .5rem .7rem 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.arturo-quick-prompts button {
    flex: 0 0 auto;
    min-height: 30px;
    padding: .3rem .5rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 999px;
    background: rgba(255,255,255,.72);
    color: #585870;
    cursor: pointer;
    font-size: .52rem;
    font-weight: 700;
}

.arturo-topic-shell {
    display: grid;
    gap: .55rem;
    padding: .7rem;
    border-bottom: 1px solid rgba(30,30,70,.08);
    background: linear-gradient(180deg, #f8f6ff, #fff);
}
.arturo-topic-shell > div:first-child { display: grid; gap: .1rem; }
.arturo-topic-shell > div:first-child strong { color: #1e1e46; font-size: .72rem; }
.arturo-topic-shell > div:first-child small { color: #77778d; font-size: .54rem; }
.arturo-topic-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .38rem; }
.arturo-topic-grid button {
    display: grid;
    grid-template-columns: 27px minmax(0,1fr);
    gap: .42rem;
    align-items: center;
    min-height: 46px;
    padding: .42rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 11px;
    background: #fff;
    color: #3f3f58;
    cursor: pointer;
    font-size: .54rem;
    font-weight: 800;
    text-align: left;
}
.arturo-topic-grid button span { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 8px; background: #eef2ff; color: #5b4aaa; font-size: .8rem; }
.arturo-topic-grid button.active { border-color: #8063a6; background: #f4f0ff; color: #513b7e; }
.arturo-topic-questions { display: grid; gap: .3rem; }
.arturo-topic-questions:empty { display: none; }
.arturo-topic-questions button {
    min-height: 34px;
    padding: .4rem .55rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 9px;
    background: rgba(255,255,255,.8);
    color: #585870;
    cursor: pointer;
    font-size: .54rem;
    font-weight: 750;
    text-align: left;
}
.arturo-write-fallback { margin: .45rem .7rem 0; }
.arturo-write-fallback summary { cursor: pointer; color: #68558d; font-size: .57rem; font-weight: 800; }
.arturo-write-fallback #arturo-chat-form { margin: .45rem 0 0; }
.arturo-human-support {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
    align-items: center;
    margin: .45rem .7rem;
    padding: .55rem;
    border-radius: 10px;
    background: #ecfdf3;
    color: #166534;
    font-size: .52rem;
}
.arturo-human-support a,
.arturo-support-link {
    padding: .35rem .5rem;
    border-radius: 8px;
    background: #15803d;
    color: #fff;
    font-size: .52rem;
    font-weight: 800;
    text-decoration: none;
}

#arturo-chat-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .45rem;
    margin: .55rem .7rem .3rem;
    padding: .38rem;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 15px;
    background: rgba(255,255,255,.82);
}

#arturo-chat-input {
    max-height: 110px;
    min-height: 42px;
    resize: none;
    border: 0;
    background: transparent;
    padding: .65rem;
    color: #1e1e46;
    font-size: .65rem;
    outline: 0;
}

#arturo-chat-form > button {
    align-self: end;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 12px;
    background: #1e1e46;
    color: #fff;
    cursor: pointer;
    font-size: 1rem;
}

.arturo-local-note {
    margin: 0 0 .48rem;
    color: #89899a;
    font-size: .48rem;
    text-align: center;
}

@keyframes arturoPanelIn {
    from { opacity: 0; transform: translateY(18px) scale(.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes arturoTyping {
    0%, 70%, 100% { transform: translateY(0); opacity: .42; }
    35% { transform: translateY(-4px); opacity: 1; }
}

/* Administración del conocimiento */
.assistant-metrics-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
    margin-bottom: 1rem;
}

.assistant-metrics-grid article {
    display: grid;
    gap: .14rem;
    padding: 1rem;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 16px;
    background: rgba(255,255,255,.68);
    box-shadow: 0 12px 34px rgba(30,30,70,.08);
}

.assistant-metrics-grid span,
.assistant-metrics-grid small { color: var(--admin-text-muted); font-size: .62rem; }
.assistant-metrics-grid strong { color: #1e1e46; font-size: 1.7rem; line-height: 1; }

.assistant-admin-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
    gap: 1rem;
    align-items: start;
}

.assistant-knowledge-list,
.assistant-unresolved-list {
    display: grid;
    gap: .6rem;
    margin-top: .8rem;
}

.assistant-knowledge-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: .7rem;
    align-items: center;
    padding: .75rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 12px;
    background: rgba(255,255,255,.58);
}

.assistant-knowledge-row h3,
.assistant-knowledge-row p { margin: 0; }
.assistant-knowledge-row h3 { font-size: .72rem; }
.assistant-knowledge-row p { color: var(--admin-text-muted); font-size: .59rem; line-height: 1.5; }
.assistant-knowledge-row > div:first-child > span {
    color: #7452b3;
    font-size: .5rem;
    font-weight: 800;
    text-transform: uppercase;
}

.assistant-knowledge-meta {
    display: grid;
    text-align: center;
}
.assistant-knowledge-meta strong { font-size: .8rem; }
.assistant-knowledge-meta small { color: var(--admin-text-muted); font-size: .48rem; }

.assistant-knowledge-actions {
    display: flex;
    gap: .28rem;
}

.assistant-knowledge-actions button,
.assistant-unresolved-list button {
    min-height: 32px;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 8px;
    background: #fff;
    color: #1e1e46;
    cursor: pointer;
    font-size: .52rem;
    font-weight: 800;
}

.assistant-unresolved-list article {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .6rem;
    align-items: center;
    padding: .65rem;
    border: 1px solid rgba(30,30,70,.09);
    border-radius: 10px;
    background: rgba(255,255,255,.56);
}

.assistant-unresolved-list article div { display: grid; }
.assistant-unresolved-list strong { font-size: .62rem; }
.assistant-unresolved-list small { color: var(--admin-text-muted); font-size: .5rem; }

@media (max-width: 1100px) {
    .assistant-admin-grid { grid-template-columns: 1fr; }
}

@media (max-width: 980px) {
    body.admin-body { grid-template-columns: 1fr; }
    .admin-sidebar { width: min(280px, 92vw); }
}

@media (max-width: 720px) {
    .admin-context-appbar {
        top: .25rem;
        margin-top: 3.4rem;
    }
    .arturo-chat-launcher {
        right: .75rem;
        bottom: calc(5.2rem + env(safe-area-inset-bottom));
        padding-right: .55rem;
    }
    .arturo-chat-launcher strong { display: none; }
    .arturo-chat-panel {
        inset: max(.5rem, env(safe-area-inset-top)) .5rem max(.5rem, env(safe-area-inset-bottom));
        width: auto;
        height: auto;
        border-radius: 20px;
    }
    .assistant-metrics-grid { grid-template-columns: 1fr; }
    .site-health-grid,
    .site-health-guide { grid-template-columns: 1fr; }
    .shortcut-main-fields { grid-template-columns: 1fr; }
    .shortcut-icon-library { grid-template-columns: repeat(4, minmax(38px, 1fr)); }
    .shortcut-method-tabs { display: grid; grid-template-columns: 1fr; }
    .assistant-knowledge-row { grid-template-columns: 1fr auto; }
    .assistant-knowledge-actions {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    .admin-app-page,
    .arturo-chat-panel,
    .arturo-message.is-typing span {
        animation-duration: .01ms !important;
    }
}

/* Cintillos de miniaplicaciones dentro del contenido. */
.admin-content-app-strip {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin: -.35rem 0 1rem;
    padding: .7rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(242,245,255,.9));
    box-shadow: 0 12px 30px rgba(30,30,70,.07);
}
.admin-grid-forms.admin-content-only-host,
.media-warehouse-layout.admin-content-only-host { grid-template-columns: minmax(0, 1fr) !important; }
.admin-content-only-host > .admin-card,
.admin-content-only-host > section { width: 100%; }
.admin-content-app-button {
    display: grid;
    grid-template-columns: 36px minmax(130px, 1fr);
    grid-template-rows: auto auto;
    gap: .08rem .55rem;
    min-width: min(240px, 100%);
    min-height: 58px;
    align-items: center;
    padding: .55rem .75rem;
    border: 1px solid rgba(44, 127, 162,.16);
    border-radius: 14px;
    background: #fff;
    color: #1e1e46;
    cursor: pointer;
    text-align: left;
    text-decoration: none;
    box-shadow: 0 8px 20px rgba(30,30,70,.06);
}
.admin-content-app-button > span {
    grid-row: 1 / 3;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 11px;
    background: linear-gradient(145deg, #2c7fa2, #4da3c7);
    color: #fff;
    font-size: 1.05rem;
}
.admin-content-app-button strong { align-self: end; font-size: .7rem; }
.admin-content-app-button small { align-self: start; color: #74748a; font-size: .52rem; }
.admin-content-app-button:hover { border-color: #2c7fa2; transform: translateY(-1px); }

.admin-magazine-order {
    display: grid;
    grid-template-columns: 34px auto 1fr 34px;
    gap: .4rem;
    align-items: center;
    margin-top: .5rem;
    padding-top: .55rem;
    border-top: 1px dashed rgba(30,30,70,.16);
}
.admin-magazine-order button {
    width: 34px;
    height: 34px;
    border: 1px solid rgba(30,30,70,.15);
    border-radius: 9px;
    background: #fff;
    color: #1e1e46;
    cursor: pointer;
    font-weight: 900;
}
.admin-magazine-drag-handle { color: #2c7fa2; cursor: grab; font-size: 1rem; letter-spacing: -.25rem; }
.admin-magazine-order small { color: #77778d; font-size: .52rem; }
.admin-magazine-product { transition: opacity .18s ease, transform .18s ease, border-color .18s ease; }
.admin-magazine-product.is-dragging { opacity: .42; transform: scale(.98); }
.admin-magazine-product.is-drag-target { border-color: #2c7fa2; box-shadow: 0 0 0 3px rgba(44, 127, 162,.14); }

.quote-availability-modal,
.email-mass-send-modal {
    position: fixed;
    z-index: 10040;
    inset: 0;
    display: grid;
    place-items: center;
    overflow: auto;
    padding: 1rem;
    background: rgba(10,15,32,.72);
    backdrop-filter: blur(18px);
}
.quote-availability-modal[hidden],
.email-mass-send-modal[hidden] { display: none; }
.quote-availability-dialog,
.email-mass-send-dialog {
    display: grid;
    gap: 1rem;
    width: min(920px, 100%);
    max-height: calc(100dvh - 2rem);
    overflow: auto;
    padding: 1rem;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 24px;
    background: #f8f9fc;
    box-shadow: 0 30px 90px rgba(8,15,35,.35);
}
.email-mass-send-dialog { width: min(680px, 100%); }
.quote-availability-dialog > header,
.email-mass-send-dialog > header {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
}
.quote-availability-dialog > header h2,
.quote-availability-dialog > header p,
.email-mass-send-dialog > header h2,
.email-mass-send-dialog > header p { margin: 0; }
#quote-availability-close-btn,
#email-mass-send-close {
    display: grid;
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    place-items: center;
    border: 1px solid rgba(30,30,70,.14);
    border-radius: 12px;
    background: #fff;
    color: #1e1e46;
    cursor: pointer;
    font-size: 1.35rem;
}
.quote-availability-grid { display: grid; gap: .65rem; }
.quote-availability-grid fieldset {
    margin: 0;
    padding: .7rem;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 14px;
    background: #fff;
}
.quote-availability-grid legend { padding: 0 .35rem; color: #1e1e46; font-size: .66rem; font-weight: 900; }
.quote-availability-grid fieldset > div { display: grid; grid-template-columns: repeat(12, minmax(46px, 1fr)); gap: .35rem; }
.quote-availability-grid fieldset label { display: grid; place-items: center; gap: .2rem; padding: .35rem .2rem; border-radius: 8px; background: #f2f4f8; font-size: .52rem; text-transform: uppercase; }
.quote-availability-grid input { width: 18px; height: 18px; accent-color: #d92d20; }

.email-mass-campaign-summary {
    display: grid;
    gap: .35rem;
    padding: .85rem;
    border: 1px solid rgba(44, 127, 162,.16);
    border-radius: 14px;
    background: #eef2ff;
    color: #626279;
    font-size: .62rem;
}
.email-mass-campaign-summary strong { color: #1e1e46; font-size: .72rem; }
.email-mass-campaign-summary[data-loading="true"] {
    position: relative;
    overflow: hidden;
}
.email-mass-campaign-summary[data-loading="true"]::after {
    content: '';
    position: absolute;
    inset: 0;
    transform: translateX(-105%);
    background: linear-gradient(100deg, transparent 15%, rgba(255,255,255,.72) 48%, transparent 82%);
    animation: emailMassLoadingSweep 1.15s ease-in-out infinite;
    pointer-events: none;
}
@keyframes emailMassLoadingSweep {
    to { transform: translateX(105%); }
}
@media (prefers-reduced-motion: reduce) {
    .email-mass-campaign-summary[data-loading="true"]::after { animation: none; }
}
.email-real-send-warning { margin: 0; padding: .75rem; border: 1px solid rgba(217,45,32,.18); border-radius: 12px; background: #fff1f0; color: #8f2118; font-size: .64rem; }

/* Quill: tablas configurables y columnas editoriales sin tablas. */
.quill-table-border-label {
    display: inline-flex !important;
    flex-direction: row !important;
    gap: .3rem !important;
    align-items: center !important;
    width: auto !important;
    font-size: .55rem !important;
}
.quill-table-border-label select { width: auto; min-width: 92px; min-height: 32px; padding: .25rem; }
.editor-table-wrap {
    margin: 1rem 0;
    overflow-x: auto;
    border: 2px solid transparent;
    border-radius: 10px;
}
.editor-table-wrap.is-selected { border-color: #2c7fa2; }
.editor-table-wrap table { width: 100%; border-collapse: collapse; background: #fff; }
.editor-table-wrap td { min-width: 110px; vertical-align: top; }
.editor-table-wrap[data-table-border="none"] table,
.editor-table-wrap[data-table-border="none"] td { border: 0; }
.editor-table-wrap[data-table-border="thin"] td { border: 1px solid #aeb7c7; }
.editor-table-wrap[data-table-border="thick"] td { border: 3px solid #1e1e46; }
.editorial-flow-columns {
    margin: 1rem 0;
    padding: 1rem;
    border: 1px dashed rgba(44, 127, 162,.28);
    border-radius: 12px;
    background: rgba(238,242,255,.52);
}
.editorial-flow-content {
    column-count: 2;
    column-gap: clamp(1rem, 3vw, 2rem);
    column-rule: 1px solid rgba(30,30,70,.12);
}
.editorial-flow-content > * { break-inside: avoid; }

/* El chat es opaco y cada respuesta ocupa su propia fila. */
.arturo-chat-panel {
    grid-template-rows: auto auto auto minmax(0, 1fr) auto auto auto;
    background: #f7f5f3;
    isolation: isolate;
}
.arturo-topic-shell { min-height: 0; max-height: 220px; overflow: auto; background: #f7f5f3; }
.arturo-chat-log { min-height: 0; background: #f7f5f3; }
.arturo-message { position: relative; z-index: 0; width: fit-content; }
.arturo-message-user { margin-left: auto; }
.arturo-message-content { background: #fff; opacity: 1; }

@media (max-width: 760px) {
    .admin-content-app-strip { display: grid; grid-template-columns: 1fr; }
    .admin-content-app-button { width: 100%; }
    .quote-availability-grid fieldset > div { grid-template-columns: repeat(4, minmax(46px, 1fr)); }
    .editorial-flow-content { column-count: 1; column-rule: 0; }
}

/* ============================================================
   PASADA FINAL · TEMAS, MODALES, QUILL Y CATÁLOGOS
   ============================================================ */
.admin-theme-control {
    display: grid;
    gap: .5rem;
    padding: .65rem;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 14px;
    background: rgba(255,255,255,.045);
}
.admin-theme-control > div:first-child { display: grid; gap: .05rem; }
.admin-theme-control strong { color: #fff; font-size: .56rem; letter-spacing: .08em; }
.admin-theme-control small { color: rgba(255,255,255,.46); font-size: .48rem; }
.admin-theme-options { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .3rem; }
.admin-theme-options button {
    min-width: 0;
    min-height: 30px;
    padding: .3rem .2rem;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 8px;
    background: rgba(255,255,255,.05);
    color: rgba(255,255,255,.62);
    cursor: pointer;
    font-size: .48rem;
    font-weight: 850;
}
.admin-theme-options button.active {
    border-color: rgba(133,164,255,.72);
    background: #2c7fa2;
    color: #fff;
    box-shadow: 0 5px 14px rgba(44, 127, 162,.32);
}
.admin-system-license {
    display: grid;
    gap: .28rem;
    padding: .65rem;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 13px;
    background: rgba(0,0,0,.12);
}
.admin-system-license strong { color: #fff; font-size: .5rem; line-height: 1.35; letter-spacing: .045em; }
.admin-system-license span { width: fit-content; padding: .2rem .35rem; border-radius: 99px; background: rgba(255,183,3,.14); color: #ffd166; font-size: .42rem; font-weight: 900; }
.admin-system-license small { color: rgba(255,255,255,.38); font-size: .42rem; line-height: 1.4; }

.email-studio-tabs.email-studio-tabs-top {
    display: flex;
    width: 100%;
    margin: -.4rem 0 1rem;
    padding: .38rem;
    overflow-x: auto;
    border: 1px solid rgba(30,30,70,.09);
    border-radius: 16px;
    background: rgba(255,255,255,.82);
    box-shadow: 0 12px 30px rgba(30,30,70,.07);
    scrollbar-width: none;
}
.email-studio-tabs.email-studio-tabs-top::-webkit-scrollbar { display: none; }
.email-studio-tabs.email-studio-tabs-top button {
    flex: 1 0 auto;
    min-height: 42px;
    padding-inline: clamp(.65rem, 2vw, 1.15rem);
    white-space: nowrap;
}

/* Todos los editores quedan portados a body para evitar recorte por paneles animados. */
body > .admin-editor-modal,
body > .quote-availability-modal,
body > .email-mass-send-modal,
body > .resend-template-modal {
    isolation: isolate;
    overscroll-behavior: contain;
}
body > .admin-editor-modal { z-index: 20020; }
body > .quote-availability-modal,
body > .email-mass-send-modal { z-index: 20030; }
body > .resend-template-modal { z-index: 20040; }
body.admin-body > .share-sheet-modal { z-index: 20010; }
.admin-modal-open .arturo-chat-launcher,
.admin-modal-open .arturo-chat-panel { visibility: hidden; pointer-events: none; }
.admin-editor-dialog {
    width: min(1240px, calc(100vw - 2rem));
    max-height: calc(100dvh - 2rem);
    border-radius: 22px;
}
.admin-editor-head { flex: 0 0 auto; min-width: 0; }
.admin-editor-title-app { min-width: 0; }
.admin-editor-title-app > div { min-width: 0; }
.admin-editor-title-app h2,
.admin-editor-title-app p { overflow-wrap: anywhere; }
.admin-editor-body {
    min-width: 0;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}
.admin-editor-body > form,
.admin-editor-body .quill-editor-shell,
.admin-editor-body .ql-container,
.admin-editor-body .ql-editor { min-width: 0; max-width: 100%; }

.resend-template-modal {
    align-items: start;
    overflow: auto;
}
.resend-template-form {
    width: min(1280px, calc(100vw - 2rem));
    max-height: calc(100dvh - 2rem);
    margin: auto;
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}
.resend-template-editor-head { top: 0; margin: 0; border-radius: 14px; }
.resend-visual-builder,
.resend-visual-layout,
.resend-visual-layout > div,
.resend-visual-layout .quill-editor-shell { min-width: 0; max-width: 100%; }
.resend-visual-layout { align-items: start; }
.resend-block-toolbar { position: relative; z-index: 4; }
.resend-template-head-actions { flex: 0 0 auto; }

.quill-layout-bar {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
    padding: .5rem;
    overflow: visible;
    border-inline: 1px solid rgba(30,30,70,.12);
    background: #f8faff;
}
.quill-layout-bar > span {
    flex: 0 0 auto;
    color: #667085;
    font-size: .52rem;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.quill-layout-bar > button,
.quill-layout-bar > label {
    flex: 0 0 auto;
    width: auto !important;
    min-width: auto !important;
    max-width: none !important;
    min-height: 34px;
    margin: 0 !important;
    white-space: nowrap;
}
.quill-layout-bar > button {
    padding: .35rem .58rem;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 8px;
    background: #fff;
    color: #1e1e46;
    cursor: pointer;
    font-size: .54rem;
    font-weight: 850;
}
.quill-layout-bar > button:hover,
.quill-layout-bar > button.active { border-color: #2c7fa2; background: #eef2ff; color: #244bc4; }
.editor-table-wrap td.is-image-target { outline: 3px solid rgba(44, 127, 162,.3); outline-offset: -3px; background: rgba(238,242,255,.55); }
.ql-editor img[data-quill-resizable="true"] { cursor: nwse-resize; }
.ql-editor img.is-resize-selected { outline: 2px solid #2c7fa2; outline-offset: 3px; }
.quill-image-resize-overlay {
    position: fixed;
    z-index: 20100;
    pointer-events: none;
    border: 1px dashed rgba(44, 127, 162,.8);
}
.quill-image-resize-overlay[hidden] { display: none; }
.quill-image-resize-overlay button {
    position: absolute;
    width: 15px;
    height: 15px;
    padding: 0;
    pointer-events: auto;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #2c7fa2;
    box-shadow: 0 2px 7px rgba(15,23,42,.32);
    touch-action: none;
}
.quill-image-resize-overlay [data-image-resize="nw"] { top: -8px; left: -8px; cursor: nwse-resize; }
.quill-image-resize-overlay [data-image-resize="ne"] { top: -8px; right: -8px; cursor: nesw-resize; }
.quill-image-resize-overlay [data-image-resize="sw"] { bottom: -8px; left: -8px; cursor: nesw-resize; }
.quill-image-resize-overlay [data-image-resize="se"] { right: -8px; bottom: -8px; cursor: nwse-resize; }

.site-template-preview-card {
    display: grid;
    gap: .65rem;
    padding: .75rem;
    border: 1px solid rgba(44, 127, 162,.15);
    border-radius: 14px;
    background: linear-gradient(145deg,#f8faff,#eef4ff);
}
.site-template-preview-card h3,
.site-template-preview-card p { margin: 0; }
.site-template-preview-card iframe {
    display: block;
    width: 100%;
    height: 230px;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 11px;
    background: #eef3f7;
}
#header-live-preview { height: 210px; }
#footer-live-preview { height: 270px; }

.admin-news-catalog { overflow: hidden; }
.admin-news-store {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: .85rem;
    margin-top: .85rem;
}
.admin-news-product {
    display: grid;
    grid-template-rows: auto 1fr auto;
    min-width: 0;
    overflow: hidden;
    border: 1px solid #e4e7ec;
    border-radius: 18px;
    background: linear-gradient(165deg,#fff,#f8faff);
    box-shadow: 0 14px 34px rgba(15,23,42,.08);
}
.admin-news-product.is-inactive { opacity: .64; filter: saturate(.55); }
.admin-news-cover { position: relative; overflow: hidden; background: #e9eef7; }
.admin-news-cover img,
.admin-news-cover-placeholder { display: grid; width: 100%; aspect-ratio: 16/10; place-items: center; object-fit: cover; }
.admin-news-cover-placeholder { background: linear-gradient(145deg,#1e1e46,#2c7fa2); color: #fff; font: 700 3rem 'E4 Digital Final','VT323',monospace; }
.admin-news-cover > span {
    position: absolute;
    top: .55rem;
    left: .55rem;
    padding: .3rem .48rem;
    border-radius: 999px;
    background: rgba(17,24,39,.84);
    color: #fff;
    font-size: .5rem;
    font-weight: 900;
    text-transform: uppercase;
}
.admin-news-copy { display: grid; gap: .35rem; align-content: start; padding: .8rem; }
.admin-news-copy small { color: #2c7fa2; font-size: .55rem; font-weight: 850; text-transform: uppercase; }
.admin-news-copy strong { color: #101828; font-size: .82rem; line-height: 1.25; }
.admin-news-copy em { color: #667085; font-size: .6rem; font-style: normal; font-weight: 750; }
.admin-news-copy p {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    color: #667085;
    font-size: .62rem;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}
.admin-news-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; padding: 0 .8rem .8rem; }
.admin-news-actions button {
    min-height: 35px;
    border: 1px solid #d0d5dd;
    border-radius: 9px;
    background: #fff;
    color: #344054;
    cursor: pointer;
    font-size: .55rem;
    font-weight: 850;
}
.admin-news-actions .primary { grid-column: 1/-1; border-color: #2c7fa2; background: #2c7fa2; color: #fff; }
.admin-news-actions .danger { color: #b42318; }
.admin-news-order {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: 34px auto 1fr 34px;
    gap: .4rem;
    align-items: center;
    padding-top: .55rem;
    border-top: 1px dashed rgba(30,30,70,.16);
}
.admin-news-order button { width: 34px; height: 34px; padding: 0; }
.admin-news-drag-handle { color: #2c7fa2; cursor: grab; font-size: 1rem; letter-spacing: -.25rem; }
.admin-news-order small { color: #77778d; font-size: .52rem; }
.admin-news-product { transition: opacity .18s ease, transform .18s ease, border-color .18s ease; }
.admin-news-product.is-dragging { opacity: .42; transform: scale(.98); }
.admin-news-product.is-drag-target { border-color: #2c7fa2; box-shadow: 0 0 0 3px rgba(44,127,162,.14); }

.arturo-topic-shell-head {
    display: flex !important;
    flex-direction: row !important;
    gap: .6rem !important;
    align-items: center;
    justify-content: space-between;
}
.arturo-topic-shell-head > div { display: grid; gap: .1rem; min-width: 0; }
.arturo-topic-shell-head button {
    flex: 0 0 auto;
    min-height: 30px;
    padding: .3rem .5rem;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 8px;
    background: #fff;
    color: #5e4b82;
    cursor: pointer;
    font-size: .5rem;
    font-weight: 850;
}
.arturo-topic-shell.is-collapsed {
    max-height: none;
    padding-block: .5rem;
    overflow: visible;
}
.arturo-topic-shell.is-collapsed .arturo-topic-grid,
.arturo-topic-shell.is-collapsed .arturo-topic-questions { display: none; }
.arturo-chat-log[hidden] { display: none; }

body.admin-body[data-admin-theme="dark"] {
    --admin-bg: #0b1020;
    --admin-card-bg: #151c2f;
    --admin-card-border: #29334a;
    --admin-text: #eef3ff;
    --admin-text-muted: #a8b3ca;
    --admin-border: #303a51;
    --admin-primary: #7594ff;
    --admin-primary-hover: #91a9ff;
    background: #0b1020;
    color: #eef3ff;
}
body.admin-body[data-admin-theme="blue-solar"] {
    --admin-bg: #061a2e;
    --admin-card-bg: #0c2b49;
    --admin-card-border: #1d4e70;
    --admin-text: #effbff;
    --admin-text-muted: #9fc4d9;
    --admin-border: #245675;
    --admin-primary: #ffb703;
    --admin-primary-hover: #ffc83d;
    background: radial-gradient(circle at 78% 0, rgba(0,180,216,.2), transparent 35%), #061a2e;
    color: #effbff;
}
body.admin-body[data-admin-theme="dark"] .admin-main,
body.admin-body[data-admin-theme="blue-solar"] .admin-main { background: transparent; }
body.admin-body[data-admin-theme="dark"] :is(.admin-card,.admin-content-app-strip,.admin-content-app-button,.email-studio-tabs,.email-health-bar,.email-metrics-grid article,.admin-news-product,.admin-magazine-product,.menu-parent,.site-template-preview-card),
body.admin-body[data-admin-theme="blue-solar"] :is(.admin-card,.admin-content-app-strip,.admin-content-app-button,.email-studio-tabs,.email-health-bar,.email-metrics-grid article,.admin-news-product,.admin-magazine-product,.menu-parent,.site-template-preview-card) {
    border-color: var(--admin-card-border);
    background: var(--admin-card-bg);
    color: var(--admin-text);
}
body.admin-body[data-admin-theme="dark"] :is(.admin-heading h1,.admin-card h2,.admin-card h3,.admin-content-app-button strong,.admin-news-copy strong,.admin-magazine-copy strong,.email-health-bar strong,.email-metrics-grid strong,.form-title-row strong),
body.admin-body[data-admin-theme="blue-solar"] :is(.admin-heading h1,.admin-card h2,.admin-card h3,.admin-content-app-button strong,.admin-news-copy strong,.admin-magazine-copy strong,.email-health-bar strong,.email-metrics-grid strong,.form-title-row strong) { color: var(--admin-text); }
body.admin-body[data-admin-theme="dark"] :is(.microcopy,.admin-content-app-button small,.admin-news-copy p,.admin-news-copy em,.admin-magazine-copy p,.email-health-bar p,.email-metrics-grid span,.email-metrics-grid small),
body.admin-body[data-admin-theme="blue-solar"] :is(.microcopy,.admin-content-app-button small,.admin-news-copy p,.admin-news-copy em,.admin-magazine-copy p,.email-health-bar p,.email-metrics-grid span,.email-metrics-grid small) { color: var(--admin-text-muted); }
body.admin-body[data-admin-theme="dark"] :is(input,textarea,select),
body.admin-body[data-admin-theme="blue-solar"] :is(input,textarea,select) {
    border-color: var(--admin-border);
    background: color-mix(in srgb, var(--admin-card-bg) 82%, #000);
    color: var(--admin-text);
}
body.admin-body[data-admin-theme="dark"] .admin-sidebar { background: linear-gradient(160deg,#070b16,#11182a); }
body.admin-body[data-admin-theme="blue-solar"] .admin-sidebar { background: radial-gradient(circle at 20% 0,rgba(0,180,216,.28),transparent 30%),linear-gradient(160deg,#03111f,#082a47); }
body.admin-body[data-admin-theme="dark"] :is(.admin-editor-dialog,.admin-editor-body,.admin-editor-head,.resend-template-form,.resend-template-editor-head,.quote-availability-dialog,.email-mass-send-dialog),
body.admin-body[data-admin-theme="blue-solar"] :is(.admin-editor-dialog,.admin-editor-body,.admin-editor-head,.resend-template-form,.resend-template-editor-head,.quote-availability-dialog,.email-mass-send-dialog) {
    border-color: var(--admin-card-border);
    background: var(--admin-card-bg);
    color: var(--admin-text);
}
body.admin-body[data-admin-theme="dark"] :is(.admin-editor-head h2,.resend-template-editor-head h3,.quote-availability-dialog h2,.email-mass-send-dialog h2),
body.admin-body[data-admin-theme="blue-solar"] :is(.admin-editor-head h2,.resend-template-editor-head h3,.quote-availability-dialog h2,.email-mass-send-dialog h2) { color: var(--admin-text); }
body.admin-body[data-admin-theme="blue-solar"] .admin-theme-options button.active,
body.admin-body[data-admin-theme="blue-solar"] .admin-content-app-button > span,
body.admin-body[data-admin-theme="blue-solar"] .admin-news-actions .primary { background: linear-gradient(145deg,#ffb703,#f77f00); color: #092238; border-color: #ffb703; }

@media (max-width: 780px) {
    .admin-editor-modal,
    .quote-availability-modal,
    .email-mass-send-modal,
    .resend-template-modal { padding: .45rem; }
    .admin-editor-dialog,
    .resend-template-form { width: 100%; max-height: calc(100dvh - .9rem); border-radius: 16px; }
    .admin-editor-head,
    .resend-template-editor-head { align-items: flex-start; padding: .7rem; }
    .admin-editor-title-app > .admin-editor-app-icon,
    .admin-editor-state { display: none; }
    .admin-editor-title-app p { font-size: .52rem; }
    .admin-editor-window-actions { margin-left: auto; }
    .admin-editor-close small { display: none; }
    .admin-editor-body { padding: .7rem; }
    .resend-visual-layout { grid-template-columns: 1fr; padding: .55rem; }
    .resend-template-form > .form-grid { grid-template-columns: 1fr; }
    .resend-template-head-actions .btn { min-height: 36px; padding-inline: .6rem; }
    .quill-layout-bar { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
    .site-template-preview-card iframe { min-width: 0; }
    .admin-news-store { grid-template-columns: 1fr; }
    .email-studio-tabs.email-studio-tabs-top { border-radius: 13px; }
    .menu-builder-add { grid-template-columns: 1fr; }
    .menu-child { grid-template-columns: auto minmax(0,1fr) auto; }
    .menu-child [data-menu-child-href] { grid-column: 2 / -1; }
}

@media (max-height: 650px) {
    .arturo-chat-panel { top: .4rem; bottom: .4rem; height: auto; }
    .arturo-topic-shell { max-height: 155px; }
    .arturo-human-support { padding-block: .35rem; }
    .arturo-local-note { display: none; }
}

/* ===== Fuente: ui-polish.css ===== */
/*
 * EL CABEZAL · POLISH DE PRODUCCIÓN
 * Correcciones finales de desbordamiento, densidad, controles e identidad.
 */

html,
body {
    width: 100%;
    max-width: 100%;
}

[hidden] {
    display: none !important;
}

body {
    overflow-x: clip;
}

img,
video,
canvas,
iframe {
    max-width: 100%;
}

button,
.btn,
input,
select,
textarea {
    min-width: 0;
}

button,
.btn {
    line-height: 1.25;
    text-align: center;
    overflow-wrap: anywhere;
}

p,
li,
dd,
td,
label,
.microcopy {
    overflow-wrap: anywhere;
}

.form-grid > *,
.admin-two-col > *,
.admin-grid-forms > *,
.settings-grid > *,
.cards-grid > * {
    min-width: 0;
}

/* Recuperación de sesión móvil sin afectar otros dispositivos. */
.login-card {
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.login-card[aria-busy="true"] {
    cursor: wait;
}

.login-device-help {
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 12px;
    background: rgba(30,30,70,.035);
    padding: .7rem;
    color: var(--admin-text, #1e293b);
}

.login-device-help summary {
    cursor: pointer;
    font-size: .72rem;
    font-weight: 800;
}

.login-device-help p {
    margin: .6rem 0;
    color: var(--admin-text-muted, #64748b);
    font-size: .66rem;
    line-height: 1.55;
}

.login-device-help .btn {
    width: 100%;
    margin-bottom: .55rem;
}

#login-device-diagnostic {
    display: block;
    color: var(--admin-success, #16a34a);
    font-size: .58rem;
    line-height: 1.45;
}

#login-device-diagnostic[data-tone="warning"] {
    color: var(--admin-warning, #b45309);
}

/* Identidad pública sincronizada */
.brand-mark {
    display: inline-flex;
    min-width: 0;
    max-width: min(270px, 34vw);
    gap: .55rem;
    align-items: center;
}

.brand-logo-img {
    display: block;
    width: auto;
    max-width: clamp(108px, 16vw, 210px);
    max-height: 46px;
    object-fit: contain;
}

.brand-text-label {
    min-width: 0;
    overflow: hidden;
    color: inherit;
    font: 800 clamp(.68rem, 1.1vw, .86rem)/1.15 var(--button-font);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.intro-logo-mark {
    gap: .75rem;
    text-align: center;
}

.intro-brand-text {
    display: block;
    font-size: clamp(1.4rem, 5vw, 2.7rem) !important;
}

/* El bloque azul de la guía deja de comportarse como una portada gigante. */
.cabezal-guide-book {
    width: min(100%, 560px) !important;
    min-height: 0 !important;
    margin: .8rem 0 1rem !important;
    justify-items: start !important;
}

.cabezal-guide-book .guide-book-cover {
    width: min(100%, 430px) !important;
    min-height: 92px;
    aspect-ratio: auto !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-content: center;
    align-items: center;
    gap: .5rem 1rem;
    margin: 0 !important;
    padding: .85rem 1rem !important;
    border-radius: 16px;
    text-align: left;
    box-shadow: 7px 7px 0 rgba(30,30,70,.1), 0 14px 34px rgba(30,30,70,.13);
}

.cabezal-guide-book .guide-book-cover span {
    font-size: clamp(1.2rem, 3.2vw, 1.8rem);
    line-height: .98;
}

.cabezal-guide-book .guide-book-cover small {
    max-width: 9rem;
    font-size: .62rem;
    line-height: 1.3;
    text-align: right;
}

.cabezal-guide-book .guide-book-pages {
    width: min(100%, 520px) !important;
    margin-inline: 0 !important;
}

.hero-actions,
.form-actions {
    gap: .65rem;
}

.hero-actions .btn {
    min-height: 44px;
    margin: 0;
}

.quote-table-wrap,
.table-wrap {
    max-width: 100%;
    overscroll-behavior-x: contain;
    scrollbar-gutter: stable;
}

/* Panel: menos bloque azul, más área útil y densidad consistente. */
body.admin-body {
    grid-template-columns: 272px minmax(0, 1fr);
}

.admin-sidebar {
    width: 272px;
    height: 100dvh;
    padding: .75rem;
    gap: .48rem;
    overflow-x: hidden;
}

.admin-brand {
    min-height: 48px;
    margin-bottom: .1rem;
    padding: .42rem .5rem;
}

.admin-sidebar .brand-mark {
    flex: 0 1 auto;
    max-width: 138px;
    overflow: hidden;
    font-size: 1.38rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-brand-logo {
    display: block;
    width: auto;
    max-width: 116px;
    max-height: 34px;
    object-fit: contain;
}

.admin-sidebar .brand-mark span {
    overflow: hidden;
    font-size: .56rem !important;
    text-overflow: ellipsis;
}

.admin-app-groups {
    gap: .2rem;
    padding: .22rem;
    border-radius: 12px;
}

.admin-app-group {
    min-height: 42px;
    padding: .28rem .12rem;
}

.admin-app-group small {
    font-size: .45rem;
}

.admin-app-page-head {
    padding: .42rem .25rem .5rem;
}

.admin-app-grid {
    gap: .36rem;
}

.admin-sidebar .admin-tab {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: .45rem !important;
    min-height: 51px;
    padding: .4rem !important;
    border-radius: 12px !important;
    font-size: .56rem !important;
}

.admin-sidebar .admin-tab span {
    width: 34px !important;
    height: 34px;
    border-radius: 10px;
    font-size: .92rem !important;
}

.admin-sidebar-assistant {
    gap: .48rem;
    padding: .52rem;
    border-radius: 12px;
}

.admin-sidebar-assistant > span {
    width: 34px;
    height: 34px;
    border-radius: 10px;
}

.admin-sidebar-assistant strong {
    font-size: .58rem;
}

.admin-sidebar-assistant small {
    font-size: .45rem;
}

.admin-main {
    width: 100%;
    max-width: 1600px;
    min-width: 0;
    padding: clamp(1rem, 2.2vw, 1.75rem);
    overflow-x: hidden;
}

.admin-context-appbar {
    min-width: 0;
    margin-bottom: 1rem;
    padding: .4rem;
    border-radius: 14px;
}

.admin-context-app {
    min-height: 36px;
    padding: .28rem .52rem .28rem .32rem;
}

.admin-context-app span {
    width: 25px;
    height: 25px;
}

.admin-heading {
    gap: .8rem 1rem;
    margin-bottom: 1rem;
}

.admin-heading > * {
    min-width: 0;
}

.admin-heading h1 {
    font-size: clamp(1.35rem, 2.5vw, 1.8rem);
    overflow-wrap: anywhere;
}

.admin-heading-actions,
.builder-studio-actions,
.form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.admin-body .btn {
    min-height: 40px;
    max-width: 100%;
    padding: .58rem .88rem;
    white-space: normal;
}

.admin-card {
    min-width: 0;
    padding: clamp(1rem, 1.8vw, 1.3rem);
}

.admin-card > *,
.admin-panel > *,
.admin-editor-body > *,
.form-stack > * {
    min-width: 0;
}

.admin-table th,
.admin-table td {
    max-width: 280px;
    overflow-wrap: anywhere;
}

.mini-row {
    min-width: 0;
}

.mini-row > div {
    min-width: 0;
}

.mini-row span {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.mini-row.media-mini-row {
    grid-template-columns: 52px minmax(0, 1fr) repeat(4, auto);
}

.media-list-controls {
    display: flex;
    flex: 1 1 320px;
    gap: .45rem;
    justify-content: flex-end;
}

.media-list-controls input,
.media-list-controls select {
    min-height: 40px;
    border: 1px solid var(--admin-border, rgba(30,30,70,.14));
    border-radius: 9px;
    background: rgba(255,255,255,.82);
    padding: .5rem .65rem;
    color: var(--admin-text, #1e293b);
    font: inherit;
    font-size: .72rem;
}

.media-list-controls input {
    min-width: min(210px, 100%);
}

.media-result-summary {
    margin: .6rem 0;
    padding: .55rem .7rem;
    border-radius: 9px;
    background: rgba(37,99,235,.07);
    color: var(--admin-text-muted);
    font-size: .62rem;
}

.builder-studio {
    gap: .8rem;
}

.builder-module-grid {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: .58rem;
}

.builder-module-card {
    min-height: 132px;
    gap: .55rem;
    padding: .72rem;
}

.builder-module-card button,
.builder-row-actions button {
    white-space: normal;
}

.builder-live-preview {
    min-height: 460px;
    height: min(58vh, 620px);
}

.builder-page-nav,
.builder-subtabs,
.email-studio-tabs {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
}

.builder-page-chip,
.builder-subtab,
.email-studio-tabs button {
    flex: 0 0 auto;
    white-space: normal;
}

/* Editor profesional para los tres recursos de identidad. */
.identity-settings-shell {
    grid-column: 1 / -1;
    display: grid;
    gap: 1rem;
    padding: clamp(1rem, 2vw, 1.35rem);
    border: 1px solid rgba(30,30,70,.11);
    border-radius: 16px;
    background: rgba(255,255,255,.58);
}

.identity-settings-head,
.identity-display-controls,
.identity-asset-head {
    display: flex;
    gap: .8rem 1rem;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.identity-settings-head h2,
.identity-asset-head h3,
.identity-settings-head p,
.identity-asset-head p {
    margin: 0;
}

.identity-display-controls {
    justify-content: flex-start;
    padding: .75rem;
    border-radius: 12px;
    background: rgba(30,30,70,.045);
}

.identity-display-controls > label:first-child {
    flex: 0 1 260px;
}

.identity-assets-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.identity-asset-card {
    display: grid;
    min-width: 0;
    gap: .72rem;
    align-content: start;
    padding: .85rem;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: 14px;
    background: rgba(255,255,255,.75);
}

.identity-asset-card [data-identity-source-panel] {
    display: none;
}

.identity-asset-card[data-source="upload"] [data-identity-source-panel="upload"],
.identity-asset-card[data-source="url"] [data-identity-source-panel="url"],
.identity-asset-card[data-source="library"] [data-identity-source-panel="library"] {
    display: grid;
}

.identity-preview {
    display: grid;
    flex: 0 0 auto;
    width: 64px;
    height: 64px;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(30,30,70,.12);
    border-radius: 15px;
    background:
        linear-gradient(45deg, rgba(30,30,70,.04) 25%, transparent 25%) 0 0 / 12px 12px,
        linear-gradient(45deg, transparent 75%, rgba(30,30,70,.04) 75%) 6px 6px / 12px 12px,
        #fff;
    color: var(--admin-text-muted);
    font-size: .52rem;
    text-align: center;
}

.identity-preview-logo {
    width: 92px;
}

.identity-preview img {
    width: 100%;
    height: 100%;
    padding: .35rem;
    object-fit: contain;
}

.identity-preview-app_icon img {
    border-radius: 14px;
}

.assistant-knowledge-row,
.email-campaign-row {
    min-width: 0;
}

.assistant-knowledge-row > *,
.email-campaign-row > * {
    min-width: 0;
}

/* Navegación semántica: fondo claro, jerarquía legible e iconos que sí describen cada app. */
.admin-icon-sprite {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
    pointer-events: none;
}

.admin-sidebar {
    border-right: 1px solid rgba(30,30,70,.1);
    background:
        radial-gradient(circle at 15% 0, rgba(79,105,190,.1), transparent 30%),
        rgba(250,251,254,.97);
    color: #1e293b;
    box-shadow: 12px 0 34px rgba(30,30,70,.07);
    -webkit-backdrop-filter: blur(24px) saturate(120%);
    backdrop-filter: blur(24px) saturate(120%);
}

.admin-sidebar svg,
.admin-context-appbar svg {
    width: 1.1rem;
    height: 1.1rem;
    overflow: visible;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.admin-brand {
    border: 1px solid rgba(30,30,70,.09);
    border-radius: 14px;
    background: #fff;
    color: #1e1e46;
    box-shadow: 0 8px 24px rgba(30,30,70,.07);
}

.admin-brand-copy small {
    color: #64748b;
}

.admin-app-groups {
    border-color: rgba(30,30,70,.09);
    background: #eef1f7;
}

.admin-app-group {
    color: #64748b;
}

.admin-app-group span {
    display: grid;
    place-items: center;
}

.admin-app-group span svg {
    width: 1rem;
    height: 1rem;
}

.admin-app-group small {
    font-size: .52rem;
}

.admin-app-group:hover {
    background: rgba(255,255,255,.76);
    color: #253a76;
}

.admin-app-group.active {
    background: #fff;
    color: #253a76;
    box-shadow: 0 6px 16px rgba(30,30,70,.09), inset 0 0 0 1px rgba(57,83,164,.1);
}

.admin-app-pages {
    scrollbar-color: rgba(30,30,70,.18) transparent;
}

.admin-app-page-head strong {
    color: #1e293b;
    font-size: .76rem;
}

.admin-app-page-head small,
.admin-app-page-head > span {
    color: #64748b;
}

.admin-app-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: .42rem;
}

.admin-sidebar .admin-tab {
    grid-template-columns: 38px minmax(0, 1fr);
    min-height: 54px;
    padding: .45rem .52rem !important;
    border: 1px solid rgba(30,30,70,.085) !important;
    background: rgba(255,255,255,.88) !important;
    color: #334155 !important;
    font-size: .64rem !important;
    box-shadow: 0 5px 15px rgba(30,30,70,.045) !important;
}

.admin-sidebar .admin-tab > span:first-child {
    width: 38px !important;
    height: 38px;
    border: 0;
    border-radius: 11px;
    color: #fff;
    background: linear-gradient(145deg, #506fc9, #2c438c);
    box-shadow: 0 6px 14px rgba(44,67,140,.22), inset 0 1px 0 rgba(255,255,255,.28);
}

.admin-sidebar .admin-tab > span:first-child svg {
    width: 1.14rem;
    height: 1.14rem;
}

.admin-sidebar .admin-tab span.admin-tab-copy {
    display: grid !important;
    width: auto !important;
    height: auto;
    min-width: 0;
    gap: .08rem;
    border: 0;
    border-radius: 0;
    background: transparent !important;
    color: inherit !important;
    text-align: left;
    box-shadow: none !important;
}

.admin-tab-copy strong {
    overflow: hidden;
    font-size: .7rem;
    line-height: 1.22;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-tab-copy small {
    overflow: hidden;
    color: #64748b;
    font-size: .58rem;
    font-weight: 650;
    line-height: 1.22;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-sidebar .admin-tab[data-tab="crm"] > span:first-child,
.admin-sidebar .admin-tab[data-tab="subscribers"] > span:first-child {
    background: linear-gradient(145deg, #239b83, #11645f);
}

.admin-sidebar .admin-tab[data-tab="gifts"] > span:first-child,
.admin-sidebar .admin-tab[data-tab="assistant"] > span:first-child {
    background: linear-gradient(145deg, #a95bc1, #60419e);
}

.admin-sidebar .admin-tab[data-tab="magazines"] > span:first-child,
.admin-sidebar .admin-tab[data-tab="news"] > span:first-child {
    background: linear-gradient(145deg, #db765d, #9a4051);
}

.admin-sidebar .admin-tab[data-tab="brand"] > span:first-child,
.admin-sidebar .admin-tab[data-tab="headers"] > span:first-child,
.admin-sidebar .admin-tab[data-tab="templates"] > span:first-child {
    background: linear-gradient(145deg, #d49b2f, #a25e20);
}

.admin-sidebar .admin-tab:hover {
    border-color: rgba(57,83,164,.2) !important;
    background: #fff !important;
    color: #1e1e46 !important;
}

.admin-sidebar .admin-tab.active {
    border-color: rgba(57,83,164,.34) !important;
    background: #eef2ff !important;
    color: #172554 !important;
    box-shadow: 0 8px 20px rgba(42,62,124,.1), inset 3px 0 #405ba8 !important;
}

.admin-sidebar .admin-tab.active > span:first-child {
    box-shadow: 0 8px 18px rgba(32,62,179,.27), inset 0 1px 0 rgba(255,255,255,.32);
}

.admin-sidebar-assistant {
    border-color: rgba(104,64,174,.17);
    background: linear-gradient(135deg, #faf5ff, #eef2ff);
    color: #38246d;
    box-shadow: 0 8px 22px rgba(65,49,122,.08);
}

.admin-sidebar-assistant > span {
    color: #fff;
    font-family: inherit !important;
}

.admin-sidebar-assistant > span svg {
    width: 1.08rem;
    height: 1.08rem;
}

.admin-sidebar-assistant small {
    color: #6b7280;
    font-size: .54rem;
}

.admin-sidebar-assistant strong {
    font-size: .64rem;
}

.admin-sidebar .admin-logout {
    border-color: rgba(30,30,70,.12);
    background: #fff;
    color: #334155;
}

.admin-context-app span {
    display: grid;
    place-items: center;
}

.admin-context-app span svg {
    width: .8rem;
    height: .8rem;
}

.assistant-metrics-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.assistant-glossary-shell {
    margin-bottom: 1rem;
}

.assistant-glossary-shell > .form-title-row {
    align-items: flex-start;
}

.assistant-glossary-shell .admin-heading-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
}

#assistant-glossary-search {
    width: min(260px, 100%);
    min-height: 40px;
}

.assistant-glossary-row small {
    display: block;
    margin-top: .28rem;
    color: #64748b;
    font-size: .52rem;
    line-height: 1.4;
}

/* Respaldo blanco proporcional para logos e imágenes oscuras. */
.admin-asset-backplate {
    box-sizing: border-box;
    padding: var(--asset-plate-pad, .35rem) !important;
    border: 1px solid rgba(30,30,70,.1);
    border-radius: min(14px, var(--asset-plate-radius, 10px));
    background: #fff !important;
    box-shadow: 0 5px 16px rgba(30,30,70,.06);
    object-fit: contain;
}

/* Corrección selectiva aplicada sólo cuando el contraste calculado es insuficiente. */
.admin-force-light-surface {
    border-color: rgba(30,30,70,.1) !important;
    background: #fff !important;
    color: #1e293b !important;
}

.admin-force-light-surface :is(h1,h2,h3,h4,p,span,small,label,legend,summary):not(.btn):not(button) {
    color: inherit;
}

.admin-force-dark-text {
    color: #172033 !important;
}

@media (max-width: 1180px) {
    .identity-assets-grid {
        grid-template-columns: 1fr;
    }

    .identity-asset-head {
        justify-content: flex-start;
    }

    .assistant-metrics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    body.admin-body {
        grid-template-columns: 1fr;
    }

    .admin-sidebar {
        width: min(272px, 88vw);
    }

    .builder-live-preview {
        min-height: 320px;
        height: min(50vh, 460px);
    }
}

@media (max-width: 640px) {
    .site-header .brand-mark {
        max-width: 54vw;
    }

    .brand-logo-img {
        max-width: min(150px, 48vw);
        max-height: 38px;
    }

    .brand-mode-combined .brand-text-label {
        display: none;
    }

    .cabezal-guide-book {
        width: 100% !important;
    }

    .cabezal-guide-book .guide-book-cover {
        grid-template-columns: minmax(0, 1fr);
        min-height: 82px;
    }

    .cabezal-guide-book .guide-book-cover small {
        text-align: left;
    }

    .admin-main {
        padding: .75rem;
        padding-bottom: calc(6.5rem + env(safe-area-inset-bottom));
    }

    .admin-heading-actions,
    .builder-studio-actions,
    .form-actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .admin-heading-actions .btn,
    .builder-studio-actions .btn,
    .form-actions .btn {
        width: 100%;
    }

    .mini-row,
    .mini-row.media-mini-row {
        grid-template-columns: 44px minmax(0, 1fr);
        gap: .45rem;
    }

    .mini-row:not(.media-mini-row) {
        grid-template-columns: minmax(0, 1fr);
    }

    .mini-row button,
    .mini-row.media-mini-row button {
        grid-column: auto;
        width: 100%;
    }

    .mini-row.media-mini-row button:first-of-type {
        grid-column: 1 / -1;
    }

    .media-list-controls {
        display: grid;
        grid-template-columns: 1fr;
        flex-basis: 100%;
    }

    .media-list-controls input,
    .media-list-controls select {
        width: 100%;
    }

    .builder-page-nav,
    .builder-subtabs {
        display: flex;
        flex-wrap: nowrap;
    }

    .builder-page-chip,
    .builder-subtab {
        width: auto;
        min-width: 118px;
    }

    .project-subtabs {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        overflow-x: visible;
    }

    .project-subtabs .builder-subtab {
        width: 100%;
        min-width: 0;
        padding-inline: .35rem;
    }

    .builder-live-preview {
        min-height: 260px;
        height: 44vh;
    }

    .identity-settings-head,
    .identity-display-controls {
        align-items: stretch;
    }

    .identity-settings-head .btn,
    .identity-display-controls > * {
        width: 100%;
    }

    .identity-asset-card {
        padding: .75rem;
    }

    .assistant-knowledge-actions,
    .email-campaign-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .assistant-metrics-grid {
        grid-template-columns: 1fr;
    }
}

@supports not (overflow: clip) {
    body {
        overflow-x: hidden;
    }
}

/* ===== Fuente: admin-modern.css ===== */
/*
 * SINAPSE · capa de experiencia 2026
 * Bodega ecommerce, miniaplicaciones modales y editores de contenido.
 */
:root {
    --sinapse-ink: #11182c;
    --sinapse-blue: #2c7fa2;
    --sinapse-violet: #4da3c7;
    --sinapse-cyan: #22b8cf;
    --sinapse-surface: rgba(255, 255, 255, .88);
    --sinapse-line: rgba(33, 48, 91, .12);
    --sinapse-shadow: 0 24px 70px rgba(25, 36, 77, .17);
}

[data-editing-only][hidden] {
    display: none !important;
}

body.admin-body .admin-edit-mode {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .7rem;
    align-items: center;
    margin: .7rem .65rem .9rem;
    padding: .72rem;
    border: 1px solid rgba(30, 30, 70, .24);
    border-radius: 16px;
    background: linear-gradient(145deg, #1e1e46, #2c7fa2);
    color: #fff !important;
    box-shadow: 0 12px 26px rgba(30, 30, 70, .2), inset 0 1px 0 rgba(255, 255, 255, .16);
}

body.admin-body .admin-edit-mode > div {
    display: grid;
    gap: .14rem;
    min-width: 0;
}

body.admin-body .admin-edit-mode strong {
    color: #fff !important;
    font-size: .66rem;
    letter-spacing: .08em;
}

body.admin-body .admin-edit-mode small {
    color: rgba(255, 255, 255, .78) !important;
    font-size: .48rem;
    line-height: 1.35;
}

.admin-edit-mode-switch {
    position: relative;
    display: inline-flex;
    cursor: pointer;
}

.admin-edit-mode-switch input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.admin-edit-mode-switch span {
    position: relative;
    width: 46px;
    height: 26px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    transition: background .2s ease, border-color .2s ease;
}

.admin-edit-mode-switch span::after {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 3px 10px rgba(0, 0, 0, .2);
    content: "";
    transition: transform .2s ease;
}

.admin-edit-mode-switch input:checked + span {
    border-color: rgba(34, 211, 238, .7);
    background: linear-gradient(135deg, #2c7fa2, #22b8cf);
}

.admin-edit-mode-switch input:checked + span::after {
    transform: translateX(20px);
}

.admin-edit-mode-switch input:focus-visible + span {
    outline: 3px solid rgba(34, 184, 207, .35);
    outline-offset: 3px;
}

body.admin-body.admin-edit-mode-active .admin-edit-mode {
    border-color: rgba(34, 211, 238, .72);
    background: linear-gradient(135deg, #243c9b, #13899d);
    box-shadow: 0 14px 32px rgba(36, 60, 155, .26), inset 0 1px 0 rgba(255, 255, 255, .2);
}

.page-builder-pro-launch {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr) auto;
    gap: 1.25rem;
    align-items: center;
    min-height: 260px;
    padding: clamp(1.25rem, 3vw, 2rem);
    overflow: hidden;
    border: 1px solid rgba(44, 127, 162, .15);
    background:
        radial-gradient(circle at 100% 0, rgba(34, 184, 207, .14), transparent 36%),
        linear-gradient(145deg, #fff, #f3f6ff);
}

.page-builder-pro-launch-icon {
    display: grid;
    width: 86px;
    height: 86px;
    place-items: center;
    border-radius: 26px;
    background: linear-gradient(145deg, #2c7fa2, #22b8cf);
    color: #fff;
    box-shadow: 0 18px 40px rgba(44, 127, 162, .28);
}

.page-builder-pro-launch-icon svg {
    width: 42px;
    height: 42px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.page-builder-pro-launch h2 {
    margin: .2rem 0 .55rem;
    color: #11182c;
    font-size: clamp(1.2rem, 2vw, 1.65rem);
}

.page-builder-pro-launch p:not(.eyebrow) {
    max-width: 70ch;
    margin: 0;
    color: #667085;
    font-size: .72rem;
    line-height: 1.6;
}

.page-builder-pro-launch ul {
    display: grid;
    gap: .36rem;
    margin: .9rem 0 0;
    padding-left: 1.1rem;
    color: #344054;
    font-size: .64rem;
}

.page-builder-pro-launch > .btn {
    min-width: 210px;
    min-height: 48px;
}
.page-builder-pro-launch > .admin-heading-actions {
    display: grid;
    min-width: 210px;
}
.page-builder-pro-launch > .admin-heading-actions .btn {
    justify-content: center;
    min-height: 44px;
}

.admin-app-grid .admin-app-external {
    box-sizing: border-box;
    text-decoration: none;
}

#tab-builder > .legacy-builder-interface,
#tab-builder > .builder-subtabs,
#tab-builder > .builder-subpanel {
    display: none !important;
}

.admin-edit-mode-active .admin-app-groups {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.builder-programmed-notice {
    display: grid;
    gap: .22rem;
    padding: .75rem .85rem;
    border: 1px solid rgba(245, 158, 11, .24);
    border-radius: 12px;
    background: rgba(255, 251, 235, .88);
    color: #78350f;
}

.builder-programmed-notice strong {
    font-size: .72rem;
}

.builder-programmed-notice span {
    font-size: .58rem;
    line-height: 1.45;
}

.builder-page-chip {
    display: inline-flex;
    gap: .38rem;
    align-items: center;
}

.builder-page-chip small {
    padding: .12rem .32rem;
    border-radius: 999px;
    background: rgba(34, 184, 207, .15);
    color: inherit;
    font-size: .45rem;
    text-transform: uppercase;
}

.builder-pages-manager {
    display: grid;
    grid-template-columns: minmax(280px, .8fr) minmax(320px, 1.2fr);
    gap: 1rem;
    margin-top: 1rem;
}

.builder-pages-list {
    display: grid;
    gap: .55rem;
}

.builder-pages-list article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .6rem;
    align-items: center;
    padding: .65rem;
    border: 1px solid rgba(30, 30, 70, .1);
    border-radius: 12px;
    background: #f8fafc;
}

.builder-pages-list article div {
    display: grid;
    gap: .12rem;
}

.builder-pages-list small {
    color: #667085;
    font-size: .52rem;
}

.builder-pages-list button {
    min-height: 34px;
    border: 1px solid rgba(44, 127, 162, .2);
    border-radius: 9px;
    background: #fff;
    color: #2c7fa2;
    cursor: pointer;
    font-weight: 800;
}

.live-editor-page-picker {
    display: grid;
    gap: .2rem;
    min-width: 180px;
    color: #667085;
    font-size: .55rem;
    font-weight: 800;
}

.live-editor-page-picker select {
    min-height: 40px;
    border: 1px solid rgba(30, 30, 70, .14);
    border-radius: 10px;
    background: #fff;
    padding: .45rem .65rem;
    color: #11182c;
    font: inherit;
}

.live-editor-app {
    display: grid;
    gap: .75rem;
    padding: .75rem;
    overflow: hidden;
}

.live-editor-appbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    padding: .2rem .25rem;
}

.live-editor-appbar div {
    display: grid;
    gap: .12rem;
}

.live-editor-appbar small {
    color: #667085;
    font-size: .55rem;
}

.live-editor-appbar > span {
    padding: .28rem .52rem;
    border-radius: 999px;
    background: rgba(22, 163, 74, .12);
    color: #166534;
    font-size: .52rem;
    font-weight: 900;
    letter-spacing: .08em;
}

#live-editor-frame {
    width: 100%;
    height: calc(100dvh - 230px);
    min-height: 620px;
    border: 1px solid rgba(30, 30, 70, .12);
    border-radius: 14px;
    background: #edf2f7;
}

@media (max-width: 820px) {
    .builder-pages-manager {
        grid-template-columns: 1fr;
    }

    .page-builder-pro-launch {
        grid-template-columns: 1fr;
    }

    .page-builder-pro-launch > .btn {
        width: 100%;
    }

    #live-editor-frame {
        min-height: 540px;
        height: calc(100dvh - 260px);
    }

    .admin-body:not(.admin-edit-mode-active) .admin-bottom-nav {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Botones primarios cortos y colocados junto al encabezado. */
.admin-body .admin-heading-actions .btn,
.admin-body .builder-studio-actions .btn,
.admin-body .form-title-row > .btn,
.admin-body .admin-editor-launcher {
    width: auto;
    min-height: 38px;
    padding: .52rem .82rem;
    border-radius: 10px;
}

.admin-editor-launcher {
    justify-self: start;
    margin: 0 0 .8rem;
}

/* Accesos a editores: se sienten como aplicaciones, no como botones sueltos. */
.admin-launcher-host {
    align-items: stretch;
}

.admin-app-launchpad {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(.85rem, 2vw, 1.25rem);
}

.admin-body .admin-editor-launcher {
    --launcher-accent: #2c7fa2;
    --launcher-accent-2: #4da3c7;
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr) 34px;
    gap: .9rem;
    align-items: center;
    width: 100%;
    min-height: 126px;
    margin: 0 0 .85rem;
    padding: 1rem;
    overflow: hidden;
    border: 1px solid rgba(44, 127, 162, .15);
    border-radius: 22px;
    background:
        radial-gradient(circle at 100% 0, color-mix(in srgb, var(--launcher-accent-2) 14%, transparent), transparent 43%),
        linear-gradient(145deg, rgba(255,255,255,.98), rgba(244,247,255,.94));
    color: var(--sinapse-ink);
    box-shadow: 0 14px 38px rgba(24, 38, 82, .1), inset 0 1px 0 #fff;
    cursor: pointer;
    text-align: left;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.admin-body .admin-editor-launcher::after {
    position: absolute;
    z-index: -1;
    right: -48px;
    bottom: -70px;
    width: 170px;
    height: 170px;
    border: 26px solid color-mix(in srgb, var(--launcher-accent) 7%, transparent);
    border-radius: 50%;
    content: "";
}

.admin-body .admin-editor-launcher:hover {
    transform: translateY(-4px);
    border-color: color-mix(in srgb, var(--launcher-accent) 32%, transparent);
    box-shadow: 0 24px 54px rgba(24, 38, 82, .16), inset 0 1px 0 #fff;
}

.admin-launcher-icon {
    display: grid;
    width: 68px;
    height: 68px;
    place-items: center;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 21px;
    background: linear-gradient(145deg, var(--launcher-accent), var(--launcher-accent-2));
    color: #fff;
    font-size: 1.65rem;
    font-weight: 850;
    box-shadow: 0 15px 32px color-mix(in srgb, var(--launcher-accent) 27%, transparent), inset 0 1px 0 rgba(255,255,255,.35);
}

.admin-launcher-copy {
    display: grid;
    min-width: 0;
    gap: .22rem;
}

.admin-launcher-copy small {
    color: var(--launcher-accent);
    font-size: .52rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.admin-launcher-copy strong {
    font-size: clamp(.86rem, 1.5vw, 1.08rem);
    line-height: 1.2;
}

.admin-launcher-copy > span {
    max-width: 55ch;
    color: #667085;
    font-size: .62rem;
    line-height: 1.5;
}

.admin-launcher-enter {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 1px solid rgba(44, 127, 162,.13);
    border-radius: 50%;
    background: rgba(255,255,255,.8);
    color: var(--launcher-accent);
    font-size: 1.35rem;
    transition: transform .2s ease, background .2s ease;
}

.admin-editor-launcher:hover .admin-launcher-enter {
    transform: translateX(3px);
    background: #fff;
}

.admin-editor-launcher[data-launcher-kind="media"] { --launcher-accent: #13899d; --launcher-accent-2: #2c7fa2; }
.admin-editor-launcher[data-launcher-kind="magazine"] { --launcher-accent: #db6d58; --launcher-accent-2: #9e3c69; }
.admin-editor-launcher[data-launcher-kind="news"] { --launcher-accent: #ca5676; --launcher-accent-2: #74408d; }
.admin-editor-launcher[data-launcher-kind="client"] { --launcher-accent: #12806b; --launcher-accent-2: #2e65ce; }
.admin-editor-launcher[data-launcher-kind="identity"] { --launcher-accent: #6c4bd7; --launcher-accent-2: #c04da1; }
.admin-editor-launcher[data-launcher-kind="message"] { --launcher-accent: #e45878; --launcher-accent-2: #744bd8; }
.admin-editor-launcher[data-launcher-kind="system"] { --launcher-accent: #6849d4; --launcher-accent-2: #a545bd; }

/* Fuente única para cualquier dato de marca que antes aparecía duplicado. */
.unified-source-card {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr) auto;
    gap: .8rem;
    align-items: center;
    padding: .85rem;
    border: 1px solid rgba(108, 75, 215, .16);
    border-radius: 17px;
    background:
        radial-gradient(circle at 100% 0, rgba(192,77,161,.1), transparent 38%),
        linear-gradient(145deg, #fff, #f5f3ff);
    box-shadow: 0 12px 28px rgba(73, 51, 142, .08);
}

.unified-source-card h3,
.unified-source-card p {
    margin: 0;
}

.unified-source-card h3 {
    margin: .12rem 0 .22rem;
    color: #211b45;
    font-size: .8rem;
}

.unified-source-card p:not(.eyebrow) {
    color: #706b83;
    font-size: .58rem;
    line-height: 1.5;
}

.unified-source-icon {
    display: grid;
    width: 50px;
    height: 50px;
    place-items: center;
    border-radius: 16px;
    background: linear-gradient(145deg, #6c4bd7, #c04da1);
    color: #fff;
    font-size: 1.1rem;
    box-shadow: 0 12px 25px rgba(108,75,215,.24);
}

.unified-source-card button {
    min-height: 38px;
    padding: .5rem .7rem;
    border: 1px solid rgba(108,75,215,.18);
    border-radius: 10px;
    background: #fff;
    color: #5b3fc4;
    font: 800 .58rem/1.2 'Space Mono', monospace;
    cursor: pointer;
}

.identity-single-source-badge {
    display: inline-flex;
    gap: .42rem;
    align-items: center;
    min-height: 38px;
    padding: .5rem .72rem;
    border: 1px solid rgba(22,129,111,.15);
    border-radius: 999px;
    background: rgba(22,129,111,.07);
    color: #116857;
    font-size: .56rem;
    font-weight: 800;
}

.identity-single-source-badge i,
.admin-editor-state i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #19a784;
    box-shadow: 0 0 0 4px rgba(25,167,132,.12);
}

.admin-editor-state[data-state="loading"] i {
    background: #e0a126;
    box-shadow: 0 0 0 4px rgba(224,161,38,.14);
}

.admin-editor-state[data-state="error"] i {
    background: #dc3545;
    box-shadow: 0 0 0 4px rgba(220,53,69,.13);
}

.identity-source-switch {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .38rem;
    padding: .32rem;
    border: 1px solid rgba(40,56,100,.1);
    border-radius: 14px;
    background: #eef1f8;
}

.identity-source-switch button {
    display: grid;
    min-width: 0;
    min-height: 56px;
    place-items: center;
    align-content: center;
    gap: .2rem;
    padding: .38rem .25rem;
    border: 1px solid transparent;
    border-radius: 10px;
    background: transparent;
    color: #69748b;
    cursor: pointer;
    transition: .18s ease;
}

.identity-source-switch button span {
    font-size: .85rem;
    line-height: 1;
}

.identity-source-switch button strong {
    overflow: hidden;
    max-width: 100%;
    font-size: .51rem;
    text-overflow: ellipsis;
}

.identity-source-switch button[aria-pressed="true"] {
    border-color: rgba(108,75,215,.14);
    background: #fff;
    color: #5c3ec7;
    box-shadow: 0 7px 17px rgba(52,42,104,.1);
}

/* Bodega tipo catálogo ecommerce. */
.media-warehouse-layout {
    display: grid;
    grid-template-columns: minmax(230px, 310px) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.media-warehouse-layout > #media-form {
    position: sticky;
    top: 68px;
}

.media-warehouse-card {
    overflow: hidden;
}

.media-commerce-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: .85rem;
    align-items: stretch;
}

.media-commerce-grid > .media-result-summary,
.media-commerce-grid > .admin-empty {
    grid-column: 1 / -1;
}

.media-product-card {
    position: relative;
    display: grid;
    grid-template-rows: auto 1fr auto;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--sinapse-line);
    border-radius: 16px;
    background: linear-gradient(165deg, rgba(255,255,255,.98), rgba(244,247,255,.9));
    box-shadow: 0 10px 28px rgba(23, 38, 83, .08);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.media-product-card:hover {
    transform: translateY(-3px);
    border-color: rgba(44, 127, 162, .28);
    box-shadow: 0 18px 40px rgba(23, 38, 83, .14);
}

.media-product-preview {
    position: relative;
    display: grid;
    width: 100%;
    aspect-ratio: 4 / 3;
    place-items: center;
    overflow: hidden;
    border-bottom: 1px solid var(--sinapse-line);
    background:
        linear-gradient(45deg, rgba(44, 127, 162,.035) 25%, transparent 25%, transparent 75%, rgba(44, 127, 162,.035) 75%),
        linear-gradient(45deg, rgba(44, 127, 162,.035) 25%, #f8faff 25%, #f8faff 75%, rgba(44, 127, 162,.035) 75%);
    background-position: 0 0, 8px 8px;
    background-size: 16px 16px;
}

.media-product-preview img {
    display: block;
    width: 100%;
    height: 100%;
    padding: .45rem;
    object-fit: contain;
    object-position: center;
}

.media-product-preview .media-file-thumb {
    display: grid;
    width: 70px;
    height: 88px;
    place-items: center;
    border-radius: 10px;
    background: linear-gradient(145deg, #fff, #e8edff);
    color: var(--sinapse-blue);
    font-size: .72rem;
    font-weight: 900;
    box-shadow: 0 12px 28px rgba(44, 127, 162, .18);
}

.media-product-badge {
    position: absolute;
    top: .55rem;
    right: .55rem;
    padding: .3rem .48rem;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 999px;
    background: rgba(17, 24, 44, .78);
    color: #fff;
    font-size: .52rem;
    font-weight: 850;
    letter-spacing: .05em;
    text-transform: uppercase;
    backdrop-filter: blur(12px);
}

.media-product-card.is-inactive {
    opacity: .66;
}

.media-product-card.is-inactive .media-product-badge {
    background: #9a3412;
}

.media-product-info {
    display: grid;
    gap: .28rem;
    min-width: 0;
    padding: .78rem .78rem .68rem;
}

.media-product-info strong {
    overflow: hidden;
    color: var(--sinapse-ink);
    font-size: .76rem;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.media-product-info span {
    color: #6b7280;
    font-size: .58rem;
    line-height: 1.35;
}

.media-product-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .38rem;
    padding: 0 .68rem .68rem;
}

.media-product-actions button,
.resend-template-actions button {
    min-height: 34px;
    padding: .4rem .45rem;
    border: 1px solid var(--sinapse-line);
    border-radius: 9px;
    background: #fff;
    color: #334155;
    font: 750 .58rem/1.2 'Space Mono', monospace;
    cursor: pointer;
    transition: .18s ease;
}

.media-product-actions button:hover,
.resend-template-actions button:hover {
    border-color: rgba(44, 127, 162,.34);
    background: #eef2ff;
    color: #244ac0;
}

.media-product-actions .btn-delete-row {
    color: #b42318;
}

/* Orígenes de archivos como controles de sistema: dispositivo o bodega visual. */
.device-upload-card {
    position: relative;
    display: grid !important;
    min-width: 0;
    overflow: hidden;
    font-size: 0 !important;
    cursor: pointer;
}

.device-upload-card > input[type="file"] {
    position: absolute !important;
    z-index: 2;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.device-upload-ui,
.media-library-launcher {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 28px;
    gap: .62rem;
    align-items: center;
    width: 100%;
    min-height: 68px;
    padding: .68rem;
    border: 1px solid rgba(44, 127, 162,.14);
    border-radius: 15px;
    background:
        radial-gradient(circle at 100% 0, rgba(44, 127, 162,.08), transparent 42%),
        #fff;
    color: var(--sinapse-ink);
    text-align: left;
    box-shadow: 0 9px 24px rgba(31,45,88,.07);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.device-upload-card:hover .device-upload-ui,
.media-library-launcher:hover {
    transform: translateY(-2px);
    border-color: rgba(44, 127, 162,.3);
    box-shadow: 0 14px 30px rgba(31,45,88,.12);
}

.device-upload-icon,
.media-source-app-icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 13px;
    background: linear-gradient(145deg, #2c7fa2, #4da3c7);
    color: #fff;
    box-shadow: 0 10px 22px rgba(44, 127, 162,.21);
}

.media-source-app-icon {
    background: linear-gradient(145deg, #128da0, #2c7fa2);
}

.device-upload-icon svg,
.media-source-app-icon svg,
.asset-picker-empty svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.device-upload-ui > span:nth-child(2),
.media-source-copy {
    display: grid;
    min-width: 0;
    gap: .14rem;
}

.device-upload-ui strong,
.media-source-copy strong {
    overflow: hidden;
    font: 820 .65rem/1.3 'Space Mono', monospace;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.device-upload-ui small,
.media-source-copy small {
    overflow: hidden;
    color: #718096;
    font: 600 .54rem/1.3 'Space Mono', monospace;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.device-upload-plus,
.media-source-chevron {
    display: grid;
    width: 27px;
    height: 27px;
    place-items: center;
    border: 1px solid rgba(44, 127, 162,.12);
    border-radius: 50%;
    background: #f5f7ff;
    color: #2c7fa2;
    font: 800 1rem/1 'Space Mono', monospace;
}

.device-upload-ui.has-file {
    border-color: rgba(22,129,111,.26);
    background: #f4fbf8;
}

.media-library-field {
    display: grid !important;
    font-size: 0 !important;
}

.media-picker-native {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.media-library-launcher {
    appearance: none;
    font-family: inherit;
    cursor: pointer;
}

.media-library-launcher.has-selection {
    border-color: rgba(22,129,111,.25);
    background:
        radial-gradient(circle at 100% 0, rgba(22,129,111,.09), transparent 42%),
        #fff;
}

.media-library-launcher.has-selection .media-source-app-icon {
    background: linear-gradient(145deg, #13816f, #22a68c);
}

.visual-toolbar .device-upload-card.is-compact {
    display: inline-grid !important;
    width: auto;
}

.visual-toolbar .device-upload-card.is-compact .device-upload-ui {
    grid-template-columns: 29px minmax(0, 1fr);
    min-height: 38px;
    padding: .3rem .48rem;
    border-radius: 9px;
    box-shadow: none;
}

.visual-toolbar .device-upload-card.is-compact .device-upload-icon {
    width: 29px;
    height: 29px;
    border-radius: 8px;
}

.visual-toolbar .device-upload-card.is-compact .device-upload-plus {
    display: none;
}

.visual-toolbar > .media-library-launcher {
    width: min(250px, 100%);
    min-height: 42px;
    grid-template-columns: 30px minmax(0,1fr) 24px;
    padding: .32rem .48rem;
    border-radius: 10px;
    box-shadow: none;
}

.visual-toolbar > .media-library-launcher .media-source-app-icon {
    width: 30px;
    height: 30px;
    border-radius: 9px;
}

/* Explorador de bodega reutilizable en todos los editores. */
.share-sheet-modal.asset-picker-modal {
    z-index: 10040;
    display: grid;
    place-items: center;
    padding: clamp(.45rem, 2vw, 1.2rem);
    background:
        radial-gradient(circle at 8% 5%, rgba(21,149,168,.2), transparent 30%),
        radial-gradient(circle at 92% 96%, rgba(44, 127, 162,.22), transparent 34%),
        rgba(7, 13, 28, .76);
    backdrop-filter: blur(24px) saturate(130%);
}

.asset-picker-app {
    display: grid;
    grid-template-rows: auto auto auto minmax(0, 1fr) auto;
    width: min(1080px, calc(100vw - 1rem));
    max-width: none;
    max-height: calc(100dvh - 1rem);
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.75);
    border-radius: 24px;
    background: rgba(247,250,255,.97);
    box-shadow: 0 32px 90px rgba(4,10,28,.34), inset 0 1px 0 #fff;
}

.asset-picker-head {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    padding: .9rem 1rem;
    border-bottom: 1px solid rgba(40,56,100,.1);
    background:
        radial-gradient(circle at 5% 0, rgba(21,149,168,.16), transparent 42%),
        rgba(255,255,255,.88);
}

.asset-picker-head h2,
.asset-picker-head p {
    margin: 0;
}

.asset-picker-head .share-close {
    display: grid;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid rgba(40,56,100,.12);
    border-radius: 50%;
    background: #fff;
    color: #344054;
    font-size: 1.2rem;
    cursor: pointer;
}

.asset-picker-commandbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .65rem;
    padding: .8rem 1rem .55rem;
}

.asset-picker-search {
    display: grid;
    grid-template-columns: 24px minmax(0,1fr);
    gap: .35rem;
    align-items: center;
    min-height: 44px;
    padding: 0 .72rem;
    border: 1px solid rgba(40,56,100,.12);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(31,45,88,.06);
}

.asset-picker-search input {
    width: 100%;
    min-height: 42px;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
}

.asset-picker-device {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .55rem .78rem;
    overflow: hidden;
    border-radius: 12px;
    background: linear-gradient(145deg, #2c7fa2, #4da3c7);
    color: #fff;
    font-size: .6rem;
    font-weight: 820;
    box-shadow: 0 10px 24px rgba(44, 127, 162,.22);
    cursor: pointer;
}

.asset-picker-device input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.asset-picker-meta {
    display: flex;
    gap: .6rem;
    align-items: center;
    justify-content: space-between;
    padding: .3rem 1rem .7rem;
    color: #667085;
    font-size: .55rem;
    font-weight: 700;
}

.asset-picker-meta button {
    border: 0;
    background: transparent;
    color: #2c7fa2;
    font: inherit;
    cursor: pointer;
}

.asset-picker-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: .68rem;
    min-height: 220px;
    padding: .25rem 1rem 1rem;
    overflow: auto;
    align-content: start;
}

.asset-choice-card {
    display: grid;
    min-width: 0;
    gap: .48rem;
    padding: .45rem;
    border: 1px solid rgba(40,56,100,.11);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 9px 23px rgba(31,45,88,.07);
    cursor: pointer;
    text-align: left;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.asset-choice-card:hover {
    transform: translateY(-3px);
    border-color: rgba(21,149,168,.36);
    box-shadow: 0 16px 32px rgba(31,45,88,.13);
}

.asset-choice-preview {
    position: relative;
    display: grid;
    aspect-ratio: 4 / 3;
    place-items: center;
    overflow: hidden;
    border-radius: 11px;
    background:
        linear-gradient(45deg, rgba(44, 127, 162,.035) 25%, transparent 25%, transparent 75%, rgba(44, 127, 162,.035) 75%) 0 0 / 14px 14px,
        #f7f9ff;
}

.asset-choice-preview img {
    width: 100%;
    height: 100%;
    padding: .32rem;
    object-fit: contain;
}

.asset-choice-check {
    position: absolute;
    right: .38rem;
    bottom: .38rem;
    display: grid;
    width: 25px;
    height: 25px;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: #13816f;
    font-size: .62rem;
    box-shadow: 0 5px 14px rgba(20,40,70,.18);
    opacity: 0;
    transform: scale(.7);
    transition: .18s ease;
}

.asset-choice-card:hover .asset-choice-check {
    opacity: 1;
    transform: scale(1);
}

.asset-choice-copy {
    display: grid;
    min-width: 0;
    gap: .1rem;
    padding: 0 .18rem .18rem;
}

.asset-choice-copy strong,
.asset-choice-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.asset-choice-copy strong {
    color: #1c2746;
    font-size: .61rem;
}

.asset-choice-copy small {
    color: #7b8498;
    font-size: .5rem;
}

.asset-picker-empty {
    grid-column: 1 / -1;
    display: grid;
    min-height: 220px;
    place-items: center;
    align-content: center;
    gap: .35rem;
    padding: 1rem;
    color: #667085;
    text-align: center;
}

.asset-picker-empty > span {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    border-radius: 17px;
    background: #eaf0ff;
    color: #2c7fa2;
}

.asset-picker-empty p {
    margin: 0;
    font-size: .58rem;
}

.asset-picker-app > .form-status {
    min-height: 0;
    margin: 0;
    padding: 0 1rem .65rem;
}

/* Modales convertidos en mini aplicaciones contextuales. */
.admin-editor-modal {
    padding: clamp(.5rem, 2vw, 1.25rem);
    background:
        radial-gradient(circle at 12% 8%, rgba(74, 113, 255, .18), transparent 28%),
        radial-gradient(circle at 86% 92%, rgba(118, 87, 232, .2), transparent 34%),
        rgba(8, 13, 29, .72);
    backdrop-filter: blur(24px) saturate(125%);
}

.admin-editor-dialog {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: min(1240px, calc(100vw - 1rem));
    max-height: calc(100dvh - 1rem);
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 24px;
    background: rgba(247, 249, 255, .96);
    box-shadow: var(--sinapse-shadow), inset 0 1px 0 #fff;
}

.admin-editor-head {
    position: sticky;
    z-index: 4;
    top: 0;
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    min-height: 82px;
    padding: .88rem 1rem;
    border-bottom: 1px solid rgba(40, 56, 100, .1);
    background:
        radial-gradient(circle at 6% 0, var(--modal-accent-soft, rgba(44, 127, 162,.16)), transparent 42%),
        rgba(255,255,255,.84);
}

.admin-editor-title-app {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: .72rem;
    align-items: center;
}

.admin-editor-app-icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 13px;
    background: linear-gradient(145deg, var(--modal-accent, #2c7fa2), var(--modal-accent-2, #4da3c7));
    color: #fff;
    font-size: 1.05rem;
    box-shadow: 0 10px 22px color-mix(in srgb, var(--modal-accent, #2c7fa2) 28%, transparent);
}

.admin-editor-title-app h2,
.admin-editor-title-app p {
    margin: 0;
}

.admin-editor-title-app p {
    color: #64748b;
    font-size: .6rem;
}

.admin-editor-close {
    display: grid;
    grid-template-columns: 24px auto;
    gap: .3rem;
    align-items: center;
    min-height: 36px;
    padding: .32rem .58rem .32rem .34rem;
    border: 1px solid rgba(40,56,100,.12);
    border-radius: 999px;
    background: rgba(255,255,255,.84);
    color: #46516a;
    cursor: pointer;
}

.admin-editor-close span {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 50%;
    background: #edf0f7;
    font-size: .9rem;
}

.admin-editor-close small {
    font-size: .52rem;
    font-weight: 800;
}

.admin-editor-window-actions {
    display: flex;
    flex: 0 0 auto;
    gap: .55rem;
    align-items: center;
}

.admin-editor-state {
    display: inline-flex;
    gap: .42rem;
    align-items: center;
    color: #64748b;
    font-size: .52rem;
    font-weight: 750;
}

.admin-editor-body {
    min-height: 0;
    overflow: auto;
    padding: clamp(.8rem, 2vw, 1.25rem);
    background:
        linear-gradient(rgba(44, 127, 162,.018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(44, 127, 162,.018) 1px, transparent 1px);
    background-size: 22px 22px;
}

.admin-editor-body > form {
    position: relative;
    display: grid;
    gap: .8rem;
    max-width: 1160px;
    margin: 0 auto;
    padding: clamp(.85rem, 2vw, 1.25rem) !important;
    border: 0 !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.78) !important;
    box-shadow: 0 12px 36px rgba(31, 45, 88, .08) !important;
}

.admin-editor-modal[data-app-kind="magazine"] { --modal-accent: #df765e; --modal-accent-2: #a94262; --modal-accent-soft: rgba(223,118,94,.18); }
.admin-editor-modal[data-app-kind="news"] { --modal-accent: #cc5d76; --modal-accent-2: #7d3c85; --modal-accent-soft: rgba(204,93,118,.17); }
.admin-editor-modal[data-app-kind="media"] { --modal-accent: #178fa3; --modal-accent-2: #2c7fa2; --modal-accent-soft: rgba(23,143,163,.17); }
.admin-editor-modal[data-app-kind="builder"] { --modal-accent: #2c7fa2; --modal-accent-2: #4da3c7; --modal-accent-soft: rgba(44, 127, 162,.17); }
.admin-editor-modal[data-app-kind="client"] { --modal-accent: #16816f; --modal-accent-2: #2c7fa2; --modal-accent-soft: rgba(22,129,111,.17); }
.admin-editor-modal[data-app-kind="system"] { --modal-accent: #4da3c7; --modal-accent-2: #b04fc1; --modal-accent-soft: rgba(118,87,232,.17); }
.admin-editor-modal[data-app-kind="identity"] { --modal-accent: #6c4bd7; --modal-accent-2: #c04da1; --modal-accent-soft: rgba(108,75,215,.17); }
.admin-editor-modal[data-app-kind="message"] { --modal-accent: #e45878; --modal-accent-2: #744bd8; --modal-accent-soft: rgba(228,88,120,.17); }

.admin-editor-modal:not([hidden]) .admin-editor-dialog,
.share-sheet-modal.asset-picker-modal .asset-picker-app {
    animation: sinapseAppEnter .28s cubic-bezier(.2,.8,.2,1) both;
}

@keyframes sinapseAppEnter {
    from { opacity: 0; transform: translateY(15px) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

/* Los demás modales heredados reciben la misma superficie de sistema. */
.share-sheet-modal:not(.asset-picker-modal),
.admin-tour-modal {
    background:
        radial-gradient(circle at 10% 5%, rgba(44, 127, 162,.18), transparent 30%),
        radial-gradient(circle at 90% 95%, rgba(118,87,232,.2), transparent 34%),
        rgba(8,13,29,.74) !important;
    backdrop-filter: blur(24px) saturate(125%) !important;
}

.share-sheet-modal:not(.asset-picker-modal) > .share-sheet,
.admin-tour-modal > .admin-tour-card {
    border: 1px solid rgba(255,255,255,.72) !important;
    border-radius: 24px !important;
    background:
        linear-gradient(rgba(44, 127, 162,.015) 1px, transparent 1px),
        linear-gradient(90deg, rgba(44, 127, 162,.015) 1px, transparent 1px),
        rgba(249,250,255,.98) !important;
    background-size: 22px 22px !important;
    box-shadow: var(--sinapse-shadow), inset 0 1px 0 #fff !important;
}

/* Quill limpio: una sola superficie editorial, no dos editores superpuestos. */
.quill-editor-shell {
    overflow: hidden;
    border: 1px solid rgba(40, 56, 100, .13);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(31, 45, 88, .08);
}

.quill-editor-shell > .quill-toolbar-pro,
.quill-editor-shell > .ql-toolbar.ql-snow {
    margin: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(40, 56, 100, .1) !important;
    border-radius: 0 !important;
    background: linear-gradient(180deg, #fbfcff, #f1f4fb);
    box-shadow: none;
}

.quill-editor-shell > .visual-toolbar {
    margin: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(40, 56, 100, .1) !important;
    border-radius: 0 !important;
    background: #f8faff;
}

.quill-editor-shell > .ql-container.ql-snow {
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
}

.quill-layout-bar {
    display: flex;
    gap: .35rem;
    align-items: center;
    padding: .45rem .6rem;
    border-bottom: 1px solid rgba(40,56,100,.1);
    background: #fff;
}

.quill-layout-bar span {
    margin-right: .2rem;
    color: #64748b;
    font-size: .55rem;
    font-weight: 800;
    text-transform: uppercase;
}

.quill-layout-bar button {
    min-height: 32px;
    padding: .35rem .52rem;
    border: 1px solid var(--sinapse-line);
    border-radius: 8px;
    background: #f8faff;
    color: #334155;
    font-size: .58rem;
    font-weight: 800;
    cursor: pointer;
}

.ql-editor .editor-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 3vw, 2.2rem);
    margin: 1.25rem 0;
    padding: clamp(.8rem, 2vw, 1.2rem);
    border: 1px dashed rgba(44, 127, 162,.25);
    border-radius: 14px;
    background: rgba(44, 127, 162,.025);
}

.ql-editor .editor-columns > div {
    min-width: 0;
}

.ql-editor .editor-column {
    min-height: 96px;
    padding: .55rem;
    border-radius: 10px;
    outline: none;
}

.ql-editor .editor-column:focus {
    background: #fff;
    box-shadow: 0 0 0 3px rgba(44, 127, 162,.12);
}

.magazine-rich-field {
    display: grid;
    gap: .55rem;
}

.magazine-rich-field strong,
.magazine-rich-field p {
    margin: 0;
}

.magazine-rich-editor .ql-editor {
    min-height: 300px;
}

/* Plantillas Resend. */
.resend-template-app,
.resend-template-form {
    display: grid;
    gap: .9rem;
}

.resend-template-form {
    padding: 1rem;
    border: 1px solid var(--sinapse-line);
    border-radius: 16px;
    background: #f8faff;
}

.resend-templates-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: .7rem;
}

.resend-template-card {
    display: grid;
    gap: .55rem;
    padding: .85rem;
    border: 1px solid var(--sinapse-line);
    border-radius: 14px;
    background: #fff;
}

.resend-template-card h3,
.resend-template-card p { margin: 0; }
.resend-template-card p { color: #64748b; font-size: .62rem; }
.resend-template-actions { display: flex; gap: .35rem; flex-wrap: wrap; }

@media (max-width: 980px) {
    .admin-app-launchpad {
        grid-template-columns: 1fr;
    }
    .media-warehouse-layout {
        grid-template-columns: 1fr;
    }
    .media-warehouse-layout > #media-form {
        position: static;
    }
}

@media (max-width: 640px) {
    .admin-body .admin-heading-actions,
    .admin-body .builder-studio-actions,
    .admin-body .form-actions {
        display: flex;
        width: auto;
    }
    .admin-body .admin-heading-actions .btn,
    .admin-body .builder-studio-actions .btn,
    .admin-body .form-actions .btn {
        width: auto;
        flex: 0 1 auto;
    }
    .media-commerce-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .55rem;
    }
    .media-product-actions {
        grid-template-columns: 1fr;
    }
    .admin-body .admin-editor-launcher {
        grid-template-columns: 52px minmax(0, 1fr) 28px;
        min-height: 108px;
        padding: .78rem;
        border-radius: 18px;
    }
    .admin-launcher-icon {
        width: 52px;
        height: 52px;
        border-radius: 16px;
        font-size: 1.2rem;
    }
    .admin-launcher-copy > span {
        display: none;
    }
    .unified-source-card {
        grid-template-columns: 42px minmax(0,1fr);
    }
    .unified-source-icon {
        width: 42px;
        height: 42px;
        border-radius: 13px;
    }
    .unified-source-card button {
        grid-column: 1 / -1;
        width: 100%;
    }
    .asset-picker-commandbar {
        grid-template-columns: 1fr;
    }
    .asset-picker-device {
        width: 100%;
    }
    .asset-picker-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .5rem;
        padding-inline: .65rem;
    }
    .admin-editor-dialog {
        width: calc(100vw - .5rem);
        max-height: calc(100dvh - .5rem);
        border-radius: 18px;
    }
    .admin-editor-head { min-height: 72px; padding: .65rem; }
    .admin-editor-title-app { grid-template-columns: 36px minmax(0,1fr); }
    .admin-editor-app-icon { width: 36px; height: 36px; border-radius: 11px; }
    .admin-editor-state,
    .admin-editor-close small {
        display: none;
    }
    .admin-editor-close {
        grid-template-columns: 26px;
        padding: .25rem;
    }
    .ql-editor .editor-columns { grid-template-columns: 1fr; }
}

/* ===== Fuente: admin-final.css ===== */
/*
 * Authoritative administrator layout layer.
 * Geometry only: the selected admin theme remains in charge of colors.
 */

:root {
    --admin-final-gutter: clamp(1rem, 2.25vw, 2rem);
    --admin-final-touch: 44px;
}

html {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

body.admin-body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    grid-template-columns: minmax(280px, 304px) minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
    grid-template-areas:
        "sidebar topbar"
        "sidebar main";
    overflow-x: clip;
}

[hidden] {
    display: none !important;
}

.admin-icon-sprite {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

body.admin-body :is(img, svg, video, canvas, iframe, embed, object) {
    max-width: 100%;
}

body.admin-body :is(img, video, canvas) {
    height: auto;
}

body.admin-body :is(h1, h2, h3, h4, h5, h6, p, li, dd, dt, label, a, button, th, td, small, strong, span) {
    overflow-wrap: anywhere;
}

body.admin-body :is(h1, h2, h3, h4, h5, h6) {
    max-width: 100%;
    text-wrap: balance;
}

body.admin-body :is(button, .btn, input[type="button"], input[type="submit"]) {
    min-height: var(--admin-final-touch);
    max-width: 100%;
    line-height: 1.2;
    white-space: normal;
    text-align: center;
    touch-action: manipulation;
}

body.admin-body :is(input, select, textarea) {
    min-width: 0;
    max-width: 100%;
}

body.admin-body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid color-mix(in srgb, var(--admin-primary, #2c7fa2) 35%, transparent);
    outline-offset: 2px;
}

.admin-sidebar {
    grid-area: sidebar;
    width: 100%;
    min-width: 0;
    max-width: 304px;
}

.admin-main {
    grid-area: main;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: var(--admin-final-gutter);
    overflow-x: hidden;
}

.admin-global-topbar {
    grid-area: topbar;
    position: sticky;
    top: 0;
    z-index: 100;
    display: flex;
    min-width: 0;
    min-height: 64px;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem var(--admin-final-gutter);
    border-bottom: 1px solid var(--admin-border);
    background: color-mix(in srgb, var(--admin-card-bg) 92%, transparent);
    color: var(--admin-text);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .08);
    backdrop-filter: blur(18px) saturate(135%);
}

.admin-topbar-identity,
.admin-topbar-actions {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: .75rem;
}

.admin-topbar-identity > div {
    display: grid;
    min-width: 0;
}

.admin-topbar-identity strong {
    color: var(--admin-text);
    font-size: .72rem;
    letter-spacing: .08em;
}

.admin-topbar-identity small {
    color: var(--admin-text-muted);
    font-size: .58rem;
}

.admin-mobile-home {
    display: none;
}

.admin-site-exit,
.login-back-link {
    display: inline-flex;
    min-height: var(--admin-final-touch);
    align-items: center;
    justify-content: center;
    gap: .4rem;
    padding: .55rem .8rem;
    border: 1px solid var(--admin-border);
    border-radius: 11px;
    background: var(--admin-card-bg);
    color: var(--admin-text);
    font-size: .68rem;
    font-weight: 800;
    text-decoration: none;
}

.login-back-link {
    width: fit-content;
    color: #1e293b;
}

.admin-theme-control {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: .45rem;
    padding: .3rem;
    border: 1px solid var(--admin-border);
    border-radius: 13px;
    background: var(--admin-surface-soft, #f8fafc);
}

.admin-theme-label {
    padding-left: .35rem;
    color: var(--admin-text-muted);
    font-size: .56rem;
    font-weight: 800;
    text-transform: uppercase;
}

.admin-theme-options {
    display: flex;
    min-width: 0;
    gap: .25rem;
}

.admin-theme-options button {
    display: inline-flex;
    min-width: 0;
    min-height: 36px !important;
    align-items: center;
    gap: .3rem;
    padding: .38rem .58rem;
    border: 1px solid transparent;
    border-radius: 9px;
    background: transparent;
    color: var(--admin-text-muted);
    font-size: .58rem;
    font-weight: 800;
}

.admin-theme-options button:hover {
    border-color: var(--admin-border);
    background: var(--admin-card-bg);
    color: var(--admin-text);
}

.admin-theme-options button.active {
    border-color: var(--admin-primary);
    background: var(--admin-primary);
    color: var(--admin-on-primary, #fff);
    box-shadow: 0 6px 16px color-mix(in srgb, var(--admin-primary) 25%, transparent);
}

.admin-mobile-launcher {
    display: none;
}

.admin-panel,
.admin-heading,
.admin-heading-actions,
.admin-context-appbar,
.admin-content-app-strip,
.admin-card,
.admin-two-col,
.admin-grid-forms,
.settings-grid,
.form-stack,
.form-grid,
.stat-grid,
.table-wrap,
.quote-table-wrap,
.builder-studio-shell,
.builder-support-grid,
.builder-group-grid,
.media-warehouse-layout,
.visual-editor-shell,
.visual-toolbar,
.email-studio-shell,
.email-compose-column,
.email-preview-column,
.email-contacts-layout,
.email-composer-actions,
.email-studio-tabs,
.email-metrics-grid,
.resend-templates-grid,
.arturo-chat-panel,
.admin-editor-dialog,
.admin-editor-body {
    min-width: 0;
    max-width: 100%;
}

.admin-panel:not(.active) {
    display: none;
}

.admin-panel.active {
    width: 100%;
}

.admin-heading {
    width: 100%;
}

.admin-heading > *,
.admin-heading-actions > *,
.admin-card > *,
.form-stack > *,
.settings-grid > *,
.form-grid > * {
    min-width: 0;
}

.admin-card,
.login-card,
.builder-group,
.text-row,
.mini-row,
.media-product-card,
.resend-template-card,
.email-campaign-card {
    width: 100%;
    max-width: 100%;
}

.admin-two-col,
.admin-grid-forms,
.settings-grid,
.form-grid,
.builder-support-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.stat-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
}

.form-stack label,
.settings-grid label,
.form-grid label {
    min-width: 0;
}

.form-stack :is(input, select, textarea),
.settings-grid :is(input, select, textarea),
.form-grid :is(input, select, textarea) {
    width: 100%;
}

body.admin-body input[type="checkbox"],
body.admin-body input[type="radio"],
body.admin-body input[type="color"] {
    width: auto;
    flex: 0 0 auto;
}

body.admin-body textarea {
    resize: vertical;
}

.check-row,
.inline-flex,
.form-actions,
.admin-heading-actions,
.builder-studio-actions,
.email-composer-actions,
.resend-template-actions {
    min-width: 0;
    flex-wrap: wrap;
}

.table-wrap,
.quote-table-wrap,
.email-csv-preview,
.content-table-wrap,
.editor-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
}

.admin-table,
.quote-table {
    width: max(100%, 760px);
    margin: 0;
}

.admin-table :is(th, td),
.quote-table :is(th, td) {
    max-width: 32rem;
    vertical-align: top;
}

body.admin-body :is(pre, code) {
    max-width: 100%;
    overflow-x: auto;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.visual-toolbar,
.quill-toolbar-pro,
.ql-toolbar,
.note-toolbar,
.email-token-bar,
.email-template-picker {
    display: flex;
    width: 100%;
    max-width: 100%;
    flex-wrap: wrap;
    align-items: center;
}

.visual-toolbar > *,
.quill-toolbar-pro > *,
.ql-toolbar > *,
.note-toolbar > *,
.email-token-bar > *,
.email-template-picker > * {
    min-width: 0;
}

.ql-container,
.ql-editor,
.visual-editor-area,
.news-rich-editor,
.magazine-rich-editor,
.email-rich-editor {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.ql-editor {
    overflow-wrap: anywhere;
}

.ql-editor :is(img, video, iframe, table) {
    max-width: 100%;
}

.ql-editor .editor-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.media-warehouse-layout,
.email-studio-shell,
.email-contacts-layout {
    align-items: start;
}

.media-commerce-grid,
.asset-picker-grid,
.resend-templates-grid,
.email-metrics-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
}

.media-product-card img,
.asset-picker-card img,
.profile-logo-preview img,
.brand-kit-preview img {
    object-fit: contain;
}

.email-preview-frame-wrap,
.email-preview-frame {
    width: 100%;
    max-width: 100%;
}

.email-preview-frame {
    display: block;
    border: 0;
}

.login-overlay,
.admin-editor-modal,
.email-mass-send-modal {
    width: 100%;
    max-width: 100%;
    padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
    overflow: auto;
    overscroll-behavior: contain;
}

.login-card,
.admin-editor-dialog,
.email-mass-send-dialog {
    width: min(100%, 1120px);
    max-width: calc(100vw - 2rem);
    max-height: calc(100dvh - 2rem);
    overflow: auto;
    overscroll-behavior: contain;
}

.login-card {
    width: min(420px, 100%);
}

.admin-editor-head,
.admin-editor-title-app,
.admin-editor-actions {
    min-width: 0;
}

.admin-editor-body {
    overflow-x: hidden;
    overflow-y: auto;
}

.arturo-chat-panel {
    max-width: calc(100vw - 1rem);
    max-height: calc(100dvh - 1rem);
}

/* Complete theme contract: every operational surface consumes these tokens. */
body.admin-body,
body.admin-body[data-admin-theme="light"] {
    --admin-bg: #f0f2f5;
    --admin-card-bg: #ffffff;
    --admin-surface-soft: #f8fafc;
    --admin-surface-raised: #ffffff;
    --admin-card-border: #dfe5ee;
    --admin-border: #dfe5ee;
    --admin-text: #172033;
    --admin-text-muted: #5f6c80;
    --admin-text-light: #7b8799;
    --admin-primary: #2c7fa2;
    --admin-primary-hover: #2349c8;
    --admin-on-primary: #ffffff;
    --admin-input-bg: #ffffff;
    --admin-sidebar-text: #172033;
    color-scheme: light;
}

body.admin-body[data-admin-theme="dark"] {
    --admin-bg: #090e1b;
    --admin-card-bg: #151d2e;
    --admin-surface-soft: #101827;
    --admin-surface-raised: #1b2538;
    --admin-card-border: #344158;
    --admin-border: #344158;
    --admin-text: #f2f6ff;
    --admin-text-muted: #b4bfd2;
    --admin-text-light: #96a3b8;
    --admin-primary: #86a0ff;
    --admin-primary-hover: #a2b5ff;
    --admin-on-primary: #091126;
    --admin-input-bg: #0d1524;
    --admin-sidebar-text: #ffffff;
    color-scheme: dark;
}

body.admin-body[data-admin-theme="blue-solar"] {
    --admin-bg: #041626;
    --admin-card-bg: #0b2a46;
    --admin-surface-soft: #082139;
    --admin-surface-raised: #103755;
    --admin-card-border: #286083;
    --admin-border: #286083;
    --admin-text: #f2fbff;
    --admin-text-muted: #b3d2e3;
    --admin-text-light: #97bfd4;
    --admin-primary: #ffbd2e;
    --admin-primary-hover: #ffd166;
    --admin-on-primary: #10243a;
    --admin-input-bg: #061d31;
    --admin-sidebar-text: #ffffff;
    color-scheme: dark;
}

body.admin-body {
    background: var(--admin-bg);
    color: var(--admin-text);
}

body.admin-body[data-admin-theme="blue-solar"] {
    background: radial-gradient(circle at 82% 0, rgba(0, 180, 216, .2), transparent 34rem), var(--admin-bg);
}

body.admin-body .admin-main {
    background: transparent;
    color: var(--admin-text);
}

body.admin-body .login-overlay {
    background: color-mix(in srgb, var(--admin-bg) 88%, #11182c);
}

body.admin-body .login-card {
    border: 1px solid var(--admin-card-border);
    background: var(--admin-card-bg);
    color: var(--admin-text);
}

body.admin-body .login-card :is(h1, h2, h3, label, summary, strong) {
    color: var(--admin-text);
}

body.admin-body .login-card :is(p, small) {
    color: var(--admin-text-muted);
}

body.admin-body .login-back-link {
    border-color: var(--admin-border);
    background: var(--admin-surface-soft);
    color: var(--admin-text);
}

body.admin-body :is(
    .admin-card,
    .table-wrap,
    .builder-group,
    .text-row,
    .mini-row,
    .profile-logo-editor,
    .visual-toolbar,
    .visual-editor-area,
    .visual-preview,
    .builder-subtabs,
    .admin-context-appbar,
    .admin-content-app-strip,
    .admin-content-app-button,
    .email-studio-tabs,
    .email-health-bar,
    .email-metrics-grid article,
    .email-preview-card,
    .email-csv-guide,
    .email-csv-import,
    .resend-template-card,
    .resend-template-form,
    .admin-news-product,
    .admin-magazine-product,
    .menu-parent,
    .site-template-preview-card,
    .assistant-knowledge-row,
    .assistant-unresolved-list article,
    .builder-module-card,
    .identity-asset-card,
    .media-product-card,
    .unified-source-card
) {
    border-color: var(--admin-card-border);
    background: var(--admin-card-bg);
    color: var(--admin-text);
}

body.admin-body .admin-main :is(h1, h2, h3, h4, h5, h6, label, legend, summary, dt, strong) {
    color: var(--admin-text);
}

body.admin-body .admin-main :is(p, li, dd, small, .microcopy, .admin-context-appbar-label) {
    color: var(--admin-text-muted);
}

body.admin-body .admin-main a:not(.btn):not(.admin-content-app-button) {
    color: var(--admin-primary);
}

body.admin-body .admin-sidebar :is(.admin-app-page-head strong, .admin-sidebar-assistant, .admin-sidebar-assistant strong) {
    color: #ffffff !important;
}

body.admin-body .admin-sidebar {
    background-color: #11182c;
    color: #ffffff;
}

body.admin-body .admin-brand :is(.brand-mark, .admin-brand-copy, .admin-brand-copy strong) {
    color: #ffffff !important;
}

body.admin-body .admin-sidebar :is(.admin-app-page-head small, .admin-sidebar-assistant small) {
    color: rgba(255, 255, 255, .68) !important;
}

body.admin-body :is(input, textarea, select) {
    border-color: var(--admin-border);
    background: var(--admin-input-bg);
    color: var(--admin-text);
}

body.admin-body :is(input, textarea)::placeholder {
    color: var(--admin-text-light);
    opacity: 1;
}

body.admin-body select option {
    background: var(--admin-input-bg);
    color: var(--admin-text);
}

body.admin-body .btn-primary {
    border-color: var(--admin-primary);
    background: var(--admin-primary);
    color: var(--admin-on-primary);
}

body.admin-body .btn-primary:hover {
    border-color: var(--admin-primary-hover);
    background: var(--admin-primary-hover);
    color: var(--admin-on-primary);
}

body.admin-body :is(.btn-secondary, .mini-row button, .style-presets button, .builder-subtab, .note-toolbar button) {
    border-color: var(--admin-border);
    background: var(--admin-surface-soft);
    color: var(--admin-text);
}

body.admin-body :is(.admin-context-action, #session-state) {
    border-color: var(--admin-border);
    background: var(--admin-surface-soft);
    color: var(--admin-text-muted);
}

body.admin-body .admin-context-action.health {
    color: color-mix(in srgb, var(--admin-primary) 72%, var(--admin-text));
}

body.admin-body .admin-editor-launcher {
    border-color: color-mix(in srgb, var(--launcher-accent, var(--admin-primary)) 28%, var(--admin-border));
    background: radial-gradient(circle at 100% 0, color-mix(in srgb, var(--launcher-accent-2, var(--admin-primary)) 14%, transparent), transparent 43%), var(--admin-card-bg);
    color: var(--admin-text);
    box-shadow: 0 14px 38px rgba(8, 15, 32, .14), inset 0 1px 0 color-mix(in srgb, var(--admin-text) 8%, transparent);
}

body.admin-body .admin-editor-launcher:hover {
    background: radial-gradient(circle at 100% 0, color-mix(in srgb, var(--launcher-accent-2, var(--admin-primary)) 20%, transparent), transparent 43%), var(--admin-surface-raised);
    box-shadow: 0 22px 48px rgba(8, 15, 32, .2), inset 0 1px 0 color-mix(in srgb, var(--admin-text) 10%, transparent);
}

body.admin-body .admin-launcher-copy strong {
    color: var(--admin-text);
}

body.admin-body .admin-launcher-copy > span {
    color: var(--admin-text-muted);
}

body.admin-body .admin-launcher-enter {
    border-color: var(--admin-border);
    background: var(--admin-surface-raised);
}

body.admin-body :is(.btn-secondary, .mini-row button, .style-presets button, .builder-subtab, .note-toolbar button):hover {
    border-color: var(--admin-primary);
    background: var(--admin-surface-raised);
    color: var(--admin-primary);
}

body.admin-body .builder-subtab.active {
    border-color: var(--admin-primary);
    background: var(--admin-surface-raised);
    color: var(--admin-primary);
}

body.admin-body :is(.admin-table th, .quote-table th) {
    border-color: var(--admin-border);
    background: var(--admin-surface-soft);
    color: var(--admin-text-muted);
}

body.admin-body :is(.admin-table td, .quote-table td) {
    border-color: var(--admin-border);
    background: var(--admin-card-bg);
    color: var(--admin-text);
}

body.admin-body .admin-table tr:hover td {
    background: var(--admin-surface-raised);
}

body.admin-body :is(.ql-toolbar, .ql-container, .ql-editor, .admin-editor-dialog, .admin-editor-body, .admin-editor-head, .email-mass-send-dialog, .quote-availability-dialog) {
    border-color: var(--admin-border);
    background: var(--admin-card-bg);
    color: var(--admin-text);
}

body.admin-body .ql-toolbar :is(button, .ql-picker-label, .ql-picker-item) {
    color: var(--admin-text);
}

body.admin-body .ql-toolbar :is(.ql-stroke) {
    stroke: currentColor;
}

body.admin-body .ql-toolbar :is(.ql-fill) {
    fill: currentColor;
}

body.admin-body :is(.admin-force-light-surface, .admin-force-dark-text) {
    border-color: var(--admin-card-border) !important;
    background: var(--admin-card-bg) !important;
    color: var(--admin-text) !important;
}

body.admin-body :is(.admin-force-light-surface, .admin-force-dark-text) :is(h1, h2, h3, h4, p, span, small, label, legend, summary):not(.btn):not(button) {
    color: inherit !important;
}

/* The legal notice always owns an opaque dark surface. */
body.admin-body .admin-system-license {
    border-color: rgba(255, 255, 255, .14);
    background: #11182c !important;
    color: #ffffff !important;
}

body.admin-body .admin-system-license :is(strong, small) {
    color: #ffffff !important;
}

body.admin-body .admin-system-license small {
    opacity: .72;
}

body.admin-body .admin-system-license span {
    background: rgba(255, 189, 46, .18);
    color: #ffd166 !important;
}

body.admin-body[data-admin-theme="dark"] .admin-sidebar {
    background: linear-gradient(160deg, #050913, #111827);
    background-color: #050913;
}

body.admin-body[data-admin-theme="blue-solar"] .admin-sidebar {
    background: radial-gradient(circle at 20% 0, rgba(0, 180, 216, .3), transparent 30%), linear-gradient(160deg, #03111f, #082f4f);
    background-color: #03111f;
}

body.admin-body[data-admin-theme="blue-solar"] .admin-theme-options button.active {
    background: var(--admin-primary);
    color: var(--admin-on-primary);
}

@media (max-width: 1180px) {
    .admin-two-col,
    .admin-grid-forms,
    .settings-grid,
    .form-grid,
    .builder-support-grid,
    .media-warehouse-layout,
    .email-studio-shell,
    .email-contacts-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .media-warehouse-layout > #media-form,
    .email-preview-column {
        position: static;
    }

    .ql-editor .editor-columns {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 980px) {
    body.admin-body {
        display: block;
        grid-template-columns: none;
        min-height: 100dvh;
        padding-top: calc(4rem + env(safe-area-inset-top));
        padding-bottom: calc(5.25rem + env(safe-area-inset-bottom));
    }

    .admin-sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 130;
        width: min(86vw, 320px);
        max-width: min(86vw, 320px);
        height: 100dvh;
        padding-top: calc(4.5rem + env(safe-area-inset-top));
        padding-bottom: calc(1rem + env(safe-area-inset-bottom));
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        transform: translateX(-104%);
    }

    .admin-sidebar.is-open {
        transform: translateX(0);
    }

    .admin-main {
        width: 100%;
        min-height: calc(100dvh - 4rem);
        padding: clamp(.8rem, 3vw, 1.25rem);
        padding-bottom: calc(6.25rem + env(safe-area-inset-bottom));
    }

    .admin-menu-toggle {
        display: inline-flex !important;
        top: calc(.65rem + env(safe-area-inset-top));
        left: .75rem;
        z-index: 150;
        width: var(--admin-final-touch);
        height: var(--admin-final-touch);
    }

    .admin-bottom-nav {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        width: 100%;
        min-width: 0;
        padding-bottom: calc(.42rem + env(safe-area-inset-bottom));
    }

    .admin-bottom-nav .admin-tab {
        min-width: 0;
        width: 100%;
        min-height: 50px;
        padding: .35rem .2rem;
        justify-content: center;
        text-align: center;
        white-space: normal;
    }

    .admin-heading {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
    }

    .admin-heading-actions,
    .builder-studio-actions,
    .form-actions,
    .email-composer-actions {
        width: 100%;
    }

    .admin-table,
    .quote-table {
        width: 100%;
        min-width: 760px;
    }

    .admin-context-appbar {
        width: 100%;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
    }

    .admin-context-appbar > * {
        flex: 0 0 auto;
    }
}

@media (max-width: 640px) {
    :root {
        --admin-final-gutter: .75rem;
    }

    body.admin-body :is(input, select, textarea) {
        font-size: 16px;
    }

    .admin-main {
        padding-inline: .75rem;
    }

    .admin-two-col,
    .admin-grid-forms,
    .settings-grid,
    .form-grid,
    .builder-support-grid,
    .builder-group-grid,
    .visual-style-grid,
    .template-elements-grid,
    .email-studio-shell,
    .email-contacts-layout,
    .email-metrics-grid,
    .resend-templates-grid,
    .ql-editor .editor-columns {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .admin-card,
    .login-card,
    .builder-group,
    .text-row {
        padding: clamp(.8rem, 3.5vw, 1rem);
    }

    .admin-heading-actions,
    .builder-studio-actions,
    .form-actions,
    .email-composer-actions,
    .resend-template-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: .55rem;
    }

    .admin-heading-actions > *,
    .builder-studio-actions > *,
    .form-actions > *,
    .email-composer-actions > *,
    .resend-template-actions > * {
        width: 100% !important;
        min-width: 0;
        margin: 0;
    }

    .mini-row,
    .mini-row.media-mini-row,
    .assistant-knowledge-row,
    .assistant-unresolved-list article,
    .unified-source-card {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .mini-row > *,
    .mini-row.media-mini-row > *,
    .assistant-knowledge-row > *,
    .unified-source-card > * {
        grid-column: 1 !important;
        min-width: 0;
    }

    .visual-toolbar,
    .quill-toolbar-pro,
    .note-toolbar,
    .email-token-bar,
    .email-template-picker {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .4rem;
    }

    .visual-toolbar > *,
    .quill-toolbar-pro > *,
    .note-toolbar > *,
    .email-token-bar > *,
    .email-template-picker > * {
        width: 100%;
        min-width: 0;
    }

    .media-commerce-grid,
    .asset-picker-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .login-overlay,
    .admin-editor-modal,
    .email-mass-send-modal {
        padding: .35rem;
    }

    .login-card,
    .admin-editor-dialog,
    .email-mass-send-dialog {
        width: calc(100vw - .7rem);
        max-width: calc(100vw - .7rem);
        max-height: calc(100dvh - .7rem);
        border-radius: 16px;
    }

    .admin-editor-head,
    .admin-editor-body,
    .email-mass-send-dialog {
        padding-inline: .75rem;
    }

    .arturo-chat-panel {
        inset: max(.35rem, env(safe-area-inset-top)) .35rem max(.35rem, env(safe-area-inset-bottom));
        width: auto;
        height: auto;
        max-width: none;
        max-height: none;
    }
}

@media (max-width: 420px) {
    .media-commerce-grid,
    .asset-picker-grid,
    .visual-toolbar,
    .quill-toolbar-pro,
    .note-toolbar,
    .email-token-bar,
    .email-template-picker {
        grid-template-columns: minmax(0, 1fr);
    }

    .admin-bottom-nav .admin-tab {
        font-size: .62rem;
    }
}

/* ============================================================
   MAGAZINE EDITOR · RELIABLE MODAL ON DESKTOP AND TOUCH DEVICES
   ============================================================ */

body.admin-body [data-editor-modal="magazine-form"] {
    padding:
        max(.65rem, env(safe-area-inset-top))
        max(.65rem, env(safe-area-inset-right))
        max(.65rem, env(safe-area-inset-bottom))
        max(.65rem, env(safe-area-inset-left));
    overscroll-behavior: contain;
    background: rgba(8, 13, 29, .88);
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.admin-body [data-editor-modal="magazine-form"] .admin-editor-dialog {
    width: min(1180px, calc(100vw - 1.3rem));
    max-width: min(1180px, calc(100vw - 1.3rem));
    height: min(940px, calc(100vh - 1.3rem));
    height: min(940px, calc(100dvh - 1.3rem));
    max-height: calc(100vh - 1.3rem);
    max-height: calc(100dvh - 1.3rem);
    border-radius: 20px;
    box-shadow: 0 18px 52px rgba(3, 8, 20, .3), inset 0 1px 0 rgba(255, 255, 255, .7);
    transform: translateZ(0);
}

body.admin-body [data-editor-modal="magazine-form"] .admin-editor-head {
    min-height: 72px;
    padding: .72rem .85rem;
    flex: 0 0 auto;
}

body.admin-body [data-editor-modal="magazine-form"] .admin-editor-state i {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #16a34a;
}

body.admin-body [data-editor-modal="magazine-form"] .admin-editor-state[data-state="loading"] i {
    background: #e0a126;
}

body.admin-body [data-editor-modal="magazine-form"] .admin-editor-state[data-state="error"] i {
    background: #dc3545;
}

body.admin-body [data-editor-modal="magazine-form"] .admin-editor-body {
    min-height: 0;
    padding: clamp(.65rem, 1.8vw, 1.1rem);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
}

body.admin-body [data-editor-modal="magazine-form"] #magazine-form {
    align-content: start;
    gap: .85rem 1rem;
    border-radius: 16px !important;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .08) !important;
}

body.admin-body #magazine-form :is(input, textarea, select, button, summary, .device-upload-ui, .media-library-launcher) {
    max-width: 100%;
    touch-action: manipulation;
}

body.admin-body #magazine-form :is(input, textarea, select) {
    min-width: 0;
    color: var(--admin-text);
    background: var(--admin-input-bg);
}

body.admin-body #magazine-form :is(input, textarea, select, button):focus-visible,
body.admin-body [data-editor-modal="magazine-form"] .admin-editor-close:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--admin-primary) 32%, transparent);
    outline-offset: 2px;
}

body.admin-body #magazine-form :is(button, summary, .device-upload-ui, .media-library-launcher) {
    min-height: 44px;
}

body.admin-body #magazine-form .magazine-upload-group {
    overflow: hidden;
}

body.admin-body #magazine-form .magazine-upload-group > label,
body.admin-body #magazine-form .magazine-source-alternatives > label {
    min-width: 0;
}

body.admin-body #magazine-form :is(.device-upload-ui, .media-library-launcher) {
    width: 100%;
    overflow: hidden;
}

body.admin-body #magazine-form :is(.device-upload-ui, .media-library-launcher) :is(strong, small),
body.admin-body #magazine-form .magazine-file-status {
    overflow-wrap: anywhere;
    word-break: break-word;
}

body.admin-body #magazine-form .magazine-source-alternatives > summary {
    display: flex;
    align-items: center;
    padding: .2rem 0;
    list-style-position: inside;
}

body.admin-body #magazine-form details.builder-group > summary {
    min-height: 44px;
    align-content: center;
    cursor: pointer;
}

body.admin-body #magazine-form :is(input[name="video_url"], input[name="embed_url"], input[name="cover_url"], input[name="pdf_url"]) {
    direction: ltr;
    text-align: left;
}

body.admin-body #magazine-form :is(.quill-toolbar-pro, .ql-toolbar, .visual-toolbar) {
    overscroll-behavior-inline: contain;
}

body.admin-body #magazine-form .ql-editor {
    overflow-x: hidden;
}

body.admin-body #magazine-form .ql-editor :is(img, video, iframe, embed, object, table) {
    max-width: 100% !important;
}

body.admin-body #magazine-form .btn-primary:disabled {
    cursor: wait;
    opacity: .66;
}

@media (max-width: 760px) {
    body.admin-body [data-editor-modal="magazine-form"] {
        align-items: stretch;
        padding:
            max(.25rem, env(safe-area-inset-top))
            max(.25rem, env(safe-area-inset-right))
            max(.25rem, env(safe-area-inset-bottom))
            max(.25rem, env(safe-area-inset-left));
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-dialog {
        width: 100%;
        max-width: 100%;
        height: calc(100vh - .5rem);
        height: calc(100dvh - .5rem);
        max-height: calc(100vh - .5rem);
        max-height: calc(100dvh - .5rem);
        border-radius: 15px;
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-head {
        min-height: 62px;
        padding: .55rem .62rem;
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-body {
        padding: .5rem;
    }

    body.admin-body [data-editor-modal="magazine-form"] #magazine-form {
        gap: .72rem;
        padding: .7rem !important;
        border-radius: 13px !important;
    }

    body.admin-body #magazine-form :is(input, textarea, select) {
        font-size: 16px;
    }

    body.admin-body #magazine-form .magazine-upload-group {
        padding: .72rem;
        border-radius: 13px;
    }

    body.admin-body #magazine-form :is(.device-upload-ui, .media-library-launcher) {
        min-height: 64px;
    }

    body.admin-body #magazine-form .magazine-rich-editor .ql-editor {
        min-height: 210px;
    }

    body.admin-body #magazine-form .ql-editor .editor-columns {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-height: 620px) and (orientation: landscape) {
    body.admin-body [data-editor-modal="magazine-form"] {
        padding: .2rem;
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-dialog {
        width: calc(100vw - .4rem);
        max-width: calc(100vw - .4rem);
        height: calc(100vh - .4rem);
        height: calc(100dvh - .4rem);
        max-height: calc(100vh - .4rem);
        max-height: calc(100dvh - .4rem);
        border-radius: 12px;
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-head {
        min-height: 54px;
        padding: .4rem .55rem;
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-title-app p:last-child,
    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-state {
        display: none;
    }
}

/* Final responsive modal contract: controls wrap instead of colliding. */
body.admin-body :is(
    .admin-editor-dialog,
    .asset-picker-app,
    .email-mass-send-dialog,
    .resend-template-form,
    .quote-availability-dialog,
    .admin-tour-card,
    .share-sheet
) {
    min-width: 0;
}

body.admin-body :is(
    .admin-editor-dialog,
    .asset-picker-app,
    .email-mass-send-dialog,
    .resend-template-form,
    .quote-availability-dialog,
    .admin-tour-card,
    .share-sheet
) :is(button, .btn, input[type="button"], input[type="submit"]) {
    max-width: 100%;
    min-width: 0;
    height: auto;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.25;
}

body.admin-body .admin-editor-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    min-width: 0;
}

body.admin-body :is(.admin-editor-title-app, .admin-editor-title-app > div, .admin-editor-window-actions) {
    min-width: 0;
}

body.admin-body .admin-editor-window-actions {
    max-width: 100%;
    flex-wrap: wrap;
    justify-content: end;
}

body.admin-body .admin-editor-modal .form-actions,
body.admin-body .email-mass-send-modal .form-actions,
body.admin-body .resend-template-modal .form-actions,
body.admin-body .quote-availability-modal .form-actions,
body.admin-body .share-sheet-modal .form-actions,
body.admin-body .admin-tour-modal .form-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
    width: 100%;
    gap: .55rem;
}

.contact-delete-choice-dialog {
    width: min(620px, 100%) !important;
}

.contact-delete-choice-actions {
    display: grid;
    gap: .75rem;
}

.contact-delete-choice-actions .btn {
    width: 100%;
    min-height: 48px;
}

.contact-delete-choice-actions .btn-danger {
    border-color: rgba(176, 35, 45, .35);
    background: #fff1f2;
    color: #9f1d2a;
}

body.admin-body :is(
    .admin-editor-modal,
    .email-mass-send-modal,
    .resend-template-modal,
    .quote-availability-modal,
    .share-sheet-modal,
    .admin-tour-modal
) .form-actions > * {
    width: 100%;
    min-width: 0;
    margin: 0;
}

@media (max-width: 700px) {
    body.admin-body .admin-editor-head {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .55rem;
    }

    body.admin-body .admin-editor-state {
        display: none;
    }

    body.admin-body .admin-editor-close {
        width: 44px;
        min-width: 44px;
        height: 44px;
        padding: 0;
        grid-template-columns: 1fr;
        place-items: center;
    }

    body.admin-body .admin-editor-close small {
        display: none;
    }
}

@media (max-width: 480px) {
    body.admin-body .admin-editor-title-app {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    body.admin-body .admin-editor-app-icon,
    body.admin-body .admin-editor-title-app p:last-child {
        display: none;
    }

    body.admin-body .admin-editor-modal .form-actions,
    body.admin-body .email-mass-send-modal .form-actions,
    body.admin-body .resend-template-modal .form-actions,
    body.admin-body .quote-availability-modal .form-actions,
    body.admin-body .share-sheet-modal .form-actions,
    body.admin-body .admin-tour-modal .form-actions {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Modal flow: predictable layering, low rendering cost and stable media tiles. */
body.admin-body .admin-editor-modal {
    z-index: 10000;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.admin-body .admin-editor-modal.has-child-modal {
    pointer-events: none;
}

body.admin-body .admin-editor-modal.has-child-modal .admin-editor-dialog {
    opacity: .42;
    transform: scale(.985);
}

body.admin-body .asset-picker-modal {
    z-index: 12000 !important;
    contain: layout paint;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.admin-body .asset-picker-app {
    width: min(1040px, calc(100vw - 1rem));
    height: min(760px, calc(100dvh - 1rem));
    max-height: calc(100dvh - 1rem);
}

body.admin-body .asset-picker-grid {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 160px), 1fr));
    grid-auto-rows: max-content;
    align-items: start;
    overscroll-behavior: contain;
}

body.admin-body .asset-choice-card {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    contain: layout paint;
}

body.admin-body .asset-choice-preview {
    width: 100%;
    min-width: 0;
    aspect-ratio: 4 / 3;
}

body.admin-body .asset-choice-preview img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
}

body.admin-body :is(.admin-editor-dialog, .asset-picker-app) {
    transition: opacity .16s ease, transform .16s ease;
}

@media (prefers-reduced-motion: reduce), (update: slow) {
    body.admin-body :is(.admin-editor-dialog, .asset-picker-app, .asset-choice-card) {
        animation: none !important;
        transition: none !important;
    }
}

@media (max-width: 640px) {
    body.admin-body .asset-picker-app {
        width: calc(100vw - .5rem);
        height: calc(100dvh - .5rem);
        max-height: calc(100dvh - .5rem);
        border-radius: 16px;
    }

    body.admin-body .asset-picker-commandbar {
        grid-template-columns: minmax(0, 1fr);
    }

    body.admin-body .asset-picker-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding-inline: .65rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-dialog {
        animation: none !important;
        transform: none;
    }
}

/* ============================================================
   FINAL THEME COHERENCE CONTRACT
   Every administrative surface belongs to exactly one palette.
   ============================================================ */

body.admin-body,
body.admin-body[data-admin-theme="light"] {
    --admin-sidebar-bg: #eef2f7;
    --admin-sidebar-card: #ffffff;
    --admin-sidebar-soft: #f7f9fc;
    --admin-sidebar-border: #d8e0eb;
    --admin-sidebar-text: #172033;
    --admin-sidebar-muted: #5f6c80;
    --admin-sidebar-active: #e9efff;
    --admin-sidebar-active-text: #17316f;
}

body.admin-body[data-admin-theme="dark"] {
    --admin-sidebar-bg: #050913;
    --admin-sidebar-card: #111a2a;
    --admin-sidebar-soft: #0c1422;
    --admin-sidebar-border: #2d3a50;
    --admin-sidebar-text: #f4f7ff;
    --admin-sidebar-muted: #aeb9cc;
    --admin-sidebar-active: #1a2944;
    --admin-sidebar-active-text: #ffffff;
}

body.admin-body[data-admin-theme="blue-solar"] {
    --admin-sidebar-bg: #041a2d;
    --admin-sidebar-card: #0b2a46;
    --admin-sidebar-soft: #082139;
    --admin-sidebar-border: #286083;
    --admin-sidebar-text: #ffffff;
    --admin-sidebar-muted: #b9d9e9;
    --admin-sidebar-active: #135077;
    --admin-sidebar-active-text: #ffffff;
}

/* Sidebar: light is genuinely light; dark is black; Solar is blue. */
body.admin-body .admin-sidebar {
    border-right: 1px solid var(--admin-sidebar-border);
    background: var(--admin-sidebar-bg) !important;
    color: var(--admin-sidebar-text) !important;
    scrollbar-color: color-mix(in srgb, var(--admin-sidebar-text) 22%, transparent) transparent;
}

body.admin-body .admin-sidebar :is(.admin-brand, .admin-app-groups, .admin-edit-mode, .admin-sidebar-assistant, .admin-system-license, .admin-logout) {
    border-color: var(--admin-sidebar-border) !important;
    background: var(--admin-sidebar-card) !important;
    color: var(--admin-sidebar-text) !important;
    box-shadow: 0 8px 22px color-mix(in srgb, var(--admin-sidebar-bg) 70%, transparent) !important;
}

body.admin-body .admin-sidebar :is(.admin-brand, .admin-brand-copy, .admin-brand-copy strong, .admin-edit-mode strong, .admin-app-page-head strong, .admin-sidebar-assistant, .admin-sidebar-assistant strong, .admin-system-license strong, .admin-logout) {
    color: var(--admin-sidebar-text) !important;
}

body.admin-body .admin-sidebar :is(.admin-brand-copy small, .admin-edit-mode small, .admin-app-page-head small, .admin-app-page-head > span, .admin-sidebar-assistant small, .admin-system-license small, .admin-tab-copy small) {
    color: var(--admin-sidebar-muted) !important;
    opacity: 1;
}

body.admin-body .admin-sidebar .admin-app-group {
    color: var(--admin-sidebar-muted) !important;
}

body.admin-body .admin-sidebar .admin-app-group:is(:hover, .active) {
    background: var(--admin-sidebar-soft) !important;
    color: var(--admin-sidebar-text) !important;
    box-shadow: inset 0 0 0 1px var(--admin-sidebar-border) !important;
}

body.admin-body .admin-sidebar .admin-tab {
    border-color: var(--admin-sidebar-border) !important;
    background: var(--admin-sidebar-card) !important;
    color: var(--admin-sidebar-text) !important;
    box-shadow: 0 5px 15px color-mix(in srgb, var(--admin-sidebar-bg) 70%, transparent) !important;
}

/* Email Studio unificado: una sola navegación para campañas, personas y recursos. */
body.admin-body #tab-gifts .email-studio-tabs.email-studio-tabs-top {
    grid-template-columns: repeat(7, minmax(84px, 1fr));
    gap: .38rem;
    margin-bottom: 1rem;
}

/* Un solo cintillo Quill: formato y herramientas editoriales comparten superficie. */
body.admin-body .quill-editor-shell > :is(.ql-toolbar.ql-snow,.quill-toolbar-pro) {
    display: flex !important;
    flex-wrap: wrap;
    gap: .3rem;
    align-items: center;
    padding: .55rem .65rem !important;
}
body.admin-body .ql-toolbar .ql-formats { margin-right: .2rem !important; }
body.admin-body .ql-toolbar .quill-layout-bar,
body.admin-body .quill-toolbar-pro .quill-layout-bar {
    display: inline-flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: .28rem;
    align-items: center;
    width: auto;
    margin: 0;
    padding: 0 0 0 .45rem;
    border: 0;
    border-left: 1px solid rgba(40,56,100,.14);
    background: transparent;
}
body.admin-body .ql-toolbar .quill-layout-bar > button,
body.admin-body .quill-toolbar .quill-layout-bar > label,
body.admin-body .quill-toolbar-pro .quill-layout-bar > button,
body.admin-body .quill-toolbar-pro .quill-layout-bar > label {
    display: inline-flex;
    flex: 0 0 auto;
    gap: .32rem;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-width: 34px !important;
    min-height: 32px;
    margin: 0 !important;
    padding: .32rem .48rem !important;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: #334155;
    font: 800 .56rem/1 'Space Mono',monospace;
    white-space: nowrap;
}
body.admin-body .ql-toolbar .quill-layout-bar > button:hover,
body.admin-body .quill-toolbar-pro .quill-layout-bar > button:hover {
    border-color: rgba(44,127,162,.3);
    background: #eaf5f8;
    color: #176b8c;
}
body.admin-body .quill-layout-bar .quill-tool-icon {
    width: 17px;
    height: 17px;
    margin: 0;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
body.admin-body .quill-layout-bar .quill-tool-label {
    margin: 0;
    color: inherit;
    font: inherit;
    letter-spacing: 0;
    text-transform: none;
}
body.admin-body .quill-layout-bar .quill-table-border-label select {
    width: 70px;
    min-height: 25px;
    padding: 0 .25rem;
    border: 0;
    border-radius: 6px;
    background: rgba(255,255,255,.8);
    color: inherit;
    font: 700 .54rem 'Space Mono',monospace;
}
body.admin-body .quill-layout-bar .quill-cta-tool {
    border-color: #1e1e46 !important;
    background: #1e1e46 !important;
    color: #fff !important;
}
body.admin-body .quill-layout-bar .quill-context-action { display: none !important; }
body.admin-body .quill-layout-bar.has-selected-table .quill-context-action { display: inline-flex !important; color: #a33b49; }
body.admin-body .quill-layout-bar.has-active-cell [data-editor-image-add],
body.admin-body .quill-layout-bar.has-active-cell [data-editor-image-warehouse] {
    border-color: rgba(44,127,162,.4);
    background: #eaf5f8;
    color: #176b8c;
}
body.admin-body .quill-editor-shell > .quill-cta-popover {
    margin: 0;
    border: 0;
    border-bottom: 1px solid rgba(40,56,100,.12);
    border-radius: 0;
}

/* Correo: distinguir recursos incrustados de archivos adjuntos. */
body.admin-body .email-inline-media-note,
body.admin-body .email-attachments-head { display: grid; gap: .18rem; }
body.admin-body .email-inline-media-note {
    padding: .7rem .8rem;
    border: 1px solid rgba(44,127,162,.24);
    border-radius: 11px;
    background: #edf8fa;
    color: #365b68;
    font-size: .66rem;
    line-height: 1.45;
}
body.admin-body .email-inline-media-note strong { color: #176b8c; letter-spacing: .06em; }
body.admin-body .email-attachments-card {
    display: grid;
    gap: .7rem;
    margin-top: .55rem;
    padding: .9rem;
    border: 2px solid rgba(30,30,70,.14);
    border-radius: 14px;
    background: rgba(248,250,252,.92);
}
body.admin-body .email-attachments-head strong { color: #1e1e46; font-size: .76rem; letter-spacing: .07em; }
body.admin-body .email-attachments-head span { color: #64748b; font-size: .64rem; line-height: 1.45; }
@media (max-width: 720px) {
    body.admin-body .ql-toolbar .quill-layout-bar,
    body.admin-body .quill-toolbar-pro .quill-layout-bar {
        flex-basis: 100%;
        padding: .4rem 0 0;
        border-top: 1px solid rgba(40,56,100,.1);
        border-left: 0;
    }
    body.admin-body .quill-layout-bar .quill-tool-label { display: none; }
    body.admin-body .quill-layout-bar .quill-table-border-label .quill-tool-label { display: inline; }
}

body.admin-body #tab-gifts .email-studio-tabs.email-studio-tabs-top button {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .32rem;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    line-height: 1;
}

body.admin-body #tab-gifts .email-studio-tabs.email-studio-tabs-top button svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.email-section-intro {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}

#email-audience-host {
    display: grid;
    gap: 1rem;
}

#email-audience-host .subscriber-app-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.email-template-library-head {
    display: flex;
    gap: .75rem;
    align-items: end;
    justify-content: space-between;
    margin-bottom: .75rem;
}

.email-template-library-head :is(p, h2) { margin: 0; }
.email-template-library-head small { color: var(--admin-muted, #68758a); }

body.admin-body .email-template-picker {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
    margin-bottom: 1rem;
}

body.admin-body .email-template-picker button {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: .18rem .65rem;
    min-height: 78px;
    padding: .72rem;
    border: 1px solid var(--admin-line, #d8dee8);
    border-radius: 14px;
    background: rgba(255, 255, 255, .72);
    color: var(--admin-ink, #1e1e46);
    text-align: left;
}

body.admin-body .email-template-picker button .email-template-thumb {
    grid-row: 1 / 3;
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 12px;
    background: linear-gradient(145deg, #1e1e46, #2c7fa2);
    color: #fff;
    font-size: 1rem;
}

body.admin-body .email-template-picker button strong { align-self: end; font-size: .72rem; }
body.admin-body .email-template-picker button small { align-self: start; color: var(--admin-muted, #68758a); line-height: 1.35; }
body.admin-body .email-template-picker button:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(30, 30, 70, .1); }
body.admin-body .email-template-picker button.active { border-color: #2c7fa2; background: rgba(44, 127, 162, .09); }
body.admin-body .email-template-picker .email-template-automatic .email-template-thumb { background: linear-gradient(145deg, #8055a6, #d77ce7); }

/* Orbe generativo adaptado a la identidad de El Cabezal. */
.arturo-chat-launcher .sinapse-orb,
.arturo-chat-brand .sinapse-orb {
    position: relative;
    isolation: isolate;
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .48);
    border-radius: 50%;
    background: #151632;
    box-shadow: 0 0 0 4px rgba(113, 210, 229, .09), 0 0 24px rgba(215, 124, 231, .48), inset 0 0 15px rgba(255, 255, 255, .24);
}

.sinapse-orb::before,
.sinapse-orb::after,
.sinapse-orb > i {
    content: "";
    position: absolute;
    inset: -38%;
    border-radius: 44% 56% 58% 42%;
    background: conic-gradient(from 30deg, transparent 0 8%, #58d5e9 24%, #8055a6 48%, #f08fe3 67%, transparent 82%);
    filter: blur(2.5px);
    animation: sinapseOrbSpin 5.4s linear infinite;
}

.sinapse-orb::after {
    inset: -18%;
    border-radius: 57% 43% 38% 62%;
    background: conic-gradient(from 190deg, transparent, #fff 18%, #2c7fa2 42%, transparent 66%);
    opacity: .72;
    filter: blur(4px);
    animation-direction: reverse;
    animation-duration: 3.8s;
}

.sinapse-orb > i {
    inset: 28%;
    z-index: 2;
    border-radius: 50%;
    background: #fff;
    filter: blur(3px);
    box-shadow: 0 0 13px #fff, 0 0 25px #70d6e8;
    animation: sinapseCorePulse 1.9s ease-in-out infinite;
}

.arturo-chat-panel.is-thinking .sinapse-orb {
    box-shadow: 0 0 0 5px rgba(88, 213, 233, .16), 0 0 34px rgba(240, 143, 227, .72), inset 0 0 16px rgba(255, 255, 255, .35);
}

.arturo-chat-panel.is-thinking .sinapse-orb::before { animation-duration: 1.15s; }
.arturo-chat-panel.is-thinking .sinapse-orb::after { animation-duration: .82s; }

@keyframes sinapseOrbSpin {
    to { transform: rotate(1turn) scale(1.08); }
}

@keyframes sinapseCorePulse {
    0%, 100% { opacity: .72; transform: scale(.72); }
    50% { opacity: 1; transform: scale(1.18); }
}

@media (max-width: 900px) {
    body.admin-body #tab-gifts .email-studio-tabs.email-studio-tabs-top {
        position: sticky;
        top: 0;
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x proximity;
    }
    body.admin-body #tab-gifts .email-studio-tabs.email-studio-tabs-top button {
        min-width: 88px;
        scroll-snap-align: start;
    }
    .email-section-intro { align-items: stretch; flex-direction: column; }
}

@media (max-width: 620px) {
    body.admin-body .email-template-picker,
    #email-audience-host .subscriber-app-grid { grid-template-columns: 1fr; }
    .email-template-library-head { align-items: start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .sinapse-orb::before,
    .sinapse-orb::after,
    .sinapse-orb > i { animation: none !important; }
}

body.admin-body .admin-sidebar .admin-tab:hover {
    border-color: color-mix(in srgb, var(--admin-primary) 48%, var(--admin-sidebar-border)) !important;
    background: var(--admin-sidebar-soft) !important;
    color: var(--admin-sidebar-text) !important;
}

body.admin-body .admin-sidebar .admin-tab.active {
    border-color: color-mix(in srgb, var(--admin-primary) 58%, var(--admin-sidebar-border)) !important;
    background: var(--admin-sidebar-active) !important;
    color: var(--admin-sidebar-active-text) !important;
    box-shadow: inset 3px 0 color-mix(in srgb, var(--admin-primary) 78%, var(--admin-sidebar-active-text)), 0 8px 20px color-mix(in srgb, var(--admin-sidebar-bg) 72%, transparent) !important;
}

body.admin-body .admin-sidebar .admin-tab-copy strong {
    color: inherit !important;
}

body.admin-body .admin-sidebar .admin-edit-mode-switch span {
    border-color: var(--admin-sidebar-border);
    background: var(--admin-sidebar-soft);
}

body.admin-body .admin-sidebar .admin-edit-mode-switch span::after {
    background: var(--admin-sidebar-muted);
}

body.admin-body .admin-sidebar .admin-edit-mode-switch input:checked + span {
    border-color: var(--admin-primary);
    background: color-mix(in srgb, var(--admin-primary) 34%, var(--admin-sidebar-card));
}

body.admin-body .admin-sidebar .admin-edit-mode-switch input:checked + span::after {
    background: var(--admin-primary);
}

body.admin-body .admin-sidebar .admin-system-license span {
    background: color-mix(in srgb, var(--admin-primary) 17%, var(--admin-sidebar-card));
    color: color-mix(in srgb, var(--admin-primary) 78%, var(--admin-sidebar-text)) !important;
}

body.admin-body[data-admin-theme="blue-solar"] .admin-sidebar .admin-system-license span {
    color: #ffd166 !important;
}

body.admin-body .admin-sidebar .admin-logout:hover {
    border-color: #dc4b5a !important;
    background: color-mix(in srgb, #dc4b5a 14%, var(--admin-sidebar-card)) !important;
    color: color-mix(in srgb, #dc4b5a 72%, var(--admin-sidebar-text)) !important;
}

/* Operational cards, dialogs and editors always consume the active palette. */
body.admin-body :is(
    .device-upload-ui,
    .media-library-launcher,
    .asset-picker-app,
    .asset-picker-device,
    .asset-picker-card,
    .media-source-card,
    .media-warehouse-card,
    .admin-editor-dialog,
    .admin-editor-body > form,
    .admin-tour-card,
    .share-sheet,
    .site-health-modal,
    .site-health-summary,
    .site-health-grid article,
    .builder-pages-list article,
    .builder-subpanel,
    .builder-live-preview-card,
    .builder-programmed-notice,
    .page-builder-pro-launch,
    .email-compose-column,
    .email-preview-column,
    .email-composer-card,
    .email-campaign-basics,
    .email-advanced-settings,
    .email-template-picker,
    .email-token-bar,
    .email-csv-dropzone,
    .email-csv-example,
    .email-csv-preview,
    .email-quality-checks,
    .email-recipient-checklist,
    .email-selected-recipients,
    .email-mass-send-dialog,
    .resend-template-form,
    .resend-visual-builder,
    .assistant-glossary-shell,
    .assistant-glossary-row,
    .arturo-chat-panel,
    .arturo-topic-shell,
    .arturo-chat-log,
    .arturo-message-content,
    .quill-editor-shell,
    .quill-layout-bar
) {
    border-color: var(--admin-card-border) !important;
    background: var(--admin-card-bg) !important;
    color: var(--admin-text) !important;
}

body.admin-body :is(
    .visual-toolbar,
    .quill-toolbar-pro,
    .ql-toolbar,
    .note-toolbar,
    .builder-subtabs,
    .builder-filter-row,
    .email-studio-tabs,
    .email-health-bar,
    .email-preview-head,
    .email-attachment-toolbar,
    .resend-template-editor-head,
    .admin-editor-head,
    .asset-picker-head,
    .asset-picker-search,
    .asset-picker-meta,
    .asset-choice-card,
    .asset-picker-empty
) {
    border-color: var(--admin-border) !important;
    background: var(--admin-surface-soft) !important;
    color: var(--admin-text) !important;
}

body.admin-body #tab-gifts {
    --email-ink: var(--admin-text);
    --email-muted: var(--admin-text-muted);
    --email-primary: var(--admin-primary);
    --email-navy: var(--admin-text);
    --email-bone: var(--admin-surface-soft);
}

body.admin-body :is(
    .email-studio-tabs button,
    .email-template-picker button,
    .email-token-bar button,
    .email-device-toggle button,
    .resend-block-toolbar button,
    .quill-layout-bar > button,
    .asset-picker-head .share-close
) {
    border-color: var(--admin-border) !important;
    background: var(--admin-surface-raised) !important;
    color: var(--admin-text) !important;
}

body.admin-body :is(
    .email-studio-tabs button.active,
    .email-template-picker button.active,
    .email-device-toggle button.active
) {
    border-color: var(--admin-primary) !important;
    background: color-mix(in srgb, var(--admin-primary) 18%, var(--admin-card-bg)) !important;
    color: color-mix(in srgb, var(--admin-primary) 74%, var(--admin-text)) !important;
}

body.admin-body :is(.email-metrics-grid strong, .email-csv-summary strong, .asset-choice-copy strong) {
    color: var(--admin-text) !important;
}

body.admin-body :is(.email-metrics-grid span, .email-metrics-grid small, .asset-picker-meta, .asset-choice-copy small, .asset-picker-empty) {
    color: var(--admin-text-muted) !important;
}

body.admin-body :is(.asset-choice-preview, .asset-picker-empty > span) {
    background: var(--admin-surface-soft) !important;
}

body.admin-body .resend-template-modal {
    background: color-mix(in srgb, var(--admin-bg) 78%, rgba(0, 0, 0, .72)) !important;
}

body.admin-body :is(.admin-context-app.wtm-primary, .wtm-app-popover) {
    border-color: var(--admin-border) !important;
    background: var(--admin-card-bg) !important;
    color: var(--admin-text) !important;
}

body.admin-body .wtm-app-popover :is(a, strong) {
    color: var(--admin-text) !important;
}

body.admin-body .wtm-app-popover small {
    color: var(--admin-text-muted) !important;
}

body.admin-body .wtm-app-popover a:hover {
    background: var(--admin-surface-soft) !important;
}

body.admin-body #media-type-filter {
    border-color: var(--admin-border) !important;
    background: var(--admin-input-bg) !important;
    color: var(--admin-text) !important;
}

body.admin-body :is(.assistant-knowledge-actions button, .assistant-unresolved-list button) {
    border-color: var(--admin-border) !important;
    background: var(--admin-surface-raised) !important;
    color: var(--admin-text) !important;
}

body.admin-body .assistant-knowledge-row > div:first-child > span {
    color: color-mix(in srgb, var(--admin-primary) 82%, var(--admin-text)) !important;
}

/* Dashboard counters are deliberately white in Light/Dark and blue in Solar. */
body.admin-body :is(.stat-card, .assistant-metrics-grid article) {
    border-color: #d9e0ea !important;
    background: #ffffff !important;
    color: #111827 !important;
}

body.admin-body :is(.stat-card, .assistant-metrics-grid article) strong {
    color: #111827 !important;
}

body.admin-body :is(.stat-card, .assistant-metrics-grid article) :is(span, small) {
    color: #5b6678 !important;
}

body.admin-body[data-admin-theme="blue-solar"] :is(.stat-card, .assistant-metrics-grid article) {
    border-color: var(--admin-card-border) !important;
    background: var(--admin-card-bg) !important;
    color: #ffffff !important;
}

body.admin-body[data-admin-theme="blue-solar"] :is(.stat-card, .assistant-metrics-grid article) strong {
    color: #ffffff !important;
}

body.admin-body[data-admin-theme="blue-solar"] :is(.stat-card, .assistant-metrics-grid article) :is(span, small) {
    color: #b9d9e9 !important;
}

body.admin-body:is([data-admin-theme="dark"], [data-admin-theme="blue-solar"]) .admin-launcher-enter {
    border-color: var(--admin-border) !important;
    background: var(--admin-surface-raised) !important;
    color: var(--admin-text) !important;
}

/* ============================================================
   ADMIN MAGAZINES · CATALOG AND FOCUSED EDITOR
   ============================================================ */

#tab-magazines,
#tab-magazines > *,
#tab-magazines .admin-content-only-host,
#tab-magazines .admin-content-only-host > .admin-card,
#magazines-list {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

#tab-magazines .admin-content-only-host {
    grid-template-columns: minmax(0, 1fr) !important;
}

#tab-magazines .admin-content-only-host > .admin-card {
    overflow: hidden;
}

body.admin-body .admin-magazine-store {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 238px), 1fr));
    gap: clamp(.8rem, 1.6vw, 1.15rem);
    width: 100%;
    margin-top: 1rem;
}

body.admin-body .admin-magazine-product {
    display: grid;
    min-width: 0;
    align-content: start;
    gap: .8rem;
    padding: .75rem;
    overflow: hidden;
    border: 1px solid var(--admin-card-border);
    border-radius: 19px;
    background: var(--admin-card-bg);
    color: var(--admin-text);
    box-shadow: 0 14px 34px rgba(15, 23, 42, .1);
}

body.admin-body .admin-magazine-product.is-inactive {
    opacity: .72;
    filter: grayscale(.35);
}

body.admin-body .admin-magazine-cover {
    position: relative;
    display: grid;
    width: 100%;
    aspect-ratio: 3 / 4;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--admin-border);
    border-radius: 14px;
    background: var(--admin-surface-soft);
}

body.admin-body .admin-magazine-cover img {
    display: block;
    width: 100%;
    height: 100%;
    padding: .3rem;
    object-fit: contain;
    object-position: center;
}

body.admin-body .admin-magazine-cover span {
    top: .55rem;
    left: .55rem;
    max-width: calc(100% - 1.1rem);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .18);
    background: rgba(10, 18, 32, .88);
    color: #ffffff !important;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.admin-body .admin-magazine-copy {
    display: grid;
    min-width: 0;
    align-content: start;
    gap: .38rem;
}

body.admin-body .admin-magazine-copy small {
    color: color-mix(in srgb, var(--admin-primary) 76%, var(--admin-text)) !important;
}

body.admin-body .admin-magazine-copy strong {
    color: var(--admin-text) !important;
    line-height: 1.35;
}

body.admin-body .admin-magazine-copy p {
    min-height: 2.8em;
    color: var(--admin-text-muted) !important;
    line-height: 1.45;
}

body.admin-body .admin-magazine-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
    width: 100%;
    margin-top: .35rem;
}

body.admin-body .admin-magazine-actions button {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    padding: .52rem .58rem;
    border-color: var(--admin-border);
    background: var(--admin-surface-raised);
    color: var(--admin-text);
    overflow-wrap: anywhere;
}

body.admin-body .admin-magazine-actions button.primary {
    grid-column: 1 / -1;
    border-color: var(--admin-primary);
    background: var(--admin-primary);
    color: var(--admin-on-primary);
}

body.admin-body .admin-magazine-actions button.danger {
    border-color: color-mix(in srgb, #dc3545 40%, var(--admin-border));
    background: color-mix(in srgb, #dc3545 10%, var(--admin-card-bg));
    color: color-mix(in srgb, #dc3545 76%, var(--admin-text));
}

body.admin-body .admin-magazine-order {
    display: grid;
    grid-template-columns: 42px 24px minmax(0, 1fr) 42px;
    gap: .42rem;
    min-width: 0;
    align-items: center;
    margin-top: .55rem;
    padding-top: .65rem;
    border-top-color: var(--admin-border);
}

body.admin-body .admin-magazine-order button {
    width: 42px;
    height: 42px;
    min-height: 42px;
    border-color: var(--admin-border);
    background: var(--admin-surface-raised);
    color: var(--admin-text);
}

body.admin-body .admin-magazine-drag-handle {
    color: var(--admin-primary);
}

body.admin-body .admin-magazine-order small {
    min-width: 0;
    color: var(--admin-text-muted) !important;
    overflow-wrap: anywhere;
}

/* One scroll owner prevents clipped fields and horizontal drift. */
body.admin-body [data-editor-modal="magazine-form"] {
    align-items: center;
    overflow: hidden;
}

body.admin-body [data-editor-modal="magazine-form"] .admin-editor-dialog {
    width: min(1180px, calc(100vw - 2rem));
    max-width: calc(100vw - 2rem);
    height: min(940px, calc(100dvh - 2rem));
    max-height: calc(100dvh - 2rem);
    overflow: hidden !important;
    border-color: var(--admin-card-border);
    background: var(--admin-card-bg);
}

body.admin-body [data-editor-modal="magazine-form"] .admin-editor-head {
    min-width: 0;
    border-color: var(--admin-border) !important;
    background: var(--admin-surface-soft) !important;
}

body.admin-body [data-editor-modal="magazine-form"] :is(.admin-editor-title-app h2, .admin-editor-title-app p) {
    color: var(--admin-text) !important;
}

/* Public editorial heading rules must never resize administrative window titles. */
body.admin-body .admin-editor-title-app h2 {
    font-size: clamp(1rem, 2vw, 1.3rem) !important;
    line-height: 1.2 !important;
    text-wrap: balance;
}

body.admin-body [data-editor-modal="magazine-form"] .admin-editor-title-app p:last-child,
body.admin-body [data-editor-modal="magazine-form"] .admin-editor-state {
    color: var(--admin-text-muted) !important;
}

body.admin-body [data-editor-modal="magazine-form"] .admin-editor-close {
    border-color: var(--admin-border);
    background: var(--admin-surface-raised);
    color: var(--admin-text);
}

body.admin-body [data-editor-modal="magazine-form"] .admin-editor-close span {
    background: var(--admin-surface-soft);
    color: var(--admin-text);
}

body.admin-body [data-editor-modal="magazine-form"] .admin-editor-body {
    width: 100%;
    min-width: 0;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable;
    overscroll-behavior: contain;
    background: var(--admin-bg) !important;
}

body.admin-body [data-editor-modal="magazine-form"] #magazine-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem 1rem;
    width: 100%;
    max-width: 1100px;
    min-width: 0;
    margin: 0 auto;
    padding: clamp(.9rem, 2vw, 1.35rem) !important;
    border: 1px solid var(--admin-card-border) !important;
    background: var(--admin-card-bg) !important;
    color: var(--admin-text);
    box-shadow: 0 14px 36px rgba(15, 23, 42, .1) !important;
}

body.admin-body #magazine-form > :is(h2, .microcopy, input[type="hidden"], label:has(textarea[name="description"]), textarea[name="extended_description"], .magazine-rich-field, details, .btn-primary, .magazine-save-status) {
    grid-column: 1 / -1;
}

body.admin-body #magazine-form > label:has(#magazine-cover-file) { grid-column: 1; grid-row: 5; }
body.admin-body #magazine-form > label:has(#magazine-pdf-file) { grid-column: 2; grid-row: 5; }
body.admin-body #magazine-form > label:has(input[name="cover_url"]) { grid-column: 1; grid-row: 6; }
body.admin-body #magazine-form > label:has(input[name="pdf_url"]) { grid-column: 2; grid-row: 6; }
body.admin-body #magazine-form > label:has(#magazine-cover-media-select) { grid-column: 1; grid-row: 7; }
body.admin-body #magazine-form > label:has(#magazine-pdf-media-select) { grid-column: 2; grid-row: 7; }

body.admin-body #magazine-form > label,
body.admin-body #magazine-form .magazine-rich-field,
body.admin-body #magazine-form .quill-editor-shell,
body.admin-body #magazine-form details {
    min-width: 0;
    max-width: 100%;
}

body.admin-body #magazine-form :is(.device-upload-ui, .media-library-launcher) {
    height: 100%;
    min-height: 72px;
}

body.admin-body #magazine-form .magazine-upload-group {
    display: grid;
    min-width: 0;
    align-content: start;
    gap: .7rem;
    padding: .85rem;
    border: 1px solid var(--admin-card-border);
    border-radius: 16px;
    background: var(--admin-surface-soft);
}

body.admin-body #magazine-form .magazine-upload-group > header {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: .65rem;
}

body.admin-body #magazine-form .magazine-upload-group > header > span {
    display: grid;
    width: 32px;
    min-width: 32px;
    height: 32px;
    place-items: center;
    border-radius: 10px;
    background: var(--admin-primary);
    color: var(--admin-on-primary);
    font-weight: 800;
}

body.admin-body #magazine-form .magazine-upload-group > header > div {
    display: grid;
    min-width: 0;
    gap: .08rem;
}

body.admin-body #magazine-form .magazine-upload-group > header strong {
    color: var(--admin-text) !important;
}

body.admin-body #magazine-form .magazine-upload-group > header small,
body.admin-body #magazine-form .magazine-file-status {
    color: var(--admin-text-muted) !important;
}

body.admin-body #magazine-form .magazine-file-status {
    min-height: 2.6em;
    margin: 0;
    font-size: .78rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

body.admin-body #magazine-form .magazine-upload-group[data-upload-state="ready"] {
    border-color: color-mix(in srgb, #16a34a 52%, var(--admin-card-border));
    background: color-mix(in srgb, #16a34a 7%, var(--admin-card-bg));
}

body.admin-body #magazine-form .magazine-upload-group[data-upload-state="ready"] .magazine-file-status {
    color: color-mix(in srgb, #16a34a 78%, var(--admin-text)) !important;
}

body.admin-body #magazine-form .magazine-upload-group[data-upload-state="uploading"] {
    border-color: color-mix(in srgb, var(--admin-primary) 58%, var(--admin-card-border));
}

body.admin-body #magazine-form .magazine-upload-group[data-upload-state="error"] {
    border-color: color-mix(in srgb, #dc3545 58%, var(--admin-card-border));
    background: color-mix(in srgb, #dc3545 7%, var(--admin-card-bg));
}

body.admin-body #magazine-form .magazine-upload-group[data-upload-state="error"] .magazine-file-status {
    color: color-mix(in srgb, #dc3545 80%, var(--admin-text)) !important;
}

body.admin-body #magazine-form .magazine-source-alternatives {
    padding: .65rem;
    border: 1px solid var(--admin-border);
    border-radius: 12px;
    background: var(--admin-card-bg);
}

body.admin-body #magazine-form .magazine-source-alternatives > summary {
    cursor: pointer;
    color: var(--admin-text);
    font-size: .8rem;
    font-weight: 750;
}

body.admin-body #magazine-form .magazine-source-alternatives[open] {
    display: grid;
    gap: .7rem;
}

body.admin-body #magazine-form .magazine-source-alternatives[open] > summary {
    margin-bottom: .15rem;
}

body.admin-body #magazine-form .magazine-save-status {
    min-height: 0;
    margin: 0;
    color: var(--admin-text-muted);
}

body.admin-body #magazine-form .magazine-rich-field {
    gap: .7rem;
    padding-top: .2rem;
}

body.admin-body #magazine-form .magazine-rich-field > div:first-child {
    display: grid;
    gap: .22rem;
}

body.admin-body #magazine-form .magazine-rich-editor .ql-editor {
    min-height: clamp(240px, 32vh, 360px);
}

body.admin-body #magazine-form .quill-editor-shell > .ql-container.ql-snow,
body.admin-body #magazine-form .quill-editor-shell > .ql-container.ql-snow > .ql-editor {
    background: var(--admin-input-bg) !important;
    color: var(--admin-text) !important;
}

body.admin-body #magazine-form .ql-editor :is(h1, h2, h3, h4, p, li, blockquote) {
    color: inherit !important;
}

body.admin-body #magazine-form details.builder-group {
    padding: .85rem;
    border-color: var(--admin-card-border);
    background: var(--admin-surface-soft);
    color: var(--admin-text);
}

body.admin-body #magazine-form details.builder-group[open] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem 1rem;
}

body.admin-body #magazine-form details.builder-group > summary,
body.admin-body #magazine-form details.builder-group > label:has(textarea),
body.admin-body #magazine-form details.builder-group > label:has(input[name="embed_url"]) {
    grid-column: 1 / -1;
}

body.admin-body #magazine-form > .check-row {
    align-self: end;
    min-height: 46px;
    padding: .65rem .75rem;
    border: 1px solid var(--admin-border);
    border-radius: 11px;
    background: var(--admin-surface-soft);
}

body.admin-body #magazine-form > .btn-primary {
    width: 100%;
    min-height: 50px;
    margin-top: .2rem;
}

@media (max-width: 760px) {
    body.admin-body .admin-magazine-store {
        grid-template-columns: minmax(0, 1fr);
    }

    body.admin-body .admin-magazine-cover {
        width: min(100%, 230px);
        justify-self: center;
    }

    body.admin-body [data-editor-modal="magazine-form"] {
        padding: .35rem;
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-dialog {
        width: calc(100vw - .7rem);
        max-width: calc(100vw - .7rem);
        height: calc(100dvh - .7rem);
        max-height: calc(100dvh - .7rem);
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-head {
        min-height: 70px;
        padding: .65rem;
    }

    /* The icon is hidden by the shared mobile shell; remove its empty grid track. */
    body.admin-body .admin-editor-title-app {
        grid-template-columns: minmax(0, 1fr) !important;
        flex: 1 1 auto;
        width: auto;
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-state,
    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-close small,
    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-title-app p:last-child {
        display: none;
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-close {
        display: grid;
        width: 42px;
        min-width: 42px;
        height: 42px;
        min-height: 42px;
        grid-template-columns: 1fr;
        place-items: center;
        padding: 0;
        border-radius: 12px;
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-close span {
        width: 30px;
        height: 30px;
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-body {
        padding: .55rem;
        scrollbar-gutter: auto;
    }

    body.admin-body [data-editor-modal="magazine-form"] #magazine-form {
        grid-template-columns: minmax(0, 1fr);
        gap: .75rem;
        padding: .75rem !important;
    }

    body.admin-body #magazine-form > *,
    body.admin-body #magazine-form > label:has(#magazine-cover-file),
    body.admin-body #magazine-form > label:has(#magazine-pdf-file),
    body.admin-body #magazine-form > label:has(input[name="cover_url"]),
    body.admin-body #magazine-form > label:has(input[name="pdf_url"]),
    body.admin-body #magazine-form > label:has(#magazine-cover-media-select),
    body.admin-body #magazine-form > label:has(#magazine-pdf-media-select) {
        grid-column: 1;
        grid-row: auto;
    }

    body.admin-body #magazine-form details.builder-group[open] {
        grid-template-columns: minmax(0, 1fr);
    }

    body.admin-body #magazine-form details.builder-group > * {
        grid-column: 1 !important;
    }

    body.admin-body #magazine-form .magazine-rich-editor .ql-editor {
        min-height: 230px;
    }

    body.admin-body .admin-magazine-actions {
        grid-template-columns: minmax(0, 1fr);
    }

    body.admin-body .admin-magazine-actions button.primary {
        grid-column: 1;
    }
}

/* SINAPSE assistant uses the same active palette as the rest of the OS. */
body.admin-body .arturo-chat-panel {
    border-color: var(--admin-card-border) !important;
    background: var(--admin-card-bg) !important;
    color: var(--admin-text) !important;
}

body.admin-body .arturo-chat-panel > header {
    border-color: var(--admin-border);
    background: linear-gradient(135deg, color-mix(in srgb, var(--admin-primary) 42%, #11182c), #11182c);
    color: #ffffff;
}

body.admin-body :is(.arturo-context, .arturo-topic-shell, .arturo-chat-log) {
    border-color: var(--admin-border) !important;
    background: var(--admin-surface-soft) !important;
    color: var(--admin-text-muted) !important;
}

body.admin-body :is(.arturo-topic-grid button, .arturo-topic-questions button, .arturo-quick-prompts button, .arturo-answer-actions button, .arturo-related, .arturo-feedback button, #arturo-chat-form) {
    border-color: var(--admin-border) !important;
    background: var(--admin-card-bg) !important;
    color: var(--admin-text) !important;
}

body.admin-body :is(.arturo-topic-shell strong, .arturo-message-content h3) {
    color: var(--admin-text) !important;
}

body.admin-body :is(.arturo-topic-shell small, .arturo-message-content small, .arturo-local-note, .arturo-feedback, .arturo-write-fallback summary) {
    color: var(--admin-text-muted) !important;
}

body.admin-body .arturo-message-content {
    border-color: var(--admin-border) !important;
    background: var(--admin-surface-raised) !important;
    color: var(--admin-text) !important;
}

body.admin-body .arturo-message-user .arturo-message-content {
    background: #174c78 !important;
    color: #ffffff !important;
}

body.admin-body #arturo-chat-input {
    color: var(--admin-text) !important;
}

body.admin-body #arturo-chat-form > button {
    background: #174c78 !important;
    color: #ffffff !important;
}

body.admin-body :is(.visual-editor-area, .news-rich-editor, .magazine-rich-editor, .email-rich-editor, .ql-container, .ql-editor) {
    border-color: var(--admin-border) !important;
    background: var(--admin-input-bg) !important;
    color: var(--admin-text) !important;
}

body.admin-body :is(.admin-tour-card, .share-sheet, .site-health-modal, .admin-editor-dialog, .email-mass-send-dialog) :is(h1, h2, h3, h4, label, legend, summary, strong) {
    color: var(--admin-text) !important;
}

body.admin-body :is(.admin-tour-card, .share-sheet, .site-health-modal, .admin-editor-dialog, .email-mass-send-dialog) :is(p, li, small) {
    color: var(--admin-text-muted) !important;
}

/* Keep content previews faithful; only their surrounding application chrome is themed. */
body.admin-body :is(.email-preview-frame, .builder-live-preview, .template-layout-preview, .profile-logo-preview, .admin-asset-backplate, .resend-template-visual-editor, .resend-visual-layout iframe) {
    background: #ffffff !important;
    color: #172033 !important;
}

@media (prefers-reduced-motion: reduce) {
    body.admin-body *,
    body.admin-body *::before,
    body.admin-body *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* Mobile admin is an application shell; the desktop sidebar never becomes a drawer. */
@media (max-width: 980px) {
    body.admin-body {
        display: block;
        min-height: 100dvh;
        padding-top: calc(4.25rem + env(safe-area-inset-top));
        padding-bottom: calc(4.55rem + env(safe-area-inset-bottom));
    }

    body.admin-body .admin-sidebar,
    body.admin-body .admin-menu-toggle {
        display: none !important;
    }

    body.admin-body .admin-global-topbar {
        position: fixed;
        inset: 0 0 auto;
        z-index: 140;
        width: 100%;
        min-height: calc(4.25rem + env(safe-area-inset-top));
        padding: calc(.55rem + env(safe-area-inset-top)) .75rem .55rem;
        gap: .5rem;
    }

    body.admin-body .admin-main {
        width: 100%;
        min-height: calc(100dvh - 4.25rem);
        padding: clamp(.8rem, 3vw, 1.25rem);
        padding-bottom: calc(1.5rem + env(safe-area-inset-bottom));
    }

    .admin-mobile-home {
        display: grid;
        width: var(--admin-final-touch);
        height: var(--admin-final-touch);
        min-height: var(--admin-final-touch);
        flex: 0 0 var(--admin-final-touch);
        place-items: center;
        padding: 0;
        border: 1px solid var(--admin-border);
        border-radius: 13px;
        background: var(--admin-primary);
        color: var(--admin-on-primary);
    }

    .admin-mobile-home svg {
        width: 22px;
        height: 22px;
        fill: currentColor;
    }

    .admin-topbar-identity {
        flex: 1 1 auto;
        gap: .5rem;
    }

    .admin-topbar-identity strong {
        font-size: .62rem;
    }

    .admin-topbar-identity small {
        max-width: 18ch;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .admin-topbar-actions {
        flex: 0 0 auto;
        gap: .35rem;
    }

    .admin-site-exit {
        width: var(--admin-final-touch);
        min-width: var(--admin-final-touch);
        padding: 0;
    }

    .admin-site-exit span:last-child,
    .admin-theme-label {
        display: none;
    }

    .admin-theme-control {
        gap: .15rem;
        padding: .2rem;
        border-radius: 12px;
    }

    .admin-theme-options {
        gap: .12rem;
    }

    body.admin-body .admin-theme-options button {
        width: 36px;
        min-width: 36px;
        min-height: 36px !important;
        justify-content: center;
        padding: 0;
        overflow: hidden;
        font-size: 0;
    }

    body.admin-body .admin-theme-options button span {
        font-size: .85rem;
    }

    .admin-mobile-launcher:not([hidden]) {
        position: fixed;
        inset: calc(4.25rem + env(safe-area-inset-top)) 0 calc(4.55rem + env(safe-area-inset-bottom));
        z-index: 115;
        display: block;
        width: 100%;
        padding: clamp(1rem, 5vw, 1.5rem);
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        background: var(--admin-bg);
        color: var(--admin-text);
    }

    .admin-mobile-launcher > header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
    }

    .admin-mobile-launcher > header :is(.eyebrow, h1) {
        color: var(--admin-text);
    }

    .admin-mobile-launcher > header h1 {
        margin: 0;
        font-size: clamp(1.85rem, 9vw, 2.65rem);
    }

    .admin-mobile-launcher > header a {
        min-height: var(--admin-final-touch);
        padding: .6rem .75rem;
        border: 1px solid var(--admin-border);
        border-radius: 12px;
        background: var(--admin-card-bg);
        color: var(--admin-text);
        font-size: .62rem;
        font-weight: 800;
    }

    .admin-mobile-launcher-copy {
        margin: .4rem 0 1.15rem;
        color: var(--admin-text-muted);
        font-size: .78rem;
    }

    .admin-mobile-edit-mode {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        margin: 0 0 1rem;
        padding: .8rem .9rem;
        border: 1px solid var(--admin-card-border);
        border-radius: 17px;
        background: var(--admin-card-bg);
        color: var(--admin-text);
    }

    .admin-mobile-edit-mode > span {
        display: grid;
        gap: .15rem;
    }

    .admin-mobile-edit-mode strong {
        color: var(--admin-text);
        font-size: .68rem;
    }

    .admin-mobile-edit-mode small {
        color: var(--admin-text-muted);
        font-size: .52rem;
    }

    body.admin-body .admin-mobile-edit-mode input {
        position: relative;
        appearance: none;
        width: 48px;
        height: 28px;
        flex: 0 0 48px;
        padding: 0;
        border: 1px solid var(--admin-border);
        border-radius: 999px;
        background: var(--admin-surface-soft);
        cursor: pointer;
        transition: background .18s ease, border-color .18s ease;
    }

    body.admin-body .admin-mobile-edit-mode input::before {
        position: absolute;
        top: 3px;
        left: 3px;
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: var(--admin-text-muted);
        box-shadow: 0 3px 8px rgba(15, 23, 42, .22);
        content: "";
        transition: transform .18s ease, background .18s ease;
    }

    body.admin-body .admin-mobile-edit-mode input:checked {
        border-color: var(--admin-primary);
        background: color-mix(in srgb, var(--admin-primary) 28%, var(--admin-card-bg));
    }

    body.admin-body .admin-mobile-edit-mode input:checked::before {
        background: var(--admin-primary);
        transform: translateX(20px);
    }

    .admin-mobile-app-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .8rem;
    }

    body.admin-body .admin-mobile-app {
        display: grid;
        min-width: 0;
        min-height: 132px !important;
        align-content: center;
        justify-items: start;
        gap: .55rem;
        padding: .9rem;
        border: 1px solid var(--admin-card-border);
        border-radius: 22px;
        background: var(--admin-card-bg);
        color: var(--admin-text);
        text-align: left;
        box-shadow: 0 14px 34px rgba(15, 23, 42, .1);
    }

    .admin-mobile-app > span:first-child {
        display: grid;
        width: 48px;
        height: 48px;
        place-items: center;
        border-radius: 15px;
        background: linear-gradient(145deg, var(--admin-primary), color-mix(in srgb, var(--admin-primary) 62%, #22b8cf));
        color: var(--admin-on-primary);
        box-shadow: 0 10px 22px color-mix(in srgb, var(--admin-primary) 24%, transparent);
    }

    .admin-mobile-app svg {
        width: 25px;
        height: 25px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.7;
    }

    .admin-mobile-app-copy {
        display: grid;
        gap: .15rem;
        min-width: 0;
    }

    .admin-mobile-app-copy strong {
        color: var(--admin-text);
        font-size: .72rem;
    }

    .admin-mobile-app-copy small {
        color: var(--admin-text-muted);
        font-size: .55rem;
        line-height: 1.35;
    }

    body.admin-body .admin-mobile-app[data-active="true"] {
        border-color: var(--admin-primary);
        box-shadow: 0 0 0 3px color-mix(in srgb, var(--admin-primary) 16%, transparent), 0 16px 36px rgba(15, 23, 42, .12);
    }

    body.admin-body .admin-bottom-nav {
        display: grid !important;
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        grid-auto-rows: 52px;
        width: 100%;
        min-width: 0;
        min-height: calc(4.55rem + env(safe-area-inset-bottom));
        padding: .38rem .4rem calc(.38rem + env(safe-area-inset-bottom));
        border-top-color: var(--admin-border);
        background: color-mix(in srgb, var(--admin-card-bg) 94%, transparent);
        backdrop-filter: blur(18px) saturate(135%);
    }

    body.admin-body .admin-bottom-nav :is(button, a) {
        display: grid;
        min-width: 0;
        width: 100%;
        min-height: 52px;
        place-items: center;
        align-content: center;
        gap: .18rem;
        padding: .3rem .15rem;
        border: 0;
        border-radius: 13px;
        background: transparent;
        color: var(--admin-text-muted);
        text-align: center;
        white-space: normal;
        box-shadow: none;
    }

    .admin-bottom-nav :is(button, a) svg {
        width: 21px;
        height: 21px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.7;
    }

    .admin-bottom-nav :is(button, a) small {
        color: inherit;
        font-size: .55rem;
        font-weight: 800;
    }

    body.admin-body .admin-bottom-nav .admin-tab.active,
    body.admin-body .admin-bottom-nav [data-mobile-action="home"][aria-pressed="true"] {
        background: color-mix(in srgb, var(--admin-primary) 14%, transparent);
        color: var(--admin-primary);
    }

    body.admin-body .admin-context-appbar {
        display: none;
    }
}

@media (max-width: 420px) {
    .admin-topbar-identity > div {
        display: none;
    }

    .admin-mobile-app-grid {
        gap: .6rem;
    }

    body.admin-body .admin-mobile-app {
        min-height: 120px !important;
        padding: .75rem;
        border-radius: 18px;
    }
}

/* Final cascade lock for the magazine modal. Keep this block last. */
body.admin-body [data-editor-modal="magazine-form"] {
    padding:
        max(.65rem, env(safe-area-inset-top))
        max(.65rem, env(safe-area-inset-right))
        max(.65rem, env(safe-area-inset-bottom))
        max(.65rem, env(safe-area-inset-left));
    overflow: hidden;
    background: rgba(8, 13, 29, .88);
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.admin-body [data-editor-modal="magazine-form"] .admin-editor-dialog {
    width: min(1180px, calc(100vw - 1.3rem));
    max-width: min(1180px, calc(100vw - 1.3rem));
    height: min(940px, calc(100vh - 1.3rem));
    height: min(940px, calc(100dvh - 1.3rem));
    max-height: calc(100vh - 1.3rem);
    max-height: calc(100dvh - 1.3rem);
    overflow: hidden !important;
    border-radius: 20px;
}

body.admin-body [data-editor-modal="magazine-form"] .admin-editor-body {
    min-height: 0;
    padding: clamp(.65rem, 1.8vw, 1.1rem);
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 760px) {
    body.admin-body [data-editor-modal="magazine-form"] {
        align-items: stretch;
        padding:
            max(.25rem, env(safe-area-inset-top))
            max(.25rem, env(safe-area-inset-right))
            max(.25rem, env(safe-area-inset-bottom))
            max(.25rem, env(safe-area-inset-left));
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-dialog {
        width: 100%;
        max-width: 100%;
        height: calc(100vh - .5rem);
        height: calc(100dvh - .5rem);
        max-height: calc(100vh - .5rem);
        max-height: calc(100dvh - .5rem);
        border-radius: 15px;
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-head {
        min-height: 62px;
        padding: .55rem .62rem;
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-body {
        padding: .5rem;
        scrollbar-gutter: auto;
    }

    body.admin-body [data-editor-modal="magazine-form"] #magazine-form {
        grid-template-columns: minmax(0, 1fr);
        gap: .72rem;
        padding: .7rem !important;
    }

    body.admin-body #magazine-form > * {
        grid-column: 1;
        grid-row: auto;
    }

    body.admin-body #magazine-form :is(input, textarea, select) {
        font-size: 16px;
    }
}

@media (max-height: 620px) and (orientation: landscape) {
    body.admin-body [data-editor-modal="magazine-form"] {
        padding: .2rem;
    }

    body.admin-body [data-editor-modal="magazine-form"] .admin-editor-dialog {
        width: calc(100vw - .4rem);
        max-width: calc(100vw - .4rem);
        height: calc(100vh - .4rem);
        height: calc(100dvh - .4rem);
        max-height: calc(100vh - .4rem);
        max-height: calc(100dvh - .4rem);
        border-radius: 12px;
    }
}

/* ===== Fuente: admin-experience-2026.css ===== */
/*
 * EL CABEZAL WOS · Experiencia administrativa 2026
 * Sistema común para navegación, aplicativos, formularios, modales y Email Studio.
 */

.admin-body {
    --admin-surface: rgba(255, 255, 255, .88);
    --admin-surface-strong: #ffffff;
    --admin-surface-muted: rgba(241, 247, 249, .94);
    --admin-ink: #14283a;
    --admin-muted: #566c7b;
    --admin-line: rgba(27, 71, 98, .16);
    --admin-accent: #2c7fa2;
    --admin-accent-strong: #1b4762;
    --admin-success: #119c53;
    --admin-warning: #ca7510;
    --admin-danger: #c62d42;
    --admin-radius-sm: 12px;
    --admin-radius-md: 18px;
    --admin-radius-lg: 26px;
    --admin-shadow: 0 14px 38px rgba(33, 20, 58, .09);
    --admin-shadow-raised: 0 24px 60px rgba(33, 20, 58, .16);
    --admin-ease: 180ms cubic-bezier(.2, .8, .2, 1);
    color: var(--admin-ink);
    font-family: 'Space Mono', 'SpaceMono-Regular', monospace;
}

.admin-body,
.admin-body * {
    box-sizing: border-box;
}

.admin-body button,
.admin-body input,
.admin-body select,
.admin-body textarea {
    font: inherit;
}

.admin-body :is(h1, h2, h3, .brand-mark, .login-brand-mark) {
    font-family: 'E4 Digital Final', 'VT323', monospace;
}

.admin-body button,
.admin-body a,
.admin-body input,
.admin-body select,
.admin-body textarea,
.admin-body summary {
    transition:
        border-color var(--admin-ease),
        background-color var(--admin-ease),
        color var(--admin-ease),
        box-shadow var(--admin-ease),
        transform var(--admin-ease),
        opacity var(--admin-ease);
}

.admin-body :focus-visible {
    outline: 3px solid color-mix(in srgb, var(--admin-accent) 34%, transparent);
    outline-offset: 2px;
}

/* Acceso: lenguaje azul de la interfaz pública, sin alterar su tipografía. */
.admin-body .login-overlay {
    padding: clamp(1rem, 4vw, 3rem);
    background:
        radial-gradient(circle at 12% 12%, rgba(76, 125, 255, .22), transparent 30rem),
        linear-gradient(145deg, #eef3ff, #dce7fb 55%, #eef1f7);
}

.admin-body .login-shell {
    width: min(1040px, 100%);
    min-height: min(680px, calc(100svh - 2rem));
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
    margin: auto;
    border: 1px solid rgba(30, 30, 70, .12);
    border-radius: 32px;
    background: #fff;
    box-shadow: 0 32px 90px rgba(30, 30, 70, .2);
    overflow: hidden;
}

.admin-body .login-brand-panel {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(2rem, 5vw, 4.5rem);
    color: #fff;
    background:
        linear-gradient(155deg, rgba(76, 125, 255, .32), transparent 46%),
        repeating-linear-gradient(0deg, transparent 0 41px, rgba(255,255,255,.055) 42px),
        repeating-linear-gradient(90deg, transparent 0 41px, rgba(255,255,255,.055) 42px),
        #1e1e46;
}

.admin-body .login-brand-mark {
    width: fit-content;
    color: #fff;
    font-family: var(--title-font, inherit);
    font-size: clamp(1.65rem, 4vw, 2.5rem);
    text-decoration: none;
}

.admin-body .login-brand-panel h2 {
    max-width: 10ch;
    margin: .65rem 0 1rem;
    color: #fff;
    font-size: clamp(2.4rem, 5vw, 4.7rem);
    line-height: .92;
    text-wrap: balance;
}

.admin-body .login-brand-panel p { max-width: 46ch; line-height: 1.65; }
.admin-body .login-brand-panel .eyebrow { color: #b9ccff; }
.admin-body .login-brand-panel ul { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.admin-body .login-brand-panel li::before { content: '✓'; margin-right: .65rem; color: #8fb0ff; }

.admin-body .login-card {
    width: 100%;
    max-width: none;
    min-height: 100%;
    display: grid;
    align-content: center;
    border: 1px solid var(--admin-line);
    border-width: 0;
    border-radius: 0;
    padding: clamp(2rem, 5vw, 4rem);
    background:
        radial-gradient(circle at 100% 0, rgba(44, 127, 162, .1), transparent 32%),
        var(--admin-surface-strong);
    box-shadow: var(--admin-shadow-raised);
}

.admin-body .login-card h1 { font-size: clamp(2rem, 4vw, 3rem); }
.admin-body .login-intro { margin: -.45rem 0 1.25rem; color: var(--admin-muted); }

.admin-body .login-card .btn-primary {
    border-color: var(--admin-accent-strong);
    background: linear-gradient(135deg, var(--admin-accent-strong), var(--admin-accent));
    color: #fff;
    box-shadow: 0 12px 28px rgba(44, 127, 162, .25);
}

.admin-body .login-card .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(44, 127, 162, .32);
}

/* Información de Sinapse vive en la barra superior, no en la navegación lateral. */
.admin-body .admin-wos-menu { position: relative; }
.admin-body .admin-wos-menu > summary {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .55rem .8rem;
    border: 1px solid var(--admin-line);
    border-radius: 12px;
    background: #fff;
    color: var(--admin-ink);
    cursor: pointer;
    list-style: none;
}
.admin-body .admin-wos-menu > summary::-webkit-details-marker { display: none; }
.admin-body .admin-wos-menu > summary > span:first-child { color: var(--admin-accent); }
.admin-body .admin-wos-menu > summary small { color: var(--admin-muted); }
.admin-body .admin-wos-menu-panel {
    position: absolute;
    top: calc(100% + .65rem);
    right: 0;
    z-index: 80;
    width: min(330px, calc(100vw - 2rem));
    display: grid;
    gap: .5rem;
    padding: .85rem;
    border: 1px solid var(--admin-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--admin-shadow-raised);
}
.admin-body .admin-wos-menu-panel > div { display: grid; gap: .2rem; padding: .4rem .45rem .7rem; border-bottom: 1px solid var(--admin-line); }
.admin-body .admin-wos-menu-panel > a,
.admin-body .admin-wos-menu-panel > button {
    min-height: 42px;
    display: flex;
    align-items: center;
    padding: .65rem .75rem;
    border: 1px solid transparent;
    border-radius: 10px;
    background: #f3f6fc;
    color: var(--admin-ink);
    text-decoration: none;
    cursor: pointer;
}
.admin-body .admin-wos-menu-panel > a:hover,
.admin-body .admin-wos-menu-panel > button:hover { border-color: rgba(44, 127, 162,.28); background: #edf7fa; }
.admin-body .admin-wos-license { padding: .45rem; color: var(--admin-muted); line-height: 1.45; }

/* Navegación de aplicaciones. */
.admin-body .admin-sidebar {
    border-right: 1px solid var(--admin-line);
    background:
        radial-gradient(circle at 20% 5%, rgba(44, 127, 162, .08), transparent 28%),
        rgba(249, 249, 252, .96);
}

.admin-body .admin-app-groups {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: .45rem;
    padding: .6rem;
    border: 1px solid var(--admin-line);
    border-radius: 16px;
    background: rgba(255, 255, 255, .84);
    box-shadow: 0 8px 24px rgba(33, 20, 58, .06);
}

.admin-body.admin-edit-mode-active .admin-app-groups {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

.admin-body .admin-app-group {
    min-height: 56px;
    border-radius: 12px;
}

.admin-body .admin-app-group:hover {
    background: rgba(44, 127, 162, .07);
    transform: translateY(-1px);
}

.admin-body .admin-app-group.active {
    background: linear-gradient(145deg, #fff, rgba(44, 127, 162, .08));
    box-shadow: inset 0 0 0 1px rgba(44, 127, 162, .18);
}

.admin-body .admin-app-page {
    padding: .7rem .2rem 1rem;
}

.admin-body .admin-app-page-head {
    padding: .55rem .65rem .8rem;
}

.admin-body .admin-app-page-head strong {
    font-size: .92rem;
}

.admin-body .admin-app-page-head small {
    line-height: 1.4;
}

.admin-body .admin-app-grid {
    display: grid;
    gap: .55rem;
}

.admin-body .admin-tab {
    position: relative;
    min-height: 68px;
    padding: .65rem .75rem;
    border: 1px solid transparent;
    border-radius: 14px;
    background: transparent;
    text-align: left;
}

.admin-body .admin-tab::after {
    content: "";
    position: absolute;
    top: 14px;
    right: 8px;
    bottom: 14px;
    width: 3px;
    border-radius: 9px;
    background: var(--admin-accent);
    opacity: 0;
    transform: scaleY(.35);
}

.admin-body .admin-tab:hover {
    border-color: rgba(44, 127, 162, .1);
    background: rgba(255, 255, 255, .72);
    transform: translateX(2px);
}

.admin-body .admin-tab.active {
    border-color: rgba(44, 127, 162, .26);
    background: linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(44, 127, 162, .08));
    box-shadow: 0 9px 24px rgba(33, 20, 58, .08);
}

.admin-body .admin-tab.active::after {
    opacity: 1;
    transform: scaleY(1);
}

.admin-body .admin-tab > span:first-child {
    border-radius: 11px;
}

.admin-body .admin-tab-copy {
    min-width: 0;
}

.admin-body .admin-tab-copy strong {
    display: block;
    overflow: hidden;
    color: var(--admin-ink);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-body .admin-tab-copy small {
    display: block;
    overflow: hidden;
    margin-top: .15rem;
    color: var(--admin-muted);
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Área de trabajo. */
.admin-body .admin-main {
    min-width: 0;
    padding: clamp(1rem, 2.5vw, 2rem);
}

.admin-body .admin-panel {
    width: min(100%, 1480px);
    margin-inline: auto;
}

.admin-body .admin-heading {
    display: flex;
    gap: 1rem 2rem;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: clamp(1.2rem, 2.5vw, 2rem);
    padding: clamp(1rem, 2vw, 1.5rem);
    border: 1px solid var(--admin-line);
    border-radius: var(--admin-radius-lg);
    background:
        radial-gradient(circle at 95% 0, rgba(44, 127, 162, .11), transparent 34%),
        var(--admin-surface);
    box-shadow: var(--admin-shadow);
}

.admin-body .admin-heading > div:first-child {
    min-width: 0;
}

.admin-body .admin-heading h1 {
    max-width: 18ch;
    margin: .2rem 0 .45rem;
    font-size: clamp(1.75rem, 3vw, 2.8rem);
    line-height: .98;
    text-wrap: balance;
}

.admin-body .admin-heading .microcopy {
    max-width: 72ch;
    margin: 0;
    line-height: 1.55;
}

.admin-body .admin-heading-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    justify-content: flex-end;
}

/* Tarjetas y estadísticas. */
.admin-body .admin-card,
.admin-body .form-card {
    min-width: 0;
    padding: clamp(1rem, 2vw, 1.5rem);
    border: 1px solid var(--admin-line);
    border-radius: var(--admin-radius-md);
    background: var(--admin-surface);
    box-shadow: var(--admin-shadow);
}

.admin-body .admin-card > :first-child,
.admin-body .form-card > :first-child {
    margin-top: 0;
}

.admin-body .admin-card > :last-child,
.admin-body .form-card > :last-child {
    margin-bottom: 0;
}

.admin-body .stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.admin-body .stat-card {
    position: relative;
    min-width: 0;
    min-height: 142px;
    display: grid;
    align-content: space-between;
    gap: .8rem;
    padding: 1.15rem;
    border: 1px solid var(--admin-line);
    border-radius: var(--admin-radius-md);
    background: var(--admin-surface-strong);
    box-shadow: 0 10px 26px rgba(33, 20, 58, .07);
    overflow: hidden;
}

.admin-body .stat-card::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--admin-accent-strong), var(--admin-accent));
    opacity: .72;
}

.admin-body .stat-card strong {
    font-size: clamp(2.2rem, 4vw, 3.6rem);
    line-height: .8;
}

.admin-body .stat-card span {
    color: var(--admin-muted);
    line-height: 1.35;
}

/* Botones Uiverse adaptados. */
.admin-body .btn,
.admin-body .admin-heading-actions button,
.admin-body .admin-content-app-button,
.admin-body .form-actions button,
.admin-body .form-actions a {
    min-height: 44px;
    border-radius: 12px;
}

.admin-body .btn {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.admin-body .btn::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(110deg, transparent 20%, rgba(255, 255, 255, .22), transparent 80%);
    transform: translateX(-120%);
    transition: transform 420ms ease;
}

.admin-body .btn:hover::after {
    transform: translateX(120%);
}

.admin-body .btn:hover {
    transform: translateY(-2px);
}

.admin-body .btn:active {
    transform: translateY(0) scale(.985);
}

.admin-body .btn-primary {
    border-color: var(--admin-accent-strong);
    background: linear-gradient(135deg, var(--admin-accent-strong), var(--admin-accent));
    box-shadow: 0 9px 20px rgba(44, 127, 162, .18);
}

.admin-body .btn-secondary {
    border-color: var(--admin-line);
    background: rgba(255, 255, 255, .88);
    color: var(--admin-ink);
}

/* Formularios uniformes. */
.admin-body .form-stack {
    display: grid;
    gap: 1rem;
}

.admin-body .form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem 1rem;
}

.admin-body label {
    min-width: 0;
    display: grid;
    gap: .4rem;
    color: var(--admin-ink);
    font-weight: 800;
    line-height: 1.3;
}

.admin-body input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.admin-body select,
.admin-body textarea {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    padding: .78rem .9rem;
    border: 1px solid rgba(30, 30, 70, .16);
    border-radius: var(--admin-radius-sm);
    background: rgba(255, 255, 255, .96);
    color: var(--admin-ink);
    box-shadow: inset 0 1px 2px rgba(33, 20, 58, .03);
}

.admin-body textarea {
    min-height: 112px;
    resize: vertical;
    line-height: 1.55;
}

.admin-body input:hover,
.admin-body select:hover,
.admin-body textarea:hover {
    border-color: rgba(44, 127, 162, .36);
}

.admin-body input:focus,
.admin-body select:focus,
.admin-body textarea:focus {
    outline: 0;
    border-color: var(--admin-accent);
    box-shadow: 0 0 0 4px rgba(44, 127, 162, .12);
}

.admin-body input::placeholder,
.admin-body textarea::placeholder {
    color: #9691a4;
    opacity: 1;
}

.admin-body .check-row {
    min-height: 44px;
    display: flex;
    gap: .65rem;
    align-items: center;
    padding: .65rem .8rem;
    border: 1px solid var(--admin-line);
    border-radius: 12px;
    background: rgba(255, 255, 255, .64);
}

.admin-body .check-row input {
    width: 20px;
    height: 20px;
    accent-color: var(--admin-accent);
}

.admin-body .form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    align-items: center;
    padding-top: .35rem;
}

.admin-body .form-status {
    min-height: 1.4em;
    color: var(--admin-muted);
    line-height: 1.45;
}

/* Aplicativos de contenido. */
.admin-body .admin-content-app-strip,
.admin-body .email-app-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
    margin-bottom: 1.2rem;
    padding: .9rem;
    border: 1px solid var(--admin-line);
    border-radius: var(--admin-radius-md);
    background: rgba(255, 255, 255, .64);
}

.admin-body .admin-content-app-button {
    min-width: 0;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: .2rem .75rem;
    align-items: center;
    padding: .8rem;
    border: 1px solid var(--admin-line);
    background: var(--admin-surface-strong);
    text-align: left;
    box-shadow: 0 7px 18px rgba(33, 20, 58, .05);
}

.admin-body .admin-content-app-button > span {
    grid-row: 1 / 3;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--admin-accent-strong), var(--admin-accent));
    color: #fff;
}

.admin-body .admin-content-app-button strong,
.admin-body .admin-content-app-button small {
    min-width: 0;
}

.admin-body .admin-content-app-button small {
    color: var(--admin-muted);
    line-height: 1.3;
}

.admin-body .admin-content-app-button:hover {
    border-color: rgba(44, 127, 162, .3);
    transform: translateY(-2px);
    box-shadow: 0 12px 25px rgba(33, 20, 58, .1);
}

/* Listas y filas operativas. */
.admin-body .mini-row,
.admin-body .builder-mini-row,
.admin-body .email-campaign-row {
    min-width: 0;
    gap: .75rem;
    padding: .85rem;
    border: 1px solid var(--admin-line);
    border-radius: 14px;
    background: rgba(255, 255, 255, .82);
}

.admin-body .mini-row + .mini-row,
.admin-body .builder-mini-row + .builder-mini-row {
    margin-top: .6rem;
}

.admin-body .mini-row button,
.admin-body .builder-mini-row button {
    min-height: 38px;
    border-radius: 10px;
}

/* Modales: cabecera fija, contenido desplazable y acciones visibles. */
.admin-body .admin-editor-modal,
.admin-body .email-mass-send-modal,
.admin-body .resend-template-modal {
    padding: clamp(.7rem, 2vw, 1.4rem);
    background: rgba(16, 10, 28, .62);
    backdrop-filter: blur(10px);
}

.admin-body .admin-editor-sheet,
.admin-body .email-mass-send-dialog,
.admin-body .resend-template-form {
    width: min(960px, 100%);
    max-height: calc(100svh - clamp(1.4rem, 4vw, 2.8rem));
    margin: auto;
    border: 1px solid rgba(255, 255, 255, .38);
    border-radius: var(--admin-radius-lg);
    background: #f8f8fb;
    box-shadow: var(--admin-shadow-raised);
    overflow: auto;
    overscroll-behavior: contain;
}

.admin-body .admin-editor-sheet > header,
.admin-body .email-mass-send-dialog > header,
.admin-body .resend-template-editor-head {
    position: sticky;
    top: 0;
    z-index: 8;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--admin-line);
    background: rgba(248, 248, 251, .94);
    backdrop-filter: blur(16px);
}

.admin-body .admin-editor-sheet .form-actions,
.admin-body .resend-template-form > .form-actions {
    position: sticky;
    bottom: 0;
    z-index: 7;
    margin: 0 -.2rem -.2rem;
    padding: .85rem;
    border-top: 1px solid var(--admin-line);
    background: rgba(248, 248, 251, .96);
    backdrop-filter: blur(16px);
}

.admin-body [aria-label="Cerrar"],
.admin-body .news-close,
.admin-body .resend-template-close {
    width: 42px;
    height: 42px;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--admin-line);
    border-radius: 12px;
    background: #fff;
    color: var(--admin-ink);
}

.admin-body [aria-label="Cerrar"]:hover,
.admin-body .resend-template-close:hover {
    border-color: rgba(198, 45, 66, .34);
    background: rgba(198, 45, 66, .08);
    color: var(--admin-danger);
}

/* Calendario: editor y lista con alturas naturales. */
.admin-body #tab-calendar-admin .admin-two-col,
.admin-body .calendar-admin-layout {
    display: grid;
    grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr);
    gap: 1rem;
    align-items: start;
}

.admin-body #calendar-events-admin {
    min-width: 0;
}

.admin-body #calendar-events-admin .mini-row {
    grid-template-columns: minmax(0, 1fr) auto auto auto;
}

/* Centro de notificaciones. */
.admin-body .notification-center-card {
    display: grid;
    gap: 1.1rem;
}

.admin-body .notification-channel-guide {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.admin-body .notification-channel-guide article {
    min-height: 112px;
    align-content: start;
    border-radius: 16px;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(44, 127, 162, .055));
}

.admin-body .notification-channel-guide article > span {
    border-radius: 12px;
    background: linear-gradient(135deg, var(--admin-accent-strong), var(--admin-accent));
}

/* Email Studio: flujo lineal comprensible. */
.admin-body #tab-gifts {
    --email-step: #2c7fa2;
}

.admin-body .email-studio-tabs {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .45rem;
    padding: .55rem;
    border: 1px solid var(--admin-line);
    border-radius: 16px;
    background: rgba(248, 248, 251, .94);
    box-shadow: 0 12px 30px rgba(33, 20, 58, .08);
    backdrop-filter: blur(16px);
}

.admin-body .email-studio-tabs button {
    min-height: 48px;
    padding: .65rem .75rem;
    border: 1px solid transparent;
    border-radius: 11px;
    background: transparent;
    color: var(--admin-muted);
}

.admin-body .email-studio-tabs button:hover {
    background: rgba(44, 127, 162, .06);
    color: var(--admin-ink);
}

.admin-body .email-studio-tabs button.active {
    border-color: rgba(44, 127, 162, .2);
    background: linear-gradient(135deg, var(--admin-accent-strong), var(--admin-accent));
    color: #fff;
    box-shadow: 0 8px 20px rgba(44, 127, 162, .2);
}

.admin-body .email-studio-view {
    margin-top: 1.15rem;
}

.admin-body .email-studio-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
    gap: 1rem;
    align-items: start;
}

.admin-body .email-composer-column {
    min-width: 0;
    display: grid;
    gap: 1rem;
}

.admin-body .email-preview-column {
    position: sticky;
    top: 78px;
    min-width: 0;
}

.admin-body .email-campaign-basics,
.admin-body .email-message-editor,
.admin-body .email-preview-card {
    border-radius: var(--admin-radius-md);
}

.admin-body .email-campaign-basics::before,
.admin-body .email-message-editor::before,
.admin-body .email-preview-card::before {
    display: inline-grid;
    place-items: center;
    width: 30px;
    height: 30px;
    margin-bottom: .65rem;
    border-radius: 50%;
    background: var(--email-step);
    color: #fff;
    font-weight: 900;
}

.admin-body .email-campaign-basics::before {
    content: "1";
}

.admin-body .email-message-editor::before {
    content: "2";
}

.admin-body .email-preview-card::before {
    content: "3";
}

.admin-body .email-rich-editor {
    min-height: 330px;
    max-height: 58vh;
    padding: 1rem;
    border: 1px solid var(--admin-line);
    border-radius: 14px;
    background: #fff;
    overflow: auto;
}

.admin-body .visual-toolbar,
.admin-body .email-attachment-toolbar,
.admin-body .resend-block-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    align-items: center;
    padding: .65rem;
    border: 1px solid var(--admin-line);
    border-radius: 13px;
    background: var(--admin-surface-muted);
}

.admin-body .visual-toolbar button,
.admin-body .email-attachment-toolbar button,
.admin-body .resend-block-toolbar button {
    min-height: 38px;
    padding: .5rem .7rem;
    border: 1px solid var(--admin-line);
    border-radius: 9px;
    background: #fff;
}

.admin-body .visual-toolbar button:hover,
.admin-body .resend-block-toolbar button:hover {
    border-color: rgba(44, 127, 162, .3);
    color: var(--admin-accent-strong);
}

.admin-body .email-preview-card {
    overflow: hidden;
}

.admin-body .email-preview-head {
    display: flex;
    gap: .8rem;
    align-items: center;
    justify-content: space-between;
}

.admin-body .email-device-toggle {
    display: inline-flex;
    gap: .25rem;
    padding: .25rem;
    border: 1px solid var(--admin-line);
    border-radius: 10px;
    background: var(--admin-surface-muted);
}

.admin-body .email-device-toggle button {
    width: 38px;
    height: 34px;
    border: 0;
    border-radius: 8px;
    background: transparent;
}

.admin-body .email-device-toggle button.active {
    background: #fff;
    color: var(--admin-accent);
    box-shadow: 0 3px 10px rgba(33, 20, 58, .1);
}

.admin-body .email-inbox-preview {
    margin-top: .8rem;
    padding: .8rem;
    border: 1px solid var(--admin-line);
    border-radius: 12px 12px 0 0;
    background: #fff;
}

.admin-body .email-inbox-preview > * {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-body .email-preview-frame-wrap {
    padding: .7rem;
    border: 1px solid var(--admin-line);
    border-top: 0;
    border-radius: 0 0 12px 12px;
    background: #e9e9ee;
}

.admin-body .email-preview-frame {
    display: block;
    width: 100%;
    min-height: 510px;
    border: 0;
    border-radius: 8px;
    background: #fff;
}

.admin-body .email-quality-checks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
    margin: .85rem 0 0;
    padding: 0;
    list-style: none;
}

.admin-body .email-quality-checks li {
    position: relative;
    padding: .55rem .65rem .55rem 1.8rem;
    border: 1px solid var(--admin-line);
    border-radius: 10px;
    background: rgba(255, 255, 255, .76);
    color: var(--admin-muted);
}

.admin-body .email-quality-checks li::before {
    content: "○";
    position: absolute;
    left: .65rem;
    color: var(--admin-warning);
}

.admin-body .email-quality-checks li.ok::before {
    content: "✓";
    color: var(--admin-success);
}

.admin-body .email-composer-actions {
    position: sticky;
    bottom: .5rem;
    z-index: 15;
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    padding: .75rem;
    border: 1px solid var(--admin-line);
    border-radius: 15px;
    background: rgba(248, 248, 251, .94);
    box-shadow: 0 12px 30px rgba(33, 20, 58, .12);
    backdrop-filter: blur(16px);
}

.admin-body .email-composer-actions .btn-primary {
    margin-left: auto;
}

.admin-body .email-contacts-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr);
    gap: 1rem;
    align-items: start;
}

.admin-body .email-csv-steps {
    display: grid;
    gap: .65rem;
    padding-left: 1.35rem;
    line-height: 1.55;
}

.admin-body .email-csv-example {
    max-width: 100%;
    padding: .85rem;
    border-radius: 12px;
    background: #21172f;
    color: #f6efff;
    overflow: auto;
}

.admin-body .email-csv-dropzone {
    min-height: 160px;
    display: grid;
    place-items: center;
    align-content: center;
    padding: 1rem;
    border: 2px dashed rgba(44, 127, 162, .28);
    border-radius: 16px;
    background: rgba(44, 127, 162, .045);
    text-align: center;
    cursor: pointer;
}

.admin-body .email-csv-dropzone:hover {
    border-color: var(--admin-accent);
    background: rgba(44, 127, 162, .08);
}

.admin-body .resend-template-form {
    padding: 0 1rem 1rem;
}

.admin-body .resend-visual-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr);
    gap: 1rem;
    align-items: start;
}

.admin-body .resend-template-visual-editor,
.admin-body #resend-template-preview {
    width: 100%;
    min-height: 440px;
    border: 1px solid var(--admin-line);
    border-radius: 14px;
    background: #fff;
}

.admin-body .resend-template-visual-editor {
    padding: 1rem;
    overflow: auto;
}

.admin-body .resend-template-code {
    padding: .85rem;
    border: 1px solid var(--admin-line);
    border-radius: 13px;
    background: var(--admin-surface-muted);
}

.admin-body .resend-template-code summary {
    cursor: pointer;
    font-weight: 900;
}

.admin-body .admin-two-col {
    gap: 1rem;
    align-items: start;
}

/* Estados y accesibilidad. */
.admin-body [hidden] {
    display: none !important;
}

.admin-body button:disabled,
.admin-body input:disabled,
.admin-body select:disabled,
.admin-body textarea:disabled {
    cursor: not-allowed;
    opacity: .55;
    transform: none !important;
}

.admin-body .empty-state {
    min-height: 120px;
    display: grid;
    place-items: center;
    padding: 1rem;
    border: 1px dashed var(--admin-line);
    border-radius: 14px;
    color: var(--admin-muted);
    text-align: center;
}

/* Tableta y móvil. */
@media (max-width: 1180px) {
    .admin-body .stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-body .email-studio-shell {
        grid-template-columns: 1fr;
    }

    .admin-body .email-preview-column {
        position: static;
    }

    .admin-body .email-preview-card {
        width: min(100%, 760px);
        margin-inline: auto;
    }
}

@media (max-width: 900px) {
    .admin-body .admin-heading {
        flex-direction: column;
    }

    .admin-body .admin-heading-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .admin-body .admin-content-app-strip,
    .admin-body .email-app-strip,
    .admin-body .notification-channel-guide {
        grid-template-columns: 1fr;
    }

    .admin-body #tab-calendar-admin .admin-two-col,
    .admin-body .calendar-admin-layout,
    .admin-body .email-contacts-layout,
    .admin-body .resend-visual-layout {
        grid-template-columns: 1fr;
    }

    .admin-body .email-studio-tabs {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .admin-body .login-overlay { padding: 0; }
    .admin-body .login-shell { min-height: 100svh; grid-template-columns: 1fr; border: 0; border-radius: 0; }
    .admin-body .login-brand-panel { min-height: 270px; padding: 1.5rem; }
    .admin-body .login-brand-panel h2 { max-width: 12ch; font-size: 2.55rem; }
    .admin-body .login-brand-panel ul { display: none; }
    .admin-body .login-card { min-height: auto; padding: 1.5rem; }
    .admin-body .admin-main {
        padding: .75rem;
    }

    .admin-body .admin-heading,
    .admin-body .admin-card,
    .admin-body .form-card {
        border-radius: 16px;
    }

    .admin-body .stats-grid,
    .admin-body .form-grid,
    .admin-body .email-quality-checks {
        grid-template-columns: 1fr;
    }

    .admin-body .admin-heading-actions,
    .admin-body .form-actions,
    .admin-body .email-composer-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .admin-body .admin-heading-actions > *,
    .admin-body .form-actions > *,
    .admin-body .email-composer-actions > * {
        width: 100%;
        margin: 0 !important;
    }

    .admin-body .admin-editor-modal,
    .admin-body .email-mass-send-modal,
    .admin-body .resend-template-modal {
        padding: 0;
        align-items: end;
    }

    .admin-body .admin-editor-sheet,
    .admin-body .email-mass-send-dialog,
    .admin-body .resend-template-form {
        width: 100%;
        max-height: 94svh;
        border-radius: 22px 22px 0 0;
    }

    .admin-body .email-studio-tabs {
        grid-template-columns: 1fr;
    }

    .admin-body .email-preview-frame {
        min-height: 430px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .admin-body *,
    .admin-body *::before,
    .admin-body *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
/*
 * Capa de especificidad controlada.
 * Neutraliza selectores históricos más largos sin convertir toda la hoja en !important.
 */
body.admin-body .admin-sidebar .admin-tab {
    min-height: 68px !important;
    padding: .65rem .75rem !important;
    border: 1px solid transparent !important;
    border-radius: 14px !important;
    background: transparent;
}

body.admin-body .admin-sidebar .admin-tab:hover {
    border-color: rgba(44, 127, 162, .1) !important;
    background: rgba(255, 255, 255, .72) !important;
    transform: translateX(2px);
}

body.admin-body .admin-sidebar .admin-tab.active {
    border-color: rgba(44, 127, 162, .26) !important;
    background: linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(44, 127, 162, .08)) !important;
    box-shadow: 0 9px 24px rgba(33, 20, 58, .08) !important;
}

body.admin-body .admin-main .admin-heading {
    margin-bottom: clamp(1.2rem, 2.5vw, 2rem) !important;
    padding: clamp(1rem, 2vw, 1.5rem) !important;
    border: 1px solid var(--admin-line) !important;
    border-radius: var(--admin-radius-lg) !important;
    background:
        radial-gradient(circle at 95% 0, rgba(44, 127, 162, .11), transparent 34%),
        var(--admin-surface) !important;
    box-shadow: var(--admin-shadow) !important;
}

body.admin-body .admin-main .admin-card,
body.admin-body .admin-main .form-card {
    min-width: 0 !important;
    padding: clamp(1rem, 2vw, 1.5rem) !important;
    border: 1px solid var(--admin-line) !important;
    border-radius: var(--admin-radius-md) !important;
    background: var(--admin-surface) !important;
    box-shadow: var(--admin-shadow) !important;
}

body.admin-body .admin-main .stats-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 1rem !important;
}

body.admin-body .admin-main .stat-card {
    min-height: 142px !important;
    padding: 1.15rem !important;
    border: 1px solid var(--admin-line) !important;
    border-radius: var(--admin-radius-md) !important;
    background: var(--admin-surface-strong) !important;
    box-shadow: 0 10px 26px rgba(33, 20, 58, .07) !important;
}

body.admin-body .admin-main input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
body.admin-body .admin-main select,
body.admin-body .admin-main textarea {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    padding: .78rem .9rem !important;
    border: 1px solid rgba(30, 30, 70, .16) !important;
    border-radius: var(--admin-radius-sm) !important;
    background: rgba(255, 255, 255, .96) !important;
}

body.admin-body .admin-main input:focus,
body.admin-body .admin-main select:focus,
body.admin-body .admin-main textarea:focus {
    border-color: var(--admin-accent) !important;
    box-shadow: 0 0 0 4px rgba(44, 127, 162, .12) !important;
}

body.admin-body #tab-gifts .email-studio-tabs {
    position: sticky !important;
    top: 0 !important;
    z-index: 20 !important;
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: .45rem !important;
    padding: .55rem !important;
    border: 1px solid var(--admin-line) !important;
    border-radius: 16px !important;
    background: rgba(248, 248, 251, .94) !important;
}

body.admin-body #tab-gifts .email-studio-tabs button {
    min-height: 48px !important;
    border-radius: 11px !important;
}

body.admin-body #tab-gifts .email-studio-shell {
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr) !important;
    gap: 1rem !important;
    align-items: start !important;
}

body.admin-body #tab-gifts .email-preview-column {
    position: sticky !important;
    top: 78px !important;
}

body.admin-body .admin-editor-modal .admin-editor-sheet,
body.admin-body .email-mass-send-modal .email-mass-send-dialog,
body.admin-body .resend-template-modal .resend-template-form {
    width: min(960px, 100%) !important;
    max-height: calc(100svh - clamp(1.4rem, 4vw, 2.8rem)) !important;
    border-radius: var(--admin-radius-lg) !important;
    box-shadow: var(--admin-shadow-raised) !important;
    overflow: auto !important;
}

/* Media Drive · explorador operativo del blueprint. */
body.admin-body #tab-media .admin-content-app-strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.admin-body .media-warehouse-layout { display: block; }
body.admin-body .media-warehouse-card { min-width: 0; padding: clamp(1rem, 2vw, 1.5rem); }
body.admin-body .media-warehouse-card .form-title-row {
    display: flex;
    gap: 1rem;
    align-items: end;
    justify-content: space-between;
    margin-bottom: .8rem;
}
body.admin-body .media-list-controls { display: grid; grid-template-columns: minmax(220px, 1fr) 160px; gap: .55rem; width: min(520px, 100%); }
body.admin-body .media-breadcrumbs { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; min-height: 40px; margin: .25rem 0 .8rem; }
body.admin-body .media-breadcrumbs button { padding: .4rem .55rem; border: 0; border-radius: 8px; background: transparent; color: var(--admin-accent); cursor: pointer; }
body.admin-body .media-breadcrumbs button:hover { background: #edf7fa; }
body.admin-body .media-breadcrumbs span { color: var(--admin-muted); }
body.admin-body .media-folder-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(185px, 1fr)); gap: .7rem; margin-bottom: 1rem; }
body.admin-body .media-folder-card {
    min-width: 0;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: .12rem .65rem;
    align-items: center;
    padding: .75rem;
    border: 1px solid var(--admin-line);
    border-radius: 14px;
    background: #fff;
    color: var(--admin-ink);
    text-align: left;
    cursor: pointer;
}
body.admin-body .media-folder-card:hover { border-color: var(--admin-accent); transform: translateY(-2px); box-shadow: 0 10px 24px rgba(44, 127, 162,.12); }
body.admin-body .media-folder-card > span { grid-row: 1 / 3; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 11px; background: #edf7fa; color: var(--admin-accent); }
body.admin-body .media-folder-card svg { width: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; }
body.admin-body .media-folder-card strong,
body.admin-body .media-folder-card small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.admin-body .media-folder-card small { color: var(--admin-muted); }
body.admin-body .media-bulk-bar { position: sticky; top: .5rem; z-index: 12; display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: .8rem 0; padding: .7rem .85rem; border: 1px solid rgba(44, 127, 162,.25); border-radius: 13px; background: rgba(233,240,255,.96); box-shadow: 0 10px 26px rgba(44, 127, 162,.1); }
body.admin-body .media-bulk-bar[hidden] { display: none !important; }
body.admin-body .media-bulk-bar select { width: min(260px, 100%) !important; min-height: 40px !important; }
body.admin-body .media-commerce-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .85rem; }
body.admin-body .media-result-summary { grid-column: 1 / -1; }
body.admin-body .media-product-card { position: relative; min-width: 0; display: grid; grid-template-rows: 150px auto auto; overflow: hidden; border: 1px solid var(--admin-line); border-radius: 16px; background: #fff; }
body.admin-body .media-product-card.is-selected { border-color: var(--admin-accent); box-shadow: 0 0 0 3px rgba(44, 127, 162,.12); }
body.admin-body .media-select-control { position: absolute; z-index: 2; top: .55rem; left: .55rem; width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(30,30,70,.14); border-radius: 9px; background: rgba(255,255,255,.94); box-shadow: 0 5px 14px rgba(30,30,70,.12); cursor: pointer; }
body.admin-body .media-select-control input { width: 18px; height: 18px; margin: 0; accent-color: var(--admin-accent); }
body.admin-body .media-select-control span { position: absolute; clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; }
body.admin-body .media-product-preview { position: relative; min-height: 0; overflow: hidden; background: #eef3fb; }
body.admin-body .media-product-preview img { width: 100%; height: 100%; object-fit: cover; }
body.admin-body .media-product-badge { position: absolute; right: .55rem; bottom: .55rem; padding: .28rem .5rem; border-radius: 999px; background: rgba(30,30,70,.86); color: #fff; font-size: .7rem; }
body.admin-body .media-file-thumb { height: 100%; display: grid; place-items: center; color: var(--admin-accent); font-size: 1.5rem; }
body.admin-body .media-product-info { display: grid; gap: .28rem; padding: .85rem; }
body.admin-body .media-product-info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.admin-body .media-product-info span,
body.admin-body .media-product-info small { color: var(--admin-muted); overflow-wrap: anywhere; }
body.admin-body .media-product-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; padding: 0 .75rem .75rem; }
body.admin-body .media-product-actions button { min-height: 38px; padding: .45rem; border: 1px solid var(--admin-line); border-radius: 9px; background: #f6f8fc; cursor: pointer; }
body.admin-body .media-product-actions button:hover { border-color: var(--admin-accent); color: var(--admin-accent); }
body.admin-body .media-drive-upload-dialog { width: min(820px, 100%) !important; }
body.admin-body .media-drive-upload-dialog > header { position: sticky; top: 0; z-index: 3; display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--admin-line); background: rgba(255,255,255,.96); }
body.admin-body .media-drive-upload-dialog > header button { width: 40px; height: 40px; border: 1px solid var(--admin-line); border-radius: 10px; background: #fff; }
body.admin-body .media-upload-body { padding: 1.2rem; }
body.admin-body .media-upload-preview { display: flex; flex-wrap: wrap; gap: .45rem; }
body.admin-body .media-upload-preview span { padding: .45rem .6rem; border: 1px solid var(--admin-line); border-radius: 9px; background: #f6f8fc; }
body.admin-body .media-drive-upload-dialog > .form-actions { padding: .9rem 1.2rem 1.2rem; }

/* Paleta final única: azul editorial del sitio público. */
body.admin-body .admin-main,
body.admin-body .admin-global-topbar,
body.admin-body .admin-editor-modal,
body.admin-body .email-mass-send-modal,
body.admin-body .resend-template-modal {
    --admin-primary: #2c7fa2;
    --admin-primary-hover: #1b4762;
    --app-accent: #2c7fa2;
    --app-accent-strong: #1b4762;
}

body.admin-body :is(.btn-primary, .admin-editor-modal .btn-primary, .email-studio-tabs button.active) {
    background: linear-gradient(135deg, #1b4762, #2c7fa2) !important;
    color: #fff !important;
}

body.admin-body :is(.btn-primary, .admin-app-group, .admin-tab, .admin-context-app, input, select, textarea):focus-visible {
    outline-color: rgba(44, 127, 162, .38) !important;
}

body.admin-body .wtm-app-popover {
    width: min(360px, calc(100vw - 1rem));
    gap: .45rem;
    padding: .7rem;
    border-color: rgba(27, 71, 98, .18);
}

body.admin-body .wtm-app-popover > :is(a, button, div) {
    width: 100%;
    display: grid;
    gap: .2rem;
    padding: .75rem;
    border: 1px solid transparent;
    border-radius: 11px;
    background: #f3f8fa;
    color: var(--admin-ink);
    text-align: left;
    text-decoration: none;
}

body.admin-body .wtm-app-popover > :is(a, button):hover {
    border-color: rgba(44, 127, 162, .28);
    background: #e8f3f7;
}

body.admin-body .wtm-app-popover button { cursor: pointer; }
body.admin-body .wtm-app-popover .admin-wos-license { color: var(--admin-muted); line-height: 1.45; }

body.admin-body .notification-center-card {
    padding: clamp(1rem, 2vw, 1.5rem);
    border: 1px solid var(--admin-line);
    border-radius: 20px;
    background: #fff;
}

body.admin-body .notification-channel-guide article {
    border: 1px solid var(--admin-line);
    box-shadow: 0 10px 24px rgba(27, 71, 98, .07);
}

body.admin-body :is(.technical-details, .database-debug, [data-technical-only]) {
    display: none !important;
}

body.admin-body .admin-editor-modal[data-app-kind] {
    --modal-accent: #2c7fa2 !important;
    --modal-accent-2: #1b4762 !important;
    --modal-accent-soft: rgba(44, 127, 162, .16) !important;
}

/* Iconos elegibles como controles reales, no caracteres sueltos. */
body.admin-body .shortcut-icon-library { grid-template-columns: repeat(auto-fill, minmax(54px, 1fr)); gap: .55rem; }
body.admin-body .shortcut-icon-library button { min-height: 54px; border: 1px solid var(--admin-line); border-radius: 12px; background: #f7f9fd; color: var(--admin-accent); font-size: 1.35rem; }
body.admin-body .shortcut-icon-library button:hover,
body.admin-body .shortcut-icon-library button.active { border-color: var(--admin-accent); background: #edf7fa; transform: translateY(-2px); }
body.admin-body .shortcut-icon-library svg,
body.admin-body .admin-shortcut-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

@media (max-width: 1180px) {
    body.admin-body .admin-main .stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.admin-body #tab-gifts .email-studio-shell {
        grid-template-columns: 1fr !important;
    }

    body.admin-body #tab-gifts .email-preview-column {
        position: static !important;
    }
}

@media (max-width: 900px) {
    body.admin-body #tab-gifts .email-studio-tabs {
        position: static !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.admin-body #tab-media .admin-content-app-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.admin-body .media-warehouse-card .form-title-row { align-items: stretch; flex-direction: column; }
    body.admin-body .media-list-controls { width: 100%; }
}

@media (max-width: 620px) {
    body.admin-body .admin-main .stats-grid,
    body.admin-body .admin-main .form-grid {
        grid-template-columns: 1fr !important;
    }

    body.admin-body #tab-gifts .email-studio-tabs {
        grid-template-columns: 1fr !important;
    }

    body.admin-body #tab-media .admin-content-app-strip,
    body.admin-body .media-list-controls { grid-template-columns: 1fr; }
    body.admin-body .media-commerce-grid { grid-template-columns: 1fr; }

    body.admin-body .admin-editor-modal .admin-editor-sheet,
    body.admin-body .email-mass-send-modal .email-mass-send-dialog,
    body.admin-body .resend-template-modal .resend-template-form {
        width: 100% !important;
        max-height: 94svh !important;
        border-radius: 22px 22px 0 0 !important;
    }
}

/* ===== Fuente: experience-motion.css ===== */
/*
 * Microinteracciones inspiradas en patrones Uiverse.
 * No altera la identidad: comunica carga, foco, jerarquía y resultado.
 */

:root {
    --ui-motion-fast: 160ms;
    --ui-motion-normal: 360ms;
    --ui-motion-slow: 620ms;
    --ui-motion-ease: cubic-bezier(.2, .78, .2, 1);
}

.ui-reveal {
    opacity: 0;
    transform: translateY(22px);
    transition:
        opacity var(--ui-motion-slow) var(--ui-motion-ease),
        transform var(--ui-motion-slow) var(--ui-motion-ease);
    transition-delay: var(--ui-reveal-delay, 0ms);
}

.ui-reveal.ui-visible {
    opacity: 1;
    transform: translateY(0);
}

.ui-reveal[data-ui-direction="left"] {
    transform: translateX(-24px);
}

.ui-reveal[data-ui-direction="right"] {
    transform: translateX(24px);
}

.ui-reveal[data-ui-direction="left"].ui-visible,
.ui-reveal[data-ui-direction="right"].ui-visible {
    transform: translateX(0);
}

.ui-stagger > .ui-reveal:nth-child(2) {
    --ui-reveal-delay: 60ms;
}

.ui-stagger > .ui-reveal:nth-child(3) {
    --ui-reveal-delay: 120ms;
}

.ui-stagger > .ui-reveal:nth-child(4) {
    --ui-reveal-delay: 180ms;
}

.ui-stagger > .ui-reveal:nth-child(5) {
    --ui-reveal-delay: 240ms;
}

.ui-stagger > .ui-reveal:nth-child(6) {
    --ui-reveal-delay: 300ms;
}

.ui-stagger > .ui-reveal:nth-child(7) {
    --ui-reveal-delay: 360ms;
}

.ui-stagger > .ui-reveal:nth-child(8) {
    --ui-reveal-delay: 420ms;
}

/* Destello contenido para CTA, basado en botones Uiverse. */
.ui-action {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.ui-action::before {
    content: "";
    position: absolute;
    top: -60%;
    bottom: -60%;
    left: -42%;
    z-index: -1;
    width: 28%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .32), transparent);
    transform: skewX(-18deg) translateX(-180%);
    transition: transform 580ms ease;
    pointer-events: none;
}

.ui-action:hover::before,
.ui-action:focus-visible::before {
    transform: skewX(-18deg) translateX(620%);
}

.ui-ripple {
    position: absolute;
    z-index: 5;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: currentColor;
    opacity: .18;
    pointer-events: none;
    transform: translate(-50%, -50%) scale(0);
    animation: uiRipple 560ms ease-out forwards;
}

@keyframes uiRipple {
    to {
        opacity: 0;
        transform: translate(-50%, -50%) scale(22);
    }
}

/* Elevación ligera de tarjetas, sin inclinaciones agresivas. */
.ui-interactive-card {
    transform-origin: center;
    will-change: transform;
}

.ui-interactive-card:hover {
    transform: translateY(-4px);
}

.ui-interactive-card:focus-within {
    box-shadow:
        0 0 0 4px color-mix(in srgb, var(--sky-dark, #2c7fa2) 15%, transparent),
        0 18px 40px rgba(30, 30, 70, .12) !important;
}

/* Estado ocupado visible y accesible. */
.ui-busy {
    position: relative;
    cursor: progress !important;
    color: transparent !important;
    pointer-events: none;
}

.ui-busy::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    margin: -10px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    color: #fff;
    animation: uiSpin 680ms linear infinite;
}

@keyframes uiSpin {
    to {
        transform: rotate(1turn);
    }
}

/* Apertura de diálogos: rápida, clara y sin rebote. */
.ui-modal-enter {
    animation: uiBackdropIn 180ms ease both;
}

.ui-modal-enter > [role="dialog"],
.ui-modal-enter .admin-editor-sheet,
.ui-modal-enter .email-mass-send-dialog,
.ui-modal-enter .resend-template-form,
.ui-modal-enter .subscribe-modal {
    transform-origin: 50% 20%;
    animation: uiDialogIn 300ms var(--ui-motion-ease) both;
}

@keyframes uiBackdropIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes uiDialogIn {
    from {
        opacity: 0;
        transform: translateY(18px) scale(.975);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Confirmación visual de guardado sin introducir mensajes falsos. */
.ui-saved-pulse {
    animation: uiSavedPulse 720ms ease;
}

@keyframes uiSavedPulse {
    0%,
    100% {
        box-shadow: inherit;
    }

    40% {
        box-shadow: 0 0 0 5px rgba(17, 156, 83, .16);
    }
}

/* Indicador de pestaña activo. */
.admin-body .admin-tab.active > span:first-child,
.admin-body .email-studio-tabs button.active {
    animation: uiActiveControl 300ms var(--ui-motion-ease);
}

@keyframes uiActiveControl {
    from {
        opacity: .6;
        transform: scale(.96);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Portada principal: entrada editorial coordinada. */
body[data-page="inicio"] .hero-copy {
    animation: uiHeroCopyIn 680ms var(--ui-motion-ease) both;
}

body[data-page="inicio"] .featured-magazine {
    animation: uiHeroMagazineIn 760ms 80ms var(--ui-motion-ease) both;
}

@keyframes uiHeroCopyIn {
    from {
        opacity: 0;
        transform: translateX(-26px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes uiHeroMagazineIn {
    from {
        opacity: 0;
        transform: translateX(28px) scale(.985);
    }

    to {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}

/* Señal visual discreta para portada clickeable. */
.featured-magazine .cover-click::after,
.magazine-card .magazine-cover-button::after {
    transition:
        opacity var(--ui-motion-fast) ease,
        transform var(--ui-motion-normal) var(--ui-motion-ease);
}

.featured-magazine .cover-click:hover::after,
.featured-magazine .cover-click:focus-visible::after,
.magazine-card .magazine-cover-button:hover::after,
.magazine-card .magazine-cover-button:focus-visible::after {
    opacity: 1;
    transform: translate(-50%, 0);
}

/* Tooltips nativos mejorados para iconos con title. */
.admin-body button[title],
.admin-body a[title] {
    position: relative;
}

.admin-body button[title]:hover,
.admin-body a[title]:hover {
    z-index: 6;
}

/* Menús desplegables aparecen sin salto. */
.desktop-login-menu:not([hidden]),
.header-profile-menu:not([hidden]),
.mobile-menu.open,
.admin-body [role="menu"]:not([hidden]) {
    animation: uiMenuIn 220ms var(--ui-motion-ease) both;
    transform-origin: top right;
}

@keyframes uiMenuIn {
    from {
        opacity: 0;
        transform: translateY(-6px) scale(.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Barra de avance para flujos de correo. */
.email-flow-progress {
    --email-progress: 33.333%;
    position: relative;
    height: 4px;
    margin: .65rem 0 1rem;
    border-radius: 99px;
    background: rgba(44, 127, 162, .1);
    overflow: hidden;
}

.email-flow-progress::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: var(--email-progress);
    border-radius: inherit;
    background: linear-gradient(90deg, #1e1e46, #4c7dff);
    transition: width 420ms var(--ui-motion-ease);
}

/* Reduce motion conserva toda la funcionalidad. */
@media (prefers-reduced-motion: reduce) {
    .ui-reveal,
    .ui-reveal[data-ui-direction],
    .ui-reveal.ui-visible,
    .ui-modal-enter,
    .ui-modal-enter > [role="dialog"],
    .ui-modal-enter .admin-editor-sheet,
    .ui-modal-enter .email-mass-send-dialog,
    .ui-modal-enter .resend-template-form,
    body[data-page="inicio"] .hero-copy,
    body[data-page="inicio"] .featured-magazine {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
        transition: none !important;
    }

    .ui-ripple {
        display: none;
    }
}

/* Capa final unificada: esta sección prevalece sobre estilos heredados. */
.subscribers-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}.subscriber-app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.subscribers-workspace>.admin-launcher-host,.subscribers-workspace>.admin-card{width:100%;min-width:0}.featured-source-toggle{padding:.85rem 1rem;border:1px solid rgba(44,127,162,.24);border-radius:14px;background:rgba(44,127,162,.07)}.admin-body :is(button,.btn,.admin-content-app-button,.admin-editor-launcher){overflow-wrap:normal;word-break:normal}.admin-body :is(input,textarea,select){min-width:0;color:var(--admin-text,#17233a);background-color:var(--admin-input,#fff);border-color:var(--admin-line,#ccd8e4)}.admin-body select{appearance:auto;cursor:pointer}.admin-body select option{color:#17233a;background:#fff}.admin-editor-modal .check-row{align-items:center}.admin-editor-modal .check-row input{flex:0 0 auto}
body.admin-body[data-admin-theme="light"]{--admin-bg:#eef3f7;--admin-surface:#fff;--admin-input:#fff;--admin-text:#17233a;--admin-text-muted:#52657a;--admin-line:#cbd8e4}body.admin-body[data-admin-theme="dark"]{--admin-bg:#090e1b;--admin-surface:#111a2b;--admin-input:#0c1423;--admin-text:#f1f7fb;--admin-text-muted:#b7c7d5;--admin-line:#33465b}body.admin-body[data-admin-theme="blue-solar"]{--admin-bg:#031525;--admin-surface:#082a47;--admin-input:#061f36;--admin-text:#f3fbff;--admin-text-muted:#bed7e5;--admin-line:#28617f}body.admin-body:is([data-admin-theme="dark"],[data-admin-theme="blue-solar"]) :is(.admin-main,.admin-panel){color:var(--admin-text)}body.admin-body:is([data-admin-theme="dark"],[data-admin-theme="blue-solar"]) :is(.admin-card,.admin-content-app-strip,.admin-content-app-button,.admin-editor-sheet,.admin-editor-body,.notification-center-card,.subscriber-app-grid){color:var(--admin-text);background-color:var(--admin-surface);border-color:var(--admin-line)}body.admin-body:is([data-admin-theme="dark"],[data-admin-theme="blue-solar"]) :is(h1,h2,h3,h4,strong,label,legend,summary){color:var(--admin-text)}body.admin-body:is([data-admin-theme="dark"],[data-admin-theme="blue-solar"]) :is(p,small,.microcopy,.form-status){color:var(--admin-text-muted)}body.admin-body:is([data-admin-theme="dark"],[data-admin-theme="blue-solar"]) :is(input,textarea,select){color:var(--admin-text);background:var(--admin-input);border-color:var(--admin-line)}body.admin-body[data-admin-theme="blue-solar"] :is(.btn-primary,.admin-news-actions .primary){color:#fff;background:#1b76a5;border-color:#58b6df;box-shadow:none}@media(max-width:900px){.subscriber-app-grid{grid-template-columns:1fr}}
.magazine-promotion-choices{display:grid;gap:.75rem;margin:0;padding:1rem;border:1px solid var(--admin-line,#cbd8e4);border-radius:16px}.magazine-promotion-choices legend{padding:0 .4rem;font-weight:700}.featured-month-choice{position:relative;display:grid;cursor:pointer}.featured-month-choice>input{position:absolute;opacity:0;pointer-events:none}.featured-month-choice>span{display:grid;gap:.3rem;padding:1rem;border:2px solid #2c7fa2;border-radius:14px;background:#edf7fb;color:#17233a;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.featured-month-choice>span strong{font-size:.82rem}.featured-month-choice>span small{color:#52657a;line-height:1.45}.featured-month-choice>input:checked+span{border-color:#164e70;background:#d9eef7;box-shadow:0 0 0 3px rgba(44,127,162,.16)}.featured-month-choice>input:checked+span strong::before{content:'✓ ';}.featured-source-toggle>span{display:grid;gap:.2rem}.featured-source-toggle small{font-weight:400;line-height:1.4}body.admin-body:is([data-admin-theme="dark"],[data-admin-theme="blue-solar"]) .featured-month-choice>span{background:var(--admin-input);color:var(--admin-text);border-color:#58b6df}body.admin-body:is([data-admin-theme="dark"],[data-admin-theme="blue-solar"]) .featured-month-choice>span small{color:var(--admin-text-muted)}body.admin-body:is([data-admin-theme="dark"],[data-admin-theme="blue-solar"]) .featured-month-choice>input:checked+span{background:#123b59;border-color:#7dd3f2}
.admin-body .media-product-preview :is(iframe,video){display:block;width:100%;height:100%;border:0;background:#0b1422;object-fit:contain;pointer-events:none}.admin-body .media-embed-thumb{width:92px;height:92px;border-radius:50%;text-align:center;line-height:1.25}.admin-body .media-embed-field.microcopy{margin:0;padding:.75rem 1rem;border-radius:12px;background:rgba(44,127,162,.08)}.admin-body .media-drive-upload-dialog [hidden]{display:none!important}

/* Evita que las insignias absolutas hereden dos bordes del contenedor y se estiren. */
body.admin-body :is(.media-product-badge,.magazine-product-badge,.admin-magazine-cover>span,.admin-news-cover>span){
    inset: .55rem .55rem auto auto !important;
    display: inline-flex !important;
    width: max-content !important;
    max-width: calc(100% - 1.1rem) !important;
    height: auto !important;
    min-height: 24px;
    max-height: 34px;
    align-items: center;
    align-self: start !important;
    justify-self: end !important;
    padding: .3rem .55rem !important;
    overflow: hidden;
    line-height: 1 !important;
    text-overflow: ellipsis;
    white-space: nowrap;
    writing-mode: horizontal-tb !important;
}
body.admin-body :is(.media-product-preview,.admin-magazine-cover,.admin-news-cover){
    isolation: isolate;
    align-items: center;
    justify-items: center;
}
body.admin-body .media-select-control{
    inset: .55rem auto auto .55rem !important;
    align-self: start !important;
    justify-self: start !important;
    min-width: 34px !important;
    min-height: 34px !important;
    max-width: 34px !important;
    max-height: 34px !important;
}


/* Email Studio: biblioteca unificada y fórmula transaccional protegida */
.email-mailing-assets {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
    padding: 1rem;
    border: 1px solid rgba(30, 30, 70, .16);
    border-left: 5px solid #2c7fa2;
    border-radius: 14px;
    background: rgba(232, 229, 226, .58);
}
.email-mailing-assets[hidden] { display: none !important; }
.email-mailing-assets > button,
.email-mailing-assets > small { align-self: end; }
@media (max-width: 720px) {
    .email-mailing-assets { grid-template-columns: 1fr; }
}
.resend-templates-grid {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
.resend-library-heading {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: .35rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(44,127,162,.2);
    border-radius: 16px;
    background: linear-gradient(135deg,rgba(44,127,162,.1),rgba(255,255,255,.92));
}
.resend-library-heading-remote { margin-top: 1rem; }
.resend-library-heading h3,
.resend-library-heading p { margin: 0; }
.resend-library-heading h3 { color: var(--email-navy); font-size: 1rem; }
.resend-library-heading p:not(.eyebrow) { margin-top: .3rem; color: var(--email-muted); font-size: .7rem; }
.resend-library-heading > strong {
    display: grid;
    min-width: 48px;
    min-height: 48px;
    place-items: center;
    border-radius: 14px;
    background: var(--email-primary);
    color: #fff;
    font-size: 1rem;
}
.resend-library-message {
    grid-column: 1 / -1;
    padding: 1rem;
    border: 1px dashed rgba(30,30,70,.18);
    border-radius: 14px;
    color: var(--email-muted);
    text-align: center;
}
.transactional-template-card {
    border-color: rgba(44,127,162,.32);
    background: linear-gradient(145deg,#fff,#edf8fc);
}
.transactional-template-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
}
.transactional-lock-badge {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .35rem .55rem;
    border: 1px solid rgba(44,127,162,.24);
    border-radius: 999px;
    background: #fff;
    color: var(--email-primary);
    font-size: .58rem;
    font-weight: 800;
}
.transactional-template-flow {
    display: flex;
    align-items: center;
    gap: .35rem;
    padding: .65rem;
    border-radius: 12px;
    background: rgba(255,255,255,.82);
    color: var(--email-navy);
    font-size: .56rem;
    font-weight: 700;
}
.transactional-template-flow i { color: var(--email-primary); font-style: normal; }
.resend-template-actions .transactional-template-edit {
    grid-column: 1 / -1;
    border-color: var(--email-primary);
    background: var(--email-primary);
    color: #fff;
}
.transactional-template-media-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .75rem;
}
.transactional-template-lock {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: 1rem;
    border: 1px solid rgba(44,127,162,.28);
    border-radius: 15px;
    background: linear-gradient(135deg,rgba(44,127,162,.11),rgba(255,255,255,.9));
}
.transactional-template-lock > span {
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-items: center;
    border-radius: 13px;
    background: var(--email-primary);
    color: #fff;
}
.transactional-template-lock strong,
.transactional-template-lock p { margin: 0; }
.transactional-template-lock p { margin-top: .25rem; color: var(--email-muted); font-size: .68rem; line-height: 1.5; }
@media (max-width: 700px) {
    .resend-library-heading { align-items: flex-start; }
    .transactional-template-media-grid { grid-template-columns: 1fr; }
    .transactional-template-flow { flex-wrap: wrap; }
}

/* Email Studio · editor de plantillas orientado a escritura. */
.email-template-sync-control {
    display: flex !important;
    align-items: flex-start;
    gap: .7rem;
    padding: .9rem 1rem;
    border: 1px solid rgba(44,127,162,.22);
    border-radius: 14px;
    background: rgba(44,127,162,.07);
}
.email-template-sync-control input { width: 18px !important; height: 18px; margin-top: .15rem; accent-color: var(--email-primary); }
.email-template-sync-control span { display: grid; gap: .2rem; }
.email-template-sync-control strong { color: var(--email-navy); font-size: .74rem; }
.email-template-sync-control small { color: var(--email-muted); font-size: .63rem; line-height: 1.45; }
.email-template-sync-control[data-synced="false"] { border-color: rgba(210,126,28,.3); background: rgba(255,183,77,.1); }

.protected-email-editor { width: min(100%, 980px); }
.protected-email-editor-head,
.protected-email-writing-intro,
.protected-email-preview-card > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.protected-email-editor-head h2,
.protected-email-editor-head p { margin: 0; }
.protected-email-editor-head > span,
.protected-email-writing-intro > span {
    padding: .45rem .7rem;
    border-radius: 999px;
    background: rgba(44,127,162,.1);
    color: var(--email-primary);
    font-size: .6rem;
    font-weight: 800;
    white-space: nowrap;
}
.protected-email-subjects input {
    min-height: 48px;
    border-color: rgba(30,30,70,.16) !important;
    background: #fff !important;
    font-size: .78rem !important;
}
.protected-email-writing-card {
    overflow: hidden;
    border: 1px solid rgba(30,30,70,.16);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(30,30,70,.08);
}
.protected-email-writing-intro { padding: 1rem 1.1rem; border-bottom: 1px solid rgba(30,30,70,.1); background: linear-gradient(135deg,#f7fbfd,#fff); }
.protected-email-writing-intro > div { display: flex; align-items: center; gap: .7rem; }
.protected-email-writing-intro > div > span { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 11px; background: var(--email-primary); color: #fff; }
.protected-email-writing-intro strong,
.protected-email-writing-intro small { display: block; }
.protected-email-writing-intro strong { color: var(--email-navy); font-size: .78rem; }
.protected-email-writing-intro small { margin-top: .15rem; color: var(--email-muted); font-size: .62rem; }
.protected-email-toolbar.ql-toolbar { padding: .75rem 1rem !important; border: 0 !important; border-bottom: 1px solid rgba(30,30,70,.1) !important; background: #f8fafc; }
.protected-email-canvas { border: 0 !important; border-radius: 0 !important; background: #fff; }
.protected-email-canvas .ql-container { min-height: 300px; border: 0 !important; font-family: 'Space Mono',monospace; font-size: 16px; }
.protected-email-canvas .ql-editor { min-height: 300px; padding: 28px 34px; color: #1e1e46; line-height: 1.75; }
.protected-email-canvas .ql-editor:focus { background: linear-gradient(180deg,rgba(44,127,162,.025),transparent 100px); }
.protected-email-preview-card { padding: 1rem; border: 1px solid rgba(30,30,70,.12); border-radius: 17px; background: #eef3f6; }
.protected-email-preview-card p { margin: 0; }
.protected-email-preview-card iframe { width: 100%; min-height: 430px; margin-top: .8rem; border: 1px solid rgba(30,30,70,.12); border-radius: 13px; background: #fff; }
body.admin-body .admin-editor-dialog:has(#transactional-email-template-form) { width: min(1040px,calc(100vw - 32px)); }

@media (max-width: 700px) {
    .protected-email-editor-head,
    .protected-email-writing-intro { align-items: flex-start; flex-direction: column; }
    .protected-email-writing-intro > span { display: none; }
    .protected-email-canvas .ql-editor { min-height: 260px; padding: 22px 18px; font-size: 15px; }
    .protected-email-preview-card iframe { min-height: 360px; }
}

/* Tipografías autorizadas disponibles en todos los editores Quill. */
body.admin-body .ql-toolbar .quill-brand-fonts .ql-font { width: 158px; }
body.admin-body .ql-toolbar .ql-picker.ql-font { width: 158px; }
body.admin-body .ql-toolbar .ql-picker.ql-font .ql-picker-label,
body.admin-body .ql-toolbar .ql-picker.ql-font .ql-picker-item { font-size: .7rem; }
body.admin-body .ql-toolbar .ql-picker.ql-font .ql-picker-label::before,
body.admin-body .ql-toolbar .ql-picker.ql-font .ql-picker-item::before { content: 'Space Mono'; font-family: 'Space Mono',monospace; }
body.admin-body .ql-toolbar .ql-picker.ql-font .ql-picker-label[data-value="Space Mono"]::before,
body.admin-body .ql-toolbar .ql-picker.ql-font .ql-picker-item[data-value="Space Mono"]::before { content: 'Space Mono'; font-family: 'Space Mono',monospace; }
body.admin-body .ql-toolbar .ql-picker.ql-font .ql-picker-label[data-value="E4 Digital Final"]::before,
body.admin-body .ql-toolbar .ql-picker.ql-font .ql-picker-item[data-value="E4 Digital Final"]::before { content: 'E4 Digital'; font-family: 'E4 Digital Final','VT323',monospace; font-size: .9rem; }
@media (max-width: 700px) {
    body.admin-body .ql-toolbar .quill-brand-fonts .ql-font,
    body.admin-body .ql-toolbar .ql-picker.ql-font { width: 132px; }
}

/* CTA visual disponible dentro de cualquier editor de texto. */
.quill-layout-bar { position: relative; flex-wrap: wrap; }
.quill-layout-bar .quill-cta-tool { border-color: #1e1e46; background: #1e1e46; color: #fff; font-weight: 800; }
.quill-cta-popover {
    display: grid;
    grid-template-columns: minmax(150px,1.2fr) minmax(190px,2fr) minmax(120px,.8fr) minmax(110px,.7fr);
    width: 100%;
    gap: .65rem;
    align-items: end;
    margin-top: .35rem;
    padding: .85rem;
    border: 1px solid rgba(44,127,162,.25);
    border-radius: 13px;
    background: linear-gradient(135deg,#eff8fb,#fff);
    box-shadow: 0 12px 30px rgba(30,30,70,.09);
}
.quill-cta-popover[hidden] { display: none !important; }
.quill-cta-popover > div:first-child { align-self: center; }
.quill-cta-popover strong,
.quill-cta-popover small { display: block; }
.quill-cta-popover strong { color: #1e1e46; font-size: .7rem; }
.quill-cta-popover small { margin-top: .2rem; color: #64748b; font-size: .54rem; line-height: 1.35; }
.quill-cta-popover label { display: grid; gap: .25rem; color: #475569; font-size: .56rem; font-weight: 800; }
.quill-cta-popover :is(input,select) { width: 100%; min-height: 38px; padding: .45rem .55rem; border: 1px solid #cbd8e4; border-radius: 8px; background: #fff; color: #17233a; font: 600 .66rem 'Space Mono',monospace; }
.quill-cta-popover .quill-cta-check { display: flex; align-items: center; align-self: center; gap: .45rem; }
.quill-cta-popover .quill-cta-check input { width: 17px; min-height: 17px; accent-color: #2c7fa2; }
.quill-cta-popover > div:last-child { display: flex; justify-content: flex-end; gap: .45rem; grid-column: 1 / -1; }
.quill-cta-popover [data-editor-cta-apply] { background: #2c7fa2; color: #fff; border-color: #2c7fa2; }
.editor-cta-block { margin: 18px 0; }
.editor-cta-align-left { text-align: left; }
.editor-cta-align-center { text-align: center; }
.editor-cta-align-right { text-align: right; }
.editor-cta-block.is-selected { padding: 8px; outline: 2px dashed #2c7fa2; outline-offset: 3px; border-radius: 12px; }
.ql-editor .editor-cta-block .content-button { color: #fff; cursor: pointer; }
.ql-editor .editor-cta-block[data-cta-variant="outline"] .content-button { color: #1e1e46; }
@media (max-width: 850px) {
    .quill-cta-popover { grid-template-columns: 1fr 1fr; }
    .quill-cta-popover > div:first-child,
    .quill-cta-popover > div:last-child { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    .quill-cta-popover { grid-template-columns: 1fr; }
    .quill-cta-popover > * { grid-column: 1 !important; }
}

/* Debe permanecer al final: sustituye la antigua barra de cinco accesos. */
body.admin-body #tab-gifts .email-studio-tabs.email-studio-tabs-top {
    grid-template-columns: repeat(7, minmax(84px, 1fr)) !important;
}

@media (max-width: 900px) {
    body.admin-body #tab-gifts .email-studio-tabs.email-studio-tabs-top {
        position: sticky !important;
        top: 0 !important;
        display: flex !important;
        overflow-x: auto !important;
        grid-template-columns: none !important;
        scrollbar-width: none;
    }
    body.admin-body #tab-gifts .email-studio-tabs.email-studio-tabs-top::-webkit-scrollbar { display: none; }
    body.admin-body #tab-gifts .email-studio-tabs.email-studio-tabs-top button { min-width: 88px !important; }
}

/* Guía contextual del panel. */
.admin-tutorial-button {
    display: inline-flex;
    gap: .45rem;
    align-items: center;
    padding: .38rem .72rem .38rem .38rem;
    border: 1px solid var(--admin-line, #d4dce6);
    border-radius: 999px;
    background: var(--admin-surface, #fff);
    color: var(--admin-ink, #1e1e46);
    font-weight: 800;
}
.admin-tutorial-button b,
.admin-section-help,
.admin-inline-help {
    display: inline-grid;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: linear-gradient(145deg, #1e1e46, #2c7fa2);
    color: #fff;
    font: 800 .78rem/1 'Space Mono', monospace;
    box-shadow: 0 6px 16px rgba(44, 127, 162, .2);
    cursor: pointer;
}
.admin-section-help { margin-left: auto; align-self: center; }
.admin-inline-help { width: 24px; height: 24px; margin: -.1rem 0 .45rem; font-size: .66rem; }
.admin-guided-tutorial { position: fixed; inset: 0; z-index: 12000; pointer-events: none; }
.admin-tutorial-card {
    position: fixed;
    right: 24px;
    bottom: 24px;
    width: min(430px, calc(100vw - 32px));
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 23px;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 30px 90px rgba(18, 16, 48, .35);
    pointer-events: auto;
    animation: adminTutorialIn .28s cubic-bezier(.2, .8, .2, 1);
}
.admin-tutorial-card.place-left { right: auto; left: max(24px, calc(var(--admin-sidebar-width, 270px) + 24px)); }
.admin-tutorial-card > header { display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;background:linear-gradient(135deg,#1e1e46,#2c7fa2);color:#fff; }
.admin-tutorial-card > header span { font-size:.62rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase; }
.admin-tutorial-card > header button { display:grid;width:32px;height:32px;place-items:center;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:1.2rem; }
.admin-tutorial-progress { height:4px;background:#dce8ee; }
.admin-tutorial-progress i { display:block;width:0;height:100%;background:linear-gradient(90deg,#2c7fa2,#d77ce7);transition:width .25s ease; }
.admin-tutorial-copy { padding:1.2rem; }
.admin-tutorial-copy > span { color:#2c7fa2;font-size:.62rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase; }
.admin-tutorial-copy h2 { margin:.35rem 0 .55rem;color:#1e1e46;font-size:1.2rem; }
.admin-tutorial-copy p { margin:0;color:#506175;font-size:.8rem;line-height:1.65; }
.admin-tutorial-copy small { display:block;margin-top:.8rem;padding:.7rem;border-radius:11px;background:#edf7fa;color:#315e70;font-size:.68rem;line-height:1.5; }
.admin-tutorial-copy small::before { content:'Consejo · ';font-weight:900; }
.admin-tutorial-card > footer { display:flex;justify-content:space-between;gap:.65rem;padding:.8rem 1rem;border-top:1px solid #e1e7ee;background:#f8fafc; }
body.admin-tutorial-open::before { content:"";position:fixed;inset:0;width:auto;height:auto;aspect-ratio:auto;border-radius:0;filter:none;opacity:1;z-index:11000;background:rgba(18,16,48,.54);pointer-events:none;animation:adminTutorialShade .2s ease; }
.admin-tutorial-focus { position:relative!important;z-index:11001!important;outline:4px solid #6bd7e8!important;outline-offset:6px!important;box-shadow:0 0 0 10px rgba(107,215,232,.2),0 24px 65px rgba(0,0,0,.2)!important; }
@keyframes adminTutorialIn { from { opacity:0;transform:translateY(14px) scale(.98); } to { opacity:1;transform:none; } }
@keyframes adminTutorialShade { from { opacity:0; } to { opacity:1; } }

/* CRM visual: tarjetas suaves inspiradas en glass cards con esquinas luminosas. */
.crm-summary { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-bottom:1rem; }
.crm-summary article { display:flex;gap:.75rem;align-items:center;padding:1rem;border:1px solid var(--admin-line,#d8e0ea);border-radius:17px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(235,245,249,.88));box-shadow:0 10px 28px rgba(30,30,70,.07); }
.crm-summary-icon { display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;border-radius:13px;background:linear-gradient(145deg,#1e1e46,#2c7fa2);color:#fff;box-shadow:0 8px 20px rgba(44,127,162,.24); }
.crm-summary article div { display:grid; }
.crm-summary small,.crm-summary p { margin:0;color:var(--admin-muted,#64748b);font-size:.6rem; }
.crm-summary strong { color:var(--admin-ink,#1e1e46);font-size:1.45rem;line-height:1; }
.crm-workspace { overflow:hidden; }
.crm-toolbar { display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.32fr);gap:.75rem;margin-bottom:1rem; }
.crm-toolbar label { display:grid;gap:.28rem;color:var(--admin-muted,#64748b);font-size:.62rem;font-weight:800; }
.crm-leads-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem; }
.crm-lead-card { position:relative;isolation:isolate;display:grid;gap:.8rem;overflow:hidden;padding:1rem;border:1px solid var(--admin-line,#d9e0e8);border-radius:19px;background:rgba(255,255,255,.88);box-shadow:0 10px 30px rgba(30,30,70,.07);animation:crmCardIn .42s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--crm-delay);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.crm-lead-glow { position:absolute;z-index:-1;inset:-70% 45% 65% -35%;border-radius:50%;background:radial-gradient(circle,rgba(88,213,233,.32),rgba(215,124,231,.16) 38%,transparent 70%);filter:blur(8px);transition:transform .35s ease,opacity .35s ease; }
.crm-lead-card:hover { transform:translateY(-4px);border-color:rgba(44,127,162,.4);box-shadow:0 18px 42px rgba(30,30,70,.13); }
.crm-lead-card:hover .crm-lead-glow { opacity:.9;transform:translate(35%,30%) scale(1.2); }
.crm-lead-card header { display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:.65rem;align-items:center; }
.crm-lead-avatar { display:grid;width:44px;height:44px;place-items:center;border-radius:14px;background:#1e1e46;color:#fff;font-size:.72rem;font-weight:900; }
.crm-lead-card header div { min-width:0; }
.crm-lead-card header small { display:block;overflow:hidden;color:#69778a;font-size:.56rem;text-overflow:ellipsis;white-space:nowrap; }
.crm-lead-card h2 { overflow:hidden;margin:.1rem 0 0;color:var(--admin-ink,#1e1e46);font-size:.8rem;text-overflow:ellipsis;white-space:nowrap; }
.crm-stage { padding:.3rem .48rem;border-radius:999px;background:#e8f4f7;color:#24677e;font-size:.5rem;font-weight:900;text-transform:uppercase; }
.crm-stage[data-stage="nuevo"],.crm-stage[data-stage="por contactar"] { background:#fff3d8;color:#8a5b05; }
.crm-stage[data-stage="pagado"],.crm-stage[data-stage="cerrado"] { background:#ddf7e8;color:#17663d; }
.crm-stage[data-stage="descartado"] { background:#f2f2f4;color:#6b7280; }
.crm-lead-meta { display:grid;grid-template-columns:1fr 1fr;gap:.5rem; }
.crm-lead-meta span { padding:.55rem;border-radius:10px;background:rgba(30,30,70,.035);color:var(--admin-ink,#1e1e46);font-size:.6rem; }
.crm-lead-meta b { display:block;margin-bottom:.16rem;color:#778296;font-size:.49rem;text-transform:uppercase; }
.crm-lead-contact { display:grid;gap:.24rem;color:#667589;font-size:.57rem; }
.crm-lead-card footer { display:flex;flex-wrap:wrap;gap:.38rem;padding-top:.15rem; }
.crm-lead-card footer :is(a,button) { min-height:34px;padding:.42rem .56rem;border:1px solid var(--admin-line,#d9e0e8);border-radius:9px;background:#fff;color:#1e1e46;font-size:.54rem;font-weight:800;text-decoration:none; }
.crm-lead-card footer button { margin-left:auto;background:#1e1e46;color:#fff; }
.crm-table-details { margin-top:1rem; }
.crm-table-details > summary { cursor:pointer;color:var(--admin-ink,#1e1e46);font-size:.72rem;font-weight:900; }
@keyframes crmCardIn { from { opacity:0;transform:translateY(9px); } to { opacity:1;transform:none; } }

/* SINAPSE: bienvenida humana, jerarquía limpia y movimiento ligero. */
body.admin-body .arturo-chat-panel { display:flex!important;flex-direction:column;background:linear-gradient(160deg,rgba(250,249,255,.98),rgba(238,246,250,.97)); }
body.admin-body .arturo-chat-panel[hidden] { display:none!important; }
.arturo-chat-brand small { display:flex!important;gap:.3rem;align-items:center; }
.arturo-chat-brand small i { width:6px;height:6px;border-radius:50%;background:#67e8a8;box-shadow:0 0 9px #67e8a8;animation:sinapseOnline 2.2s ease-in-out infinite; }
.arturo-welcome { display:flex;gap:.9rem;align-items:center;padding:1rem 1.1rem;background:radial-gradient(circle at 10% 0,rgba(215,124,231,.15),transparent 42%),linear-gradient(135deg,#f7f4ff,#edf9fb);animation:sinapseWelcome .4s ease both; }
.arturo-welcome .sinapse-orb { width:54px;height:54px;flex-basis:54px; }
.arturo-welcome div { min-width:0; }
.arturo-welcome small { color:#2c7fa2;font-size:.5rem;font-weight:900;letter-spacing:.12em; }
.arturo-welcome h2 { margin:.12rem 0;color:#1e1e46;font-size:1rem; }
.arturo-welcome p { margin:0;color:#657086;font-size:.59rem;line-height:1.45; }
.arturo-context { margin:0 .75rem;padding:.4rem .65rem;border:0;border-radius:0 0 10px 10px;background:rgba(44,127,162,.07);color:#3e7183;text-align:center; }
.arturo-topic-shell { max-height:235px;overflow:auto;border:0;background:transparent; }
.arturo-topic-grid button { position:relative;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease; }
.arturo-topic-grid button:hover { transform:translateY(-2px);box-shadow:0 8px 18px rgba(30,30,70,.08); }
.arturo-chat-log { min-height:80px;flex:1;background:transparent!important; }
.arturo-message { animation:sinapseMessageIn .28s cubic-bezier(.2,.8,.2,1) both; }
.arturo-avatar { border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#70d6e8 18%,#8055a6 62%,#1e1e46);color:transparent;box-shadow:0 0 16px rgba(128,85,166,.35); }
#arturo-chat-form { flex:0 0 auto;margin:.45rem .7rem .2rem;border-color:rgba(44,127,162,.22);box-shadow:0 10px 28px rgba(30,30,70,.08); }
#arturo-chat-form:focus-within { border-color:#2c7fa2;box-shadow:0 0 0 4px rgba(44,127,162,.1),0 12px 30px rgba(30,30,70,.1); }
#arturo-chat-form > button { background:linear-gradient(145deg,#1e1e46,#2c7fa2);transition:transform .18s ease; }
#arturo-chat-form > button:hover { transform:scale(1.06) rotate(-4deg); }
.arturo-human-support { flex:0 0 auto;margin:.25rem .7rem .55rem;background:rgba(22,101,52,.07); }
.arturo-chat-panel:has(.arturo-chat-log:not([hidden])) .arturo-welcome { display:none; }
@keyframes sinapseOnline { 50% { opacity:.45;transform:scale(.78); } }
@keyframes sinapseWelcome { from { opacity:0;transform:translateY(-6px); } to { opacity:1;transform:none; } }
@keyframes sinapseMessageIn { from { opacity:0;transform:translateY(8px) scale(.985); } to { opacity:1;transform:none; } }

@media (max-width: 1050px) { .crm-leads-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.crm-summary{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width: 700px) {
    .admin-tutorial-button span { display:none; }
    .admin-tutorial-card,.admin-tutorial-card.place-left { right:10px;bottom:calc(76px + env(safe-area-inset-bottom));left:10px;width:auto;max-height:72dvh;overflow:auto; }
    .crm-toolbar,.crm-leads-grid,.crm-summary { grid-template-columns:1fr; }
    .crm-lead-card footer button { margin-left:0; }
    .arturo-welcome { padding:.8rem; }
}
@media (prefers-reduced-motion: reduce) {
    .admin-tutorial-card,.crm-lead-card,.crm-lead-glow,.arturo-welcome,.arturo-message,.arturo-chat-brand small i { animation:none!important;transition:none!important; }
}

/* Refinamiento del orbe SINAPSE: profundidad limpia, sin manchas ni saltos de escala. */
.arturo-chat-launcher {
    border-color: rgba(255,255,255,.34);
    background: linear-gradient(145deg, rgba(24,26,62,.96), rgba(37,91,119,.94));
    box-shadow: 0 16px 38px rgba(24,26,62,.26), inset 0 1px 0 rgba(255,255,255,.22);
}

.arturo-chat-launcher .sinapse-orb,
.arturo-chat-brand .sinapse-orb,
.arturo-welcome .sinapse-orb {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.42);
    border-radius: 50%;
    background:
        radial-gradient(circle at 38% 32%, rgba(255,255,255,.34) 0 5%, transparent 18%),
        radial-gradient(circle at 50% 58%, #151936 0 38%, #0d1028 72%);
    box-shadow:
        0 0 0 3px rgba(91,205,225,.08),
        0 0 18px rgba(92,190,218,.3),
        inset 0 0 10px rgba(255,255,255,.12);
}

.sinapse-orb::before {
    content: "";
    position: absolute;
    inset: 2px;
    border-radius: 50%;
    background: conic-gradient(from 0deg,
        #66d9e8 0deg,
        #3d8cba 72deg,
        #7656ad 148deg,
        #d77ce7 218deg,
        #456fbd 292deg,
        #66d9e8 360deg);
    opacity: .9;
    filter: none;
    transform: rotate(18deg);
    animation: none;
}

.sinapse-orb::after {
    content: "";
    position: absolute;
    inset: 7px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 36% 30%, rgba(255,255,255,.82) 0 4%, transparent 19%),
        radial-gradient(circle at 62% 68%, rgba(215,124,231,.48), transparent 43%),
        radial-gradient(circle at 44% 48%, #23385d 0 30%, #12172f 72%);
    opacity: 1;
    filter: none;
    transform: translate3d(0,0,0) rotate(0deg);
    animation: none;
}

.sinapse-orb > i {
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 50%;
    width: 7px;
    height: 7px;
    inset: auto;
    border-radius: 50%;
    background: #f8fdff;
    box-shadow: 0 0 7px #fff, 0 0 15px #70d6e8;
    filter: none;
    opacity: .86;
    transform: translate(-50%,-50%) scale(.92);
    animation: sinapseOrbIdle 4.8s ease-in-out infinite;
}

.arturo-chat-panel.is-thinking .sinapse-orb {
    box-shadow:
        0 0 0 4px rgba(102,217,232,.13),
        0 0 24px rgba(118,86,173,.42),
        inset 0 0 12px rgba(255,255,255,.16);
}
.arturo-chat-panel.is-thinking .sinapse-orb::before { animation: sinapseOrbTurn 1.7s linear infinite; }
.arturo-chat-panel.is-thinking .sinapse-orb::after { animation: sinapseOrbDrift 1.05s ease-in-out infinite alternate; }
.arturo-chat-panel.is-thinking .sinapse-orb > i { animation: sinapseOrbCore .9s ease-in-out infinite; }

@keyframes sinapseOrbIdle {
    0%,100% { opacity:.78;transform:translate(-50%,-50%) scale(.9); }
    50% { opacity:.92;transform:translate(-50%,-50%) scale(1); }
}

@keyframes sinapseOrbTurn {
    0% { transform: rotate(0deg) scale(1); }
    50% { transform: rotate(180deg) scale(1.025); }
    100% { transform: rotate(360deg) scale(1); }
}

@keyframes sinapseOrbDrift {
    0% { transform: translate3d(-1px,-1px,0) rotate(-5deg); }
    100% { transform: translate3d(1px,1px,0) rotate(7deg); }
}

@keyframes sinapseOrbCore {
    0%,100% { opacity:.72;transform:translate(-50%,-50%) scale(.82); }
    50% { opacity:1;transform:translate(-50%,-50%) scale(1.18); }
}

@media (prefers-reduced-motion: reduce) {
    .sinapse-orb::before,
    .sinapse-orb::after,
    .sinapse-orb > i {
        animation: none !important;
    }
    .sinapse-orb > i { transform: translate(-50%,-50%); }
}

/* Ajuste visual final: orbe orgánico y chat compacto, especialmente en teléfono. */
.sinapse-orb::before {
    inset: -22%;
    border-radius: 43% 57% 52% 48%;
    background: conic-gradient(from 18deg,
        #68d9e8,
        #317fa8 24%,
        #7552ad 48%,
        #d57ee2 70%,
        #4f86bd 86%,
        #68d9e8);
    opacity: .94;
    filter: blur(2px);
    transform: rotate(14deg) scale(1.04);
}

.sinapse-orb::after {
    inset: 5px;
    border-radius: 48% 52% 45% 55%;
    background:
        radial-gradient(circle at 33% 26%, rgba(255,255,255,.72) 0 5%, transparent 18%),
        radial-gradient(circle at 64% 70%, rgba(218,118,228,.62), transparent 45%),
        radial-gradient(circle at 42% 48%, rgba(43,123,163,.88), rgba(38,27,87,.92) 72%);
    box-shadow: inset 0 0 11px rgba(255,255,255,.16);
}

.sinapse-orb > i {
    top: 30%;
    left: 34%;
    width: 6px;
    height: 6px;
    opacity: .84;
    box-shadow: 0 0 6px #fff, 0 0 11px rgba(255,255,255,.68);
}

.arturo-chat-panel.is-thinking .sinapse-orb::before {
    animation-name: sinapseOrbOrganicTurn;
}

@keyframes sinapseOrbOrganicTurn {
    0% { transform:rotate(14deg) scale(1.04); }
    50% { transform:rotate(194deg) scale(1.08); }
    100% { transform:rotate(374deg) scale(1.04); }
}

body.admin-body .arturo-chat-panel > header { min-height:64px;padding:.65rem .75rem; }
body.admin-body .arturo-chat-brand > .sinapse-orb { width:38px;height:38px;flex-basis:38px; }
body.admin-body .arturo-chat-brand strong { font-size:12px;line-height:1.1; }
body.admin-body .arturo-chat-brand small { font-size:9px;line-height:1.2; }
body.admin-body #arturo-chat-close { width:36px;height:36px;border-radius:11px;font-size:18px; }
body.admin-body .arturo-welcome { min-height:92px;padding:.8rem .9rem; }
body.admin-body .arturo-welcome .sinapse-orb { width:48px;height:48px;flex-basis:48px; }
body.admin-body .arturo-welcome small { font-size:8px; }
body.admin-body .arturo-welcome h2 { margin:2px 0;font-size:17px;line-height:1.15; }
body.admin-body .arturo-welcome p { font-size:10px;line-height:1.45; }
body.admin-body .arturo-context { font-size:9px; }
body.admin-body .arturo-topic-shell { gap:.42rem;padding:.58rem .7rem; }
body.admin-body .arturo-topic-shell-head strong { font-size:12px; }
body.admin-body .arturo-topic-shell-head small { font-size:9px; }
body.admin-body .arturo-topic-shell-head button { min-height:30px;padding:.35rem .55rem;font-size:9px; }
body.admin-body .arturo-topic-grid { gap:.35rem; }
body.admin-body .arturo-topic-grid button { min-height:43px;padding:.38rem;font-size:9px;line-height:1.25; }
body.admin-body .arturo-topic-grid button span { width:25px;height:25px;font-size:11px; }
body.admin-body #arturo-chat-form { min-height:54px; }
body.admin-body #arturo-chat-input { min-height:38px;padding:.5rem;font-size:11px;line-height:1.4; }
body.admin-body #arturo-chat-form > button { width:36px;height:36px;font-size:15px; }
body.admin-body .arturo-human-support { min-height:42px;font-size:9px; }
body.admin-body .arturo-human-support a { font-size:9px; }

@media (max-width: 720px) {
    body.admin-body .arturo-chat-panel {
        inset: auto .5rem max(.5rem, env(safe-area-inset-bottom)) !important;
        width: auto !important;
        height: auto !important;
        max-height: calc(100dvh - max(1rem, env(safe-area-inset-top))) !important;
        border-radius: 20px !important;
    }
    body.admin-body .arturo-chat-panel:has(.arturo-chat-log:not([hidden])) {
        height: min(720px, calc(100dvh - 1rem)) !important;
    }
    body.admin-body .arturo-topic-shell { max-height:280px; }
    body.admin-body .arturo-topic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 390px) {
    body.admin-body .arturo-welcome { min-height:80px; }
    body.admin-body .arturo-welcome .sinapse-orb { width:42px;height:42px;flex-basis:42px; }
    body.admin-body .arturo-topic-grid button { min-height:40px;font-size:8px; }
    body.admin-body .arturo-human-support span { max-width:16ch; }
}

/* SINAPSE generativo: flujo de color sin anillos, pupila ni centro fijo. */
.arturo-chat-launcher .sinapse-orb,
.arturo-chat-brand .sinapse-orb,
.arturo-welcome .sinapse-orb {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 50%;
    background: linear-gradient(145deg,#171936,#23275a);
    box-shadow: 0 0 0 3px rgba(92,205,225,.07),0 0 22px rgba(126,91,186,.34),inset 0 0 14px rgba(255,255,255,.12);
}

.sinapse-orb::before {
    inset: -48%;
    border-radius: 42% 58% 61% 39%;
    background: conic-gradient(from 15deg,
        transparent 0 5%,
        #6ce2ee 17%,
        #2c7fa2 33%,
        #7956bd 52%,
        #e183dc 70%,
        #526ed0 86%,
        transparent 98%);
    opacity: .95;
    filter: blur(3px) saturate(1.12);
    transform: none;
    animation: sinapseGenerativeFlow 8s linear infinite;
}

.sinapse-orb::after {
    inset: -24%;
    border-radius: 61% 39% 46% 54%;
    background:
        radial-gradient(circle at 28% 24%,rgba(255,255,255,.88) 0 3%,transparent 15%),
        radial-gradient(circle at 68% 66%,rgba(231,126,220,.72),transparent 38%),
        radial-gradient(circle at 36% 58%,rgba(64,201,220,.68),transparent 43%);
    box-shadow: none;
    opacity: .82;
    filter: blur(4px);
    transform: none;
    animation: sinapseGenerativeDrift 5.2s ease-in-out infinite alternate;
}

.sinapse-orb > i { display:none!important; }

.arturo-chat-panel.is-thinking .sinapse-orb::before {
    animation: sinapseGenerativeFlow 1.6s linear infinite;
}
.arturo-chat-panel.is-thinking .sinapse-orb::after {
    animation: sinapseGenerativeDrift .9s ease-in-out infinite alternate;
}
.arturo-chat-panel.is-thinking .sinapse-orb {
    box-shadow:0 0 0 4px rgba(108,226,238,.12),0 0 30px rgba(129,88,196,.48),inset 0 0 15px rgba(255,255,255,.16);
}

@keyframes sinapseGenerativeFlow {
    0% { transform:rotate(0deg) scale(1);border-radius:42% 58% 61% 39%; }
    50% { transform:rotate(180deg) scale(1.07);border-radius:58% 42% 39% 61%; }
    100% { transform:rotate(360deg) scale(1);border-radius:42% 58% 61% 39%; }
}
@keyframes sinapseGenerativeDrift {
    0% { transform:translate3d(-3%,-2%,0) rotate(-8deg) scale(.96); }
    100% { transform:translate3d(3%,2%,0) rotate(10deg) scale(1.06); }
}

/* Conversación: respuesta visible desde arriba y barra de escritura siempre estable. */
body.admin-body .arturo-chat-panel.has-conversation {
    height:min(720px,calc(100dvh - 1rem))!important;
}
body.admin-body .arturo-chat-panel.has-conversation .arturo-welcome { display:none!important; }
body.admin-body .arturo-chat-panel.has-conversation .arturo-topic-shell.is-collapsed {
    min-height:42px;
    max-height:42px;
    padding:.35rem .7rem;
    overflow:hidden;
    background:rgba(44,127,162,.045);
}
body.admin-body .arturo-chat-panel.has-conversation .arturo-topic-shell-head {
    display:flex;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
}
body.admin-body .arturo-chat-panel.has-conversation .arturo-topic-shell-head small { display:none; }
body.admin-body .arturo-chat-log {
    min-height:0!important;
    flex:1 1 auto;
    scroll-padding:10px;
    scrollbar-width:thin;
    scrollbar-color:rgba(44,127,162,.28) transparent;
}
body.admin-body .arturo-chat-log::-webkit-scrollbar { width:5px; }
body.admin-body .arturo-chat-log::-webkit-scrollbar-thumb { border-radius:999px;background:rgba(44,127,162,.28); }
body.admin-body #arturo-chat-form {
    position:relative;
    z-index:5;
    flex:0 0 auto;
    margin:.45rem .7rem .4rem;
    background:rgba(255,255,255,.96)!important;
    box-shadow:0 -8px 24px rgba(30,30,70,.055),0 8px 24px rgba(30,30,70,.08);
}
body.admin-body .arturo-message.is-revealing .arturo-message-content {
    animation:sinapseAnswerReveal .46s cubic-bezier(.2,.8,.2,1) both;
}
body.admin-body .arturo-chat-panel.answer-ready #arturo-chat-form {
    animation:sinapseComposerReady .65s ease;
}
body.admin-body .arturo-message.is-typing .arturo-message-content {
    background:linear-gradient(110deg,rgba(255,255,255,.85),rgba(108,226,238,.12),rgba(255,255,255,.85));
    background-size:220% 100%;
    animation:sinapseThinkingSweep 1.3s linear infinite;
}
@keyframes sinapseAnswerReveal {
    from { opacity:0;transform:translateY(10px) scale(.985);filter:blur(2px); }
    to { opacity:1;transform:none;filter:none; }
}
@keyframes sinapseComposerReady {
    0%,100% { box-shadow:0 -8px 24px rgba(30,30,70,.055),0 8px 24px rgba(30,30,70,.08); }
    45% { box-shadow:0 0 0 4px rgba(108,226,238,.13),0 10px 30px rgba(30,30,70,.12); }
}
@keyframes sinapseThinkingSweep { to { background-position:-220% 0; } }

@media (max-width:720px) {
    body.admin-body .arturo-chat-panel.has-conversation {
        inset:max(.5rem,env(safe-area-inset-top)) .5rem max(.5rem,env(safe-area-inset-bottom))!important;
        height:auto!important;
        max-height:none!important;
    }
    body.admin-body .arturo-chat-panel.has-conversation .arturo-human-support { display:none; }
    body.admin-body .arturo-chat-panel.has-conversation .arturo-context { padding:.3rem .55rem; }
}

@media (prefers-reduced-motion:reduce) {
    .sinapse-orb::before,.sinapse-orb::after,
    .arturo-message.is-revealing .arturo-message-content,
    .arturo-chat-panel.answer-ready #arturo-chat-form,
    .arturo-message.is-typing .arturo-message-content { animation:none!important; }
}

/* Guía y ayudas: dimensiones aisladas para impedir que reglas generales las estiren. */
body.admin-body .admin-help-titleline {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    gap: .45rem;
    align-items: center;
    vertical-align: middle;
}
body.admin-body .admin-help-titleline > :is(h1,h2) {
    min-width: 0;
    margin-right: 0;
}
body.admin-body :is(.admin-section-help,.admin-inline-help) {
    appearance: none;
    display: inline-grid !important;
    width: 26px !important;
    min-width: 26px !important;
    max-width: 26px !important;
    height: 26px !important;
    min-height: 26px !important;
    max-height: 26px !important;
    flex: 0 0 26px !important;
    place-items: center;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(44,127,162,.28) !important;
    border-radius: 8px !important;
    background: var(--admin-surface,#fff) !important;
    color: #1b617e !important;
    box-shadow: 0 4px 12px rgba(30,30,70,.09) !important;
    line-height: 1 !important;
    cursor: help;
}
body.admin-body .admin-section-help {
    border-color: transparent !important;
    background: linear-gradient(145deg,#1e1e46,#2c7fa2) !important;
    color: #fff !important;
}
body.admin-body .admin-inline-help {
    width: 23px !important;
    min-width: 23px !important;
    max-width: 23px !important;
    height: 23px !important;
    min-height: 23px !important;
    max-height: 23px !important;
    flex-basis: 23px !important;
    border-radius: 7px !important;
    background: color-mix(in srgb,var(--admin-surface,#fff) 88%,#dff2f7) !important;
}
body.admin-body :is(.admin-section-help,.admin-inline-help) svg,
body.admin-body .admin-tutorial-button b svg {
    display: block;
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}
body.admin-body :is(.admin-section-help,.admin-inline-help):hover {
    border-color: #2c7fa2 !important;
    background: #2c7fa2 !important;
    color: #fff !important;
    transform: translateY(-1px);
}
body.admin-body .admin-tutorial-button {
    appearance: none;
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 132px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    flex: 0 0 auto !important;
    gap: .42rem;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: 5px 11px 5px 5px !important;
    border: 1px solid var(--admin-line,#d4dce6) !important;
    border-radius: 11px !important;
    background: var(--admin-surface,#fff) !important;
    color: var(--admin-ink,#1e1e46) !important;
    box-shadow: 0 5px 14px rgba(30,30,70,.07) !important;
}
body.admin-body .admin-tutorial-button b {
    display: inline-grid !important;
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
    flex: 0 0 28px !important;
    place-items: center;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: linear-gradient(145deg,#1e1e46,#2c7fa2) !important;
    color: #fff !important;
    box-shadow: none !important;
}
body.admin-body .admin-guided-tutorial[hidden] { display: none !important; }
body.admin-body > #admin-toast.admin-toast {
    position: fixed !important;
    z-index: 2147483000 !important;
    isolation: isolate;
}
body.admin-body .texts-admin-card .admin-help-titleline > h2 { font-size: 1.3rem; }
body.admin-body .admin-tutorial-card {
    max-width: calc(100vw - 20px);
    max-height: min(620px,calc(100dvh - 20px));
}
@media (max-width:700px) {
    body.admin-body .admin-tutorial-button {
        width: 40px !important;
        min-width: 40px !important;
        max-width: 40px !important;
        padding: 5px !important;
    }
    body.admin-body .admin-help-titleline { width: 100%; justify-content: flex-start; }
    body.admin-body :is(.admin-section-help,.admin-inline-help) { align-self: center !important; }
}
/* Email Studio · segmentos y audiencia por campaña (2026-09-30) */
.admin-body .client-studio-gateway { display:grid; justify-items:center; gap:1rem; padding-block:clamp(1.5rem,5vw,3rem); text-align:center; }
.admin-body .client-studio-loader { display:grid; justify-items:center; gap:.9rem; }
.admin-body .client-studio-loader[hidden] { display:none; }
.admin-body .client-studio-loader strong,
.admin-body .client-studio-loader small { display:block; }
.admin-body .client-studio-loader strong { color:var(--email-navy); font-size:.9rem; }
.admin-body .client-studio-loader small { margin-top:.25rem; color:var(--email-muted); font-size:.68rem; }
.admin-body .client-studio-loader-visual { position:relative; display:grid; width:88px; height:88px; place-items:center; }
.admin-body .client-studio-loader-visual i { position:absolute; inset:5px; border:2px solid transparent; border-top-color:#2c7fa2; border-radius:50%; animation:clientStudioOrbit 1.25s linear infinite; }
.admin-body .client-studio-loader-visual i:nth-child(2) { inset:13px; border-top-color:#8055a6; animation-duration:.95s; animation-direction:reverse; }
.admin-body .client-studio-loader-visual i:nth-child(3) { inset:21px; border-top-color:#1e1e46; animation-duration:.72s; }
.admin-body .client-studio-loader-visual span { display:grid; width:38px; height:38px; z-index:1; place-items:center; border-radius:11px; background:#1e1e46; color:#fff; font-size:.68rem; font-weight:900; box-shadow:0 8px 22px rgba(30,30,70,.2); animation:clientStudioPulse 1.2s ease-in-out infinite; }
.admin-body .client-studio-loader[data-state="ready"] .client-studio-loader-visual i { animation-play-state:paused; opacity:.25; }
.admin-body .client-studio-loader[data-state="ready"] .client-studio-loader-visual span { background:#15803d; animation:none; }
.admin-body .client-studio-loader[data-state="error"] .client-studio-loader-visual i { animation-play-state:paused; border-top-color:#dc2626; }
.admin-body .client-studio-loader[data-state="error"] .client-studio-loader-visual span { background:#b91c1c; animation:none; }
.admin-body .client-studio-open-btn { min-height:48px; padding-inline:1.25rem; }
.admin-body .client-studio-open-btn[hidden],
.admin-body #client-studio-retry-btn[hidden] { display:none; }
.admin-body .client-studio-modal { position:fixed; z-index:10035; inset:0; display:grid; place-items:center; padding:1rem; background:rgba(15,23,42,.66); -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px); }
.admin-body .client-studio-modal[hidden] { display:none; }
.admin-body .client-studio-dialog { display:grid; grid-template-rows:auto minmax(0,1fr); width:min(1240px,97vw); height:min(900px,94vh); overflow:hidden; border:1px solid rgba(255,255,255,.48); border-radius:20px; background:#eef3f7; box-shadow:0 30px 90px rgba(15,23,42,.35); }
.admin-body .client-studio-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.15rem; border-bottom:1px solid rgba(30,30,70,.1); background:rgba(255,255,255,.88); }
.admin-body .client-studio-header h2,
.admin-body .client-studio-header p { margin:0; }
.admin-body .client-studio-header-actions { display:flex; align-items:center; gap:.55rem; }
.admin-body .client-studio-header-actions > [aria-label] { width:40px; height:40px; border:0; border-radius:50%; background:rgba(30,30,70,.08); color:var(--email-navy); cursor:pointer; font-size:1.45rem; }
.admin-body .client-studio-content { display:grid; align-content:start; gap:1rem; min-height:0; padding:1rem; overflow:auto; }
.admin-body .client-studio-content .email-segments-manager { margin-bottom:0; }
@keyframes clientStudioOrbit { to { transform:rotate(1turn); } }
@keyframes clientStudioPulse { 50% { transform:scale(.9); opacity:.82; } }
.admin-body .subscriber-contact-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:.8rem; margin-top:1rem; }
.admin-body .subscriber-contact-grid > .empty-state,
.admin-body .subscriber-contact-grid > .subscriber-contact-loading { grid-column:1/-1; }
.admin-body .subscriber-contact-card { display:grid; aspect-ratio:1; min-width:0; grid-template-rows:auto minmax(0,1fr) auto; gap:.55rem; padding:.9rem; overflow:hidden; border:1px solid rgba(30,30,70,.12); border-radius:16px; background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(238,242,255,.78)); box-shadow:0 10px 26px rgba(30,30,70,.07); }
.admin-body .subscriber-contact-card > header { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.admin-body .subscriber-contact-avatar { display:grid; width:40px; height:40px; flex:0 0 40px; place-items:center; border-radius:12px; background:linear-gradient(145deg,#1e1e46,#2c7fa2); color:#fff; font-size:1rem; font-weight:900; }
.admin-body .subscriber-contact-state { padding:.25rem .45rem; border-radius:999px; background:rgba(22,163,74,.1); color:#166534; font-size:.61rem; font-weight:800; }
.admin-body .subscriber-contact-card[data-active="false"] .subscriber-contact-state { background:rgba(100,116,139,.12); color:#475569; }
.admin-body .subscriber-contact-copy { display:grid; min-width:0; min-height:0; grid-template-columns:44px minmax(0,1fr); grid-template-rows:auto auto auto 1fr; align-content:start; column-gap:.65rem; row-gap:.18rem; overflow:hidden; }
.admin-body .subscriber-contact-copy > :not(.subscriber-contact-avatar) { grid-column:2; min-width:0; }
.admin-body .subscriber-contact-copy strong { overflow:hidden; color:var(--email-navy); font-size:.8rem; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.admin-body .subscriber-contact-copy span,
.admin-body .subscriber-contact-copy small { overflow-wrap:anywhere; color:var(--email-muted); font-size:.64rem; line-height:1.4; }
.admin-body .subscriber-contact-copy > span:not(.subscriber-contact-avatar),
.admin-body .subscriber-contact-copy > small:not(:last-child) { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-body .subscriber-contact-copy > small:last-child { grid-column:1/-1; align-self:end; padding-top:.25rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-body .subscriber-contact-card > footer { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.35rem; }
.admin-body .subscriber-contact-card > footer button { min-height:34px; padding:.35rem; border:1px solid rgba(30,30,70,.12); border-radius:8px; background:#fff; color:var(--email-navy); cursor:pointer; font-size:.61rem; font-weight:800; }
.admin-body .subscriber-contact-card > footer .btn-delete-row { grid-column:1/-1; }
.admin-body .email-campaign-actions { flex-wrap:wrap; }
.admin-body .email-segment-recipient-field { display:grid; gap:.35rem; padding:.75rem; border:1px solid rgba(49,94,232,.2); border-radius:10px; background:rgba(238,242,255,.58); }
.admin-body .email-segment-recipient-field[hidden] { display:none; }
.admin-body .email-segment-recipient-field label { display:grid; gap:.35rem; }
.admin-body .email-segment-recipient-field small { color:var(--email-muted); font-size:.66rem; line-height:1.45; }
.admin-body .email-segments-manager { display:grid; gap:1rem; margin-bottom:1rem; }
.admin-body .email-segments-manager h2,
.admin-body .email-segments-manager p { margin:0; }
.admin-body .email-segment-create-form { display:flex; gap:.55rem; align-items:center; }
.admin-body .email-segment-create-form input { min-width:min(280px,48vw); }
.admin-body .email-segments-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; }
.admin-body .email-segment-card { display:grid; gap:.35rem; padding:.85rem; border:1px solid rgba(30,30,70,.1); border-radius:12px; background:rgba(255,255,255,.58); }
.admin-body .email-segment-card strong { color:var(--email-navy); font-size:.82rem; }
.admin-body .email-segment-card span,
.admin-body .email-segment-card small { color:var(--email-muted); font-size:.66rem; }
.admin-body .email-segment-card button { width:fit-content; padding:.35rem .55rem; border:1px solid rgba(30,30,70,.12); border-radius:8px; background:#fff; color:var(--email-navy); cursor:pointer; font-size:.64rem; font-weight:800; }
.admin-body .email-segment-actions { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.25rem; }
.admin-body .email-segment-queue { display:grid; gap:.45rem; margin-top:.45rem; padding:.65rem; border:1px solid rgba(194,65,12,.18); border-radius:10px; background:rgba(255,247,237,.84); }
.admin-body .email-segment-queue > strong { font-size:.68rem; }
.admin-body .email-segment-queue-row { display:grid; gap:.35rem; padding-top:.4rem; border-top:1px solid rgba(194,65,12,.12); }
.admin-body .email-segment-queue-row > span { color:var(--email-navy); font-weight:800; }
.admin-body .email-segment-queue-actions { display:flex; flex-wrap:wrap; gap:.35rem; }
.admin-body .email-segment-queue-actions button { min-height:34px; }
.admin-body .email-segment-queue-actions [data-segment-auto-campaign] { border-color:var(--email-primary); background:var(--email-primary); color:#fff; }
.admin-body .email-segment-queue-empty { margin-top:.35rem; padding:.45rem .55rem; border-radius:8px; background:rgba(15,23,42,.04); }
.admin-body .email-segment-actions [data-manage-segment] { border-color:rgba(128,85,166,.32); color:#68408e; }
.admin-body .segment-manage-dialog { width:min(760px,96vw); max-height:92vh; overflow:auto; }
.admin-body .segment-rename-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.65rem; align-items:end; }
.admin-body .segment-rename-form label,
.admin-body .segment-delete-danger label { display:grid; gap:.35rem; color:var(--email-navy); font-size:.68rem; font-weight:800; }
.admin-body .segment-delete-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.admin-body .segment-delete-options > div { display:grid; align-content:start; gap:.55rem; padding:.85rem; border:1px solid rgba(30,30,70,.12); border-radius:12px; background:rgba(255,255,255,.7); }
.admin-body .segment-delete-options h3,
.admin-body .segment-delete-options p { margin:0; }
.admin-body .segment-delete-options h3 { color:var(--email-navy); font-size:.8rem; }
.admin-body .segment-delete-options p { color:var(--email-muted); font-size:.65rem; line-height:1.5; }
.admin-body .segment-delete-options .segment-delete-danger { border-color:rgba(176,35,45,.25); background:#fff1f2; }
.admin-body .segment-delete-danger .btn-danger { border-color:#9f1d2a; background:#9f1d2a; color:#fff; }
.admin-body .segment-delete-danger .btn-danger:disabled { cursor:not-allowed; opacity:.45; }
.admin-body .segment-manage-footer { display:flex; justify-content:flex-end; }
.admin-body .email-csv-segment-target { display:grid; gap:.6rem; padding:.8rem; border:1px solid rgba(30,30,70,.1); border-radius:11px; background:rgba(255,255,255,.5); }
.admin-body .email-csv-segment-target label { display:grid; gap:.3rem; font-size:.72rem; font-weight:800; }
.admin-body .email-csv-segment-target small { color:var(--email-muted); font-size:.65rem; line-height:1.45; }
.admin-body .email-csv-segment-target [hidden] { display:none; }
.admin-body .email-campaign-actions [data-view-email-audience] { border-color:var(--email-primary); background:var(--email-primary); color:#fff; }
.admin-body .email-audience-modal { position:fixed; z-index:10040; inset:0; display:grid; place-items:center; padding:1rem; background:rgba(15,23,42,.62); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.admin-body .email-audience-modal[hidden] { display:none; }
.admin-body .email-audience-dialog { display:grid; grid-template-rows:auto auto auto minmax(0,1fr) auto; gap:.85rem; width:min(1080px,96vw); max-height:90vh; padding:1.15rem; border-radius:18px; background:#f8fafc; box-shadow:0 28px 80px rgba(15,23,42,.28); }
.admin-body .email-audience-dialog > header { display:flex; justify-content:space-between; gap:1rem; }
.admin-body .email-audience-dialog h2,
.admin-body .email-audience-dialog p { margin:0; }
.admin-body .email-audience-dialog > header > button { width:38px; height:38px; border:0; border-radius:50%; background:rgba(30,30,70,.08); color:var(--email-navy); cursor:pointer; font-size:1.4rem; }
.admin-body .email-audience-toolbar { display:grid; grid-template-columns:minmax(220px,1fr) 190px auto; gap:.6rem; }
.admin-body .email-audience-stats { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.5rem; }
.admin-body .email-audience-stats article { padding:.65rem; border-radius:10px; background:rgba(30,30,70,.055); }
.admin-body .email-audience-stats strong,
.admin-body .email-audience-stats span { display:block; }
.admin-body .email-audience-stats strong { color:var(--email-navy); font-size:1rem; }
.admin-body .email-audience-stats span { color:var(--email-muted); font-size:.62rem; }
.admin-body .email-audience-list { overflow:auto; border:1px solid rgba(30,30,70,.1); border-radius:11px; }
.admin-body .email-audience-list table { width:100%; border-collapse:collapse; font-size:.68rem; }
.admin-body .email-audience-list th,
.admin-body .email-audience-list td { padding:.6rem; border-bottom:1px solid rgba(30,30,70,.08); text-align:left; white-space:nowrap; }
.admin-body .email-audience-list th { position:sticky; z-index:1; top:0; background:#eef2f7; color:var(--email-navy); }
.admin-body .email-audience-list td { color:var(--email-muted); }
.admin-body .email-delivery-badge { display:inline-flex; padding:.22rem .42rem; border-radius:999px; background:rgba(37,99,235,.09); color:#1d4ed8; font-weight:800; }
.admin-body .email-delivery-badge[data-status="delivered"],
.admin-body .email-delivery-badge[data-status="opened"],
.admin-body .email-delivery-badge[data-status="clicked"] { background:rgba(22,163,74,.1); color:#166534; }
.admin-body .email-delivery-badge[data-status="failed"],
.admin-body .email-delivery-badge[data-status="bounced"],
.admin-body .email-delivery-badge[data-status="suppressed"] { background:rgba(220,38,38,.09); color:#991b1b; }

@media (max-width:820px) {
    .admin-body .email-segments-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .admin-body .segment-delete-options { grid-template-columns:1fr; }
    .admin-body .email-audience-toolbar { grid-template-columns:1fr 1fr; }
    .admin-body .email-audience-toolbar .btn { grid-column:1/-1; }
    .admin-body .email-audience-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:560px) {
    .admin-body .email-segments-manager .form-title-row,
    .admin-body .email-segment-create-form { display:grid; grid-template-columns:1fr; }
    .admin-body .email-segment-create-form input { min-width:0; width:100%; }
    .admin-body .segment-rename-form { grid-template-columns:1fr; }
    .admin-body .email-segments-list,
    .admin-body .email-audience-toolbar { grid-template-columns:1fr; }
    .admin-body .email-audience-toolbar .btn { grid-column:auto; }
    .admin-body .email-audience-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .admin-body .subscriber-contact-grid { grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:.55rem; }
    .admin-body .subscriber-contact-card { padding:.7rem; }
    .admin-body .subscriber-contact-avatar { width:34px; height:34px; flex-basis:34px; }
    .admin-body .subscriber-contact-copy small:last-child { display:block; }
    .admin-body .client-studio-modal { padding:0; }
    .admin-body .client-studio-dialog { width:100%; height:100svh; border-radius:0; }
    .admin-body .client-studio-header { align-items:flex-start; }
    .admin-body .client-studio-header-actions { flex-direction:column-reverse; }
    .admin-body .client-studio-header-actions .btn { padding-inline:.55rem; font-size:.62rem; }
}

@media (prefers-reduced-motion:reduce) {
    .admin-body .client-studio-loader-visual i,
    .admin-body .client-studio-loader-visual span { animation:none; }
}

/* SINAPSE · contexto operativo explicable */
body.admin-body .arturo-context {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.55rem;
}
body.admin-body .arturo-context > span { min-width:0; }
body.admin-body .arturo-context > button {
    flex:0 0 auto;
    border:1px solid rgba(44,127,162,.2);
    border-radius:999px;
    padding:.27rem .5rem;
    background:rgba(255,255,255,.76);
    color:#245d79;
    font:inherit;
    font-size:.53rem;
    font-weight:800;
    line-height:1.1;
    cursor:pointer;
}
body.admin-body .arturo-context > button:disabled { cursor:wait; opacity:.55; }
.arturo-operational-strip {
    display:grid;
    gap:.42rem;
    margin:.15rem .7rem .4rem;
    padding:.55rem;
    border:1px solid rgba(44,127,162,.13);
    border-radius:12px;
    background:rgba(235,246,250,.72);
}
.arturo-operational-strip > div { display:flex; align-items:center; gap:.4rem; color:#365567; font-size:.61rem; font-weight:750; }
.arturo-operational-strip i { width:7px; height:7px; border-radius:50%; background:#4bbd8b; box-shadow:0 0 0 4px rgba(75,189,139,.12); }
.arturo-operational-strip[data-state="loading"] i,
.arturo-operational-strip[data-state="refreshing"] i { background:#e5a62f; animation:sinapseOnline 1.1s ease-in-out infinite; }
.arturo-operational-strip[data-state="partial"] i { background:#e5a62f; }
.arturo-operational-strip[data-state="error"] i,
.arturo-operational-strip[data-state="no-permission"] i { background:#d45b64; }
.arturo-operational-strip nav { display:flex; flex-wrap:wrap; gap:.3rem; }
.arturo-operational-strip nav button {
    border:1px solid rgba(44,127,162,.18);
    border-radius:999px;
    padding:.3rem .5rem;
    background:#fff;
    color:#1e3650;
    font:inherit;
    font-size:.54rem;
    font-weight:800;
    line-height:1.1;
    cursor:pointer;
}
.arturo-alert-badge {
    position:absolute;
    top:-4px;
    right:-4px;
    min-width:18px;
    height:18px;
    padding:0 4px;
    border:2px solid #fff;
    border-radius:999px;
    background:#d23f4d;
    color:#fff;
    font:inherit;
    font-size:9px;
    font-weight:900;
    line-height:14px;
    text-align:center;
}
.arturo-alert-badge[hidden] { display:none!important; }
.arturo-operational-results { display:grid; gap:.45rem; margin:.65rem 0; }
.arturo-operational-results > article {
    display:grid;
    gap:.35rem;
    padding:.62rem;
    border:1px solid rgba(30,30,70,.1);
    border-left:3px solid #6686a0;
    border-radius:10px;
    background:rgba(255,255,255,.84);
}
.arturo-operational-results > article[data-severity="high"] { border-left-color:#df9633; }
.arturo-operational-results > article[data-severity="critical"] { border-left-color:#cf4653; }
.arturo-operational-results article div,
.arturo-operational-results article strong { display:block; }
.arturo-operational-results article small { color:#60717c; font-size:.55rem; }
.arturo-operational-results article strong { margin-top:.12rem; color:#172e43; font-size:.7rem; }
.arturo-operational-results ul { margin:.15rem 0; padding-left:1rem; color:#465d6b; font-size:.61rem; }
.arturo-operational-results p { margin:0!important; color:#334e5e!important; font-size:.59rem!important; }
.arturo-operational-results button {
    justify-self:start;
    border:0;
    padding:.35rem 0;
    background:transparent;
    color:#207091;
    font:inherit;
    font-size:.57rem;
    font-weight:850;
    line-height:1.1;
    cursor:pointer;
}
.arturo-context-stamp { display:block; margin-top:.55rem; color:#7a8991; font-size:.5rem!important; }

@media (max-width:560px) {
    .arturo-operational-strip { margin-inline:.5rem; }
    .arturo-operational-strip nav { flex-wrap:nowrap; overflow-x:auto; padding-bottom:.1rem; }
    .arturo-operational-strip nav button { flex:0 0 auto; }
}

@media (prefers-reduced-motion:reduce) {
    .arturo-operational-strip i { animation:none!important; }
}

/* Clientes Studio escalable: sólo renderiza una página y conserva selección. */
.admin-body .client-database-card { display:grid; gap:.85rem; min-width:0; }
.admin-body .client-database-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.admin-body .client-database-heading :is(h2,p) { margin:0; }
.admin-body .client-database-toolbar { display:grid; grid-template-columns:minmax(240px,1fr) minmax(190px,.55fr) auto; gap:.6rem; align-items:end; }
.admin-body .client-database-toolbar label { display:grid; gap:.3rem; color:var(--email-muted); font-size:.62rem; font-weight:800; }
.admin-body .client-segment-assignment { display:grid; grid-template-columns:minmax(180px,1fr) minmax(220px,.75fr) auto; gap:.6rem; align-items:center; padding:.7rem; border:1px solid rgba(44,127,162,.16); border-radius:12px; background:rgba(235,246,250,.66); }
.admin-body .client-segment-assignment div { display:grid; gap:.14rem; }
.admin-body .client-segment-assignment strong { color:var(--email-navy); font-size:.7rem; }
.admin-body .client-segment-assignment small { color:var(--email-muted); font-size:.58rem; }
.admin-body .client-database-pagination { display:flex; align-items:center; justify-content:center; gap:.65rem; }
.admin-body .client-database-pagination span { min-width:120px; color:var(--email-muted); font-size:.65rem; font-weight:800; text-align:center; }
.admin-body .subscriber-contact-card[data-selected="true"] { border-color:#2c7fa2; box-shadow:0 0 0 3px rgba(44,127,162,.1),0 10px 26px rgba(30,30,70,.07); }
.admin-body .subscriber-contact-select { display:flex; align-items:center; gap:.3rem; color:var(--email-muted); font-size:.56rem; font-weight:800; cursor:pointer; }
.admin-body .subscriber-contact-select input { width:16px; height:16px; margin:0; accent-color:#2c7fa2; }
.admin-body .subscriber-contact-copy .subscriber-contact-avatar { grid-column:1; grid-row:1/4; margin-bottom:0; }
.admin-body .email-recipient-limit-note { grid-column:1/-1; margin:.35rem 0 0; }

/* SINAPSE: el menú ocupa el espacio disponible y nunca queda bajo el compositor. */
body.admin-body .arturo-chat-panel > :is(header,.arturo-welcome,.arturo-context,.arturo-operational-strip,#arturo-chat-form,.arturo-human-support) { flex:0 0 auto; }
body.admin-body .arturo-chat-panel:not(.has-conversation) .arturo-topic-shell {
    flex:1 1 auto;
    min-height:0;
    max-height:none;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
}
body.admin-body .arturo-chat-panel.has-conversation .arturo-chat-log { flex:1 1 auto; min-height:80px!important; }

@media (max-width:760px) {
    body.admin-body .arturo-chat-panel:not(.has-conversation) {
        inset:max(.5rem,env(safe-area-inset-top)) .5rem max(.5rem,env(safe-area-inset-bottom))!important;
        height:auto!important;
        min-height:0!important;
        max-height:none!important;
    }
    body.admin-body .arturo-chat-panel:not(.has-conversation) .arturo-topic-shell { min-height:0; }
}

@media (max-height:760px) {
    body.admin-body .arturo-chat-panel:not(.has-conversation) > header { min-height:52px; padding-block:.45rem; }
    body.admin-body .arturo-chat-panel:not(.has-conversation) .arturo-welcome { min-height:0; padding:.55rem .75rem; }
    body.admin-body .arturo-chat-panel:not(.has-conversation) .arturo-welcome .sinapse-orb { width:38px; height:38px; flex-basis:38px; }
    body.admin-body .arturo-chat-panel:not(.has-conversation) .arturo-welcome p { display:none; }
    body.admin-body .arturo-chat-panel:not(.has-conversation) .arturo-context { padding-block:.25rem; }
    body.admin-body .arturo-chat-panel:not(.has-conversation) .arturo-human-support { min-height:34px; margin-block:.15rem .35rem; padding-block:.3rem; }
}

@media (max-width:820px) {
    .admin-body .client-database-toolbar { grid-template-columns:1fr 1fr; }
    .admin-body .client-database-toolbar > button { grid-column:1/-1; }
    .admin-body .client-segment-assignment { grid-template-columns:1fr 1fr; }
    .admin-body .client-segment-assignment > div { grid-column:1/-1; }
}

@media (max-width:560px) {
    .admin-body .client-database-heading { align-items:flex-start; flex-direction:column; }
    .admin-body .client-database-toolbar,
    .admin-body .client-segment-assignment { grid-template-columns:1fr; }
    .admin-body .client-database-toolbar > button,
    .admin-body .client-segment-assignment > div { grid-column:auto; }
    .admin-body .client-database-pagination { justify-content:space-between; gap:.3rem; }
    .admin-body .client-database-pagination span { min-width:0; }
}

/* Rendimiento del panel: cero composición continua cuando la interfaz está inactiva. */
body.admin-body .sinapse-orb {
    contain: paint;
}
body.admin-body .sinapse-orb::before,
body.admin-body .sinapse-orb::after {
    animation: none;
    filter: none;
    will-change: auto;
}
body.admin-body .sinapse-orb::before {
    transform: rotate(18deg) scale(1.04);
}
body.admin-body .sinapse-orb::after {
    transform: translate3d(1%, -1%, 0) rotate(4deg);
}
body.admin-body .arturo-chat-brand small i {
    animation: none;
}
body.admin-body .arturo-chat-panel.is-thinking .sinapse-orb::before {
    animation: sinapseGenerativeFlow 1.6s linear infinite;
    will-change: transform;
}
body.admin-body .arturo-chat-panel.is-thinking .sinapse-orb::after {
    animation: sinapseGenerativeDrift .9s ease-in-out infinite alternate;
    will-change: transform;
}
html.admin-page-hidden body.admin-body *,
html.admin-page-hidden body.admin-body *::before,
html.admin-page-hidden body.admin-body *::after {
    animation-play-state: paused !important;
}
