:root {
    --red: #b63b32;
    --red-dark: #863027;
    --coral: #e86567;
    --cream: #fff9ec;
    --paper: #fffdf7;
    --ink: #332b27;
    --muted: #746962;
    --line: #e3d8c8;
    --shadow: 0 18px 50px rgba(92, 54, 34, 0.14);
    --page-width: 1180px;
    --content-width: 1060px;
    --font-body: "Roboto", "Segoe UI", Arial, sans-serif;
    --font-display: "Lobster Two", "Segoe Script", cursive;
}

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

html { scroll-behavior: smooth; }

body {
    margin: 0;
    color: var(--ink);
    background: #e96868 url("../images/pattern-red.png") repeat fixed;
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.6;
    text-align: left;
}

.site-header,
main,
.site-footer {
    width: min(var(--page-width), calc(100% - 6rem));
    margin-inline: auto;
}

main {
    min-height: 70vh;
    background: var(--cream);
    box-shadow: 0 0 35px rgba(94, 39, 31, .2);
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.12; }
h1 { font-size: clamp(2.15rem, 4.2vw, 3.8rem); }
h2 { font-size: clamp(1.7rem, 3.1vw, 2.5rem); }
h3 { font-size: clamp(1.5rem, 2.6vw, 2rem); }

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: fixed;
    left: 1rem;
    top: -5rem;
    z-index: 1000;
    padding: .7rem 1rem;
    color: #fff;
    background: var(--red-dark);
    border-radius: .4rem;
}
.skip-link:focus { top: 1rem; }

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(255, 253, 247, .94);
    border-bottom: 1px solid rgba(182, 59, 50, .14);
    backdrop-filter: blur(16px);
    box-shadow: 0 -8px 28px rgba(94, 39, 31, .16);
}

.header-inner,
.footer-inner,
.hero-inner,
.section,
.story-inner,
.breadcrumbs,
.recipe-hero,
.recipe-page > .recipe-meta,
.recipe-layout {
    width: min(var(--content-width), calc(100% - 5rem));
    margin-inline: auto;
}

