/* da-web.css — the public web (marketing pages, /manual, directory,
   tools), loaded by layout/marketing.html.php after da-tokens.css (style v2,
   phase 4). Moved out of the layout's inline <style>; the markup and the
   microdata are untouched, so SEO is too. The warm stone is the cool one now
   (D16) and the unused bento section is retired. */

html, body { font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif; color: var(--da-dark); }
html, body { height: 100%; }
/* overflow-x: hidden on html + body — iOS Safari ignores the body-only
   rule when a descendant with position fixed/absolute overflows.
   Setting it on html guarantees the clip at viewport level. */
html { overflow-x: hidden; }
body { display: flex; flex-direction: column; min-height: 100vh; background: #fff; overflow-x: hidden; max-width: 100%; }
main { flex: 1 0 auto; }
footer { flex-shrink: 0; }
.btn-primary { background: var(--da-primary); border-color: var(--da-primary); }
.btn-primary:hover, .btn-primary:focus { background: var(--da-primary-dark); border-color: var(--da-primary-dark); }
/* Soft brand button — the canonical rule lives in layout/_head.html.php;
   repeated here so the public pages draw it too (the home's «Abrir el
   manual» and RGPD buttons rendered as plain text without it). */
.btn-soft-brand { background: var(--da-primary-soft); color: var(--da-primary-dark); border: 1px solid transparent; transition: background-color .12s ease; }
.btn-soft-brand:hover, .btn-soft-brand:focus { background: #d3ecdd; color: var(--da-primary-dark); }
.btn-outline-primary { color: var(--da-primary); border-color: var(--da-primary); }
.btn-outline-primary:hover { background: var(--da-primary); border-color: var(--da-primary); }
.text-brand { color: var(--da-primary) !important; }
.bg-brand-soft { background: var(--da-primary-soft); }
a { color: var(--da-primary); }
a:hover { color: var(--da-primary-dark); }
.link-primary, a.link-primary { color: #166c53 !important; }
.link-primary:hover, a.link-primary:hover { color: var(--da-primary-dark) !important; }
/* btn-link = the brand's dark green; .text-muted gives the neutral role */
.btn-link               { color: var(--da-primary-dark, #14805f); text-decoration: none; }
.btn-link:hover,
.btn-link:focus         { color: #0f5a44; }
.btn-link.text-muted    { color: #6c757d !important; }
.btn-link.text-muted:hover { color: #495057 !important; }

.navbar { backdrop-filter: saturate(180%) blur(10px); background: rgba(255,255,255,.85) !important; border-bottom: 1px solid rgba(15,44,37,.06); }
.navbar-brand { font-weight: 600; letter-spacing: -.02em; }
.navbar-brand .dot { color: var(--da-primary); }

/* Heading scale — tight, consistent ratios */
h1, .h1 { font-size: 1.75rem; line-height: 1.2;  letter-spacing: -.01em; }
h2, .h2 { font-size: 1.4rem;  line-height: 1.25; letter-spacing: -.005em; }
h3, .h3 { font-size: 1.15rem; line-height: 1.3;  }
h4, .h4 { font-size: 1.05rem; line-height: 1.3;  }
h5, .h5 { font-size: 0.95rem; line-height: 1.35; }
h6, .h6 { font-size: 0.85rem; line-height: 1.4;  text-transform: uppercase; letter-spacing: .06em; }

section { padding: 4rem 0; }
section h2 { font-weight: 600; letter-spacing: -.015em; }
.eyebrow { text-transform: uppercase; letter-spacing: .12em; font-weight: 700; font-size: .75rem; color: var(--da-primary); }

.hero { padding-top: 6rem; padding-bottom: 4rem; background:
    radial-gradient(60% 50% at 80% 10%, rgba(26,161,121,.12), transparent 60%),
    radial-gradient(50% 40% at 10% 90%, rgba(255,181,71,.12), transparent 60%);
}
.hero h1 { font-size: clamp(1.9rem, 3.4vw, 2.5rem); font-weight: 600; letter-spacing: -.02em; line-height: 1.1; }
.hero p.lead { font-size: 1.05rem; color: var(--da-muted); }
.hero-mock {
    background: #fff; border-radius: 1.25rem; box-shadow: 0 30px 80px -30px rgba(15,44,37,.25), 0 8px 24px -12px rgba(15,44,37,.15);
    border: 1px solid rgba(15,44,37,.06); overflow: hidden;
}
.hero-mock .topbar { background: #f6f8f7; padding: .6rem .9rem; border-bottom: 1px solid rgba(15,44,37,.06); }
.hero-mock .dot-r { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:.3rem; }
/* The three dots of a mock window's title bar (every screenshot mock). */
.da-wdot { border-radius: 50%; }
.da-wdot--red   { background: #ff5f56 !important; }
.da-wdot--amber { background: #ffbd2e !important; }
.da-wdot--green { background: #27c93f !important; }

/* ── The home hero's picture (style v2): a client's record with three cards
   floating over it (partials/mockups/hero-client). Decorative; it draws its
   lines, fills its ring and lifts its cards once, and holds still with
   prefers-reduced-motion. ─────────────────────────────────────────────── */
.hero-stage { position: relative; padding: 1.5rem 3rem 4.75rem 1rem; }
.hero-stage::before {
    content: ""; position: absolute; inset: 8% 4% 6% 10%; z-index: 0; border-radius: 2rem;
    background: radial-gradient(70% 70% at 70% 30%, color-mix(in srgb, var(--da-primary) 22%, transparent), transparent 70%),
                radial-gradient(60% 60% at 20% 90%, color-mix(in srgb, var(--da-ai) 16%, transparent), transparent 70%);
    filter: blur(24px);
}
.hero-stage__window {
    position: relative; z-index: 1; background: var(--da-surface); border-radius: 1.1rem; overflow: hidden;
    border: 1px solid var(--da-line); box-shadow: var(--sh-4), 0 2px 6px rgba(15, 44, 37, .06);
    transform: perspective(1600px) rotateY(-4deg) rotateX(2deg); transform-origin: 60% 50%;
}
.hero-stage__bar { display: flex; align-items: center; gap: .75rem; padding: .55rem .85rem; background: var(--da-subtle); border-bottom: 1px solid var(--da-line); }
.hero-stage__dots { display: inline-flex; gap: .3rem; }
.hero-stage__dots i { width: 9px; height: 9px; border-radius: 50%; background: var(--da-line-strong); }
.hero-stage__url { flex: 1; font-size: .72rem; color: var(--da-faint); background: var(--da-surface); border: 1px solid var(--da-line); border-radius: 999px; padding: .15rem .65rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hero-stage__url .bi { color: var(--da-primary); margin-right: .2rem; }
.hero-stage__body { padding: 1.1rem 1.15rem 1.2rem; }
.hero-stage__head { display: flex; align-items: center; gap: .7rem; margin-bottom: .95rem; }
.hero-stage__avatar { width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: .85rem; color: #fff; background: linear-gradient(135deg, var(--da-s2), var(--da-primary)); }
.hero-stage__who { flex: 1; min-width: 0; }
.hero-stage__name { font-weight: 700; color: var(--da-ink); line-height: 1.2; }
.hero-stage__meta { font-size: .74rem; color: var(--da-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hero-stage__chip { display: inline-flex; align-items: center; gap: .35rem; font-size: .7rem; font-weight: 600; padding: .2rem .6rem; border-radius: 999px; background: var(--da-good-soft); color: var(--da-good-ink); white-space: nowrap; }
.hero-stage__chip i { width: 6px; height: 6px; border-radius: 50%; background: var(--da-good); }
.hero-stage__kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: .55rem; margin-bottom: .9rem; }
.hero-stage__kpi { border: 1px solid var(--da-line); border-radius: .75rem; padding: .55rem .6rem .35rem; background: var(--da-surface); }
.hero-stage__kpi-label { font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; color: var(--da-faint); }
.hero-stage__kpi-value { font-size: 1.15rem; font-weight: 700; color: var(--da-ink); line-height: 1.15; font-variant-numeric: tabular-nums; }
.hero-stage__kpi-value small { font-size: .7rem; font-weight: 500; color: var(--da-muted); }
.hero-stage__delta { display: inline-block; font-size: .68rem; font-weight: 700; color: var(--da-good-ink); background: var(--da-good-soft); border-radius: 999px; padding: .02rem .45rem; margin-top: .15rem; }
.hero-stage__spark { display: block; width: 100%; height: 30px; margin-top: .2rem; overflow: visible; }
.hero-stage__spark .hero-stage__line { fill: none; stroke: var(--da-primary); stroke-width: 2.2; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 160; stroke-dashoffset: 0; }
.hero-stage__spark .hero-stage__target { stroke: var(--da-primary-deep); stroke-width: 1; stroke-dasharray: 3 3; opacity: .55; vector-effect: non-scaling-stroke; }
.hero-stage__macros { margin-bottom: .8rem; }
.hero-stage__macros-head { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; flex-wrap: wrap; font-size: .76rem; color: var(--da-muted); margin-bottom: .35rem; }
.hero-stage__macros-head strong { color: var(--da-ink); }
.hero-stage__legend { font-size: .68rem; }
.hero-stage__legend i { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin: 0 .2rem 0 .45rem; }
.hero-stage__legend i.p, .hero-stage__stack .p { background: var(--da-protein); }
.hero-stage__legend i.h, .hero-stage__stack .h { background: var(--da-carbs); }
.hero-stage__legend i.g, .hero-stage__stack .g { background: var(--da-fat); }
.hero-stage__stack { display: flex; gap: 3px; height: 9px; border-radius: 999px; overflow: hidden; }
.hero-stage__stack span { display: block; height: 100%; transform-origin: left; }
.hero-stage__meals { list-style: none; margin: 0; padding: 0 6.75rem 0 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: .35rem; } /* room for the phone */
.hero-stage__meals li { display: flex; align-items: center; gap: .55rem; font-size: .78rem; padding: .45rem .6rem; border-radius: .6rem; background: var(--da-subtle); }
.hero-stage__meals .bi { color: var(--da-primary); }
.hero-stage__meal { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--da-ink-2); }
.hero-stage__meal em { font-style: italic; font-weight: 700; color: var(--da-muted); }
.hero-stage__kcal { color: var(--da-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }

.hero-stage__float {
    position: absolute; z-index: 2; display: flex; align-items: center; gap: .65rem;
    background: var(--da-surface); border: 1px solid var(--da-line); border-radius: .9rem;
    padding: .65rem .85rem; box-shadow: 0 18px 40px -18px rgba(15, 44, 37, .35);
}
.hero-stage__float--ring { top: 0; right: 0; }
.hero-stage__float--ai { left: -.5rem; bottom: 2.25rem; background: color-mix(in srgb, var(--da-ai) 6%, var(--da-surface)); border-color: color-mix(in srgb, var(--da-ai) 22%, var(--da-surface)); }
.hero-stage__float-value { font-size: 1.15rem; font-weight: 700; color: var(--da-ink); line-height: 1.1; }
.hero-stage__float-title { font-size: .8rem; font-weight: 700; color: var(--da-ai-ink); line-height: 1.2; }
.hero-stage__float-label { font-size: .7rem; color: var(--da-muted); }
.hero-stage__ring { width: 44px; height: 44px; transform: rotate(-90deg); }
.hero-stage__ring circle { fill: none; stroke-width: 5; }
.hero-stage__ring .track { stroke: var(--da-good-soft); }
.hero-stage__ring .fill { stroke: var(--da-good); stroke-linecap: round; stroke-dasharray: 92 100; }
.hero-stage__ai-icon { width: 34px; height: 34px; border-radius: .6rem; display: inline-flex; align-items: center; justify-content: center; background: var(--da-ai); color: #fff; font-size: 1rem; }

.hero-stage__phone {
    position: absolute; z-index: 3; right: -.25rem; bottom: 0; width: 132px;
    background: var(--da-surface); border: 5px solid var(--da-ink); border-radius: 1.4rem;
    padding: .9rem .6rem .7rem; box-shadow: 0 24px 50px -20px rgba(15, 44, 37, .5);
}
.hero-stage__phone-notch { position: absolute; top: 4px; left: 50%; width: 38px; height: 5px; margin-left: -19px; border-radius: 999px; background: var(--da-ink); }
.hero-stage__phone-head { font-size: .78rem; font-weight: 700; color: var(--da-ink); }
.hero-stage__phone-sub { font-size: .62rem; color: var(--da-muted); margin-bottom: .4rem; }
.hero-stage__phone-item { display: flex; align-items: center; gap: .35rem; font-size: .66rem; padding: .28rem .4rem; border-radius: .45rem; background: var(--da-subtle); margin-bottom: .25rem; color: var(--da-ink-2); }
.hero-stage__phone-item .bi { color: var(--da-ghost); }
.hero-stage__phone-item.is-done .bi { color: var(--da-primary); }
.hero-stage__phone-cta { margin-top: .4rem; text-align: center; font-size: .62rem; font-weight: 600; color: #fff; background: var(--da-primary-dark); border-radius: 999px; padding: .3rem .35rem; }

@media (prefers-reduced-motion: no-preference) {
    .hero-stage__spark .hero-stage__line { animation: hero-stage-draw 1.4s .35s cubic-bezier(.4, 0, .2, 1) both; }
    .hero-stage__ring .fill { animation: hero-stage-ring 1.3s .6s cubic-bezier(.4, 0, .2, 1) both; }
    .hero-stage__stack span { animation: hero-stage-grow .9s .45s cubic-bezier(.4, 0, .2, 1) both; }
    .hero-stage__float, .hero-stage__phone { animation: hero-stage-rise .7s cubic-bezier(.2, .7, .2, 1) both; }
    .hero-stage__float--ring { animation-delay: .5s; }
    .hero-stage__float--ai { animation-delay: .8s; }
    .hero-stage__phone { animation-delay: 1.05s; }
}
@keyframes hero-stage-draw { from { stroke-dashoffset: 160; } to { stroke-dashoffset: 0; } }
@keyframes hero-stage-ring { from { stroke-dasharray: 0 100; } to { stroke-dasharray: 92 100; } }
@keyframes hero-stage-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes hero-stage-rise { from { opacity: 0; transform: translateY(14px) scale(.97); } to { opacity: 1; transform: none; } }

/* Small screens: the window straight, the AI card and the phone left out. */
@media (max-width: 575.98px) {
    .hero-stage { padding: 2.75rem 0 .5rem; }
    .hero-stage__window { transform: none; }
    .hero-stage__float--ai, .hero-stage__phone { display: none; }
    .hero-stage__float--ring { top: -.25rem; right: .25rem; }
    .hero-stage__legend { display: none; }
    .hero-stage__meals { padding-right: 0; }
}

.feature-card { border: 1px solid rgba(15,44,37,.08); border-radius: .875rem; padding: 1.35rem; height: 100%; transition: transform .15s ease, box-shadow .15s ease; background: #fff; }
.feature-card:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -16px rgba(15,44,37,.18); }
.feature-icon { width: 40px; height: 40px; border-radius: .65rem; display: inline-flex; align-items: center; justify-content: center; background: var(--da-primary-soft); color: var(--da-primary); font-size: 1.15rem; margin-bottom: .75rem; }
/* Inline header: icon on the same row as the title. */
.feature-head { display: flex; align-items: center; gap: .75rem; margin-bottom: .6rem; }
.feature-head .feature-icon { margin-bottom: 0; flex: 0 0 auto; }
.feature-head h3 { margin-bottom: 0; }
@media (max-width: 767.98px) { .feature-head { justify-content: center; text-align: center; } }

.step-num { font-weight: 600; font-size: 1.6rem; color: var(--da-primary); letter-spacing: -.03em; }

.price-card { border: 1px solid rgba(15,44,37,.1); border-radius: 1rem; padding: 1.5rem; background: #fff; height: 100%; display: flex; flex-direction: column; }
.price-card.featured { border-color: var(--da-primary); box-shadow: 0 14px 32px -22px rgba(26,161,121,.45); position: relative; }
.price-card.featured .badge-fav { position:absolute; top:-10px; right:1rem; background: var(--da-primary); color:#fff; padding:.25rem .6rem; border-radius:999px; font-size:.72rem; font-weight:700; }
.price-card .price { font-size: 1.9rem; font-weight: 600; letter-spacing: -.02em; }
.price-card ul { list-style: none; padding: 0; margin: 1rem 0 1.25rem; }
.price-card li { padding: .3rem 0; color: var(--da-muted); font-size: .92rem; }
.price-card li i { color: var(--da-primary); margin-right: .4rem; }
.price-card .btn { margin-top: auto; }

.testimonial { background: #fff; border: 1px solid rgba(15,44,37,.08); border-radius: .875rem; padding: 1.35rem; height: 100%; font-size: .95rem; }
.testimonial blockquote { font-size: .95rem; }
.testimonial .stars { color: var(--da-accent); margin-bottom: .5rem; font-size: .85rem; }

/* FAQ — canonical entry in the styleguide as #faq.
   Static cards (content stays visible for SEO). Q badge on the left
   is rendered with ::before so existing markup works as-is. */
.faq-list { display: flex; flex-direction: column; gap: .6rem; }
.faq-item {
    position: relative;
    background: #fff;
    border: 1px solid #eef1ef;
    border-radius: .9rem;
    padding: 1.15rem 1.35rem 1.15rem 3.85rem;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.faq-item::before {
    content: "Q";
    position: absolute;
    left: 1.25rem; top: 1.05rem;
    width: 30px; height: 30px;
    border-radius: 8px;
    background: var(--da-primary-soft, #e8f7f1);
    color: var(--da-primary-dark, #14805f);
    font-size: .82rem; font-weight: 600; letter-spacing: .02em;
    display: flex; align-items: center; justify-content: center;
    line-height: 1;
}
.faq-item:hover {
    border-color: rgba(26,161,121,.25);
    box-shadow: 0 8px 22px rgba(26,161,121,.07);
    transform: translateY(-1px);
}
.faq-item h3 {
    font-size: 1rem;
    font-weight: 700;
    color: #1a2820;
    line-height: 1.4;
    margin: 0 0 .55rem;
}
.faq-answer {
    color: #4a5568;
    line-height: 1.65;
    font-size: .92rem;
}
.faq-answer > :last-child { margin-bottom: 0; }
.faq-answer a { color: var(--da-primary-dark); font-weight: 500; }
.faq-answer a:hover { text-decoration: underline; }
.faq-answer code {
    font-size: .85em;
    background: #f4f6f5;
    padding: .08em .35em;
    border-radius: 4px;
    color: #1a2820;
}
.faq-answer strong { color: #1a2820; }

.cta-band { background: linear-gradient(135deg, var(--da-primary) 0%, var(--da-primary-dark) 100%); color: #fff; border-radius: 1rem; padding: 2.25rem 1.5rem; }
.cta-band h2 { font-size: 1.5rem; }
.cta-band .btn-light { color: var(--da-primary-dark); font-weight: 600; }

/* Result display — large number shown after a calculation */
.fs-result { font-size: 2rem; line-height: 1.1; }

/* Extended spacing — Bootstrap stops at 5 (3rem) */
.pt-6 { padding-top:    4rem !important; }
.pt-7 { padding-top:    5rem !important; }
.pt-8 { padding-top:    6rem !important; }
.pb-6 { padding-bottom: 4rem !important; }
.mt-6 { margin-top:     4rem !important; }
.mt-7 { margin-top:     5rem !important; }

/* Page hero — a lighter variant for inner pages */
.page-hero {
    /* 6.5rem top — the navbar is `fixed-top` (~56-64 px) and sits
       above the document flow; without generous padding the hero's
       eyebrow sticks to the navbar. 6.5rem leaves a comfortable
       cushion on desktop and breathes well on mobile. */
    padding: 6.5rem 0 4.5rem;
    background:
        /* Fade-out to white over the last 30% — keeps the radials from
           ending abruptly against the next section (above all the
           bottom-left blob). */
        linear-gradient(to bottom, transparent 70%, #fff 100%),
        radial-gradient(60% 50% at 80% 10%, rgba(26,161,121,.10), transparent 60%),
        radial-gradient(50% 40% at 10% 90%, rgba(255,181,71,.10), transparent 60%);
}
.page-hero h1 { font-size: clamp(1.7rem, 3vw, 2.25rem); font-weight: 600; letter-spacing: -.02em; }

/* da-alert — status banners used in the login/signup modal.
   The canonical CSS lives in app.html.php; it is repeated here so the
   marketing layout's modals share the same style. */
.da-alert {
    display: flex; align-items: flex-start; gap: .65rem;
    border-radius: .6rem; padding: .75rem 1rem;
    font-size: .875rem; line-height: 1.5;
    border: 1px solid transparent; border-left-width: 3px;
    margin-bottom: 1rem;
}
.da-alert__icon { font-size: 1.1rem; margin-top: .05rem; flex-shrink: 0; line-height: 1; }
.da-alert__body  { flex: 1; min-width: 0; }
.da-alert--success { background: var(--da-primary-soft,#e8f7f1); color: #0d4a34; border-color: rgba(26,161,121,.25); border-left-color: var(--da-primary,#1aa179); }
.da-alert--success .da-alert__icon { color: var(--da-primary,#1aa179); }
.da-alert--danger  { background: var(--da-clay-soft,#fdf0eb); color: #6b2f1c; border-color: rgba(182,107,79,.25); border-left-color: var(--da-clay,#b66b4f); }
.da-alert--danger  .da-alert__icon { color: var(--da-clay,#b66b4f); }
.da-alert--warning { background: var(--da-sand-soft,#fdf7e9); color: #5a420c; border-color: rgba(139,110,42,.25); border-left-color: var(--da-sand,#8b6e2a); }
.da-alert--warning .da-alert__icon { color: var(--da-sand,#8b6e2a); }
.da-alert--info    { background: var(--da-stone-soft,var(--da-stone-soft)); color: #3a3530; border-color: rgba(111,101,92,.2); border-left-color: var(--da-stone,var(--da-stone)); }
.da-alert--info    .da-alert__icon { color: var(--da-stone,var(--da-stone)); }

/* Visible breadcrumb — a thin bar above the hero.
   Drawn only on pages that pass `breadcrumbs` to the layout. The
   bar clears the fixed-top navbar; the first section trims its top
   padding (via .has-breadcrumb) so the cushion is not doubled. */
.da-breadcrumb { padding: 4.75rem 0 .25rem; }
.da-breadcrumb .breadcrumb { --bs-breadcrumb-divider: '\203A'; margin: 0; font-size: .82rem; }
.da-breadcrumb .breadcrumb-item a { color: var(--da-stone); text-decoration: none; }
.da-breadcrumb .breadcrumb-item a:hover { color: var(--da-primary, #1aa179); }
.da-breadcrumb .breadcrumb-item.active { color: #1a2820; font-weight: 500; }
.da-breadcrumb .breadcrumb-item + .breadcrumb-item::before { color: #c2cbc6; padding-right: .4rem; }
.da-breadcrumb .breadcrumb-item + .breadcrumb-item { padding-left: .4rem; }
.has-breadcrumb .page-hero { padding-top: 2rem; }
.has-breadcrumb .pt-8 { padding-top: 2rem !important; } /* .pt-8 (catalogue div or tool section) carries !important */
.has-breadcrumb .int-hero { padding-top: 1.5rem; }

/* Process steps — vertical numbered list (how it works) */
.process-step { display: flex; align-items: flex-start; gap: 1.25rem; }
.process-step-num { flex-shrink: 0; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--da-primary); color: #fff; font-weight: 600; font-size: .85rem; display: inline-flex; align-items: center; justify-content: center; margin-top: .15rem; }
.process-step-connector { width: 2px; height: 1.75rem; background: rgba(26,161,121,.25); margin: .25rem 0 .25rem 1.1rem; }

/* Tag pill — condition / category */
.tag-pill { display: inline-block; background: var(--da-primary-soft); color: var(--da-primary-dark); border-radius: 999px; padding: .25rem .75rem; font-size: .82rem; font-weight: 600; }

/* Alert note — a box with an alert left border */
.alert-note { border-left: 3px solid var(--da-accent); border-radius: 0 .5rem .5rem 0; padding: .65rem .85rem; background: #fff8e8; }
.alert-note .alert-note-title { font-weight: 700; font-size: .82rem; color: #7a5200; margin-bottom: .2rem; }
.alert-note p { font-size: .82rem; color: #5a4000; margin: 0; }

/* Stat pill — compact value + label (macros, metrics) */
.stat-pill { display: inline-flex; flex-direction: column; align-items: center; background: var(--da-primary-soft); border-radius: .6rem; padding: .4rem .6rem; min-width: 3.5rem; }
.stat-pill .stat-val { font-weight: 600; font-size: .95rem; color: var(--da-dark); line-height: 1.1; }
.stat-pill .stat-lbl { font-size: .65rem; color: var(--da-muted); text-transform: uppercase; letter-spacing: .05em; }

/* Auth / signup cards — narrower context, smaller headings */
.auth-card h1 { font-size: 1.35rem; letter-spacing: -.005em; }
.auth-card h2 { font-size: 1.05rem; }

.modal-title { font-size: 1.15rem; font-weight: 700; letter-spacing: -.005em; }

/* Mobile: full-width buttons in nav + hero + CTA band + footer form */
@media (max-width: 575.98px) {
    .navbar .d-flex.gap-2,
    .hero  .d-flex.flex-wrap.gap-2 {
        flex-direction: column;
        width: 100%;
    }
    .navbar .d-flex.gap-2 > .btn,
    .hero  .d-flex.flex-wrap.gap-2 > .btn,
    .cta-band .btn {
        width: 100%;
    }
}

footer { background: var(--da-dark); color: #c8d2cf; padding: 3rem 0 1.5rem; }
footer a { color: #c8d2cf; text-decoration: none; transition: color .15s; }
footer a:hover { color: #fff; }
footer ul { margin: 0; padding: 0; }
footer ul li { padding: .2rem 0; }
.footer-heading { font-size: .78rem; font-weight: 700; color: #fff; text-transform: uppercase; letter-spacing: .12em; margin-bottom: .85rem; }
.footer-brand-line { color: #9bb0aa; font-size: .9rem; line-height: 1.55; max-width: 320px; }
.footer-contact a { display: inline-flex; align-items: center; gap: .4rem; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.08); padding-top: 1.25rem; margin-top: 2rem; font-size: .82rem; color: #8a9994; }
.footer-bottom a { color: #c8d2cf; }
.footer-bottom nav { display: flex; gap: 1.25rem; flex-wrap: wrap; }
@media (max-width: 575.98px) {
    .footer-bottom { flex-direction: column; gap: .65rem; align-items: flex-start !important; }
}

/* Skip-to-content: visually hidden until focused, then pinned to top-left */
.skip-link {
    position: absolute; top: -100px; left: 1rem;
    background: var(--da-dark); color: #fff;
    padding: .5rem .9rem; border-radius: .5rem;
    font-weight: 600; text-decoration: none;
    z-index: 2000; transition: top .15s ease;
}
.skip-link:focus { top: 1rem; color: #fff; outline: 2px solid var(--da-primary); outline-offset: 2px; }

/* ═══════════════════════════════════════════════════════════════
   EXTENSION 2026-05 — utilities + variants for the public web.
   Documented in /styleguide.html#pub-* — whatever is added here must
   be mirrored there. The truth lives here; the book is its mirror.
   ═══════════════════════════════════════════════════════════════ */

/* ── Section backgrounds (siblings of .bg-brand-soft) ── */
.bg-sand-soft  { background: var(--da-sand-soft,  #f1ead7); }
.bg-stone-soft { background: var(--da-stone-soft); }
.bg-clay-soft  { background: var(--da-clay-soft,  #f6e6dd); }

/* ── Container widths (standardises the inline max-widths) ── */
.container-narrow { max-width: 720px; margin-left: auto; margin-right: auto; }
.container-tight  { max-width: 520px; margin-left: auto; margin-right: auto; }

/* ── Page-hero variant: --rich (with a decorative side icon) ── */
.page-hero--rich {
    background: linear-gradient(135deg, var(--da-primary-soft) 0%, #fff 100%);
    padding: 4rem 0 3rem;
}
.page-hero__icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 9rem; height: 9rem;
    background: #fff;
    border-radius: 50%;
    font-size: 4rem;
    box-shadow: 0 4px 24px rgba(15,44,37,.08);
    color: var(--da-primary);
}
.page-hero__icon--clay  { color: var(--da-clay,  #b66b4f); }
.page-hero__icon--sand  { color: var(--da-sand,  #8b6e2a); }
.page-hero__icon--stone { color: var(--da-stone); }

/* Hero particles — optional decorative overlay on .page-hero */
.page-hero--dots {
    position: relative;
}
.page-hero--dots::after {
    content: "";
    position: absolute;
    top: 0; right: 0;
    width: 280px; height: 200px;
    background-image:
        radial-gradient(circle, rgba(26,161,121,.18) 1.5px, transparent 1.6px);
    background-size: 18px 18px;
    opacity: .6;
    pointer-events: none;
    mask-image: radial-gradient(ellipse at top right, #000 30%, transparent 70%);
    -webkit-mask-image: radial-gradient(ellipse at top right, #000 30%, transparent 70%);
}

/* ── Feature icon tones (alternates the earth palette in grids) ── */
.feature-icon--clay  { background: var(--da-clay-soft,  #f6e6dd); color: var(--da-clay,  #b66b4f); }
.feature-icon--sand  { background: var(--da-sand-soft,  #f1ead7); color: var(--da-sand,  #8b6e2a); }
.feature-icon--stone { background: var(--da-stone-soft); color: var(--da-stone); }

/* ── Stat pill tones (same principle as feature-icon) ── */
.stat-pill--clay  { background: var(--da-clay-soft,  #f6e6dd); }
.stat-pill--clay  .stat-val  { color: #6c2f17; }
.stat-pill--sand  { background: var(--da-sand-soft,  #f1ead7); }
.stat-pill--sand  .stat-val  { color: #5a4514; }
.stat-pill--stone { background: var(--da-stone-soft); }
.stat-pill--stone .stat-val  { color: #3a342d; }

/* ── da-mark — a hand-drawn brand stroke behind a keyword ──
     Usage: <h1>text with a <mark class="da-mark">keyword</mark> highlighted</h1>
     The encoded SVG is a semi-translucent curved green stroke. */
.da-mark {
    background: transparent;
    color: inherit;
    padding: 0 .15em;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 12' preserveAspectRatio='none'%3E%3Cpath d='M2,9 Q30,2 55,7 T98,5' stroke='%231aa179' stroke-opacity='.42' stroke-width='4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: 0 88%;
    background-size: 100% .38em;
}
.da-mark--clay {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 12' preserveAspectRatio='none'%3E%3Cpath d='M2,9 Q30,2 55,7 T98,5' stroke='%23b66b4f' stroke-opacity='.42' stroke-width='4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}
.da-mark--sand {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 12' preserveAspectRatio='none'%3E%3Cpath d='M2,9 Q30,2 55,7 T98,5' stroke='%238b6e2a' stroke-opacity='.42' stroke-width='4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* Step number color variants — rotating tones on .step-num */
.step-num--clay  { color: var(--da-clay,  #b66b4f); }
.step-num--sand  { color: var(--da-sand,  #8b6e2a); }
.step-num--stone { color: var(--da-stone); }

/* Eyebrow color variants — for sections with a non-green background */
.eyebrow--clay  { color: var(--da-clay,  #b66b4f); }
.eyebrow--sand  { color: var(--da-sand,  #8b6e2a); }
.eyebrow--stone { color: var(--da-stone); }

/* ── Section divider — a thin SVG swoop between sections.
     Usage: <div class="section-divider"></div> between two <section>s. */
.section-divider {
    height: 36px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 36' preserveAspectRatio='none'%3E%3Cpath d='M0,18 Q300,4 600,18 T1200,18' stroke='%231aa179' stroke-opacity='.18' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
}
.section-divider--clay {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 36' preserveAspectRatio='none'%3E%3Cpath d='M0,18 Q300,4 600,18 T1200,18' stroke='%23b66b4f' stroke-opacity='.22' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
}


/* Utilities for what views used to write in style="" (2026-10-08); the same
   as da-app.css, which this surface does not load. */
.fs-2xs        { font-size: var(--fs-2xs) !important; }
.fs-xs         { font-size: var(--fs-xs) !important; }
.fs-sm         { font-size: var(--fs-sm) !important; }
.fs-md         { font-size: var(--fs-md) !important; }
.fs-lg         { font-size: var(--fs-lg) !important; }
.fs-xl         { font-size: var(--fs-xl) !important; }
.text-pre-wrap { white-space: pre-wrap !important; }
.text-pre-line { white-space: pre-line !important; }
.cursor-pointer { cursor: pointer !important; }
.tracking-wide { letter-spacing: .08em !important; }

/* ── Page styles of the public web, moved from their views (2026-10-08) ── */
/* ── features/show.html.php ── */
    .producto-subnav {
        background: #fff;
        border-bottom: 1px solid #eef1ef;
        padding: .65rem 0;
    }
    .producto-subnav__scroll {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: .35rem;
    }
    /* Móvil: línea única con scroll horizontal, sticky bajo el navbar */
    @media (max-width: 767.98px) {
        .producto-subnav {
            position: sticky;
            top: 56px; /* altura del navbar fixed-top */
            z-index: 1020;
        }
        .producto-subnav__scroll {
            flex-wrap: nowrap;
            justify-content: flex-start;
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
            padding: 0 1rem; /* margen lateral para la primera/última píldora */
        }
        .producto-subnav__scroll::-webkit-scrollbar { display: none; }
    }
    .producto-subnav__pill {
        display: inline-flex;
        align-items: center;
        gap: .35rem;
        padding: .35rem .75rem;
        border-radius: 999px;
        font-size: .8rem;
        font-weight: 500;
        color: #6f7975;
        text-decoration: none;
        white-space: nowrap;
        transition: background .12s, color .12s;
        flex-shrink: 0;
    }
    .producto-subnav__pill .bi {
        font-size: .88rem;
        color: #94a3a0;
    }
    .producto-subnav__pill:hover {
        background: #f4f6f5;
        color: #1a2820;
    }
    .producto-subnav__pill:hover .bi { color: #4a5568; }
    .producto-subnav__pill.is-active {
        background: var(--da-primary-soft, var(--da-primary-soft));
        color: var(--da-primary-dark, var(--da-primary-dark));
        font-weight: 600;
    }
    .producto-subnav__pill.is-active .bi {
        color: var(--da-primary, var(--da-primary));
    }

/* ── formulas/show.html.php ── */
    .fx-box { border:1px solid rgba(15,44,37,.1); border-radius:.75rem; overflow:hidden; background:#fff; }
    .fx-box + .fx-box { margin-top:1rem; }
    .fx-box__head { display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap;
        padding:.7rem 1.1rem; border-bottom:1px solid #f0f4f2; background:#f8faf9; }
    .fx-box__name { font-weight:700; color:var(--da-dark); }
    .fx-box__year { color:#94a3a0; font-size:.78rem; font-weight:500; }
    .fx-box__rec  { font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
        background:var(--da-primary-soft,var(--da-primary-soft)); color:var(--da-primary-dark,var(--da-primary-dark)); padding:.2rem .5rem; border-radius:999px; }
    .fx-box__expr { padding:1rem 1.1rem; font-family:"SFMono-Regular",ui-monospace,Menlo,Consolas,monospace;
        font-size:.92rem; color:#1a2820; line-height:1.7; overflow-x:auto; }
    .fx-box__note { padding:0 1.1rem 1rem; color:#6f7975; font-size:.85rem; }
    .fx-input { display:inline-flex; align-items:center; gap:.45rem; background:#fff; border:1px solid #e2e8e5;
        border-radius:999px; padding:.4rem .85rem; font-size:.85rem; color:#3d4744; }
    .fx-input .bi { color:var(--da-primary,var(--da-primary)); }
    .fx-app-card { display:flex; gap:1rem; }
    .fx-app-card .bi { font-size:1.4rem; color:var(--da-primary,var(--da-primary)); flex-shrink:0; margin-top:.1rem; }

/* ── landing/glosario.html.php ── */
    /* A-Z bar, sticky under the fixed-top navbar (~56px) */
    .gl-az-bar { position:sticky; top:56px; z-index:1010; background:rgba(255,255,255,.92);
        backdrop-filter:saturate(180%) blur(8px); border-bottom:1px solid #eef1ef; padding:.5rem 0; }
    .gl-az { display:flex; flex-wrap:wrap; gap:.2rem; justify-content:center; }
    .gl-az a, .gl-az span { display:inline-flex; align-items:center; justify-content:center;
        width:1.9rem; height:1.9rem; border-radius:.45rem; font-size:.8rem; font-weight:700; text-decoration:none; flex-shrink:0; }
    .gl-az a { color:var(--da-primary-dark,var(--da-primary-dark)); background:var(--da-primary-soft,var(--da-primary-soft)); }
    .gl-az a:hover { background:var(--da-primary,var(--da-primary)); color:#fff; }
    .gl-az span { color:#c8d2cf; }
    /* Mobile: single line with horizontal scroll instead of wrapping */
    @media (max-width:575.98px) {
        .gl-az { flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; scrollbar-width:none; padding-bottom:1px; }
        .gl-az::-webkit-scrollbar { display:none; }
    }
    .gl-letter { display:flex; align-items:center; gap:.75rem; margin:0 0 1rem; padding-top:.5rem; scroll-margin-top:118px; }
    .gl-letter__char { font-size:1.5rem; font-weight:700; color:var(--da-primary,var(--da-primary)); line-height:1; }
    .gl-letter hr { flex:1; border:0; border-top:1px solid #e2e8e5; margin:0; }
    .gl-term { border-bottom:1px solid #f0f4f2; padding:1rem 0; scroll-margin-top:118px; }
    .gl-term__abbr { font-weight:700; color:var(--da-dark); }
    .gl-term__full { color:#6f7975; font-size:.9rem; }
    .gl-term__def  { color:#3d4744; font-size:.92rem; line-height:1.6; margin:.3rem 0 .55rem; }
    .gl-term__meta { display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
    .gl-cat-tag { display:inline-flex; align-items:center; gap:.3rem; font-size:.72rem; font-weight:600;
        color:#6f7975; background:#f4f7f5; border:1px solid #eef1ef; border-radius:999px; padding:.18rem .55rem; }
    .gl-cat-tag .bi { color:#94a3a0; }
    .gl-term__link { font-size:.78rem; font-weight:600; text-decoration:none; display:inline-flex; align-items:center; gap:.3rem;
        padding:.18rem .6rem; border-radius:999px; }
    .gl-term__link--tool { color:var(--da-primary-dark,var(--da-primary-dark)); background:var(--da-primary-soft,var(--da-primary-soft)); }
    .gl-term__link--fx   { color:#8a5a00; background:rgba(255,181,71,.18); }
    .gl-term__see { font-size:.78rem; color:#94a3a0; width:100%; }
    .gl-term__see a { color:#6f7975; }

/* ── landing/index.html.php ── */
    .landing-collectives { background: #fff; border: 1px solid rgba(15, 44, 37, .08); }
    .landing-collectives__types { display: grid; gap: .6rem; }
    .landing-collectives__types a { display: flex; align-items: center; gap: .85rem; padding: .75rem .9rem; border: 1px solid rgba(15, 44, 37, .08); border-radius: .75rem; color: inherit; text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
    .landing-collectives__types a:hover, .landing-collectives__types a:focus-visible { border-color: rgba(26, 161, 121, .35); box-shadow: 0 8px 22px rgba(26, 161, 121, .08); }
    .landing-manual__sections { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: .5rem; }
    .landing-manual__sections a { display: flex; align-items: center; gap: .5rem; padding: .55rem .8rem; background: #fff; border-radius: .6rem; color: inherit; text-decoration: none; font-weight: 600; font-size: .95rem; }
    .landing-manual__sections a:hover, .landing-manual__sections a:focus-visible { box-shadow: 0 0 0 2px rgba(146, 119, 82, .35); }
    .landing-manual__sections .bi { color: #927752; }

/* ── landing/plans.html.php ── */
    .feature-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid rgba(15,44,37,.08); border-radius: .875rem; overflow: hidden; }
    .feature-table thead th { background: var(--da-primary-soft); padding: .9rem 1rem; font-size: .92rem; font-weight: 700; color: var(--da-dark); text-align: center; border-bottom: 1px solid rgba(15,44,37,.08); }
    .feature-table thead th:first-child { text-align: left; }
    .feature-table thead th.featured { background: var(--da-primary); color: #fff; }
    .feature-table tbody td { padding: .85rem 1rem; vertical-align: top; border-bottom: 1px solid rgba(15,44,37,.06); text-align: center; }
    .feature-table tbody td:first-child { text-align: left; }
    .feature-table tbody tr:last-child td { border-bottom: 0; }
    .feature-table .cat-row td { background: var(--da-bg); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; color: var(--da-muted); text-align: left; }
    .feature-table .feature-name { font-weight: 600; }
    .feature-table .feature-desc { font-size: .85rem; color: var(--da-muted); margin-top: .15rem; }
    .feature-table .badge-soon { display: inline-block; margin-left: .4rem; background: rgba(255,181,71,.18); color: #8a5a00; padding: .1rem .5rem; border-radius: 999px; font-size: .7rem; font-weight: 600; letter-spacing: .02em; text-transform: none; vertical-align: middle; }

    /* The Enterprise / custom plan — a horizontal card under the price grid */
    .plan-enterprise { display: flex; align-items: center; gap: 2rem; border: 1.5px solid rgba(15,44,37,.15); border-radius: .875rem; padding: 1.75rem 2rem; background: #fff; flex-wrap: wrap; }
    .plan-enterprise__body { display: flex; align-items: flex-start; gap: 1.25rem; flex: 1; min-width: 260px; }
    .plan-enterprise__icon { flex-shrink: 0; width: 2.75rem; height: 2.75rem; border-radius: .6rem; background: var(--da-primary-soft, var(--da-primary-soft)); color: var(--da-primary, var(--da-primary)); display: flex; align-items: center; justify-content: center; font-size: 1.3rem; }
    .plan-enterprise__bullets { display: flex; flex-wrap: wrap; gap: .35rem .9rem; margin-top: .75rem; }
    .plan-enterprise__bullets li { font-size: .82rem; color: var(--da-muted, #6f7975); }
    .plan-enterprise__cta { flex-shrink: 0; text-align: center; display: flex; flex-direction: column; align-items: center; min-width: 160px; }
    .plan-enterprise__price { font-size: 1.6rem; font-weight: 600; letter-spacing: -.02em; color: var(--da-dark, var(--da-dark)); line-height: 1; margin-bottom: .3rem; }
    @media (max-width: 767.98px) {
        .plan-enterprise { padding: 1.25rem; gap: 1.25rem; }
        .plan-enterprise__cta { align-items: flex-start; text-align: left; width: 100%; }
    }

    /* Mobile: the table stacks into a card per plan. Each row becomes a
       block with the feature's name on top and a mini-grid below with the
       3 labelled values. */
    @media (max-width: 767.98px) {
        .feature-table thead { display: none; }
        .feature-table, .feature-table tbody, .feature-table tr, .feature-table td { display: block; width: 100%; }
        .feature-table tbody tr { border-bottom: 1px solid rgba(15,44,37,.08); padding: .25rem 0; }
        .feature-table tbody td { border: 0; text-align: left; padding: .35rem 1rem; }
        .feature-table .cat-row td { padding: .85rem 1rem; }
        .feature-table tbody td.feature-cell { padding-top: 1rem; padding-bottom: .35rem; }
        .feature-table tbody td.value-cell { display: flex; justify-content: space-between; align-items: center; padding-left: 1rem; padding-right: 1rem; }
        .feature-table tbody td.value-cell::before { content: attr(data-plan); font-size: .8rem; color: var(--da-muted); font-weight: 600; }
    }

/* ── landing/rgpd.html.php ── */
/* Pequeño CSS local solo para los highlights checked del hero RGPD —
   el resto (.page-hero--rich, .page-hero__icon) viven en marketing.html.php. */
.rgpd-highlights li { display:flex; align-items:center; gap:.55rem; margin-bottom:.5rem; color:#162d27; }
.rgpd-highlights .bi { color: var(--da-primary); font-size:1.1rem; }

/* ── manual/_styles.html.php ── */
    .manual-shell { display: grid; grid-template-columns: 250px 1fr; gap: 2.75rem; align-items: start; }
    .manual-side { position: sticky; top: 84px; }
    .manual-menu__group { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #9aa3a0; margin: .35rem 0 .45rem; }
    .manual-menu ul { margin-bottom: 1.1rem; }
    .manual-menu__link { display: flex; align-items: center; gap: .6rem; padding: .42rem .6rem; border-radius: .55rem; color: #41514c; text-decoration: none; font-size: .92rem; font-weight: 600; }
    .manual-menu__link .bi { color: #9aa3a0; font-size: 1rem; }
    .manual-menu__link:hover { background: rgba(20,48,42,.05); color: #14302a; }
    .manual-menu__link.is-active { background: var(--da-primary-soft, #e7f4ef); color: var(--da-primary-d, #127a5b); }
    .manual-menu__link.is-active .bi { color: var(--da-primary, var(--da-primary)); }
    .manual-menu__soon { margin-left: auto; font-size: .6rem; font-weight: 700; color: #9aa3a0; border: 1px solid rgba(20,48,42,.12); border-radius: 999px; padding: 1px 6px; }
    .manual-nav { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2.5rem; }
    .manual-nav a { flex: 1; border: 1px solid rgba(20,48,42,.1); border-radius: .75rem; padding: .85rem 1.1rem; text-decoration: none; color: #14302a; background: #fff; transition: box-shadow .15s ease; }
    .manual-nav a:hover { box-shadow: 0 12px 26px -18px rgba(15,44,37,.25); }
    .manual-nav .dir { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #9aa3a0; }
    .manual-nav .ttl { font-weight: 700; }
    .manual-nav .next { text-align: right; }
    @media (max-width: 991.98px) { .manual-shell { grid-template-columns: 1fr; } .manual-side { position: static; margin-bottom: 1.75rem; } }
    /* Search: the box (hero of the index, top of the sidebar) and its results page. */
    .manual-search--hero { max-width: 560px; margin: 1.75rem auto 0; }
    .manual-search--side { margin-bottom: 1.25rem; }
    .manual-search .input-group-text { background: #fff; color: #9aa3a0; }
    .manual-search .form-control:focus { box-shadow: none; border-color: var(--da-primary, var(--da-primary)); }
    .manual-results { list-style: none; margin: 1.25rem 0 0; padding: 0; }
    .manual-result { padding: 1rem 0; border-bottom: 1px solid rgba(20,48,42,.08); }
    .manual-result:first-child { padding-top: 0; }
    .manual-result__where { display: flex; align-items: center; gap: .4rem; font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #9aa3a0; }
    .manual-article .manual-result__title { font-size: 1.05rem; font-weight: 700; margin: .3rem 0 .35rem; letter-spacing: 0; }
    .manual-result__title a { text-decoration: none; }
    .manual-result__title a:hover { text-decoration: underline; }
    .manual-article .manual-result__text { white-space: pre-line; margin: 0; font-size: .95rem; line-height: 1.6; }
    /* A heading opened from a link (#anchor) clears the fixed navbar. */
    .manual-article h2[id], .manual-article h3[id] { scroll-margin-top: 96px; }
    /* Article typography (mirrors .static-page, tuned for the manual). */
    .manual-article > .eyebrow { margin-bottom: .5rem; }
    .manual-article h1 { font-size: 1.95rem; font-weight: 700; letter-spacing: -.02em; margin: .25rem 0 .5rem; }
    .manual-article h2 { font-size: 1.3rem; font-weight: 700; margin-top: 2rem; margin-bottom: .6rem; color: #14302a; letter-spacing: -.01em; }
    .manual-article h3 { font-size: 1.05rem; font-weight: 700; margin-top: 1.4rem; margin-bottom: .35rem; }
    .manual-article p, .manual-article li { color: #41514c; line-height: 1.7; }
    .manual-article ul, .manual-article ol { padding-left: 1.25rem; }
    .manual-article li { margin-bottom: .35rem; }
    .manual-article a { color: var(--da-primary, var(--da-primary)); }
    .manual-article hr { margin: 1.75rem 0; opacity: .12; }
    .manual-article table { width: 100%; margin: 1rem 0; border-collapse: collapse; }
    .manual-article th, .manual-article td { border: 1px solid rgba(15,44,37,.1); padding: .55rem .75rem; font-size: .95rem; }
    .manual-article th { background: var(--da-primary-soft, #e7f4ef); color: var(--da-dark); font-weight: 700; text-align: left; }
    .manual-article blockquote { border-left: 3px solid var(--da-primary, var(--da-primary)); background: var(--da-primary-soft, #e7f4ef); margin: 1.25rem 0; padding: .8rem 1.1rem; border-radius: .5rem; }
    .manual-article blockquote p { margin: 0; }
    .manual-article figure, .manual-article .ms-mock { margin: 1.5rem 0; }
    /* Conceptual process-flow diagrams (partials/mockups/flow-*.html.php). */
    .flow { margin: 1.5rem 0; }
    .flow-row { display: flex; align-items: stretch; gap: .4rem; flex-wrap: wrap; }
    .flow-step { flex: 1 1 132px; min-width: 124px; border: 1px solid rgba(20,48,42,.1); border-radius: .8rem; padding: .8rem .85rem; background: #fff; }
    .flow-step .n { display: inline-flex; width: 22px; height: 22px; border-radius: 50%; background: var(--da-primary-soft, #e7f4ef); color: var(--da-primary-d, #127a5b); font-size: .72rem; font-weight: 700; align-items: center; justify-content: center; margin-bottom: .45rem; }
    .flow-step .t { font-weight: 700; color: #14302a; font-size: .9rem; line-height: 1.18; }
    .flow-step .d { font-size: .76rem; color: #8895a0; margin-top: .2rem; line-height: 1.35; }
    .flow-step .chips { margin-top: .5rem; display: flex; flex-wrap: wrap; gap: .25rem; }
    .flow-step .chips span { font-size: .67rem; font-weight: 700; background: var(--da-primary-soft, #e7f4ef); color: var(--da-primary-d, #127a5b); border-radius: 999px; padding: 1px 7px; }
    .flow-step--end { background: var(--da-primary-soft, #e7f4ef); border-color: transparent; }
    .flow-step--end .n { background: #fff; }
    .flow-step--gate { background: #fff7ed; border-color: rgba(182,107,79,.3); }
    .flow-step--gate .n { background: var(--da-clay-soft); color: var(--da-clay); }
    .flow-arrow { display: flex; align-items: center; justify-content: center; color: #c2ccc8; font-size: 1rem; flex: 0 0 auto; }
    .flow-cap { font-size: .78rem; color: #8895a0; margin-top: .55rem; }
    @media (max-width: 575.98px) { .flow-row { flex-direction: column; } .flow-arrow { transform: rotate(90deg); } }

/* ── partials/help-chat.html.php ── */
/* The help window (style v2). With the chat it is an AI and says so (D5): the
   violet and bi-stars in the header, the answers in the AI's tint, your
   questions in the brand's dark bubble. Search-only stays neutral. Local CSS:
   it also runs on the public web, which does not load da-app.css. */
.help-chat {
    position: fixed; z-index: 1070; top: 72px; right: 24px;
    width: 380px; height: min(560px, calc(100vh - 96px));
    min-width: 300px; min-height: 320px; max-width: 90vw; max-height: 90vh;
    display: flex; flex-direction: column;
    background: var(--da-surface); border: 1px solid var(--da-line); border-radius: var(--r-lg);
    box-shadow: var(--sh-4);
    resize: both; overflow: hidden;
}
.help-chat[data-mode="public"] { top: auto; bottom: 92px; height: min(540px, calc(100vh - 130px)); }
.help-chat__head {
    display: flex; align-items: center; gap: .4rem;
    padding: .55rem .6rem .55rem .85rem; cursor: move; user-select: none;
    border-bottom: 1px solid var(--da-line);
    background: var(--da-subtle);
}
.help-chat[data-chat="1"] .help-chat__head { background: color-mix(in srgb, var(--da-ai) 6%, var(--da-surface)); border-bottom-color: color-mix(in srgb, var(--da-ai) 18%, var(--da-surface)); }
.help-chat__icon {
    width: 26px; height: 26px; border-radius: var(--r-sm); flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center; font-size: .85rem;
    background: var(--da-primary-soft); color: var(--da-primary-dark);
}
.help-chat[data-chat="1"] .help-chat__icon { background: var(--da-ai-soft); color: var(--da-ai); }
.help-chat__title { font-weight: 600; font-size: var(--fs-sm); flex: 1; color: var(--da-ink); }
.help-chat__btn {
    border: 0; background: transparent; color: var(--da-faint);
    width: 30px; height: 30px; border-radius: var(--r-sm); cursor: pointer;
}
.help-chat__btn:hover { background: var(--da-well); color: var(--da-ink); }
.help-chat__btn:focus-visible { outline: 0; box-shadow: var(--focus); }
.help-chat__body { flex: 1; overflow-y: auto; padding: .75rem .85rem; font-size: var(--fs-sm); }
.help-chat__empty { color: var(--da-muted); margin: .25rem 0; }
.help-chat__q {
    margin: .5rem 0 .35rem auto; max-width: 85%; width: fit-content;
    padding: .5rem .75rem; border-radius: var(--r-lg) var(--r-lg) var(--r-xs) var(--r-lg);
    background: var(--da-primary-dark); color: #fff; white-space: pre-wrap; word-wrap: break-word;
}
.help-chat__a {
    margin: 0 auto .75rem 0; max-width: 92%;
    padding: .55rem .8rem; border-radius: var(--r-lg) var(--r-lg) var(--r-lg) var(--r-xs);
    background: color-mix(in srgb, var(--da-ai) 6%, var(--da-surface));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--da-ai) 18%, var(--da-surface));
    color: var(--da-ink-2); word-wrap: break-word;
}
.help-chat__a a { color: var(--da-ai-ink); }
.help-chat__a p:last-child, .help-chat__a ul:last-child, .help-chat__a ol:last-child { margin-bottom: 0; }
.help-chat__a ul, .help-chat__a ol { padding-left: 1.1rem; }
.help-chat__a.is-pending, .help-chat__a.is-failed { color: var(--da-muted); font-style: italic; }
.help-chat__note { margin: .25rem 0 .75rem; font-size: var(--fs-xs); color: var(--da-faint); text-align: center; }
.help-chat__dots::after { content: ''; animation: help-chat-dots 1.2s steps(4, end) infinite; }
@keyframes help-chat-dots { 0% { content: ''; } 25% { content: '.'; } 50% { content: '..'; } 75% { content: '...'; } }
.help-chat__ticket-link { display: inline-block; margin-top: .35rem; font-size: var(--fs-xs); font-style: normal; }
.help-chat__confirm { padding: .65rem .85rem; font-size: var(--fs-sm); border-top: 1px solid var(--da-line); background: var(--da-sand-soft); color: var(--da-ink-2); }
.help-chat__composer { display: flex; gap: .4rem; align-items: flex-end; padding: .55rem .6rem .35rem; border-top: 1px solid var(--da-line); }
.help-chat__composer textarea { resize: none; max-height: 120px; }
.help-chat__foot { padding: 0 .75rem .5rem; font-size: var(--fs-2xs); color: var(--da-faint); }
.help-chat__foot [data-help-chat-remaining]:not(:empty) { font-weight: 600; margin-right: .25rem; }
.help-chat__foot--search { padding: .55rem .85rem; border-top: 1px solid var(--da-line); font-size: var(--fs-xs); }
.help-chat__search { padding: .6rem .6rem .55rem; border-bottom: 1px solid var(--da-line); }
.help-chat__search .input-group-text { background: var(--da-surface); color: var(--da-faint); }
/* Search results: the list of the search-only window, or «Respuestas directas»
   over the chat's composer — each one a boxed disclosure. */
.help-search.is-loading [data-help-search-results] { opacity: .55; transition: opacity var(--t-base) var(--ease); }
.help-search--direct { flex: 0 1 auto; max-height: 45%; overflow-y: auto; padding: .55rem .6rem .15rem; border-top: 1px solid var(--da-line); background: var(--da-subtle); font-size: var(--fs-sm); }
.help-search__label { font-size: var(--fs-2xs); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--da-faint); margin-bottom: .4rem; }
.help-search__item { margin-bottom: .4rem; border: 1px solid var(--da-line); border-radius: var(--r-md); background: var(--da-surface); }
.help-search__item[open] { border-color: var(--da-line-strong); }
.help-search__summary { display: flex; align-items: flex-start; gap: .55rem; padding: .5rem .6rem; border-radius: var(--r-md); cursor: pointer; list-style: none; }
.help-search__summary::-webkit-details-marker { display: none; }
.help-search__summary::marker { content: ""; }
.help-search__summary:hover { background: var(--da-well); }
.help-search__summary:focus-visible { outline: 0; box-shadow: var(--focus); }
.help-search__kind { margin-top: .1rem; color: var(--da-faint); }
.help-search__head { flex: 1; min-width: 0; }
.help-search__title { display: block; font-size: var(--fs-sm); font-weight: 600; line-height: 1.3; color: var(--da-ink); }
.help-search__where { display: block; margin-top: .1rem; font-size: var(--fs-xs); color: var(--da-faint); }
.help-search__chev { margin-top: .2rem; font-size: .75rem; color: var(--da-faint); transition: transform var(--t-base) var(--ease); }
.help-search__item[open] .help-search__chev { transform: rotate(180deg); }
.help-search__text { padding: 0 .75rem .65rem 2.05rem; font-size: var(--fs-sm); line-height: 1.55; color: var(--da-ink-2); white-space: pre-line; word-wrap: break-word; }
.help-search__link { display: block; margin-top: .4rem; font-size: var(--fs-xs); font-weight: 600; white-space: normal; }
.help-search__skel { margin-bottom: .4rem; padding: .55rem .6rem; border: 1px solid var(--da-line); border-radius: var(--r-md); }
.help-chat-launcher {
    position: fixed; z-index: 1065; right: 24px; bottom: 24px;
    display: inline-flex; align-items: center; gap: .5rem;
    padding: .7rem 1.1rem; border: 0; border-radius: var(--r-pill);
    background: var(--da-primary-dark); color: #fff; font-weight: 600; font-size: .9rem;
    box-shadow: var(--sh-3); cursor: pointer;
}
.help-chat-launcher:hover { background: var(--da-primary-deep); }
.help-chat-launcher[aria-expanded="true"] { display: none; }
@media print { .help-chat, .help-chat-launcher { display: none !important; } }

/* ── partials/mockups/agenda-week.html.php ── */
    .agw-grid {
        display: grid;
        grid-template-columns: 48px repeat(5, 1fr);
        gap: 2px;
        font-size: .68rem;
        position: relative;
    }
    .agw-head {
        font-weight: 700; color: #1a2820;
        text-align: center; padding: .35rem 0;
        text-transform: uppercase; letter-spacing: .04em;
        font-size: .62rem;
    }
    .agw-head .agw-head-num {
        display: block; font-size: .82rem; font-weight: 600;
        color: var(--da-primary-dark, var(--da-primary-dark));
        text-transform: none;
        line-height: 1;
        margin-top: .1rem;
    }
    .agw-head--today .agw-head-num {
        background: var(--da-primary, var(--da-primary));
        color: #fff;
        border-radius: 50%;
        width: 22px; height: 22px;
        display: inline-flex; align-items: center; justify-content: center;
        margin: .1rem auto 0;
        font-size: .72rem;
    }
    .agw-time {
        color: #94a3a0;
        font-size: .62rem;
        font-weight: 600;
        text-align: right;
        padding-right: .35rem;
        padding-top: .1rem;
    }
    .agw-cell {
        background: var(--da-subtle);
        border: 1px solid #f4f6f5;
        border-radius: .3rem;
        min-height: 38px;
        position: relative;
        padding: 2px;
    }
    .agw-appt {
        position: absolute;
        left: 2px; right: 2px;
        top: 2px;
        border-radius: .3rem;
        padding: .25rem .35rem;
        font-size: .62rem;
        line-height: 1.2;
        overflow: hidden;
        cursor: default;
        border-left: 3px solid transparent;
    }
    .agw-appt-name {
        font-weight: 700;
        display: block;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .agw-appt-type {
        font-size: .58rem;
        opacity: .75;
        display: block;
        text-transform: uppercase;
        letter-spacing: .04em;
        margin-top: .05rem;
    }

    /* Modalidades */
    .agw-appt--first    { background: var(--da-primary-soft, var(--da-primary-soft)); color: var(--da-primary-dark, var(--da-primary-dark)); border-left-color: var(--da-primary, var(--da-primary)); }
    .agw-appt--review   { background: var(--da-clay-soft, var(--da-clay-soft)); color: #6c2f17; border-left-color: var(--da-clay, var(--da-clay)); }
    .agw-appt--online   { background: var(--da-sand-soft, var(--da-sand-soft)); color: #5a4514; border-left-color: var(--da-sand, var(--da-sand)); }
    .agw-appt--block    { background: var(--da-stone-soft, var(--da-stone-soft)); color: #3a342d; border-left-color: var(--da-stone, var(--da-stone)); }

    /* Bloque de 1h ocupa 100% de su celda; 2h ocupa la suya + la siguiente */
    .agw-h1 { bottom: 2px; }
    .agw-h2 { height: calc(200% + 2px); z-index: 1; }

    /* Línea "ahora" cruzando el día actual */
    .agw-now {
        position: absolute;
        left: 50px; right: 0;
        height: 2px;
        background: var(--da-primary, var(--da-primary));
        z-index: 3;
        pointer-events: none;
    }
    .agw-now::before {
        content: "";
        position: absolute;
        left: -4px; top: -3px;
        width: 8px; height: 8px;
        border-radius: 50%;
        background: var(--da-primary, var(--da-primary));
        box-shadow: 0 0 0 3px rgba(26,161,121,.18);
    }

    /* Legenda */
    .agw-legend {
        display: flex; gap: .85rem; flex-wrap: wrap;
        margin-top: .85rem;
        font-size: .68rem;
    }
    .agw-legend-item {
        display: inline-flex; align-items: center; gap: .3rem;
        color: #6f7975;
    }
    .agw-legend-dot {
        width: 8px; height: 8px; border-radius: 2px;
    }

/* ── partials/mockups/billing-dashboard.html.php ── */
    .bdb-kpi {
        display: flex; align-items: baseline; gap: .5rem;
        margin-bottom: .15rem;
    }
    .bdb-kpi-val {
        font-size: 1.85rem; font-weight: 600;
        color: #1a2820; letter-spacing: -.02em;
        line-height: 1;
    }
    .bdb-kpi-delta {
        font-size: .72rem; font-weight: 600;
        color: var(--da-primary-dark, var(--da-primary-dark));
        background: var(--da-primary-soft, var(--da-primary-soft));
        padding: .12rem .4rem;
        border-radius: 4px;
        display: inline-flex; align-items: center; gap: .15rem;
    }
    .bdb-kpi-lbl {
        font-size: .7rem; color: #6f7975;
        text-transform: uppercase; letter-spacing: .06em; font-weight: 600;
    }
    .bdb-bars {
        display: flex; align-items: flex-end; gap: 3px;
        height: 36px; margin-top: .35rem;
    }
    .bdb-bar {
        flex: 1;
        background: linear-gradient(180deg, var(--da-primary, var(--da-primary)) 0%, var(--da-primary-dark, var(--da-primary-dark)) 100%);
        border-radius: 2px 2px 0 0;
        opacity: .85;
    }
    .bdb-bar:last-child { background: #1a2820; opacity: 1; }
    .bdb-list-head {
        font-size: .68rem;
        color: #6f7975;
        text-transform: uppercase; letter-spacing: .08em; font-weight: 700;
        padding: 0 0 .5rem;
    }
    .bdb-row {
        display: grid;
        grid-template-columns: 1fr auto auto;
        gap: .65rem; align-items: center;
        padding: .55rem .7rem;
        border-bottom: 1px solid #eef1ef;
        font-size: .8rem;
    }
    .bdb-row:last-child { border-bottom: 0; }
    .bdb-row-client { color: #1a2820; font-weight: 500; }
    .bdb-row-date { font-size: .68rem; color: #94a3a0; }
    .bdb-row-amount { font-weight: 700; color: #1a2820; font-size: .82rem; }
    .bdb-badge {
        font-size: .65rem; font-weight: 700;
        padding: .15rem .45rem;
        border-radius: 999px;
        text-transform: uppercase; letter-spacing: .04em;
    }
    .bdb-badge--paid     { background: var(--da-primary-soft, var(--da-primary-soft)); color: var(--da-primary-dark, var(--da-primary-dark)); }
    .bdb-badge--sent     { background: #fef0e6; color: #9a3a0a; }
    .bdb-badge--overdue  { background: #fde8e8; color: #971b1b; }
    .bdb-holded-chip {
        display: inline-flex; align-items: center; gap: .4rem;
        padding: .35rem .65rem;
        background: #fff;
        border: 1px solid #eef1ef;
        border-radius: 999px;
        font-size: .75rem;
        color: #4a5568;
    }
    .bdb-holded-chip .bdb-dot {
        width: 7px; height: 7px;
        border-radius: 50%;
        background: var(--da-primary, var(--da-primary));
        box-shadow: 0 0 0 3px rgba(26,161,121,.18);
    }

/* ── partials/mockups/client-invoice-document.html.php ── */
    .cinv { background:#fff; border:1px solid rgba(15,44,37,.1); border-radius:.7rem; overflow:hidden; font-size:.73rem; box-shadow:0 4px 24px rgba(15,44,37,.07); }
    .cinv__head { padding:.9rem 1.1rem; border-bottom:2px solid var(--da-dark); display:flex; justify-content:space-between; align-items:flex-start; gap:.75rem; }
    .cinv__brand-name { font-size:.88rem; font-weight:700; color:var(--da-dark); }
    .cinv__brand-sub  { color:#6f7975; font-size:.66rem; margin-top:.1rem; line-height:1.45; }
    .cinv__ref { text-align:right; flex-shrink:0; }
    .cinv__num  { font-size:.85rem; font-weight:700; color:var(--da-dark); }
    .cinv__date { color:#6f7975; font-size:.66rem; }
    .cinv__status { display:inline-flex; align-items:center; gap:.3rem; margin-top:.3rem;
        background:var(--da-primary-soft,var(--da-primary-soft)); color:var(--da-primary-dark,var(--da-primary-dark));
        border-radius:999px; padding:.18rem .55rem; font-size:.63rem; font-weight:700; }
    .cinv__body   { padding:.9rem 1.1rem; }
    .cinv__parties { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; margin-bottom:.85rem; padding-bottom:.85rem; border-bottom:1px solid #f0f4f2; }
    .cinv__plabel { font-size:.6rem; text-transform:uppercase; letter-spacing:.08em; color:#6f7975; font-weight:700; margin-bottom:.2rem; }
    .cinv__pname  { font-weight:600; color:#1a2820; margin-bottom:.15rem; }
    .cinv__pdetail { color:#6f7975; font-size:.66rem; line-height:1.45; }
    .cinv__table  { width:100%; border-collapse:collapse; margin-bottom:.75rem; }
    .cinv__table th { font-size:.6rem; text-transform:uppercase; letter-spacing:.06em; color:#6f7975; font-weight:700; padding:.3rem .4rem; border-bottom:1px solid #e2e8e5; text-align:left; }
    .cinv__table th:last-child,.cinv__table td:last-child { text-align:right; white-space:nowrap; }
    .cinv__table td { padding:.38rem .4rem; color:#1a2820; border-bottom:1px solid #f4f7f5; }
    .cinv__table tr:last-child td { border:0; }
    .cinv__totals { display:flex; flex-direction:column; align-items:flex-end; gap:.22rem; border-top:1px solid #e2e8e5; padding-top:.6rem; }
    .cinv__trow   { display:flex; gap:2rem; font-size:.7rem; }
    .cinv__trow span:last-child { min-width:58px; text-align:right; }
    .cinv__trow--muted { color:#6f7975; }
    .cinv__trow--total { font-weight:700; color:var(--da-dark); font-size:.8rem; }
    .cinv__foot   { border-top:1px solid #f0f4f2; padding:.55rem 1.1rem; background:#f8faf9; }
    .cinv__footxt { font-size:.62rem; color:#94a3a0; line-height:1.4; }

/* ── partials/mockups/client-portal-mobile.html.php ── */
    .cpm-wrap {
        display: flex; justify-content: center;
        padding: 1rem 0;
    }
    .cpm-phone {
        width: 100%;
        max-width: 320px;
        background: #fff;
        border: 10px solid #1a2820;
        border-radius: 2.2rem;
        box-shadow: 0 20px 50px rgba(15,44,37,.18), 0 6px 14px rgba(15,44,37,.08);
        overflow: hidden;
        position: relative;
    }
    .cpm-notch {
        position: absolute;
        top: 0; left: 50%;
        transform: translateX(-50%);
        width: 90px; height: 18px;
        background: #1a2820;
        border-radius: 0 0 .9rem .9rem;
        z-index: 2;
    }
    .cpm-body {
        padding: 1.8rem 1rem 1rem;
    }
    .cpm-greet {
        font-size: .68rem; color: var(--da-primary-dark, var(--da-primary-dark));
        font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
        margin-bottom: .15rem;
    }
    .cpm-hello {
        font-size: 1.1rem; font-weight: 600; color: #1a2820;
        line-height: 1.2; margin-bottom: .15rem;
    }
    .cpm-day {
        font-size: .68rem; color: #6f7975;
        margin-bottom: 1rem;
    }
    .cpm-plan-card {
        background: var(--da-primary-soft, var(--da-primary-soft));
        border: 1px solid rgba(26,161,121,.18);
        border-radius: .85rem;
        padding: .85rem .9rem;
        margin-bottom: 1rem;
    }
    .cpm-plan-h {
        display: flex; align-items: center; gap: .35rem;
        font-size: .66rem; font-weight: 700;
        color: var(--da-primary-dark, var(--da-primary-dark));
        text-transform: uppercase; letter-spacing: .05em;
        margin-bottom: .45rem;
    }
    .cpm-meal {
        display: flex; justify-content: space-between; align-items: baseline;
        padding: .35rem 0;
        border-top: 1px solid rgba(26,161,121,.18);
        font-size: .72rem;
        color: #1a2820;
    }
    .cpm-meal:first-of-type { border-top: 0; padding-top: 0; }
    .cpm-meal-name {
        line-height: 1.3;
        flex: 1;
    }
    .cpm-meal-time {
        display: block;
        font-size: .58rem;
        color: #6f7975;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: .04em;
        margin-bottom: .1rem;
    }
    .cpm-meal-kcal {
        font-size: .62rem;
        color: #6f7975;
        font-weight: 600;
        margin-left: .5rem;
        flex-shrink: 0;
    }
    .cpm-section-h {
        font-size: .62rem; color: #6f7975;
        font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
        margin: 0 0 .45rem;
    }
    .cpm-actions {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: .35rem;
        margin-bottom: 1rem;
    }
    .cpm-action {
        background: #fff;
        border: 1px solid #eef1ef;
        border-radius: .65rem;
        padding: .55rem .25rem;
        text-align: center;
        font-size: .58rem; color: #4a5568;
        font-weight: 600;
        line-height: 1.25;
    }
    .cpm-action .bi {
        display: block;
        font-size: 1.05rem;
        color: var(--da-primary, var(--da-primary));
        margin-bottom: .25rem;
    }
    .cpm-action--clay .bi  { color: var(--da-clay,  var(--da-clay)); }
    .cpm-action--sand .bi  { color: var(--da-sand,  var(--da-sand)); }
    .cpm-cta {
        display: block;
        width: 100%;
        background: var(--da-primary, var(--da-primary));
        color: #fff;
        border: 0;
        border-radius: 999px;
        padding: .55rem;
        font-size: .78rem;
        font-weight: 600;
        text-align: center;
    }
    .cpm-foot {
        text-align: center;
        font-size: .55rem;
        color: #94a3a0;
        margin-top: .65rem;
    }
    .cpm-foot .dot { color: var(--da-primary, var(--da-primary)); font-weight: 600; }

/* ── partials/mockups/holded-sync.html.php ── */
    .hsy { background:#fff; border:1px solid rgba(15,44,37,.1); border-radius:.9rem; overflow:hidden; box-shadow:0 18px 50px -24px rgba(15,44,37,.22); font-size:.8rem; }
    .hsy__bar { background:var(--da-bg); padding:.55rem 1rem; border-bottom:1px solid rgba(15,44,37,.06); display:flex; align-items:center; gap:.4rem; }
    .hsy__dot { width:10px; height:10px; border-radius:50%; display:inline-block; }
    .hsy__body { padding:1rem 1.15rem 1.15rem; }
    .hsy__inv-head { display:flex; justify-content:space-between; align-items:flex-start; gap:.75rem; }
    .hsy__num { font-weight:700; color:var(--da-dark); font-size:.95rem; }
    .hsy__cli { color:#6f7975; font-size:.74rem; }
    .hsy__paid { font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; background:var(--da-primary-soft,var(--da-primary-soft)); color:var(--da-primary-dark,var(--da-primary-dark)); border-radius:999px; padding:.18rem .5rem; }
    .hsy__amt { text-align:right; }
    .hsy__amt-val { font-weight:800; color:var(--da-dark); font-size:1.15rem; letter-spacing:-.02em; }
    .hsy__amt-sub { color:#94a3a0; font-size:.68rem; }
    .hsy__flow { display:flex; align-items:center; gap:.5rem; margin:.9rem 0; }
    .hsy__node { flex:1; display:flex; align-items:center; gap:.45rem; border:1px solid #e2e8e5; border-radius:.55rem; padding:.45rem .6rem; }
    .hsy__node .bi { font-size:1rem; }
    .hsy__node-name { font-weight:600; color:#1a2820; font-size:.76rem; }
    .hsy__node-sub { color:#94a3a0; font-size:.66rem; }
    .hsy__arrow { color:var(--da-primary,var(--da-primary)); font-size:1rem; flex-shrink:0; }
    .hsy__row { display:flex; align-items:center; gap:.5rem; padding:.42rem 0; border-top:1px solid #f0f4f2; font-size:.76rem; }
    .hsy__row .bi { font-size:.95rem; flex-shrink:0; }
    .hsy__ok { color:var(--da-primary,var(--da-primary)); }
    .hsy__chip { margin-left:auto; font-size:.66rem; font-weight:600; color:#4a5568; background:#f4f7f5; border:1px solid #eef1ef; border-radius:999px; padding:.12rem .5rem; }

/* ── partials/mockups/meal-planner-week.html.php ── */
    .mpw-grid {
        display: grid;
        grid-template-columns: 70px repeat(5, 1fr);
        gap: .35rem;
        font-size: .72rem;
    }
    .mpw-head {
        font-weight: 700; color: #1a2820;
        text-align: center; padding: .35rem 0;
        text-transform: uppercase; letter-spacing: .04em;
        font-size: .65rem;
    }
    .mpw-row-label {
        display: flex; align-items: center; gap: .3rem;
        font-weight: 600; color: #4a5568; font-size: .7rem;
        padding: 0 .25rem;
    }
    .mpw-row-label .bi { color: var(--da-primary, var(--da-primary)); }
    .mpw-cell {
        background: #fff;
        border: 1px solid #eef1ef;
        border-radius: .45rem;
        padding: .4rem .45rem;
        min-height: 56px;
        display: flex; flex-direction: column; justify-content: space-between;
        transition: border-color .12s;
    }
    .mpw-cell--filled { background: var(--da-primary-soft, var(--da-primary-soft)); border-color: rgba(26,161,121,.18); }
    .mpw-cell--filled-clay { background: var(--da-clay-soft, var(--da-clay-soft)); border-color: rgba(182,107,79,.18); }
    .mpw-cell--filled-sand { background: var(--da-sand-soft, var(--da-sand-soft)); border-color: rgba(139,110,42,.18); }
    .mpw-cell--empty {
        background: var(--da-subtle);
        border-style: dashed;
        color: #94a3a0;
        display: flex; align-items: center; justify-content: center;
        font-size: 1.1rem;
    }
    .mpw-dish {
        line-height: 1.25;
        color: #1a2820; font-weight: 500;
    }
    .mpw-kcal {
        font-size: .6rem;
        color: #6f7975;
        font-weight: 600;
        margin-top: .15rem;
    }

/* ── partials/mockups/meal-structure.html.php ── */
  .ms-mock { border: 1px solid rgba(20,48,42,.10); border-radius: 16px; background: #fff;
    box-shadow: 0 20px 55px rgba(20,48,42,.12); padding: 1.25rem 1.4rem 1.1rem; margin: 0; }
  .ms-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
  .ms-title { font-size: 1.05rem; font-weight: 800; color: var(--da-ink, #14302a); letter-spacing: -.01em; }
  .ms-sub { font-size: .8rem; color: #8895a0; margin-top: .25rem; }
  .ms-opt { font-size: .74rem; color: #9aa3a0; white-space: nowrap; flex-shrink: 0; }
  .ms-rows { margin-top: 1rem; }
  .ms-row { display: flex; align-items: flex-start; gap: .9rem; padding: .7rem 0; border-top: 1px solid rgba(20,48,42,.07); }
  .ms-row:first-child { border-top: 0; }
  .ms-meal { flex: 0 0 116px; display: flex; align-items: center; gap: .45rem; font-size: .85rem; font-weight: 700;
    color: var(--da-ink, #14302a); padding-top: .15rem; }
  .ms-meal .bi { color: #9aa3a0; font-size: .95rem; }
  .ms-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
  .ms-chip { font-size: .78rem; font-weight: 600; color: #51605b; background: #fff;
    border: 1px solid rgba(20,48,42,.14); border-radius: 999px; padding: .28rem .7rem; }
  .ms-chip--on { color: var(--da-primary-d, #127a5b); border-color: var(--da-primary, var(--da-primary));
    background: color-mix(in srgb, var(--da-primary, var(--da-primary)) 9%, #fff); display: inline-flex; align-items: center; gap: .3rem; }
  .ms-chip--on .bi { font-size: .82rem; }
  .ms-foot { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid rgba(20,48,42,.07);
    font-size: .8rem; color: #8895a0; display: flex; align-items: center; gap: .45rem; }
  .ms-foot .bi { color: var(--da-sand, var(--da-sand)); }

/* ── partials/mockups/micro-ddr-panel.html.php ── */
    .ddr { --ddr-ok: var(--da-primary, var(--da-primary)); --ddr-low: var(--da-clay, var(--da-clay)); }
    .ddr__head {
        display: flex; justify-content: space-between; align-items: center;
        padding: .7rem 1rem; border-bottom: 1px solid rgba(15,44,37,.08);
    }
    .ddr__htitle { font-weight: 700; font-size: .83rem; color: var(--da-dark); }
    .ddr__hperiod {
        font-size: .68rem; color: #6f7975;
        background: #f4f7f5; border-radius: 999px;
        padding: .18rem .6rem; border: 1px solid #e2e8e5;
    }
    .ddr__tabs {
        display: flex; gap: 0;
        border-bottom: 1px solid rgba(15,44,37,.08);
        padding: 0 1rem;
    }
    .ddr__tab {
        font-size: .7rem; font-weight: 600; padding: .45rem .75rem;
        color: #6f7975; border-bottom: 2px solid transparent;
        cursor: default;
    }
    .ddr__tab--active { color: var(--da-primary, var(--da-primary)); border-color: var(--da-primary, var(--da-primary)); }
    .ddr__list { padding: .45rem .9rem; }
    .ddr__row {
        display: flex; align-items: center; gap: .55rem;
        padding: .32rem 0;
        border-bottom: 1px solid #f4f7f5;
    }
    .ddr__row:last-child { border: 0; }
    .ddr__name { font-size: .71rem; color: #1a2820; font-weight: 500; flex: 0 0 78px; }
    .ddr__bar-wrap { flex: 1; height: 6px; background: #eef1ef; border-radius: 3px; overflow: hidden; }
    .ddr__bar { height: 100%; border-radius: 3px; }
    .ddr__bar--ok   { background: var(--ddr-ok); }
    .ddr__bar--low  { background: var(--ddr-low); }
    .ddr__pct { font-size: .68rem; font-weight: 700; min-width: 34px; text-align: right; }
    .ddr__pct--ok  { color: var(--da-primary-dark, var(--da-primary-dark)); }
    .ddr__pct--low { color: var(--ddr-low); }
    .ddr__badge {
        font-size: .58rem; min-width: 14px; text-align: center;
    }
    .ddr__badge--ok  { color: var(--da-primary, var(--da-primary)); }
    .ddr__badge--low { color: var(--ddr-low); }
    .ddr__foot {
        display: flex; justify-content: space-between; align-items: center;
        padding: .55rem 1rem;
        background: #f8faf9; border-top: 1px solid #f0f4f2;
        font-size: .68rem;
    }
    .ddr__foot-ok  { color: var(--da-primary-dark, var(--da-primary-dark)); font-weight: 600; }
    .ddr__foot-low { color: var(--ddr-low); font-weight: 600; }
    .ddr__foot-hint { color: #94a3a0; }

/* ── partials/mockups/onboarding-progress.html.php ── */
    .obp-card {
        background: #fff;
        border: 1px solid #eef1ef;
        border-radius: 1rem;
        box-shadow: 0 14px 40px rgba(15,44,37,.10), 0 4px 12px rgba(15,44,37,.04);
        max-width: 380px;
        margin: 0 auto;
        overflow: hidden;
    }
    .obp-head {
        padding: 1rem 1.1rem .5rem;
    }
    .obp-eyebrow {
        font-size: .65rem; font-weight: 700;
        color: var(--da-primary-dark, var(--da-primary-dark));
        text-transform: uppercase; letter-spacing: .08em;
        margin-bottom: .25rem;
    }
    .obp-title {
        font-size: 1rem; font-weight: 600;
        color: #1a2820; margin: 0;
        line-height: 1.25;
    }
    .obp-progress {
        padding: 0 1.1rem .85rem;
        display: flex; align-items: center; gap: .55rem;
    }
    .obp-bar {
        flex: 1; height: 6px; border-radius: 3px;
        background: #eef1ef;
        overflow: hidden;
    }
    .obp-bar-fill {
        height: 100%; width: 43%;
        background: linear-gradient(90deg, var(--da-primary, var(--da-primary)) 0%, var(--da-primary-dark, var(--da-primary-dark)) 100%);
        border-radius: 3px;
    }
    .obp-counter {
        font-size: .72rem; font-weight: 700;
        color: #4a5568;
    }
    .obp-list {
        list-style: none; padding: 0; margin: 0;
        border-top: 1px solid #eef1ef;
    }
    .obp-item {
        display: grid;
        grid-template-columns: 28px 1fr auto;
        gap: .65rem;
        align-items: center;
        padding: .65rem 1.1rem;
        border-bottom: 1px solid #f4f6f5;
        font-size: .85rem;
    }
    .obp-item:last-child { border-bottom: 0; }
    .obp-tick {
        width: 22px; height: 22px;
        border-radius: 50%;
        display: flex; align-items: center; justify-content: center;
        font-size: .82rem;
    }
    .obp-tick--done {
        background: var(--da-primary, var(--da-primary));
        color: #fff;
    }
    .obp-tick--current {
        background: #fff;
        border: 2px solid var(--da-primary, var(--da-primary));
        color: var(--da-primary, var(--da-primary));
    }
    .obp-tick--pending {
        background: var(--da-subtle);
        border: 1.5px solid #d6dcd9;
    }
    .obp-text {
        color: #1a2820;
        line-height: 1.3;
    }
    .obp-item--done .obp-text {
        color: #6f7975;
        text-decoration: line-through;
        text-decoration-color: rgba(111,121,117,.4);
    }
    .obp-item--current { background: rgba(26,161,121,.04); }
    .obp-item--current .obp-text { font-weight: 700; }
    .obp-cta {
        font-size: .68rem; font-weight: 700;
        padding: .25rem .55rem;
        border-radius: 999px;
        background: var(--da-primary, var(--da-primary));
        color: #fff;
        text-transform: uppercase; letter-spacing: .04em;
    }
    .obp-step-meta {
        font-size: .68rem;
        color: #94a3a0;
    }
    .obp-foot {
        padding: .75rem 1.1rem 1rem;
        border-top: 1px solid #eef1ef;
        background: var(--da-subtle);
        font-size: .72rem; color: #6f7975;
        display: flex; align-items: center; gap: .4rem;
    }
    .obp-foot .bi { color: var(--da-primary, var(--da-primary)); }

/* ── partials/mockups/photo-nutrition.html.php ── */
    /* Mobile phone frame — encerrado dentro de un wrap centrado para
       que se vea claramente como app móvil aunque la columna sea
       ancha. */
    .pnm-wrap {
        display: flex; justify-content: center;
        padding: 1rem 0;
    }
    .pnm-phone {
        width: 100%;
        max-width: 320px;
        background: #fff;
        border: 10px solid #1a2820;
        border-radius: 2.2rem;
        box-shadow: 0 20px 50px rgba(15,44,37,.18), 0 6px 14px rgba(15,44,37,.08);
        overflow: hidden;
        position: relative;
    }
    .pnm-notch {
        position: absolute;
        top: 0; left: 50%;
        transform: translateX(-50%);
        width: 90px; height: 18px;
        background: #1a2820;
        border-radius: 0 0 .9rem .9rem;
        z-index: 2;
    }
    .pnm-body {
        padding: 2rem 1rem 1rem;
    }
    .pnm-appbar {
        display: flex; align-items: center; gap: .5rem;
        padding: .25rem 0 .85rem;
        font-size: .78rem; color: #1a2820; font-weight: 600;
    }
    .pnm-appbar .bi { color: var(--da-primary, var(--da-primary)); }
    /* Foto del plato — usamos un gradiente que evoca "comida" sin
       requerir asset binario. */
    .pnm-photo {
        width: 100%; aspect-ratio: 4 / 3;
        border-radius: .8rem;
        background:
            radial-gradient(circle at 30% 35%, #f4d2a5 0 18%, transparent 19%),
            radial-gradient(circle at 65% 40%, #d8e2c4 0 22%, transparent 23%),
            radial-gradient(circle at 50% 70%, #c9a47a 0 24%, transparent 25%),
            linear-gradient(135deg, var(--da-sand-soft) 0%, var(--da-stone-soft) 100%);
        position: relative;
        overflow: hidden;
        margin-bottom: .85rem;
    }
    .pnm-photo::after {
        content: "📸";
        position: absolute; top: 8px; right: 8px;
        font-size: 1rem;
        background: rgba(255,255,255,.7);
        border-radius: 50%;
        width: 24px; height: 24px;
        display: flex; align-items: center; justify-content: center;
    }
    .pnm-section {
        font-size: .68rem;
        color: #6f7975;
        text-transform: uppercase;
        letter-spacing: .08em;
        font-weight: 700;
        margin: .6rem 0 .25rem;
    }
    .pnm-dish-name {
        font-size: .92rem;
        font-weight: 600;
        color: #1a2820;
        line-height: 1.35;
        margin-bottom: .25rem;
    }
    .pnm-dish-confidence {
        font-size: .72rem;
        color: var(--da-primary-dark, var(--da-primary-dark));
        display: inline-flex; align-items: center; gap: .25rem;
        margin-bottom: .85rem;
    }
    .pnm-macros {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: .3rem;
        margin-bottom: .8rem;
    }
    .pnm-macro {
        background: var(--da-primary-soft, var(--da-primary-soft));
        border-radius: .45rem;
        padding: .4rem .15rem;
        text-align: center;
    }
    .pnm-macro--clay { background: var(--da-clay-soft, var(--da-clay-soft)); }
    .pnm-macro--sand { background: var(--da-sand-soft, var(--da-sand-soft)); }
    .pnm-macro--stone { background: var(--da-stone-soft, var(--da-stone-soft)); }
    .pnm-macro-val {
        display: block;
        font-size: .85rem; font-weight: 600;
        color: #1a2820;
        line-height: 1.1;
    }
    .pnm-macro-lbl {
        display: block;
        font-size: .58rem; text-transform: uppercase;
        letter-spacing: .04em; color: #6f7975;
        margin-top: .05rem;
    }
    .pnm-note {
        font-size: .68rem;
        color: #6b4f2f;
        background: #fcf7f1;
        border-left: 2px solid var(--da-clay);
        padding: .4rem .55rem;
        border-radius: 0 .35rem .35rem 0;
        margin-bottom: .75rem;
        line-height: 1.4;
    }
    .pnm-cta {
        display: block;
        width: 100%;
        background: var(--da-primary, var(--da-primary));
        color: #fff;
        border: 0;
        border-radius: 999px;
        padding: .55rem;
        font-size: .82rem;
        font-weight: 600;
        text-align: center;
    }

/* ── partials/mockups/plan-pdf-preview.html.php ── */
    .ppp-wrap {
        display: flex; justify-content: center;
        padding: 1rem 0;
    }
    .ppp-page {
        width: 100%;
        max-width: 380px;
        aspect-ratio: 210 / 297;  /* A4 */
        background: #fff;
        border: 1px solid #eef1ef;
        border-radius: 4px;
        box-shadow: 0 18px 40px rgba(15,44,37,.12), 0 4px 10px rgba(15,44,37,.05);
        padding: 1.4rem 1.5rem;
        display: flex; flex-direction: column;
        font-size: .72rem;
        color: #1a2820;
        position: relative;
    }
    .ppp-head {
        display: flex; align-items: center; gap: .6rem;
        padding-bottom: .65rem;
        border-bottom: 1px solid #eef1ef;
        margin-bottom: .95rem;
    }
    .ppp-logo {
        width: 32px; height: 32px;
        border-radius: 50%;
        background: var(--da-primary, var(--da-primary));
        color: #fff;
        display: flex; align-items: center; justify-content: center;
        font-weight: 600; font-size: .72rem;
        flex-shrink: 0;
    }
    .ppp-brand-name {
        font-weight: 700; font-size: .82rem;
        color: #1a2820; line-height: 1.2;
    }
    .ppp-brand-sub {
        font-size: .58rem; color: #94a3a0;
        line-height: 1.2; margin-top: .05rem;
    }
    .ppp-doc-meta {
        margin-left: auto; text-align: right;
        font-size: .58rem; color: #6f7975;
        line-height: 1.4;
    }
    .ppp-title {
        font-size: 1rem; font-weight: 600;
        letter-spacing: -.01em;
        margin: 0 0 .15rem;
        color: #1a2820;
    }
    .ppp-subtitle {
        font-size: .68rem; color: #6f7975;
        margin-bottom: .85rem;
    }
    .ppp-macros {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: .2rem;
        margin-bottom: 1rem;
        padding: .45rem;
        background: var(--da-subtle);
        border-radius: 4px;
    }
    .ppp-macro {
        text-align: center;
        font-size: .58rem;
        color: #6f7975;
    }
    .ppp-macro strong {
        display: block;
        font-size: .78rem; font-weight: 700;
        color: #1a2820;
        margin-bottom: .05rem;
    }
    .ppp-section-h {
        font-size: .62rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .06em;
        color: #94a3a0;
        margin: .65rem 0 .25rem;
    }
    .ppp-meal {
        display: flex; justify-content: space-between; align-items: baseline;
        padding: .35rem 0;
        border-bottom: 1px dotted #eef1ef;
    }
    .ppp-meal:last-of-type { border-bottom: 0; }
    .ppp-meal-name {
        flex: 1;
        font-size: .7rem;
        color: #1a2820;
        line-height: 1.3;
    }
    .ppp-meal-name strong {
        font-weight: 700;
        display: block;
        margin-bottom: .05rem;
    }
    .ppp-meal-kcal {
        font-size: .62rem;
        color: #6f7975;
        font-weight: 600;
        margin-left: .5rem;
        flex-shrink: 0;
    }
    .ppp-note {
        font-size: .58rem;
        color: #6f7975;
        font-style: italic;
        margin-top: .65rem;
        padding-top: .55rem;
        border-top: 1px solid #eef1ef;
        line-height: 1.4;
    }
    .ppp-foot {
        margin-top: auto;
        padding-top: .7rem;
        border-top: 1px solid #eef1ef;
        display: flex; justify-content: space-between;
        font-size: .56rem; color: #94a3a0;
    }
    .ppp-foot-brand .dot { color: var(--da-primary, var(--da-primary)); font-weight: 600; }

/* ── partials/mockups/radar.html.php ── */
    .rdr-card {
        background: #fff; border: 1px solid #eef1ef; border-radius: 1rem;
        box-shadow: 0 14px 40px rgba(15,44,37,.10), 0 4px 12px rgba(15,44,37,.04);
        max-width: 400px; margin: 0 auto; overflow: hidden;
    }
    .rdr-head { padding: 1rem 1.1rem .35rem; display: flex; align-items: center; gap: .6rem; }
    .rdr-ic {
        width: 34px; height: 34px; border-radius: .6rem; flex-shrink: 0;
        display: flex; align-items: center; justify-content: center;
        background: #fdf0eb; color: var(--da-clay); font-size: 1rem;
    }
    .rdr-title { font-size: 1rem; font-weight: 600; color: #1a2820; margin: 0; line-height: 1.2; }
    .rdr-sub   { font-size: .74rem; color: #7a8a85; margin: .1rem 0 0; }
    .rdr-list  { padding: .5rem .9rem 1rem; display: flex; flex-direction: column; gap: .45rem; }
    .rdr-row {
        display: flex; align-items: center; gap: .6rem; padding: .5rem .65rem;
        border: 1px solid #eef1ef; border-radius: .6rem; background: #fff;
    }
    .rdr-name {
        flex: 1; font-size: .85rem; font-weight: 600; color: #1a2820;
        white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .rdr-chip { font-size: .7rem; font-weight: 600; padding: .15rem .5rem; border-radius: 1rem; white-space: nowrap; }
    .rdr-chip--danger    { background: #fbe3e3; color: #a12b2b; }
    .rdr-chip--warning   { background: #fdf3df; color: #8a5a00; }
    .rdr-chip--info      { background: #e3eefb; color: #1f5aa1; }
    .rdr-chip--secondary { background: #eef1ef; color: var(--da-muted); }
    .rdr-chev { color: #aab4b1; font-size: .85rem; }

/* ── public/booking-centre.html.php ── */
    .centre-first { background: var(--da-primary-soft, #e6f5ef); }
    .centre-pro:hover { background: var(--da-primary-soft, #e6f5ef); }

/* ── public/booking-change.html.php ── */
    .booking-change-day summary { cursor: pointer; }
    .booking-change-time input { position: absolute; opacity: 0; pointer-events: none; }
    .booking-change-time span { display: inline-block; min-width: 64px; text-align: center; background: #fff; border: 1px solid rgba(15,44,37,.15);
        border-radius: .6rem; padding: .4rem .6rem; font-weight: 600; font-variant-numeric: tabular-nums; cursor: pointer; }
    .booking-change-time input:checked + span { background: var(--da-primary, var(--da-primary)); border-color: var(--da-primary, var(--da-primary)); color: #fff; }
    .booking-change-time input:focus-visible + span { outline: 2px solid var(--da-primary, var(--da-primary)); outline-offset: 2px; }

/* ── public/booking.html.php ── */
    .booking-note { background: var(--da-sand-soft); border: 1px solid color-mix(in srgb, var(--da-sand) 30%, transparent); border-radius: var(--r-lg); padding: .75rem 1rem; color: var(--da-sand-ink); }
    /* A v2 selectable card in a row: a radio with a ring that fills. */
    .booking-option { position: relative; display: block; width: 100%; background: var(--da-surface); border: 1px solid var(--da-line-strong); border-radius: var(--r-lg); padding: .75rem 2.7rem .75rem 1rem; color: var(--da-ink); transition: border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease); }
    .booking-option:hover { border-color: color-mix(in srgb, var(--da-primary) 45%, #fff); box-shadow: var(--sh-1); }
    .booking-option:focus-visible { outline: 0; box-shadow: var(--focus); }
    .booking-option[aria-checked="true"] { border-color: var(--da-primary); background: var(--da-primary-wash); box-shadow: inset 0 0 0 1px var(--da-primary); }
    .booking-option__check { position: absolute; top: 50%; right: .9rem; margin-top: -9px; width: 18px; height: 18px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--da-surface); box-shadow: inset 0 0 0 1.5px var(--da-line-strong); color: #fff; font-size: .72rem; }
    .booking-option[aria-checked="true"] .booking-option__check { background: var(--da-primary-dark); box-shadow: none; }
    .booking-option[aria-checked="true"] .booking-option__check::before { content: "\f272"; font-family: bootstrap-icons; line-height: 1; }
    .booking-chip { background: var(--da-surface); border: 1px solid var(--da-line-strong); border-radius: var(--r-pill); padding: .4rem .9rem; font-size: .9rem; color: var(--da-ink-2); }
    .booking-chip:hover { border-color: color-mix(in srgb, var(--da-primary) 45%, #fff); }
    .booking-chip[aria-checked="true"] { border-color: var(--da-primary); background: var(--da-primary-soft); color: var(--da-primary-deep); font-weight: 600; }
    .booking-days { overflow-x: auto; scrollbar-width: thin; }
    .booking-day { flex: 0 0 auto; min-width: 64px; background: var(--da-surface); border: 1px solid var(--da-line-strong); border-radius: var(--r-md); padding: .4rem .5rem; text-align: center; line-height: 1.15; }
    .booking-day .wd { font-size: .72rem; text-transform: uppercase; color: var(--da-muted); }
    .booking-day .dn { font-size: 1.15rem; font-weight: 700; }
    .booking-day .mo { font-size: .72rem; color: var(--da-muted); }
    .booking-day[aria-checked="true"] { border-color: var(--da-primary); background: var(--da-primary-soft); color: var(--da-primary-deep); }
    .booking-times { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: .5rem; }
    .booking-time { background: var(--da-surface); border: 1px solid var(--da-line-strong); border-radius: var(--r-sm); padding: .45rem 0; font-variant-numeric: tabular-nums; font-weight: 600; }
    .booking-time:hover { border-color: color-mix(in srgb, var(--da-primary) 45%, #fff); }
    .booking-time[aria-checked="true"] { background: var(--da-primary-dark); border-color: var(--da-primary-dark); color: #fff; }
    .booking-day:focus-visible, .booking-time:focus-visible, .booking-chip:focus-visible { outline: 0; box-shadow: var(--focus); }
    .booking-summary { background: var(--da-primary-soft); border-radius: var(--r-lg); padding: .6rem .9rem; color: var(--da-primary-deep); font-weight: 600; }

/* ── public/consent-sign.html.php ── */
.consent-doc h2 { font-size:1.15rem; font-weight:700; margin-bottom:.75rem; }
.consent-doc h3 { font-size:.95rem; font-weight:600; margin-top:1.25rem; margin-bottom:.4rem; color:var(--da-primary-dark, var(--da-primary-dark)); }
.consent-doc p  { font-size:.92rem; line-height:1.6; }
.consent-doc ul { font-size:.92rem; line-height:1.6; padding-left:1.4rem; }
body:has(.consent-doc) .eyebrow { text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; color:#3d4744; font-weight:600; }

/* ── public/directory-index.html.php ── */
    .directory-card { transition: transform .14s ease, box-shadow .14s ease; }
    .directory-card:hover { transform: translateY(-3px); box-shadow: 0 .75rem 1.75rem -.6rem rgba(15,44,37,.28) !important; }
    .directory-avatar { box-shadow: 0 0 0 3px var(--da-primary-soft, #e6f5ef); }
    .directory-bio { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .directory-tag {
        background: var(--da-sand-soft, #fdf7e9); color: #7a5b18;
        border: 1px solid rgba(139,110,42,.18); font-weight: 500; font-size: .72rem;
    }
    .directory-chip {
        display:inline-flex; align-items:center;
        background: var(--da-primary-soft, #e6f5ef); color: var(--da-primary-dark, #0f6b4d);
        font-weight: 600; font-size: .72rem; padding: .15rem .5rem; border-radius: 999px;
    }
    body:has(.directory-card) .input-group:focus-within { box-shadow: 0 .25rem .9rem -.4rem rgba(26,161,121,.5) !important; }

/* ── public/directory-profile.html.php ── */
    .directory-avatar { box-shadow: 0 0 0 4px #fff, 0 .5rem 1.25rem -.5rem rgba(15,44,37,.3); }
    .directory-chip { background: var(--da-primary-soft, #e6f5ef); color: var(--da-primary-dark, #0f6b4d); font-weight: 600; }
    .directory-tag { background: var(--da-sand-soft, #fdf7e9); color: #7a5b18; border: 1px solid rgba(139,110,42,.18); font-weight: 500; }

/* ── static/page.html.php ── */
    .static-page h1 { font-size: 1.6rem; font-weight: 600; letter-spacing: -.02em; margin-bottom: 1.25rem; }
    .static-page h2 { font-size: 1.2rem; font-weight: 700; margin-top: 1.75rem; margin-bottom: .6rem; color: var(--da-dark, var(--da-dark)); }
    .static-page h3 { font-size: 1.05rem; font-weight: 700; margin-top: 1.25rem; margin-bottom: .4rem; }
    .static-page p,
    .static-page li { color: var(--da-muted, var(--da-muted)); line-height: 1.65; }
    .static-page ul { padding-left: 1.25rem; }
    .static-page table { width: 100%; margin: 1rem 0; border-collapse: collapse; }
    .static-page th,
    .static-page td { border: 1px solid rgba(15,44,37,.1); padding: .55rem .75rem; font-size: .95rem; }
    .static-page th { background: var(--da-primary-soft, var(--da-primary-soft)); color: var(--da-dark, var(--da-dark)); font-weight: 700; }
    .static-page hr { margin: 1.5rem 0; opacity: .15; }
    .static-page em { color: var(--da-muted, var(--da-muted)); }
    .static-page a { color: var(--da-primary, var(--da-primary)); }

/* ── tools/foto-nutricional.html.php ── */
    /* ── Mockup de resultado ────────────────────────────────────── */
    .fn-mock {
        background: #fff;
        border: 1px solid rgba(15,44,37,.08);
        border-radius: 1rem;
        overflow: hidden;
        box-shadow: 0 20px 60px -24px rgba(15,44,37,.2);
    }
    .fn-mock-bar {
        background: var(--da-bg);
        padding: .55rem 1rem;
        border-bottom: 1px solid rgba(15,44,37,.06);
        display: flex;
        align-items: center;
        gap: .4rem;
    }
    .fn-mock-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
    .fn-photo-placeholder {
        width: 100%;
        aspect-ratio: 4/3;
        background: linear-gradient(135deg, #e8f0ed 0%, #d4e8df 100%);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 3.5rem;
    }

/* ── tools/index.html.php ── */
    /* Highlighted tool group (AI) — beige block to stand out from the grid */
    .tools-group--featured {
        background: var(--da-sand-soft, #fdf7e9);
        border: 1px solid rgba(139,110,42,.18);
        border-radius: 1rem;
        padding: 1.75rem;
    }
    @media (max-width: 575.98px) { .tools-group--featured { padding: 1.1rem; } }

/* ── tools/interacciones.html.php ── */
    /* Scoped styles for the interactions tool. Uses --da-* tokens
       inherited from layout/marketing.html.php. */
    .int-tool { --int-radius: .9rem; }

    /* Hero ----------------------------------------------------------- */
    .int-hero {
        padding: 5rem 0 3.5rem;
        background:
            radial-gradient(circle at 18% 0%, rgba(26,161,121,.08), transparent 55%),
            radial-gradient(circle at 92% 100%, rgba(182,107,79,.07), transparent 55%);
    }
    .int-hero h1 {
        font-size: clamp(1.7rem, 1.1rem + 2vw, 2.4rem);
        font-weight: 600;
        letter-spacing: -.02em;
        margin: .5rem 0 .85rem;
        line-height: 1.15;
    }
    .int-hero h1 .int-hero__sep {
        color: var(--da-primary);
        font-weight: 400;
        margin: 0 .25rem;
    }
    .int-hero .lead {
        font-size: 1.05rem;
        max-width: 640px;
        line-height: 1.55;
        color: var(--da-ink-2);
    }
    .int-hero__chips { display: flex; gap: .35rem; flex-wrap: wrap; margin-top: 1rem; }
    .int-hero__chip {
        font-size: .72rem; font-weight: 600;
        padding: .25rem .65rem; border-radius: 999px;
        background: var(--da-primary-soft, var(--da-primary-soft));
        color: var(--da-primary-dark, var(--da-primary-dark));
        display: inline-flex; align-items: center; gap: .3rem;
    }

    /* Search bar ----------------------------------------------------- */
    .int-search-wrap {
        max-width: 720px;
        margin: -2rem auto 0;
        position: relative;
        z-index: 5;
    }
    .int-search {
        position: relative;
        background: var(--da-surface);
        border-radius: var(--int-radius);
        box-shadow:
            0 22px 50px rgba(15, 23, 28, .12),
            0 6px 16px rgba(15, 23, 28, .06);
        display: flex; align-items: center; gap: .5rem;
        padding: .35rem .35rem .35rem 1rem;
        border: 1px solid rgba(15,23,28,.04);
    }
    .int-search__icon {
        color: var(--da-primary);
        font-size: 1.25rem;
        flex-shrink: 0;
    }
    .int-search__input {
        flex: 1;
        border: 0;
        outline: 0;
        background: transparent;
        font-size: 1.05rem;
        padding: .9rem .25rem;
        line-height: 1.4;
        min-width: 0;
    }
    .int-search__input::placeholder { color: var(--da-faint); }
    /* Hides WebKit/Chrome's native clear button — our own
       .int-search__clear matches the page. */
    .int-search__input::-webkit-search-cancel-button,
    .int-search__input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; }
    .int-search__clear {
        background: transparent;
        border: 0;
        color: var(--da-faint);
        font-size: 1rem;
        padding: .55rem .65rem;
        border-radius: 50%;
        cursor: pointer;
        transition: background .15s;
    }
    .int-search__clear:hover { background: var(--da-well); color: var(--da-ink-2); }
    .int-search__clear[hidden] { display: none; }

    /* Dropdown ------------------------------------------------------- */
    .int-dropdown {
        position: absolute;
        top: calc(100% + .5rem);
        left: 0; right: 0;
        background: var(--da-surface);
        border-radius: var(--int-radius);
        box-shadow:
            0 22px 50px rgba(15, 23, 28, .14),
            0 6px 16px rgba(15, 23, 28, .07);
        border: 1px solid rgba(15,23,28,.05);
        overflow: hidden;
        max-height: 420px;
        overflow-y: auto;
    }
    .int-dropdown[hidden] { display: none; }
    .int-dropdown__group {
        padding: .4rem 0;
    }
    .int-dropdown__group + .int-dropdown__group {
        border-top: 1px solid var(--da-line);
    }
    .int-dropdown__heading {
        font-size: .68rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .08em;
        color: var(--da-faint);
        padding: .55rem 1rem .35rem;
    }
    .int-dropdown__row {
        display: flex; align-items: center; gap: .85rem;
        padding: .65rem 1rem;
        cursor: pointer;
        transition: background .12s;
        border: 0;
        background: transparent;
        width: 100%;
        text-align: left;
    }
    .int-dropdown__row:hover,
    .int-dropdown__row.is-active {
        background: var(--da-primary-soft, var(--da-primary-soft));
    }
    .int-dropdown__icon {
        width: 36px; height: 36px;
        border-radius: 10px;
        display: inline-flex; align-items: center; justify-content: center;
        flex-shrink: 0; font-size: 1.05rem;
    }
    .int-dropdown__icon--pathology  { background: var(--da-clay-soft,    var(--da-clay-soft)); color: var(--da-clay-ink); }
    .int-dropdown__icon--medication { background: var(--da-primary-soft, var(--da-primary-soft)); color: var(--da-primary-dark); }
    .int-dropdown__icon--food       { background: var(--da-sand-soft,    var(--da-sand-soft)); color: var(--da-sand-ink); }
    .int-dropdown__body { flex: 1; min-width: 0; }
    .int-dropdown__name { font-weight: 600; font-size: .95rem; color: var(--da-ink); line-height: 1.3; }
    .int-dropdown__sub  { font-size: .78rem; color: var(--da-faint); margin-top: .1rem; line-height: 1.3; }
    .int-dropdown__empty {
        padding: 1.25rem 1rem;
        text-align: center;
        color: var(--da-faint);
        font-size: .88rem;
    }

    /* Suggestions (empty state) -------------------------------------- */
    .int-suggestions {
        max-width: 720px;
        margin: 1.5rem auto 0;
        display: flex; flex-wrap: wrap; gap: .5rem;
        align-items: center;
        justify-content: center;
    }
    .int-suggestions__label {
        font-size: .8rem; color: var(--da-faint);
        margin-right: .25rem;
    }
    .int-chip {
        font-size: .82rem; font-weight: 500;
        padding: .4rem .85rem;
        border-radius: 999px;
        border: 1px solid rgba(15,23,28,.08);
        background: var(--da-surface);
        color: var(--da-ink-2);
        cursor: pointer;
        transition: all .12s;
        display: inline-flex; align-items: center; gap: .35rem;
    }
    .int-chip:hover {
        border-color: var(--da-primary);
        color: var(--da-primary-dark);
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(26,161,121,.12);
    }

    /* Result card ---------------------------------------------------- */
    .int-result-area {
        max-width: 880px;
        margin: 2.5rem auto 0;
        min-height: 40px;
    }
    .int-result {
        background: var(--da-surface);
        border-radius: var(--int-radius);
        box-shadow:
            0 22px 50px rgba(15, 23, 28, .08),
            0 4px 12px rgba(15, 23, 28, .04);
        overflow: hidden;
        opacity: 0;
        transform: translateY(8px);
        animation: int-fade-in .25s ease forwards;
        border: 1px solid rgba(15,23,28,.04);
    }
    @keyframes int-fade-in { to { opacity: 1; transform: none; } }
    .int-result__header {
        display: flex; align-items: flex-start; gap: 1rem;
        padding: 1.6rem 1.75rem 1.2rem;
        border-bottom: 1px solid #eef1ef;
    }
    .int-result__bigicon {
        width: 64px; height: 64px;
        border-radius: 16px;
        display: inline-flex; align-items: center; justify-content: center;
        font-size: 1.8rem; flex-shrink: 0;
    }
    .int-result__bigicon--pathology  { background: var(--da-clay-soft,    var(--da-clay-soft)); color: var(--da-clay-ink); }
    .int-result__bigicon--medication { background: var(--da-primary-soft, var(--da-primary-soft)); color: var(--da-primary-dark); }
    .int-result__bigicon--food       { background: var(--da-sand-soft,    var(--da-sand-soft)); color: var(--da-sand-ink); }
    .int-result__title-block { flex: 1; min-width: 0; }
    .int-result__type-pill {
        display: inline-flex; align-items: center; gap: .3rem;
        font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
        padding: .2rem .55rem; border-radius: 999px;
        background: var(--da-well); color: var(--da-ink-2);
    }
    .int-result__title {
        font-size: 1.55rem; font-weight: 600; letter-spacing: -.015em;
        margin: .35rem 0 .25rem; line-height: 1.2; color: var(--da-ink);
    }
    .int-result__subtitle {
        font-size: .92rem; color: var(--da-faint); line-height: 1.4;
    }
    .int-result__meta {
        display: flex; gap: 1.2rem; flex-wrap: wrap;
        margin-top: .65rem;
        font-size: .82rem;
    }
    .int-result__meta-item { color: var(--da-ink-2); }
    .int-result__meta-item strong { color: var(--da-ink); font-weight: 600; }
    .int-result__body { padding: 1.4rem 1.75rem 1.75rem; }
    .int-result__section + .int-result__section { margin-top: 1.6rem; }
    .int-result__section-title {
        font-size: .72rem; font-weight: 700;
        text-transform: uppercase; letter-spacing: .08em;
        color: var(--da-faint);
        margin-bottom: .85rem;
    }
    .int-result__prose {
        font-size: .95rem; line-height: 1.65; color: #2d3a36;
        white-space: pre-wrap;
    }
    .int-result__empty {
        background: var(--da-subtle);
        border: 1px dashed #d6dcd9;
        border-radius: .6rem;
        padding: 1.1rem;
        text-align: center;
        font-size: .88rem;
        color: var(--da-faint);
    }

    /* Interaction rows ---------------------------------------------- */
    .int-row {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: .85rem 1rem;
        padding: 1rem;
        border: 1px solid #eef1ef;
        border-radius: .7rem;
        background: var(--da-subtle);
        transition: border-color .15s, background .15s;
    }
    .int-row + .int-row { margin-top: .65rem; }
    .int-row:hover { border-color: #d6dcd9; background: #fff; }

    .int-sev {
        display: inline-flex; align-items: center; gap: .3rem;
        font-size: .68rem; font-weight: 600; text-transform: uppercase;
        letter-spacing: .06em;
        padding: .35rem .65rem;
        border-radius: 999px;
        white-space: nowrap;
        height: fit-content;
    }
    .int-sev--contraindicated { background: #fde8e8; color: #971b1b; }
    .int-sev--major           { background: #fef0e6; color: #9a3a0a; }
    .int-sev--moderate        { background: var(--da-sand-soft, var(--da-sand-soft)); color: var(--da-sand, var(--da-sand)); }
    .int-sev--minor           { background: var(--da-stone-soft, #ece8e3); color: var(--da-stone, #6f655c); }

    .int-row__head {
        display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap;
        margin-bottom: .15rem;
    }
    .int-row__name {
        font-size: 1.02rem; font-weight: 700; color: var(--da-ink);
        line-height: 1.3;
    }
    .int-row__type {
        font-size: .7rem; font-weight: 600;
        color: var(--da-faint);
        padding: .12rem .45rem;
        border-radius: 4px;
        background: var(--da-well);
        text-transform: lowercase;
    }
    .int-row__effect {
        font-size: .92rem; color: #2d3a36; line-height: 1.5;
        margin-top: .15rem;
    }
    .int-row__meta {
        margin-top: .45rem;
        display: grid;
        grid-template-columns: 1fr;
        gap: .3rem;
        font-size: .82rem;
        color: #5a6562;
    }
    @media (min-width: 600px) {
        .int-row__meta { grid-template-columns: 1fr 1fr; }
    }
    .int-row__meta-label {
        font-size: .68rem; font-weight: 700;
        color: var(--da-faint);
        text-transform: uppercase;
        letter-spacing: .06em;
        margin-right: .35rem;
    }
    .int-row__src {
        display: inline-flex; align-items: center; gap: .3rem;
        font-size: .75rem;
        color: var(--da-faint);
        margin-top: .55rem;
    }
    .int-row__src .bi { color: var(--da-faint); }

    /* Plan template chips (pathology card) -------------------------- */
    .int-tpl-list { display: flex; flex-direction: column; gap: .5rem; }
    .int-tpl {
        display: flex; align-items: center; gap: .65rem;
        padding: .6rem .85rem;
        border: 1px solid #eef1ef;
        border-radius: .55rem;
        background: var(--da-subtle);
        font-size: .92rem;
        color: var(--da-ink);
    }
    .int-tpl__rel {
        font-size: .68rem; font-weight: 700;
        text-transform: uppercase; letter-spacing: .06em;
        padding: .15rem .5rem; border-radius: 4px;
        white-space: nowrap;
    }
    .int-tpl__rel--treat { background: var(--da-primary-soft, var(--da-primary-soft)); color: var(--da-primary-dark, var(--da-primary-dark)); }
    .int-tpl__rel--avoid { background: #fde8e8; color: #971b1b; }

    /* Disclaimer ---------------------------------------------------- */
    .int-disclaimer {
        max-width: 880px;
        margin: 1.5rem auto 0;
        padding: 1rem 1.25rem;
        background: #fcf7f1;
        border: 1px solid #f1e3d0;
        border-radius: .55rem;
        font-size: .82rem;
        color: #6b4f2f;
        display: flex; align-items: flex-start; gap: .65rem;
    }
    .int-disclaimer .bi { color: var(--da-clay); flex-shrink: 0; margin-top: .12rem; }

    /* Skeleton / loading -------------------------------------------- */
    .int-skel {
        max-width: 880px;
        margin: 2.5rem auto 0;
        height: 240px;
        border-radius: var(--int-radius);
        background:
            linear-gradient(100deg, rgba(0,0,0,.03) 30%, rgba(0,0,0,.06) 50%, rgba(0,0,0,.03) 70%)
            var(--da-subtle);
        background-size: 200% 100%;
        animation: int-shimmer 1.2s linear infinite;
        border: 1px solid #eef1ef;
    }
    @keyframes int-shimmer {
        from { background-position: 200% 0; }
        to   { background-position: -200% 0; }
    }

    /* FAQ block reuses .faq-list / .faq-item from layout. */

/* ── Former style="" attributes, one class per declaration set and view (2026-10-08).
   !important so they win as the inline style did; what a view's own script
   sets stays inline. ── */
/* ── auth/complete.html.php (auth-complete__*) ── */
.auth-complete__hero { min-height: 90dvh !important; }
.auth-complete__email { background: var(--da-bg) !important; }

/* ── auth/password-reset-confirm.html.php (pw-reset__*) ── */
.pw-reset__container { max-width: 520px !important; }
.pw-reset__icon { width: 52px !important; height: 52px !important; }

/* ── connectors/index.html.php (connectors__*) ── */
.connectors__offer-icon { font-size: 1.9rem !important; color: var(--da-sand) !important; }

/* ── connectors/show.html.php (connector__*) ── */
.connector__offer-icon { font-size: 1.7rem !important; color: var(--da-sand) !important; }

/* ── errors/404.html.php (web-404__*) ── */
.web-404__code { font-size: clamp(6rem,18vw,10rem) !important; letter-spacing: -.05em !important; color: var(--da-primary) !important; opacity: .1 !important; margin-bottom: -.3em !important; user-select: none !important; }

/* ── formulas/index.html.php (formulas__*) ── */
.formulas__icon { width: 2.5rem !important; height: 2.5rem !important; }

/* ── formulas/show.html.php (formula__*) ── */
.formula__container { max-width: 780px !important; }
.formula__intro { font-size: 1.02rem !important; line-height: 1.7 !important; }
.formula__container-wide { max-width: 820px !important; }

/* ── landing/contacto.html.php (contact__*) ── */
.contact__container { max-width: 980px !important; padding-bottom: 5rem !important; }
.contact__emoji { font-size: 3rem !important; }
.contact__aside-title { color: var(--da-ink) !important; }
.contact__note { background: var(--da-bg) !important; border: 1px solid rgba(15,44,37,.07) !important; }
.contact__message { height: 160px !important; }

/* ── landing/glosario.html.php (glossary__*) ── */
.glossary__container { max-width: 760px !important; }

/* ── landing/index.html.php (home__*) ── */
.home__rgpd-icon { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 4rem !important; height: 4rem !important; background: var(--da-surface) !important; color: #927752 !important; border-radius: 1rem !important; font-size: 1.8rem !important; }

/* ── landing/nosotros.html.php (about__*) ── */
.about__year { font-size: 3.5rem !important; }

/* ── landing/plans.html.php (pricing__*) ── */
.pricing__launch-note { color: var(--da-clay) !important; }
.pricing__billing-lead { max-width: 620px !important; }
.pricing__mock-switch { min-height: 0 !important; }
.pricing__mock-switch-input { width: 1.6em !important; height: .85em !important; }
.pricing__mock-plan-current { background: var(--da-primary-soft) !important; }

/* ── landing/rgpd.html.php (rgpd__*) ── */
.rgpd__context { max-width: 880px !important; }
.rgpd__security { max-width: 860px !important; }
.rgpd__point { color: #44504b !important; }
.rgpd__point-icon { color: var(--da-primary) !important; }
.rgpd__subprocessors { max-width: 980px !important; }
.rgpd__cta { max-width: 680px !important; }

/* ── manual/index.html.php (manual-index__*) ── */
.manual-index__soon-badge { font-size: .6rem !important; }

/* ── partials/honeypot.html.php (honeypot__*) ── */
.honeypot__field { left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }

/* ── partials/signup-modal.html.php (signup-modal__*) ── */
.signup-modal__emoji { font-size: 2.5rem !important; }

/* ── partials/marketing/content-sections.html.php (mkt-sections__*) ── */
.mkt-sections__soon-badge { font-size: .6rem !important; }

/* ── partials/mockups/agenda-week.html.php (mk-agenda-week__*) ── */
.mk-agenda-week__now { top: 50% !important; }

/* ── partials/mockups/billing-dashboard.html.php (mk-billing__*) ── */
.mk-billing__bar-h42 { height: 42% !important; }
.mk-billing__bar-h55 { height: 55% !important; }
.mk-billing__bar-h38 { height: 38% !important; }
.mk-billing__bar-h62 { height: 62% !important; }
.mk-billing__bar-h70 { height: 70% !important; }
.mk-billing__bar-h80 { height: 80% !important; }
.mk-billing__bar-h92 { height: 92% !important; }
.mk-billing__invoices { background: var(--da-surface) !important; }

/* ── partials/mockups/centro-agenda.html.php (mk-centre-agenda__*) ── */
.mk-centre-agenda__btn { padding: .2rem .6rem !important; }
.mk-centre-agenda__chip-blue { background: #e8f0fd !important; color: #1a56db !important; }
.mk-centre-agenda__dot-blue { display: inline-block !important; width: 7px !important; height: 7px !important; background: #1a56db !important; }
.mk-centre-agenda__chip-orange { background: #fdf0e8 !important; color: #c05621 !important; }
.mk-centre-agenda__dot-orange { display: inline-block !important; width: 7px !important; height: 7px !important; background: #c05621 !important; }
.mk-centre-agenda__chip-green { background: #f0fdf4 !important; color: #166534 !important; }
.mk-centre-agenda__dot-green { display: inline-block !important; width: 7px !important; height: 7px !important; background: #166534 !important; }
.mk-centre-agenda__head-row { grid-template-columns: 72px 1fr 1fr 1fr !important; }
.mk-centre-agenda__row { grid-template-columns: 72px 1fr 1fr 1fr !important; align-items: start !important; }
.mk-centre-agenda__pro-blue { padding-top: 3px !important; color: #1a56db !important; }
.mk-centre-agenda__slot-blue { background: #e8f0fd !important; }
.mk-centre-agenda__slot-name-blue { color: #1a56db !important; }
.mk-centre-agenda__slot-meta-blue { color: #5a7ec9 !important; }
.mk-centre-agenda__pro-orange { padding-top: 3px !important; color: #c05621 !important; }
.mk-centre-agenda__slot-orange { background: #fdf0e8 !important; }
.mk-centre-agenda__slot-name-orange { color: #c05621 !important; }
.mk-centre-agenda__slot-meta-orange { color: #c07840 !important; }
.mk-centre-agenda__pro-green { padding-top: 3px !important; color: #166534 !important; }
.mk-centre-agenda__slot-green { background: #f0fdf4 !important; }
.mk-centre-agenda__slot-name-green { color: #166534 !important; }
.mk-centre-agenda__slot-meta-green { color: #4a9e6a !important; }

/* ── partials/mockups/doc-analysis.html.php (mk-doc__*) ── */
.mk-doc__group-label { letter-spacing: .06em !important; }
.mk-doc__switch { transform: scale(.85) !important; transform-origin: left !important; }
.mk-doc__row-dim { opacity: .7 !important; }
.mk-doc__btn { padding: .3rem .75rem !important; }

/* ── partials/mockups/hero-client.html.php (mk-hero-client__*) ── */
.mk-hero-client__macro-28 { width: 28% !important; }
.mk-hero-client__macro-44 { width: 44% !important; }

/* ── partials/mockups/holded-sync.html.php (mk-holded__*) ── */
.mk-holded__icon-app { color: var(--da-primary) !important; }
.mk-holded__icon-holded { color: var(--da-ink) !important; }

/* ── partials/mockups/onboarding-progress.html.php (mk-onboarding__*) ── */
.mk-onboarding__step-pending { color: #6f7975 !important; }

/* ── partials/mockups/photo-nutrition.html.php (mk-photo__*) ── */
.mk-photo__dish-name { margin-bottom: .85rem !important; }

/* ── partials/mockups/plan-generator.html.php (mk-plan-gen__*) ── */
.mk-plan-gen__btn { padding: .3rem .75rem !important; }
.mk-plan-gen__draft-note { background: #e8f7f1 !important; }

/* ── public/booking-centre.html.php (pub-booking-centre__*) ── */
.pub-booking-centre__head { background: linear-gradient(180deg, var(--da-primary-soft), #ffffff) !important; }
.pub-booking-centre__avatar { width: 44px !important; height: 44px !important; object-fit: cover !important; }
.pub-booking-centre__initial { width: 44px !important; height: 44px !important; background: var(--da-primary-soft) !important; }

/* ── public/booking-change.html.php (pub-booking-change__*) ── */
.pub-booking-change__page { background: #f5f7f6 !important; min-height: 100vh !important; padding: 32px 16px !important; }
.pub-booking-change__container { max-width: 480px !important; }

/* ── public/booking-status.html.php (pub-booking-status__*) ── */
.pub-booking-status__page { background: #f5f7f6 !important; min-height: 100vh !important; padding: 32px 16px !important; }
.pub-booking-status__container { max-width: 480px !important; }
.pub-booking-status__amount { font-variant-numeric: tabular-nums !important; }
.pub-booking-status__payment { min-height: 120px !important; }

/* ── public/booking.html.php (pub-booking__*) ── */
.pub-booking__head { background: linear-gradient(180deg, var(--da-primary-soft), #ffffff) !important; }
.pub-booking__avatar { width: 52px !important; height: 52px !important; object-fit: cover !important; }
.pub-booking__initial { width: 52px !important; height: 52px !important; }
.pub-booking__sent-icon { font-size: 2.75rem !important; color: var(--da-primary) !important; }

/* ── public/consent-done.html.php (pub-consent-done__*) ── */
.pub-consent-done__page { background: var(--da-subtle) !important; min-height: 60vh !important; padding: 48px 16px !important; }
.pub-consent-done__container { max-width: 640px !important; }
.pub-consent-done__icon { font-size: 3rem !important; color: var(--da-primary) !important; }

/* ── public/consent-expired.html.php (pub-consent-expired__*) ── */
.pub-consent-expired__page { background: var(--da-subtle) !important; min-height: 60vh !important; padding: 48px 16px !important; }
.pub-consent-expired__container { max-width: 640px !important; }
.pub-consent-expired__icon { font-size: 3rem !important; color: #cc7f00 !important; }

/* ── public/consent-sign.html.php (pub-consent-sign__*) ── */
.pub-consent-sign__page { background: var(--da-subtle) !important; min-height: 80vh !important; padding: 32px 16px !important; }
.pub-consent-sign__container { max-width: 880px !important; }
.pub-consent-sign__doc { max-height: 55vh !important; }

/* ── public/directory-index.html.php (pub-directory__*) ── */
.pub-directory__lede { max-width: 34rem !important; }
.pub-directory__search { max-width: 52rem !important; }
.pub-directory__avatar { width: 56px !important; height: 56px !important; object-fit: cover !important; }
.pub-directory__initial { width: 56px !important; height: 56px !important; font-size: 1.3rem !important; }
.pub-directory__name { font-size: 1.02rem !important; }

/* ── public/directory-profile.html.php (pub-directory-profile__*) ── */
.pub-directory-profile__head { background: linear-gradient(180deg, var(--da-primary-soft), #ffffff) !important; }
.pub-directory-profile__avatar { width: 104px !important; height: 104px !important; object-fit: cover !important; }
.pub-directory-profile__initial { width: 104px !important; height: 104px !important; font-size: 2.5rem !important; }

/* ── public/pay.html.php (pub-pay__*) ── */
.pub-pay__page { background: #f5f7f6 !important; min-height: 100vh !important; padding: 32px 16px !important; }
.pub-pay__container { max-width: 480px !important; }
.pub-pay__amount { font-variant-numeric: tabular-nums !important; }
.pub-pay__payment { min-height: 120px !important; }

/* ── tools/disbiosis.html.php (tool-dysbiosis__*) ── */
.tool-dysbiosis__progress { height: 6px !important; }

/* ── tools/foto-nutricional.html.php (tool-photo__*) ── */
.tool-photo__dish-img { display: block !important; aspect-ratio: 4/3 !important; object-fit: cover !important; }
.tool-photo__badge { background: #e8f7f1 !important; color: var(--da-primary-dark) !important; }
.tool-photo__note { border-color: var(--da-primary) !important; background: #f0faf5 !important; }
.tool-photo__note-title { color: var(--da-primary-dark) !important; }
.tool-photo__note-text { color: #0f4f37 !important; }
.tool-photo__cta { background: var(--da-sand-soft) !important; border: 1px solid rgba(139,110,42,.18) !important; }

/* ── tools/hba1c.html.php (tool-hba1c__*) ── */
.tool-hba1c__eag-card { background: var(--da-primary-soft) !important; }

/* ── tools/index.html.php (tools-index__*) ── */
.tools-index__seo { --da-muted: #5b6b67 !important; }

/* ── tools/interacciones.html.php (tool-interactions__*) ── */
.tool-interactions__how { background: var(--da-subtle) !important; }
.tool-interactions__how-intro { max-width: 720px !important; line-height: 1.65 !important; }

/* ── tools/tmb.html.php (tool-bmr__*) ── */
.tool-bmr__tdee-card { background: var(--da-primary-soft) !important; }

/* ── landing/_comparison.html.php · «Comparativa» (style book `#pub-comparison`):
   two identities with their colour, one card per task with a row per side
   (the figures are editable estimates), and the basis with its readout. ── */
.da-compare { display: grid; gap: .9rem; }
.da-block-head--web { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2.5rem; margin-bottom: 1.5rem; }
.da-block-head--web > div { flex: 1 1 auto; min-width: 0; }
.da-block-head--web h2 {
    font-size: clamp(1.75rem, 1.2rem + 1.5vw, var(--fs-3xl)); font-weight: 700;
    letter-spacing: -.025em; line-height: 1.12; margin: .5rem 0 0; max-width: 22em; text-wrap: balance;
}
.da-block-head--web .da-block-head__note { flex: 0 1 300px; margin: 0; padding-bottom: .35rem; font-size: var(--fs-sm); color: var(--da-muted); line-height: 1.5; }
.da-compare__ids { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: .75rem; }
.da-compare__metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .75rem; }
.da-identity-card {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "tile body pill";
    align-items: center; gap: .5rem .9rem;
    background: var(--da-surface); border: 1px solid var(--da-line); border-radius: var(--r-lg); padding: .9rem 1rem;
}
.da-identity-card__tile {
    --tone: var(--da-s1); grid-area: tile; width: 40px; height: 40px; border-radius: var(--r-md);
    display: inline-flex; align-items: center; justify-content: center;
    background: color-mix(in srgb, var(--tone) 13%, #fff); color: color-mix(in srgb, var(--tone) 72%, #000); font-size: 1.1rem;
}
.da-identity-card__tile--s5 { --tone: var(--da-s5); }
.da-identity-card__mark { width: 22px; height: 22px; }
.da-identity-card__leaf { fill: var(--da-primary); }
.da-identity-card__vein { fill: none; stroke: #fff; stroke-width: 2.4; stroke-linecap: round; }
.da-identity-card__body { grid-area: body; min-width: 0; }
.da-identity-card__name { font-size: var(--fs-md); font-weight: 600; line-height: 1.3; color: var(--da-ink); }
.da-identity-card__meta { font-size: var(--fs-sm); line-height: 1.4; color: var(--da-muted); margin-top: .1rem; }
.da-identity-card > .da-pill { grid-area: pill; justify-self: end; }
.da-pill {
    display: inline-flex; align-items: center; gap: .45rem; padding: .3rem .7rem .3rem .6rem; border-radius: var(--r-pill);
    background: var(--da-surface); box-shadow: inset 0 0 0 1px var(--da-line-strong);
    font-size: var(--fs-xs); font-weight: 600; color: var(--da-ink-2); white-space: nowrap;
}
.da-dot { --dot: var(--da-s1); width: 8px; height: 8px; border-radius: 50%; background: var(--dot); display: inline-block; flex: 0 0 8px; }
.da-dot--s5 { --dot: var(--da-s5); }
.da-metric {
    position: relative; overflow: hidden; margin: 0; padding: 1rem 1.1rem .85rem;
    background: var(--da-surface); border: 1px solid var(--da-line); border-radius: var(--r-lg);
}
.da-card-accent::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: var(--da-s1); }
.da-card-accent.is-other::before { background: var(--da-s5); }
.da-metric__label { display: block; margin-bottom: .55rem; }
.da-metric__row { display: flex; align-items: center; gap: .55rem; margin: 0; padding: .45rem 0; border-top: 1px solid var(--da-line); font-size: var(--fs-sm); }
.da-metric__label + .da-metric__row { border-top: 0; }
.da-metric__name { flex: 1; min-width: 0; color: var(--da-muted); }
.da-metric__value { font-weight: 600; font-variant-numeric: tabular-nums; color: var(--da-ink); white-space: nowrap; }
.da-metric__value.is-best, .da-metric__value.is-best .da-metric__input { color: var(--da-primary-dark); }
.da-metric__input {
    width: 3.6rem; padding: .15rem .35rem; border: 1px solid var(--da-line); border-radius: var(--r-sm);
    background: var(--da-subtle); font: inherit; font-weight: 600; color: var(--da-ink); text-align: right;
}
.da-metric__input:hover { border-color: var(--da-line-strong); }
.da-metric__input:focus-visible { outline: 0; border-color: var(--da-primary); box-shadow: var(--focus); background: var(--da-surface); }
.da-metric__how { margin: .5rem 0 0; font-size: var(--fs-xs); line-height: 1.45; color: var(--da-faint); }
.da-basis {
    display: grid; grid-template-columns: minmax(0, 1.3fr) repeat(3, minmax(0, 1fr)) minmax(0, 1.3fr); gap: .75rem;
    padding: 1rem; background: var(--da-surface); border: 1px solid var(--da-line); border-radius: var(--r-lg);
}
.da-basis__intro h3 { font-size: var(--fs-lg); font-weight: 600; margin: .35rem 0; }
.da-basis__intro p { margin: 0; font-size: var(--fs-sm); color: var(--da-muted); line-height: 1.5; }
.da-basis__col { background: var(--da-subtle); border: 1px solid var(--da-line); border-radius: var(--r-md); padding: .8rem .85rem; }
.da-basis__col .eyebrow { display: block; margin-bottom: .45rem; }
.da-basis__col .num { display: block; margin-bottom: .15rem; font-size: var(--fs-lg); font-weight: 700; color: var(--da-ink); }
.da-basis__col p { margin: 0; font-size: var(--fs-sm); font-weight: 500; color: var(--da-ink-2); font-variant-numeric: tabular-nums; }
.da-readout {
    border-radius: var(--r-md); padding: .85rem .95rem;
    background: color-mix(in srgb, var(--da-primary) 8%, #fff); border: 1px solid color-mix(in srgb, var(--da-primary) 22%, #fff);
}
.da-readout .fs-result { font-size: var(--fs-2xl); font-weight: 700; letter-spacing: -.03em; color: var(--da-primary-deep); margin: .45rem 0 .15rem; }
.da-readout .fs-result .unit { font-size: .55em; font-weight: 600; color: var(--da-primary-dark); margin-left: .25em; }
.da-readout h4 { color: var(--da-primary-deep); font-size: var(--fs-base); font-weight: 600; margin: 0 0 .3rem; }
.da-readout p { margin: 0; font-size: var(--fs-xs); color: var(--da-muted); line-height: 1.5; }
@media (max-width: 991.98px) {
    .da-basis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .da-basis__intro, .da-readout { grid-column: 1 / -1; }
}
@media (max-width: 575.98px) {
    .da-basis { grid-template-columns: minmax(0, 1fr); }
    .da-identity-card { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "tile body" "pill pill"; }
    .da-identity-card > .da-pill { justify-self: start; }
}

/* ── partials/mockups/metrics-evolution.html.php · the record's «Tendencia» as a mockup ── */
.mk-trend__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; margin: 0 0 .5rem; }
.mk-trend__stats dt { font-size: var(--fs-xs); font-weight: 500; color: var(--da-muted); }
.mk-trend__stats dd { margin: 0; font-size: var(--fs-md); font-weight: 700; color: var(--da-ink); font-variant-numeric: tabular-nums; }
.mk-trend__stats dd small { font-size: .75em; font-weight: 500; color: var(--da-muted); }
.mk-trend__stats dd.is-good { color: var(--da-primary-dark); }
.mk-trend__chart { display: block; height: auto; margin-bottom: .5rem; }
.mk-trend__band { fill: color-mix(in srgb, var(--da-blue) 12%, #fff); }
.mk-trend__band-label { font-size: 13px; fill: var(--da-blue-ink); }
.mk-trend__line { fill: none; stroke: var(--da-primary); stroke-width: 2.25; stroke-linejoin: round; stroke-linecap: round; }
.mk-trend__dot { fill: var(--da-surface); stroke: var(--da-primary); stroke-width: 2; }
.mk-trend__dot--last { fill: var(--da-primary); stroke: var(--da-surface); }
.mk-trend__value { font-size: 14px; font-weight: 600; fill: var(--da-ink-2); }
.mk-trend__value--last { fill: var(--da-primary-dark); }
.mk-trend__axis { font-size: 13px; fill: var(--da-faint); }
.mk-trend__rows { border-top: 1px solid var(--da-line); }
.mk-trend__row { display: grid; grid-template-columns: minmax(0, 1fr) 72px 4.5rem 2.5rem; align-items: center; gap: .6rem; padding: .4rem 0; border-bottom: 1px solid var(--da-line); font-size: var(--fs-sm); }
.mk-trend__row:last-child { border-bottom: 0; }
.mk-trend__name { color: var(--da-muted); }
.mk-trend__spark { width: 72px; height: 18px; }
.mk-trend__spark polyline { fill: none; stroke: var(--da-primary); stroke-width: 1.75; stroke-linejoin: round; stroke-linecap: round; }
.mk-trend__num { font-weight: 600; color: var(--da-ink); text-align: right; font-variant-numeric: tabular-nums; }
.mk-trend__delta { font-size: var(--fs-xs); font-weight: 600; color: var(--da-primary-dark); text-align: right; font-variant-numeric: tabular-nums; }
