/* ============================================================
   MATCHEA V2 — EDITORIAL INTELLIGENCE TERMINAL
   VinciAnalytics · 2026

   Dirección visual:
   - crema / negro / naranja quirúrgico
   - menos cards, más superficies y reglas editoriales
   - números como lenguaje de sistema
   - serif solo cuando Matchea "habla"
   ============================================================ */

:root {
    --m-bg: #f4f0e8;
    --m-paper: #fffdf8;
    --m-ink: #050505;
    --m-charcoal: #171717;
    --m-muted: #6d6961;
    --m-soft: #9b958b;
    --m-line: #d8d1c5;
    --m-line-strong: #bdb4a6;
    --m-orange: #ff3b00;
    --m-orange-soft: #fff0e8;
    --m-green: #24412f;
    --m-green-soft: #edf3ee;
    --m-red: #8f3128;
    --m-red-soft: #f8ece9;
    --m-amber: #9a6400;
    --m-amber-soft: #f8f0df;

    --m-display: "Bebas Neue", sans-serif;
    --m-body: "Inter", sans-serif;
    --m-editorial: "Libre Baskerville", serif;

    --m-shadow: 0 24px 70px rgba(5,5,5,.08);
    --m-shadow-soft: 0 12px 32px rgba(5,5,5,.06);

    /* Compatibilidad con JS / estilos heredados */
    --va-black: var(--m-ink);
    --va-orange: var(--m-orange);
    --va-green: var(--m-green);
    --va-gray: var(--m-line);
    --va-text: var(--m-ink);
    --va-bg: var(--m-bg);
    --font-display: var(--m-display);
    --font-body: var(--m-body);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

/* Este CSS solo carga en Matchea: ensanchamos la página base. */
.page {
    max-width: 1220px !important;
    padding-inline: clamp(16px, 3vw, 40px) !important;
}

.matchea-app {
    width: 100%;
    color: var(--m-ink);
    font-family: var(--m-body);
    padding-bottom: 64px;
}

.matchea-app button,
.matchea-app input,
.matchea-app textarea {
    font: inherit;
}

.matchea-app button,
.matchea-app a {
    -webkit-tap-highlight-color: transparent;
}

/* ============================================================
   PRODUCT BAR
   ============================================================ */

.product-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 12px 0 18px;
    border-bottom: 1px solid var(--m-ink);
    margin-bottom: clamp(28px, 5vw, 58px);
}

.product-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--m-ink);
    text-decoration: none;
    min-width: 0;
}

.product-brand-mark {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    background: var(--m-ink);
    color: #fff;
    font-family: var(--m-editorial);
    font-size: .95rem;
    line-height: 1;
    flex: 0 0 auto;
}

.product-brand-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.product-brand-copy strong {
    font-family: var(--m-editorial);
    font-size: .92rem;
    font-weight: 400;
    letter-spacing: .01em;
}

.product-brand-copy small {
    color: var(--m-muted);
    font-size: .58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .14em;
}

.product-account {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    min-width: 0;
}

.product-edition {
    color: var(--m-soft);
    font-family: var(--m-display);
    font-size: .8rem;
    letter-spacing: .08em;
}

.nav-group {
    align-items: center;
    gap: 8px;
}

.nav-btn,
.nav-logout {
    min-height: 38px;
    border: 0;
    background: transparent;
    color: var(--m-ink);
    cursor: pointer;
}

.nav-btn {
    padding: 8px 12px;
    border: 1px solid var(--m-line-strong);
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}

.nav-btn:hover { border-color: var(--m-ink); }

.nav-btn-primary,
.nav-btn.orange {
    background: var(--m-ink);
    color: #fff;
    border-color: var(--m-ink);
}

.nav-btn-primary:hover,
.nav-btn.orange:hover {
    background: var(--m-orange);
    border-color: var(--m-orange);
}

.nav-name {
    color: var(--m-muted);
    font-size: .72rem;
    font-weight: 700;
    max-width: 160px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nav-badge {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 9px;
    border: 1px solid var(--m-line);
    color: var(--m-muted);
    background: transparent;
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.nav-badge.green {
    border-color: #a8b9ad;
    color: var(--m-green);
    background: var(--m-green-soft);
}

.nav-logout {
    padding: 6px 2px;
    color: var(--m-muted);
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.nav-logout:hover { color: var(--m-orange); }

/* ============================================================
   HERO
   ============================================================ */

.hero {
    margin-bottom: clamp(42px, 7vw, 84px);
}

.hero-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 22px;
}

.hero-tag,
.hero-code,
.eyebrow,
.section-index,
.result-ref,
.cta-meta,
.modal-kicker {
    font-size: .63rem;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: .16em;
    font-weight: 800;
}

.hero-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.hero-tag-line {
    width: 26px;
    height: 2px;
    background: var(--m-orange);
}

.hero-code { color: var(--m-soft); }

.hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr);
    gap: clamp(32px, 6vw, 96px);
    align-items: end;
}

.hero-title {
    margin: 0;
    max-width: 880px;
    font-family: var(--m-display);
    font-size: clamp(4rem, 8.3vw, 8.4rem);
    font-weight: 400;
    line-height: .86;
    letter-spacing: -.015em;
    text-transform: uppercase;
}

.hero-title span { color: var(--m-orange); }

.hero-sub {
    max-width: 720px;
    margin: 24px 0 0;
    color: #3f3b35;
    font-size: clamp(.96rem, 1.5vw, 1.08rem);
    line-height: 1.68;
}

.hero-proof {
    border-top: 1px solid var(--m-ink);
    border-bottom: 1px solid var(--m-ink);
    padding: 12px 0 4px;
}

.hero-proof-label {
    margin-bottom: 12px;
    color: var(--m-soft);
    font-size: .61rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .14em;
}

.hero-proof-row {
    display: grid;
    grid-template-columns: 30px 1fr;
    gap: 10px;
    align-items: baseline;
    padding: 10px 0;
    border-top: 1px solid var(--m-line);
}

.hero-proof-row span {
    color: var(--m-orange);
    font-family: var(--m-display);
    font-size: .95rem;
}

.hero-proof-row strong {
    font-size: .78rem;
    font-weight: 700;
}

.hero-system-line {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    margin-top: 30px;
    padding-top: 12px;
    border-top: 1px solid var(--m-line);
    color: var(--m-muted);
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.hero-system-line span::before {
    content: "—";
    margin-right: 8px;
    color: var(--m-orange);
}

/* ============================================================
   INPUT / INSTRUMENTO
   ============================================================ */

.form-section {
    animation: mFadeUp .35s ease both;
}

.instrument-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 28px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--m-ink);
}

.instrument-head h2 {
    margin: 5px 0 0;
    font-family: var(--m-display);
    font-size: clamp(2rem, 4vw, 3.5rem);
    line-height: .95;
    font-weight: 400;
    text-transform: uppercase;
}

.instrument-head p {
    max-width: 370px;
    margin: 0;
    color: var(--m-muted);
    font-size: .8rem;
    line-height: 1.55;
}

.eyebrow,
.section-index.dark { color: var(--m-muted); }

.instrument-grid {
    display: grid;
    grid-template-columns: .82fr 1.18fr;
    border-bottom: 1px solid var(--m-ink);
}

.instrument-pane {
    margin: 0;
    min-width: 0;
    padding: clamp(24px, 3vw, 38px) 0;
}

.instrument-pane:first-child {
    padding-right: clamp(24px, 4vw, 56px);
    border-right: 1px solid var(--m-line-strong);
}

.instrument-pane:last-child {
    padding-left: clamp(24px, 4vw, 56px);
}

.pane-head {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 20px;
}

.pane-head-actions {
    align-items: center;
    justify-content: space-between;
}

