/*
 * GeneaCase UI base.
 * Tema claro por defecto y tema oscuro seleccionado por el usuario.
 * Los colores se concentran en variables para que todos los módulos futuros
 * mantengan el mismo sistema visual sin duplicar estilos.
 */
:root,
:root[data-theme="light"] {
    color-scheme: light;
    --blue: #2f67c7;
    --blue-hover: #2455ab;
    --navy: #173152;
    --text: #263445;
    --muted: #687586;
    --bg: #f3f0e9;
    --surface: #fffdf9;
    --surface-soft: #f7f4ee;
    --line: #ddd8ce;
    --focus: rgba(37, 99, 235, 0.28);
    --shadow: 0 12px 34px rgba(64, 54, 39, 0.07);
    --danger-bg: #fff1f2;
    --danger-border: #fecdd3;
    --danger-text: #9f1239;
}

:root[data-theme="dark"] {
    color-scheme: dark;
    --blue: #60a5fa;
    --blue-hover: #93c5fd;
    --navy: #e5efff;
    --text: #e5e7eb;
    --muted: #a7b4c7;
    --bg: #0b1220;
    --surface: #111c2f;
    --surface-soft: #17243a;
    --line: #2a3a53;
    --focus: rgba(96, 165, 250, 0.32);
    --shadow: 0 14px 40px rgba(0, 0, 0, 0.26);
    --danger-bg: #351722;
    --danger-border: #7f1d3b;
    --danger-text: #fecdd3;
}

* { box-sizing: border-box; }
html { background: var(--bg); }
body {
    margin: 0;
    min-height: 100vh;
    background: var(--bg);
    color: var(--text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    line-height: 1.62;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    transition: background-color 180ms ease, color 180ms ease;
}


/* Jerarquía tipográfica GeneaCase.
 * Inspirada en interfaces genealógicas de lectura amable, sin copiar
 * identidades de terceros. La interfaz usa pesos moderados y reserva
 * la negrita fuerte para titulares principales.
 */
h1, h2, h3, h4, h5, h6 {
    color: var(--navy);
    line-height: 1.25;
    letter-spacing: -0.02em;
    font-weight: 600;
}
p, li, td, label, input, select, textarea { font-weight: 400; }
strong, b { font-weight: 600; }
small { line-height: 1.5; }

button,
input,
select,
textarea { color: inherit; }
a { color: var(--blue); }
a:hover { color: var(--blue-hover); }

.topbar {
    min-height: 72px;
    padding: 0 max(24px, calc((100vw - 1180px) / 2));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background: var(--surface);
    border-bottom: 1px solid var(--line);
    transition: background-color 180ms ease, border-color 180ms ease;
}
.topbar nav,
.topbar-actions,
.locale-links {
    display: flex;
    gap: 16px;
    align-items: center;
}
.topbar form { margin: 0; }
.brand {
    font-family: Georgia, serif;
    color: var(--navy);
    font-size: 28px;
    text-decoration: none;
    font-weight: 500;
}

.theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface-soft);
    color: var(--navy);
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}
.theme-toggle:hover { transform: translateY(-1px); border-color: var(--blue); }
.theme-toggle:focus-visible,
.button:focus-visible,
.link-button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
a:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 2px;
}
.theme-toggle__icon {
    width: 18px;
    height: 18px;
    display: inline-grid;
    place-items: center;
    font-size: 18px;
    line-height: 1;
}
.theme-toggle__icon::before { content: "☾"; }
:root[data-theme="dark"] .theme-toggle__icon::before { content: "☀"; }
.theme-toggle--floating {
    position: fixed;
    top: 18px;
    right: 18px;
    z-index: 10;
    box-shadow: var(--shadow);
}

.hero {
    max-width: 1180px;
    margin: 70px auto 40px;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 48px;
    align-items: center;
}
.hero h1 {
    max-width: 760px;
    font-size: clamp(2.5rem, 4.2vw, 3rem);
    line-height: 1.12;
    letter-spacing: -0.035em;
    font-weight: 700;
    color: var(--navy);
    margin: 0.3em 0;
}
.hero p { max-width: 720px; font-size: 18px; line-height: 1.68; color: var(--muted); font-weight: 400; }
.eyebrow {
    font-size: 12px !important;
    color: var(--blue) !important;
    font-weight: 600;
    letter-spacing: 0.12em;
}
.hero-panel,
.feature-grid article,
.auth-card,
.dashboard-header {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 28px;
    box-shadow: var(--shadow);
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}
.hero-panel strong { font-weight: 600; }
.hero-panel li { margin: 11px 0; line-height: 1.55; }
.feature-grid {
    max-width: 1180px;
    margin: 30px auto 80px;
    padding: 0 24px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
.feature-grid h2 { color: var(--navy); font-size: 1.45rem; line-height: 1.28; font-weight: 600; letter-spacing: -0.02em; }
.feature-grid p { line-height: 1.65; color: var(--text); font-weight: 400; }
.actions { display: flex; gap: 12px; margin-top: 28px; flex-wrap: wrap; }
.button {
    display: inline-block;
    border: 1px solid transparent;
    border-radius: 10px;
    padding: 13px 20px;
    background: var(--blue);
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
    cursor: pointer;
}
.button:hover { background: var(--blue-hover); color: #ffffff; }
.button.secondary {
    background: var(--surface);
    color: var(--blue);
    border-color: var(--blue);
}
.button.secondary:hover { background: var(--surface-soft); color: var(--blue-hover); }
footer {
    text-align: center;
    padding: 30px;
    color: var(--muted);
    border-top: 1px solid var(--line);
    background: var(--surface);
    transition: background-color 180ms ease, border-color 180ms ease;
}
.auth-page {
    display: grid;
    place-items: center;
    min-height: 100vh;
    padding: 72px 16px 32px;
}
.auth-card { width: min(460px, calc(100% - 32px)); }
.auth-card form { display: grid; gap: 16px; }
.auth-card label { display: grid; gap: 7px; font-weight: 500; }
.auth-card input,
.auth-card select,
.auth-card textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--surface-soft);
    color: var(--text);
    font: inherit;
}
.auth-card input::placeholder,
.auth-card textarea::placeholder { color: var(--muted); }
.alert {
    font-weight: 500;
    background: var(--danger-bg);
    border: 1px solid var(--danger-border);
    color: var(--danger-text);
    padding: 12px;
    border-radius: 8px;
    margin: 16px 0;
}
.app-shell { max-width: 1180px; margin: 40px auto; padding: 0 24px; }
.dashboard-header { margin-bottom: 22px; }
.link-button {
    font-weight: 500;
    border: 0;
    background: transparent;
    color: var(--blue);
    cursor: pointer;
    font: inherit;
}

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

@media (max-width: 800px) {
    .hero { grid-template-columns: 1fr; margin-top: 35px; }
    .hero h1 { font-size: 2.25rem; }
    .feature-grid { grid-template-columns: 1fr; }
    .topbar { padding: 12px 18px; min-height: 72px; align-items: flex-start; }
    .topbar-actions { flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
    .brand { font-size: 23px; }
    .theme-toggle__text { display: none; }
    .theme-toggle { width: 38px; padding-inline: 8px; }
}


/* Sprint 1: identidad y organizaciones */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.auth-toolbar{position:fixed;top:18px;right:18px;display:flex;align-items:center;gap:12px;z-index:10}
.auth-card h1{font-size:1.9rem;line-height:1.2;letter-spacing:-.025em;color:var(--navy);margin:.35rem 0 1.2rem;font-weight:600}
.auth-kicker{color:var(--blue);font-weight:500;margin:1.5rem 0 0}
.auth-links{display:flex;justify-content:space-between;gap:16px;margin-top:20px;font-size:.95rem}.auth-links a,.auth-footer-text a,.auth-resend .link-button{font-weight:500}
.auth-footer-text{text-align:center}.auth-resend{margin-top:14px}.inline-form{display:inline-flex!important}
.check-label{grid-template-columns:auto 1fr!important;align-items:flex-start}.check-label input{width:auto!important;margin-top:4px}
.auth-card small{font-weight:400;color:var(--muted)}
.alert-success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.alert-info{background:#eff6ff;border-color:#bfdbfe;color:#1e3a8a}
.success-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#dcfce7;color:#166534;font-size:30px;margin:28px 0 16px}
.dev-link{display:grid;gap:6px;padding:14px;border:1px dashed var(--blue);border-radius:10px;background:var(--surface-soft);margin:16px 0}.dev-link small{color:var(--muted)}
.app-topbar{max-width:none}.app-nav{display:flex;align-items:center;gap:20px}.app-nav a{text-decoration:none;color:var(--text);font-weight:500}.app-nav a:hover{color:var(--blue)}
.organization-switcher select{max-width:230px;padding:9px 34px 9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);font:inherit}
.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px}.page-heading h1{color:var(--navy);font-size:2rem;line-height:1.2;letter-spacing:-.025em;font-weight:600;margin:.2rem 0}.page-heading p{color:var(--muted);margin:.2rem 0}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:0 0 24px}.stats-grid article{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.stats-grid span{font-size:2rem;color:var(--blue);font-weight:600}.stats-grid p{margin:4px 0 0;color:var(--muted)}
.status-pill,.badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:var(--surface-soft);border:1px solid var(--line);font-size:.82rem;font-weight:500;color:var(--navy)}
.organization-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.organization-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:20px}.organization-card.is-active{border-color:var(--blue)}.organization-card h2{color:var(--navy);margin:10px 0 2px}.organization-card p{color:var(--muted);margin:0}
.form-card,.table-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:var(--shadow)}.form-card form{display:grid;gap:16px}.form-card label{display:grid;gap:7px;font-weight:500}.form-card input,.form-card select{width:100%;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);font:inherit}
.two-column{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:18px;margin-bottom:18px}.table-card{margin-bottom:18px}.table-card h2,.form-card h2{color:var(--navy);margin-top:0}.responsive-table{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:500}.danger-link{color:#dc2626}.empty-state{color:var(--muted);padding:20px 0}
@media(max-width:980px){.stats-grid{grid-template-columns:repeat(2,1fr)}.two-column{grid-template-columns:1fr}.app-nav{display:none}.topbar{align-items:center}.organization-switcher select{max-width:160px}}
@media(max-width:640px){.auth-toolbar{position:static;justify-content:flex-end;padding:12px}.auth-page{display:block;padding:0 0 32px}.auth-card{margin:10px auto}.stats-grid,.organization-grid{grid-template-columns:1fr}.page-heading{flex-direction:column}.topbar-actions{width:100%}.organization-switcher{order:4;width:100%}.organization-switcher select{max-width:none;width:100%}}


/* Sprint 2: casos, personas y relaciones */
.case-toolbar{display:flex;gap:12px;margin-bottom:22px}.case-toolbar input,.case-toolbar select,.wide-form input,.wide-form select,.wide-form textarea,.form-card textarea,.form-card select,.form-card input,.inline-grid input,.inline-grid select{padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--text);font:inherit}.case-toolbar input{flex:1}.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.case-card,.empty-panel,.case-hero,.case-summary-grid article{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.case-card{padding:22px}.case-card__top,.section-heading,.case-hero__meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.case-card h2{font-size:1.2rem;margin:18px 0 6px}.case-card h2 a{color:var(--navy);text-decoration:none}.case-card p{line-height:1.55}.case-person{color:var(--blue);font-weight:500}.case-metrics{display:flex;gap:14px;color:var(--muted);font-size:.88rem;border-top:1px solid var(--line);padding-top:14px}.empty-panel{padding:48px;text-align:center}.wide-form fieldset{border:0;border-bottom:1px solid var(--line);padding:0 0 24px;margin:0 0 24px}.wide-form legend{font-size:1.15rem;font-weight:600;color:var(--navy);margin-bottom:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid label,.wide-form label,.form-card label{display:grid;gap:7px;font-weight:500}.span-2{grid-column:span 2}.form-actions{display:flex;gap:12px}.case-hero{padding:28px;display:flex;justify-content:space-between;gap:28px;align-items:flex-start;margin-bottom:18px}.case-hero h1{font-size:2rem;margin:14px 0 10px}.case-hero p{max-width:760px;line-height:1.65;color:var(--muted)}.case-actions{display:flex;gap:10px}.case-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.case-summary-grid article{padding:18px}.case-summary-grid span{font-size:1.7rem;font-weight:600;color:var(--blue)}.case-summary-grid p{margin:4px 0;color:var(--muted)}.case-layout aside{display:grid;gap:18px;align-content:start}.question-list,.compact-list,.relation-list{list-style:none;margin:0 0 18px;padding:0}.question-list li,.compact-list li,.relation-list li{padding:12px 0;border-bottom:1px solid var(--line)}.question-list p{margin:8px 0}.compact-list small{display:block;color:var(--muted);margin-top:4px}.inline-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:10px;align-items:end;margin-top:18px}.danger-button{width:100%;padding:12px;border:1px solid #dc2626;border-radius:10px;background:transparent;color:#dc2626;font-weight:600;cursor:pointer}.table-card td small{display:block;color:var(--muted);margin-top:4px}
@media(max-width:980px){.case-grid{grid-template-columns:repeat(2,1fr)}.case-summary-grid{grid-template-columns:repeat(2,1fr)}.inline-grid{grid-template-columns:1fr 1fr}.case-hero{flex-direction:column}}
@media(max-width:640px){.case-toolbar,.case-actions{flex-direction:column}.case-grid,.case-summary-grid,.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.inline-grid{grid-template-columns:1fr}.case-hero{padding:20px}}

/* Sprint 3: documentos, fuentes y trazabilidad */
.back-link{display:inline-block;margin-bottom:10px;color:var(--muted);text-decoration:none;font-weight:500}.back-link:hover{color:var(--blue)}
.page-heading__actions{display:flex;gap:10px;flex-wrap:wrap}.document-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:18px}.document-stats article,.info-card,.document-integrity-banner{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.document-stats article{padding:18px}.document-stats span{font-size:1.65rem;font-weight:600;color:var(--blue)}.document-stats p{margin:4px 0;color:var(--muted)}
.document-layout,.document-detail-layout{display:grid;grid-template-columns:minmax(0,2.25fr) minmax(320px,.85fr);gap:18px;align-items:start}.document-main-column,.document-side-column,.document-detail-layout>div,.document-detail-layout>aside{display:grid;gap:18px}.document-side-column .form-card,.document-side-column .info-card,.document-detail-layout .table-card,.document-detail-layout .form-card,.document-detail-layout .info-card{margin:0}.info-card{padding:24px}.info-card h2{margin-top:0;color:var(--navy);font-size:1.15rem}
.compact-empty{padding:34px}.source-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.source-card{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--surface-soft);display:grid;gap:8px}.source-card h3{margin:4px 0;color:var(--navy);font-size:1.02rem}.source-card p,.source-card small{margin:0;color:var(--muted)}.source-card__top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.82rem}.source-card>a{margin-top:6px}
.request-list{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:10px}.request-list li{border-bottom:1px solid var(--line);padding:0 0 12px;display:grid;grid-template-columns:1fr auto;gap:8px}.request-list small{display:block;color:var(--muted);margin-top:4px}.request-list form{grid-column:1/-1}.request-list select{width:100%;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--text)}.stack-form{display:grid;gap:13px;margin-top:16px}.stack-form label{display:grid;gap:6px;font-weight:500}.stack-form input,.stack-form select,.stack-form textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--text);font:inherit}.traceability-list{padding-left:22px;margin:0;display:grid;gap:12px;color:var(--muted);line-height:1.5}
.hash-short{display:block;font-size:.78rem;color:var(--muted);background:var(--surface-soft);padding:4px 6px;border-radius:6px;max-width:160px;overflow:hidden}.status-recibido,.status-cargado{color:#166534;background:#dcfce7;border-color:#86efac}.status-en_revision,.status-procesando{color:#92400e;background:#fef3c7;border-color:#fcd34d}.status-analizado,.status-revisado{color:#3730a3;background:#eef2ff;border-color:#c7d2fe}.status-descartado,.status-error{color:#991b1b;background:#fee2e2;border-color:#fca5a5}
.upload-card{max-width:1000px}.upload-dropzone{border:1.5px dashed var(--blue);border-radius:14px;padding:24px;background:var(--surface-soft);margin-bottom:20px}.upload-dropzone label{display:grid;gap:4px;color:var(--blue);font-weight:600}.upload-dropzone small{color:var(--muted);font-weight:400}.upload-dropzone input{margin-top:14px;background:var(--surface);padding:10px;border:1px solid var(--line);border-radius:9px;width:100%}
.document-integrity-banner{padding:18px 20px;margin-bottom:18px;display:flex;justify-content:space-between;align-items:center;gap:20px}.document-integrity-banner>div{display:flex;align-items:center;gap:14px}.document-integrity-banner p{margin:3px 0;color:var(--muted)}.document-integrity-banner code{font-size:.76rem;max-width:42%;overflow-wrap:anywhere;color:var(--muted)}.integrity-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#dcfce7;color:#166534;font-weight:700}
.metadata-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.metadata-grid div,.signature-grid span{background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;padding:12px}.metadata-grid dt,.signature-grid small{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:4px}.metadata-grid dd{margin:0;color:var(--text)}.document-description{line-height:1.65;color:var(--muted)}.signature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.signature-grid span{display:grid;gap:4px}.citation-list{padding-left:22px;display:grid;gap:14px}.citation-list li{border-bottom:1px solid var(--line);padding-bottom:14px}.citation-list blockquote{margin:0 0 8px;line-height:1.6;color:var(--text)}.citation-list small{color:var(--muted)}.citation-form{border-top:1px solid var(--line);padding-top:18px}.source-signature-form{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1100px){.document-stats{grid-template-columns:repeat(3,1fr)}.document-layout,.document-detail-layout{grid-template-columns:1fr}.metadata-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.document-stats,.source-card-grid,.metadata-grid,.signature-grid,.source-signature-form{grid-template-columns:1fr}.document-integrity-banner{align-items:flex-start;flex-direction:column}.document-integrity-banner code{max-width:100%}.page-heading__actions{width:100%}.page-heading__actions .button{flex:1;text-align:center}}

/* FIX-UX-01: experiencia guiada, confianza visual y formularios genealógicos. */
:root,
:root[data-theme="light"] {
    --accent: #2f7b72;
    --accent-soft: #e8f3f0;
    --warm-highlight: #f3e9d5;
    --field-bg: #fffefa;
    --field-border: #d6d0c4;
    --accent-soft: #e9f7ef;
}
:root[data-theme="dark"] {
    --accent: #66b7aa;
    --accent-soft: #173630;
    --warm-highlight: #30291d;
    --field-bg: #17243a;
    --field-border: #34465f;
    --accent-soft: #153428;
}
body { background-image: radial-gradient(circle at top left, color-mix(in srgb, var(--surface) 50%, transparent), transparent 36%); }
.button { border-radius: 12px; box-shadow: 0 6px 16px color-mix(in srgb, var(--blue) 18%, transparent); transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease; }
.button:hover { transform: translateY(-1px); box-shadow: 0 9px 20px color-mix(in srgb, var(--blue) 22%, transparent); }
.button.secondary { box-shadow: none; background: color-mix(in srgb, var(--surface) 94%, var(--blue) 6%); }
input, select, textarea { background: var(--field-bg) !important; border-color: var(--field-border) !important; }
input::placeholder, textarea::placeholder { color: color-mix(in srgb, var(--muted) 72%, transparent); }

.friendly-heading { align-items:flex-start; margin-bottom:22px; }
.friendly-heading > div > p:last-child { max-width:760px; color:var(--muted); }
.journey-card,.friendly-form { background:var(--surface); border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow); }
.journey-card { overflow:hidden; margin-bottom:28px; }
.journey-header { display:flex; justify-content:space-between; gap:24px; padding:28px 30px 22px; background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--accent-soft) 55%,var(--surface))); border-bottom:1px solid var(--line); }
.journey-header h2 { margin:4px 0 6px; font-size:1.5rem; }
.journey-header p { margin:0; color:var(--muted); max-width:720px; }
.journey-kicker { color:var(--accent); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; }
.trust-note { display:flex; align-items:center; gap:8px; padding:10px 13px; border-radius:999px; background:var(--accent-soft); color:var(--accent); align-self:flex-start; white-space:nowrap; font-size:.9rem; }
.stepper-progress { list-style:none; margin:0; padding:18px 30px; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; border-bottom:1px solid var(--line); background:color-mix(in srgb,var(--surface-soft) 66%,var(--surface)); }
.stepper-progress li { position:relative; display:flex; align-items:center; gap:10px; color:var(--muted); }
.stepper-progress li:not(:last-child)::after { content:""; position:absolute; height:1px; background:var(--line); left:calc(100% - 10px); right:-10px; top:17px; }
.stepper-progress span { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--line); background:var(--surface); font-weight:600; z-index:1; }
.stepper-progress strong { font-size:.92rem; font-weight:500; }
.stepper-progress .is-active,.stepper-progress .is-complete { color:var(--navy); }
.stepper-progress .is-active span,.stepper-progress .is-complete span { background:var(--blue); border-color:var(--blue); color:white; }
.stepper-progress .is-complete span::before { content:"✓"; }
.stepper-progress .is-complete span { font-size:0; }
.stepper-progress .is-complete span::before { font-size:1rem; }
.step-panel { padding:30px; }
.js .step-panel:not(.is-active) { display:none; }
.section-intro { display:flex; gap:14px; align-items:flex-start; margin-bottom:24px; }
.section-intro h2,.section-intro h3 { margin:0 0 5px; }
.section-intro p { margin:0; color:var(--muted); }
.section-number { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:var(--accent-soft); color:var(--accent); font-weight:600; flex:0 0 auto; }
.form-grid--comfortable { gap:20px; }
.form-grid--comfortable label > small,.field-row label > small,.card-help { color:var(--muted); font-weight:400; line-height:1.45; }
.field-label { display:flex; align-items:center; gap:7px; color:var(--navy); font-weight:500; }
.help-tip { width:20px; height:20px; padding:0; border-radius:50%; border:1px solid var(--line); background:var(--surface-soft); color:var(--muted); cursor:help; font-size:.75rem; position:relative; }
.help-tip:hover::after,.help-tip:focus-visible::after { content:attr(data-tooltip); position:absolute; left:50%; bottom:calc(100% + 9px); transform:translateX(-50%); width:260px; padding:10px 12px; border-radius:10px; background:var(--navy); color:var(--surface); font-size:.82rem; font-weight:400; line-height:1.4; box-shadow:var(--shadow); z-index:30; }
.field-row { display:flex; gap:16px; align-items:flex-start; flex-wrap:wrap; }
.field-row > label { flex:1 1 220px; }
.field-row--compact .compact-control { flex:0 0 150px; }
.compact-control { max-width:190px; }
.compact-control input,.compact-control select { width:100%; }
.date-control { max-width:230px; }
.field-grow { flex:1 1 320px !important; max-width:none; }
.step-actions { display:flex; justify-content:space-between; gap:12px; margin-top:28px; padding-top:20px; border-top:1px solid var(--line); }
.name-builder { border:1px solid var(--line); border-radius:16px; padding:20px; background:color-mix(in srgb,var(--surface-soft) 72%,var(--surface)); margin-bottom:22px; }
.name-preview { margin-top:16px; padding:13px 15px; border-radius:11px; background:var(--surface); border:1px solid var(--line); display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.name-preview span { color:var(--muted); font-size:.86rem; }
.name-preview strong { color:var(--navy); }
.search-preferences { margin-top:24px; padding:22px; border-radius:16px; border:1px solid var(--line); background:color-mix(in srgb,var(--accent-soft) 35%,var(--surface)); }
.section-heading--compact { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:16px; }
.section-heading--compact h2,.section-heading--compact h3 { margin:0 0 4px; }
.section-heading--compact p { margin:0; color:var(--muted); }
.choice-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.choice-cards label { position:relative; display:block; cursor:pointer; }
.choice-cards input { position:absolute; opacity:0; pointer-events:none; }
.choice-cards span { display:grid; gap:4px; padding:16px; min-height:110px; border:1px solid var(--line); border-radius:13px; background:var(--surface); transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.choice-cards label:hover span { transform:translateY(-1px); }
.choice-cards label.is-selected span { border-color:var(--blue); box-shadow:0 0 0 3px var(--focus); }
.choice-cards small,.check-card small { color:var(--muted); font-weight:400; }
.checkbox-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:14px; }
.check-card { display:flex !important; grid-template-columns:auto 1fr !important; align-items:flex-start; gap:10px !important; padding:13px; border:1px solid var(--line); border-radius:12px; background:var(--surface); cursor:pointer; }
.check-card input { margin-top:4px; }
.check-card span { display:grid; gap:2px; }
.reassurance-panel { display:flex; gap:12px; align-items:flex-start; margin-top:22px; padding:16px; border-radius:13px; background:var(--accent-soft); color:var(--text); }
.reassurance-panel > span { width:28px; height:28px; border-radius:50%; display:grid; place-items:center; background:var(--accent); color:#fff; }
.reassurance-panel p { margin:3px 0 0; color:var(--muted); }
.friendly-form { padding:28px; }
.person-edit-layout { grid-template-columns:minmax(0,2fr) minmax(300px,.8fr); }
.guided-disclosure { border-top:1px solid var(--line); margin-top:18px; padding-top:16px; }
.guided-disclosure summary { cursor:pointer; color:var(--blue); font-weight:500; margin-bottom:14px; }
.relationship-builder { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; padding:18px; border-radius:14px; background:var(--surface-soft); border:1px solid var(--line); }
.relationship-builder label { display:grid; gap:7px; }
.relationship-notes { grid-column:span 3; }
.relationship-submit { align-self:end; }
.relation-list li { display:flex; justify-content:space-between; gap:14px; align-items:center; }
.relation-list li > div { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.relation-arrow { color:var(--accent); }
.case-hero--refined { background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--surface-soft) 68%,var(--surface))); }
.card-help { margin:-4px 0 12px; }