.header-inner {
    min-height: 88px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.brand {
    display: flex;
    align-items: center;
    gap: .8rem;
    text-decoration: none;
}
.brand .brand-logo { flex: 0 0 auto; width: 72px; height: 72px; object-fit: contain; }
.brand-copy { display: block; min-width: 0; }
.brand-wordmark { display: block; width: min(310px, 28vw); height: auto; }
.brand small { color: var(--muted); font-size: .78rem; }

.main-nav { display: flex; align-items: center; gap: 1.6rem; }
.main-nav a {
    position: relative;
    font-size: .92rem;
    font-weight: 700;
    text-decoration: none;
}
.main-nav a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: -.35rem;
    height: 3px;
    background: var(--red);
    transition: right .2s ease;
}
.main-nav a:hover::after,
.main-nav a:focus-visible::after { right: 0; }
.main-nav .nav-account,
.main-nav .nav-account:visited,
.main-nav .nav-account[aria-current="page"] { display:inline-flex; align-items:center; min-height:2.25rem; padding: .42rem .85rem; color: #fff !important; background: #7a2722 !important; border:1px solid #fff; border-radius: 999px; box-shadow:0 3px 9px rgba(74,34,28,.28), inset 0 1px 0 rgba(255,255,255,.22); font-weight:900; text-decoration:none; }
.main-nav .nav-account:hover, .main-nav .nav-account:focus-visible, .main-nav .nav-account:active { color:#fff !important; background:#551b18 !important; border-color:#fff; box-shadow:0 0 0 3px rgba(182,59,50,.28); }
.main-nav .nav-account::after { display: none; }
.nav-avatar { width:28px; height:28px; object-fit:cover; border-radius:50%; border:2px solid rgba(255,255,255,.8); margin-right:.35rem; }
.nav-account .ui-icon { width:1rem; height:1rem; margin-right:.35rem; }
.admin-quick-nav { display:flex; flex-wrap:wrap; justify-content:center; gap:.35rem; padding:.45rem max(1rem, calc((100% - 1440px)/2)); background:#fffaf5; border-bottom:1px solid var(--line); }
.admin-quick-nav a { display:inline-flex; align-items:center; justify-content:center; gap:.35rem; padding:.35rem .65rem; color:var(--red-dark); border-radius:999px; font-size:.72rem; font-weight:800; text-decoration:none; }
.admin-quick-nav a:hover, .admin-quick-nav a:focus-visible { color:#fff; background:var(--red); }
.admin-quick-nav .ui-icon { width:1em; height:1em; }
.admin-quick-user { display:inline-flex; align-items:center; gap:.4rem; margin-left:auto; padding:.25rem .55rem; color:var(--muted); border-left:1px solid var(--line); font-size:.72rem; font-weight:800; }
.admin-quick-user img { width:30px; height:30px; object-fit:cover; border:2px solid var(--line); border-radius:50%; }
.admin-quick-user .ui-icon { width:1.1rem; height:1.1rem; color:var(--red-dark); }
.admin-area { --content-width: 1440px; }
.admin-quick-nav { width:100%; margin:0; border:0; border-radius:0; }
.admin-area .editor-header,
.admin-area .recipe-editor,
.admin-area .editor-alert,
.admin-area .dashboard-header,
.admin-area .dashboard-stats,
.admin-area .dashboard-panel,
.admin-area .dashboard-workspace,
.admin-area .dashboard-notice,
.admin-area .settings-form,
.admin-area .review-header,
.admin-area .review-layout,
.admin-area .messages-layout { width:min(var(--content-width), calc(100% - 2rem)); }
.admin-area .settings-form { max-width:none; }
.admin-area .editor-header,
.admin-area .recipe-editor,
.admin-area .editor-alert,
.admin-area .dashboard-header,
.admin-area .dashboard-stats,
.admin-area .dashboard-panel,
.admin-area .dashboard-workspace,
.admin-area .dashboard-notice,
.admin-area .settings-form,
.admin-area .review-header,
.admin-area .review-layout,
.admin-area .messages-layout,
.admin-area .recipe-admin-filters,
.admin-area .category-admin-layout { width:calc(100% - 2rem); max-width:none; }
.admin-user-avatar, .message-avatar { width:38px; height:38px; object-fit:cover; border-radius:50%; border:2px solid var(--line); }
.user-row-person { display:flex; align-items:center; gap:.55rem; }
.message-delete-form { margin-top:.35rem; }
.message-delete-form .button { min-height:30px; padding:.25rem .55rem; font-size:.68rem; }
.users-search { width:100%; margin:1rem 0; padding:0; background:transparent; border:0; box-shadow:none; }
.nav-logout { margin: 0; }
.nav-logout button { padding: .38rem .7rem; color: var(--red-dark); background: transparent; border: 1px solid var(--line); border-radius: 999px; font-size: .82rem; font-weight: 800; cursor: pointer; }

.menu-toggle {
    display: none;
    width: 46px;
    height: 42px;
    padding: 9px;
    background: transparent;
    border: 0;
}
.menu-toggle > span:not(.sr-only) { display: block; height: 3px; margin: 4px 0; background: var(--ink); border-radius: 2px; }

.hero {
    overflow: hidden;
    min-height: 690px;
    display: grid;
    align-items: center;
    background:
        linear-gradient(90deg, rgba(255, 249, 236, .97) 0 48%, rgba(255, 249, 236, .72) 72%, rgba(255, 249, 236, .9)),
        url("../images/pattern-red.png") repeat;
    border-bottom: 1px solid rgba(182, 59, 50, .18);
}
.hero-inner { display: grid; grid-template-columns: 1.04fr .96fr; align-items: center; gap: 3rem; padding-block: 4.5rem; }
.hero-copy { position: relative; z-index: 2; }
.eyebrow {
    margin-bottom: .65rem;
    color: var(--red-dark);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.ui-icon { display: inline-flex; width: 1.05em; height: 1.05em; margin-right: .38em; align-items: center; justify-content: center; vertical-align: -.12em; line-height: 1; font-size: 1em; }
.hero h1 {
    max-width: 690px;
    margin-bottom: 1.2rem;
    font-family: var(--font-display);
    font-size: clamp(2.35rem, 3.8vw, 3.6rem);
    font-weight: 700;
    overflow-wrap: anywhere;
}
.hero h1 span { color: var(--red); }
.hero-lead { max-width: 640px; color: #584c46; font-size: 1.16rem; }

.hero-search {
    max-width: 640px;
    display: flex;
    margin: 1.8rem 0 1rem;
    padding: .35rem;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    box-shadow: 0 10px 25px rgba(92, 54, 34, .09);
}
.hero-search input { min-width: 0; flex: 1; padding: .75rem 1rem; border: 0; outline: 0; background: transparent; }
.hero-search button,
.button-primary { color: #fff; background: var(--red); }
.hero-search button { padding: .7rem 1.5rem; border: 0; border-radius: 999px; font-weight: 800; cursor: pointer; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.3rem; }
.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: .65rem 1.25rem;
    border: 2px solid var(--red);
    border-radius: 999px;
    font-weight: 800;
    text-decoration: none;
}
.button-ghost { color: var(--red-dark); background: rgba(255,255,255,.72); }
.button:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(92,54,34,.12); }

.hero-art {
    position: relative;
    width: 100%;
    min-width: 0;
    min-height: 500px;
    display: grid;
    place-items: center;
}
.hero-art img {
    position: relative;
    z-index: 2;
    width: min(510px, 90%);
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
    filter: drop-shadow(0 30px 28px rgba(83, 45, 24, .25));
}
.hero-plate {
    position: absolute;
    width: 92%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: rgba(255,255,255,.88);
    border: 12px double var(--coral);
    box-shadow: var(--shadow);
}
.hero-note {
    position: absolute;
    right: 0;
    bottom: 1.5rem;
    z-index: 3;
    padding: .7rem 1.2rem;
    color: #fff;
    background: var(--red);
    border-radius: 5px;
    font-family: var(--font-display);
    font-size: 1.15rem;
    transform: rotate(-4deg);
}

.section { padding-block: 6rem; }
.section-heading { max-width: 760px; margin: 0 auto 2.7rem; text-align: center; }
.section-heading h2, .story-section h2, .recipe-feature h3, .recipe-page h1, .recipe-page h2 { font-family: var(--font-display); }
.section-heading p:last-child { color: var(--muted); }
.section-heading-left { margin-left: 0; text-align: left; }

.category-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.35rem; }
.category-card:last-child:nth-child(3n + 1) { grid-column: 2; }
.category-card {
    overflow: hidden;
    position: relative;
    color: var(--ink);
    background: #fff;
    border: 1px solid color-mix(in srgb, var(--category-color) 35%, white);
    border-radius: 22px;
    box-shadow: 0 12px 28px rgba(79, 47, 30, .1);
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}
.category-card:hover { transform: translateY(-6px); box-shadow: 0 20px 35px rgba(79,47,30,.16); }
.category-card-cover {
    display: grid;
    place-items: center;
    aspect-ratio: 1879 / 1163;
    overflow: hidden;
    padding: .8rem;
    background-color: var(--category-color);
    background-image: url("../images/pattern-red.png");
    background-repeat: repeat;
    background-size: 34px 34px;
    background-blend-mode: soft-light;
}
.category-card-cover img { width: 100%; height: 100%; object-fit: cover; border-radius: 14px; transform: scale(1.045); filter: saturate(1.03) contrast(1.015); image-rendering: auto; }
.category-card-label {
    display: grid;
    place-items: center;
    width: 92%;
    min-height: 62%;
    padding: 1rem;
    background: var(--paper);
    border: 7px solid var(--category-color);
    border-radius: 18px;
    box-shadow: 0 0 0 6px rgba(255, 255, 255, .95);
    text-align: center;
}
.category-card-cover .category-card-label strong {
    margin: 0;
    color: color-mix(in srgb, var(--category-color) 62%, #221f1c);
    font-size: clamp(1.35rem, 2.4vw, 2rem);
    line-height: 1.08;
}
.category-card-body { display: block; padding: 1rem 1.15rem 1.2rem; border-top: 6px solid var(--category-color); }
.category-card strong { display: block; margin-bottom: .25rem; color: color-mix(in srgb, var(--category-color) 72%, #221f1c); font-family: var(--font-display); font-size: 1.2rem; line-height: 1.15; }
.category-card small { color: var(--muted); font-size: .82rem; line-height: 1.4; }

.categories-directory { width: min(var(--page-width), calc(100% - 6rem)); margin: 0 auto; padding: 0 0 6rem; }
.categories-directory-breadcrumbs { padding-top: 1rem; padding-bottom: .55rem; }
.categories-directory-intro { max-width: 760px; margin: 0 auto 2.5rem; text-align: center; }
.categories-directory-intro h1 { margin: .25rem 0 .75rem; font-family: var(--font-display); font-size: clamp(2.4rem, 5vw, 4.6rem); }
.categories-directory-intro > p:last-child { max-width: 650px; margin-inline: auto; color: var(--muted); line-height: 1.7; }
.categories-directory-list { display: grid; gap: 0; }
.category-directory-card { position: relative; display: block; min-height: clamp(300px, 38vw, 470px); overflow: hidden; color: #fff; background: var(--category-color); border-radius: 0; box-shadow: 0 16px 34px rgba(79,47,30,.14); isolation: isolate; text-decoration: none; }
.category-directory-image { position: absolute; inset: 0; overflow: hidden; }
.category-directory-image img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.015); filter: saturate(1.04) contrast(1.025); transition: transform .45s ease, filter .45s ease; }
.category-directory-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(24,18,14,.88), rgba(24,18,14,.5) 48%, rgba(24,18,14,.06)); }
.category-directory-copy { position: relative; z-index: 2; display: flex; max-width: 710px; min-height: inherit; flex-direction: column; justify-content: flex-end; align-items: flex-start; padding: clamp(1.5rem, 5vw, 4rem); text-shadow: 0 2px 12px rgba(0,0,0,.42); }
.category-directory-copy .eyebrow { margin-bottom: .4rem; color: #fff; font-size: .7rem; }
.category-directory-copy strong { margin-bottom: .65rem; font-family: var(--font-display); font-size: clamp(2.1rem, 5vw, 4.3rem); line-height: .95; }
.category-directory-copy > span:not(.eyebrow):not(.category-directory-link) { max-width: 660px; font-size: clamp(.9rem, 1.4vw, 1.05rem); line-height: 1.6; }
.category-directory-link { margin-top: 1.25rem; padding: .55rem .85rem; color: #fff; background: color-mix(in srgb, var(--category-color) 68%, #221f1c); border: 1px solid rgba(255,255,255,.45); border-radius: 999px; font-size: .78rem; font-weight: 900; }
.category-directory-card:hover .category-directory-image img, .category-directory-card:focus-visible .category-directory-image img { transform: scale(1.07); filter: saturate(1.12) contrast(1.04); }
.category-directory-card:hover .category-directory-link, .category-directory-card:focus-visible .category-directory-link { background: var(--category-color); }
.category-directory-card:focus-visible { outline: 4px solid color-mix(in srgb, var(--category-color) 55%, #fff); outline-offset: 4px; }

.featured-section { padding-top: 2rem; }
.recipe-feature { display: grid; grid-template-columns: 1.1fr .9fr; overflow: hidden; background: #fff; border: 0; border-radius: 14px; box-shadow: var(--shadow); }
.recipe-feature-image { position: relative; min-height: 450px; background: var(--category-color); }
.recipe-feature-image img { width: 100%; height: 100%; object-fit: cover; }
.recipe-feature-category { position: absolute; top: 1.2rem; left: 1.2rem; padding: .45rem .8rem; color: #fff; background: color-mix(in srgb, var(--category-color) 58%, #221f1c); border-radius: 999px; font-size: .78rem; font-weight: 900; }
.recipe-image-placeholder { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(255,255,255,.82); font-family: var(--font-display); font-size: 2rem; }
.recipe-feature-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 4.3rem); }
.recipe-feature-copy > p:not(.eyebrow) { color: var(--muted); }
.text-link { align-self: flex-start; margin-top: 1rem; color: var(--red-dark); font-weight: 900; text-underline-offset: .25rem; }

.recipe-meta { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 1.25rem 0 2.25rem; background: var(--line); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.recipe-meta div { padding: .65rem 1rem; background: #fff; text-align: center; }
.recipe-meta dt { display: flex; align-items: center; justify-content: center; gap: .3rem; color: var(--muted); font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.recipe-meta dt .ui-icon { width: 1.2em; height: 1.2em; margin: 0; color: var(--category-color); }
.recipe-meta dd { margin: .15rem 0 0; font-weight: 900; }
.recipe-meta.compact { grid-template-columns: repeat(3, 1fr); margin: 1.1rem 0; border-radius: 10px; }
.recipe-meta.compact div { padding: .7rem; }
.recipe-meta.compact dd { font-size: .85rem; }
.latest-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 1rem; max-width: none; }
.carousel-controls { display: flex; gap: .5rem; }
.carousel-control { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; color: var(--red-dark); background: #fff; border: 1px solid var(--line); border-radius: 50%; font-size: 1.2rem; font-weight: 900; cursor: pointer; }
.carousel-control:hover, .carousel-control:focus-visible { color: #fff; background: var(--red); border-color: var(--red); }
.latest-carousel { overflow: hidden; outline: none; }
.latest-carousel-track { display: flex; gap: 1.25rem; overflow-x: auto; padding-bottom: .8rem; scroll-snap-type: x mandatory; scrollbar-color: var(--red) transparent; }
.latest-recipe-card { flex: 0 0 min(360px, calc(100vw - 5rem)); overflow: hidden; background: #fff; border: 1px solid color-mix(in srgb, var(--category-color) 25%, white); border-bottom: 4px solid var(--category-color); border-radius: 18px; box-shadow: 0 12px 28px rgba(79,47,30,.1); scroll-snap-align: start; }
.recipes-directory { width: min(var(--page-width), calc(100% - 6rem)); margin: 0 auto; padding-bottom: 6rem; }
.recipes-directory-intro { max-width: 760px; margin: 1rem auto 2rem; text-align: center; }
.recipes-directory-intro h1 { margin: .25rem 0 .75rem; }
.recipes-directory-intro > p:last-child { margin: 0 auto; color: var(--muted); }
.recipes-directory-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 1.35rem; }
.recipes-directory > .recipes-directory-filters,
.recipes-directory > .recipes-directory-grid,
.recipes-directory > .recipes-directory-result,
.recipes-directory > .empty-state { width: min(var(--content-width), calc(100% - 5rem)); margin-inline: auto; }
.recipes-directory-grid .latest-recipe-card { min-width: 0; }
.recipes-directory-grid .latest-recipe-copy h2 { font-size: 1.25rem; }
.recipes-directory-filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .65fr) auto auto; align-items: end; gap: .8rem; margin: 0 auto 1.2rem; padding: 1rem; background: var(--surface-soft); border: 1px solid var(--line); border-radius: 14px; }
.recipes-directory-filters .field { display: grid; gap: .3rem; }
.recipes-directory-filters .field span { color: var(--muted); font-size: .72rem; font-weight: 800; }
.recipes-directory-filters input, .recipes-directory-filters select { width: 100%; min-height: 42px; padding: .55rem .7rem; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.recipes-directory-filters .button { min-height: 42px; white-space: nowrap; }
.recipes-directory-result { margin: 0 0 1rem; color: var(--muted); font-size: .82rem; }
.latest-recipe-image { position: relative; display: block; aspect-ratio: 16 / 10; background: var(--category-color); }
.latest-recipe-image img { width: 100%; height: 100%; object-fit: cover; }
.latest-recipe-category { position: absolute; left: .9rem; bottom: .9rem; padding: .35rem .65rem; color: #fff; background: rgba(32,22,17,.72); font-size: .7rem; font-weight: 900; }
.latest-recipe-copy { padding: 1rem 1.1rem 1.25rem; }
.latest-recipe-copy h3 { margin: 0 0 .4rem; font-family: var(--font-display); font-size: 1.55rem; }
.latest-recipe-copy h3 a { color: inherit; text-decoration: none; }
.latest-recipe-copy p { min-height: 3.5em; margin: 0; color: var(--muted); font-size: .82rem; }
.latest-recipe-copy .text-link { display: inline-block; }

.story-section { padding-block: 5rem; color: #fff; background: var(--red-dark) url("../images/pattern-red.png") repeat; background-blend-mode: multiply; }
.story-inner { display: grid; grid-template-columns: 180px 1fr; align-items: center; gap: 3rem; padding: 2.5rem; background: rgba(91,27,23,.88); border: 2px solid rgba(255,255,255,.35); border-radius: 28px; }
.story-inner img { filter: drop-shadow(0 18px 20px rgba(0,0,0,.2)); }
.story-inner .eyebrow { color: #ffd5c8; }
.story-inner p:last-child { max-width: 760px; margin-bottom: 0; color: #fff3eb; }

.site-footer { padding: .7rem 0 .55rem; color: #4e423c; background: #f1e5d2; border-top: 1px solid #ddcdb6; }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; }
.footer-brand { display: flex; align-items: center; gap: .8rem; }
.footer-brand .brand-wordmark { width: min(230px, 42vw); margin-bottom: .1rem; }
.footer-brand p { margin: 0; font-size: .8rem; }
.site-footer nav { display: flex; gap: .8rem; font-size: .76rem; }
.footer-social { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-top: .75rem; }
.footer-social a { display: inline-grid; place-items: center; width: 2rem; height: 2rem; color: inherit; border-radius: 8px; }
.social-mark { display: inline-grid; place-items: center; width: 1.85rem; height: 1.85rem; }
.social-mark img { display: block; width: 100%; height: 100%; object-fit: contain; }
.footer-social a:hover, .footer-social a:focus-visible { background: rgba(255,255,255,.14); outline: 2px solid currentColor; outline-offset: 2px; }
.copyright { margin: .8rem 0 0; text-align: center; font-size: .7rem; color: var(--muted); }
.cookie-banner { position: fixed; right: 1rem; bottom: 1rem; left: 1rem; z-index: 100; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; max-width: 980px; margin-inline: auto; padding: 1rem 1.2rem; color: #2f2925; background: #fffdf8; border: 2px solid var(--red); border-radius: 16px; box-shadow: 0 14px 38px rgba(55,35,24,.22); }
.cookie-banner[hidden], .cookie-preferences[hidden] { display: none; }
.cookie-banner p { margin: 0; font-size: .82rem; }
.cookie-banner a { color: var(--red-dark); font-weight: 800; }
.cookie-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.cookie-actions button { min-height: 42px; padding: .55rem .85rem; color: var(--red-dark); background: #fff; border: 1px solid var(--red); border-radius: 999px; font: inherit; font-size: .78rem; font-weight: 800; cursor: pointer; }
.cookie-actions .cookie-accept { color: #fff; background: var(--red); }
.cookie-preferences { position: fixed; inset: 0; z-index: 101; display: grid; place-items: center; padding: 1rem; background: rgba(32,22,17,.52); }
.cookie-preferences-card { width: min(560px, 100%); padding: 1.4rem; background: #fffdf8; border-radius: 18px; box-shadow: 0 18px 50px rgba(32,22,17,.3); }
.cookie-preferences-card h2 { margin-top: 0; }
.cookie-option { display: grid; grid-template-columns: auto 1fr; gap: .7rem; align-items: start; padding: .7rem 0; border-top: 1px solid var(--line); font-size: .8rem; }
.cookie-option input { margin-top: .2rem; accent-color: var(--red); }
.cookie-manage { margin: .8rem 0 0; text-align: center; }
.cookie-manage button { color: inherit; background: transparent; border: 0; font: inherit; font-size: .72rem; cursor: pointer; }

.content-page { padding-block: 0 6rem; }
.content-page-header { width: min(var(--content-width), calc(100% - 5rem)); margin: .55rem auto 2rem; padding: clamp(1.5rem, 4vw, 3rem); background: #fff; border-left: 8px solid var(--red); box-shadow: var(--shadow); }
.content-page-header h1 { margin: .3rem 0 .6rem; font-family: var(--font-display); }
.content-page-header p:last-child { margin: 0; color: var(--muted); }
.content-page-body { width: min(var(--content-width), calc(100% - 5rem)); margin-inline: auto; padding: clamp(1.5rem, 4vw, 3rem); background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 12px 28px rgba(79,47,30,.07); font-size: .95rem; }
.content-page-body p { margin: 0 0 1.1rem; }
.content-page-body p:last-child { margin-bottom: 0; }
.contact-form { display: grid; gap: 1rem; max-width: 760px; margin-top: 2rem; }
.legal-section-nav { position: sticky; top: 1rem; display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; padding: .7rem; background: var(--cream); border: 1px solid var(--line); border-radius: 10px; }
.legal-section-nav a { padding: .4rem .7rem; color: var(--red-dark); border-radius: 999px; font-size: .8rem; font-weight: 800; text-decoration: none; }
.legal-section-nav a:hover, .legal-section-nav a:focus-visible { color: #fff; background: var(--red); }
.legal-section { scroll-margin-top: 1rem; padding-top: 1rem; }
.legal-section + .legal-section { margin-top: 2.5rem; padding-top: 2.5rem; border-top: 2px solid var(--line); }
.legal-section h2 { margin-bottom: 1rem; color: var(--red-dark); font-family: var(--font-display); }

.breadcrumbs { display: flex; min-height: 2.75rem; align-items: center; flex-wrap: wrap; gap: .5rem; padding: 1rem 0 .55rem; color: var(--muted); font-size: .78rem; line-height: 1.25; }
.category-page { padding-bottom: 6rem; }
.category-hero { position: relative; width: 100%; min-height: clamp(390px, 48vw, 560px); margin: .55rem 0 4.5rem; overflow: hidden; border-radius: 0; box-shadow: 0 22px 50px rgba(55, 35, 24, .2); isolation: isolate; }
.category-hero-image { position: absolute; inset: -1.5%; z-index: -2; width: 103%; height: 103%; object-fit: cover; filter: saturate(1.03) contrast(1.02); image-rendering: auto; }
.category-hero-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(24, 18, 14, .88) 0%, rgba(24, 18, 14, .64) 48%, rgba(24, 18, 14, .08) 100%), linear-gradient(0deg, rgba(20, 14, 10, .48), transparent 55%); }
.category-hero-copy { display: flex; min-height: inherit; flex-direction: column; justify-content: flex-end; align-items: flex-start; max-width: 760px; padding: clamp(2rem, 6vw, 5rem); color: #fff; text-shadow: 0 2px 16px rgba(0,0,0,.42); }
.category-hero-copy .eyebrow { color: #fff; }
.category-hero-copy h1 { margin: 0 0 1rem; color: #fff; font-family: var(--font-display); font-size: clamp(2.5rem, 6vw, 5rem); line-height: .95; }
.category-hero-copy > p:not(.eyebrow) { max-width: 680px; margin: 0 0 1.3rem; color: #fff; font-size: clamp(1rem, 1.7vw, 1.18rem); line-height: 1.65; }
.category-hero-copy > span { display: inline-block; padding: .42rem .8rem; color: #fff; background: rgba(20, 14, 10, .55); border: 1px solid rgba(255,255,255,.36); border-radius: 999px; font-size: .78rem; font-weight: 800; backdrop-filter: blur(8px); }

.category-admin-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: 1.5rem; }
.category-editor-form { margin: 0; }
.category-form-actions { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1.5rem; }
.button-danger { color: #fff; background: #9f3029; border-color: #9f3029; }
.check-field { display: flex; align-items: center; gap: .55rem; font-weight: 700; }
.check-field input { width: 1.1rem; height: 1.1rem; }
.category-admin-list { margin: 0; align-self: start; }
.category-list-cards { display: grid; gap: .7rem; }
.category-list-cards article { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem; background: var(--surface-soft); border: 1px solid var(--line); border-radius: 12px; }
.category-list-cards article div { display: grid; gap: .2rem; }
.category-list-cards small { color: var(--muted); }
.recipe-status-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 0 auto 1rem; }
.recipe-status-filters a { padding: .45rem .75rem; color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 999px; font-size: .72rem; font-weight: 800; text-decoration: none; }
.recipe-status-filters a[aria-current="page"] { color: #fff; background: var(--red); border-color: var(--red); }
.table-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.inline-role-form { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; min-width: 9rem; }
.inline-role-form select { min-width: 7.5rem; }
.inline-role-form .button { min-height: auto; padding: .4rem .55rem; font-size: .7rem; }
.table-actions .button { min-height: auto; padding: .4rem .65rem; font-size: .7rem; }
.table-actions .button-primary { color: #fff; background: var(--red-dark); border-color: var(--red-dark); }
.table-actions .button-primary:hover, .table-actions .button-primary:focus-visible { color: #fff; background: #6f211c; border-color: #6f211c; }
.table-actions .ui-icon { width: 1.15em; height: 1.15em; margin-right: .3rem; }
.button .ui-icon { width: 1.35em; height: 1.35em; margin-right: .4rem; stroke-width: 2; }
.button .ui-icon { flex:0 0 auto; display:inline-block; vertical-align:middle; }
.editor-header-actions .button, .dashboard-user-actions > .button { min-height: 40px; padding: .5rem .85rem; font-size: .8rem; }
.category-recipes { width: min(var(--content-width), calc(100% - 5rem)); margin-inline: auto; }
.category-recipe-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); gap: 1.35rem; }
.category-recipe-card { display: flex; min-height: 0; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid color-mix(in srgb, var(--category-color) 20%, white); border-radius: 18px; box-shadow: 0 12px 30px rgba(79, 47, 30, .1); }
.category-recipe-image { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--category-color); }
.category-recipe-image img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.035); filter: saturate(1.02) contrast(1.01); image-rendering: auto; }
.category-recipe-copy { display: flex; flex: 1; flex-direction: column; padding: 1.1rem 1.2rem 1.25rem; }
.category-recipe-copy h3 { margin-bottom: .65rem; font-family: var(--font-display); font-size: 1.65rem; }
.category-recipe-copy h3 a { text-decoration: none; }
.category-recipe-copy > p { display: -webkit-box; overflow: hidden; min-height: 3.2em; color: var(--muted); font-size: .88rem; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.category-recipe-copy dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin: auto 0 0; }
.category-recipe-copy dl div { min-width: 0; }
.category-recipe-copy dt { color: var(--muted); font-size: .6rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.category-recipe-copy dd { margin: 0; font-size: .75rem; font-weight: 800; }
.category-empty { padding: clamp(2rem, 6vw, 4rem); background: #fff; border: 1px dashed color-mix(in srgb, var(--category-color) 55%, #aaa); border-radius: 22px; text-align: center; }
.category-empty h3 { font-family: var(--font-display); }
.category-empty p { max-width: 650px; margin-inline: auto; color: var(--muted); }
.recipe-section-art { display: block; width: 100%; background: var(--category-color); mask-repeat: no-repeat; mask-position: left center; mask-size: contain; -webkit-mask-repeat: no-repeat; -webkit-mask-position: left center; -webkit-mask-size: contain; }
.recipe-section-art-ingredients { height: 118px; margin: -1rem 0 -.25rem; mask-image: url("../images/recipe-sections/ingredientes.webp"); -webkit-mask-image: url("../images/recipe-sections/ingredientes.webp"); }
.recipe-section-art-steps { width: 100%; height: 88px; margin: -1rem 0 .1rem; mask-image: url("../images/recipe-sections/instrucciones.webp"); -webkit-mask-image: url("../images/recipe-sections/instrucciones.webp"); mask-position: right center; -webkit-mask-position: right center; }
.tata-note { display: block; }
.tata-note > .recipe-section-art-note { float: left; width: 82px; height: 112px; margin: 0 .9rem .35rem 0; mask-image: url("../images/recipe-sections/notas.webp"); -webkit-mask-image: url("../images/recipe-sections/notas.webp"); mask-position: center bottom; -webkit-mask-position: center bottom; }
.tata-note::after { display: table; clear: both; content: ''; }
.recipe-page {
    padding: 0 0 6rem;
}
.recipe-hero { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(2rem, 5vw, 5rem); padding-block: 3rem; }
.recipe-hero-no-image { grid-template-columns: minmax(0, 760px); }
.recipe-hero-copy > p:not(.category-pill) { max-width: 620px; color: var(--muted); font-size: 1.08rem; }
.recipe-page h1 {
    max-width: 100%;
    margin: .7rem 0 1.1rem;
    font-size: clamp(2.35rem, 4.2vw, 3.8rem);
    overflow-wrap: anywhere;
}
.category-pill { display: inline-block; margin: 0; padding: .35rem .8rem; color: #fff; background: color-mix(in srgb, var(--category-color) 58%, #221f1c); border-radius: 999px; font-size: .75rem; font-weight: 900; }
.recipe-hero-copy > .recipe-author { margin: .9rem 0 0; color: #66534a; font-size: .86rem; }
.recipe-author strong { color: var(--red-dark); font-weight: 900; }
.recipe-author-link { display:inline-flex; align-items:center; gap:.45rem; color:inherit; text-decoration:none; }
.recipe-author-link:hover strong, .recipe-author-link:focus-visible strong { text-decoration:underline; }
.recipe-author-avatar { width:32px; height:32px; border-radius:50%; object-fit:cover; border:2px solid rgba(255,255,255,.8); }

.author-page { width:min(var(--page-width), calc(100% - 6rem)); margin-inline:auto; padding-bottom:5rem; }
.author-hero { width:min(var(--content-width), 100%); margin:1rem auto 3rem; display:flex; align-items:center; gap:1.5rem; padding:clamp(1.25rem, 4vw, 2.5rem); background:var(--surface); border:1px solid color-mix(in srgb, var(--ink) 12%, transparent); border-radius:1.25rem; box-shadow:var(--shadow-soft); }
.author-hero > img { flex:0 0 144px; width:144px; height:144px; border-radius:50%; object-fit:cover; border:5px solid var(--accent); }
.author-hero h1 { margin:.1rem 0 .65rem; }
.author-hero p { max-width:65ch; }
.author-recipes { width:min(var(--content-width), 100%); margin-inline:auto; }
.author-recipe-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)); gap:1.25rem; }
.author-recipe-card { overflow:hidden; background:var(--surface); border:1px solid color-mix(in srgb, var(--ink) 12%, transparent); border-radius:1rem; box-shadow:var(--shadow-soft); }
.author-recipe-card a { display:block; height:100%; color:inherit; text-decoration:none; }
.author-recipe-card img { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; }
.author-recipe-card div { padding:1rem 1.1rem 1.2rem; }
.author-recipe-card h3 { margin:.2rem 0 .45rem; }
.author-recipe-card p:last-child { margin:0; }
.author-recipe-list { display:grid; gap:1.5rem; }
.author-recipe-group { padding:1rem 1.2rem; background:var(--surface); border:1px solid color-mix(in srgb, var(--ink) 12%, transparent); border-radius:1rem; box-shadow:var(--shadow-soft); }
.author-recipe-group h3 { margin:0 0 .65rem; color:var(--accent-strong, var(--red-dark)); }
.author-recipe-group ul { display:grid; gap:.45rem; margin:0; padding:0; list-style:none; }
.author-recipe-group li a { display:block; padding:.35rem .45rem; color:inherit; border-radius:.6rem; text-decoration:none; }
.author-recipe-group li a:hover, .author-recipe-group li a:focus-visible { background:color-mix(in srgb, var(--accent) 12%, transparent); text-decoration:underline; }
.recipe-hero figure { margin: 0; overflow: hidden; background: #eaecf0; border: 8px solid #fff; border-radius: 22px; box-shadow: 0 12px 28px rgba(79,47,30,.12); outline: 4px solid var(--category-color); }
.recipe-hero figure img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 0; border-radius: 0; }
.recipe-hero figcaption { margin: 0; padding: .55rem .75rem; color: #54595d; background: #eaecf0; border-top: 1px solid #c8ccd1; font-size: .78rem; line-height: 1.4; text-align: left; }
.recipe-style-editorial .recipe-hero,
.recipe-style-editorial .ingredients-card,
.recipe-style-editorial .tata-note { border-color: #d8d1c8; box-shadow: 0 8px 22px rgba(79,47,30,.08); }
.recipe-style-editorial .recipe-hero figure img { border-width: 4px; outline-width: 2px; border-radius: 10px; }
.recipe-style-minimal .recipe-hero,
.recipe-style-minimal .ingredients-card,
.recipe-style-minimal .tata-note { border: 1px solid var(--line); box-shadow: none; }
.recipe-style-minimal .recipe-hero figure img { border: 1px solid var(--line); outline: 0; border-radius: 8px; box-shadow: none; }
.recipe-style-notebook .recipe-hero,
.recipe-style-notebook .ingredients-card,
.recipe-style-notebook .tata-note { background-color: color-mix(in srgb, var(--category-color) 18%, #fffaf0); background-image: repeating-linear-gradient(to bottom, transparent 0, transparent 31px, rgba(92,132,151,.13) 32px); }
.recipe-style-notebook .tata-note { background-image: url("../images/recipe-sections/pattern.webp"), repeating-linear-gradient(to bottom, transparent 0, transparent 31px, rgba(92,132,151,.13) 32px); background-blend-mode: soft-light; background-size: 88px 88px, auto; }
.recipe-style-notebook .recipe-hero-copy,
.recipe-style-notebook .ingredients-card > *,
.recipe-style-notebook .tata-note > * { position: relative; }
.recipe-style-notebook .recipe-hero figure img { border-radius: 12px; }
.print-recipe-header { display: none; }
.recipe-toolbar { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.5rem; }
.recipe-toolbar button,
.share-menu > summary,
.recipe-toolbar-link { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .9rem; color: var(--red-dark); background: #fff; border: 1px solid var(--line); border-radius: 999px; font-size: .82rem; font-weight: 800; text-decoration: none; cursor: pointer; }
.print-frame { position: fixed; left: -10000px; top: 0; width: 210mm; height: 297mm; border: 0; opacity: 0; pointer-events: none; }
.action-icon,
.social-icon { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.recipe-toolbar button[aria-pressed="true"] { color: #fff; background: var(--red); border-color: var(--red); }
.share-menu { position: relative; }
.share-menu > summary { list-style: none; }
.share-menu > summary::-webkit-details-marker { display: none; }
.share-menu[open] > summary { color: #fff; background: var(--red); border-color: var(--red); }
.share-menu-panel { position: absolute; top: calc(100% + .55rem); left: 0; z-index: 20; display: grid; min-width: 210px; padding: .5rem; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 16px 35px rgba(79,47,30,.18); }
.share-menu-panel a,
.share-menu-panel button { display: flex; align-items: center; gap: .65rem; width: 100%; padding: .62rem .75rem; color: var(--ink); background: transparent; border: 0; border-radius: 8px; font-size: .78rem; font-weight: 800; text-align: left; text-decoration: none; }
.share-menu-panel .social-icon { width: 1.25rem; height: 1.25rem; }
.share-menu-panel img.social-icon { object-fit: contain; }
.share-menu-panel img.social-icon-x { padding: .1rem; }
.share-menu-panel a:hover,
.share-menu-panel a:focus-visible,
.share-menu-panel button:hover,
.share-menu-panel button:focus-visible { color: var(--red-dark); background: var(--cream); }
.recipe-video { width: min(var(--content-width), calc(100% - 5rem)); margin: 0 auto 3rem; }
.recipe-video h2 { margin-bottom: 1rem; }
.video-frame { overflow: hidden; position: relative; aspect-ratio: 16 / 9; background: #1f1f1f; border-radius: 18px; box-shadow: var(--shadow); }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.recipe-layout { display: grid; grid-template-columns: minmax(270px, .7fr) minmax(0, 1.3fr); align-items: start; gap: clamp(2rem, 5vw, 5rem); }
.ingredients-card { position: sticky; top: 115px; padding: 2rem; background: #fff; border: 7px double var(--category-color); border-radius: 22px; box-shadow: 0 12px 28px rgba(79,47,30,.09); }
.ingredient-list { display: grid; gap: .75rem; margin: .35rem 0 0; padding: 0; list-style: none; }
.ingredient-list li { display: grid; grid-template-columns: 13px 1fr; gap: .7rem; align-items: start; font-size: .94rem; }
.ingredient-list li span { width: 10px; height: 10px; margin-top: .45rem; background: var(--category-color); border-radius: 50%; }
.steps-section > h2 { margin-bottom: 1.7rem; }
.steps-list { display: grid; gap: 1.2rem; margin: 0; padding: 0; list-style: none; counter-reset: steps; }
.steps-list li { display: grid; grid-template-columns: 48px 1fr; gap: 1rem; align-items: start; padding-bottom: 1.2rem; border-bottom: 1px dashed var(--line); }
.steps-list p { max-width: 68ch; margin: .3rem 0 0; }
.step-content { min-width: 0; }
.step-content img { width: min(100%, 680px); margin-top: 1rem; border-radius: 16px; box-shadow: 0 10px 24px rgba(79,47,30,.1); }
.step-video-link { display: inline-block; margin-top: .8rem; color: var(--red-dark); font-weight: 900; text-underline-offset: .2rem; }
.step-number { display: grid; place-items: center; width: 48px; height: 48px; color: #fff; background: color-mix(in srgb, var(--category-color) 58%, #221f1c); border-radius: 50%; font-family: var(--font-display); font-size: 1.4rem; font-weight: 800; }
.tata-note { display: block; margin-top: 3rem; padding: 1.4rem; background-color: color-mix(in srgb, var(--category-color) 18%, #fff); border: 2px dashed color-mix(in srgb, var(--category-color) 72%, #6b5142); border-radius: 20px; }
.tata-note h2 { margin-bottom: .3rem; color: var(--category-color); font-size: 1.35rem; }
.tata-note p { margin: 0; font-size: .9rem; white-space: pre-line; }

.not-found { min-height: 60vh; display: grid; place-content: center; justify-items: start; width: min(760px, calc(100% - 2rem)); margin: auto; }

.auth-page { display: grid; place-items: center; padding: clamp(.45rem, 1.5vw, 1rem) 1rem; }
.auth-card { width: min(540px, 100%); padding: clamp(1rem, 3vw, 1.5rem); background: #fff; border: 4px double var(--red); border-radius: 22px; box-shadow: var(--shadow); }
.auth-card-heading { text-align: center; }
.auth-card-heading img { width: 84px; height: auto; aspect-ratio: auto; margin: 0 auto .25rem; filter: drop-shadow(0 8px 10px rgba(79,47,30,.16)); }
.auth-card h1 { margin-bottom: .8rem; color: var(--red-dark); font-family: var(--font-display); font-size: clamp(2rem, 6vw, 3rem); }
.auth-card-heading > p:last-child { color: var(--muted); }
.auth-form { display: grid; gap: .7rem; margin-top: 1.5rem; }
.auth-form label { margin-top: .35rem; font-size: .88rem; font-weight: 900; }
.auth-form input { width: 100%; min-height: 50px; padding: .7rem .85rem; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 12px; }
.auth-form input:focus { border-color: var(--red); outline: 3px solid rgba(182,59,50,.18); }
.auth-password-control { display:flex; align-items:stretch; gap:.35rem; }
.auth-password-control input { min-width:0; flex:1; }
.auth-password-control .button { width:auto; min-width:44px; margin:0; padding:.55rem; }
.auth-remember { display:flex !important; align-items:center; gap:.45rem; margin-top:.3rem !important; color:var(--muted); font-size:.76rem !important; font-weight:700 !important; }
.auth-remember input { width:1rem; min-height:1rem; accent-color:var(--red); }
.auth-reset-link { color:var(--red-dark); font-size:.8rem; font-weight:800; text-align:right; }
.auth-form .button { width: 100%; margin-top: 1rem; cursor: pointer; }
.auth-form .auth-password-control .button { width:auto; min-width:44px; margin-top:0; }
.form-alert { padding: .8rem 1rem; color: #74261f; background: #fff0ee; border: 1px solid #e7aaa4; border-radius: 12px; font-size: .88rem; }

.dashboard-page { padding: clamp(2.5rem, 6vw, 5rem) 0 6rem; }
.dashboard-header,
.dashboard-stats,
.dashboard-panel { width: min(var(--content-width), calc(100% - 5rem)); margin-inline: auto; }
.dashboard-header { display: flex; align-items: stretch; flex-direction: column; gap: 1.25rem; }
.dashboard-header h1 { margin-bottom: .7rem; color: var(--red-dark); font-family: var(--font-display); font-size: clamp(2.1rem, 5vw, 3.35rem); }
.dashboard-header p:last-child { max-width: 700px; margin-bottom: 0; color: var(--muted); }
.dashboard-user-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; width: 100%; min-width: 0; }
.dashboard-user-actions > .button { flex: 0 0 auto; }
.dashboard-message-link { display: inline-flex; align-items: center; gap: .4rem; }
.dashboard-message-link span,
.unread-badge { display: inline-block; padding: .15rem .4rem; color: #fff; background: var(--red); border-radius: 999px; font-size: .65rem; font-weight: 900; }
.dashboard-identity { flex: 1 1 190px; min-width: 0; max-width: 320px; margin-left: auto; padding: .8rem 1rem; text-align: right; background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow-wrap: anywhere; }
.dashboard-identity span { display: block; font-weight: 900; }
.dashboard-identity-avatar { display:block; width:52px; height:52px; margin:0 0 .45rem auto; object-fit:cover; border-radius:50%; border:2px solid var(--line); }
.dashboard-identity-avatar-placeholder { display:grid !important; place-items:center; color:var(--red-dark); background:#f5eee7; }
.dashboard-identity small { color: var(--muted); }
@media (min-width:1000px) {
    .dashboard-header { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px, .9fr); align-items:center; gap:2rem; }
    .dashboard-user-actions { justify-content:flex-end; }
    .dashboard-identity { display:grid; grid-template-columns:52px minmax(0,1fr); column-gap:.65rem; align-items:center; max-width:265px; padding:.55rem .7rem; text-align:left; }
    .dashboard-identity-avatar { grid-row:span 2; margin:0; }
    .dashboard-identity span { align-self:end; }
    .dashboard-identity small { align-self:start; }
}
.dashboard-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 2rem; }
.dashboard-stats article { padding: 1rem 1.2rem; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: none; }
.dashboard-stats span { display: block; color: var(--muted); font-size: .78rem; font-weight: 800; }
.dashboard-stats strong { display: block; margin-top: .2rem; color: var(--red-dark); font-size: 1.8rem; line-height: 1; }
.dashboard-panel { margin-top: 2rem; padding: clamp(1.2rem, 4vw, 2rem); background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: none; }
.dashboard-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.dashboard-panel-heading h2 { margin-bottom: 0; }
.coming-soon { padding: .35rem .65rem; color: var(--red-dark); background: #f8e9dc; border-radius: 999px; font-size: .72rem; font-weight: 900; }
.dashboard-table-wrap { margin-top: 1.5rem; overflow-x: auto; }
.dashboard-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.dashboard-table th,
.dashboard-table td { padding: .8rem .7rem; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; }
.dashboard-table thead th { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; }
.dashboard-table tbody th { min-width: 180px; }
.dashboard-table a { color: var(--red-dark); font-weight: 900; }
.status-badge { display: inline-block; padding: .25rem .55rem; border-radius: 999px; background: #eee8df; white-space: nowrap; font-size: .7rem; font-weight: 900; }
.status-published { color: #175f35; background: #dff3e6; }
.status-submitted,
.status-in_review { color: #725300; background: #fff0be; }
.status-changes_requested,
.status-rejected { color: #842a24; background: #fde0dc; }
.empty-state { margin: 1.5rem 0 0; padding: 1rem; color: var(--muted); background: var(--cream); border-radius: 12px; }
.dashboard-notice { width: min(var(--content-width), calc(100% - 5rem)); margin: 0 auto 1.5rem; padding: .8rem 1rem; color: #175f35; background: #dff3e6; border: 1px solid #a8d5b8; border-radius: 12px; font-weight: 800; }

.review-page { padding: clamp(2.5rem, 6vw, 5rem) 0 6rem; }
.review-header,
.review-alert,
.review-layout,
.review-feedback { width: min(1180px, calc(100% - 5rem)); margin-inline: auto; }
.review-alert { margin-bottom: 1.5rem; }
.review-alert ul { margin: .45rem 0 0; }
.review-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 1.25rem; align-items: start; }
.review-content { display: grid; gap: 1rem; min-width: 0; }
.review-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; margin: 0 0 1.5rem; }
.review-meta div { padding: .75rem; background: #f8f6f2; border: 1px solid var(--line); border-radius: 9px; }
.review-meta dt { color: var(--muted); font-size: .7rem; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; }
.review-meta dd { margin: .2rem 0 0; font-weight: 800; }
.review-summary h3 { margin-bottom: .35rem; color: var(--red-dark); font-family: var(--font-body); font-size: .9rem; }
.review-summary > p:last-child { max-width: 70ch; margin-bottom: 0; }
.review-main-image { width: min(680px, 100%); margin: 0; }
.review-main-image img { width: 100%; max-height: 520px; object-fit: contain; background: #f3f0eb; border: 1px solid var(--line); border-radius: 12px; }
.review-main-image figcaption { margin-top: .4rem; color: var(--muted); font-size: .74rem; }
.review-warning { margin: 0; padding: .8rem; color: #725300; background: #fff9e6; border: 1px solid #e5cf85; border-radius: 9px; font-size: .82rem; }
.review-video { width: min(680px, 100%); margin-top: 1rem; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 12px; }
.review-video iframe { width: 100%; height: 100%; border: 0; }
.review-ingredients { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem 1.2rem; margin: 0; padding-left: 1.25rem; }
.review-ingredients li { padding-left: .2rem; }
.review-ingredients small { display: block; color: var(--muted); }
.review-steps { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
.review-steps li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: .8rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.review-steps li:last-child { padding-bottom: 0; border-bottom: 0; }
.review-step-number { display: grid; place-items: center; width: 32px; height: 32px; color: #fff; background: var(--red); border-radius: 50%; font-size: .75rem; font-weight: 900; }
.review-steps p { max-width: 70ch; margin: .2rem 0 .7rem; }
.review-steps img { display: block; width: min(480px, 100%); max-height: 380px; margin: .7rem 0; object-fit: contain; background: #f3f0eb; border-radius: 10px; }
.review-steps a { display: inline-block; color: var(--red-dark); font-weight: 900; }
.review-steps aside { margin-top: .7rem; padding: .65rem .75rem; background: var(--cream); border-radius: 8px; font-size: .8rem; }
.review-sidebar { position: sticky; top: 96px; display: grid; gap: 1rem; }
.review-decision-card,
.review-history { padding: 1.1rem; background: #fff; border: 1px solid #e1dcd4; border-radius: 12px; }
.review-decision-card h2,
.review-history h2 { color: #403a35; font-family: var(--font-body); font-size: 1.1rem; }
.review-decision-card > p:not(.eyebrow) { color: var(--muted); font-size: .8rem; }
.review-decision-card form > .button,
.review-decision-card > .button { width: 100%; text-align: center; }
.review-assignee { padding-bottom: .75rem; border-bottom: 1px solid var(--line); }
.review-form { display: grid; gap: .8rem; }
.review-actions { display: grid; gap: .5rem; }
.review-reject { color: #842a24; background: #fff; border: 1px solid #d59b95; }
.review-archive-form { margin-top: .6rem; }
.review-history > p { color: var(--muted); font-size: .78rem; }
.review-history ol { display: grid; gap: .9rem; margin: 0; padding: 0; list-style: none; }
.review-history li { padding-bottom: .8rem; border-bottom: 1px solid var(--line); }
.review-history li:last-child { padding-bottom: 0; border-bottom: 0; }
.review-history strong,
.review-history span { display: block; }
.review-history strong { font-size: .82rem; }
.review-history span { margin-top: .15rem; color: var(--muted); font-size: .68rem; }
.review-history p { margin: .45rem 0 0; font-size: .76rem; }
.review-feedback { margin-bottom: 1.5rem; padding: 1rem; color: #6c2a24; background: #fff0ee; border: 1px solid #e7aaa4; border-radius: 12px; }
.review-feedback strong,
.review-feedback time { display: block; }
.review-feedback p { max-width: 75ch; margin: .45rem 0; }
.review-feedback time { color: #80554f; font-size: .72rem; }

.editor-page { padding: clamp(2.5rem, 6vw, 5rem) 0 6rem; }
.editor-header,
.recipe-editor,
.editor-alert { width: min(1180px, calc(100% - 5rem)); margin-inline: auto; }
.editor-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.editor-header h1 { margin-bottom: .7rem; color: var(--red-dark); font-family: var(--font-display); }
.editor-header p:last-child { max-width: 680px; margin-bottom: 0; color: var(--muted); }
.editor-header-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; }
.editor-title-line { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.editor-title-line h1 { margin-bottom: 0; }
.editor-alert { margin-bottom: 1.5rem; }
.editor-alert ul { margin: .45rem 0 0; }
.recipe-editor { display: grid; gap: 1rem; }
.editor-workspace { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.editor-sidebar { position: sticky; top: 96px; padding: .8rem; background: #fff; border: 1px solid #e1dcd4; border-radius: 10px; }
.editor-sidebar-title { margin: .15rem .55rem .55rem; color: #817a72; font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.editor-section-nav { display: grid; gap: .2rem; }
.editor-section-nav a { display: grid; grid-template-columns: 24px 1fr; gap: .55rem; align-items: center; min-height: 38px; padding: .4rem .5rem; color: #514c47; border-radius: 7px; font-size: .76rem; font-weight: 800; text-decoration: none; }
.editor-section-nav a span { display: grid; place-items: center; width: 22px; height: 22px; color: #837c74; background: #f1eee9; border-radius: 5px; font-size: .65rem; }
.editor-section-nav a:hover,
.editor-section-nav a:focus-visible { color: var(--red-dark); background: #f8f1eb; }
.editor-section-nav a:hover span,
.editor-section-nav a:focus-visible span { color: #fff; background: var(--red); }
.editor-sidebar-help { margin: .8rem .5rem .2rem; padding-top: .8rem; color: var(--muted); border-top: 1px solid var(--line); font-size: .7rem; line-height: 1.45; }
.editor-sections { display: grid; gap: 1rem; min-width: 0; }
.editor-card { padding: clamp(1.2rem, 3vw, 1.7rem); background: #fff; border: 1px solid #e1dcd4; border-radius: 12px; box-shadow: none; }
.editor-card { scroll-margin-top: 96px; }
.editor-section-heading { display: grid; grid-template-columns: 30px 1fr; gap: .7rem; align-items: start; margin-bottom: 1.2rem; }
.editor-section-heading > span { display: grid; place-items: center; width: 28px; height: 28px; color: #fff; background: var(--red); border-radius: 6px; font-family: var(--font-body); font-size: .72rem; font-weight: 900; }
.editor-section-heading > .page-heading-icon .ui-icon { width: 1.15rem; height: 1.15rem; margin: 0; font-size: 1.05rem; }
.editor-section-heading h2 { margin-bottom: .18rem; color: #403a35; font-family: var(--font-body); font-size: 1.25rem; }
.editor-section-heading p { margin: 0; color: var(--muted); font-size: .86rem; }
.editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.field { display: grid; gap: .35rem; font-size: .86rem; font-weight: 900; }
.field small { color: var(--muted); font-size: .75rem; font-weight: 400; }
.field-wide { grid-column: 1 / -1; }
.field input,
.field select,
.field textarea,
.collection-row input,
.collection-row textarea { width: 100%; min-height: 48px; padding: .7rem .8rem; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 10px; font: inherit; font-weight: 400; }
.field textarea,
.collection-row textarea { resize: vertical; }
.field input:focus,
.field select:focus,
.field textarea:focus,
.collection-row input:focus,
.collection-row textarea:focus { border-color: var(--red); outline: 3px solid rgba(182,59,50,.16); }
.profile-avatar-preview { width:min(150px, 100%); margin:0; }
.profile-avatar-preview img { width:150px; height:150px; object-fit:cover; border:2px solid var(--line); border-radius:12px; }
.profile-avatar-preview + .field { margin-top:.35rem; }
.settings-grid > .field { gap:.55rem; }
.editor-collection { display: grid; gap: .55rem; counter-reset: editor-row; }
.collection-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: .55rem; align-items: center; counter-increment: editor-row; }
.collection-row label { min-width: 0; }
.row-index::before,
.step-row-number::before { content: counter(editor-row); }
.row-index,
.step-row-number { display: grid; place-items: center; width: 26px; height: 26px; color: #777067; background: #eeeae4; border-radius: 6px; font-size: .7rem; font-weight: 900; }
.row-actions { display: flex; gap: .3rem; align-items: center; }
.move-row { width: 34px; min-height: 38px; padding: 0; color: #5e5851; background: #fff; border: 1px solid var(--line); border-radius: 7px; font-weight: 900; cursor: pointer; }
.move-row:hover { color: var(--red-dark); border-color: var(--red); }
.step-editor-row { display: block; padding: 0; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 9px; }
.step-row-heading { display: grid; grid-template-columns: 28px 1fr auto; gap: .55rem; align-items: center; padding: .55rem .7rem; background: #f5f2ed; border-bottom: 1px solid var(--line); }
.step-row-heading strong { color: #5d5750; font-size: .76rem; }
.step-editor-fields { display: grid; gap: .9rem; }
.step-editor-row .step-editor-fields { padding: .9rem; }
.step-media-panel { border-top: 1px solid var(--line); }
.step-media-panel summary { padding: .65rem 0 0; color: var(--red-dark); font-size: .75rem; font-weight: 900; cursor: pointer; }
.step-media-panel[open] summary { margin-bottom: .8rem; }
.step-media-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.editor-image-preview { width: min(420px, 100%); margin: 0 0 1.2rem; }
.editor-image-preview img,
.step-image-preview { width: 100%; object-fit: cover; background: #eee; border: 1px solid var(--line); border-radius: 12px; }
.editor-image-preview img { aspect-ratio: 4 / 3; }
.editor-image-preview figcaption { margin-top: .35rem; color: var(--muted); font-size: .75rem; }
.step-image-preview { max-width: 320px; aspect-ratio: 4 / 3; }
.remove-row,
.add-row { min-height: 44px; padding: .55rem .8rem; border-radius: 9px; font-weight: 800; cursor: pointer; }
.remove-row { min-height: 38px; padding: .45rem .65rem; color: #842a24; background: #fff; border: 1px solid #e3c3bf; border-radius: 7px; font-size: .72rem; }
.add-row { margin-top: .9rem; color: var(--red-dark); background: #fff; border: 1px solid var(--red); }
.editor-actions { position: sticky; bottom: 0; z-index: 10; display: flex; justify-content: flex-end; gap: .6rem; padding: .75rem; background: rgba(255,255,255,.96); border: 1px solid var(--line); border-radius: 10px; backdrop-filter: blur(12px); box-shadow: 0 -4px 14px rgba(79,47,30,.06); }
.editor-actions > span { align-self: center; margin-right: auto; color: var(--muted); font-size: .72rem; }

/* Panel privado: jerarquía clara, tarjetas suaves y acciones compactas. */
.dashboard-page,
.editor-page { background: #fffaf1; }
.dashboard-header { padding: clamp(1.25rem, 3vw, 2rem); background: linear-gradient(135deg, #fffdf8, #f7eee4); border: 1px solid #e7d9ca; border-radius: 1.25rem; box-shadow: 0 14px 35px rgba(83,55,37,.08); }
.dashboard-header h1,
.editor-header h1 { letter-spacing: -.02em; }
.dashboard-user-actions { padding-top: .25rem; }
.dashboard-user-actions > .button,
.editor-header-actions > .button { border-radius: .65rem; box-shadow: 0 4px 10px rgba(83,55,37,.08); }
.dashboard-identity { border-color: #e7d9ca; box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.dashboard-stats article { position: relative; overflow: hidden; padding: 1.15rem 1.25rem; border-color: #e7d9ca; border-radius: .9rem; box-shadow: 0 8px 20px rgba(83,55,37,.06); }
.dashboard-stats article::after { position: absolute; right: -1.2rem; bottom: -1.5rem; width: 4.5rem; height: 4.5rem; content: ''; background: var(--red); opacity: .07; border-radius: 50%; }
.dashboard-stats strong { font-size: 2rem; }
.dashboard-panel,
.editor-card { border-color: #e7d9ca; border-radius: 1rem; box-shadow: 0 10px 26px rgba(83,55,37,.06); }
.dashboard-panel-heading { padding-bottom: .9rem; border-bottom: 1px solid #eee4da; }
.dashboard-workspace { width:min(var(--content-width), calc(100% - 5rem)); margin:2rem auto 0; display:grid; grid-template-columns:190px minmax(0,1fr); gap:1.25rem; align-items:start; }
.dashboard-content { min-width:0; }
.dashboard-content .dashboard-stats { width:100%; margin-top:0; }
.dashboard-content .dashboard-panel { width:100%; }
.dashboard-quick-actions { margin-bottom:1.25rem; padding:1rem; background:#fff; border:1px solid #e7d9ca; border-radius:1rem; box-shadow:0 10px 26px rgba(83,55,37,.06); }
.dashboard-quick-actions .dashboard-panel-heading { margin-bottom:.75rem; padding-bottom:.65rem; }
.dashboard-quick-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.65rem; }
.dashboard-quick-card { display:flex; min-height:108px; flex-direction:column; align-items:flex-start; justify-content:center; gap:.2rem; padding:.9rem; color:#51483f; background:#f3f5f6; border:1px solid #d9e0e1; border-radius:.55rem; text-decoration:none; transition:transform .16s ease, box-shadow .16s ease, background .16s ease; }
.dashboard-quick-card:hover, .dashboard-quick-card:focus-visible { color:#fff; background:#273338; border-color:#273338; box-shadow:0 8px 18px rgba(31,42,46,.18); transform:translateY(-2px); }
.dashboard-quick-card-primary { color:#fff; background:var(--red); border-color:var(--red); }
.dashboard-quick-card-primary,
.dashboard-quick-card-primary span,
.dashboard-quick-card-primary small,
.dashboard-quick-card-primary .ui-icon { color:#fff !important; }
.dashboard-quick-card-primary:hover, .dashboard-quick-card-primary:focus-visible { background:var(--red-dark); border-color:var(--red-dark); }
.dashboard-quick-card .ui-icon { width:1.55rem; height:1.55rem; margin-bottom:.2rem; }
.dashboard-quick-card span { font-size:.82rem; font-weight:900; line-height:1.2; }
.dashboard-quick-card small { color:#756a63; font-size:.68rem; }
.dashboard-quick-card:hover small, .dashboard-quick-card:focus-visible small, .dashboard-quick-card-primary small { color:rgba(255,255,255,.82); }
.dashboard-nav { position:sticky; top:112px; display:grid; gap:.25rem; padding:.9rem; background:#fffdf9; border:1px solid #e7d9ca; border-radius:1rem; box-shadow:0 10px 25px rgba(83,55,37,.06); }
.dashboard-nav-title { margin:.55rem .6rem .25rem; color:#927d6e; font-size:.65rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.dashboard-nav a { display:flex; align-items:center; gap:.6rem; min-height:40px; padding:.55rem .65rem; color:#51483f; border-radius:.65rem; font-size:.78rem; font-weight:800; text-decoration:none; }
.dashboard-nav a:hover, .dashboard-nav a:focus-visible { color:#fff; background:var(--red); }
.dashboard-nav a .ui-icon { width:1.05rem; height:1.05rem; flex:0 0 auto; }
.dashboard-nav a b { display:inline-grid; place-items:center; min-width:1.35rem; height:1.35rem; margin-left:auto; color:#fff; background:var(--red); border-radius:999px; font-size:.65rem; }
.dashboard-nav a:hover b, .dashboard-nav a:focus-visible b { color:var(--red); background:#fff; }
.dashboard-header .dashboard-user-actions > .button:not(.dashboard-message-link):not(.button-primary) { display:none; }
.dashboard-header .dashboard-user-actions { justify-content:flex-end; }
.dashboard-nav { background:#273338; border-color:#273338; box-shadow:0 14px 30px rgba(31,42,46,.18); }
.dashboard-nav-title { color:#a9c1c3; }
.dashboard-nav a { color:#f4f7f5; }
.dashboard-nav a:hover, .dashboard-nav a:focus-visible { color:#273338; background:#f1c58f; }
.dashboard-nav a b { color:#273338; background:#f1c58f; }
.admin-theme-slate .dashboard-nav { background:#1f2c35; border-color:#1f2c35; }
.admin-theme-botanical .dashboard-nav { background:#294339; border-color:#294339; }
.admin-theme-warm .dashboard-nav { background:#fffdf9; border-color:#e7d9ca; box-shadow:0 10px 25px rgba(83,55,37,.06); }
.admin-theme-warm .dashboard-nav-title { color:#927d6e; }
.admin-theme-warm .dashboard-nav a { color:#51483f; }
.admin-theme-warm .dashboard-nav a:hover, .admin-theme-warm .dashboard-nav a:focus-visible { color:#fff; background:#b63b32; }
.admin-theme-warm .dashboard-nav a b { color:#fff; background:#b63b32; }
.admin-theme-botanical .dashboard-nav a:hover, .admin-theme-botanical .dashboard-nav a:focus-visible { background:#bfd49d; }
.admin-theme-slate .dashboard-nav a:hover, .admin-theme-slate .dashboard-nav a:focus-visible { background:#a9c8d4; }
.dashboard-page .dashboard-nav { background:#fffdf9; border-color:#e7d9ca; box-shadow:0 10px 25px rgba(83,55,37,.08); }
.dashboard-page .dashboard-nav-title { color:#927d6e; }
.dashboard-page .dashboard-nav a { color:#51483f; }
.dashboard-page .dashboard-nav a:hover, .dashboard-page .dashboard-nav a:focus-visible { color:#fff; background:var(--red); }
.dashboard-table tbody tr { transition: background .15s ease; }
.dashboard-table tbody tr:hover { background: #fffaf3; }
.dashboard-table th,
.dashboard-table td { padding: .9rem .75rem; }
.editor-header { margin-bottom: 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid #e7d9ca; }
.editor-sidebar { top: 112px; border-color: #e7d9ca; box-shadow: 0 8px 20px rgba(83,55,37,.05); }
.editor-card { background: #fff; }
.editor-card + .editor-card { margin-top: .15rem; }
.editor-section-heading > span { width: 32px; height: 32px; border-radius: .65rem; box-shadow: 0 4px 10px rgba(159,52,45,.2); }
.editor-actions { border-color: #e7d9ca; box-shadow: 0 -8px 24px rgba(83,55,37,.08); }
.editor-actions .button { border-radius: .65rem; }
.admin-area { background:#f3eadf; }
.admin-area .site-header { background:#fffdf9; }
.admin-theme-warm .dashboard-page, .admin-theme-warm .editor-page { background:#fffaf1; color:#3d3028; }
.admin-theme-warm h1, .admin-theme-warm h2, .admin-theme-warm h3, .admin-theme-warm .editor-section-heading h2 { color:#5b2925; }
.admin-theme-warm a:not(.button) { color:#8c302a; }
.admin-theme-slate { background:#e7ebee; color:#26343c; }
.admin-theme-slate .site-header, .admin-theme-slate .dashboard-header, .admin-theme-slate .dashboard-nav, .admin-theme-slate .dashboard-panel, .admin-theme-slate .editor-card { background:#f8fafb; border-color:#cbd5db; }
.admin-theme-slate .dashboard-header { background:linear-gradient(135deg,#f8fafb,#e4ebef); }
.admin-theme-slate .dashboard-page, .admin-theme-slate .editor-page { background:#e7ebee; color:#26343c; }
.admin-theme-slate h1, .admin-theme-slate h2, .admin-theme-slate h3, .admin-theme-slate .editor-section-heading h2 { color:#1d2b33; }
.admin-theme-slate p, .admin-theme-slate label, .admin-theme-slate .dashboard-table td { color:#3f515b; }
.admin-theme-slate a:not(.button) { color:#145d75; }
.admin-theme-slate input, .admin-theme-slate textarea, .admin-theme-slate select { color:#26343c; background:#fff; border-color:#aebdc5; }
.admin-theme-botanical { background:#edf1e8; }
.admin-theme-botanical .site-header, .admin-theme-botanical .dashboard-header, .admin-theme-botanical .dashboard-nav, .admin-theme-botanical .dashboard-panel, .admin-theme-botanical .editor-card { background:#fbfdf8; border-color:#cbd8c4; }
.admin-theme-botanical .dashboard-header { background:linear-gradient(135deg,#fbfdf8,#e4eddf); }

/* Cabecera compacta del panel: las acciones quedan visibles sin ocupar media pantalla. */
.admin-area .dashboard-header { gap:.6rem; padding:.85rem 1.1rem; }
.admin-area .dashboard-header h1 { margin-bottom:.2rem; font-size:clamp(1.75rem, 3.4vw, 2.35rem); }
.admin-area .dashboard-header p:last-child { font-size:.88rem; }
.admin-area .dashboard-user-actions { padding-top:0; gap:.45rem; }
.admin-theme-botanical .dashboard-page, .admin-theme-botanical .editor-page { background:#edf1e8; color:#263b2d; }
.admin-theme-botanical h1, .admin-theme-botanical h2, .admin-theme-botanical h3, .admin-theme-botanical .editor-section-heading h2 { color:#203d2b; }
.admin-theme-botanical p, .admin-theme-botanical label, .admin-theme-botanical .dashboard-table td { color:#405a48; }
.admin-theme-botanical a:not(.button) { color:#28613e; }
.admin-theme-botanical input, .admin-theme-botanical textarea, .admin-theme-botanical select { color:#263b2d; background:#fff; border-color:#aebfa8; }
.admin-theme-choice { min-height:120px; }
.theme-choice-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:1rem; }
.admin-theme-choice { position:relative; display:block; padding:1rem; background:#fff; border:2px solid #e3d9cf; border-radius:.9rem; cursor:pointer; transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.admin-theme-choice:hover { border-color:#c98a63; box-shadow:0 8px 18px rgba(83,55,37,.1); transform:translateY(-2px); }
.admin-theme-choice:focus-within { border-color:var(--red); box-shadow:0 0 0 3px rgba(182,59,50,.18); }
.admin-theme-choice input { position:absolute; width:1px; height:1px; opacity:0; }
.admin-theme-choice input:checked + .admin-theme-preview { outline:3px solid var(--red); outline-offset:2px; }
.admin-theme-choice strong { display:block; margin-top:.2rem; color:#3e332c; font-size:.95rem; }
.admin-theme-choice small { display:block; margin-top:.3rem; color:#75685f; font-size:.76rem; line-height:1.4; }
.admin-theme-preview { display:block; width:100%; height:42px; margin-bottom:.55rem; border:1px solid rgba(0,0,0,.12); border-radius:.55rem; }
.admin-theme-preview-warm { background:linear-gradient(135deg,#fffaf1 50%,#d98a61 50%); }
.admin-theme-preview-slate { background:linear-gradient(135deg,#f8fafb 50%,#566b78 50%); }
.admin-theme-preview-botanical { background:linear-gradient(135deg,#fbfdf8 50%,#78946f 50%); }
.admin-theme-preview-ocean { background:linear-gradient(135deg,#f5fbfd 50%,#397f9a 50%); }
.admin-theme-preview-lavender { background:linear-gradient(135deg,#fbf9ff 50%,#8d78aa 50%); }
.admin-theme-preview-vintage { background:linear-gradient(135deg,#fff9ec 50%,#a66a42 50%); }
.admin-theme-ocean { background:#eaf3f7; color:#233b45; }
.admin-theme-ocean .site-header, .admin-theme-ocean .dashboard-header, .admin-theme-ocean .dashboard-panel, .admin-theme-ocean .editor-card { background:#f8fcff; border-color:#b9d5df; }
.admin-theme-ocean .dashboard-page, .admin-theme-ocean .editor-page { background:#eaf3f7; color:#233b45; }
.admin-theme-ocean h1, .admin-theme-ocean h2, .admin-theme-ocean h3, .admin-theme-ocean .editor-section-heading h2 { color:#1e5368; }
.admin-theme-ocean p, .admin-theme-ocean label, .admin-theme-ocean .dashboard-table td { color:#365d6c; }
.admin-theme-ocean a:not(.button) { color:#17627d; }
.admin-theme-ocean input, .admin-theme-ocean textarea, .admin-theme-ocean select { color:#233b45; background:#fff; border-color:#a9c8d3; }
.admin-theme-lavender { background:#f0edf7; color:#3e3650; }
.admin-theme-lavender .site-header, .admin-theme-lavender .dashboard-header, .admin-theme-lavender .dashboard-panel, .admin-theme-lavender .editor-card { background:#fcfaff; border-color:#d0c4e2; }
.admin-theme-lavender .dashboard-page, .admin-theme-lavender .editor-page { background:#f0edf7; color:#3e3650; }
.admin-theme-lavender h1, .admin-theme-lavender h2, .admin-theme-lavender h3, .admin-theme-lavender .editor-section-heading h2 { color:#5a467b; }
.admin-theme-lavender p, .admin-theme-lavender label, .admin-theme-lavender .dashboard-table td { color:#665878; }
.admin-theme-lavender a:not(.button) { color:#694e94; }
.admin-theme-lavender input, .admin-theme-lavender textarea, .admin-theme-lavender select { color:#3e3650; background:#fff; border-color:#c6b7da; }
.admin-theme-vintage { background:#f1e6d8; color:#48362b; }
.admin-theme-vintage .site-header, .admin-theme-vintage .dashboard-header, .admin-theme-vintage .dashboard-panel, .admin-theme-vintage .editor-card { background:#fffaf0; border-color:#d8bda3; }
.admin-theme-vintage .dashboard-page, .admin-theme-vintage .editor-page { background:#f1e6d8; color:#48362b; }
.admin-theme-vintage h1, .admin-theme-vintage h2, .admin-theme-vintage h3, .admin-theme-vintage .editor-section-heading h2 { color:#70442f; }
.admin-theme-vintage p, .admin-theme-vintage label, .admin-theme-vintage .dashboard-table td { color:#725d4d; }
.admin-theme-vintage a:not(.button) { color:#8a4d31; }
.admin-theme-vintage input, .admin-theme-vintage textarea, .admin-theme-vintage select { color:#48362b; background:#fffdf8; border-color:#c9a98b; }
/* Variantes estructurales: cada tema cambia también formas, ritmo y jerarquía visual. */
.admin-theme-ocean .dashboard-header { border-radius:.35rem; border-left:6px solid #397f9a; box-shadow:0 8px 18px rgba(35,83,104,.08); }
.admin-theme-ocean .dashboard-panel, .admin-theme-ocean .editor-card { border-radius:.35rem; box-shadow:0 5px 14px rgba(35,83,104,.07); }
.admin-theme-ocean .dashboard-nav { border-radius:.35rem; box-shadow:none; }
.admin-theme-ocean .dashboard-nav a { border-radius:.3rem; }
.admin-theme-ocean .dashboard-quick-actions { border-radius:.35rem; box-shadow:none; }
.admin-theme-ocean .dashboard-quick-card { border-radius:.3rem; background:#edf7fa; border-left:4px solid #397f9a; }
.admin-theme-ocean .dashboard-quick-card-primary { border-left-color:#17627d; }
.admin-theme-ocean .dashboard-stats article { border-radius:.35rem; box-shadow:none; }

.admin-theme-lavender .dashboard-header { border-radius:1.5rem; box-shadow:0 16px 34px rgba(89,66,122,.12); }
.admin-theme-lavender .dashboard-panel, .admin-theme-lavender .editor-card { border-radius:1.35rem; box-shadow:0 12px 28px rgba(89,66,122,.09); }
.admin-theme-lavender .dashboard-nav { border-radius:1.35rem; padding:1.1rem; }
.admin-theme-lavender .dashboard-nav a { min-height:44px; border-radius:1rem; }
.admin-theme-lavender .dashboard-quick-actions { border-radius:1.35rem; padding:1.25rem; }
.admin-theme-lavender .dashboard-quick-card { min-height:118px; border-radius:1.15rem; background:#f8f4ff; }
.admin-theme-lavender .dashboard-stats article { border-radius:1.1rem; box-shadow:0 8px 18px rgba(89,66,122,.08); }

.admin-theme-vintage .dashboard-header { border-radius:4px; border:2px solid #c9a98b; box-shadow:4px 5px 0 rgba(138,77,49,.12); background:repeating-linear-gradient(0deg,#fffaf0 0,#fffaf0 27px,#f1e5d4 28px); }
.admin-theme-vintage .dashboard-panel, .admin-theme-vintage .editor-card { border-radius:4px; border-width:2px; box-shadow:4px 5px 0 rgba(138,77,49,.1); }
.admin-theme-vintage .dashboard-nav { border-radius:4px; box-shadow:3px 4px 0 rgba(138,77,49,.1); }
.admin-theme-vintage .dashboard-nav a { border-radius:3px; }
.admin-theme-vintage .dashboard-quick-actions { border-radius:4px; border-width:2px; box-shadow:4px 5px 0 rgba(138,77,49,.1); }
.admin-theme-vintage .dashboard-quick-card { min-height:112px; border-radius:3px; background:#fff8e9; border:2px solid #d8bda3; box-shadow:2px 3px 0 rgba(138,77,49,.08); }
.admin-theme-vintage .dashboard-stats article { border-radius:3px; border-width:2px; box-shadow:2px 3px 0 rgba(138,77,49,.08); }
/* Estados interactivos coherentes con cada paleta, sin rojo genérico. */
.admin-theme-slate .dashboard-page .dashboard-nav a:hover, .admin-theme-slate .dashboard-page .dashboard-nav a:focus-visible { color:#fff; background:#4e7180; }
.admin-theme-slate .dashboard-quick-card-primary { background:#1f5267; border-color:#1f5267; }
.admin-theme-slate .dashboard-quick-card-primary:hover, .admin-theme-slate .dashboard-quick-card-primary:focus-visible { background:#153b4b; border-color:#153b4b; }
.admin-theme-slate .dashboard-quick-card:hover, .admin-theme-slate .dashboard-quick-card:focus-visible { background:#344e59; border-color:#344e59; }

.admin-theme-botanical .dashboard-page .dashboard-nav a:hover, .admin-theme-botanical .dashboard-page .dashboard-nav a:focus-visible { color:#fff; background:#5f835f; }
.admin-theme-botanical .dashboard-quick-card-primary { background:#2f5a3d; border-color:#2f5a3d; }
.admin-theme-botanical .dashboard-quick-card-primary:hover, .admin-theme-botanical .dashboard-quick-card-primary:focus-visible { background:#21412c; border-color:#21412c; }
.admin-theme-botanical .dashboard-quick-card:hover, .admin-theme-botanical .dashboard-quick-card:focus-visible { color:#fff; background:#476447; border-color:#476447; }

.admin-theme-ocean .dashboard-page .dashboard-nav a:hover, .admin-theme-ocean .dashboard-page .dashboard-nav a:focus-visible { color:#fff; background:#397f9a; }
.admin-theme-ocean .dashboard-quick-card-primary { background:#17627d; border-color:#17627d; }
.admin-theme-ocean .dashboard-quick-card-primary:hover, .admin-theme-ocean .dashboard-quick-card-primary:focus-visible { background:#10465a; border-color:#10465a; }
.admin-theme-ocean .dashboard-quick-card:hover, .admin-theme-ocean .dashboard-quick-card:focus-visible { color:#fff; background:#245f77; border-color:#245f77; }

.admin-theme-lavender .dashboard-page .dashboard-nav a:hover, .admin-theme-lavender .dashboard-page .dashboard-nav a:focus-visible { color:#fff; background:#8d78aa; }
.admin-theme-lavender .dashboard-quick-card-primary { background:#694e94; border-color:#694e94; }
.admin-theme-lavender .dashboard-quick-card-primary:hover, .admin-theme-lavender .dashboard-quick-card-primary:focus-visible { background:#4d3771; border-color:#4d3771; }
.admin-theme-lavender .dashboard-quick-card:hover, .admin-theme-lavender .dashboard-quick-card:focus-visible { color:#fff; background:#6f5a8d; border-color:#6f5a8d; }

.admin-theme-vintage .dashboard-page .dashboard-nav a:hover, .admin-theme-vintage .dashboard-page .dashboard-nav a:focus-visible { color:#fff; background:#a66a42; }
.admin-theme-vintage .dashboard-quick-card-primary { background:#8a4d31; border-color:#8a4d31; }
.admin-theme-vintage .dashboard-quick-card-primary:hover, .admin-theme-vintage .dashboard-quick-card-primary:focus-visible { background:#683722; border-color:#683722; }
.admin-theme-vintage .dashboard-quick-card:hover, .admin-theme-vintage .dashboard-quick-card:focus-visible { color:#fff; background:#814d31; border-color:#814d31; }
.admin-theme-slate .admin-quick-nav { background:#eef3f5; border-bottom-color:#b8cbd2 !important; }
.admin-theme-slate .admin-quick-nav a { color:#28576a; }
.admin-theme-slate .admin-quick-nav a:hover, .admin-theme-slate .admin-quick-nav a:focus-visible { color:#fff; background:#4e7180; }

.admin-theme-botanical .admin-quick-nav { background:#f0f5ed; border-bottom-color:#bfd0b8 !important; }
.admin-theme-botanical .admin-quick-nav a { color:#356044; }
.admin-theme-botanical .admin-quick-nav a:hover, .admin-theme-botanical .admin-quick-nav a:focus-visible { color:#fff; background:#5f835f; }

.admin-theme-ocean .admin-quick-nav { background:#edf7fa; border-bottom-color:#afd0da !important; }
.admin-theme-ocean .admin-quick-nav a { color:#17627d; }
.admin-theme-ocean .admin-quick-nav a:hover, .admin-theme-ocean .admin-quick-nav a:focus-visible { color:#fff; background:#397f9a; }

.admin-theme-lavender .admin-quick-nav { background:#f8f4ff; border-bottom-color:#cdbfe0 !important; }
.admin-theme-lavender .admin-quick-nav a { color:#694e94; }
.admin-theme-lavender .admin-quick-nav a:hover, .admin-theme-lavender .admin-quick-nav a:focus-visible { color:#fff; background:#8d78aa; }

.admin-theme-vintage .admin-quick-nav { background:#fff8e9; border-bottom-color:#d5b89c !important; }
.admin-theme-vintage .admin-quick-nav a { color:#8a4d31; }
.admin-theme-vintage .admin-quick-nav a:hover, .admin-theme-vintage .admin-quick-nav a:focus-visible { color:#fff; background:#a66a42; }
.admin-theme-warm .admin-quick-nav { background:#fffaf5; border-bottom-color:rgba(182,59,50,.28) !important; }
.admin-theme-warm .admin-quick-nav a { color:#863027; }
.admin-theme-warm .admin-quick-nav a:hover, .admin-theme-warm .admin-quick-nav a:focus-visible { color:#fff !important; background:#b63b32; }
.wysiwyg-field > span { display:block; margin-bottom:.35rem; font-weight:800; }
.wysiwyg-toolbar { display:flex; flex-wrap:wrap; gap:.3rem; padding:.4rem; background:#f5efe8; border:1px solid #d9cec2; border-bottom:0; border-radius:.6rem .6rem 0 0; }
.wysiwyg-toolbar button { min-width:2rem; min-height:2rem; padding:.25rem .5rem; color:#4a3b32; background:#fff; border:1px solid #d9cec2; border-radius:.35rem; cursor:pointer; }
.wysiwyg-toolbar button:hover, .wysiwyg-toolbar button:focus-visible { color:#fff; background:var(--red); }
.wysiwyg-toolbar-separator { width:1px; margin:.2rem .15rem; background:#d9cec2; }
.wysiwyg-editor { min-height:180px; padding:.8rem; color:#332a24; background:#fff; border:1px solid #d9cec2; border-radius:0 0 .6rem .6rem; font-weight:400; line-height:1.55; white-space:normal; }
.wysiwyg-editor p { margin:0 0 .8rem; font-weight:400; }
.wysiwyg-editor p:last-child { margin-bottom:0; }
.wysiwyg-editor h1, .wysiwyg-editor h2, .wysiwyg-editor h3 { margin:.9rem 0 .45rem; font-weight:800; line-height:1.2; }
.wysiwyg-editor ul, .wysiwyg-editor ol { margin:.45rem 0 .8rem 1.25rem; padding:0; }
.wysiwyg-editor blockquote { margin:.7rem 0; padding:.55rem .8rem; border-left:3px solid var(--red); font-weight:400; }
.category-admin-layout.list-only { display:block; }
.category-admin-layout.list-only .category-admin-list { width:min(var(--content-width), calc(100% - 5rem)); margin-inline:auto; }
.category-admin-card { display:block; margin-bottom:1rem; padding:1.15rem; background:#fff; border:1px solid #e1d6cc; border-radius:14px; box-shadow:0 5px 16px rgba(83,55,37,.06); }
.category-admin-card:last-child { border-bottom:0; }
.category-admin-title { display:flex; align-items:center; min-height:2.7rem; margin:0 0 .7rem; color:var(--red-dark); font-size:1.15rem; line-height:1.2; }
.category-admin-row { display:grid; grid-template-columns:300px minmax(300px,1fr) 190px; gap:1.25rem; align-items:stretch; }
.category-admin-thumb { width:300px; height:169px; aspect-ratio:16 / 9; overflow:hidden; display:grid; place-items:center; color:#8d7c6d; background:#f4eee8; border-radius:10px; }
.category-admin-thumb img { width:100%; height:100%; object-fit:cover; }
.category-admin-copy strong { display:block; color:var(--red-dark); font-size:1rem; }
.category-admin-copy { display:flex; min-width:0; min-height:169px; flex-direction:column; justify-content:center; margin-left:.75rem; padding:.75rem 0 .75rem 1rem; background:#fff; border-left:1px solid #eee2d7; overflow-wrap:anywhere; position:relative; z-index:1; }
.category-admin-copy p { margin:.25rem 0 .65rem; color:var(--muted); font-size:.8rem; line-height:1.4; }
.category-admin-copy small { color:var(--muted); font-size:.7rem; }
.category-admin-card .table-actions { display:flex; flex-direction:column; align-items:stretch; gap:.5rem; }
.category-admin-card .table-actions .button { justify-content:center; width:100%; white-space:nowrap; }
.recipe-admin-filters { display:grid; grid-template-columns:minmax(220px,2fr) repeat(3,minmax(130px,1fr)) auto; gap:.7rem; align-items:end; width:min(var(--content-width),calc(100% - 5rem)); margin:0 auto 1rem; padding:1rem; }
.bulk-action-bar { display:flex; align-items:end; flex-wrap:wrap; gap:.65rem; margin:0 0 1rem; padding:.75rem; background:#fffaf5; border:1px solid #e7d9ca; border-radius:.75rem; }
.bulk-action-bar .field { min-width:230px; margin:0; }
.bulk-action-bar .button { min-height:34px; padding:.35rem .65rem; font-size:.74rem; }
.trash-bulk-bar { align-items:center; }
.trash-bulk-bar label { margin:0; color:var(--muted); font-size:.75rem; font-weight:800; }
.trash-bulk-bar select { min-height:34px; min-width:220px; padding:.35rem .55rem; }
.trash-table { min-width:980px; }
.trash-table .table-sort-link { display:inline-flex; align-items:center; gap:.18rem; color:inherit; text-decoration:none; }
.trash-table .table-sort-link:hover, .trash-table .table-sort-link:focus-visible { color:var(--red-dark); text-decoration:underline; text-underline-offset:2px; }
.trash-table .trash-select-cell { width:2.5rem; min-width:2.5rem; text-align:center; }
.trash-table .trash-select-cell input { width:1.05rem; height:1.05rem; accent-color:var(--red); }
.trash-table th:nth-child(2) { min-width:190px; }
.trash-table td:nth-child(3) { min-width:145px; }
.trash-table td:nth-child(4), .trash-table td:nth-child(5), .trash-table td:nth-child(6) { white-space:nowrap; }
.trash-table .table-actions form { display:flex; flex-wrap:wrap; gap:.4rem; }
.admin-pagination { display:flex; align-items:center; justify-content:center; gap:.8rem; margin-top:1.25rem; padding-top:1rem; border-top:1px solid var(--line); }
.admin-pagination > span { color:var(--muted); font-size:.78rem; font-weight:800; }
.dashboard-table th:first-child,
.dashboard-table td:first-child { width:2.5rem; text-align:center; }
.dashboard-table td:first-child input { width:1.05rem; height:1.05rem; accent-color:var(--red); }
.recipes-list-table,
.review-queue-table { table-layout:fixed; }
.recipes-list-table th:nth-child(2) { width:30%; }
.recipes-list-table th:nth-child(3) { width:18%; }
.recipes-list-table th:nth-child(4) { width:14%; }
.recipes-list-table th:nth-child(5) { width:12%; }
.recipes-list-table th:nth-child(6) { width:26%; }
.recipes-list-table-admin th:nth-child(2) { width:28%; }
.recipes-list-table-admin th:nth-child(3) { width:15%; }
.recipes-list-table-admin th:nth-child(4) { width:14%; }
.recipes-list-table-admin th:nth-child(5) { width:12%; }
.recipes-list-table-admin th:nth-child(6) { width:11%; }
.recipes-list-table-admin th:nth-child(7) { width:20%; }
.review-queue-table th:nth-child(1) { width:29%; }
.review-queue-table th:nth-child(2) { width:17%; }
.review-queue-table th:nth-child(3) { width:15%; }
.review-queue-table th:nth-child(4) { width:13%; }
.review-queue-table th:nth-child(5) { width:12%; }
.review-queue-table th:nth-child(6) { width:14%; }
.table-sort-link { display:inline-flex; align-items:center; gap:.2rem; color:inherit !important; text-decoration:none; }
.table-sort-link:hover, .table-sort-link:focus-visible { color:var(--red-dark) !important; text-decoration:underline; }
.recipe-admin-filters .field { font-size:.76rem; }
.recipe-admin-filters .button { min-height:34px; padding:.35rem .65rem; font-size:.74rem; white-space:nowrap; }
.category-admin-layout.has-editor { align-items:start; }
@media (max-width:1100px) { .category-admin-row { grid-template-columns:260px minmax(0,1fr); } .category-admin-thumb { width:260px; height:146px; } .category-admin-copy { min-height:146px; } .category-admin-row .table-actions { grid-column:1 / -1; flex-direction:row; justify-content:flex-start; } .category-admin-row .table-actions .button { width:auto; } }
@media (max-width:700px) { .category-admin-title { min-height:0; } .category-admin-row { display:flex; flex-direction:column; gap:.75rem; } .category-admin-thumb { order:1; width:100%; height:auto; aspect-ratio:16 / 9; } .category-admin-copy { order:2; min-height:0; margin-left:0; padding:.25rem 0 0; background:transparent; border-left:0; } .category-admin-row .table-actions { order:3; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; } .category-admin-row .table-actions .button { width:100%; } }
.category-admin-layout.has-editor { grid-template-columns:minmax(0,1fr) !important; width:min(var(--content-width),calc(100% - 2rem)); margin-inline:auto; }
.category-admin-layout.has-editor .category-admin-list { width:100%; margin:0; }
.category-admin-list .category-list-cards { display:grid; grid-template-columns:1fr; gap:0; }
.category-admin-card { min-width:0; }
.category-admin-row { grid-template-columns:260px minmax(360px,1fr) 220px !important; gap:1rem; }
.category-admin-title { width:100%; }
@media (max-width:900px) {
    .category-admin-layout.has-editor { width:calc(100% - 1.5rem); }
    .category-admin-row { display:flex !important; flex-direction:column; gap:.75rem; }
    .category-admin-thumb { width:min(100%,420px); height:auto; aspect-ratio:16 / 9; }
    .category-admin-copy { min-height:0; width:100%; }
    .category-admin-row .table-actions { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .category-admin-row .table-actions .button { width:100%; }
}
@media (max-width:520px) {
    .admin-quick-nav { width:calc(100% - 1rem); justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; border-radius:0 0 10px 10px; }
    .admin-quick-user { margin-left:0; flex:0 0 auto; }
    .category-admin-card { padding:.8rem; }
    .category-admin-row .table-actions { grid-template-columns:1fr; }
}

/* El panel privado debe aprovechar el ancho completo disponible. */
.admin-area .dashboard-page,
.admin-area .editor-page,
.admin-area .dashboard-header,
.admin-area .dashboard-stats,
.admin-area .dashboard-panel,
.admin-area .dashboard-workspace,
.admin-area .editor-header,
.admin-area .editor-alert,
.admin-area .recipe-editor,
.admin-area .settings-form,
.admin-area .messages-layout,
.admin-area .review-layout,
.admin-area .recipe-admin-filters,
.admin-area .category-admin-layout { width:calc(100% - 2rem) !important; max-width:none !important; }
.admin-quick-nav { width:min(var(--page-width), calc(100% - 3rem)) !important; max-width:none !important; margin-inline:auto; border:0 !important; border-bottom:1px solid rgba(112, 71, 48, .22) !important; border-radius:0; position:fixed !important; top:5.5rem !important; left:50%; transform:translateX(-50%); z-index:95; background:#fffaf5; box-shadow:0 8px 16px rgba(83, 55, 37, .14); }
.admin-quick-nav { flex-wrap:nowrap; justify-content:stretch; gap:.25rem; padding:.35rem .55rem; }
.admin-quick-nav a { flex:1 1 0; min-width:0; white-space:nowrap; }
.admin-quick-user { flex:0 0 auto; white-space:nowrap; }
.admin-quick-nav { border-radius:0; }
.admin-area #contenido { width:min(var(--page-width), calc(100% - 3rem)) !important; max-width:none !important; margin-inline:auto; padding-inline:.75rem; padding-top:4rem !important; padding-bottom:2rem !important; box-sizing:border-box; }
.admin-area #contenido > * { width:100% !important; max-width:none !important; }
.admin-area .dashboard-nav { top:calc(8.75rem + 3px); max-height:calc(100vh - 9.5rem); overflow-y:auto; }
@media (max-width:700px) {
    .admin-quick-nav { width:calc(100% - 1rem); top:5.75rem !important; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.3rem; padding:.4rem; overflow:visible; }
    .admin-area #contenido { width:calc(100% - 1rem); padding-inline:.5rem; padding-top:8.5rem !important; padding-bottom:1.5rem !important; }
    .admin-quick-nav a { min-width:0; width:100%; }
    .admin-quick-user { grid-column:1 / -1; justify-content:center; margin:0; border-left:0; border-top:1px solid var(--line); }
}
@media (max-width:720px) {
    .admin-area .dashboard-nav { position:static; top:auto; max-height:none; overflow:visible; }
}
@media (min-width:701px) and (max-width:1050px) {
    .admin-quick-nav { flex-wrap:wrap; }
    .admin-quick-nav a { flex:1 1 auto; }
}
@media (max-width:900px) { .recipe-admin-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } .recipe-admin-filters .field:first-child { grid-column:1 / -1; } }
@media (max-width:700px) {
    .bulk-action-bar { align-items:stretch; flex-direction:column; }
    .bulk-action-bar .field,
    .bulk-action-bar .button { width:100%; }
    .recipes-admin-page .editor-header-actions { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .recipes-admin-page .editor-header-actions .button { width:100%; min-width:0; }
    .recipes-admin-page .dashboard-table-wrap { overflow-x:visible; }
    .recipes-admin-page .dashboard-table, .recipes-admin-page .dashboard-table thead, .recipes-admin-page .dashboard-table tbody, .recipes-admin-page .dashboard-table tr, .recipes-admin-page .dashboard-table th, .recipes-admin-page .dashboard-table td { display:block; width:100%; }
    .recipes-admin-page .dashboard-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
    .recipes-admin-page .dashboard-table tr { margin-bottom:.8rem; padding:.75rem; background:#fff; border:1px solid var(--line); border-radius:.75rem; }
    .recipes-admin-page .dashboard-table td, .recipes-admin-page .dashboard-table th { padding:.25rem 0; border:0; text-align:left; }
    .recipes-admin-page .table-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .recipes-admin-page .table-actions form { display:contents; }
    .recipes-admin-page .table-actions .button { width:100%; min-height:38px; }
    .trash-bulk-bar { align-items:stretch; }
    .trash-bulk-bar label, .trash-bulk-bar select, .trash-bulk-bar .button { width:100%; }
    .trash-page .editor-header-actions { width:100%; display:grid; grid-template-columns:1fr; }
    .trash-page .editor-header-actions form, .trash-page .editor-header-actions .button { width:100%; }
    .trash-page .dashboard-table-wrap { overflow-x:auto; }
}
.wysiwyg-editor:focus { outline:3px solid rgba(182,59,50,.18); border-color:var(--red); }
.wysiwyg-source { display:none; }
.wysiwyg-source.is-visible { display:block; width:100%; min-height:210px; padding:.8rem; color:#302923; background:#fffefb; border:1px solid #d9cec2; border-radius:0 0 .6rem .6rem; font: .84rem/1.55 Consolas, monospace; resize:vertical; }
.mail-settings-intro { display:flex; align-items:flex-start; gap:1rem; width:min(1180px, calc(100% - 5rem)); margin:0 auto 1.5rem; padding:1rem 1.2rem; color:#3e332c; background:linear-gradient(135deg,#fffaf1,#f6eee5); border:1px solid #e7d9ca; border-radius:1rem; }
.mail-settings-page { background:var(--cream) url("../images/pattern-red.png") repeat; background-blend-mode:soft-light; }
.mail-settings-page .editor-header { background:linear-gradient(135deg,rgba(134,48,39,.97),rgba(182,59,50,.94)); color:#fff9ec; border-radius:0 0 1.25rem 1.25rem; padding:1.35rem clamp(1.2rem,4vw,2.5rem); box-shadow:0 8px 20px rgba(92,54,34,.18); }
.mail-settings-page .editor-header h1,.mail-settings-page .editor-header p,.mail-settings-page .editor-header .eyebrow { color:#fff9ec; }
.mail-settings-page .editor-header .button { color:#fff9ec; border-color:rgba(255,249,236,.65); }
.mail-settings-page .mail-settings-intro { color:#332b27; background:linear-gradient(135deg,#fffaf1,#f6eee5); border-color:#e7d9ca; box-shadow:0 8px 18px rgba(92,54,34,.14); }
.mail-settings-page .mail-settings-intro p { color:#6e5f54; }
.mail-settings-page .editor-card { border-color:#d9b9a5; box-shadow:0 10px 24px rgba(92,54,34,.11); }
.mail-settings-page .editor-section-heading { background:linear-gradient(90deg,#fff7ed,#fffdf7); border-radius:.7rem; }
.mail-settings-page .mail-template-actions { border-top-color:#e2cfc1; }
.mail-settings-intro-icon { display:grid; place-items:center; width:2.5rem; height:2.5rem; flex:0 0 2.5rem; color:#fff; background:var(--red); border-radius:.7rem; }
.mail-settings-intro h2 { margin:0 0 .25rem; font-size:1.1rem; }
.mail-settings-intro p { margin:0; color:#6e5f54; font-size:.85rem; }
.mail-settings-page .editor-card { margin-bottom:1rem; }
.mail-settings-page .editor-card .editor-section-heading { padding-bottom:.8rem; border-bottom:1px solid #eee4da; }
.mail-settings-page .editor-section-heading > span .ui-icon { width:1.35rem; height:1.35rem; stroke-width:2.2; }
.mail-template-icon { background:#b63b32; }
.mail-template-icon-password_reset { background:#5b6f8b; }
.mail-template-icon-team_message { background:#477b7a; }
.mail-template-icon-recipe_status { background:#bf7b2e; }
.mail-template-form { display:grid; grid-template-columns:1fr; gap:1rem; }
.mail-template-form > .field { width:100%; }
.mail-template-form > .field:first-of-type { max-width:760px; }
.mail-template-form .wysiwyg-field { margin-top:.25rem; }
.mail-template-form .check-field { margin-top:.15rem; }
.mail-template-form .mail-template-actions { justify-content:flex-start; padding-top:.25rem; border-top:1px solid #eee4da; }
.mail-template-actions { display:flex; flex-wrap:wrap; gap:.55rem; align-items:center; }
.password-control { display:flex; align-items:stretch; gap:.35rem; }
.password-control input { min-width:0; flex:1; }
.password-toggle { min-height:40px !important; padding:.45rem .65rem !important; }
.test-email-field { min-width:260px; margin:0; }
@media (max-width:700px) { .mail-template-actions { align-items:stretch; flex-direction:column; } .mail-template-actions .test-email-field, .mail-template-actions .button { width:100%; } }
.email-preview-dialog { width:min(720px, calc(100% - 2rem)); padding:0; color:#332a24; background:transparent; border:0; border-radius:1rem; box-shadow:0 22px 60px rgba(38,28,22,.3); }
.email-preview-dialog::backdrop { background:rgba(38,28,22,.48); backdrop-filter:blur(2px); }
.email-preview-window { overflow:hidden; background:#fffdf9; border:1px solid #e7d9ca; border-radius:1rem; }
.email-preview-window header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.2rem 1.35rem; background:#f5eee6; border-bottom:1px solid #e7d9ca; }
.email-preview-window header h2 { margin:0; font-size:1.25rem; }
.email-preview-meta { padding:1rem 1.35rem; background:#fff; border-bottom:1px solid #eee4da; }
.email-preview-body { min-height:220px; padding:1.5rem; background:#e96868 url("../images/pattern-red.png") repeat; line-height:1.6; }
.email-editor-canvas { overflow:hidden; max-width:720px; margin:.35rem auto 0; padding:1rem; background:#e96868 url("../images/pattern-red.png") repeat; border-radius:14px; }
.email-editor-card { overflow:hidden; background:#fffdf9; border:1px solid #ead8c8; border-radius:10px; box-shadow:0 10px 28px rgba(92,54,34,.12); }
.email-editor-header { padding:1.2rem 1rem; text-align:center; color:#fff9ec; background:#b63b32 url("../images/pattern-red.png") repeat; border-bottom:4px solid #e86567; }
.email-editor-header img { width:58px; height:58px; object-fit:contain; margin:0 auto .4rem; }
.email-editor-header strong { display:block; font:700 1.25rem/1.15 Georgia,serif; }
.email-editor-content { min-height:220px; padding:1.4rem 1.6rem; background:#fffdf9; color:#332b27; }
.email-editor-content a { display:inline-block; padding:.5rem .9rem; color:#fff9ec; background:#b63b32; border-radius:999px; text-decoration:none; font-weight:700; }
.email-editor-content .wysiwyg-editor { min-height:180px; padding:0; border:0; box-shadow:none; background:transparent; }
.email-editor-footer { padding:.85rem 1rem; text-align:center; color:#795d4e; background:#fff7ed; border-top:1px solid #ead8c8; font-size:.78rem; }
.email-editor-footer a { color:#863027; text-decoration:none; margin:0 .3rem; }
.email-exact-preview { margin-top:1.25rem; padding-top:1.15rem; border-top:1px solid #ead8c8; }
.email-exact-preview h3 { margin:0 0 .25rem; color:#863027; font-size:1.05rem; }
.email-exact-preview p { margin:0 0 .7rem; color:#746962; font-size:.85rem; }
.email-exact-preview iframe { display:block; width:100%; min-height:610px; border:1px solid #ead8c8; border-radius:10px; background:#e96868 url("../images/pattern-red.png") repeat; }
@media (max-width: 720px) {
    .theme-choice-grid { grid-template-columns:1fr; }
}

/* Contraste unificado de las acciones del panel privado. Los colores se
   mantienen explícitos por tema para que texto, iconos y estados sean legibles
   incluso con fondos claros o con las paletas alternativas. */
.admin-area {
    --admin-action: #7a2722;
    --admin-action-hover: #551b18;
    --admin-action-text: #fff;
    --admin-outline-text: #4f211d;
    --admin-danger: #8f241d;
    --admin-danger-hover: #6d1814;
}
.admin-theme-slate {
    --admin-action: #1f5267;
    --admin-action-hover: #153b4b;
    --admin-outline-text: #173d4e;
    --admin-danger: #8b2929;
    --admin-danger-hover: #681c1c;
}
.admin-theme-botanical {
    --admin-action: #2f5a3d;
    --admin-action-hover: #21412c;
    --admin-outline-text: #23452f;
    --admin-danger: #8a3028;
    --admin-danger-hover: #681f1b;
}
.admin-theme-ocean {
    --admin-action: #17627d;
    --admin-action-hover: #10465a;
    --admin-outline-text: #174b5e;
    --admin-danger: #a13b3b;
    --admin-danger-hover: #792626;
}
.admin-theme-lavender {
    --admin-action: #694e94;
    --admin-action-hover: #4d3771;
    --admin-outline-text: #563f79;
    --admin-danger: #a13b55;
    --admin-danger-hover: #7c2940;
}
.admin-theme-vintage {
    --admin-action: #8a4d31;
    --admin-action-hover: #683722;
    --admin-outline-text: #713e29;
    --admin-danger: #9a3529;
    --admin-danger-hover: #74251d;
}
.admin-area .button,
.admin-area button.button {
    color: var(--admin-outline-text);
    background: #fff;
    border-color: var(--admin-action);
}
.admin-area .button-primary,
.admin-area button.button-primary {
    color: var(--admin-action-text) !important;
    background: var(--admin-action) !important;
    border-color: var(--admin-action) !important;
}
.admin-area .button-danger,
.admin-area .review-reject {
    color: var(--admin-danger) !important;
    background: transparent !important;
    border-color: var(--admin-danger) !important;
}
.admin-area .button-ghost {
    color: var(--admin-outline-text) !important;
    background: #fff !important;
    border-color: var(--admin-action) !important;
}
.admin-area .button-primary:hover,
.admin-area .button-primary:focus-visible,
.admin-area button.button-primary:hover,
.admin-area button.button-primary:focus-visible {
    color: #fff !important;
    background: var(--admin-action-hover) !important;
    border-color: var(--admin-action-hover) !important;
}
.admin-area .button-danger:hover,
.admin-area .button-danger:focus-visible,
.admin-area .review-reject:hover,
.admin-area .review-reject:focus-visible {
    color: #fff !important;
    background: var(--admin-danger-hover) !important;
    border-color: var(--admin-danger-hover) !important;
}
.admin-area .button-danger:hover,
.admin-area .button-danger:focus-visible { color:#fff !important; background:var(--admin-danger) !important; border-color:var(--admin-danger) !important; }
.admin-area .button-danger:disabled { opacity:.5; cursor:not-allowed; background:transparent !important; color:var(--admin-danger) !important; }
.admin-area .button-ghost:hover,
.admin-area .button-ghost:focus-visible {
    color: #fff !important;
    background: var(--admin-action-hover) !important;
    border-color: var(--admin-action-hover) !important;
}
.admin-area .button:focus-visible,
.admin-area .wysiwyg-toolbar button:focus-visible,
.admin-area .move-row:focus-visible,
.admin-area .add-row:focus-visible,
.admin-area .remove-row:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--admin-action) 38%, transparent);
    outline-offset: 2px;
}
/* Los botones forman un bloque único: icono y texto quedan centrados en ambos ejes. */
.button { gap:.4rem; line-height:1.15; text-align:center; }
.button .ui-icon { display:inline-flex; flex:0 0 auto; align-self:center; width:1.2em; height:1.2em; margin:0; vertical-align:middle; }
.table-actions .button { gap:.3rem; }
/* También se aplica a controles que no usan la clase .button. */
.hero-search button,
.cookie-actions button,
.cookie-manage button,
.nav-logout button,
.recipe-toolbar button,
.wysiwyg-toolbar button,
.move-row,
.remove-row,
.add-row,
.print-actions button { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; line-height:1.15; text-align:center; }
.admin-area .recipe-status-filters a[aria-current="page"] {
    color: #fff !important;
    background: var(--admin-action) !important;
    border-color: var(--admin-action) !important;
}
.admin-area .recipe-status-filters a:hover,
.admin-area .recipe-status-filters a:focus-visible {
    color: var(--admin-outline-text);
    background: #fff;
    border-color: var(--admin-action);
}
.admin-area .move-row,
.admin-area .remove-row,
.admin-area .add-row {
    color: var(--admin-outline-text);
    background: #fff;
    border-color: var(--admin-action);
}
.admin-area .move-row:hover,
.admin-area .move-row:focus-visible,
.admin-area .add-row:hover,
.admin-area .add-row:focus-visible {
    color: #fff;
    background: var(--admin-action-hover);
    border-color: var(--admin-action-hover);
}
.admin-area .remove-row:hover,
.admin-area .remove-row:focus-visible {
    color: #fff;
    background: var(--admin-danger-hover);
    border-color: var(--admin-danger-hover);
}
.admin-area .wysiwyg-toolbar button {
    color: #332a24;
    background: #fff;
    border-color: #b8aaa0;
}
.admin-area .wysiwyg-toolbar button:hover,
.admin-area .wysiwyg-toolbar button:focus-visible {
    color: #fff;
    background: var(--admin-action-hover);
    border-color: var(--admin-action-hover);
}
.admin-area .dashboard-nav a:hover,
.admin-area .dashboard-nav a:focus-visible {
    color: #fff;
    background: var(--admin-action-hover);
}
.admin-area .dashboard-nav a b {
    color: #fff;
    background: var(--admin-action);
}
.admin-area .dashboard-nav a:hover b,
.admin-area .dashboard-nav a:focus-visible b {
    color: var(--admin-action-hover);
    background: #fff;
}
.settings-form { display: grid; gap: 1rem; width: min(900px, calc(100% - 5rem)); margin-inline: auto; }
.theme-options { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:1rem; }
.theme-option { position:relative; display:block; padding:1rem; background:#fff; border:2px solid #e3d9cf; border-radius:.9rem; cursor:pointer; transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.theme-option:hover { border-color:#c98a63; box-shadow:0 8px 18px rgba(83,55,37,.1); transform:translateY(-2px); }
.theme-option:focus-within { border-color:var(--red); box-shadow:0 0 0 3px rgba(182,59,50,.18); }
.theme-option:has(input:checked) { border-color:var(--red); outline:3px solid rgba(182,59,50,.12); }
.theme-option input { position:absolute; top:1rem; right:1rem; width:18px; height:18px; accent-color:var(--red); }
.theme-option strong { display:block; margin-top:.7rem; padding-right:1.5rem; color:#3e332c; font-size:.95rem; }
.theme-option small { display:block; margin-top:.3rem; color:#75685f; font-size:.76rem; line-height:1.4; }
.theme-swatch { display: grid; grid-template-columns: .55fr 1fr; grid-template-rows: 22px 44px; overflow: hidden; border: 1px solid #d7d2cb; border-radius: 7px; }
.theme-swatch i:first-child { grid-column: 1 / -1; background: #fff8ed; border-bottom: 1px solid #ddd2c4; }
.theme-swatch i:nth-child(2) { background: #b63b32; }
.theme-swatch i:last-child { background: #fff; }
.theme-sample-clean .theme-swatch i:first-child { background: #fff; }
.theme-sample-clean .theme-swatch i:nth-child(2) { background: #eceae6; }
.theme-sample-notebook .theme-swatch { background: repeating-linear-gradient(to bottom, #f8f0df 0, #f8f0df 10px, #d8dfe0 11px); }
.theme-sample-notebook .theme-swatch i { opacity: .72; }
.theme-sample-mediterranean .theme-swatch i:first-child { background: #fff7e8; }
.theme-sample-mediterranean .theme-swatch i:nth-child(2) { background: #174f63; }
.theme-sample-mediterranean .theme-swatch i:last-child { background: #ce6d4f; }
.theme-sample-botanical .theme-swatch i:first-child { background: #f4f3e9; }
.theme-sample-botanical .theme-swatch i:nth-child(2) { background: #536f52; }
.theme-sample-botanical .theme-swatch i:last-child { background: #d8dfc8; }
.theme-sample-vintage .theme-swatch i:first-child { background: #f7e7bd; }
.theme-sample-vintage .theme-swatch i:nth-child(2) { background: #146c70; }
.theme-sample-vintage .theme-swatch i:last-child { background: #e7a92f; }
.recipe-style-sample-editorial .theme-swatch i:first-child { background: #f5f1eb; }
.recipe-style-sample-editorial .theme-swatch i:nth-child(2) { background: #7d6d5d; }
.recipe-style-sample-editorial .theme-swatch i:last-child { background: #fff; }
.recipe-style-sample-minimal .theme-swatch i:first-child { background: #fff; }
.recipe-style-sample-minimal .theme-swatch i:nth-child(2) { background: #c8ccd1; }
.recipe-style-sample-minimal .theme-swatch i:last-child { background: #f8f9fa; }
.recipe-style-sample-notebook .theme-swatch { background: repeating-linear-gradient(to bottom, #fffaf0 0, #fffaf0 10px, #d8dfe0 11px); }
.recipe-style-sample-notebook .theme-swatch i { opacity: .72; }
.settings-stack { display: grid; gap: 1rem; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
form.mail-template-form { grid-template-columns: minmax(0, 1fr); }
.watermark-required { margin: 0; padding: .8rem; color: #175f35; background: #eff9f2; border: 1px solid #a8d5b8; border-radius: 9px; font-size: .8rem; }
.watermark-preview { position: relative; width: min(620px, 100%); margin: 0; overflow: hidden; background: #eee; border: 1px solid var(--line); border-radius: 12px; }
.watermark-preview > img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.watermark-preview figcaption { position: absolute; top: 50%; left: 0; right: 0; display: grid; gap: .05rem; justify-items: center; padding: clamp(.45rem, 3vw, 1rem); color: #332b27; background: rgba(255,255,255,.67); transform: translateY(-50%); text-align: center; }
.watermark-preview .watermark-preview-logo { display: block; width: min(90%, 540px); height: auto; }
.watermark-preview .watermark-preview-logo[hidden] { display: none; }
.watermark-preview strong { color: #8b2d22; font-size: clamp(.9rem, 3vw, 1.65rem); line-height: 1.1; }
.watermark-preview small { min-height: 1em; font-size: clamp(.58rem, 1.8vw, .8rem); }
.editor-integration-link { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; padding: .7rem .8rem; background: #f8f6f2; border: 1px solid var(--line); border-radius: 9px; font-size: .76rem; }
.editor-integration-link .button { flex: 0 0 auto; padding: .45rem .7rem; }
.integration-state { margin-bottom: 1rem; padding: .9rem; border: 1px solid var(--line); border-radius: 9px; }
.integration-state p { margin: .25rem 0; font-size: .8rem; }
.integration-state code { display: block; overflow-wrap: anywhere; font-size: .72rem; }
.integration-state-ok { color: #175f35; background: #eff9f2; border-color: #a8d5b8; }
.integration-state-warning { color: #725300; background: #fff9e6; border-color: #e5cf85; }
.youtube-upload-form { display: grid; gap: 1rem; }
.upload-progress { display: grid; gap: .35rem; }
.upload-progress progress { width: 100%; height: 14px; accent-color: var(--red); }
.upload-progress span,
.integration-note,
.field-note { color: var(--muted); font-size: .75rem; }
.canonical-preview { margin: 0 0 1rem; padding: .75rem .85rem; overflow-wrap: anywhere; background: #f8f6f2; border: 1px solid var(--line); border-radius: 9px; font-size: .78rem; }
.canonical-preview a { color: var(--red-dark); font-weight: 800; }
.social-card-preview { display: grid; grid-template-columns: minmax(180px, .85fr) minmax(0, 1.15fr); width: min(760px, 100%); margin: 0 0 1.2rem; overflow: hidden; background: #fff; border: 1px solid #d8d8d8; border-radius: 12px; box-shadow: 0 8px 20px rgba(40,40,40,.08); }
.social-card-preview > img,
.social-card-placeholder { width: 100%; height: 100%; min-height: 190px; aspect-ratio: 1.91 / 1; object-fit: cover; background: #eee; }
.social-card-placeholder { display: grid; place-items: center; padding: 1rem; color: var(--muted); font-size: .75rem; text-align: center; }
.social-card-preview > div:last-child { display: grid; align-content: center; gap: .35rem; min-width: 0; padding: 1rem; }
.social-card-preview small { color: #6b6b6b; font-size: .65rem; overflow-wrap: anywhere; }
.social-card-preview strong { color: #222; font-size: 1rem; line-height: 1.25; }
.social-card-preview p { display: -webkit-box; margin: 0; overflow: hidden; color: #555; font-size: .76rem; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.youtube-upload-form button:disabled { cursor: wait; opacity: .65; }
.youtube-privacy-lock { margin: 0; padding: .7rem .8rem; color: #175f35; background: #eff9f2; border: 1px solid #a8d5b8; border-radius: 10px; font-size: .8rem; font-weight: 400; }
.messages-layout { display: grid; grid-template-columns: 330px minmax(0, 1fr); width: min(1180px, calc(100% - 5rem)); min-height: 620px; margin-inline: auto; overflow: hidden; background: #fff; border: 1px solid #e1dcd4; border-radius: 12px; }
.conversation-list { min-width: 0; background: #f8f6f2; border-right: 1px solid var(--line); }
.conversation-list-heading { display: flex; align-items: center; justify-content: space-between; padding: 1rem; border-bottom: 1px solid var(--line); }
.conversation-list-heading h2 { margin: 0; color: #403a35; font-family: var(--font-body); font-size: 1rem; }
.conversation-list-heading > span { color: var(--muted); font-size: .72rem; }
.conversation-list nav { display: grid; max-height: 700px; overflow-y: auto; }
.conversation-link { position: relative; display: grid; gap: .2rem; padding: .85rem 1rem; color: var(--ink); border-bottom: 1px solid var(--line); text-decoration: none; }
.conversation-link:hover,
.conversation-link:focus-visible { background: #fff; }
.conversation-link.is-active { background: #fff; box-shadow: inset 4px 0 var(--red); }
.conversation-title { padding-right: 4rem; font-size: .82rem; font-weight: 900; }
.conversation-meta,
.conversation-count { color: var(--muted); font-size: .67rem; }
.conversation-link .unread-badge { position: absolute; top: .8rem; right: .7rem; }
.message-thread { display: grid; grid-template-rows: auto 1fr auto; min-width: 0; }
.message-thread-empty { align-self: center; padding: 2rem; text-align: center; }
.message-thread-empty h2 { color: var(--red-dark); font-family: var(--font-body); }
.message-thread-empty p { color: var(--muted); }
.message-thread-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; border-bottom: 1px solid var(--line); }
.message-thread-header h2 { margin: 0; color: #403a35; font-family: var(--font-body); font-size: 1.1rem; }
.message-thread-header p { margin: .2rem 0 0; color: var(--muted); font-size: .72rem; }
.message-list { display: flex; flex-direction: column; gap: .8rem; max-height: 620px; margin: 0; padding: 1.2rem; overflow-y: auto; list-style: none; background: #fffdf9; }
.message-item { align-self: flex-start; width: min(78%, 620px); padding: .8rem .9rem; background: #fff; border: 1px solid var(--line); border-radius: 4px 12px 12px 12px; }
.message-item.is-own { align-self: flex-end; background: #f8eee5; border-color: #e6cabb; border-radius: 12px 4px 12px 12px; }
.message-author { display: flex; align-items: baseline; gap: .45rem; }
.message-author strong { font-size: .76rem; }
.message-author span,
.message-item time { color: var(--muted); font-size: .64rem; }
.message-item p { margin: .4rem 0; font-size: .82rem; }
.message-item time { display: block; text-align: right; }
.message-empty { margin: auto; color: var(--muted); text-align: center; }
.message-compose { display: grid; gap: .7rem; padding: 1rem 1.2rem; background: #fff; border-top: 1px solid var(--line); }
.message-compose > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.message-compose small { color: var(--muted); }

:focus-visible { outline: 4px solid #2d66b3; outline-offset: 4px; }

@media (max-width: 900px) {
    .site-header, main, .site-footer { width: calc(100% - 2rem); }
    .hero { min-height: auto; }
    .hero-inner { grid-template-columns: 1fr; padding-block: 3rem; }
    .hero-art { width: min(430px, 100%); min-height: auto; aspect-ratio: 1; margin-inline: auto; }
    .hero-art img { width: min(390px, 80%); }
    .category-grid { grid-template-columns: repeat(2, 1fr); }
    .category-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        justify-self: center;
        width: calc((100% - 1.35rem) / 2);
    }
    .recipe-feature { grid-template-columns: 1fr; }
    .recipe-feature-image { min-height: 380px; }
    .recipe-hero { grid-template-columns: 1fr; }
    .recipe-hero figure { grid-row: 1; }
    .category-admin-layout { grid-template-columns: 1fr; }
    .category-recipe-grid { grid-template-columns: 1fr; }
    .recipe-layout { grid-template-columns: 1fr; }
    .ingredients-card { position: static; }
}

@media (max-width: 860px) {
    .menu-toggle { display: block; }
    .main-nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: .8rem 1rem 1rem;
        background: var(--paper);
        border-bottom: 1px solid var(--line);
        box-shadow: 0 14px 22px rgba(79,47,30,.12);
    }
    .main-nav.is-open { display: flex; }
    .main-nav a { padding: .8rem; }
    .main-nav a::after { display: none; }
    .main-nav .nav-account { border-radius: 10px; }
    .nav-logout button { width: 100%; padding: .8rem; text-align: left; border: 0; border-radius: 0; }
    .dashboard-stats { grid-template-columns: repeat(2, 1fr); }
    .editor-workspace { grid-template-columns: 1fr; }
    .review-layout { grid-template-columns: 1fr; }
    .review-sidebar { position: static; }
    .messages-layout { grid-template-columns: 280px minmax(0, 1fr); }
    .editor-sidebar { position: static; }
    .editor-section-nav { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .editor-section-nav a { display: flex; justify-content: center; padding: .35rem; }
    .editor-section-nav a span { flex: 0 0 auto; }
    .editor-section-nav a { font-size: 0; }
    .editor-sidebar-title,
    .editor-sidebar-help { display: none; }
    .theme-options { grid-template-columns: 1fr; }
    .editor-integration-link { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 720px) {
    .dashboard-workspace { width:calc(100% - 2rem); grid-template-columns:1fr; }
    .dashboard-nav { position:static; grid-template-columns:repeat(2, minmax(0,1fr)); }
    .dashboard-nav-title { grid-column:1/-1; }
    .author-page { width:calc(100% - 2rem); }
    .author-hero { align-items:flex-start; flex-direction:column; }
    .settings-grid { grid-template-columns: 1fr; }
    .cookie-banner { grid-template-columns: 1fr; }
    .cookie-actions { justify-content: stretch; }
    .cookie-actions button { flex: 1 1 9rem; }
    body { font-size: 17px; }
    .site-header, main, .site-footer { width: 100%; }
    .header-inner { min-height: 76px; }
    .brand .brand-logo { width: 58px; height: 58px; }
    .brand-wordmark { width: min(260px, 38vw); }
    .brand small { display: none; }
    .hero-inner { gap: .5rem; }
    .hero-copy { text-align: center; }
    .hero-lead { margin-inline: auto; }
    .hero-search { margin-inline: auto; }
    .hero-actions { justify-content: center; }
    .hero-art { width: min(360px, 92vw); min-height: auto; }
    .hero-note { right: 2%; bottom: 3%; font-size: 1rem; }
    .section { padding-block: 4.3rem; }
    .category-grid { grid-template-columns: 1fr; }
    .category-card:last-child:nth-child(odd) {
        grid-column: auto;
        width: 100%;
    }
    .recipe-meta, .recipe-meta.compact { grid-template-columns: repeat(2, 1fr); }
    .story-inner { grid-template-columns: 1fr; gap: 1rem; text-align: center; }
    .story-inner img { width: 130px; margin: auto; }
    .footer-inner { flex-direction: column; align-items: flex-start; }
    .site-footer nav { flex-wrap: wrap; }
    .recipe-page h1 { font-size: clamp(2.1rem, 8.5vw, 2.7rem); }
    .dashboard-header { align-items: flex-start; flex-direction: column; }
    .dashboard-user-actions { width: 100%; flex-wrap: wrap; }
    .dashboard-identity { flex-basis: 100%; width: 100%; max-width: none; margin-left: 0; text-align: left; }
    .dashboard-panel-heading { flex-direction: column; }
    .editor-header { flex-direction: column; }
    .editor-header-actions { justify-content: flex-start; }
    .editor-grid { grid-template-columns: 1fr; }
    .review-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .step-media-grid { grid-template-columns: 1fr; }
    .field-wide { grid-column: auto; }
}

@media (max-width: 480px) {
    .header-inner,
    .footer-inner,
    .hero-inner,
    .section,
    .story-inner,
    .breadcrumbs,
    .recipe-hero,
    .recipe-page > .recipe-meta,
    .recipe-layout,
    .recipe-video {
        width: calc(100% - 2rem);
    }
    .category-hero { width: 100%; }
    .category-recipes { width: calc(100% - 2rem); }
    .categories-directory { width: calc(100% - 2rem); }
    .content-page-header,
    .content-page-body { width: calc(100% - 2rem); }
    .category-directory-card { min-height: 360px; }
    .dashboard-header,
    .dashboard-stats,
    .dashboard-panel { width: calc(100% - 2rem); }
    .dashboard-notice,
    .editor-header,
    .recipe-editor,
    .editor-alert,
    .settings-form,
    .review-header,
    .review-alert,
    .review-layout,
    .review-feedback,
    .messages-layout { width: calc(100% - 2rem); }
    .brand-wordmark { width: min(220px, 52vw); }
    .hero h1 { font-size: clamp(1.9rem, 8.5vw, 2.15rem); }
    .hero-search { width: 100%; display: grid; border-radius: 18px; }
    .hero-search input { width: 100%; }
    .hero-search button { border-radius: 13px; }
    .hero-art { width: min(310px, 86vw); min-height: auto; }
    .hero-art img { width: 82%; }
    .hero-plate { width: 94%; }
    .hero-note { right: 0; bottom: 1%; padding: .5rem .85rem; font-size: .9rem; }
    .recipe-feature-image { min-height: 300px; }
    .recipe-feature-copy { padding: 1.5rem; }
    .category-recipe-card { grid-template-columns: 1fr; }
    .category-recipe-image { min-height: 0; }
    .recipe-section-art-steps { width: 100%; height: 78px; margin: -.7rem 0 .1rem; mask-position: right center; -webkit-mask-position: right center; }
    .recipe-section-art-ingredients { height: 105px; margin: -.7rem 0 -.1rem; }
    .latest-heading-row { align-items: flex-start; flex-direction: column; }
    .recipes-directory { width: min(100% - 2rem, var(--page-width)); }
    .recipes-directory-intro { text-align: left; }
    .recipes-directory-filters { grid-template-columns: 1fr; align-items: stretch; }
    .recipes-directory > .recipes-directory-filters,
    .recipes-directory > .recipes-directory-grid,
    .recipes-directory > .recipes-directory-result,
    .recipes-directory > .empty-state { width: calc(100% - 2rem); }
    .latest-recipe-card { flex-basis: calc(100vw - 2rem); }
    .recipe-meta { grid-template-columns: 1fr 1fr; }
    .recipe-meta div { padding: .6rem .7rem; }
    .tata-note { grid-template-columns: 1fr; }
    .tata-note img { width: 78px; }
    .dashboard-stats { grid-template-columns: 1fr 1fr; gap: .65rem; }
    .dashboard-stats article { padding: .8rem; }
    .collection-row { grid-template-columns: 1fr; }
    .collection-row:not(.step-editor-row) { grid-template-columns: 28px minmax(0, 1fr); }
    .collection-row:not(.step-editor-row) .row-actions { grid-column: 2; }
    .remove-row { justify-self: start; }
    .editor-actions { position: static; flex-direction: column; }
    .editor-actions > span { margin-right: 0; text-align: center; }
    .editor-actions .button { width: 100%; }
    .social-card-preview { grid-template-columns: 1fr; }
    .social-card-preview > img,
    .social-card-placeholder { min-height: 0; }
    .review-meta,
    .review-ingredients { grid-template-columns: 1fr; }
    .messages-layout { display: block; }
    .conversation-list { border-right: 0; border-bottom: 1px solid var(--line); }
    .conversation-list nav { max-height: 260px; }
    .message-thread { min-height: 560px; }
    .message-item { width: 90%; }
    .message-compose > div { align-items: stretch; flex-direction: column; }
    .message-compose .button { width: 100%; }
}

/* En tabletas y móviles el encabezado debe coincidir con el ancho real del contenido. */
@media (max-width: 900px) {
    .header-inner { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

@media print {
    @page { size: A4 portrait; margin: 12mm 13mm 14mm; }
    html { scroll-behavior: auto; }
    body { color: #181310; background: #fff; font-family: Georgia, "Times New Roman", serif; font-size: 9.5pt; line-height: 1.38; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
    .site-header, .site-footer, .breadcrumbs, .recipe-toolbar, .recipe-video, .step-video-link { display: none !important; }
    main, .recipe-page { width: 100%; min-height: 0; margin: 0; padding: 0; background: #fff; box-shadow: none; }
    .print-recipe-header { display: flex; align-items: center; justify-content: space-between; gap: 8mm; margin-bottom: 5mm; padding-bottom: 3mm; border-bottom: .6mm solid #b63b32; }
    .print-recipe-header img { width: 78mm; height: auto; }
    .print-recipe-header div { display: grid; gap: .5mm; max-width: 88mm; color: #554942; font-family: Arial, sans-serif; font-size: 7.5pt; text-align: right; overflow-wrap: anywhere; }
    .print-recipe-header strong { color: #863027; font-size: 9pt; text-transform: uppercase; letter-spacing: .08em; }
    .recipe-hero { grid-template-columns: minmax(0, 1fr) 58mm; align-items: start; gap: 8mm; padding: 0 0 5mm; border-bottom: .3mm solid #d8cec4; }
    .recipe-hero-no-image { grid-template-columns: 1fr; }
    .recipe-page h1 { margin: 1mm 0 2.5mm; color: #7e2c24; font-size: 25pt; line-height: 1; }
    .category-pill { padding: 1mm 2.5mm; color: #fff; font-family: Arial, sans-serif; font-size: 7pt; }
    .recipe-hero-copy > p:not(.category-pill) { margin-bottom: 2mm; color: #3e3530; font-size: 9.5pt; }
    .recipe-author { margin-top: 2mm !important; font-family: Arial, sans-serif; font-size: 7.5pt !important; }
    .recipe-hero figure img { aspect-ratio: 4 / 3; border: .8mm solid #fff; border-radius: 2mm; outline: .6mm solid var(--category-color); box-shadow: none; }
    .recipe-hero figcaption { display: none; }
    .recipe-meta { grid-template-columns: repeat(4, 1fr); gap: 0; margin: 4mm 0 6mm; border: .3mm solid #d8cec4; border-radius: 2mm; break-inside: avoid; }
    .recipe-meta div { padding: 2.5mm; border-right: .3mm solid #d8cec4; }
    .recipe-meta div:last-child { border-right: 0; }
    .recipe-meta dt { font-family: Arial, sans-serif; font-size: 6.5pt; }
    .recipe-meta dd { font-size: 10pt; }
    .recipe-layout { grid-template-columns: 58mm minmax(0, 1fr); align-items: start; gap: 7mm; }
    .ingredients-card { position: static; padding: 4mm; background: #fffaf0; border: .7mm solid var(--category-color); border-radius: 2mm; box-shadow: none; break-inside: avoid; }
    .ingredients-card h2, .steps-section > h2 { margin-bottom: 3mm; color: #7e2c24; font-size: 16pt; }
    .eyebrow { margin-bottom: 1mm; font-family: Arial, sans-serif; font-size: 6.5pt; }
    .ingredient-list { gap: 1.7mm; margin-top: 2mm; }
    .ingredient-list li { grid-template-columns: 3mm 1fr; gap: 1.5mm; font-size: 8.5pt; }
    .ingredient-list li span { width: 1.8mm; height: 1.8mm; margin-top: 1.2mm; }
    .steps-list { gap: 2.5mm; }
    .steps-list li { grid-template-columns: 7mm 1fr; gap: 2.5mm; padding-bottom: 2.5mm; break-inside: avoid; }
    .steps-list p { margin-top: .5mm; }
    .step-number { width: 7mm; height: 7mm; color: #fff; border-radius: 50%; font-family: Arial, sans-serif; font-size: 8pt; }
    .step-content img { max-height: 52mm; width: auto; max-width: 100%; margin-top: 2mm; border-radius: 1mm; box-shadow: none; }
    .tata-note { grid-template-columns: 18mm 1fr; gap: 3mm; margin-top: 5mm; padding: 3mm; border-width: .4mm; border-radius: 2mm; break-inside: avoid; }
    .tata-note img { width: 18mm; height: 18mm; }
    .tata-note h2 { font-size: 12pt; }
    .tata-note p { font-size: 8.5pt; }
}