.pane-title-wrap {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.pane-number {
    color: var(--m-orange);
    font-family: var(--m-display);
    font-size: 1.35rem;
    line-height: 1;
    min-width: 28px;
}

.section-label {
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: 1.28rem;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.pane-kicker {
    margin-top: 4px;
    color: var(--m-muted);
    font-size: .7rem;
    line-height: 1.4;
}

.upload-zone {
    position: relative;
    min-height: 290px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 4px;
    padding: 24px;
    border: 1px solid var(--m-line-strong);
    background:
        linear-gradient(135deg, rgba(255,255,255,.44), rgba(255,255,255,0)),
        var(--m-paper);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
    overflow: hidden;
}

.upload-zone::before {
    content: "";
    position: absolute;
    inset: 18px 18px auto auto;
    width: 48px;
    height: 48px;
    border-top: 1px solid var(--m-line);
    border-right: 1px solid var(--m-line);
}

.upload-zone:hover,
.upload-zone.drag-over {
    border-color: var(--m-orange);
    background: var(--m-orange-soft);
}

.upload-zone input[type="file"] {
    position: absolute;
    inset: 0;
    z-index: 5;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.upload-monogram {
    margin-bottom: auto;
    color: var(--m-line-strong);
    font-family: var(--m-display);
    font-size: clamp(4rem, 8vw, 7rem);
    line-height: .8;
    letter-spacing: -.02em;
}

.upload-label {
    display: block;
    color: var(--m-ink);
    font-size: .88rem;
    font-weight: 800;
}

.upload-hint {
    color: var(--m-muted);
    font-size: .7rem;
    line-height: 1.4;
}

.upload-action {
    display: inline-block;
    margin-top: 16px;
    padding-bottom: 3px;
    border-bottom: 1px solid var(--m-orange);
    color: var(--m-ink);
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.upload-filename {
    display: none;
    align-items: center;
    gap: 12px;
    padding: 14px 0;
    border-top: 1px solid var(--m-line);
    border-bottom: 1px solid var(--m-line);
}

.upload-filename.visible { display: flex; }

.file-state-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--m-green);
    box-shadow: 0 0 0 5px rgba(36,65,47,.08);
    flex: 0 0 auto;
}

.file-state-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.file-state-label {
    color: var(--m-muted);
    font-size: .58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.file-state-copy strong {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .8rem;
}

/* CV guardado generado por upload.js V2 */
.saved-cv-panel {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 16px;
    align-items: center;
    min-height: 150px;
    padding: 22px 0;
    border-top: 1px solid var(--m-ink);
    border-bottom: 1px solid var(--m-line);
}

.saved-cv-meta {
    min-width: 0;
}

.saved-cv-kicker {
    display: block;
    margin-bottom: 8px;
    color: var(--m-green);
    font-size: .58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.saved-cv-name {
    display: block;
    margin-bottom: 6px;
    font-family: var(--m-editorial);
    font-size: 1rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.saved-cv-caption {
    color: var(--m-muted);
    font-size: .7rem;
}

.saved-cv-actions {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.saved-cv-btn {
    min-width: 116px;
    padding: 9px 12px;
    border: 1px solid var(--m-ink);
    background: transparent;
    color: var(--m-ink);
    cursor: pointer;
    font-size: .64rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.saved-cv-btn.primary {
    background: var(--m-ink);
    color: #fff;
}

.field-label {
    display: block;
    margin: 16px 0 7px;
    color: var(--m-muted);
    font-size: .59rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .13em;
}

.instrument-pane textarea {
    width: 100%;
    min-height: 148px;
    padding: 14px 0;
    border: 0;
    border-top: 1px solid var(--m-line);
    border-bottom: 1px solid var(--m-line);
    border-radius: 0;
    outline: 0;
    resize: vertical;
    background: transparent;
    color: var(--m-ink);
    font-family: var(--m-body);
    font-size: .88rem;
    line-height: 1.55;
    transition: border-color .15s ease;
}

.instrument-pane textarea:focus {
    border-top-color: var(--m-orange);
    border-bottom-color: var(--m-orange);
    box-shadow: none;
}

.instrument-pane textarea::placeholder { color: #aaa39a; }

.instrument-pane .offer-title-input {
    min-height: 48px;
    height: 48px;
    resize: none;
    font-weight: 700;
}

.btn-paste {
    flex: 0 0 auto;
    padding: 8px 0 5px;
    border: 0;
    border-bottom: 1px solid var(--m-ink);
    background: transparent;
    color: var(--m-ink);
    cursor: pointer;
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.btn-paste:hover { border-color: var(--m-orange); color: var(--m-orange); }

.offer-input-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 18px 0;
    color: var(--m-soft);
    font-size: .58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.offer-input-divider::before,
.offer-input-divider::after {
    content: "";
    height: 1px;
    background: var(--m-line);
    flex: 1;
}

.upload-zone-small {
    min-height: 128px;
    justify-content: center;
    align-items: flex-start;
    padding: 18px;
}

.upload-zone-small::before { display: none; }

.upload-monogram-small {
    margin: 0 0 8px;
    font-size: 1.7rem;
}

#screenshotPreviewList {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.screenshot-thumb {
    position: relative;
    width: 72px;
    height: 72px;
    border: 1px solid var(--m-line-strong);
    background: var(--m-paper);
    overflow: hidden;
}

.screenshot-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.screenshot-thumb .remove-thumb {
    position: absolute;
    top: 4px;
    right: 4px;
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border: 0;
    background: var(--m-ink);
    color: #fff;
    cursor: pointer;
    font-size: .65rem;
}

.analyze-row {
    display: grid;
    grid-template-columns: 1fr minmax(260px, 360px);
    gap: 28px;
    align-items: center;
    padding: 20px 0 0;
}

.analyze-note {
    display: flex;
    align-items: baseline;
    gap: 10px;
    color: var(--m-muted);
    font-size: .72rem;
    line-height: 1.5;
}

.analyze-note-index {
    color: var(--m-orange);
    font-family: var(--m-display);
    font-size: 1rem;
}

.btn-analyze,
.btn-unlock,
.btn-modal-submit {
    min-height: 54px;
    border: 1px solid var(--m-ink);
    border-radius: 0;
    background: var(--m-ink);
    color: #fff;
    cursor: pointer;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.btn-analyze {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 0 18px;
}

.btn-analyze span,
.btn-unlock span,
.btn-cta span { color: var(--m-orange); }

.btn-analyze:hover,
.btn-unlock:hover,
.btn-modal-submit:hover {
    background: var(--m-orange);
    border-color: var(--m-orange);
}

.btn-analyze:hover span,
.btn-unlock:hover span { color: #fff; }

.btn-analyze:disabled,
.btn-unlock:disabled,
.btn-modal-submit:disabled {
    opacity: .5;
    cursor: not-allowed;
}

.error-block {
    display: none;
    margin-top: 14px;
    padding: 12px 14px;
    border-left: 3px solid var(--m-red);
    background: var(--m-red-soft);
    color: var(--m-red);
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.5;
}

.error-block.visible { display: block; }

/* ============================================================
   METODOLOGÍA
   ============================================================ */

.how-section {
    margin-top: clamp(42px, 6vw, 72px);
    border-top: 1px solid var(--m-ink);
    border-bottom: 1px solid var(--m-ink);
}

.method-summary {
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    min-height: 88px;
    padding: 18px 0;
    cursor: pointer;
}

.method-summary::-webkit-details-marker { display: none; }

.method-summary-title {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.method-summary-title strong {
    font-family: var(--m-editorial);
    font-size: clamp(.92rem, 1.6vw, 1.12rem);
    font-weight: 400;
}

.method-summary-action {
    flex: 0 0 auto;
    color: var(--m-muted);
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.method-summary-action span {
    display: inline-block;
    margin-left: 6px;
    color: var(--m-orange);
    font-size: 1rem;
    transition: transform .2s ease;
}

.how-section[open] .method-summary-action span { transform: rotate(45deg); }

.method-body {
    padding: 0 0 28px;
}

.how-sub {
    max-width: 760px;
    margin: 0 0 22px;
    color: var(--m-muted);
    font-size: .82rem;
    line-height: 1.65;
}

.how-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--m-line);
    border-bottom: 1px solid var(--m-line);
}

.how-step {
    min-width: 0;
    padding: 20px 18px 22px 0;
}

.how-step + .how-step {
    padding-left: 18px;
    border-left: 1px solid var(--m-line);
}

.how-num {
    display: block;
    margin-bottom: 18px;
    color: var(--m-orange);
    font-family: var(--m-display);
    font-size: 1.45rem;
}

.how-step-title {
    margin-bottom: 6px;
    font-family: var(--m-display);
    font-size: 1.02rem;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.how-step-text {
    margin: 0;
    color: #4b4741;
    font-size: .76rem;
    line-height: 1.62;
}

.how-step-final { background: linear-gradient(90deg, transparent, rgba(255,59,0,.035)); }

.how-claim {
    margin: 26px 0 0;
    padding: 22px 0 0;
    border: 0;
    border-top: 1px solid var(--m-line);
}

.how-claim p {
    max-width: 850px;
    margin: 0;
    font-family: var(--m-editorial);
    font-size: clamp(1.05rem, 2.2vw, 1.5rem);
    line-height: 1.48;
}

.how-claim p span { color: var(--m-orange); }

.how-claim footer {
    margin-top: 10px;
    color: var(--m-muted);
    font-size: .68rem;
    line-height: 1.5;
}

/* ============================================================
   LOADING
   ============================================================ */

.loading-state {
    display: none;
    min-height: 520px;
    padding: clamp(28px, 6vw, 76px) 0;
    font-family: var(--m-body);
}

.loading-state.visible {
    display: block;
    animation: mFadeUp .3s ease both;
}

.loading-topline {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--m-ink);
    color: var(--m-muted);
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .14em;
}

.loading-text {
    margin: clamp(38px, 7vw, 76px) 0 10px;
    font-family: var(--m-display);
    font-size: clamp(3rem, 7vw, 6.6rem);
    line-height: .9;
    font-weight: 400;
    text-transform: uppercase;
}

.loading-sub {
    max-width: 600px;
    margin: 0;
    color: var(--m-muted);
    font-size: .88rem;
    line-height: 1.6;
}

.loading-track,
.loading-mini-line {
    position: relative;
    overflow: hidden;
    height: 2px;
    background: var(--m-line);
}

.loading-track {
    margin: clamp(34px, 6vw, 62px) 0 18px;
}

.loading-track span,
.loading-mini-line span {
    position: absolute;
    inset: 0 auto 0 -32%;
    width: 32%;
    background: var(--m-orange);
    animation: mScan 1.7s ease-in-out infinite;
}

.loading-route {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: 0;
}

.loading-route li {
    min-width: 0;
    padding: 12px 10px 0 0;
    border-right: 1px solid var(--m-line);
}

.loading-route li + li { padding-left: 12px; }
.loading-route li:last-child { border-right: 0; }

.loading-route span {
    display: block;
    margin-bottom: 5px;
    color: var(--m-orange);
    font-family: var(--m-display);
    font-size: .92rem;
}

.loading-route strong {
    display: block;
    font-size: .68rem;
    font-weight: 700;
}

.loading-mini-line {
    width: 100%;
    margin: 16px 0;
}

.plan-loading-copy {
    color: var(--m-muted);
    font-size: .76rem;
    font-weight: 700;
}

/* ============================================================
   RESULTADO
   ============================================================ */

.result-section {
    display: none;
    font-family: var(--m-body);
}

.result-section.visible {
    display: block;
    animation: mFadeUp .4s ease both;
}

.cached-notice,
.unlocked-banner {
    display: none;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 18px;
    padding: 11px 0;
    border-top: 1px solid var(--m-line);
    border-bottom: 1px solid var(--m-line);
    color: var(--m-muted);
    font-size: .72rem;
    line-height: 1.5;
}

.unlocked-banner { color: var(--m-green); }
.unlocked-banner.visible { display: flex; }

.notice-mark {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    border: 1px solid currentColor;
    border-radius: 50%;
    font-size: .61rem;
    font-weight: 800;
}

.result-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 22px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--m-ink);
}

.result-title {
    margin-bottom: 7px;
    color: var(--m-muted);
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .16em;
}

.result-job {
    margin: 0;
    padding: 0;
    border: 0;
    font-family: var(--m-display);
    font-size: clamp(1.8rem, 4vw, 3.6rem);
    font-weight: 400;
    line-height: .95;
    text-transform: uppercase;
}

.result-ref { color: var(--m-soft); }

.decision-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 210px;
    border-bottom: 1px solid var(--m-ink);
}

.verdict-block {
    position: relative;
    overflow: visible;
    margin: 0;
    padding: clamp(30px, 5vw, 58px) clamp(28px, 5vw, 64px) clamp(34px, 5vw, 62px) 0;
    border-radius: 0;
    background: transparent;
    color: var(--m-ink);
}

.verdict-block::after { display: none; }

.section-index {
    display: block;
    margin-bottom: 22px;
    color: var(--m-muted);
}

.verdict-badge {
    position: relative;
    z-index: 1;
    display: block;
    margin: 0 0 20px;
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: clamp(3rem, 7vw, 6.3rem);
    font-weight: 400;
    line-height: .88;
    letter-spacing: -.01em;
    text-transform: uppercase;
}

.verdict-badge::before { display: none; }
.verdict-badge.verdict-si { color: var(--m-green); }
.verdict-badge.verdict-si_con_ajustes { color: var(--m-orange); }
.verdict-badge.verdict-postulacion_dificil { color: #9b5b00; }
.verdict-badge.verdict-bajo_encaje { color: var(--m-red); }

.verdict-explanation {
    position: relative;
    z-index: 1;
    max-width: 760px;
    margin: 0;
    color: #272421;
    font-family: var(--m-editorial);
    font-size: clamp(1.05rem, 2.1vw, 1.5rem);
    line-height: 1.56;
}

.verdict-uncertainty {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    gap: 9px;
    max-width: 700px;
    margin-top: 22px;
    padding-top: 12px;
    border-top: 1px solid var(--m-line);
    color: var(--m-muted);
    font-size: .73rem;
    line-height: 1.55;
}

.score-mini-block {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 6px;
    margin: 0;
    padding: clamp(30px, 5vw, 58px) 0 clamp(34px, 5vw, 62px) clamp(28px, 4vw, 44px);
    border: 0;
    border-left: 1px solid var(--m-line-strong);
    border-radius: 0;
    background: transparent;
}

.score-mini-label {
    color: var(--m-muted);
    font-size: .61rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .14em;
}

.score-mini-num {
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: clamp(4.3rem, 8vw, 7rem);
    line-height: .8;
    letter-spacing: -.02em;
}

.score-mini-den {
    color: var(--m-muted);
    font-family: var(--m-display);
    font-size: 1rem;
}

.score-mini-foot {
    margin-top: 10px;
    color: var(--m-soft);
    font-size: .62rem;
    line-height: 1.45;
}

.analysis-section {
    margin: 0;
    padding: clamp(28px, 4.5vw, 52px) 0;
    border: 0;
    border-bottom: 1px solid var(--m-ink);
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    overflow: visible;
}

.analysis-section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}

.analysis-section-head .section-index { margin: 0; }

.card-header {
    padding: 0;
    border: 0;
}

.card-header-title {
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: clamp(1.35rem, 2.5vw, 2rem);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: .025em;
}

.card-header-icon { display: none; }
.card-body { padding: 0; }

/* Lectura rápida */
.badges-row {
    display: flex;
    gap: 0;
    margin: 0;
    border-top: 1px solid var(--m-line);
    border-bottom: 1px solid var(--m-line);
}

.badge {
    flex: 1;
    min-width: 0;
    padding: 18px 16px 18px 0;
    border: 0;
    border-right: 1px solid var(--m-line);
    border-radius: 0;
    background: transparent;
    text-align: left;
}

.badge + .badge { padding-left: 16px; }
.badge:last-child { border-right: 0; }

.badge-label {
    display: block;
    margin-bottom: 8px;
    color: var(--m-muted);
    font-size: .58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.badge-val {
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: 2rem;
    line-height: 1;
}

.reasons-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin: 0;
    border-top: 1px solid var(--m-line);
}

.reasons-col {
    padding: 20px 28px 0 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.reasons-col + .reasons-col {
    padding-left: 28px;
    border-left: 1px solid var(--m-line);
}

.reasons-col.positive,
.reasons-col.risk { border-left-width: 0; }
.reasons-col + .reasons-col.risk { border-left: 1px solid var(--m-line); }

.reasons-title {
    margin-bottom: 12px;
    color: var(--m-muted);
    font-size: .63rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .11em;
}

.reasons-title span {
    margin-right: 7px;
    color: var(--m-orange);
    font-family: var(--m-display);
    font-size: .9rem;
}

.item-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.item-list li {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    padding: 10px 0;
    border-bottom: 1px solid var(--m-line);
    color: #39352f;
    font-size: .82rem;
    line-height: 1.55;
}

.item-list li::before {
    content: "—";
    color: var(--m-soft);
    font-family: var(--m-display);
    font-size: 1rem;
}

.item-list.green li::before { content: "01"; color: var(--m-green); font-size: .75rem; }
.item-list.green li:nth-child(2)::before { content: "02"; }
.item-list.green li:nth-child(3)::before { content: "03"; }
.item-list.green li:nth-child(4)::before { content: "04"; }
.item-list.green li:nth-child(5)::before { content: "05"; }

.item-list li:last-child { border-bottom: 0; }
.locked-note { color: var(--m-muted) !important; }

/* Requisito por requisito */
.req-item {
    display: grid;
    grid-template-columns: minmax(180px, .72fr) minmax(0, 1.28fr);
    gap: 8px 28px;
    position: relative;
    margin: 0;
    padding: 18px 0;
    border: 0;
    border-bottom: 1px solid var(--m-line);
    border-left: 0;
    background: transparent;
}

.req-item::before {
    content: "";
    position: absolute;
    left: -14px;
    top: 22px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--m-line-strong);
}

.req-item.req-sev-critica::before { background: var(--m-red); }
.req-item.req-sev-importante::before { background: var(--m-orange); }
.req-item.req-sev-menor::before { background: var(--m-line-strong); }
.req-item:last-child { border-bottom: 0; }

.req-header {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0;
}

.req-status-badge,
.req-severity-label {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 7px;
    border: 1px solid var(--m-line);
    border-radius: 0;
    background: transparent;
    font-size: .56rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
}

.req-status-badge.status-cumple {
    color: var(--m-green);
    border-color: #aebeb2;
    background: var(--m-green-soft);
}

.req-status-badge.status-cumple_parcialmente {
    color: var(--m-amber);
    border-color: #d9c69d;
    background: var(--m-amber-soft);
}

.req-status-badge.status-no_se_encuentra_evidencia,
.req-status-badge.status-no_se_puede_determinar {
    color: var(--m-muted);
    background: #efebe3;
}

.req-status-badge.status-no_cumple {
    color: var(--m-red);
    border-color: #d6aaa4;
    background: var(--m-red-soft);
}

.req-severity-label.sev-critica { color: var(--m-red); }
.req-severity-label.sev-importante { color: var(--m-orange); }
.req-severity-label.sev-menor { color: var(--m-muted); }

.req-text {
    grid-column: 1;
    grid-row: 2 / span 3;
    margin: 0;
    color: var(--m-ink);
    font-weight: 700;
    font-size: .83rem;
    line-height: 1.45;
}

.req-explanation {
    grid-column: 2;
    margin: 0;
    color: #3f3a34;
    font-size: .8rem;
    line-height: 1.58;
}

.req-evidence {
    grid-column: 2;
    margin: 0;
    padding-left: 12px;
    border-left: 1px solid var(--m-line-strong);
    color: var(--m-muted);
    font-family: var(--m-editorial);
    font-size: .75rem;
    font-style: italic;
    line-height: 1.55;
}

.req-action {
    grid-column: 2;
    margin: 0;
    padding: 10px 12px;
    border: 0;
    border-left: 2px solid var(--m-orange);
    border-radius: 0;
    background: var(--m-orange-soft);
    color: #4a3027;
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.5;
}

/* Fortalezas / prioridades */
.priority-list {
    counter-reset: priority;
    border-top: 1px solid var(--m-line);
}

.priority-list li {
    counter-increment: priority;
    grid-template-columns: 44px 1fr;
    padding: 18px 0;
    font-family: var(--m-editorial);
    font-size: .92rem;
}

.priority-list li::before {
    content: "0" counter(priority);
    color: var(--m-orange);
    font-family: var(--m-display);
    font-size: 1.1rem;
}

/* ============================================================
   PAYWALL
   ============================================================ */

.paywall-block {
    display: none;
    margin: 0;
    border: 0;
    border-bottom: 1px solid var(--m-ink);
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    overflow: visible;
}

.paywall-header {
    display: grid;
    grid-template-columns: 1fr 1.7fr;
    gap: 24px;
    align-items: baseline;
    padding: clamp(28px, 4.5vw, 52px) 0 18px;
    border-bottom: 1px solid var(--m-line);
    background: transparent;
}

.paywall-header .section-index { margin: 0; }
.paywall-header-icon { display: none; }

.paywall-header-title {
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: clamp(2rem, 4.4vw, 4rem);
    line-height: .92;
    text-transform: uppercase;
    letter-spacing: .01em;
}

.paywall-header-title span { color: var(--m-orange); }

.paywall-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, .5fr);
    gap: 20px 48px;
    padding: 24px 0 clamp(30px, 5vw, 52px);
}

.paywall-intro {
    grid-column: 1 / -1;
    max-width: 720px;
    margin: 0;
    color: var(--m-muted);
    font-size: .82rem;
    line-height: 1.6;
}

.paywall-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.paywall-list li {
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 9px;
    padding: 9px 0;
    border-bottom: 1px solid var(--m-line);
    color: #38342f;
    font-size: .79rem;
    line-height: 1.5;
}

.paywall-list li::before {
    content: "+";
    color: var(--m-orange);
    font-family: var(--m-display);
    font-size: 1rem;
}

.btn-unlock {
    width: 100%;
    align-self: start;
    padding: 0 16px;
}

.paywall-sub-link {
    grid-column: 2;
    display: block;
    margin: -10px 0 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--m-ink);
    cursor: pointer;
    font-size: .72rem;
    font-weight: 700;
    text-align: left;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.paywall-sub-link:disabled { opacity: .5; cursor: wait; }

.paywall-note {
    grid-column: 2;
    margin: -6px 0 0;
    color: var(--m-muted);
    font-size: .65rem;
    line-height: 1.45;
    text-align: left;
}

/* ============================================================
   CTA DIAGNÓSTICO / RESET / REGISTER
   ============================================================ */

.cta-block {
    margin-top: clamp(30px, 5vw, 54px);
    padding: clamp(28px, 5vw, 54px);
    border: 0;
    border-radius: 0;
    background: var(--m-ink);
    color: #fff;
}

.cta-meta {
    margin-bottom: 28px;
    color: #8d8d8d;
}

.cta-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 30px 60px;
    align-items: end;
}

.cta-title {
    max-width: 620px;
    margin-bottom: 12px;
    font-family: var(--m-display);
    font-size: clamp(2.3rem, 5vw, 4.8rem);
    line-height: .9;
    text-transform: uppercase;
}

.cta-sub {
    max-width: 650px;
    margin: 0;
    color: #bcbcbc;
    font-size: .78rem;
    line-height: 1.65;
}

.btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-width: 270px;
    min-height: 52px;
    padding: 0 16px;
    border: 1px solid #fff;
    color: #fff;
    text-decoration: none;
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
}

.btn-cta:hover { border-color: var(--m-orange); }

.btn-new {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    width: 100%;
    min-height: 54px;
    margin-top: 14px;
    padding: 0 2px;
    border: 0;
    border-bottom: 1px solid var(--m-ink);
    border-radius: 0;
    background: transparent;
    color: var(--m-ink);
    cursor: pointer;
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.btn-new:hover { color: var(--m-orange); }

.cta-register-bar {
    position: sticky;
    z-index: 50;
    bottom: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 22px;
    padding: 14px 16px;
    border: 1px solid var(--m-ink);
    border-radius: 0;
    background: rgba(244,240,232,.96);
    box-shadow: var(--m-shadow-soft);
    backdrop-filter: blur(10px);
}

.cta-register-text {
    color: var(--m-muted);
    font-size: .71rem;
    line-height: 1.45;
}

.cta-register-text strong {
    display: block;
    margin-bottom: 2px;
    color: var(--m-ink);
    font-family: var(--m-editorial);
    font-size: .84rem;
    font-weight: 400;
}

.btn-register-cta {
    flex: 0 0 auto;
    min-height: 38px;
    padding: 0 13px;
    border: 1px solid var(--m-ink);
    border-radius: 0;
    background: var(--m-ink);
    color: #fff;
    cursor: pointer;
    font-size: .64rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
}

/* ============================================================
   MODALES
   ============================================================ */

.modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1000;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(5,5,5,.64);
    backdrop-filter: blur(6px);
}

.modal-overlay.visible {
    display: flex;
    animation: mFadeUp .2s ease both;
}

.modal-box {
    width: min(100%, 430px);
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--m-ink);
    border-radius: 0;
    background: var(--m-bg);
    box-shadow: var(--m-shadow);
}

.modal-box-wide { width: min(100%, 660px); }
.modal-box-history { width: min(100%, 560px); }

.modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--m-ink);
    background: var(--m-bg);
}