.document-integrity-banner code { display:none; }
.document-integrity-banner details { max-width:46%; }
.document-integrity-banner summary { color:var(--blue); cursor:pointer; font-size:.88rem; }
.document-integrity-banner details code { display:block; max-width:100%; margin-top:8px; overflow-wrap:anywhere; }
.metadata-card .document-description { padding:14px 16px; border-radius:12px; background:var(--warm-highlight); color:var(--text); }

@media(max-width:980px){
    .journey-header{flex-direction:column}.trust-note{white-space:normal}.choice-cards{grid-template-columns:1fr}.relationship-builder{grid-template-columns:repeat(2,1fr)}.relationship-notes{grid-column:span 2}.person-edit-layout{grid-template-columns:1fr}
}
@media(max-width:700px){
    .stepper-progress{padding:14px 18px}.stepper-progress strong{display:none}.stepper-progress li:not(:last-child)::after{left:40px;right:-18px}.step-panel{padding:20px}.journey-header{padding:22px 20px}.field-row{display:grid;grid-template-columns:1fr;width:100%}.field-row > label,.compact-control,.date-control,.field-grow{max-width:none!important;width:100%;}.checkbox-grid{grid-template-columns:1fr}.relationship-builder{grid-template-columns:1fr}.relationship-notes{grid-column:auto}.relation-list li{align-items:flex-start;flex-direction:column}.step-actions{flex-wrap:wrap}.step-actions .button{flex:1;text-align:center}
}
.check-card.is-disabled { opacity:.55; cursor:not-allowed; }
.check-card.is-disabled input { cursor:not-allowed; }

/* FIX-UX-02: sistema visual amplio, formularios accesibles y ayudas contextuales. */
:root,
:root[data-theme="light"] {
    --bg: #f3f1ec;
    --surface: #fffefa;
    --surface-soft: #f7f5f0;
    --line: #d8d5cd;
    --field-bg: #ffffff;
    --field-border: #cfd4d9;
    --tooltip-bg: #17243a;
    --tooltip-text: #f8fafc;
}
:root[data-theme="dark"] {
    --tooltip-bg: #f8fafc;
    --tooltip-text: #17243a;
}

.app-shell {
    width: min(100% - 48px, 1380px);
    max-width: 1380px;
    margin: 36px auto 56px;
    padding: 0;
}
.topbar { padding-left:max(28px,calc((100vw - 1380px)/2)); padding-right:max(28px,calc((100vw - 1380px)/2)); }
.journey-card { overflow:visible; }
.journey-header { border-radius:22px 22px 0 0; }
.step-context { display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 30px;border-bottom:1px solid var(--line);background:var(--surface);color:var(--muted); }
.step-context span { color:var(--blue);font-weight:600; }
.step-context small { font-size:.86rem; }
.step-panel { padding:34px 36px 38px; }

.journey-card input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.journey-card select,
.journey-card textarea,
.relationship-builder input,
.relationship-builder select,
.relationship-builder textarea,
.stack-form input,
.stack-form select,
.stack-form textarea {
    width:100%;
    min-height:48px;
    padding:12px 14px;
    border-radius:10px;
    font-size:.98rem;
    line-height:1.35;
}
.journey-card textarea,.relationship-builder textarea,.stack-form textarea { min-height:100px;resize:vertical; }
.form-grid--comfortable { column-gap:24px;row-gap:22px; }
.case-basics-grid { grid-template-columns:repeat(12,minmax(0,1fr)); }
.case-basics-grid > label,.case-basics-grid > div { grid-column:span 6; }
.case-basics-grid .case-title-field { grid-column:span 7; }
.case-basics-grid .case-purpose-field { grid-column:span 5; }
.case-basics-grid .span-2 { grid-column:1/-1; }
.case-basics-grid .case-status-field,.case-basics-grid .case-privacy-field,.case-basics-grid .case-language-field { grid-column:span 4; }
.period-country-grid { display:grid;grid-template-columns:170px 170px minmax(360px,1fr);gap:18px;align-items:start; }
.year-control { min-width:0; }
.country-picker { display:grid;gap:8px;min-width:0; }
.country-picker__entry { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px; }
.compact-button { min-height:48px;padding-inline:18px; }
.country-chips { display:flex;flex-wrap:wrap;gap:8px;min-height:8px; }
.country-chip { display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--blue) 32%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--blue) 8%,var(--surface));color:var(--navy);font-size:.9rem; }
.country-chip button { width:20px;height:20px;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;font-size:1rem;line-height:1; }
.country-chip button:hover { background:var(--surface-soft);color:var(--danger-text); }

.help-tip { flex:0 0 22px;width:22px;height:22px;display:inline-grid;place-items:center; }
.help-tip::after { display:none!important;content:none!important; }
.gc-tooltip { position:fixed;z-index:9999;width:min(300px,calc(100vw - 24px));padding:11px 13px;border-radius:10px;background:var(--tooltip-bg);color:var(--tooltip-text);font-size:.86rem;font-weight:400;line-height:1.45;box-shadow:0 14px 38px rgba(0,0,0,.22);pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .12s ease,transform .12s ease; }
.gc-tooltip.is-visible { opacity:1;transform:translateY(0); }

.choice-cards span { min-height:122px;padding:18px; }
.choice-cards span::before { content:"";width:18px;height:18px;border:2px solid var(--line);border-radius:50%;margin-bottom:4px;box-shadow:inset 0 0 0 4px var(--surface); }
.choice-cards label.is-selected span::before { border-color:var(--blue);background:var(--blue); }
.checkbox-grid { grid-template-columns:repeat(2,minmax(260px,1fr)); }
.checkbox-grid .compact-control { max-width:220px; }

.case-layout { grid-template-columns:1fr; }
.case-layout > aside { grid-template-columns:repeat(2,minmax(0,1fr)); }
.relationship-card { overflow:visible; }
.relationship-builder { grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;padding:22px; }
.relationship-builder > label { grid-column:span 4; }
.relationship-builder .relationship-notes { grid-column:span 9; }
.relationship-builder .relationship-submit { grid-column:span 3;align-self:end; }
.relationship-builder .relationship-submit .button { width:100%;min-height:48px; }

.hash-short { max-width:190px;white-space:nowrap;text-overflow:ellipsis; }
.hash-pending { display:inline-block;padding:5px 8px;border-radius:7px;background:var(--surface-soft);color:var(--muted);font-size:.8rem; }

@media(max-width:1100px){
    .app-shell{width:min(100% - 36px,1180px)}
    .case-basics-grid .case-title-field,.case-basics-grid .case-purpose-field{grid-column:span 6}
    .period-country-grid{grid-template-columns:150px 150px minmax(280px,1fr)}
    .case-layout > aside{grid-template-columns:1fr}
    .relationship-builder > label{grid-column:span 6}.relationship-builder .relationship-notes{grid-column:span 8}.relationship-builder .relationship-submit{grid-column:span 4}
}
@media(max-width:760px){
    .app-shell{width:min(100% - 24px,100%);margin-top:24px}
    .step-context{padding:12px 20px;align-items:flex-start;flex-direction:column;gap:2px}
    .step-panel{padding:24px 20px 28px}
    .case-basics-grid{grid-template-columns:1fr}.case-basics-grid > label,.case-basics-grid > div,.case-basics-grid .case-title-field,.case-basics-grid .case-purpose-field,.case-basics-grid .case-status-field,.case-basics-grid .case-privacy-field,.case-basics-grid .case-language-field,.case-basics-grid .span-2{grid-column:1}
    .period-country-grid{grid-template-columns:1fr}.country-picker__entry{grid-template-columns:1fr}.compact-button{width:100%}
    .checkbox-grid{grid-template-columns:1fr}
    .relationship-builder{grid-template-columns:1fr}.relationship-builder > label,.relationship-builder .relationship-notes,.relationship-builder .relationship-submit{grid-column:1}
}

/* FIX-UX-03: coherencia de ancho entre web pública y área autenticada.
 * La portada usa el mismo ritmo horizontal amplio del SaaS sin afectar
 * los formularios ni las pantallas privadas.
 */
.hero,
.feature-grid {
    width: min(100% - 48px, 1380px);
    max-width: 1380px;
    padding-left: 0;
    padding-right: 0;
}
.hero {
    grid-template-columns: minmax(0, 1.18fr) minmax(390px, .82fr);
    gap: 64px;
}
.hero h1 {
    max-width: 880px;
    font-size: clamp(2.65rem, 3.7vw, 3.65rem);
}
.hero p { max-width: 820px; }
.hero-panel { padding: 32px; }
.feature-grid { gap: 22px; }

@media (max-width: 1100px) {
    .hero,
    .feature-grid { width: min(100% - 36px, 1180px); }
    .hero { grid-template-columns: minmax(0, 1.08fr) minmax(330px, .92fr); gap: 38px; }
    .hero h1 { font-size: clamp(2.45rem, 4.2vw, 3.2rem); }
}
@media (max-width: 860px) {
    .hero,
    .feature-grid { width: min(100% - 28px, 100%); }
    .hero { grid-template-columns: 1fr; gap: 28px; margin-top: 38px; }
    .hero-panel { padding: 24px; }
}
@media (max-width: 560px) {
    .hero,
    .feature-grid { width: min(100% - 20px, 100%); }
    .hero h1 { font-size: clamp(2.1rem, 10vw, 2.65rem); }
}

/* Compatibilidad de tokens visuales usados por módulos densos. */
:root{--line-strong:color-mix(in srgb,var(--line) 72%,var(--text));--shadow-sm:0 8px 22px color-mix(in srgb,var(--text) 8%,transparent);--shadow-xs:0 4px 12px color-mix(in srgb,var(--text) 6%,transparent);--page-bg:var(--bg);--blue-soft:color-mix(in srgb,var(--blue) 10%,var(--surface));}

/* =========================================================
   Sprint 4: Matriz probatoria
   ========================================================= */