.modal-kicker {
    display: block;
    margin-bottom: 4px;
    color: var(--m-muted);
}

.modal-title {
    display: block;
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: 1.45rem;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: .025em;
}

.modal-close {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border: 1px solid var(--m-line-strong);
    background: transparent;
    color: var(--m-ink);
    cursor: pointer;
    font-size: 1.15rem;
}

.modal-close:hover { border-color: var(--m-orange); color: var(--m-orange); }

.modal-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-bottom: 1px solid var(--m-line);
}

.modal-tab {
    min-height: 46px;
    border: 0;
    border-right: 1px solid var(--m-line);
    background: var(--m-paper);
    color: var(--m-muted);
    cursor: pointer;
    font-size: .67rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.modal-tab:last-child { border-right: 0; }
.modal-tab.active { color: var(--m-orange); background: var(--m-orange-soft); }

.modal-body {
    overflow-y: auto;
    padding: 22px;
    background: var(--m-paper);
}

.modal-intro {
    margin: 0 0 18px;
    color: var(--m-muted);
    font-size: .79rem;
    line-height: 1.6;
}

.modal-field { margin-bottom: 16px; }

.modal-label {
    display: block;
    margin-bottom: 6px;
    color: var(--m-muted);
    font-size: .58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.modal-input {
    width: 100%;
    min-height: 46px;
    padding: 10px 0;
    border: 0;
    border-bottom: 1px solid var(--m-line-strong);
    border-radius: 0;
    outline: 0;
    background: transparent;
    color: var(--m-ink);
    font-size: .86rem;
}

.modal-input:focus { border-bottom-color: var(--m-orange); box-shadow: none; }

.btn-modal-submit {
    width: 100%;
    padding: 0 16px;
    margin-top: 6px;
}

.modal-error {
    display: none;
    margin-top: 10px;
    padding: 10px 12px;
    border-left: 2px solid var(--m-red);
    background: var(--m-red-soft);
    color: var(--m-red);
    font-size: .74rem;
    font-weight: 700;
}

.modal-error.visible { display: block; }

.modal-footer-note {
    margin-top: 14px;
    color: var(--m-muted);
    font-size: .65rem;
    line-height: 1.5;
    text-align: center;
}

.modal-footer-note a { color: inherit; text-underline-offset: 2px; }

.plans-grid {
    border-top: 1px solid var(--m-ink);
}

.plan-option {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    align-items: center;
    margin: 0;
    padding: 18px 0;
    border: 0;
    border-bottom: 1px solid var(--m-line);
    border-radius: 0;
    background: transparent;
    cursor: pointer;
    transition: padding .15s ease, color .15s ease;
}

.plan-option:hover { padding-left: 8px; color: var(--m-orange); transform: none; }

.plan-option-featured {
    position: relative;
}

.plan-option-featured::after {
    content: "BÚSQUEDA ACTIVA";
    position: absolute;
    right: 0;
    top: 4px;
    color: var(--m-orange);
    font-size: .5rem;
    font-weight: 800;
    letter-spacing: .1em;
}

.plan-name {
    display: block;
    color: inherit;
    font-family: var(--m-display);
    font-size: 1.38rem;
    text-transform: uppercase;
}

.plan-dias {
    display: block;
    margin-top: 3px;
    color: var(--m-muted);
    font-size: .68rem;
}

.plan-price {
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: 1.45rem;
}

.limit-offer-title {
    margin: 0 0 8px;
    font-family: var(--m-editorial);
    font-size: 1rem;
    line-height: 1.4;
}

.limit-offer-copy,
.limit-credits-copy {
    color: var(--m-muted);
    font-size: .78rem;
    line-height: 1.55;
}

.limit-credits-card {
    margin: 18px 0 14px;
    padding: 18px 0;
    border: 0;
    border-top: 1px solid var(--m-line);
    border-bottom: 1px solid var(--m-line);
    border-radius: 0;
    background: transparent;
}

.limit-credits-title {
    margin-bottom: 6px;
    font-family: var(--m-display);
    font-size: 1.25rem;
    text-transform: uppercase;
}

.text-action {
    display: block;
    width: 100%;
    min-height: 42px;
    padding: 0;
    border: 0;
    border-bottom: 1px solid var(--m-ink);
    background: transparent;
    color: var(--m-ink);
    cursor: pointer;
    font-size: .71rem;
    font-weight: 800;
    text-align: left;
}

.text-action:hover { color: var(--m-orange); }
.text-action-muted { color: var(--m-muted); border-bottom-color: var(--m-line); }

/* Historial / bitácora */
.history-list { border-top: 1px solid var(--m-ink); }

.history-item {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 15px 0;
    border-bottom: 1px solid var(--m-line);
    cursor: pointer;
    transition: padding .15s ease, color .15s ease;
}

.history-item:hover {
    margin: 0;
    padding: 15px 0 15px 6px;
    border-radius: 0;
    background: transparent;
    color: var(--m-orange);
}

.history-index {
    color: var(--m-soft);
    font-family: var(--m-display);
    font-size: .82rem;
}

.history-info { min-width: 0; }

.history-title {
    overflow: hidden;
    color: var(--m-ink);
    font-size: .79rem;
    font-weight: 700;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.history-date {
    margin-top: 3px;
    color: var(--m-muted);
    font-size: .62rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.history-score {
    width: auto;
    min-width: 54px;
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: 1.4rem;
    text-align: right;
}

.history-score.score-high { color: var(--m-green); }
.history-score.score-mid { color: var(--m-amber); }
.history-score.score-low { color: var(--m-red); }
.history-score.score-locked { color: var(--m-muted); font-size: .72rem; letter-spacing: .06em; }

.history-footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 18px;
}

.history-footer a {
    padding-bottom: 3px;
    border-bottom: 1px solid var(--m-orange);
    color: var(--m-ink);
    text-decoration: none;
    font-size: .66rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.history-empty,
.history-error {
    margin: 0;
    padding: 24px 0;
    color: var(--m-muted);
    font-family: var(--m-editorial);
    font-size: .9rem;
    line-height: 1.55;
    text-align: center;
}

/* Toasts: editorial, no "social proof popup" de SaaS */
.toast-testimonio {
    position: fixed;
    left: 20px;
    bottom: 24px;
    z-index: 900;
    max-width: 300px;
    padding: 14px 16px;
    border: 1px solid var(--m-line-strong);
    border-radius: 0;
    background: rgba(255,253,248,.97);
    box-shadow: var(--m-shadow-soft);
    backdrop-filter: blur(8px);
    animation: mToastIn .28s ease both;
}

.toast-testimonio.hiding { animation: mToastOut .28s ease both; }

.toast-quote {
    margin-bottom: 8px;
    color: #39352f;
    font-family: var(--m-editorial);
    font-size: .76rem;
    font-style: italic;
    line-height: 1.55;
}

.toast-perfil {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--m-muted);
    font-size: .57rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.toast-perfil::before { content: "—"; color: var(--m-orange); }

/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 900px) {
    .hero-grid {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .hero-proof { max-width: 480px; }

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

    .instrument-pane:first-child {
        padding-right: 0;
        border-right: 0;
        border-bottom: 1px solid var(--m-line-strong);
    }

    .instrument-pane:last-child { padding-left: 0; }

    .upload-zone { min-height: 230px; }

    .how-steps { grid-template-columns: 1fr 1fr; }
    .how-step:nth-child(3) { border-left: 0; border-top: 1px solid var(--m-line); padding-left: 0; }
    .how-step:nth-child(4) { border-top: 1px solid var(--m-line); }

    .decision-grid { grid-template-columns: 1fr 170px; }

    .paywall-header { grid-template-columns: 1fr; }
    .paywall-body { grid-template-columns: 1fr; }
    .paywall-sub-link,
    .paywall-note { grid-column: 1; }

    .cta-grid { grid-template-columns: 1fr; }
    .btn-cta { min-width: 0; width: 100%; }
}

@media (max-width: 680px) {
    .page { padding-inline: 14px !important; }
    .matchea-app { padding-bottom: 40px; }

    .product-bar {
        align-items: flex-start;
        padding-top: 6px;
        margin-bottom: 34px;
    }

    .product-brand-copy small,
    .product-edition,
    .nav-name { display: none; }

    .product-account { gap: 8px; }
    .nav-group { gap: 5px; }

    .nav-btn {
        min-height: 36px;
        padding: 7px 9px;
        font-size: .59rem;
    }

    .nav-badge { min-height: 28px; font-size: .55rem; }
    .nav-logout { font-size: .58rem; }

    .hero { margin-bottom: 44px; }
    .hero-meta { margin-bottom: 18px; }
    .hero-code { display: none; }

    .hero-title {
        font-size: clamp(3.6rem, 19vw, 5.8rem);
        line-height: .86;
    }

    .hero-sub {
        margin-top: 18px;
        font-size: .9rem;
        line-height: 1.62;
    }

    .hero-proof {
        margin-top: 0;
        max-width: none;
    }

    .hero-system-line {
        display: grid;
        grid-template-columns: 1fr;
        gap: 7px;
        margin-top: 24px;
    }

    .instrument-head {
        display: block;
        padding-bottom: 14px;
    }

    .instrument-head p {
        margin-top: 10px;
        max-width: none;
        font-size: .74rem;
    }

    .instrument-pane { padding: 24px 0; }

    .pane-head-actions {
        align-items: flex-start;
    }

    .btn-paste { padding-top: 2px; }

    .upload-zone {
        min-height: 190px;
        padding: 18px;
    }

    .upload-monogram { font-size: 4rem; }
    .upload-zone-small { min-height: 112px; }
    .upload-monogram-small { font-size: 1.35rem; }

    .saved-cv-panel {
        grid-template-columns: 1fr;
        min-height: 0;
        padding: 18px 0;
    }

    .saved-cv-actions { flex-direction: row; }
    .saved-cv-btn { flex: 1; min-width: 0; }

    .analyze-row {
        grid-template-columns: 1fr;
        gap: 14px;
        padding-top: 16px;
    }

    .btn-analyze { min-height: 56px; }

    .method-summary {
        align-items: flex-start;
        min-height: 78px;
    }

    .method-summary-action {
        width: 54px;
        overflow: hidden;
        white-space: nowrap;
    }

    .method-summary-action { color: transparent; }
    .method-summary-action span { color: var(--m-orange); }

    .how-steps { grid-template-columns: 1fr; }
    .how-step,
    .how-step + .how-step,
    .how-step:nth-child(3),
    .how-step:nth-child(4) {
        padding: 16px 0;
        border-left: 0;
        border-top: 1px solid var(--m-line);
    }
    .how-step:first-child { border-top: 0; }
    .how-num { margin-bottom: 8px; }

    .loading-state { min-height: 430px; padding-top: 28px; }
    .loading-text { font-size: clamp(3rem, 16vw, 5rem); }
    .loading-route {
        grid-template-columns: 1fr;
        gap: 0;
        border-top: 1px solid var(--m-line);
    }

    .loading-route li,
    .loading-route li + li {
        display: grid;
        grid-template-columns: 38px 1fr;
        align-items: baseline;
        padding: 9px 0;
        border-right: 0;
        border-bottom: 1px solid var(--m-line);
    }

    .loading-route span { margin: 0; }

    .result-head {
        align-items: flex-start;
    }
    .result-ref { display: none; }

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

    .verdict-block {
        padding: 28px 0 30px;
    }

    .verdict-badge {
        font-size: clamp(3rem, 17vw, 5.2rem);
    }

    .score-mini-block {
        display: grid;
        grid-template-columns: 1fr auto;
        align-items: end;
        gap: 4px 12px;
        padding: 18px 0;
        border-left: 0;
        border-top: 1px solid var(--m-line);
    }

    .score-mini-label { grid-column: 1; }
    .score-mini-block > div { grid-column: 2; grid-row: 1 / span 2; }
    .score-mini-num { font-size: 3.3rem; }
    .score-mini-foot { grid-column: 1; margin: 2px 0 0; }

    .analysis-section { padding: 28px 0; }
    .analysis-section-head {
        display: block;
        margin-bottom: 18px;
    }
    .analysis-section-head .card-header-title {
        display: block;
        margin-top: 7px;
    }

    .badges-row {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }

    .badge,
    .badge + .badge {
        padding: 14px 8px 14px 0;
    }
    .badge + .badge { padding-left: 8px; }
    .badge-label { font-size: .5rem; line-height: 1.3; }
    .badge-val { font-size: 1.6rem; }

    .reasons-grid { grid-template-columns: 1fr; }
    .reasons-col,
    .reasons-col + .reasons-col {
        padding: 18px 0 0;
        border-left: 0 !important;
    }
    .reasons-col + .reasons-col { border-top: 1px solid var(--m-line); margin-top: 14px; }

    .req-item {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 17px 0;
    }

    .req-header,
    .req-text,
    .req-explanation,
    .req-evidence,
    .req-action {
        grid-column: 1;
        grid-row: auto;
    }

    .req-text { margin-top: 4px; }
    .req-item::before { left: -8px; }

    .paywall-header { padding-top: 28px; }
    .paywall-header-title { font-size: 2.8rem; }
    .paywall-body { padding-bottom: 32px; gap: 16px; }

    .cta-block { padding: 26px 20px; }
    .cta-title { font-size: clamp(2.6rem, 13vw, 4rem); }

    .cta-register-bar {
        bottom: 8px;
        align-items: flex-end;
        padding: 12px;
    }

    .cta-register-text { font-size: .65rem; }
    .cta-register-text strong { font-size: .76rem; }
    .btn-register-cta { min-height: 36px; padding-inline: 10px; font-size: .58rem; }

    .modal-overlay { padding: 10px; align-items: flex-end; }
    .modal-box,
    .modal-box-wide,
    .modal-box-history {
        width: 100%;
        max-height: 92vh;
    }
    .modal-header { padding: 16px; }
    .modal-body { padding: 18px 16px; }

    .history-item {
        grid-template-columns: 30px minmax(0, 1fr) auto;
        gap: 9px;
    }

    .toast-testimonio {
        left: 12px;
        right: 12px;
        bottom: 12px;
        max-width: none;
    }
}

@media (max-width: 390px) {
    .product-brand-copy strong { font-size: .8rem; }
    .product-brand-mark { width: 28px; height: 28px; }
    .nav-btn { padding-inline: 7px; }
    .nav-badge { display: none; }

    .hero-title { font-size: 3.45rem; }
    .pane-title-wrap { gap: 9px; }
    .pane-head { gap: 9px; }
    .section-label { font-size: 1.16rem; }

    .badge-label { letter-spacing: .04em; }

    .cta-register-bar {
        position: static;
        flex-direction: column;
        align-items: stretch;
    }
    .btn-register-cta { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

@keyframes mScan {
    0% { transform: translateX(0); }
    55%, 100% { transform: translateX(410%); }
}

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

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

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

/* ============================================================
   MATCHEA 2.1 · CONTEXTO DE MERCADO + REPRESENTACIÓN
   Mantiene la lógica "instrumento editorial": datos sobre la
   superficie, sin sumar otro zoológico de cards/pills.
   ============================================================ */

.market-card,
.representation-card {
    position: relative;
}

.market-body {
    display: grid;
    gap: 0;
}

.market-lead {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 180px;
    gap: clamp(28px, 5vw, 70px);
    align-items: end;
    padding: 4px 0 26px;
    border-bottom: 1px solid var(--m-line);
}

.market-kicker {
    display: block;
    margin-bottom: 12px;
    color: var(--m-muted);
    font-size: .58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .13em;
}

.market-headline {
    display: block;
    max-width: 760px;
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: clamp(2rem, 4vw, 3.65rem);
    line-height: .93;
    letter-spacing: .015em;
    text-transform: uppercase;
}

.market-headline.is-muted { color: var(--m-muted); }

.market-explanation {
    max-width: 720px;
    margin: 14px 0 0;
    color: #4a453f;
    font-size: .84rem;
    line-height: 1.65;
}

.market-sample-stamp {
    padding-left: 18px;
    border-left: 1px solid var(--m-ink);
}

.market-sample-stamp strong {
    display: block;
    color: var(--m-orange);
    font-family: var(--m-display);
    font-size: clamp(2.7rem, 5vw, 4.3rem);
    line-height: .82;
}

.market-sample-stamp span {
    display: block;
    margin-top: 9px;
    color: var(--m-muted);
    font-size: .58rem;
    font-weight: 800;
    line-height: 1.45;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.market-caution {
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 18px;
    padding: 16px 0;
    border-bottom: 1px solid var(--m-line);
}

.market-caution > span {
    color: var(--m-orange);
    font-size: .58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .11em;
}

.market-caution p {
    margin: 0;
    color: var(--m-muted);
    font-size: .75rem;
    line-height: 1.55;
}

.market-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid var(--m-line);
}

.market-metric {
    min-width: 0;
    padding: 20px 20px 20px 0;
    border-right: 1px solid var(--m-line);
}

.market-metric + .market-metric { padding-left: 20px; }
.market-metric:last-child { border-right: 0; }

.market-metric span {
    display: block;
    margin-bottom: 7px;
    color: var(--m-muted);
    font-size: .56rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .09em;
}

.market-metric strong {
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: 1.55rem;
    line-height: 1;
    text-transform: uppercase;
}

.market-trend,
.market-terms-block {
    padding: 22px 0;
    border-bottom: 1px solid var(--m-line);
}

.market-trend p {
    max-width: 760px;
    margin: 0;
    color: #39352f;
    font-family: var(--m-editorial);
    font-size: .93rem;
    line-height: 1.55;
}

.market-term-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 32px;
}

.market-term-topline {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 7px;
    color: #39352f;
    font-size: .72rem;
    font-weight: 700;
}

.market-term-topline strong {
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: 1rem;
}

.market-term-track {
    height: 3px;
    background: var(--m-line);
    overflow: hidden;
}

.market-term-track span {
    display: block;
    height: 100%;
    background: var(--m-orange);
}

.market-footnote,
.market-source-note {
    margin: 10px 0 0;
    color: var(--m-soft);
    font-size: .6rem;
    line-height: 1.5;
}

.market-source-note {
    margin-top: 14px;
}

/* Representación: una lectura editorial, no otro score */
.representation-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(170px, .45fr);
    gap: clamp(30px, 6vw, 84px);
    align-items: end;
    padding-top: 2px;
}

.representation-status {
    max-width: 760px;
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: clamp(2rem, 4.4vw, 4rem);
    line-height: .92;
    text-transform: uppercase;
    letter-spacing: .01em;
}

.representation-summary {
    max-width: 720px;
    margin: 18px 0 0;
    color: #39352f;
    font-family: var(--m-editorial);
    font-size: clamp(.94rem, 1.7vw, 1.12rem);
    line-height: 1.62;
}

.representation-meta {
    min-height: 120px;
    padding-left: 18px;
    border-left: 1px solid var(--m-ink);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 8px;
    color: var(--m-muted);
    font-size: .62rem;
    font-weight: 700;
    line-height: 1.45;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.representation-meta-number,
.representation-meta-word {
    color: var(--m-orange);
    font-family: var(--m-display);
    font-size: 2.8rem;
    line-height: .85;
    letter-spacing: 0;
}

.representation-meta-word { font-size: 1.55rem; }

.representation-card[data-status="bien_representado"] .representation-status,
.representation-card[data-status="bien_representado"] .representation-meta-number,
.representation-card[data-status="bien_representado"] .representation-meta-word {
    color: var(--m-green);
}

.representation-card[data-status="subrepresentacion_alta"] .representation-status,
.representation-card[data-status="subrepresentacion_alta"] .representation-meta-number,
.representation-card[data-status="subrepresentacion_alta"] .representation-meta-word {
    color: var(--m-red);
}

.representation-card[data-status="no_determinable"] .representation-status,
.representation-card[data-status="no_determinable"] .representation-meta-number,
.representation-card[data-status="no_determinable"] .representation-meta-word {
    color: var(--m-muted);
}

/* CTA aparece solo cuando commercial_action lo indica. */
.cta-representation .cta-meta::before {
    content: "05 / ";
    color: var(--m-orange);
}

@media (max-width: 680px) {
    .market-lead,
    .representation-layout {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .market-sample-stamp,
    .representation-meta {
        min-height: 0;
        padding: 14px 0 0;
        border-left: 0;
        border-top: 1px solid var(--m-ink);
    }

    .market-sample-stamp {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 14px;
        align-items: end;
    }

    .market-sample-stamp strong { font-size: 2.7rem; }
    .market-sample-stamp span { margin: 0 0 2px; }

    .market-metrics {
        grid-template-columns: 1fr;
    }

    .market-metric,
    .market-metric + .market-metric {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 18px;
        padding: 14px 0;
        border-right: 0;
        border-bottom: 1px solid var(--m-line);
    }

    .market-metric:last-child { border-bottom: 0; }
    .market-metric span { margin: 0; }
    .market-metric strong { font-size: 1.2rem; text-align: right; }

    .market-term-list {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .market-caution {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .representation-status { font-size: clamp(2.35rem, 12vw, 3.55rem); }
    .representation-summary { margin-top: 14px; }

    .representation-meta {
        flex-direction: row;
        align-items: baseline;
        justify-content: flex-start;
        gap: 12px;
    }

    .representation-meta-number { font-size: 2.2rem; }
    .representation-meta-word { font-size: 1.25rem; }
}

/* ============================================================
   AUTH / RECUPERACIÓN / VERIFICACIÓN · V4
   Mantiene el lenguaje editorial-instrumental de Matchea.
   ============================================================ */

.auth-secondary-action {
    margin-top: 12px;
}

.auth-secondary-action a,
.auth-back-action {
    color: var(--m-muted);
    text-decoration-color: var(--m-line-strong);
    text-underline-offset: 3px;
}

.auth-secondary-action a:hover,
.auth-back-action:hover {
    color: var(--m-orange);
}

.auth-back-action {
    width: 100%;
    margin-top: 14px;
    padding: 10px 0 0;
    border: 0;
    border-top: 1px solid var(--m-line);
    background: transparent;
    text-align: left;
    cursor: pointer;
    font-family: var(--m-body);
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.auth-flow-status {
    margin-top: 18px;
    padding: 16px 0 0;
    border-top: 1px solid var(--m-ink);
}

.auth-flow-status-index {
    display: block;
    margin-bottom: 10px;
    color: var(--m-orange);
    font-family: var(--m-body);
    font-size: .58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.auth-flow-status strong {
    display: block;
    margin-bottom: 6px;
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: 1.3rem;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: .025em;
}

.auth-flow-status p {
    margin: 0;
    color: var(--m-muted);
    font-size: .76rem;
    line-height: 1.6;
}

.auth-verification-mark {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin-bottom: 20px;
    border: 1px solid var(--m-ink);
    color: var(--m-orange);
    font-family: var(--m-display);
    font-size: 1.5rem;
    line-height: 1;
}

.auth-verification-mark.is-success {
    border-color: var(--m-green);
    color: var(--m-green);
}

.auth-verification-mark.is-error {
    border-color: var(--m-red);
    color: var(--m-red);
}

.auth-verification-copy {
    max-width: 40ch;
    margin: 0 0 18px;
    color: var(--m-ink);
    font-family: var(--m-editorial);
    font-size: 1rem;
    line-height: 1.55;
}

.auth-verification-loading {
    margin: 0;
}

@media (max-width: 600px) {
    .auth-flow-status strong { font-size: 1.15rem; }
    .auth-verification-copy { font-size: .94rem; }
}

/* ============================================================
   V5 · SYNTHESIS / DECISIÓN INTEGRADA
   ============================================================ */

.loading-route.loading-route-six {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.synthesis-teaser {
    grid-template-columns: minmax(150px, .55fr) minmax(220px, 1fr) minmax(240px, 1.15fr);
    gap: 0;
    align-items: stretch;
    margin-top: 22px;
    border-top: 1px solid var(--m-ink);
    border-bottom: 1px solid var(--m-line);
}

.synthesis-teaser-item {
    padding: 16px 18px 16px 0;
    border-right: 1px solid var(--m-line);
}

.synthesis-teaser-item + .synthesis-teaser-item { padding-left: 18px; }

.synthesis-teaser-item span {
    display: block;
    margin-bottom: 7px;
    color: var(--m-muted);
    font-size: .56rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.synthesis-teaser-item strong {
    display: block;
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: clamp(1.35rem, 2.3vw, 1.9rem);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.synthesis-teaser > p {
    margin: 0;
    padding: 16px 0 16px 18px;
    color: var(--m-muted);
    font-family: var(--m-editorial);
    font-size: .72rem;
    line-height: 1.6;
}

.synthesis-teaser[data-priority="alta"] .synthesis-teaser-item:first-child strong { color: var(--m-green); }
.synthesis-teaser[data-priority="media"] .synthesis-teaser-item:first-child strong { color: var(--m-orange); }
.synthesis-teaser[data-priority="baja"] .synthesis-teaser-item:first-child strong { color: var(--m-red); }

.req-market-context {
    grid-column: 2;
    margin-top: 2px;
    padding: 12px 14px;
    border-top: 1px solid var(--m-line);
    border-bottom: 1px solid var(--m-line);
    background: rgba(36, 65, 47, .035);
}

.req-market-context-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 7px;
}

.req-market-context-head span {
    color: var(--m-muted);
    font-size: .56rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.req-market-context-head strong {
    color: var(--m-green);
    font-family: var(--m-display);
    font-size: .9rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.req-market-context p {
    margin: 0;
    color: #4b4943;
    font-size: .72rem;
    line-height: 1.55;
}

.synthesis-card {
    position: relative;
    border-bottom-color: var(--m-ink);
}

.synthesis-card::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    background: var(--m-orange);
}

.synthesis-decision-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, .75fr);
    gap: clamp(34px, 6vw, 84px);
    align-items: start;
    padding: 18px 0 28px;
}

.synthesis-kicker,
.synthesis-actions-head {
    margin-bottom: 13px;
    color: var(--m-muted);
    font-size: .58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .11em;
}

.synthesis-summary {
    max-width: 760px;
    margin: 0;
    color: var(--m-ink);
    font-family: var(--m-editorial);
    font-size: clamp(1.15rem, 2.1vw, 1.65rem);
    line-height: 1.55;
}

.synthesis-meta-grid {
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    border-top: 1px solid var(--m-ink);
    border-bottom: 1px solid var(--m-line);
}

.synthesis-meta-item {
    min-width: 0;
    padding: 15px 14px 15px 0;
}

.synthesis-meta-item + .synthesis-meta-item {
    padding-left: 14px;
    border-left: 1px solid var(--m-line);
}

.synthesis-meta-item > span {
    display: block;
    margin-bottom: 9px;
    color: var(--m-muted);
    font-size: .55rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.synthesis-meta-item strong {
    display: block;
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: clamp(1.5rem, 2.8vw, 2.4rem);
    font-weight: 400;
    line-height: .95;
    text-transform: uppercase;
}

.synthesis-meta-item small {
    display: block;
    margin-top: 7px;
    color: var(--m-muted);
    font-size: .62rem;
    line-height: 1.3;
}

.synthesis-meta-item[data-priority="alta"] strong { color: var(--m-green); }
.synthesis-meta-item[data-priority="media"] strong { color: var(--m-orange); }
.synthesis-meta-item[data-priority="baja"] strong { color: var(--m-red); }

.synthesis-actions {
    margin-top: 12px;
    padding-top: 26px;
    border-top: 1px solid var(--m-line);
}

.synthesis-action-item {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 24px;
    padding: 22px 0;
    border-bottom: 1px solid var(--m-line);
}

.synthesis-action-number {
    color: var(--m-orange);
    font-family: var(--m-display);
    font-size: 1.35rem;
    line-height: 1;
}

.synthesis-action-copy h3 {
    max-width: 760px;
    margin: 0 0 8px;
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: clamp(1.45rem, 2.7vw, 2.2rem);
    font-weight: 400;
    line-height: 1.02;
    text-transform: uppercase;
    letter-spacing: .015em;
}

.synthesis-action-copy p {
    max-width: 760px;
    margin: 0;
    color: #44403a;
    font-size: .8rem;
    line-height: 1.65;
}

.synthesis-action-requirement {
    margin-top: 10px;
    color: var(--m-muted);
    font-size: .62rem;
    font-weight: 700;
    line-height: 1.45;
    text-transform: uppercase;
    letter-spacing: .045em;
}

.synthesis-alert {
    grid-template-columns: minmax(150px, .28fr) minmax(0, 1fr);
    gap: 24px;
    margin-top: 26px;
    padding: 16px 0;
    border-top: 1px solid var(--m-orange);
    border-bottom: 1px solid var(--m-orange);
}

.synthesis-alert > span {
    color: var(--m-orange);
    font-size: .58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .11em;
}

.synthesis-alert p {
    margin: 0;
    color: #4c342b;
    font-family: var(--m-editorial);
    font-size: .78rem;
    line-height: 1.6;
}

@media (max-width: 760px) {
    .loading-route.loading-route-six {
        grid-template-columns: repeat(3, 1fr);
        row-gap: 14px;
    }

    .synthesis-teaser {
        grid-template-columns: 1fr 1fr;
    }

    .synthesis-teaser > p {
        grid-column: 1 / -1;
        padding: 14px 0 0;
        border-top: 1px solid var(--m-line);
    }

    .synthesis-decision-grid {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .synthesis-action-item {
        grid-template-columns: 40px minmax(0, 1fr);
        gap: 14px;
    }

    .synthesis-alert {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .req-market-context {
        grid-column: 1 / -1;
    }
}


/* ============================================================
   MATCHEA V6 — WORKSPACE DE ADAPTACIÓN
   El resultado deja de ser un reporte lineal y pasa a ser una
   guía de trabajo: resumen persistente + checklist ejecutable.
   ============================================================ */

.result-head-workspace {
    padding-bottom: 18px;
}

.result-head-workspace .result-job {
    max-width: 920px;
    font-size: clamp(1.8rem, 3.35vw, 3rem);
    line-height: .98;
}

.workspace-shell {
    display: grid;
    grid-template-columns: minmax(250px, .38fr) minmax(0, 1fr);
    align-items: start;
    border-bottom: 1px solid var(--m-ink);
}

.workspace-summary {
    position: sticky;
    top: 18px;
    align-self: start;
    min-width: 0;
    padding: clamp(30px, 4.5vw, 48px) clamp(28px, 4vw, 48px) clamp(36px, 5vw, 56px) 0;
    border-right: 1px solid var(--m-line-strong);
}

.workspace-main {
    min-width: 0;
    padding: clamp(30px, 4.5vw, 48px) 0 clamp(36px, 5vw, 56px) clamp(30px, 4.5vw, 56px);
}

.workspace-kicker,
.guide-section-kicker,
.guide-context-label,
.guide-task-eyebrow,
.guide-task-section-label {
    display: block;
    color: var(--m-muted);
    font-size: .58rem;
    font-weight: 800;
    line-height: 1.3;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.workspace-decision {
    margin: 14px 0 15px;
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: clamp(2.6rem, 4.6vw, 4.5rem);
    font-weight: 400;
    line-height: .9;
    text-transform: uppercase;
}

.workspace-summary[data-decision="postula"] .workspace-decision,
.workspace-summary[data-decision="si"] .workspace-decision { color: var(--m-green); }
.workspace-summary[data-decision="postula_con_ajustes"] .workspace-decision,
.workspace-summary[data-decision="si_con_ajustes"] .workspace-decision,
.workspace-summary[data-decision="confirmar_antes_de_postular"] .workspace-decision { color: var(--m-orange); }
.workspace-summary[data-decision="postulacion_dificil"] .workspace-decision { color: var(--m-amber); }
.workspace-summary[data-decision="no_priorizar"] .workspace-decision,
.workspace-summary[data-decision="bajo_encaje"] .workspace-decision { color: var(--m-red); }

.workspace-decision-copy {
    margin: 0;
    color: #34302b;
    font-family: var(--m-editorial);
    font-size: clamp(.9rem, 1.35vw, 1.04rem);
    line-height: 1.62;
}

.workspace-meta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-top: 28px;
    border-top: 1px solid var(--m-ink);
    border-bottom: 1px solid var(--m-line);
}

.workspace-meta-item {
    min-width: 0;
    padding: 14px 12px 14px 0;
    border-bottom: 1px solid var(--m-line);
}

.workspace-meta-item:nth-child(even) {
    padding-left: 12px;
    border-left: 1px solid var(--m-line);
}

.workspace-meta-item:nth-last-child(-n+2) { border-bottom: 0; }

.workspace-meta-item > span {
    display: block;
    margin-bottom: 6px;
    color: var(--m-muted);
    font-size: .52rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.workspace-meta-item strong {
    display: block;
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: 1.35rem;
    font-weight: 400;
    line-height: 1;
    text-transform: uppercase;
}

.workspace-meta-item small {
    margin-left: 2px;
    color: var(--m-soft);
    font-family: var(--m-display);
    font-size: .72rem;
}

.workspace-meta-item[data-value="alta"] strong { color: var(--m-green); }
.workspace-meta-item[data-value="media"] strong { color: var(--m-orange); }
.workspace-meta-item[data-value="baja"] strong { color: var(--m-red); }

.workspace-progress {
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid var(--m-line);
}

.workspace-progress-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: baseline;
    color: var(--m-muted);
    font-size: .6rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .09em;
}

.workspace-progress-head strong {
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: 1.05rem;
    font-weight: 400;
}

.workspace-progress-track {
    height: 3px;
    margin-top: 10px;
    background: var(--m-line);
    overflow: hidden;
}

.workspace-progress-track span {
    display: block;
    width: 0;
    height: 100%;
    background: var(--m-orange);
    transition: width .2s ease, background .2s ease;
}

.workspace-progress.is-complete .workspace-progress-track span { background: var(--m-green); }

.workspace-progress-note {
    margin-top: 8px;
    color: var(--m-muted);
    font-size: .66rem;
    line-height: 1.45;
}

.workspace-counts {
    margin-top: 18px;
    border-top: 1px solid var(--m-line);
}

.workspace-counts > div {
    display: grid;
    grid-template-columns: 30px 1fr;
    gap: 8px;
    align-items: baseline;
    padding: 8px 0;
    border-bottom: 1px solid var(--m-line);
}

.workspace-counts strong {
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: 1.05rem;
    font-weight: 400;
}

.workspace-counts span {
    color: var(--m-muted);
    font-size: .65rem;
}

.guide-section,
.guide-keep-section,
.guide-free-preview {
    padding-bottom: 34px;
}

.guide-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(220px, .6fr);
    gap: 24px 44px;
    align-items: end;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--m-ink);
}

.guide-section-head.compact {
    grid-template-columns: 1fr;
}

.guide-section-head h2,
.guide-free-preview h2,
.guide-finish h2 {
    margin: 6px 0 0;
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: clamp(2.2rem, 4vw, 3.8rem);
    font-weight: 400;
    line-height: .92;
    text-transform: uppercase;
}

.guide-section-head > p,
.guide-free-preview > p {
    margin: 0;
    color: var(--m-muted);
    font-size: .77rem;
    line-height: 1.65;
}

.guide-free-preview {
    border-bottom: 1px solid var(--m-line);
}

.guide-preview-lines {
    margin-top: 28px;
    border-top: 1px solid var(--m-line);
}

.guide-preview-lines > div {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 12px;
    align-items: center;
    min-height: 52px;
    border-bottom: 1px solid var(--m-line);
}

.guide-preview-lines span {
    color: var(--m-orange);
    font-family: var(--m-display);
    font-size: .92rem;
}

.guide-preview-lines b {
    display: block;
    width: min(100%, 520px);
    height: 8px;
    background: linear-gradient(90deg, var(--m-line-strong), var(--m-line), transparent);
    opacity: .7;
}

.guide-checklist { border-bottom: 1px solid var(--m-ink); }

.guide-task {
    position: relative;
    border-bottom: 1px solid var(--m-line);
    transition: opacity .18s ease, background .18s ease;
}

.guide-task:last-child { border-bottom: 0; }

.guide-task-head {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    gap: 14px 18px;
    align-items: start;
    padding: 24px 0 16px;
}

.guide-task-number {
    color: var(--m-orange);
    font-family: var(--m-display);
    font-size: 1.25rem;
    line-height: 1;
}

.guide-task-title-wrap { min-width: 0; }

.guide-task-title {
    margin: 4px 0 0;
    color: var(--m-ink);
    font-family: var(--m-display);
    font-size: clamp(1.65rem, 2.8vw, 2.45rem);
    font-weight: 400;
    line-height: 1;
    text-transform: uppercase;
}

.guide-task-topic {
    margin: 7px 0 0;
    color: var(--m-muted);
    font-size: .72rem;
    font-weight: 700;
    line-height: 1.5;
}

.guide-task-state {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 4px 7px;
    border: 1px solid var(--m-line-strong);
    color: var(--m-muted);
    font-size: .53rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    white-space: nowrap;
}

.guide-task[data-category="podria_estar_escondido"] .guide-task-state,
.guide-task[data-category="revisar"] .guide-task-state {
    border-color: #e2a891;
    color: var(--m-orange);
    background: var(--m-orange-soft);
}

.guide-task[data-category="no_evidenciado"] .guide-task-state {
    border-color: #d7c59e;
    color: var(--m-amber);
    background: var(--m-amber-soft);
}

.guide-task[data-category="brecha_real"] .guide-task-state {
    border-color: #d6aaa4;
    color: var(--m-red);
    background: var(--m-red-soft);
}

.guide-task-body {
    margin-left: 60px;
    padding: 0 0 24px;
}

.guide-task-finding {
    max-width: 780px;
    margin: 0 0 20px;
    color: #302c27;
    font-family: var(--m-editorial);
    font-size: .94rem;
    line-height: 1.62;
}

.guide-task-section {
    max-width: 780px;
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid var(--m-line);
}

.guide-task-section p {
    margin: 6px 0 0;
    color: #403b35;
    font-size: .79rem;
    line-height: 1.65;
}

.guide-task-section.is-have .guide-task-section-label { color: var(--m-green); }
.guide-task-section.is-dont .guide-task-section-label { color: var(--m-red); }

.guide-evidence {
    margin-top: 22px;
    border-top: 1px solid var(--m-line);
}

.guide-evidence summary {
    list-style: none;
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    min-height: 46px;
    color: var(--m-muted);
    cursor: pointer;
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.guide-evidence summary::-webkit-details-marker { display: none; }
.guide-evidence summary::after { content: "+"; color: var(--m-orange); font-size: 1rem; }
.guide-evidence[open] summary::after { content: "−"; }

.guide-evidence-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-top: 1px solid var(--m-line);
}

.guide-evidence-item {
    min-width: 0;
    padding: 15px 18px 15px 0;
    border-bottom: 1px solid var(--m-line);
}

.guide-evidence-item:nth-child(even) {
    padding-left: 18px;
    border-left: 1px solid var(--m-line);
}

.guide-evidence-item.is-wide { grid-column: 1 / -1; padding-left: 0; border-left: 0; }

.guide-evidence-item span {
    display: block;
    margin-bottom: 6px;
    color: var(--m-soft);
    font-size: .52rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .09em;
}

.guide-evidence-item p {
    margin: 0;
    color: #4a453f;
    font-size: .72rem;
    line-height: 1.55;
}

.guide-evidence-item.evidence-cv p {
    font-family: var(--m-editorial);
    font-style: italic;
}

.guide-task-footer {
    display: flex;
    justify-content: flex-end;
    padding-top: 18px;
}

.guide-check-control {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
    color: var(--m-ink);
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.guide-check-control input {
    width: 17px;
    height: 17px;
    margin: 0;
    accent-color: var(--m-green);
}

.guide-task.is-done {
    opacity: .72;
    background: linear-gradient(90deg, rgba(36,65,47,.045), transparent 55%);
}

.guide-task.is-done .guide-task-body { display: none; }
.guide-task.is-done .guide-task-number { color: var(--m-green); }
.guide-task.is-done .guide-task-state { color: var(--m-green); border-color: #aebeb2; background: var(--m-green-soft); }
.guide-task.is-done .guide-task-state::before { content: "✓ "; }

.guide-keep-section {
    margin-top: 34px;
    padding-top: 30px;
    border-top: 1px solid var(--m-ink);
}

.guide-keep-list { border-top: 1px solid var(--m-line); }

.guide-keep-item {
    display: grid;
    grid-template-columns: 26px minmax(140px, .35fr) minmax(0, 1fr);
    gap: 12px 18px;
    align-items: baseline;
    padding: 14px 0;
    border-bottom: 1px solid var(--m-line);
}

.guide-keep-check {
    color: var(--m-green);
    font-family: var(--m-display);
    font-size: 1rem;
}

.guide-keep-item strong {
    color: var(--m-ink);
    font-size: .77rem;
}

.guide-keep-item p {
    margin: 0;
    color: var(--m-muted);
    font-size: .72rem;
    line-height: 1.55;
}

.guide-context-card {
    display: none;
    grid-template-columns: minmax(140px, .32fr) minmax(0, 1fr);
    gap: 22px;
    margin-top: 30px;
    padding: 18px 0;
    border-top: 1px solid var(--m-orange);
    border-bottom: 1px solid var(--m-orange);
}

.guide-context-card p {
    margin: 0;
    color: #443a34;
    font-family: var(--m-editorial);
    font-size: .82rem;
    line-height: 1.62;
}

.guide-context-alert { border-color: var(--m-red); }
.guide-context-alert .guide-context-label { color: var(--m-red); }

.guide-finish {
    margin-top: 38px;
    padding: 32px;
    background: var(--m-ink);
    color: #fff;
}

.guide-finish .guide-section-kicker { color: #9a9a9a; }
.guide-finish h2 { color: #fff; }

.guide-finish-list {
    margin-top: 24px;
    border-top: 1px solid #3d3d3d;
}

.guide-finish-item {
    display: grid;
    grid-template-columns: 24px 1fr;
    gap: 10px;
    padding: 11px 0;
    border-bottom: 1px solid #333;
    color: #bdbdbd;
    font-size: .72rem;
    line-height: 1.5;
}

.guide-finish-item::before {
    content: "□";
    color: #777;
    font-family: var(--m-display);
}

.guide-finish-item.is-done { color: #fff; }
.guide-finish-item.is-done::before { content: "✓"; color: #9fbea8; }

.guide-final-action {
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid #555;
}

.guide-final-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.guide-final-meta span {
    padding: 5px 8px;
    border: 1px solid #555;
    color: #c2c2c2;
    font-size: .54rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.guide-final-action p {
    max-width: 760px;
    margin: 0;
    color: #fff;
    font-family: var(--m-editorial);
    font-size: clamp(.96rem, 1.5vw, 1.12rem);
    line-height: 1.6;
}

.guide-finish.is-complete { background: var(--m-green); }
.guide-finish.is-complete .guide-section-kicker { color: #bed0c3; }
.guide-finish.is-complete .guide-finish-list { border-top-color: rgba(255,255,255,.25); }
.guide-finish.is-complete .guide-finish-item { border-bottom-color: rgba(255,255,255,.18); color: #fff; }
.guide-finish.is-complete .guide-final-action { border-top-color: rgba(255,255,255,.3); }
.guide-finish.is-complete .guide-final-meta span { border-color: rgba(255,255,255,.35); color: #fff; }

.guide-paywall {
    margin-top: 8px;
}

.guide-paywall .paywall-header {
    display: block;
    padding-top: 14px;
}

.guide-paywall .paywall-header-title {
    display: block;
    max-width: 780px;
    margin-top: 8px;
    font-size: clamp(2rem, 3.8vw, 3.5rem);
}

.guide-paywall .paywall-body {
    grid-template-columns: minmax(0, 1fr) minmax(250px, .58fr);
}

@media (max-width: 900px) {
    .workspace-shell { grid-template-columns: minmax(220px, .34fr) minmax(0, 1fr); }
    .workspace-summary { padding-right: 28px; }
    .workspace-main { padding-left: 32px; }
    .guide-section-head { grid-template-columns: 1fr; gap: 12px; align-items: start; }
}

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

    .workspace-summary {
        position: static;
        padding: 26px 0 28px;
        border-right: 0;
        border-bottom: 1px solid var(--m-ink);
    }

    .workspace-main { padding: 28px 0 36px; }

    .workspace-decision { font-size: clamp(2.9rem, 14vw, 4.6rem); }

    .workspace-meta-grid { grid-template-columns: repeat(4, 1fr); }
    .workspace-meta-item,
    .workspace-meta-item:nth-child(even) {
        padding: 12px 8px;
        border-left: 1px solid var(--m-line);
        border-bottom: 0;
    }
    .workspace-meta-item:first-child { padding-left: 0; border-left: 0; }
    .workspace-meta-item strong { font-size: 1.05rem; }
    .workspace-meta-item > span { font-size: .47rem; }

    .workspace-counts { grid-template-columns: repeat(3, 1fr); }
    .workspace-counts > div {
        grid-template-columns: 1fr;
        gap: 2px;
        padding-right: 8px;
        border-right: 1px solid var(--m-line);
        border-bottom: 0;
    }
    .workspace-counts > div:last-child { border-right: 0; }

    .guide-task-head { grid-template-columns: 34px minmax(0, 1fr); }
    .guide-task-state { grid-column: 2; justify-self: start; }
    .guide-task-body { margin-left: 48px; }

    .guide-evidence-grid { grid-template-columns: 1fr; }
    .guide-evidence-item,
    .guide-evidence-item:nth-child(even) {
        padding: 13px 0;
        border-left: 0;
    }

    .guide-keep-item { grid-template-columns: 24px 1fr; }
    .guide-keep-item p { grid-column: 2; }

    .guide-context-card { grid-template-columns: 1fr; gap: 8px; }
    .guide-finish { margin-inline: -14px; padding: 28px 14px; }

    .guide-paywall .paywall-body { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .result-head-workspace .result-job { font-size: 1.7rem; }
    .workspace-meta-grid { grid-template-columns: 1fr 1fr; }
    .workspace-meta-item:nth-child(3) { border-left: 0; padding-left: 0; border-top: 1px solid var(--m-line); }
    .workspace-meta-item:nth-child(4) { border-top: 1px solid var(--m-line); }
    .guide-task-head { gap: 10px; }
    .guide-task-body { margin-left: 0; }
    .guide-task-title { font-size: 1.75rem; }
}