.evidence-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,390px);gap:28px;align-items:end;margin-bottom:24px}.evidence-hero h1{max-width:900px;margin:.35rem 0 .65rem}.evidence-hero>div>p{max-width:850px;color:var(--muted);font-size:1.04rem;line-height:1.7}.evidence-principle-card{background:linear-gradient(145deg,var(--surface),var(--surface-soft));border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:16px;padding:20px 22px;box-shadow:var(--shadow-sm)}.evidence-principle-card strong{display:block;font-size:1rem;margin-bottom:6px}.evidence-principle-card p{color:var(--muted);line-height:1.55;margin:0}.case-context-chip{display:inline-flex;margin-top:14px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.9rem}.evidence-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:20px 0 22px}.evidence-stats article{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:17px 18px;box-shadow:var(--shadow-sm)}.evidence-stats span{display:block;color:var(--blue);font-size:1.65rem;font-weight:700}.evidence-stats p{margin:4px 0 0;color:var(--muted);font-size:.9rem}.evidence-tabs{position:sticky;top:0;z-index:8;display:flex;gap:8px;overflow-x:auto;background:color-mix(in srgb,var(--page-bg) 92%,transparent);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:14px;padding:8px;margin-bottom:22px}.evidence-tabs a{white-space:nowrap;padding:10px 14px;border-radius:9px;color:var(--text);font-weight:600;text-decoration:none}.evidence-tabs a:hover,.evidence-tabs a:focus-visible{background:var(--blue-soft);color:var(--blue)}.evidence-section{scroll-margin-top:80px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px;margin-bottom:24px;box-shadow:var(--shadow-sm)}.evidence-section__heading{align-items:flex-start;margin-bottom:18px}.evidence-section__heading p{max-width:820px;color:var(--muted);line-height:1.6;margin:.25rem 0 0}.evidence-form-panel{background:var(--surface-soft);border:1px solid var(--line);border-radius:16px;padding:20px;margin:16px 0 22px}.form-intro{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.form-intro strong{font-size:1.05rem}.form-intro p{color:var(--muted);margin:4px 0 0;line-height:1.55}.icon-close{border:0;background:transparent;color:var(--muted);font-size:1.55rem;line-height:1;cursor:pointer;padding:4px 8px}.evidence-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}.evidence-form-grid label,.mini-form label{display:flex;flex-direction:column;gap:7px}.evidence-form-grid small{color:var(--muted);line-height:1.45}.span-2{grid-column:span 2}.form-actions{display:flex;gap:10px;align-items:center;margin-top:4px}.evidence-filter{display:grid;grid-template-columns:minmax(220px,1fr) minmax(160px,220px) auto;gap:10px;margin:14px 0 18px}.friendly-empty{border:1px dashed var(--line-strong);border-radius:14px;padding:26px;text-align:center;background:var(--surface-soft)}.friendly-empty strong{display:block;font-size:1.05rem}.friendly-empty p{color:var(--muted);margin:7px auto 0;max-width:620px}.assertion-list{display:grid;gap:14px}.assertion-card{border:1px solid var(--line);border-radius:16px;padding:20px;background:var(--surface);box-shadow:var(--shadow-xs)}.assertion-card__top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.assertion-card h3{font-size:1.08rem;margin:8px 0 4px}.assertion-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:.86rem}.status-pill,.certainty-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:.78rem;font-weight:600;border:1px solid var(--line);background:var(--surface-soft)}.status-aceptada,.certainty-confirmado{color:#187647;background:#eaf8f0;border-color:#bce6ce}.status-refutada,.certainty-descartado{color:#a33535;background:#fff0f0;border-color:#f1c4c4}.status-propuesta,.certainty-posible,.certainty-muy_probable{color:#6e5310;background:#fff8df;border-color:#eadca5}.assertion-value{font-size:1.2rem;color:var(--text);margin:3px 0 0}.assertion-reason{color:var(--muted);line-height:1.6;margin:14px 0}.evidence-balance{display:flex;gap:6px}.evidence-balance span,.test-summary span{min-width:42px;text-align:center;border-radius:8px;padding:6px 8px;font-weight:700}.favor{color:#187647;background:#eaf8f0}.against{color:#a33535;background:#fff0f0}.citation-preview{background:var(--surface-soft);border-left:3px solid var(--blue);border-radius:8px;padding:13px 15px;margin:14px 0}.citation-preview>span{display:block;color:var(--muted);font-size:.84rem;margin-top:2px}.citation-preview blockquote{margin:9px 0 0;color:var(--text);font-style:italic;line-height:1.55}.evidence-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;margin:14px 0}.evidence-item{border:1px solid var(--line);border-radius:12px;padding:13px;background:var(--surface-soft)}.evidence-item--a_favor{border-left:4px solid #3aa56d}.evidence-item--en_contra{border-left:4px solid #d25c5c}.evidence-item--contexto{border-left:4px solid #7890a8}.evidence-item>div{display:flex;gap:8px;align-items:center;margin-bottom:7px}.evidence-item strong{font-size:.9rem}.evidence-item p{font-size:.9rem;line-height:1.5;margin:6px 0}.evidence-item small{color:var(--muted);line-height:1.4}.quality-label{color:var(--muted);font-size:.8rem}.assertion-actions{display:grid;gap:8px;margin-top:12px}.compact-disclosure{margin:0}.compact-disclosure summary{font-size:.9rem}.mini-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;padding-top:12px}.mini-form__action{display:flex;align-items:end}.inline-callout{display:inline-flex;padding:10px 12px;border:1px dashed var(--line-strong);border-radius:9px;color:var(--blue);text-decoration:none;font-size:.9rem}.assertion-checklist{border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.assertion-checklist legend{padding:0 8px;font-weight:600}.assertion-checklist label{display:flex;flex-direction:row;align-items:flex-start;gap:9px;border:1px solid var(--line);border-radius:9px;padding:10px;background:var(--surface)}.assertion-checklist input{width:auto;height:auto;margin-top:3px}.assertion-checklist small{display:block;color:var(--muted);margin-top:3px}.contradiction-grid,.hypothesis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.contradiction-card,.hypothesis-card{border:1px solid var(--line);border-radius:15px;padding:18px;background:var(--surface-soft)}.contradiction-card__top,.hypothesis-card__top{display:flex;justify-content:space-between;gap:10px;align-items:center;color:var(--muted);font-size:.85rem}.contradiction-card h3,.hypothesis-card h3{font-size:1.05rem;margin:11px 0 6px}.contradiction-card>p,.hypothesis-card>p{color:var(--muted);line-height:1.55}.conflict-summary{margin:12px 0;padding:11px 12px;background:color-mix(in srgb,#d25c5c 7%,var(--surface));border:1px solid color-mix(in srgb,#d25c5c 28%,var(--line));border-radius:10px;line-height:1.5;font-size:.9rem}.resolution-box{background:color-mix(in srgb,#3aa56d 8%,var(--surface));border-radius:10px;padding:12px;margin:12px 0}.resolution-box p{margin:5px 0 0;line-height:1.5}.hypothesis-warning{border:1px solid #eadca5;background:#fff8df;color:#624b0e;border-radius:9px;padding:10px 11px;font-size:.86rem;line-height:1.45;margin:12px 0}.test-summary{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.86rem}.test-summary span:first-child{background:var(--surface);border:1px solid var(--line);font-weight:600;min-width:auto}.hypothesis-tests{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}.hypothesis-tests li{display:flex;align-items:flex-start;gap:10px;border-top:1px solid var(--line);padding-top:9px}.hypothesis-tests p{margin:3px 0 0;color:var(--muted);font-size:.88rem}.back-link{display:inline-block;color:var(--muted);text-decoration:none;margin-bottom:10px}.back-link:hover{color:var(--blue)}
[data-theme="dark"] .status-aceptada,[data-theme="dark"] .certainty-confirmado,[data-theme="dark"] .favor{background:#143a2a;color:#8ee0b2;border-color:#285d45}[data-theme="dark"] .status-refutada,[data-theme="dark"] .certainty-descartado,[data-theme="dark"] .against{background:#402020;color:#f3aaaa;border-color:#6b3232}[data-theme="dark"] .status-propuesta,[data-theme="dark"] .certainty-posible,[data-theme="dark"] .certainty-muy_probable,[data-theme="dark"] .hypothesis-warning{background:#3b3218;color:#f0d988;border-color:#65572b}
@media(max-width:980px){.evidence-hero{grid-template-columns:1fr}.evidence-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.contradiction-grid,.hypothesis-grid{grid-template-columns:1fr}}
@media(max-width:720px){.evidence-section{padding:16px}.evidence-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.evidence-form-grid,.mini-form,.assertion-checklist{grid-template-columns:1fr}.span-2{grid-column:span 1}.evidence-filter{grid-template-columns:1fr}.assertion-card__top{flex-direction:column}.evidence-balance{align-self:flex-start}.form-actions{flex-wrap:wrap}}

/* ==========================================================
   Sprint 5 · Homónimos y comparación de candidatos
   ========================================================== */
.candidate-hero{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:28px;align-items:stretch;margin-bottom:24px}.candidate-hero h1{margin:.35rem 0 .6rem;font-size:clamp(2rem,3vw,3.15rem);line-height:1.08}.candidate-hero p{max-width:780px;color:var(--muted);font-size:1.02rem;line-height:1.7}.candidate-safety-card{padding:24px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--blue) 5%,var(--surface)));box-shadow:var(--shadow)}.candidate-safety-card strong{display:block;font-size:1.05rem;margin-bottom:8px}.candidate-safety-card p{margin:0;font-size:.95rem}.candidate-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.candidate-stats article{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}.candidate-stats span{display:block;color:var(--blue);font-size:1.75rem;font-weight:650}.candidate-stats p{margin:.25rem 0 0;color:var(--muted)}.candidate-overview-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.7fr);gap:20px;align-items:start;margin-bottom:28px}.candidate-list-card,.candidate-add-card,.candidate-comparison,.criteria-matrix,.candidate-classification-card{border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.candidate-list-card,.candidate-add-card{padding:24px}.candidate-add-card{position:sticky;top:92px}.candidate-add-card h2{margin-top:0}.candidate-list{display:grid;gap:10px}.candidate-list-item{display:block;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft);color:var(--text);text-decoration:none;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.candidate-list-item:hover,.candidate-list-item:focus-visible{border-color:var(--blue);transform:translateY(-1px);box-shadow:var(--shadow)}.candidate-list-item.is-active{border-color:var(--blue);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 18%,transparent)}.candidate-list-item>div:first-child{display:flex;gap:10px;align-items:center;justify-content:space-between}.candidate-list-item__meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:.87rem}.match-count{color:var(--accent)}.conflict-count{color:var(--danger-text)}.candidate-comparison{padding:28px}.candidate-comparison__heading{align-items:center}.candidate-score-card{min-width:240px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.candidate-score-card>span,.candidate-score-card>small{display:block;color:var(--muted)}.candidate-score-card strong{display:block;font-size:1.8rem;margin:.25rem 0}.score-track{height:8px;border-radius:999px;background:var(--line);overflow:hidden;margin-bottom:8px}.score-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--accent))}.person-comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0 28px}.person-comparison-card{padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft)}.person-comparison-card--target{border-top:4px solid var(--blue)}.person-comparison-card--candidate{border-top:4px solid #a76b16}.person-comparison-card h3{margin:.35rem 0 1rem;font-size:1.35rem}.person-comparison-card dl{margin:0;display:grid;gap:12px}.person-comparison-card dl div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:14px;padding-top:11px;border-top:1px solid var(--line)}.person-comparison-card dt{color:var(--muted);font-size:.83rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.person-comparison-card dd{margin:0;line-height:1.55;overflow-wrap:anywhere}.criteria-matrix{padding:22px;margin-top:6px}.criteria-list{display:grid;gap:12px}.criterion-row{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(160px,.75fr) 100px minmax(220px,1.3fr) minmax(220px,1.1fr) auto;gap:12px;align-items:end;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.criterion-row label{margin:0}.criterion-row__name{align-self:center}.criterion-row__name strong{display:block;margin-bottom:7px}.comparison-result{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--surface);border:1px solid var(--line)}.comparison-result--coincide{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.comparison-result--parcial{color:#a76b16;border-color:color-mix(in srgb,#a76b16 45%,var(--line))}.comparison-result--contradice{color:var(--danger-text);border-color:color-mix(in srgb,var(--danger-text) 45%,var(--line))}.comparison-result--desconocido{color:var(--muted)}.criterion-weight input{min-width:0}.criterion-detail textarea{min-height:76px}.criterion-save{align-self:end;min-height:48px}.candidate-classification-card{display:grid;grid-template-columns:minmax(260px,.65fr) minmax(0,1.35fr);gap:28px;padding:24px;margin-top:22px}.candidate-classification-card h2{margin:.35rem 0}.candidate-classification-card p{color:var(--muted);line-height:1.65}.candidate-classification-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.candidate-classification-form .span-2{grid-column:1/-1}.certainty-pill.certainty-homonimo_probable{color:#8b5a13;background:#fff5dc;border-color:#e5bd68}.certainty-pill.certainty-descartado{color:var(--danger-text);background:color-mix(in srgb,var(--danger-text) 8%,var(--surface));border-color:color-mix(in srgb,var(--danger-text) 35%,var(--line))}[data-theme="dark"] .certainty-pill.certainty-homonimo_probable{color:#ffd88d;background:#3d2d14;border-color:#755826}

@media (max-width:1180px){.criterion-row{grid-template-columns:repeat(2,minmax(0,1fr))}.criterion-row__name,.criterion-detail,.criterion-evidence{grid-column:1/-1}.criterion-save{justify-self:start}.candidate-overview-grid{grid-template-columns:1fr}.candidate-add-card{position:static}.candidate-classification-card{grid-template-columns:1fr}}
@media (max-width:820px){.candidate-hero,.person-comparison-grid{grid-template-columns:1fr}.candidate-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.candidate-comparison{padding:20px}.candidate-comparison__heading{align-items:flex-start}.candidate-score-card{width:100%;min-width:0}.person-comparison-card dl div{grid-template-columns:1fr;gap:4px}.candidate-classification-form{grid-template-columns:1fr}.candidate-classification-form .span-2{grid-column:auto}}
@media (max-width:560px){.candidate-stats{grid-template-columns:1fr 1fr}.candidate-list-card,.candidate-add-card,.candidate-comparison,.criteria-matrix,.candidate-classification-card{padding:16px}.candidate-list-item>div:first-child{align-items:flex-start;flex-direction:column}.criterion-row{grid-template-columns:1fr}.criterion-row__name,.criterion-detail,.criterion-evidence{grid-column:auto}}

/* ==========================================================
   Sprint 6 · Orquestador de búsquedas reproducibles
   ========================================================== */
.search-hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:26px;align-items:stretch;margin-bottom:24px}.search-hero h1{margin:.35rem 0 .55rem;font-size:clamp(2rem,3.2vw,3.15rem);line-height:1.08}.search-hero>div>p{max-width:820px;color:var(--muted);font-size:1.03rem}.search-principle-card{padding:24px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--accent-soft) 52%,var(--surface)));box-shadow:var(--shadow)}.search-principle-card strong{display:block;font-size:1.08rem;color:var(--navy)}.search-principle-card p{color:var(--muted);margin:.55rem 0 1rem}.search-principle-card span{display:block;padding:10px 12px;border-radius:10px;background:var(--surface);border:1px solid var(--line);font-size:.87rem;color:var(--text)}
.search-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:18px}.search-stats article{padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow)}.search-stats span{display:block;color:var(--blue);font-size:1.72rem;font-weight:650}.search-stats p{margin:.25rem 0 0;color:var(--muted);line-height:1.35}.research-section-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 24px;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.research-section-nav a{padding:9px 13px;border-radius:9px;text-decoration:none;color:var(--text);font-weight:500}.research-section-nav a:hover{background:var(--surface-soft);color:var(--blue)}
.search-card{padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);margin-bottom:22px;min-width:0}.search-planning-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.72fr);gap:20px;align-items:start}.search-create-plan{position:sticky;top:92px}.search-plan-items{display:grid;gap:10px}.search-plan-item{display:block;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft);color:var(--text);text-decoration:none}.search-plan-item:hover,.search-plan-item.is-active{border-color:var(--blue);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 16%,transparent)}.search-plan-item>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:center}.search-plan-item p{margin:.55rem 0;color:var(--muted)}.search-plan-meta{display:flex;gap:13px;flex-wrap:wrap;font-size:.83rem;color:var(--muted)}.coverage-track{height:7px;margin-top:10px;border-radius:999px;background:var(--line);overflow:hidden}.coverage-track span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--accent));border-radius:inherit}.status-pill,.count-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:.78rem;font-weight:600;white-space:nowrap}.count-badge{min-width:32px;color:var(--blue)}
.selected-plan-card{margin-top:2px}.selected-plan-card>.section-heading{align-items:center}.coverage-donut{--value:0;position:relative;width:108px;height:108px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--value)*1%),var(--line) 0)}.coverage-donut:before{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--surface)}.coverage-donut strong,.coverage-donut span{position:relative;z-index:1}.coverage-donut strong{font-size:1.25rem;color:var(--navy)}.coverage-donut span{font-size:.72rem;color:var(--muted)}.plan-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:20px}.plan-detail-grid>div{padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--surface-soft);min-width:0}.subsection-title h3{margin:0 0 .25rem}.subsection-title p{margin:0 0 14px;color:var(--muted)}.variant-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.variant-chips span{display:grid;padding:7px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface);font-size:.9rem}.variant-chips small{color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}.inline-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.inline-form label{display:grid;gap:6px;min-width:150px}.inline-form .grow{flex:1 1 230px}.planned-source-list{display:grid;gap:10px;margin-bottom:15px}.planned-source-list article{padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.planned-source-list article>div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:center}.planned-source-list p{margin:.4rem 0;color:var(--muted)}.compact-status-form{display:flex;gap:8px;align-items:center;margin-top:9px}.compact-status-form select{min-height:38px;padding:7px 10px}.state-cubierta{color:var(--accent)}.state-bloqueada{color:var(--danger-text)}
.search-source-execution-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:20px;align-items:start}.source-directory{display:grid;gap:10px;max-height:550px;overflow:auto;padding-right:4px}.source-directory article{display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.source-directory article>div{display:flex;justify-content:space-between;gap:12px}.source-directory article>div span{color:var(--muted);font-size:.77rem}.source-directory p,.source-directory small{margin:0;color:var(--muted)}.source-directory a{font-size:.88rem}.friendly-details{margin-top:16px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft);padding:0 15px}.friendly-details>summary{cursor:pointer;padding:14px 0;color:var(--blue);font-weight:600}.friendly-details>form{padding:0 0 16px}.form-grid-3,.form-grid-4{display:grid;gap:12px}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.compact-fields input{min-width:0}.search-option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.search-filter-fieldset{margin:4px 0 0;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.search-filter-fieldset legend{padding:0 8px;font-weight:600;color:var(--navy)}.search-execution-form{display:grid;gap:15px}.search-execution-form label,.plan-source-form label{display:grid;gap:6px}.filter-row{display:grid;grid-template-columns:minmax(0,1fr) 240px auto;gap:10px;margin-bottom:17px}.responsive-table tr.is-selected td{background:color-mix(in srgb,var(--blue) 7%,var(--surface))}.search-state,.result-class{display:inline-flex;padding:5px 9px;border-radius:999px;border:1px solid var(--line);font-size:.78rem;font-weight:600}.search-state--hallazgo_confirmado,.result-class--relevante{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.search-state--hallazgo_posible,.search-state--parcial,.result-class--posible,.result-class--pendiente{color:#9a6715;border-color:#d8b56d;background:#fff8e6}.search-state--sin_resultado{color:var(--muted)}.search-state--falso_positivo,.search-state--homonimo,.result-class--falso_positivo,.result-class--homonimo,.result-class--irrelevante{color:var(--danger-text);border-color:color-mix(in srgb,var(--danger-text) 35%,var(--line));background:color-mix(in srgb,var(--danger-text) 7%,var(--surface))}.search-state--bloqueado,.search-state--restringido,.search-state--error,.search-state--pendiente_pago,.search-state--pendiente_visita,.search-state--pendiente_respuesta{color:#8a5714;border-color:#cfa55f;background:var(--warm-highlight)}
.execution-detail-card>.section-heading{align-items:flex-start}.execution-facts-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.execution-facts-grid>div{padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.execution-facts-grid span{display:block;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.execution-facts-grid strong{display:block;margin-top:4px;overflow-wrap:anywhere}.execution-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:15px}.execution-summary-grid article{padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft);min-width:0}.execution-summary-grid h3{font-size:1rem;margin:0 0 8px}.execution-summary-grid p{margin:0;color:var(--text)}.execution-summary-grid dl{margin:0;display:grid;gap:7px}.execution-summary-grid dl div{display:grid;grid-template-columns:minmax(90px,.5fr) minmax(0,1fr);gap:8px}.execution-summary-grid dt{color:var(--muted);font-size:.8rem}.execution-summary-grid dd{margin:0;overflow-wrap:anywhere}.search-result-list{display:grid;gap:12px}.search-result-list>article{padding:17px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.search-result-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.search-result-head>div{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.search-result-list blockquote{margin:12px 0;padding:12px 14px;border-left:3px solid var(--blue);background:var(--surface);color:var(--muted)}.search-result-list details{margin-top:10px}.search-result-list details summary{cursor:pointer;color:var(--blue)}.inline-review-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding-top:12px}.inline-review-form label{display:grid;gap:5px;min-width:170px}.inline-review-form .grow{flex:1 1 280px}.muted{color:var(--muted)}
[data-theme="dark"] .search-state--hallazgo_posible,[data-theme="dark"] .search-state--parcial,[data-theme="dark"] .result-class--posible,[data-theme="dark"] .result-class--pendiente{color:#f0d287;border-color:#665425;background:#332b16}[data-theme="dark"] .search-state--bloqueado,[data-theme="dark"] .search-state--restringido,[data-theme="dark"] .search-state--error,[data-theme="dark"] .search-state--pendiente_pago,[data-theme="dark"] .search-state--pendiente_visita,[data-theme="dark"] .search-state--pendiente_respuesta{color:#efd08c;border-color:#6b5526;background:#342a16}
@media(max-width:1180px){.search-planning-grid,.search-source-execution-grid{grid-template-columns:1fr}.search-create-plan{position:static}.plan-detail-grid{grid-template-columns:1fr}.execution-summary-grid{grid-template-columns:1fr 1fr}.search-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.search-hero{grid-template-columns:1fr}.search-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-3,.form-grid-4,.execution-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.search-option-grid{grid-template-columns:1fr}.filter-row{grid-template-columns:1fr}.execution-summary-grid{grid-template-columns:1fr}.coverage-donut{width:92px;height:92px}.selected-plan-card>.section-heading{align-items:flex-start}}
@media(max-width:560px){.search-card{padding:16px}.search-stats{grid-template-columns:1fr 1fr}.form-grid-2,.form-grid-3,.form-grid-4,.execution-facts-grid{grid-template-columns:1fr}.research-section-nav{display:grid;grid-template-columns:1fr 1fr}.inline-form,.inline-review-form{display:grid;grid-template-columns:1fr}.inline-form label,.inline-review-form label{min-width:0}.search-result-head{flex-direction:column}.planned-source-list article>div:first-child,.source-directory article>div{align-items:flex-start;flex-direction:column}}

/* ================================================================
 * Sprint 7 · Solicitudes institucionales y seguimiento
 * ================================================================ */
.communication-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 22px;
}
.communication-hero h1 { margin: 4px 0 8px; }
.context-line { display: flex; gap: 12px; align-items: center; color: var(--muted); font-size: 14px; flex-wrap: wrap; }
.communication-summary {
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr));
    gap: 14px;
    margin-bottom: 20px;
}
.communication-summary article {
    min-height: 112px;
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--surface);
    box-shadow: var(--shadow);
}
.communication-summary article.is-alert { border-color: #d97706; }
.communication-summary span { display:block; color:var(--blue); font-size:2rem; font-weight:600; line-height:1; }
.communication-summary p { margin:12px 0 0; color:var(--muted); }
.communication-filter { display:grid; grid-template-columns:minmax(0,1fr) 220px auto; gap:12px; margin-bottom:20px; }
.communication-workspace {
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);
    gap:20px;
    align-items:start;
}
.communication-list-card,
.communication-create-card,
.communication-detail,
.communication-control-card,
.communication-body-card { min-width:0; }
.communication-request-list { display:grid; gap:12px; }
.communication-request-card {
    display:block;
    padding:18px;
    color:var(--text);
    text-decoration:none;
    background:var(--surface-soft);
    border:1px solid var(--line);
    border-radius:14px;
    transition:border-color .16s ease, transform .16s ease, background-color .16s ease;
}
.communication-request-card:hover,
.communication-request-card.is-selected { border-color:var(--blue); transform:translateY(-1px); color:var(--text); }
.communication-request-card.is-selected { box-shadow:0 0 0 3px var(--focus); }
.communication-request-card__top,
.communication-card-footer,
.timeline-top,
.communication-detail-header,
.communication-primary-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.communication-request-card h3 { margin:12px 0 4px; font-size:1.05rem; }
.communication-recipient { margin:0 0 12px; color:var(--muted); }
.communication-mini-meta { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0; }
.communication-mini-meta div { min-width:0; }
.communication-mini-meta dt,
.communication-detail-meta dt { color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.05em; }
.communication-mini-meta dd,
.communication-detail-meta dd { margin:2px 0 0; overflow-wrap:anywhere; }
.communication-card-footer { margin-top:14px; padding-top:12px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }
.priority { display:inline-flex; padding:4px 9px; border-radius:999px; font-size:12px; border:1px solid var(--line); }
.priority-alta,.priority-critica { color:#b45309; background:#fff7ed; border-color:#fed7aa; }
:root[data-theme="dark"] .priority-alta,
:root[data-theme="dark"] .priority-critica { color:#fdba74; background:#3b2516; border-color:#7c4a1f; }
.text-alert { color:#b45309; font-weight:600; }
.communication-create-card form { display:grid; gap:16px; }
.communication-recipient-grid { grid-template-columns:1.25fr 1.25fr .75fr; }
.communication-dates-grid { grid-template-columns:.7fr .7fr 1fr 1fr; }
.communication-create-card textarea[data-communication-body] { min-height:250px; resize:vertical; }
.communication-empty { padding:44px 20px; text-align:center; }
.communication-detail { margin-top:24px; padding-top:8px; }
.communication-detail-header { padding:24px; border:1px solid var(--line); border-radius:18px; background:var(--surface); box-shadow:var(--shadow); }
.communication-detail-header h2 { margin:8px 0 4px; }
.communication-detail-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(300px,.65fr); gap:20px; margin-top:20px; align-items:start; }
.communication-detail-meta { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:0 0 20px; }
.communication-detail-meta div { padding:12px; background:var(--surface-soft); border:1px solid var(--line); border-radius:12px; }
.communication-letter { padding:24px; border:1px solid var(--line); border-radius:14px; background:var(--surface-soft); white-space:normal; overflow-wrap:anywhere; }
.communication-letter h4 { margin-top:0; }
.communication-control-card form { display:grid; gap:12px; }
.communication-control-card hr,
.communication-lower-grid hr { border:0; border-top:1px solid var(--line); margin:22px 0; }
.full-width { width:100%; text-align:center; }
.communication-lower-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr); gap:20px; margin-top:20px; align-items:start; }
.communication-timeline { list-style:none; margin:0; padding:0; display:grid; gap:16px; }
.communication-timeline li { position:relative; display:grid; grid-template-columns:18px minmax(0,1fr); gap:12px; }
.timeline-dot { width:12px; height:12px; border-radius:50%; margin-top:7px; background:var(--blue); box-shadow:0 0 0 4px var(--focus); }
.direction-entrante .timeline-dot { background:#16a34a; }
.direction-nota_interna .timeline-dot { background:#d97706; }
.communication-timeline h4 { margin:4px 0; }
.communication-timeline p { margin:4px 0; }
.communication-timeline time { color:var(--muted); font-size:12px; }
.reminder-list { display:grid; gap:10px; }
.reminder-list article { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:start; padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--surface-soft); }
.reminder-list time { display:block; color:var(--muted); font-size:13px; }
.reminder-list p { grid-column:1/-1; margin:5px 0 0; }
.attachment-list { list-style:none; padding:0; margin:0 0 16px; display:grid; gap:10px; }
.attachment-list li { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 10px; padding:11px 0; border-bottom:1px solid var(--line); }
.attachment-list small { color:var(--muted); }
.status-borrador { background:var(--surface-soft); }
.status-programada { background:#eff6ff; color:#1d4ed8; }
.status-enviada,.status-entregada { background:#eef2ff; color:#4338ca; }
.status-respondida { background:#ecfdf5; color:#047857; }
.status-sin_respuesta,.status-fallida { background:#fff7ed; color:#b45309; }
.status-cancelada,.status-cerrada { background:#f3f4f6; color:#4b5563; }
:root[data-theme="dark"] .status-programada,
:root[data-theme="dark"] .status-enviada,
:root[data-theme="dark"] .status-entregada { background:#1e2a47; color:#bfdbfe; }
:root[data-theme="dark"] .status-respondida { background:#123529; color:#a7f3d0; }
:root[data-theme="dark"] .status-sin_respuesta,
:root[data-theme="dark"] .status-fallida { background:#3b2516; color:#fdba74; }
:root[data-theme="dark"] .status-cancelada,
:root[data-theme="dark"] .status-cerrada { background:#273244; color:#cbd5e1; }

@media (max-width:1180px) {
    .communication-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .communication-workspace,
    .communication-detail-grid,
    .communication-lower-grid { grid-template-columns:1fr; }
    .communication-create-card { order:-1; }
}
@media (max-width:760px) {
    .communication-hero { flex-direction:column; }
    .communication-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .communication-filter,
    .communication-recipient-grid,
    .communication-dates-grid,
    .communication-detail-meta { grid-template-columns:1fr; }
    .communication-mini-meta { grid-template-columns:1fr; }
}


/* ================================================================
 * Sprint 8 · Portal simplificado para clientes y familiares
 * ================================================================ */
.portal-body{background:var(--bg);color:var(--text)}
.portal-topbar{min-height:72px;padding:0 max(24px,calc((100vw - 1380px)/2));display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:30}
.portal-topbar .brand{font-family:Georgia,'Times New Roman',serif;font-size:1.75rem;color:var(--text);text-decoration:none}.portal-label{color:var(--muted);font-size:.92rem}.portal-nav{display:flex;gap:5px;flex:1}.portal-nav a{padding:10px 12px;border-radius:9px;color:var(--muted);text-decoration:none;font-weight:500}.portal-nav a:hover{color:var(--text);background:var(--surface-soft)}
.portal-shell{width:min(1380px,calc(100% - 48px));margin:0 auto;padding:36px 0 70px}.portal-welcome,.portal-case-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:28px;margin-bottom:26px}.portal-welcome{padding:34px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,var(--surface),var(--surface-soft))}.portal-welcome h1,.portal-case-hero h1,.portal-page-head h1{font-size:clamp(2rem,3vw,3rem);margin:6px 0 10px}.portal-welcome p,.portal-case-hero p,.portal-page-head p{max-width:760px;color:var(--muted);font-size:1.05rem;line-height:1.65}
.portal-case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.portal-case-card{display:block;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);color:var(--text);text-decoration:none;transition:.18s}.portal-case-card:hover{transform:translateY(-2px);border-color:var(--blue)}.portal-case-card__top{display:flex;justify-content:space-between;align-items:center}.portal-case-card h2{margin:18px 0 8px}.portal-case-card p{color:var(--muted);min-height:48px}.portal-case-card dl{display:grid;gap:12px;margin:18px 0 0}.portal-case-card dt{font-size:12px;color:var(--muted);text-transform:uppercase}.portal-case-card dd{margin:3px 0 0}
.portal-progress{height:8px;border-radius:999px;background:var(--surface-soft);overflow:hidden;border:1px solid var(--line)}.portal-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#5aa7f8);border-radius:inherit}.portal-progress--large{height:13px;margin:14px 0 24px}
.portal-researcher{display:grid;gap:4px;min-width:260px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.portal-researcher small,.portal-researcher span{color:var(--muted)}.portal-status-grid,.portal-document-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.portal-status-grid article,.portal-document-stats article{padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.portal-status-grid span,.portal-document-stats span{font-size:2rem;color:var(--blue);font-weight:600}.portal-status-grid p,.portal-document-stats p{margin:8px 0 0;color:var(--muted)}
.portal-progress-card,.portal-card,.portal-empty,.portal-question-card,.portal-message-panel,.portal-report-card{padding:26px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);margin-bottom:20px}.portal-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.portal-summary-grid>div{padding:18px;border-radius:14px;background:var(--surface-soft);border:1px solid var(--line)}.portal-summary-grid h3{margin-top:0}.portal-summary-grid p{color:var(--muted);line-height:1.65}.portal-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr);gap:20px}.portal-update-list,.portal-task-list,.portal-relations{list-style:none;padding:0;margin:0;display:grid;gap:14px}.portal-update-list li{display:grid;grid-template-columns:18px 1fr;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--line)}.portal-update-list h3{margin:4px 0}.portal-update-list p{margin:4px 0;color:var(--muted)}.portal-update-icon{width:12px;height:12px;margin-top:6px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px var(--focus)}.portal-task-list li{display:flex;gap:12px;align-items:flex-start;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.portal-task-list strong,.portal-task-list small{display:block}.portal-task-list small{margin-top:5px;color:var(--muted)}
.portal-family-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.portal-family-grid article{padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.portal-family-grid span{display:block;margin-top:5px;color:var(--muted);font-size:.88rem}.portal-relations{margin-top:18px}.portal-relations li{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--line)}.portal-relations small{margin-left:auto;color:var(--muted)}
.portal-page-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:24px}.portal-page-head a{margin-top:12px}.portal-document-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-doc-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(340px,.6fr);gap:20px;align-items:start}.portal-upload-card{position:sticky;top:94px}.portal-request-list{display:grid;gap:12px}.portal-request-list article{padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.portal-request-list h3{margin:10px 0 5px}.portal-request-list p{color:var(--muted)}.portal-dropzone{padding:22px;border:2px dashed var(--line);border-radius:14px;text-align:center;background:var(--surface-soft)}.portal-dropzone span,.portal-dropzone small{display:block}.portal-dropzone input{margin-top:12px}.portal-shared-documents{display:grid;gap:12px}.portal-shared-documents article{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.portal-file-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:13px;background:var(--focus);color:var(--blue);font-weight:700}.portal-shared-documents h3{margin:0 0 4px}.portal-shared-documents p,.portal-shared-documents small{color:var(--muted)}.portal-document-actions{display:flex;gap:8px}
.portal-question-list{display:grid;gap:18px}.portal-question-card{margin:0}.portal-question-head{display:flex;justify-content:space-between;align-items:center}.portal-question-head>div{display:flex;gap:8px}.portal-help-box{padding:15px;border-radius:12px;background:var(--surface-soft);border-left:4px solid var(--blue);margin:15px 0}.portal-help-box p{margin:5px 0 0;color:var(--muted)}.portal-saved-note{color:#15803d;margin-left:12px}.portal-full-timeline{list-style:none;margin:0;padding:0;display:grid;gap:20px}.portal-full-timeline li{display:grid;grid-template-columns:90px minmax(0,1fr);gap:20px}.portal-timeline-date{text-align:center;padding-top:18px}.portal-timeline-date strong,.portal-timeline-date span{display:block}.portal-timeline-date strong{font-size:2rem;color:var(--blue)}.portal-full-timeline article{padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.portal-full-timeline article p{color:var(--muted);line-height:1.7}
.portal-message-panel{padding:0;overflow:hidden}.portal-chat{min-height:420px;max-height:620px;overflow:auto;padding:24px;background:var(--surface-soft);display:grid;gap:14px;align-content:start}.portal-message{max-width:74%;padding:13px 16px;border-radius:15px;background:var(--surface);border:1px solid var(--line)}.portal-message--cliente{margin-left:auto;background:var(--focus);border-color:var(--blue)}.portal-message>div{display:flex;justify-content:space-between;gap:18px}.portal-message time{font-size:12px;color:var(--muted)}.portal-message p{margin:8px 0 0}.portal-message-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:18px;border-top:1px solid var(--line);background:var(--surface)}.portal-message-form textarea{min-height:76px}.portal-report-card{display:grid;grid-template-columns:340px 1fr;gap:30px}.portal-report-cover{min-height:420px;padding:34px;display:flex;flex-direction:column;justify-content:flex-end;border-radius:15px;background:linear-gradient(145deg,#112b51,#2563eb);color:white}.portal-report-cover span{font-family:Georgia,serif;font-size:1.5rem;margin-bottom:auto}.portal-report-cover h2{font-size:2rem}.portal-report-content{align-self:center}.portal-report-content li{margin:10px 0}
.portal-management-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(330px,.7fr);gap:20px}.portal-management-updates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.portal-management-updates article{padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.portal-management-updates article>div{display:flex;gap:8px}.portal-management-updates h3{margin:12px 0 6px}.portal-management-updates p{color:var(--muted)}.alert-info{background:#eff6ff;color:#1e3a8a;border-color:#bfdbfe}
:root[data-theme="dark"] .alert-info{background:#172554;color:#dbeafe;border-color:#1e40af}
@media(max-width:1180px){.portal-nav{overflow:auto}.portal-case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-dashboard-grid,.portal-doc-layout,.portal-management-grid{grid-template-columns:1fr}.portal-upload-card{position:static}.portal-family-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.portal-topbar{padding:14px 20px;flex-wrap:wrap}.portal-nav{order:3;width:100%}.portal-shell{width:min(100% - 28px,1380px);padding-top:24px}.portal-case-grid,.portal-status-grid,.portal-document-stats,.portal-summary-grid,.portal-report-card{grid-template-columns:1fr 1fr}.portal-welcome,.portal-case-hero,.portal-page-head{flex-direction:column}.portal-family-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-management-updates{grid-template-columns:1fr}.portal-shared-documents article{grid-template-columns:48px 1fr}.portal-document-actions{grid-column:1/-1}.portal-report-cover{min-height:300px}}
@media(max-width:560px){.portal-case-grid,.portal-status-grid,.portal-document-stats,.portal-summary-grid,.portal-family-grid,.portal-report-card{grid-template-columns:1fr}.portal-topbar .topbar-actions{width:100%;justify-content:flex-start}.portal-full-timeline li{grid-template-columns:1fr}.portal-timeline-date{text-align:left;display:flex;gap:6px;align-items:baseline}.portal-message{max-width:92%}.portal-message-form{grid-template-columns:1fr}.portal-shared-documents article{grid-template-columns:1fr}.portal-file-icon{width:44px;height:44px}}

/* ================================================================
 * Sprint 9 · OCR, extracción estructurada y revisión humana
 * ================================================================ */
.intelligence-heading{align-items:flex-start}.intelligence-usage{min-width:210px;padding:16px 18px;border:1px solid var(--line);border-radius:15px;background:var(--surface);text-align:right;box-shadow:var(--shadow)}.intelligence-usage strong,.intelligence-usage span,.intelligence-usage small{display:block}.intelligence-usage strong{font-size:1.35rem;color:var(--blue)}.intelligence-usage span,.intelligence-usage small{color:var(--muted)}
.intelligence-notice{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;margin-bottom:20px;border:1px solid #a7f3d0;border-radius:16px;background:#ecfdf5;color:#065f46}.intelligence-notice__icon{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:50%;background:#d1fae5;font-weight:700}.intelligence-notice p{margin:3px 0 0;color:inherit}
:root[data-theme="dark"] .intelligence-notice{background:#102f27;border-color:#1f6b55;color:#d1fae5}.intelligence-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.45fr);gap:22px;align-items:start}.intelligence-main,.intelligence-sidebar{display:grid;gap:20px}.intelligence-step-card{padding:26px}.intelligence-step-heading{display:flex;gap:15px;align-items:flex-start;margin-bottom:22px}.intelligence-step-heading h2{margin:1px 0 4px}.intelligence-step-heading p{margin:0;color:var(--muted);max-width:780px}.step-number{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;background:var(--blue);color:white;font-weight:600}.provider-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.provider-status-grid>div{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.provider-status-grid small,.provider-status-grid strong{display:block}.provider-status-grid small{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.provider-status-grid strong{margin-top:5px}.inline-action-form{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:15px;margin:16px 0;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.inline-action-form span,.context-help{color:var(--muted);font-size:.93rem}.intelligence-transcription-form textarea{min-height:300px;font-family:"Cascadia Mono",Consolas,monospace;font-size:.94rem;line-height:1.65}.field-row--compact{grid-template-columns:minmax(150px,220px) minmax(0,1fr)}.field-explanation{padding:12px 14px;border-left:3px solid var(--blue);background:var(--surface-soft);border-radius:9px}.field-explanation strong,.field-explanation span{display:block}.field-explanation span{margin-top:3px;color:var(--muted)}.form-note{color:var(--muted);font-size:.9rem}.text-preview pre{white-space:pre-wrap;max-height:520px;overflow:auto;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}
.extraction-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.extraction-summary>div{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.extraction-summary strong,.extraction-summary span{display:block}.extraction-summary strong{font-size:1.25rem;color:var(--blue)}.extraction-summary span{color:var(--muted);font-size:.9rem}.intelligence-empty{text-align:center;padding:42px 20px}.intelligence-empty p{margin:5px 0;color:var(--muted)}.intelligence-result-list{display:grid;gap:14px}.intelligence-result{padding:18px;border:1px solid var(--line);border-left-width:4px;border-radius:14px;background:var(--surface-soft)}.intelligence-result--propuesto{border-left-color:#f59e0b}.intelligence-result--aceptado{border-left-color:#10b981}.intelligence-result--corregido{border-left-color:#3b82f6}.intelligence-result--rechazado{border-left-color:#ef4444}.intelligence-result header{display:flex;justify-content:space-between;gap:16px}.intelligence-result h3{margin:4px 0 0;overflow-wrap:anywhere}.result-type{display:inline-block;color:var(--blue);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em}.result-confidence{text-align:right}.result-confidence strong,.result-confidence span{display:block}.intelligence-result blockquote{margin:14px 0;padding:12px 14px;border-left:3px solid var(--line);background:var(--surface);color:var(--muted)}.intelligence-result>small{color:var(--muted)}.result-review-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.result-review-form .check-label,.result-review-actions{grid-column:1/-1}.result-review-actions{display:flex;gap:9px;flex-wrap:wrap}.button.small,.danger-button.small{min-height:38px;padding:8px 14px}.status-propuesto{background:#fff7ed;color:#b45309}.status-aceptado{background:#ecfdf5;color:#047857}.status-corregido{background:#eff6ff;color:#1d4ed8}.status-rechazado{background:#fff1f2;color:#be123c}:root[data-theme="dark"] .status-propuesto{background:#3b2516;color:#fdba74}:root[data-theme="dark"] .status-aceptado{background:#123529;color:#a7f3d0}:root[data-theme="dark"] .status-corregido{background:#172554;color:#bfdbfe}:root[data-theme="dark"] .status-rechazado{background:#3f1622;color:#fecdd3}
.workflow-list{list-style:none;padding:0;margin:0;display:grid;gap:14px}.workflow-list li{display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:start}.workflow-list li>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--focus);color:var(--blue);font-weight:600}.workflow-list strong,.workflow-list small{display:block}.workflow-list small{margin-top:3px;color:var(--muted)}.execution-list li span{display:block;color:var(--muted);font-size:.82rem;margin-top:5px}.privacy-card ul{padding-left:20px}.privacy-card li{margin:8px 0;color:var(--muted)}
@media(max-width:1100px){.intelligence-grid{grid-template-columns:1fr}.intelligence-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.privacy-card{grid-column:1/-1}}
@media(max-width:760px){.intelligence-heading{flex-direction:column}.intelligence-usage{width:100%;text-align:left}.provider-status-grid,.extraction-summary,.result-review-form,.field-row--compact,.intelligence-sidebar{grid-template-columns:1fr}.result-review-form .check-label,.result-review-actions{grid-column:auto}.intelligence-result header{flex-direction:column}.result-confidence{text-align:left}.intelligence-transcription-form textarea{min-height:240px}}

/* ===== Sprint 10: cronologías, informes y anexos ===== */
.reports-hero,
.report-preview-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:24px;
    margin-bottom:24px;
}
.module-hero-actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.module-hero-actions form { margin:0; }
.report-kpi-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px;
    margin-bottom:24px;
}
.report-kpi-grid article {
    padding:20px;
    border:1px solid var(--line);
    border-radius:16px;
    background:var(--surface);
    box-shadow:var(--shadow);
}
.report-kpi-grid span { display:block; font-size:30px; color:var(--blue); font-weight:600; }
.report-kpi-grid p { margin:4px 0 0; color:var(--muted); }
.reports-workspace {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,390px);
    gap:22px;
    align-items:start;
}
.reports-main-column,
.reports-side-column { min-width:0; }
.sticky-form-card { position:sticky; top:92px; }
.genealogy-timeline {
    list-style:none;
    margin:0;
    padding:0;
    position:relative;
}
.genealogy-timeline::before {
    content:"";
    position:absolute;
    left:118px;
    top:8px;
    bottom:8px;
    width:2px;
    background:var(--line);
}
.genealogy-timeline li {
    display:grid;
    grid-template-columns:102px minmax(0,1fr);
    gap:30px;
    position:relative;
    padding:0 0 24px;
}
.genealogy-timeline li::before {
    content:"";
    position:absolute;
    left:112px;
    top:8px;
    width:14px;
    height:14px;
    border-radius:50%;
    border:3px solid var(--surface);
    background:var(--blue);
    box-shadow:0 0 0 1px var(--line);
}
.genealogy-timeline__date { text-align:right; padding-top:1px; }
.genealogy-timeline__date strong { display:block; color:var(--navy); }
.genealogy-timeline__date span { color:var(--muted); font-size:12px; }
.genealogy-timeline article {
    background:var(--surface-soft);
    border:1px solid var(--line);
    border-radius:14px;
    padding:16px 18px;
}
.genealogy-timeline article h3 { margin:8px 0; }
.genealogy-timeline article p { margin:5px 0; }
.timeline-event-meta { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.badge-success { background:#dcfce7; color:#166534; border-color:#86efac; }
:root[data-theme="dark"] .badge-success { background:#153b2a; color:#bbf7d0; border-color:#28684c; }
.research-history-list { display:grid; gap:10px; }
.research-history-list article {
    display:grid;
    grid-template-columns:auto 1fr;
    gap:12px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:12px;
    background:var(--surface-soft);
}
.research-history-list p { margin:4px 0; color:var(--muted); }
.reports-section { margin-top:28px; }
.reports-center-grid {
    display:grid;
    grid-template-columns:minmax(360px,.85fr) minmax(420px,1.15fr);
    gap:22px;
    align-items:start;
}
.report-list { display:grid; gap:10px; }
.report-list-item {
    display:flex;
    justify-content:space-between;
    gap:18px;
    padding:16px;
    border:1px solid var(--line);
    border-radius:14px;
    background:var(--surface-soft);
    color:var(--text);
    text-decoration:none;
}
.report-list-item:hover,
.report-list-item.is-active { border-color:var(--blue); box-shadow:0 0 0 2px var(--focus); }
.report-list-item h3 { margin:7px 0 4px; }
.report-list-item p { margin:0; color:var(--muted); }
.report-list-item small { white-space:nowrap; color:var(--muted); }
.report-detail-block { padding:14px; border:1px solid var(--line); border-radius:12px; background:var(--surface-soft); margin:14px 0; }
.report-detail-block p { margin:6px 0 0; }
.integrity-inline {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:12px 14px;
    border:1px dashed var(--line);
    border-radius:12px;
    background:var(--surface-soft);
    margin:14px 0;
}
.integrity-inline code { overflow-wrap:anywhere; color:var(--muted); }
.report-action-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.report-action-grid form,
.report-action-grid .button { width:100%; margin:0; }
.report-action-grid button { width:100%; }
.report-section-selector {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px 14px;
    border:1px solid var(--line);
    border-radius:12px;
    padding:14px;
}
.report-section-selector legend { padding:0 6px; font-weight:600; color:var(--navy); }
.report-preview-shell {
    max-width:980px;
    margin:0 auto;
    padding:34px;
    border:1px solid var(--line);
    border-radius:18px;
    background:var(--surface);
    box-shadow:var(--shadow);
}
.report-snapshot > header {
    padding-bottom:20px;
    margin-bottom:24px;
    border-bottom:2px solid var(--line);
}
.report-snapshot > header h1 { margin:4px 0; font-size:34px; }
.report-snapshot-section { margin:0 0 28px; break-inside:avoid; }
.report-snapshot-section h2 { font-size:22px; border-bottom:1px solid var(--line); padding-bottom:8px; }
.report-snapshot-section li { margin-bottom:7px; }
.report-snapshot-list { display:grid; gap:8px; }
.report-snapshot-list article {
    display:grid;
    grid-template-columns:minmax(180px,.35fr) minmax(0,1fr);
    gap:16px;
    padding:10px 0;
    border-bottom:1px solid var(--line);
}
.portal-report-preview .report-snapshot > header { display:none; }
.portal-report-preview .report-snapshot-section { margin-bottom:20px; }
.portal-report-card--available { align-items:stretch; }
.compact-year { max-width:100%; }
@media (max-width:1100px) {
    .report-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .reports-workspace,
    .reports-center-grid { grid-template-columns:1fr; }
    .sticky-form-card { position:static; }
}
@media (max-width:720px) {
    .reports-hero,
    .report-preview-head { flex-direction:column; }
    .report-kpi-grid { grid-template-columns:1fr 1fr; }
    .genealogy-timeline::before { left:9px; }
    .genealogy-timeline li { grid-template-columns:1fr; gap:8px; padding-left:28px; }
    .genealogy-timeline li::before { left:3px; }
    .genealogy-timeline__date { text-align:left; }
    .report-action-grid,
    .report-section-selector { grid-template-columns:1fr; }
    .report-preview-shell { padding:18px; }
    .report-snapshot-list article { grid-template-columns:1fr; gap:3px; }
}
@media print {
    .topbar,.module-hero-actions,.theme-toggle { display:none!important; }
    .app-shell { max-width:none; padding:0; }
    .report-preview-shell { border:0; box-shadow:none; max-width:none; }
}


/* Sprint 11: panel comercial B2C/B2B. */
.billing-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:24px;align-items:stretch;margin-bottom:24px}.billing-hero h1{font-size:clamp(2rem,3.2vw,3.2rem);margin:.25rem 0 .5rem}.billing-hero>div>p{max-width:780px;color:var(--muted)}.billing-current-plan,.billing-section{border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.billing-current-plan{display:grid;align-content:center;padding:26px}.billing-current-plan>span{color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.billing-current-plan>strong{font-size:2rem;color:var(--navy)}.billing-current-plan p{margin:.35rem 0}.billing-current-plan small{color:var(--muted)}.billing-cancel-note{margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--warm-highlight,#fff8e6);color:#8a5714}.billing-alerts{display:grid;gap:10px;margin-bottom:22px}.billing-alert{display:flex;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.billing-alert--advertencia{border-color:#d8b56d;background:var(--warm-highlight,#fff8e6)}.billing-alert--bloqueo,.billing-alert--critica{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger-text)}.billing-section{padding:24px;margin-bottom:24px}.billing-usage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.billing-usage-grid article{padding:17px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.billing-usage-grid article>div{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.billing-usage-grid span{color:var(--muted)}.billing-usage-grid strong{color:var(--navy);font-size:1.2rem}.billing-usage-grid p{margin:.45rem 0 0;color:var(--muted);font-size:.88rem}.usage-bar{height:7px;margin-top:12px;border-radius:99px;background:var(--line);overflow:hidden}.usage-bar i{display:block;height:100%;border-radius:inherit;background:var(--blue)}.billing-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:16px}.billing-plan{position:relative;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft)}.billing-plan.is-active{border-color:var(--blue);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 14%,transparent)}.billing-active-badge{position:absolute;top:14px;right:14px;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,var(--blue) 12%,var(--surface));color:var(--blue);font-size:.76rem}.billing-plan h3{font-size:1.45rem;margin:.15rem 0}.billing-price{display:flex;align-items:baseline;gap:5px}.billing-price strong{font-size:1.8rem;color:var(--blue)}.billing-price span,.billing-plan>p{color:var(--muted)}.billing-plan ul{list-style:none;margin:18px 0;padding:0}.billing-plan li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.billing-plan li strong{font-size:.88rem}.billing-plan-form{display:grid;gap:10px}.billing-plan-form label{display:grid;gap:6px}.billing-two-column{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:22px}.billing-actions{display:flex;gap:10px;flex-wrap:wrap}.billing-history{display:grid;gap:8px;max-height:300px;overflow:auto}.billing-history article{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid var(--line)}.billing-history article div{display:grid}.billing-history span,.billing-history small{color:var(--muted)}
@media(max-width:1100px){.billing-usage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-two-column,.billing-hero{grid-template-columns:1fr}}
@media(max-width:640px){.billing-section{padding:17px}.billing-usage-grid{grid-template-columns:1fr}.billing-plan-grid{grid-template-columns:1fr}.billing-alert{align-items:flex-start;flex-direction:column}}

/* Sprint 12 — Directorio de fuentes, modos de acceso y mapa de cobertura. */
.directory-hero,.directory-detail-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:20px;padding:28px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--surface) 82%,var(--blue) 18%));box-shadow:var(--shadow)}
.directory-hero h1,.directory-detail-hero h1{font-size:2.1rem;margin:8px 0}.directory-hero p,.directory-detail-hero p{max-width:780px;margin:0;color:var(--muted)}
.directory-kicker{display:block;color:var(--blue);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.directory-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.directory-metrics article{padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow)}.directory-metrics strong{display:block;font-size:1.7rem;color:var(--navy)}.directory-metrics span{display:block;color:var(--muted);font-size:.87rem}
.directory-filters{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(4,minmax(140px,.7fr)) auto;gap:12px;align-items:end;margin-bottom:24px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.directory-filters label{display:grid;gap:6px;font-size:.83rem;color:var(--muted)}.directory-filters input,.directory-filters select,.directory-form input,.directory-form select,.directory-form textarea,.friendly-details input,.friendly-details select,.friendly-details textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);color:var(--text);font:inherit}.directory-filter-actions{display:flex;gap:8px}.directory-filter-actions .button{white-space:nowrap}
.directory-section{margin:24px 0;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.directory-section .section-heading{align-items:flex-start;margin-bottom:18px}.directory-section .section-heading h2{margin:5px 0}.directory-section .section-heading>p{max-width:520px;color:var(--muted);text-align:right}
.directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.directory-source-card{display:flex;flex-direction:column;gap:12px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft);min-width:0}.directory-source-card>header,.directory-source-card>footer,.directory-badges{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.directory-source-card h3{margin:0;font-size:1.15rem}.directory-source-card h3 a{text-decoration:none;color:var(--navy)}.directory-source-card p{margin:0;color:var(--muted);overflow-wrap:anywhere}.directory-institution{font-size:.87rem}.directory-mode,.directory-scope,.coverage-status{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:700}.directory-mode{background:color-mix(in srgb,var(--blue) 12%,var(--surface));color:var(--blue);border:1px solid color-mix(in srgb,var(--blue) 30%,var(--line))}.directory-scope{border:1px solid var(--line);color:var(--muted)}.directory-scope--organizacion{color:#047857;background:#ecfdf5;border-color:#a7f3d0}:root[data-theme="dark"] .directory-scope--organizacion{color:#a7f3d0;background:#123529;border-color:#27604a}.coverage-status{border:1px solid var(--line)}.coverage-status--covered{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.coverage-status--in_progress{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.coverage-status--pending,.coverage-status--not_planned{color:#8a5714;background:#fff8e6;border-color:#d8b56d}.coverage-status--blocked{color:var(--danger-text);background:var(--danger-bg);border-color:var(--danger-border)}:root[data-theme="dark"] .coverage-status--covered{color:#a7f3d0;background:#123529;border-color:#27604a}:root[data-theme="dark"] .coverage-status--in_progress{color:#bfdbfe;background:#172554;border-color:#274690}:root[data-theme="dark"] .coverage-status--pending,:root[data-theme="dark"] .coverage-status--not_planned{color:#fde68a;background:#3a2b13;border-color:#765b25}
.directory-card-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0}.directory-card-facts div{padding:9px;border-radius:10px;background:var(--surface)}.directory-card-facts dt{font-size:.72rem;color:var(--muted)}.directory-card-facts dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}.directory-source-card footer{margin-top:auto;padding-top:10px;border-top:1px solid var(--line)}.directory-source-card footer>div{display:grid;gap:2px;max-width:70%}.directory-source-card footer span{font-size:.72rem;color:var(--muted)}.directory-source-card footer strong{font-size:.82rem}
.recipe-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.recipe-grid article{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.recipe-grid article>span{color:var(--blue);font-weight:700;font-size:.75rem}.recipe-grid h3{font-size:1rem;margin:7px 0}.recipe-grid p{color:var(--muted);font-size:.88rem}.recipe-grid small{color:var(--muted)}
.directory-checks{display:grid;gap:9px;align-content:center}.directory-checks label{display:flex;grid-template-columns:none;align-items:center;gap:8px}.directory-checks input{width:auto}.directory-detail-grid{display:grid;grid-template-columns:2fr repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.directory-panel{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}.directory-panel--wide{grid-row:span 2}.directory-panel>span{display:block;color:var(--muted);font-size:.78rem}.directory-panel>strong{display:block;margin-top:5px;color:var(--navy);font-size:1rem;overflow-wrap:anywhere}.directory-panel h2{margin-top:0}.directory-panel p{color:var(--muted)}.directory-policy,.directory-warning{margin-top:16px;padding:14px;border-left:4px solid var(--blue);border-radius:10px;background:var(--surface-soft)}.directory-warning{border-left-color:#d97706}.directory-policy p,.directory-warning p{margin:5px 0}.directory-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.directory-definition-list{display:grid;gap:12px;margin:0}.directory-definition-list div{padding-bottom:11px;border-bottom:1px solid var(--line)}.directory-definition-list dt{color:var(--muted);font-size:.78rem}.directory-definition-list dd{margin:4px 0 0;overflow-wrap:anywhere}
.directory-table-wrap{overflow:auto}.directory-table-wrap table{width:100%;border-collapse:collapse}.directory-table-wrap th,.directory-table-wrap td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.directory-table-wrap th{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.05em}.directory-recipe-list{display:grid;gap:16px}.directory-recipe-list>article{padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--surface-soft)}.directory-recipe-list>article>header{display:flex;justify-content:space-between;gap:15px}.directory-recipe-list h3{margin:3px 0}.directory-recipe-list ol{display:grid;gap:10px;padding-left:22px}.directory-recipe-list li{padding:11px;border-radius:10px;background:var(--surface)}.directory-recipe-list li p{margin:5px 0;color:var(--muted)}.directory-recipe-list li small,.directory-recipe-list li em{display:block;margin-top:5px}.directory-recipe-list li em{color:#b45309;font-style:normal}
.experience-list{display:grid;gap:12px}.experience-list>article{padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.experience-list header{display:flex;justify-content:space-between;gap:12px}.experience-list p{margin:8px 0}.experience-list small{color:var(--muted)}
@media(max-width:1100px){.directory-metrics{grid-template-columns:repeat(3,1fr)}.directory-filters{grid-template-columns:repeat(3,1fr)}.directory-filter-search{grid-column:span 2}.directory-filter-actions{grid-column:span 3}.directory-grid{grid-template-columns:repeat(2,1fr)}.recipe-grid{grid-template-columns:repeat(2,1fr)}.directory-detail-grid{grid-template-columns:repeat(2,1fr)}.directory-panel--wide{grid-column:1/-1;grid-row:auto}}
@media(max-width:700px){.directory-hero,.directory-detail-hero{flex-direction:column;padding:20px}.directory-metrics,.directory-filters,.directory-grid,.recipe-grid,.directory-detail-grid,.directory-two-columns{grid-template-columns:1fr}.directory-filter-search,.directory-filter-actions{grid-column:auto}.directory-filter-actions{flex-direction:column}.directory-section{padding:17px}.directory-section .section-heading{flex-direction:column}.directory-section .section-heading>p{text-align:left}.directory-source-card footer{align-items:flex-start}.directory-source-card footer>div{max-width:100%}.directory-detail-hero .page-heading__actions{width:100%}}

/* Sprint 13: matriz de consultas y biblioteca de descartes. */
.matrix-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:24px;align-items:stretch;margin-bottom:22px}.matrix-hero h1{margin:.35rem 0}.matrix-safety-card,.matrix-section,.matrix-plan-switcher,.matrix-metrics article{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.matrix-safety-card{padding:22px}.matrix-safety-card p{margin:.65rem 0 0;color:var(--text-muted)}.matrix-plan-switcher{display:flex;justify-content:space-between;gap:20px;align-items:end;padding:18px 20px;margin-bottom:20px}.matrix-plan-switcher form{min-width:min(440px,100%)}.matrix-plan-switcher>div{display:grid;text-align:right;gap:4px}.matrix-plan-switcher>div span{color:var(--text-muted)}.matrix-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:20px}.matrix-metrics article{display:grid;gap:4px;padding:18px}.matrix-metrics strong{font-size:1.75rem}.matrix-metrics span{color:var(--text-muted);font-size:.9rem}.matrix-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:20px;margin-bottom:20px}.matrix-section{padding:22px;margin-bottom:20px}.matrix-token-guide{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.matrix-token-guide code,.matrix-table code{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:5px 8px}.matrix-generator-form{display:grid;gap:16px}.variant-chips,.matrix-snapshot{display:flex;flex-wrap:wrap;gap:8px}.variant-chips span,.matrix-snapshot span{display:grid;gap:2px;border:1px solid var(--border);background:var(--surface-2);border-radius:999px;padding:7px 11px}.variant-chips small,.matrix-snapshot small{color:var(--text-muted);font-size:.68rem}.matrix-status-filter{min-width:190px}.matrix-table-wrap{overflow:auto}.matrix-table{min-width:1100px}.matrix-table td{vertical-align:top}.matrix-table td>small,.matrix-table td strong+small{display:block;margin-top:6px;color:var(--text-muted)}.matrix-actions{width:130px}.matrix-state{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:700;background:var(--surface-2);border:1px solid var(--border)}.matrix-state--lista,.matrix-state--ejecutada{background:var(--success-soft);color:var(--success)}.matrix-state--duplicada,.matrix-state--omitida{background:var(--warning-soft);color:var(--warning)}.matrix-state--bloqueada{background:var(--danger-soft);color:var(--danger)}.matrix-state-editor{margin-top:8px}.matrix-state-editor form{display:grid;gap:7px;min-width:230px}.matrix-state-catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.matrix-state-catalog article,.discard-library article{border:1px solid var(--border);border-radius:var(--radius-md);padding:15px;background:var(--surface-2)}.matrix-state-catalog article{display:grid;gap:7px}.matrix-state-catalog p{margin:0;color:var(--text-muted)}.discard-library{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.discard-library article{display:grid;gap:10px}.discard-library header{display:flex;justify-content:space-between;gap:12px}.discard-library header>div{display:grid;gap:5px}.matrix-context-banner,.discard-evidence{border:1px solid var(--accent);background:var(--accent-soft);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:16px}.matrix-context-banner p,.discard-evidence p{margin:.35rem 0;color:var(--text-muted)}.result-review-form{display:grid;gap:12px;margin-top:12px}.discard-evidence{border-color:var(--warning);background:var(--warning-soft);margin-top:12px}.discard-evidence span{display:block;font-weight:700;margin-top:4px}
@media (max-width:1050px){.matrix-hero,.matrix-layout{grid-template-columns:1fr}.matrix-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.matrix-state-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.matrix-plan-switcher{align-items:stretch}.matrix-plan-switcher>div{text-align:left}}
@media (max-width:700px){.matrix-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.matrix-plan-switcher{display:grid}.matrix-plan-switcher form{min-width:0}.matrix-state-catalog,.discard-library{grid-template-columns:1fr}.matrix-section{padding:16px}.matrix-hero{gap:14px}}

/* Sprint 14: centro de importaciones y revisión supervisada. */
.import-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:1rem;align-items:start;margin:1rem 0}
.import-upload-card,.assistant-card{height:100%}.assistant-card{display:flex;flex-direction:column;gap:.8rem}.assistant-safe-list{display:grid;gap:.55rem;margin:0;padding-left:1.2rem}.assistant-card small{color:var(--muted)}
.import-dropzone{min-height:130px}.import-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.import-card{border:1px solid var(--border);background:var(--surface-subtle);border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.65rem}.import-card header,.import-review-item header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.import-card header>div,.import-review-item header>div{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.import-card h3{margin:0;font-size:1rem}.import-card p{margin:0;color:var(--muted)}
.import-mini-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}.import-mini-metrics span{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.55rem;display:flex;flex-direction:column;font-size:.75rem}.import-mini-metrics b{font-size:1.1rem;color:var(--text)}
.import-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}.import-warning{border-color:#d6a841;background:color-mix(in srgb,#f6c453 9%,var(--surface))}.import-review-toolbar{display:grid;gap:.8rem}.bulk-review-form{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(220px,2fr) auto;gap:.65rem;align-items:end}
.import-review-list{display:grid;gap:.85rem}.import-review-item{border:1px solid var(--border);border-left-width:4px;border-radius:14px;padding:1rem;background:var(--surface-subtle)}.import-review-item--aceptado{border-left-color:#2f9e69}.import-review-item--rechazado{border-left-color:#c75151}.import-review-item--duplicado{border-left-color:#d69d2f}.import-review-item--error{border-left-color:#b05cd6}.import-review-item--aplicado{border-left-color:#3478d4}.import-review-item h3{margin:.65rem 0 .35rem}.import-review-item p{margin:.25rem 0}.import-review-item blockquote{margin:.65rem 0;padding:.75rem .9rem;border-left:3px solid var(--accent);background:var(--surface);border-radius:8px;white-space:pre-wrap}.import-item-meta{display:flex;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.85rem}.import-review-item details{margin-top:.7rem}.import-review-item pre{max-height:260px;overflow:auto;white-space:pre-wrap;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.75rem}.import-item-review-form{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(220px,2fr) auto auto;gap:.55rem;margin-top:.8rem;align-items:end}.import-final-actions{display:flex;justify-content:space-between;gap:1rem;align-items:center}.import-final-actions>div:last-child{display:flex;gap:.65rem;flex-wrap:wrap}.matrix-state--revision,.matrix-state--propuesto{background:#fff5d9;color:#795300}.matrix-state--aplicada,.matrix-state--aplicado,.matrix-state--aceptado{background:#dcf7e8;color:#17603d}.matrix-state--rechazado,.matrix-state--fallida{background:#fde5e5;color:#852c2c}.matrix-state--duplicado{background:#f7ecd6;color:#6d4a11}.matrix-state--error{background:#f2e2fa;color:#66307d}
@media (max-width:1000px){.import-layout{grid-template-columns:1fr}.import-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.import-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.bulk-review-form,.import-item-review-form{grid-template-columns:1fr 1fr}.import-final-actions{align-items:flex-start;flex-direction:column}}
@media (max-width:650px){.import-card-grid,.import-metrics{grid-template-columns:1fr}.bulk-review-form,.import-item-review-form{grid-template-columns:1fr}.import-review-item header{flex-direction:column}.import-final-actions>div:last-child{width:100%;flex-direction:column}.import-final-actions form,.import-final-actions button{width:100%}}


/* Sprint 15: conectores autorizados y piloto controlado. */
.connector-hero{margin-bottom:1rem}
.compliance-banner{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:1rem 1.15rem;margin:1rem 0;border:1px solid var(--border-color);border-radius:16px;background:var(--surface-elevated)}
.compliance-banner p{flex:1 1 480px;margin:0;color:var(--text-muted)}
.connector-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,390px);gap:1rem;align-items:start}
.connector-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.85rem}
.connector-card,.connector-item,.pilot-control{border:1px solid var(--border-color);border-radius:14px;background:var(--surface-subtle);padding:1rem}
.connector-card__top,.connector-item__head{display:flex;justify-content:space-between;gap:.75rem;align-items:center}
.connector-card h3,.connector-item h3,.pilot-control h3{margin:.75rem 0 .4rem}
.connector-card p,.connector-item p,.pilot-control p{color:var(--text-muted)}
.compact-definition{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:.8rem 0}
.compact-definition div{padding:.55rem;border-radius:10px;background:var(--surface)}
.compact-definition dt{font-size:.72rem;color:var(--text-muted)}
.compact-definition dd{margin:.15rem 0 0;font-weight:700}
.compact-fields{gap:.6rem}
.check-row{display:flex;gap:.6rem;align-items:flex-start}
.check-row input{width:auto;margin-top:.2rem}
.connector-item-list{display:grid;gap:.85rem}
.review-form{display:grid;grid-template-columns:minmax(150px,220px) 1fr auto;gap:.65rem;align-items:end;margin-top:1rem}
.json-preview{max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:var(--surface);border:1px solid var(--border-color);border-radius:10px;padding:.8rem;font-size:.78rem}
.pilot-control-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;margin:1rem 0}
.pilot-control{border-left-width:5px}
.pilot-control--ok{border-left-color:#1f9d62}
.pilot-control--pendiente{border-left-color:#d69b2d}
.pilot-control--bloqueado{border-left-color:#c94b4b}
.pilot-control>div{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.pilot-control>div strong{font-size:1.35rem}
@media(max-width:980px){.connector-layout{grid-template-columns:1fr}.connector-create-card{order:-1}}
@media(max-width:720px){.review-form{grid-template-columns:1fr}.compact-definition{grid-template-columns:1fr}.connector-card-grid{grid-template-columns:1fr}}


/* FIX-POST-S15-01: navegación del caso, formularios de conectores y restauración de archivados. */
.case-hero--workspace{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:24px;padding:26px 28px}
.case-hero__content{min-width:0}.case-hero__content h1{margin:.75rem 0 .45rem}.case-hero__content p{margin:0;max-width:780px}
.case-hero__controls{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.case-hero__controls form{margin:0}.case-hero__controls .button{white-space:nowrap}
.case-workspace-nav{display:grid;grid-template-columns:minmax(170px,.28fr) minmax(0,1fr);gap:18px;align-items:center;margin:0 0 18px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-sm)}
.case-workspace-nav__intro{display:grid;gap:3px;padding-right:16px;border-right:1px solid var(--line)}.case-workspace-nav__intro span{font-weight:700;color:var(--navy)}.case-workspace-nav__intro small{color:var(--muted);line-height:1.35}
.case-workspace-nav__links{display:flex;gap:8px;align-items:center;overflow-x:auto;padding:2px 1px 5px;scrollbar-width:thin}.case-workspace-nav__links a{display:inline-flex;align-items:center;min-height:38px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);color:var(--navy);font-size:.88rem;font-weight:600;text-decoration:none;white-space:nowrap;transition:border-color .15s ease,background .15s ease,transform .15s ease}.case-workspace-nav__links a:hover,.case-workspace-nav__links a:focus-visible{border-color:var(--blue);background:var(--accent-soft);transform:translateY(-1px)}
.case-archive-banner{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:-2px 0 18px;padding:16px 18px;border:1px solid color-mix(in srgb,var(--warning) 55%,var(--line));border-left:5px solid var(--warning);border-radius:14px;background:var(--warning-soft)}.case-archive-banner p{margin:.35rem 0 0;color:var(--muted)}.case-archive-banner form{margin:0;flex:0 0 auto}
.case-readonly-card{border-left:4px solid var(--warning)}.status-pill--archived{background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning) 45%,var(--line));color:var(--warning)}
.case-toolbar--refined{display:grid;grid-template-columns:minmax(260px,1fr) minmax(180px,240px) auto;align-items:end;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm)}.case-toolbar--refined label{margin:0}.case-toolbar--refined input,.case-toolbar--refined select{width:100%;min-height:44px}
.case-card{display:flex;flex-direction:column}.case-card--archived{border-style:dashed;background:color-mix(in srgb,var(--surface) 84%,var(--warning-soft))}.case-card__actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:16px}.case-card__actions form{margin:0}.button.compact{min-height:38px;padding:8px 12px;font-size:.86rem}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.connector-layout{grid-template-columns:minmax(0,1.35fr) minmax(430px,.72fr);gap:20px}
.connector-create-card{padding:0;overflow:hidden}.connector-create-card__header{padding:22px 22px 18px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,var(--surface),var(--surface-soft))}.connector-create-card__header h2{margin:.25rem 0 .35rem}.connector-create-card__header p{margin:0;color:var(--muted)}
.connector-create-form{display:grid;gap:0;padding:0 22px 22px}.connector-form-section{display:grid;gap:14px;margin:0;padding:20px 0;border:0;border-bottom:1px solid var(--line)}.connector-form-section:last-of-type{border-bottom:0}.connector-form-section legend{padding:0;margin:0;color:var(--navy);font-size:.92rem;font-weight:700}.connector-form-section label{display:grid;gap:7px;min-width:0}.connector-form-section label>small{color:var(--muted);font-weight:400;line-height:1.35}.connector-form-grid{display:grid;gap:14px}.connector-form-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.connector-form-grid .span-2{grid-column:1/-1}
.connector-form-section input,.connector-form-section select,.connector-form-section textarea{width:100%;min-width:0;box-sizing:border-box}.connector-code-field{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:.82rem;line-height:1.5}
.connector-limits-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.connector-limits-grid label{align-content:start;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.connector-limits-grid label>span{min-height:2.5em;display:flex;align-items:flex-start}.connector-limits-grid input{font-variant-numeric:tabular-nums}.connector-limits-grid small{margin-top:-2px}
.connector-live-check{display:grid!important;grid-template-columns:auto 1fr!important;align-items:start;gap:10px!important;margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);cursor:pointer}.connector-live-check input{width:auto!important;margin-top:4px}.connector-live-check span{display:grid;gap:3px}.connector-live-check small{display:block}.connector-submit{width:100%;margin-top:18px;justify-content:center}

@media(max-width:1120px){.case-hero--workspace{grid-template-columns:1fr}.case-hero__controls{justify-content:flex-start}.connector-layout{grid-template-columns:1fr}.connector-create-card{order:-1}.connector-create-form{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}.connector-form-section{align-content:start}.connector-form-section:nth-of-type(1),.connector-form-section:nth-of-type(2),.connector-form-section:last-of-type,.connector-submit{grid-column:1/-1}}
@media(max-width:820px){.case-workspace-nav{grid-template-columns:1fr}.case-workspace-nav__intro{padding-right:0;padding-bottom:12px;border-right:0;border-bottom:1px solid var(--line)}.case-toolbar--refined{grid-template-columns:1fr 1fr}.case-toolbar--refined .button{grid-column:1/-1}.connector-create-form{grid-template-columns:1fr}.connector-form-section,.connector-submit{grid-column:1!important}}
@media(max-width:640px){.case-hero--workspace{padding:20px}.case-hero__controls,.case-hero__controls .button,.case-hero__controls form,.case-hero__controls form button{width:100%}.case-workspace-nav{padding:14px}.case-archive-banner{align-items:flex-start;flex-direction:column}.case-archive-banner form,.case-archive-banner button{width:100%}.case-toolbar--refined{grid-template-columns:1fr}.case-toolbar--refined .button{grid-column:auto}.case-card__actions{align-items:stretch;flex-direction:column}.case-card__actions .button,.case-card__actions form,.case-card__actions form button{width:100%}.connector-create-card__header,.connector-create-form{padding-left:16px;padding-right:16px}.connector-form-grid--two,.connector-limits-grid{grid-template-columns:1fr}.connector-form-grid .span-2{grid-column:auto}}


/* Sprint 16: workspace unificado de investigación. */
.case-workspace-nav__links a.case-workspace-nav__primary{background:var(--blue);border-color:var(--blue);color:#fff}
.case-workspace-nav__links a.case-workspace-nav__primary:hover,.case-workspace-nav__links a.case-workspace-nav__primary:focus-visible{background:var(--blue-dark);color:#fff}
.workspace-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:start;padding:28px;margin-bottom:18px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,var(--surface),var(--accent-soft));box-shadow:var(--shadow)}
.workspace-hero h1{margin:.55rem 0 .35rem}.workspace-hero p{max-width:760px;margin:0;color:var(--muted)}.workspace-case-title{display:block;margin-top:12px;color:var(--navy)}
.workspace-eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.74rem;font-weight:800;letter-spacing:.08em;color:var(--blue)}
.workspace-hero__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.workspace-hero__actions .button{white-space:nowrap}
.workspace-next-action{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;margin-bottom:18px;padding:20px 22px;border:1px solid color-mix(in srgb,var(--blue) 28%,var(--line));border-radius:18px;background:var(--surface);box-shadow:var(--shadow-sm)}
.workspace-next-action__icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--blue);color:#fff;font-size:1.45rem;font-weight:800}.workspace-next-action span{font-size:.72rem;font-weight:800;letter-spacing:.08em;color:var(--blue)}.workspace-next-action h2{margin:.22rem 0 .3rem}.workspace-next-action p{margin:0;color:var(--muted)}.workspace-next-action strong{display:block;margin-top:.45rem}
.workspace-metrics{display:grid;grid-template-columns:repeat(8,minmax(115px,1fr));gap:10px;margin-bottom:18px}
.workspace-metric{display:grid;gap:4px;min-height:92px;padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--surface);text-decoration:none;color:var(--text);box-shadow:var(--shadow-sm);transition:transform .15s ease,border-color .15s ease}.workspace-metric:hover,.workspace-metric:focus-visible{transform:translateY(-2px);border-color:var(--blue)}.workspace-metric strong{font-size:1.55rem;color:var(--blue)}.workspace-metric span{font-size:.78rem;line-height:1.25;color:var(--muted)}
.workspace-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(330px,.8fr);gap:18px;align-items:start}.workspace-main,.workspace-sidebar{display:grid;gap:18px}
.workspace-panel{padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-sm);min-width:0}.workspace-panel__heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.workspace-panel__heading h2{margin:.18rem 0 .25rem}.workspace-panel__heading p{margin:0;color:var(--muted)}.workspace-panel__heading>a{white-space:nowrap}.workspace-kicker{font-size:.7rem;font-weight:800;letter-spacing:.08em;color:var(--blue)}
.workspace-list{display:grid;gap:10px}.workspace-list.compact{gap:8px}.workspace-list-item,.workspace-plan,.workspace-execution,.workspace-alert-item,.workspace-hypothesis{padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.workspace-list-item h3,.workspace-hypothesis h3{margin:.55rem 0 .35rem}.workspace-list-item p,.workspace-plan p,.workspace-execution p{margin:.35rem 0 0;color:var(--muted)}.workspace-list-item__top,.workspace-plan>div:first-child,.workspace-execution>div:first-child,.workspace-hypothesis>div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:center}
.workspace-empty{padding:18px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);background:var(--surface-soft)}.workspace-empty.compact{padding:12px}
.priority-chip{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:.7rem;font-weight:800;background:var(--surface);border:1px solid var(--line)}.priority-chip--critica{color:#b42318;border-color:#f2b8b5;background:#fff1f0}.priority-chip--alta{color:#9a6700;border-color:#f0d48a;background:#fff8df}.priority-chip--media{color:var(--blue);border-color:color-mix(in srgb,var(--blue) 35%,var(--line));background:var(--accent-soft)}.priority-chip--baja{color:var(--muted)}
.workspace-task-list{display:grid;gap:10px}.workspace-task{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:14px;padding:15px;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:14px;background:var(--surface-soft)}.workspace-task--bloqueada{border-left-color:var(--danger)}.workspace-task--esperando{border-left-color:var(--warning)}.workspace-task__body h3{margin:.45rem 0 .3rem}.workspace-task__body p{margin:.25rem 0;color:var(--muted)}.workspace-task__body small{display:block;margin-top:.3rem;color:var(--muted)}.workspace-task__meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.74rem;color:var(--muted)}.workspace-task__form{display:grid;grid-template-columns:1fr;gap:8px;align-content:start}.workspace-task__form input,.workspace-task__form select{width:100%;min-height:38px}.workspace-task__form .button{justify-content:center}
.workspace-create-task{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.workspace-create-task summary{cursor:pointer;color:var(--blue);font-weight:700}.workspace-create-task form{margin-top:14px}.workspace-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.workspace-form-grid label{display:grid;gap:6px}.workspace-form-grid .span-2{grid-column:1/-1}.workspace-form-grid input,.workspace-form-grid select,.workspace-form-grid textarea{width:100%;box-sizing:border-box}
.workspace-split{display:grid;grid-template-columns:1fr 1fr;gap:14px}.workspace-split>div>h3{margin:.1rem 0 .75rem}.workspace-progress{height:8px;margin:.7rem 0;border-radius:999px;background:var(--line);overflow:hidden}.workspace-progress span{display:block;height:100%;background:var(--blue);border-radius:inherit}.workspace-plan small,.workspace-execution small{display:block;color:var(--muted)}.workspace-execution strong{display:block;margin:.5rem 0}.workspace-alert-item{display:grid;gap:8px;border-left:4px solid var(--warning)}.workspace-hypothesis{border-left:4px solid var(--blue)}.workspace-hypothesis small{color:var(--muted)}.workspace-subheading{margin:18px 0 10px;padding-top:16px;border-top:1px solid var(--line)}
.workspace-document{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);text-decoration:none;color:var(--text)}.workspace-document:hover{border-color:var(--blue)}.workspace-document span{font-size:.76rem;color:var(--muted)}
.workspace-timeline{list-style:none;margin:0;padding:0;display:grid;gap:0}.workspace-timeline li{display:grid;grid-template-columns:18px 1fr;gap:9px;position:relative;padding-bottom:15px}.workspace-timeline li>span{width:10px;height:10px;margin-top:5px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px var(--accent-soft)}.workspace-timeline li:not(:last-child)::before{content:"";position:absolute;left:4px;top:15px;bottom:0;width:2px;background:var(--line)}.workspace-timeline strong,.workspace-timeline small{display:block}.workspace-timeline small{margin-top:3px;color:var(--muted)}
@media(max-width:1240px){.workspace-metrics{grid-template-columns:repeat(4,minmax(130px,1fr))}.workspace-grid{grid-template-columns:minmax(0,1fr) minmax(300px,.72fr)}}
@media(max-width:980px){.workspace-hero{grid-template-columns:1fr}.workspace-hero__actions{justify-content:flex-start}.workspace-grid{grid-template-columns:1fr}.workspace-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-sidebar .workspace-panel:last-child{grid-column:1/-1}.workspace-task{grid-template-columns:1fr}}
@media(max-width:720px){.workspace-next-action{grid-template-columns:auto 1fr}.workspace-next-action>a{grid-column:1/-1;width:100%;justify-content:center}.workspace-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-split,.workspace-sidebar,.workspace-form-grid{grid-template-columns:1fr}.workspace-sidebar .workspace-panel:last-child,.workspace-form-grid .span-2{grid-column:auto}.workspace-panel__heading{flex-direction:column}.workspace-panel__heading>a{white-space:normal}}
@media(max-width:520px){.workspace-hero,.workspace-panel{padding:16px}.workspace-hero__actions,.workspace-hero__actions .button{width:100%}.workspace-next-action{padding:16px}.workspace-next-action__icon{width:40px;height:40px}.workspace-metrics{grid-template-columns:1fr 1fr}.workspace-task__form{grid-template-columns:1fr}}

/* Sprint 17: motor explicable de hipótesis y confianza. */
.hypothesis-hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:22px;align-items:stretch;margin-bottom:18px;padding:28px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--surface) 84%,var(--blue) 16%));box-shadow:var(--shadow)}
.hypothesis-hero h1{margin:.45rem 0 .4rem;font-size:clamp(2rem,3vw,3rem)}.hypothesis-hero>div>p{max-width:780px;margin:0;color:var(--muted)}.hypothesis-principle{display:grid;align-content:center;gap:8px;padding:22px;border:1px solid color-mix(in srgb,var(--blue) 28%,var(--line));border-radius:16px;background:var(--surface)}.hypothesis-principle strong{font-size:1.08rem;color:var(--navy)}.hypothesis-principle p{margin:0;color:var(--muted)}.case-context-chip{display:inline-flex;margin-top:14px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:.82rem;color:var(--muted)}
.hypothesis-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;margin-bottom:18px}.hypothesis-summary article{min-width:0;padding:17px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm)}.hypothesis-summary span{display:block;font-size:1.55rem;font-weight:800;color:var(--blue)}.hypothesis-summary p{margin:.25rem 0 0;color:var(--muted);font-size:.8rem;line-height:1.25}
.hypothesis-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:22px 0 14px}.hypothesis-toolbar h2{margin:0 0 .25rem}.hypothesis-toolbar p{margin:0;color:var(--muted);max-width:820px}.hypothesis-create-panel{margin-bottom:18px}.hypothesis-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hypothesis-form-grid label{display:grid;gap:6px}.hypothesis-form-grid .span-2{grid-column:1/-1}.hypothesis-form-grid input,.hypothesis-form-grid select,.hypothesis-form-grid textarea{width:100%;box-sizing:border-box}
.hypothesis-comparison{display:grid;gap:20px}.hypothesis-engine-card{min-width:0;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.hypothesis-engine-card__header{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:24px;padding:24px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,var(--surface),var(--surface-soft))}.hypothesis-engine-card__identity{min-width:0}.hypothesis-engine-card__identity h2{margin:.65rem 0 .45rem;font-size:1.45rem;overflow-wrap:anywhere}.hypothesis-engine-card__identity>p{margin:0;color:var(--muted)}.hypothesis-engine-card__status{display:flex;gap:7px;flex-wrap:wrap}.confidence-pill{display:inline-flex;align-items:center;padding:5px 9px;border:1px solid var(--line);border-radius:999px;font-size:.72rem;font-weight:800}.confidence-sin_evaluar{color:var(--muted)}.confidence-muy_baja,.confidence-baja{color:var(--danger-text);background:var(--danger-bg);border-color:var(--danger-border)}.confidence-media{color:#8a5714;background:#fff8e6;border-color:#d8b56d}.confidence-alta,.confidence-muy_alta{color:#047857;background:#ecfdf5;border-color:#a7f3d0}:root[data-theme="dark"] .confidence-media{color:#fde68a;background:#3a2b13;border-color:#765b25}:root[data-theme="dark"] .confidence-alta,:root[data-theme="dark"] .confidence-muy_alta{color:#a7f3d0;background:#123529;border-color:#27604a}
.hypothesis-score{display:grid;align-content:center;justify-items:end;text-align:right}.hypothesis-score>strong{font-size:2.15rem;color:var(--blue)}.hypothesis-score>span,.hypothesis-score small{color:var(--muted)}.hypothesis-score__bar{width:100%;height:9px;margin:10px 0 7px;border-radius:999px;background:var(--line);overflow:hidden}.hypothesis-score__bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),#3fc3a4)}
.hypothesis-warning{margin-top:13px;padding:10px 12px;border:1px solid #d8b56d;border-radius:11px;background:#fff8e6;color:#7a4b09;font-size:.84rem}:root[data-theme="dark"] .hypothesis-warning{color:#fde68a;background:#3a2b13;border-color:#765b25}.hypothesis-engine-card__metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.hypothesis-engine-card__metrics>div{display:grid;gap:3px;padding:13px 16px;background:var(--surface)}.hypothesis-engine-card__metrics strong{color:var(--navy);font-size:1rem;overflow-wrap:anywhere}.hypothesis-engine-card__metrics span{font-size:.72rem;color:var(--muted)}.hypothesis-engine-card__metrics .favor strong{color:#047857}.hypothesis-engine-card__metrics .against strong{color:var(--danger)}
.hypothesis-engine-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.75fr);gap:18px;padding:20px}.hypothesis-engine-stack{display:grid;gap:16px;align-content:start}.hypothesis-engine-panel{min-width:0;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft)}.hypothesis-engine-panel__heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.hypothesis-engine-panel__heading h3{margin:.2rem 0 0}.hypothesis-engine-panel .card-help{color:var(--muted)}
.hypothesis-criteria-list,.hypothesis-test-list{display:grid;gap:10px}.hypothesis-criterion{min-width:0;padding:14px;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:13px;background:var(--surface)}.hypothesis-criterion.is-favor{border-left-color:#10b981}.hypothesis-criterion.is-against{border-left-color:var(--danger)}.hypothesis-criterion.is-context{border-left-color:var(--muted)}.hypothesis-criterion__top{display:flex;justify-content:space-between;align-items:center;gap:10px}.hypothesis-criterion__top>div{display:flex;flex-wrap:wrap;gap:6px}.hypothesis-criterion h4{margin:.7rem 0 .35rem}.hypothesis-criterion p{margin:.25rem 0;color:var(--muted)}.hypothesis-criterion small{display:block;margin-top:.45rem;color:var(--muted);overflow-wrap:anywhere}.criterion-explanation{margin-top:10px;padding:10px;border-radius:10px;background:var(--surface-soft);font-size:.88rem}.hypothesis-criterion details{margin-top:10px}.hypothesis-criterion summary{cursor:pointer;color:var(--blue);font-weight:700}.hypothesis-inline-form{display:grid;grid-template-columns:minmax(125px,.45fr) minmax(90px,.25fr) minmax(0,1fr) auto;gap:8px;align-items:end;margin-top:10px}.hypothesis-inline-form label{display:grid;gap:5px;font-size:.78rem}.hypothesis-inline-form input,.hypothesis-inline-form select{width:100%;min-width:0}
.hypothesis-criterion-form{margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.hypothesis-criterion-form .hypothesis-form-grid{margin-top:12px}.hypothesis-test-list article{padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.hypothesis-test-list article>div:first-child{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.hypothesis-test-list p{margin:.55rem 0;color:var(--muted)}.hypothesis-test-list small{display:block;color:var(--muted)}.hypothesis-test-form{display:grid;grid-template-columns:minmax(120px,.55fr) minmax(0,1fr) auto;gap:8px;margin-top:10px}.hypothesis-test-form input,.hypothesis-test-form select{width:100%;min-width:0}.hypothesis-review-form{display:grid;gap:10px}.hypothesis-review-form label{display:grid;gap:6px}.hypothesis-review-form select,.hypothesis-review-form textarea{width:100%;box-sizing:border-box}.hypothesis-review-form .check-label{grid-template-columns:auto 1fr;align-items:start}.hypothesis-review-form .check-label input{margin-top:.25rem}.hypothesis-recalculate-form{margin-top:10px}
.hypothesis-history{list-style:none;margin:0;padding:0;display:grid}.hypothesis-history li{position:relative;display:grid;grid-template-columns:14px minmax(0,1fr);gap:9px;padding-bottom:14px}.hypothesis-history li>span{width:9px;height:9px;margin-top:5px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px var(--accent-soft)}.hypothesis-history li:not(:last-child)::before{content:"";position:absolute;left:4px;top:15px;bottom:0;width:2px;background:var(--line)}.hypothesis-history strong,.hypothesis-history small{display:block}.hypothesis-history small{margin-top:3px;color:var(--muted)}.hypothesis-history p{margin:.35rem 0 0;color:var(--muted)}.hypothesis-engine-callout{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;padding:16px 18px;border:1px solid color-mix(in srgb,var(--blue) 30%,var(--line));border-radius:14px;background:var(--accent-soft)}.hypothesis-engine-callout p{margin:.25rem 0 0;color:var(--muted)}
@media(max-width:1120px){.hypothesis-engine-grid{grid-template-columns:1fr}.hypothesis-engine-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.hypothesis-engine-stack .hypothesis-engine-panel:last-child{grid-column:1/-1}.hypothesis-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.hypothesis-hero,.hypothesis-engine-card__header{grid-template-columns:1fr}.hypothesis-score{justify-items:start;text-align:left}.hypothesis-engine-card__metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.hypothesis-inline-form{grid-template-columns:1fr 1fr}.hypothesis-inline-form label:nth-child(3),.hypothesis-inline-form .button{grid-column:1/-1}.hypothesis-test-form{grid-template-columns:1fr}.hypothesis-test-form .button{width:100%;justify-content:center}}
@media(max-width:680px){.hypothesis-hero,.hypothesis-engine-grid{padding:16px}.hypothesis-summary{grid-template-columns:1fr 1fr}.hypothesis-toolbar,.hypothesis-engine-panel__heading,.hypothesis-engine-callout{align-items:stretch;flex-direction:column}.hypothesis-toolbar .button,.hypothesis-engine-callout .button{width:100%;justify-content:center}.hypothesis-engine-card__metrics{grid-template-columns:1fr 1fr}.hypothesis-engine-stack,.hypothesis-form-grid,.hypothesis-inline-form{grid-template-columns:1fr}.hypothesis-engine-stack .hypothesis-engine-panel:last-child,.hypothesis-form-grid .span-2,.hypothesis-inline-form label:nth-child(3),.hypothesis-inline-form .button{grid-column:auto}.hypothesis-engine-card__header{padding:18px}.hypothesis-engine-panel{padding:14px}}

/* Sprint 18: cronología inteligente e integración temporal. */
.timeline-smart-hero{align-items:center}.timeline-smart-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.timeline-smart-metrics article{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);display:grid;gap:4px}.timeline-smart-metrics article.has-alerts{border-color:#d97706;background:color-mix(in srgb,var(--surface) 88%,#f59e0b 12%)}.timeline-smart-metrics span{font-size:1.9rem;font-weight:700;color:var(--blue)}.timeline-smart-metrics p{margin:0;font-weight:600}.timeline-smart-metrics small{color:var(--muted)}
.timeline-filter-card{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);margin-bottom:18px}.timeline-filter-grid{display:grid;grid-template-columns:2fr repeat(4,minmax(130px,1fr));gap:12px;align-items:end}.timeline-filter-grid label{display:grid;gap:6px}.timeline-filter-search{grid-column:span 2}.timeline-filter-actions{display:flex;gap:8px;align-items:end}.timeline-filter-actions .button{min-height:42px}
.timeline-smart-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.65fr);gap:20px;align-items:start;margin-bottom:22px}.timeline-smart-main,.timeline-smart-side{display:grid;gap:18px}.timeline-smart-card,.temporal-alert-panel,.timeline-event-form{margin:0}.timeline-decade-list{display:grid;gap:18px}.timeline-decade-group{border:1px solid var(--line);border-radius:15px;background:var(--surface-soft);overflow:hidden}.timeline-decade-group>header{display:flex;justify-content:space-between;align-items:center;padding:11px 15px;border-bottom:1px solid var(--line);background:var(--surface)}.timeline-decade-group>header span{font-weight:700;color:var(--navy)}.timeline-decade-group>header small{color:var(--muted)}.genealogy-timeline--smart{margin:0;padding:18px}.timeline-event-facts{display:flex;flex-wrap:wrap;gap:10px 16px;color:var(--muted);font-size:.88rem}.timeline-event-facts span{display:inline-flex;gap:4px}.timeline-event-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.status-pill--confirmado{background:var(--success-soft);color:var(--success)}.status-pill--refutado{background:var(--danger-soft);color:var(--danger)}
.temporal-alert-list{display:grid;gap:12px}.temporal-alert{padding:15px;border:1px solid var(--line);border-left-width:4px;border-radius:13px;background:var(--surface-soft)}.temporal-alert--critica{border-left-color:#dc2626}.temporal-alert--aviso{border-left-color:#d97706}.temporal-alert--informativa{border-left-color:var(--blue)}.temporal-alert--resuelta,.temporal-alert--descartada{opacity:.72}.temporal-alert header{display:flex;justify-content:space-between;gap:8px}.temporal-alert h3{margin:10px 0 7px;font-size:1rem}.temporal-alert p{margin:6px 0}.temporal-alert small{display:block;color:var(--muted);line-height:1.5}.temporal-alert details{margin-top:12px}.temporal-alert summary{cursor:pointer;color:var(--blue);font-weight:600}.compact-form{margin-top:10px}.timeline-event-form{position:sticky;top:92px}.research-history-list article{display:grid;grid-template-columns:auto 1fr;gap:12px}
@media(max-width:1180px){.timeline-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.timeline-filter-search{grid-column:span 2}.timeline-smart-layout{grid-template-columns:1fr}.timeline-event-form{position:static}.timeline-smart-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.timeline-smart-metrics,.timeline-filter-grid{grid-template-columns:1fr}.timeline-filter-search{grid-column:auto}.timeline-filter-actions{flex-direction:column;align-items:stretch}.timeline-smart-hero{align-items:flex-start}.timeline-smart-hero .module-hero-actions{width:100%}.timeline-smart-hero .module-hero-actions form,.timeline-smart-hero .module-hero-actions .button{width:100%}.timeline-filter-card,.timeline-smart-card,.temporal-alert-panel,.timeline-event-form{padding:16px}.timeline-decade-group>header{align-items:flex-start}.timeline-event-facts{display:grid;gap:5px}}


/* Sprint 19: mapa geográfico y rutas migratorias */
.geography-heading{align-items:flex-end}
.geography-human-review{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:0 0 20px;padding:18px 20px;border:1px solid #f3c969;border-radius:16px;background:#fff8df;box-shadow:var(--shadow)}
.geography-human-review p{margin:4px 0 0;color:#6f5720}
:root[data-theme="dark"] .geography-human-review{background:#2d2718;border-color:#6d5720}
:root[data-theme="dark"] .geography-human-review p{color:#e6d49b}
.geography-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.geography-filter-card{margin-bottom:18px}
.geography-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;align-items:end}
.geography-filter-grid label{display:grid;gap:7px;font-weight:500}
.geography-filter-grid input,.geography-filter-grid select,.geography-review-form input,.geography-review-form select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--text);font:inherit}
.geography-filter-submit{display:flex;align-items:end}
.geography-map-card{overflow:hidden}
.geography-map-shell{display:grid;gap:12px}
.geography-map-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.geography-map-toolbar .button{padding:8px 12px;min-width:42px}
.geography-map-toolbar label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.9rem}
.geography-map-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,320px);gap:16px}
.geography-map-viewport{position:relative;overflow:auto;min-height:480px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#dceef7,#c8e3ef);outline:none}
:root[data-theme="dark"] .geography-map-viewport{background:linear-gradient(180deg,#14273d,#102033)}
.geography-map-svg{display:block;width:100%;min-width:760px;height:auto;min-height:480px;transform-origin:center center;transition:transform .18s ease}
.geography-map-ocean{fill:#d9edf6}
:root[data-theme="dark"] .geography-map-ocean{fill:#173047}
.geography-map-grid-line{fill:none;stroke:rgba(35,83,115,.17);stroke-width:1}
:root[data-theme="dark"] .geography-map-grid-line{stroke:rgba(180,215,235,.14)}
.geography-map-land path{fill:#e9e2cc;stroke:#a99d7f;stroke-width:1.5}
:root[data-theme="dark"] .geography-map-land path{fill:#314638;stroke:#607d68}
.geography-route-path{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;opacity:.8;cursor:pointer;vector-effect:non-scaling-stroke}
.geography-route-path:hover,.geography-route-path:focus,.geography-route-path.is-map-selected{stroke-width:7;opacity:1;outline:none}
.geography-route-path.route-1{stroke:#245fc5}.geography-route-path.route-2{stroke:#a94b20}.geography-route-path.route-3{stroke:#25866a}.geography-route-path.route-4{stroke:#8b4fb4}.geography-route-path.route-5{stroke:#b58b1d}.geography-route-path.route-6{stroke:#b33c62}
.geography-route-path--refutada{stroke-dasharray:10 8;opacity:.48}
.geography-route-path--propuesta{stroke-dasharray:6 6}
.geography-marker{cursor:pointer;outline:none}
.geography-marker-halo{fill:transparent;stroke:transparent;stroke-width:2}
.geography-marker-dot{stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.geography-marker-number{font-size:13px;font-weight:700;fill:var(--navy);paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round}
.geography-marker--confirmada .geography-marker-dot{fill:#188a62}
.geography-marker--revisada .geography-marker-dot{fill:#2f67c7}
.geography-marker--propuesta .geography-marker-dot{fill:#d38a12}
.geography-marker--refutada .geography-marker-dot{fill:#b62f45}
.geography-marker:hover .geography-marker-halo,.geography-marker:focus .geography-marker-halo,.geography-marker.is-map-selected .geography-marker-halo{fill:rgba(47,103,199,.13);stroke:var(--blue)}
.geography-map-detail{min-height:480px;border:1px solid var(--line);border-radius:16px;padding:22px;background:var(--surface-soft)}
.geography-map-detail h3{margin:.25rem 0 .8rem}
.geography-map-detail-list{display:grid;gap:10px;margin:18px 0}
.geography-map-detail-list div{display:grid;grid-template-columns:90px 1fr;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.geography-map-detail-list dt{color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
.geography-map-detail-list dd{margin:0}
.geography-map-legend{display:flex;gap:16px;flex-wrap:wrap;padding-top:14px;color:var(--muted);font-size:.88rem}
.geography-map-legend span{display:inline-flex;align-items:center;gap:7px}
.geo-dot{display:inline-block;width:11px;height:11px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}
.geo-dot--confirmada{background:#188a62}.geo-dot--revisada{background:#2f67c7}.geo-dot--propuesta{background:#d38a12}.geo-dot--refutada{background:#b62f45}
.geo-route-line{display:inline-block;width:28px;height:3px;border-radius:999px;background:#245fc5}
.geography-empty{box-shadow:none;margin:0;border-style:dashed}
.geography-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.geography-location-form{grid-template-columns:repeat(2,minmax(0,1fr))}
.geography-location-form textarea,.geography-editor-grid textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--text);font:inherit;resize:vertical}
.geography-editor-grid select[multiple]{min-height:190px}
.geography-location-list,.geography-route-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.geography-location-card,.geography-route-card{border:1px solid var(--line);border-radius:16px;padding:20px;background:var(--surface-soft)}
.geography-location-card--confirmada{border-left:5px solid #188a62}.geography-location-card--revisada{border-left:5px solid #2f67c7}.geography-location-card--propuesta{border-left:5px solid #d38a12}.geography-location-card--refutada{border-left:5px solid #b62f45}
.geography-location-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}
.geography-location-card__header h3{margin:.15rem 0}
.geography-card-badges{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.geography-data-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.geography-data-list div{padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.geography-data-list dt{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.geography-data-list dd{margin:4px 0 0}
.geography-review-form{display:grid;grid-template-columns:minmax(140px,.6fr) minmax(220px,1.6fr) auto;gap:10px;align-items:center;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.geography-route-points{display:grid;gap:8px;padding-left:22px}
.geography-route-points li{padding:9px 10px;border-radius:10px;background:var(--surface);border:1px solid var(--line)}
.geography-route-points li span{margin-left:8px;color:var(--muted);font-size:.85rem}
.geography-route-points li small{display:block;color:var(--muted)}
@media(max-width:1100px){
    .geography-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
    .geography-map-layout{grid-template-columns:1fr}
    .geography-map-detail{min-height:0}
    .geography-editor-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
    .geography-heading{align-items:flex-start}
    .geography-human-review{align-items:flex-start;flex-direction:column}
    .geography-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
    .geography-filter-grid,.geography-location-form{grid-template-columns:1fr}
    .geography-location-form .span-2{grid-column:auto}
    .geography-location-list,.geography-route-list{grid-template-columns:1fr}
    .geography-location-card__header{flex-direction:column}
    .geography-card-badges{justify-content:flex-start}
    .geography-data-list{grid-template-columns:1fr}
    .geography-review-form{grid-template-columns:1fr}
    .geography-map-toolbar{justify-content:flex-start}
    .geography-map-viewport{min-height:400px}
    .geography-map-svg{min-width:680px;min-height:400px}
}

/* ========================================================================== 
 * Sprint 23A · Identidad y sistema visual GeneaCase
 * Emoción y facilidad + serenidad visual + trazabilidad y rigor.
 * ========================================================================== */
:root,
:root[data-theme="light"] {
    --brand-navy: #173b59;
    --brand-blue: #2d6f9d;
    --brand-blue-strong: #245b78;
    --brand-teal: #3f8a82;
    --brand-gold: #c99a43;
    --brand-evidence: #2f7d5c;
    --brand-warning: #a66f24;
    --brand-contradiction: #aa4e65;
    --brand-paper: #fffefa;
    --brand-canvas: #f5f3ed;
    --brand-canvas-soft: #efede6;
    --blue: var(--brand-blue);
    --blue-hover: var(--brand-blue-strong);
    --navy: var(--brand-navy);
    --text: #2b3b49;
    --muted: #687885;
    --bg: var(--brand-canvas);
    --surface: var(--brand-paper);
    --surface-soft: #f8f6f0;
    --line: #dcd8ce;
    --focus: rgba(45, 111, 157, 0.28);
    --shadow: 0 16px 44px rgba(48, 61, 70, 0.08);
    --shadow-soft: 0 8px 24px rgba(48, 61, 70, 0.06);
    --radius-sm: 10px;
    --radius-md: 16px;
    --radius-lg: 22px;
}

:root[data-theme="dark"] {
    --brand-navy: #e8f2f8;
    --brand-blue: #7db8da;
    --brand-blue-strong: #a4d2e8;
    --brand-teal: #75b8b0;
    --brand-gold: #e0bc73;
    --brand-evidence: #72c29c;
    --brand-warning: #ddb36d;
    --brand-contradiction: #e29aae;
    --brand-paper: #111e28;
    --brand-canvas: #0b151d;
    --brand-canvas-soft: #13232e;
    --blue: var(--brand-blue);
    --blue-hover: var(--brand-blue-strong);
    --navy: var(--brand-navy);
    --text: #e3ebef;
    --muted: #a6b6bf;
    --bg: var(--brand-canvas);
    --surface: var(--brand-paper);
    --surface-soft: #172832;
    --line: #2c414d;
    --focus: rgba(125, 184, 218, 0.34);
    --shadow: 0 18px 48px rgba(0, 0, 0, 0.28);
    --shadow-soft: 0 10px 26px rgba(0, 0, 0, 0.2);
}

body {
    background-image: radial-gradient(circle at 15% 0%, color-mix(in srgb, var(--brand-blue) 5%, transparent), transparent 34rem);
}

.skip-link {
    position: fixed;
    z-index: 1000;
    top: 10px;
    left: 10px;
    transform: translateY(-160%);
    padding: 10px 14px;
    border-radius: var(--radius-sm);
    background: var(--navy);
    color: var(--surface);
    font-weight: 700;
    text-decoration: none;
}
.skip-link:focus { transform: translateY(0); color: var(--surface); }

.brand {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    min-width: max-content;
    color: var(--navy);
    text-decoration: none;
    font-family: inherit;
    font-size: inherit;
    font-weight: 600;
}
.brand:hover { color: var(--navy); }
.brand__lockup { display: grid; gap: 1px; line-height: 1.05; }
.brand__wordmark {
    font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
    font-size: 1.65rem;
    font-weight: 600;
    letter-spacing: -0.035em;
    color: var(--navy);
}
.brand__tagline {
    color: var(--muted);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}
.brand--app .brand__wordmark,
.brand--portal .brand__wordmark { font-size: 1.42rem; }

.geneacase-mark {
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    overflow: visible;
    filter: drop-shadow(0 6px 12px rgba(36, 91, 120, 0.12));
}
.geneacase-mark__surface {
    fill: color-mix(in srgb, var(--brand-blue) 10%, var(--surface));
    stroke: color-mix(in srgb, var(--brand-blue) 52%, var(--line));
    stroke-width: 2;
}
.geneacase-mark__page {
    fill: var(--surface);
    stroke: var(--brand-blue-strong);
    stroke-width: 2.4;
    stroke-linejoin: round;
}
.geneacase-mark__fold {
    fill: none;
    stroke: var(--brand-gold);
    stroke-width: 2.4;
    stroke-linejoin: round;
}
.geneacase-mark__network path {
    fill: none;
    stroke: var(--brand-teal);
    stroke-width: 2.3;
    stroke-linecap: round;
}
.geneacase-mark__network circle {
    fill: var(--brand-teal);
    stroke: var(--surface);
    stroke-width: 1.4;
}
.geneacase-mark__evidence {
    fill: none;
    stroke: var(--brand-evidence);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.geneacase-mark__pulse {
    fill: none;
    stroke: var(--brand-evidence);
    stroke-width: 1.5;
    opacity: 0;
    transform-origin: 44px 39px;
}
.geneacase-mark--animated .geneacase-mark__network,
.geneacase-mark--animated .geneacase-mark__evidence,
.geneacase-mark--animated .geneacase-mark__pulse {
    transform-box: fill-box;
    transform-origin: center;
}
.geneacase-mark--animated .geneacase-mark__network { animation: gc-network-breathe 8s ease-in-out infinite; }
.geneacase-mark--animated .geneacase-mark__evidence { animation: gc-evidence-draw 8s ease-in-out infinite; }
.geneacase-mark--animated .geneacase-mark__pulse { animation: gc-evidence-pulse 8s ease-out infinite; }
.geneacase-mark--animated.is-paused * { animation-play-state: paused !important; }

@keyframes gc-network-breathe {
    0%, 24%, 100% { opacity: 1; transform: translateX(0); }
    38%, 55% { opacity: .58; transform: translateX(1px); }
    70% { opacity: .9; }
}
@keyframes gc-evidence-draw {
    0%, 18% { stroke-dasharray: 24; stroke-dashoffset: 24; opacity: .25; }
    36%, 72% { stroke-dashoffset: 0; opacity: 1; }
    88%, 100% { stroke-dashoffset: 0; opacity: .72; }
}
@keyframes gc-evidence-pulse {
    0%, 35% { opacity: 0; transform: scale(.75); }
    47% { opacity: .35; }
    68%, 100% { opacity: 0; transform: scale(1.2); }
}

.public-topbar,
.app-topbar,
.portal-topbar {
    backdrop-filter: blur(14px);
    background: color-mix(in srgb, var(--surface) 94%, transparent);
}
.topbar-login { font-weight: 650; text-decoration-thickness: 1px; text-underline-offset: 4px; }

.hero-panel,
.feature-grid article,
.auth-card,
.dashboard-header {
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}
.button { border-radius: var(--radius-sm); box-shadow: var(--shadow-soft); }
.theme-toggle { background: color-mix(in srgb, var(--surface-soft) 86%, var(--brand-blue) 4%); }

.auth-brand {
    position: fixed;
    top: 18px;
    left: 22px;
    z-index: 11;
}
.auth-card { border-top: 4px solid color-mix(in srgb, var(--brand-teal) 72%, var(--brand-blue)); }

.public-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 36px;
    flex-wrap: wrap;
}
.public-footer > p { margin: 0; }
.public-footer__brand { display: inline-flex; align-items: center; gap: 10px; text-align: left; }
.public-footer__brand > span { display: grid; line-height: 1.2; }
.public-footer__brand strong { color: var(--navy); font-family: Georgia, serif; font-size: 1.1rem; }
.public-footer__brand small { color: var(--muted); }
.geneacase-mark--footer { width: 34px; height: 34px; }

/* Tokens semánticos disponibles para los siguientes módulos visuales. */
.gc-state--evidence { color: var(--brand-evidence); }
.gc-state--pending { color: var(--brand-warning); }
.gc-state--contradiction { color: var(--brand-contradiction); }
.gc-surface--quiet { background: var(--surface-soft); border: 1px solid var(--line); }

@media (max-width: 800px) {
    .brand__tagline { display: none; }
    .geneacase-mark { width: 38px; height: 38px; }
    .auth-brand { top: 16px; left: 16px; }
    .auth-brand .brand__wordmark { display: none; }
    .public-footer { align-items: flex-start; flex-direction: column; gap: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    .geneacase-mark--animated .geneacase-mark__network,
    .geneacase-mark--animated .geneacase-mark__evidence,
    .geneacase-mark--animated .geneacase-mark__pulse { animation: none !important; }
    .geneacase-mark__pulse { display: none; }
}
/* Sprint 25B — checkout guiado, procesamiento y confirmación. */
.guided-checkout-shell,.guided-review-shell,.guided-confirmation-shell{max-width:1120px;margin:0 auto}
.guided-checkout-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:26px 0 20px}
.guided-checkout-header h1,.guided-review-card h1,.guided-confirmation-card h1{margin:.35rem 0 .65rem;max-width:760px}
.guided-checkout-header p,.guided-review-card>p,.guided-confirmation-card p{margin:0;color:var(--muted);max-width:760px}
.guided-trust-note{display:grid;gap:3px;min-width:210px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.guided-trust-note strong{font-size:.9rem}.guided-trust-note span{font-size:.78rem;color:var(--muted)}
.guided-checkout-form{display:grid;gap:18px}.guided-step{display:grid;grid-template-columns:46px minmax(0,1fr);gap:16px;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}
.guided-step-number{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--blue);color:#fff;font-weight:700}
.guided-step-content{min-width:0}.guided-step-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px}.guided-step-heading h2{margin:0 0 .25rem}.guided-step-heading p{margin:0;color:var(--muted)}
.guided-cycle-switch{display:flex;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--surface-soft)}
.guided-cycle-switch label{cursor:pointer}.guided-cycle-switch input{position:absolute;opacity:0;pointer-events:none}.guided-cycle-switch span{display:block;padding:8px 13px;border-radius:999px;font-size:.84rem;font-weight:600}
.guided-cycle-switch input:checked+span{background:var(--blue);color:#fff}
.guided-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.guided-plan-card{position:relative;display:grid;gap:10px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft);cursor:pointer;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.guided-plan-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.guided-plan-card.is-selected{border-color:var(--blue);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 18%,transparent)}
.guided-plan-card>input{position:absolute;opacity:0}.guided-plan-check{position:absolute;top:15px;right:15px;width:21px;height:21px;border:1px solid var(--line);border-radius:50%;background:var(--surface)}
.guided-plan-card.is-selected .guided-plan-check{border:6px solid var(--blue)}.guided-plan-name{padding-right:34px;font-weight:700}.guided-plan-price{display:flex;align-items:baseline;gap:5px}.guided-plan-price strong{font-size:1.45rem}.guided-plan-price small{color:var(--muted)}
.guided-plan-trial{justify-self:start;padding:5px 9px;border-radius:999px;background:var(--surface);color:var(--blue);font-size:.75rem;font-weight:700}
.guided-plan-card ul{margin:0;padding-left:18px;color:var(--muted);font-size:.88rem}.guided-plan-card li+li{margin-top:4px}
.guided-short-form{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:18px}.guided-short-form>label{display:grid;gap:7px}.guided-short-form>label span,.guided-short-form legend{font-weight:600}.guided-short-form small{color:var(--muted)}
.guided-short-form fieldset{margin:0;padding:0;border:0}.guided-payment-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px}.guided-payment-options label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:var(--surface-soft)}.guided-payment-options label.is-selected{border-color:var(--blue)}.guided-payment-options span{display:grid}.guided-payment-options small{font-size:.76rem}
.guided-order-summary{position:sticky;bottom:14px;z-index:8;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 95%,transparent);box-shadow:0 16px 40px rgba(16,32,44,.16);backdrop-filter:blur(12px)}
.guided-order-summary>div{display:grid}.guided-order-summary span,.guided-order-summary small{color:var(--muted)}.guided-order-summary p{grid-column:1/-1;margin:0;color:var(--muted);font-size:.78rem}.guided-primary-cta{min-height:46px;justify-content:center;padding-inline:22px}
.guided-history{max-width:1120px;margin:28px auto 0}
.guided-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 22px}.guided-progress span{padding:10px 12px;border-bottom:3px solid var(--line);color:var(--muted);font-size:.84rem;text-align:center}.guided-progress .is-active{border-color:var(--blue);color:var(--text);font-weight:700}.guided-progress .is-complete{border-color:var(--success);color:var(--text)}
.guided-review-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:18px}.guided-review-card,.guided-review-action,.guided-confirmation-card,.guided-confirmation-summary{padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}
.guided-summary-list,.guided-confirmation-summary dl{display:grid;gap:0;margin:22px 0 0}.guided-summary-list>div,.guided-confirmation-summary dl>div{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}.guided-summary-list dt,.guided-confirmation-summary dt{color:var(--muted)}.guided-summary-list dd,.guided-confirmation-summary dd{margin:0;text-align:right;font-weight:600}.guided-summary-list .is-total{font-size:1.05rem}
.guided-sandbox-warning{display:grid;gap:3px;margin-top:18px;padding:13px;border-radius:12px;background:var(--surface-soft)}.guided-sandbox-warning span{color:var(--muted);font-size:.82rem}
.guided-review-action{align-self:start;position:sticky;top:20px;text-align:center}.guided-secure-mark,.guided-confirmation-icon{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 12px;border-radius:50%;background:var(--success);color:#fff;font-weight:800;font-size:1.3rem}.guided-review-action h2{margin:.25rem 0}.guided-review-action p{color:var(--muted)}.guided-review-action form,.guided-review-action .button{width:100%}.guided-back-link{display:inline-block;margin-top:14px}
.guided-processing-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(10,18,24,.68)}.guided-processing-overlay[hidden]{display:none}.guided-processing-dialog{width:min(440px,100%);padding:34px;border-radius:18px;background:var(--surface);box-shadow:0 24px 80px rgba(0,0,0,.35);text-align:center}.guided-processing-dialog h2{margin:14px 0 8px}.guided-processing-dialog p{margin:0;color:var(--muted)}
.guided-spinner{display:inline-block;width:46px;height:46px;border:4px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:guided-spin .8s linear infinite}@keyframes guided-spin{to{transform:rotate(360deg)}}
.guided-confirmation-card{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:18px}.guided-confirmation-card .guided-confirmation-icon{margin:0}.guided-confirmation-summary{margin-top:18px}.guided-confirmation-summary h2{margin-top:0}.guided-confirmation-summary dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}.guided-confirmation-cta{display:grid;justify-items:end;gap:6px;margin-top:18px}.guided-confirmation-cta p{margin:0;color:var(--muted);font-size:.8rem}
.status-pill{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:var(--surface-soft);font-size:.75rem;font-weight:700}.status-pill--aprobado{background:color-mix(in srgb,var(--success) 18%,var(--surface));color:var(--success)}.status-pill--rechazado,.status-pill--cancelado{background:color-mix(in srgb,var(--danger) 14%,var(--surface));color:var(--danger)}.status-pill--pendiente,.status-pill--procesando{background:color-mix(in srgb,var(--warning) 17%,var(--surface));color:var(--warning)}
@media(max-width:820px){.guided-checkout-header,.guided-step-heading{align-items:stretch;flex-direction:column}.guided-trust-note{min-width:0}.guided-plan-grid,.guided-short-form,.guided-review-grid{grid-template-columns:1fr}.guided-review-action{position:static}.guided-confirmation-summary dl{grid-template-columns:1fr}.guided-order-summary{position:static}}
@media(max-width:560px){.guided-step{grid-template-columns:1fr;padding:16px}.guided-step-number{width:34px;height:34px}.guided-plan-grid,.guided-payment-options{grid-template-columns:1fr}.guided-order-summary{grid-template-columns:1fr}.guided-order-summary .button{width:100%}.guided-confirmation-card{grid-template-columns:1fr;text-align:center}.guided-confirmation-card .guided-confirmation-icon{margin:0 auto}.guided-confirmation-cta{justify-items:stretch}.guided-confirmation-cta .button{width:100%}}
@media(prefers-reduced-motion:reduce){.guided-plan-card{transition:none}.guided-spinner{animation-duration:1.6s}}


/* Sprint 25C — onboarding operativo y primer caso guiado. */
.onboarding-shell{max-width:980px;margin:0 auto}.onboarding-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px 0 18px}.onboarding-header h1{margin:.35rem 0 .55rem;max-width:720px}.onboarding-header p{margin:0;color:var(--muted)}
.onboarding-progress-summary{display:grid;min-width:126px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);text-align:center}.onboarding-progress-summary strong{font-size:1.35rem;color:var(--blue)}.onboarding-progress-summary span{font-size:.75rem;color:var(--muted)}
.onboarding-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:18px}.onboarding-steps span{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 8px;border-bottom:3px solid var(--line);color:var(--muted);font-size:.78rem;text-align:center}.onboarding-steps b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--surface-soft);font-size:.72rem}.onboarding-steps .is-active{border-color:var(--blue);color:var(--text);font-weight:700}.onboarding-steps .is-active b{background:var(--blue);color:#fff}.onboarding-steps .is-complete{border-color:var(--success);color:var(--text)}.onboarding-steps .is-complete b{background:var(--success);color:#fff}
.onboarding-card{padding:26px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}.onboarding-card--compact{max-width:760px;margin:0 auto}.onboarding-card h2{margin:.3rem 0 .5rem}.onboarding-card>p{margin-top:0;color:var(--muted)}.onboarding-kicker{font-size:.74rem;font-weight:800;letter-spacing:.08em;color:var(--blue)}
.onboarding-summary-list{display:grid;gap:0;margin:20px 0}.onboarding-summary-list>div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid var(--line)}.onboarding-summary-list dt{color:var(--muted)}.onboarding-summary-list dd{margin:0;text-align:right;font-weight:650}
.onboarding-case-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:22px}.onboarding-case-form label{display:grid;gap:7px}.onboarding-case-form label>span{font-weight:650}.onboarding-case-form .span-2{grid-column:1/-1}.onboarding-optional{padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.onboarding-optional summary{cursor:pointer;font-weight:650}.onboarding-optional-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:15px}.onboarding-optional-grid .span-2{grid-column:1/-1}
.onboarding-action{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:20px}.onboarding-action small{color:var(--muted)}.onboarding-primary{min-height:46px;justify-content:center}.onboarding-primary[disabled]{opacity:.72;cursor:wait}
.onboarding-link-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}.onboarding-option{display:grid;gap:4px;padding:17px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft);text-decoration:none;color:var(--text);transition:transform .15s ease,border-color .15s ease}.onboarding-option:hover{transform:translateY(-2px);border-color:var(--blue)}.onboarding-option span{color:var(--muted);font-size:.82rem}.onboarding-option--single{margin:20px 0}.onboarding-counts{font-size:.84rem;color:var(--muted)}
.onboarding-card--success{text-align:center}.onboarding-success-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 12px;border-radius:50%;background:var(--success);color:#fff;font-size:1.6rem;font-weight:800}.onboarding-card--success .onboarding-summary-list{max-width:620px;margin:20px auto}.onboarding-card--success form,.onboarding-card--success>.button{display:inline-flex;margin-top:8px}
@media(max-width:760px){.onboarding-header{flex-direction:column}.onboarding-progress-summary{width:100%}.onboarding-steps{grid-template-columns:1fr}.onboarding-steps span{justify-content:flex-start;border-bottom:0;border-left:3px solid var(--line)}.onboarding-case-form,.onboarding-optional-grid,.onboarding-link-grid{grid-template-columns:1fr}.onboarding-case-form .span-2,.onboarding-optional-grid .span-2{grid-column:auto}.onboarding-action{align-items:stretch;flex-direction:column}.onboarding-action .button{width:100%}}
@media(prefers-reduced-motion:reduce){.onboarding-option{transition:none}}

/* PRE-MVP-09B — pasarelas, checkout y webhooks */
.gc-payment-provider-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0}
.gc-payment-provider-card{display:grid;gap:14px;align-content:start;min-width:0}
.gc-payment-provider-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.gc-payment-provider-card__header h2{margin:.25rem 0 0}
.gc-payment-environment{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface-soft)}
.gc-payment-environment>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 15px;cursor:pointer;list-style:none}
.gc-payment-environment>summary::-webkit-details-marker{display:none}
.gc-payment-environment>summary span:first-child{display:grid;gap:2px}
.gc-payment-environment>summary small{color:var(--muted)}
.gc-payment-environment[open]>summary{border-bottom:1px solid var(--line);background:var(--accent-soft)}
.gc-payment-environment__body{display:grid;gap:14px;padding:15px}
.gc-webhook-copy{display:grid;gap:6px;min-width:0}
.gc-webhook-copy code{display:block;max-width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:auto;font-size:.78rem;white-space:nowrap}
.gc-masked-credentials{display:flex;flex-wrap:wrap;gap:7px}
.gc-masked-credentials span{padding:6px 9px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:.76rem;color:var(--muted)}
.gc-payment-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
.gc-payment-form label{display:grid;gap:6px}.gc-payment-form .btn{grid-column:1/-1;justify-self:start}
.gc-payment-config-form{display:grid;gap:10px;padding-top:12px;border-top:1px solid var(--line)}
.gc-production-confirm{padding:10px;border:1px solid color-mix(in srgb,var(--danger,#bd2c2c) 45%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--danger,#bd2c2c) 8%,var(--surface));font-weight:700}
.guided-sandbox-warning.is-gateway{border-color:color-mix(in srgb,var(--blue) 42%,var(--line));background:var(--accent-soft)}
[data-theme="dark"] .gc-payment-environment{background:#102536;border-color:#38536d}
[data-theme="dark"] .gc-payment-environment[open]>summary{background:#17344a}
[data-theme="dark"] .gc-webhook-copy code,[data-theme="dark"] .gc-masked-credentials span{background:#0b1d2c;border-color:#38536d;color:#dceaf4}
@media(max-width:1120px){.gc-payment-provider-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.gc-payment-provider-grid{grid-template-columns:1fr}.gc-payment-form{grid-template-columns:1fr}.gc-payment-form .btn{grid-column:auto;width:100%}.gc-payment-provider-card__header{flex-direction:column}}

/* PRE-MVP-12A — hardening mínimo del onboarding piloto. */
.onboarding-save-state{min-height:1.2em;margin-right:auto;color:var(--muted);font-size:.82rem}
.onboarding-save-state[data-state="saving"]{color:var(--blue)}
.onboarding-save-state[data-state="saved"]{color:var(--success)}
.onboarding-save-state[data-state="error"]{color:var(--danger);font-weight:650}
.onboarding-optional-grid>.gc-country-picker,.onboarding-optional-grid>.gc-place-picker,.onboarding-optional-grid>.gc-flexible-date{min-width:0}
.onboarding-option small{color:var(--muted);font-size:.74rem}
.onboarding-case-form input:focus-visible,.onboarding-case-form textarea:focus-visible,.onboarding-case-form select:focus-visible,.onboarding-option:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 42%,transparent);outline-offset:2px}
@media(max-width:760px){.onboarding-save-state{margin-right:0;text-align:center}.onboarding-optional-grid>.gc-flexible-date{padding:12px}}
