:root { font-family: Inter, ui-sans-serif, system-ui, sans-serif; color: #15231f; background: #f2f5f2; font-synthesis: none; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; }
a { color: #12634c; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid #e29b34; outline-offset: 3px; }
.public-shell { min-height: 100vh; display: grid; place-items: center; padding: 2rem; background: radial-gradient(circle at top right, #d8ebe2, transparent 35%), #f5f3ec; }
.hero, .auth-card, .status-page { width: min(100%, 42rem); background: rgba(255,255,255,.94); border: 1px solid #d8ded9; border-radius: 1.25rem; padding: clamp(1.5rem, 5vw, 3.5rem); box-shadow: 0 1.5rem 4rem rgba(24,53,43,.1); }
.hero h1, .auth-card h1, .status-page h1, .content h1 { margin: .25rem 0 1rem; font-family: Georgia, serif; font-size: clamp(2rem, 5vw, 3.7rem); line-height: 1; }
.eyebrow { color: #4a6c61; font-size: .75rem; font-weight: 800; letter-spacing: .14em; }
.button { display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: .6rem; padding: .8rem 1.1rem; background: #145d49; color: white; font-weight: 750; text-decoration: none; cursor: pointer; }
.button.secondary { color: #145d49; background: #e4eee9; }
form { display: grid; gap: .65rem; }
label { margin-top: .5rem; font-weight: 700; }
input { width: 100%; padding: .8rem; border: 1px solid #aebbb5; border-radius: .5rem; background: white; }
select { width: 100%; padding: .8rem; border: 1px solid #aebbb5; border-radius: .5rem; background: white; }
textarea { width: 100%; min-height: 6rem; padding: .8rem; border: 1px solid #aebbb5; border-radius: .5rem; background: white; resize: vertical; }
.notice { margin: 1rem 0; padding: .85rem; border-radius: .5rem; }
.notice.error { background: #fff0ed; color: #842d24; }
.notice.success { background: #e6f5ec; color: #185b36; }
.notice.warning { background: #fff5d8; color: #694b00; }
.wide { width: min(100%, 50rem); }
.tenant-option { grid-template-columns: 1fr auto; align-items: center; margin-top: .75rem; padding: 1rem; border: 1px solid #d8ded9; border-radius: .75rem; }
.tenant-option span { display: grid; }
.private-shell { min-height: 100vh; }
.topbar { min-height: 4.5rem; display: flex; align-items: center; gap: 1.5rem; padding: .75rem 1.5rem; color: white; background: #122c25; }
.brand { color: white; font-family: Georgia, serif; font-size: 1.35rem; font-weight: 700; text-decoration: none; }
.tenant-indicator { display: grid; margin-left: auto; font-size: .82rem; }
.platform-organization-switcher { margin-left:auto; display:flex; align-items:center; gap:.55rem; }
.platform-organization-switcher label { margin:0; color:#49645b; font-size:.78rem; font-weight:700; }
.platform-organization-switcher select { min-width:14rem; padding:.55rem .75rem; border:1px solid #b9ccc4; border-radius:.55rem; background:#fff; }
.private-body { display: grid; grid-template-columns: 15rem minmax(0, 1fr); min-height: calc(100vh - 4.5rem); transition: grid-template-columns .28s ease; }
/* `clip` y no `hidden`: hidden vuelve al aside contenedor de scroll y el sticky deja de pegarse. */
.sidebar { padding: 1.5rem 1rem; color: #dce9e4; background: #1a3b32; overflow: clip; transition: padding .28s ease; }
/* Ancho fijo: al plegarse el menu se recorta en vez de reacomodar el texto cuadro a cuadro. */
.sidebar-inner { position: sticky; top: 1.5rem; width: 13rem; transition: opacity .2s ease; }
html.sidebar-collapsed .private-body { grid-template-columns: 0 minmax(0, 1fr); }
html.sidebar-collapsed .sidebar { padding-left: 0; padding-right: 0; }
html.sidebar-collapsed .sidebar-inner { opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility 0s .28s; }
.sidebar-toggle { display: inline-grid; place-items: center; width: 2.4rem; height: 2.4rem; margin-left: -.5rem; padding: 0; border: 0; border-radius: .5rem; background: transparent; cursor: pointer; }
.sidebar-toggle:hover, .sidebar-toggle:focus-visible { background: #244b40; }
.sidebar-toggle span, .sidebar-toggle span::before, .sidebar-toggle span::after { display: block; width: 1.1rem; height: 2px; border-radius: 1px; background: white; transition: transform .28s ease; }
.sidebar-toggle span { position: relative; }
.sidebar-toggle span::before, .sidebar-toggle span::after { content: ""; position: absolute; left: 0; }
.sidebar-toggle span::before { top: -6px; }
.sidebar-toggle span::after { top: 6px; }
@media (prefers-reduced-motion: reduce) { .private-body, .sidebar, .sidebar-inner, .sidebar-toggle span { transition: none; } }
.navigation-caption { margin: 0 .7rem .75rem; color: #9fbab1; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.platform-navigation { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid rgba(220, 233, 228, .18); }
.nav-list { display: grid; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.nav-list a { display: flex; align-items: center; min-height: 2.75rem; padding: .65rem .75rem; border-left: 3px solid transparent; border-radius: .45rem; color: #dce9e4; font-weight: 650; line-height: 1.2; text-decoration: none; transition: background-color .15s ease, border-color .15s ease, color .15s ease; }
.nav-list a.active { border-left-color: #79c9aa; background: #2c574b; color: white; }
.nav-list a:hover { background: #244b40; color: white; }
.content { min-width: 0; padding: clamp(1.5rem, 4vw, 3.5rem); }
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.data-card { display: grid; gap: .3rem; padding: 1.25rem; background: white; border: 1px solid #d8ded9; border-radius: .8rem; }
.data-card span, .data-card small { color: #587067; }
.rag-toolbar { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 1rem; margin: 1.5rem 0 2.5rem; }
.rag-toolbar h2, .data-card h2 { margin: 0 0 .4rem; }
.evaluation-editor-group { display: grid; gap: .55rem; margin: 1rem 0; padding: 1rem; border: 1px solid #d8ded9; border-radius: .7rem; background: #f8faf9; }
.evaluation-editor-group form { display: grid; gap: .45rem; }
.field-help { display: block; color: #587067; font-size: .86rem; line-height: 1.35; }
.checkbox-label { display: inline-flex; align-items: center; gap: .5rem; width: fit-content; }
.checkbox-label input { margin: 0; }
.table-toolbar { display: flex; justify-content: flex-end; margin: .75rem 0; }
.table-scroll { overflow-x: auto; }
.page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.page-heading h1, .page-heading p { margin-top: 0; }
.data-table-card { overflow: hidden; border: 1px solid #d8ded9; border-radius: .8rem; background: white; }
.admin-table { width: 100%; border-collapse: collapse; }
.admin-table th { color: #587067; background: #f6f8f7; font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; }
.admin-table th, .admin-table td { padding: .9rem 1rem; border-bottom: 1px solid #e2e8e4; text-align: left; vertical-align: middle; }
.admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-table td small { display: block; margin-top: .2rem; color: #587067; }
.row-actions { display: flex; justify-content: flex-end; gap: .45rem; }
.row-actions button:disabled { cursor: not-allowed; opacity: .5; }
.dialog-content { display: grid; gap: .8rem; padding: 1.5rem; }
.identity-dialog h2 { margin: .15rem 0 0; }
.identity-summary { display: grid; gap: .15rem; padding: .85rem; border-radius: .6rem; background: #f1f5f3; }
.identity-summary span { color: #587067; }
.detail-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: .5rem 0; }
.detail-list div { padding: .8rem; border: 1px solid #e2e8e4; border-radius: .55rem; }
.detail-list dt { color: #587067; font-size: .78rem; font-weight: 750; text-transform: uppercase; }
.detail-list dd { margin: .3rem 0 0; font-weight: 650; overflow-wrap: anywhere; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.document-table td:first-child { min-width: 14rem; }
.count-badge { display: inline-grid; min-width: 2rem; min-height: 2rem; place-items: center; border-radius: 999px; color: #145d49; background: #e4eee9; font-weight: 800; }
.warning-text { color: #8a5a00 !important; }
.document-dialog { width: min(58rem, calc(100vw - 2rem)); }
.document-dialog section { padding-top: .5rem; border-top: 1px solid #e2e8e4; }
.document-dialog h3 { margin: .5rem 0; }
.association-list { display: grid; gap: .45rem; }
.association-list > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem .8rem; border: 1px solid #e2e8e4; border-radius: .55rem; }
.association-list span { display: grid; gap: .15rem; }
.association-list small { color: #587067; }
.document-operations { display: grid; gap: .65rem; }
.document-operations form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 1rem; padding: .8rem; border: 1px solid #e2e8e4; border-radius: .55rem; }
.document-operations form div { display: grid; gap: .3rem; }
.document-operations label { margin: 0; }
.danger-zone { padding: 1rem !important; border: 1px solid #edc4bf !important; border-radius: .65rem; background: #fff8f7; }
.danger-zone p { color: #6d3932; }
.admin-section { margin-top: 1.5rem; padding: 1rem; border: 1px solid #d8ded9; border-radius: .75rem; background: white; }
.admin-section > summary { cursor: pointer; color: #173f34; font-size: 1.05rem; font-weight: 800; }
.inline-create { grid-template-columns: minmax(12rem, 1fr) auto; align-items: end; margin: 1rem 0; }
.inline-create label { grid-column: 1 / -1; }
.version-list { display: grid; gap: .65rem; padding-left: 1.25rem; }
.version-list > li { padding: .7rem; border: 1px solid #e2e8e4; border-radius: .55rem; }
.version-list > li > div { display: flex; justify-content: space-between; gap: 1rem; }
.version-list span, .version-list small { color: #587067; }
.collection-picker { display: grid; gap: .45rem; margin: .6rem 0; padding: .85rem; border: 1px solid #d8ded9; border-radius: .6rem; }
.collection-picker legend { padding: 0 .3rem; font-weight: 800; }
.collection-picker .checkbox-label { margin: 0; padding: .35rem 0; }
.entity-list { display: grid; gap: .45rem; margin: .5rem 0 1rem; padding: 0; list-style: none; }
.entity-list li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem .8rem; border: 1px solid #e2e8e4; border-radius: .55rem; }
.entity-list span { display: grid; gap: .15rem; }
.entity-list small { color: #587067; }
.orphan-connection { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem; border: 1px solid #e2e8e4; border-radius: .55rem; }
.orphan-connection > span { display: grid; gap: .2rem; }
.orphan-connection small { color: #587067; }
.read-only-text { padding: .85rem; border-radius: .55rem; background: #f1f5f3; white-space: pre-wrap; }
.document-dialog details { margin-top: .75rem; padding: .8rem; border: 1px solid #d8ded9; border-radius: .6rem; }
.document-dialog details > summary { cursor: pointer; }
.evaluation-table { width: 100%; border-collapse: collapse; }
.evaluation-table th, .evaluation-table td { padding: .75rem; border-bottom: 1px solid #d8ded9; text-align: left; vertical-align: top; }
.evaluation-table td small { display: block; margin-top: .25rem; color: #587067; }
.button.compact { padding: .35rem .65rem; }
.evaluation-dialog { width: min(44rem, calc(100vw - 2rem)); max-height: 90vh; overflow-y: auto; border: 0; border-radius: .9rem; padding: 0; box-shadow: 0 1rem 3rem rgb(25 48 39 / 25%); }
.evaluation-dialog::backdrop { background: rgb(13 31 24 / 55%); }
.evaluation-dialog form { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: .7rem; padding: 1.5rem; }
.evaluation-dialog label { display: block; margin-top: .15rem; font-weight: 700; }
.evaluation-dialog input:not([type="checkbox"]), .evaluation-dialog select, .evaluation-dialog textarea { box-sizing: border-box; width: 100%; }
.evaluation-dialog .checkbox-label { display: flex; align-items: center; gap: .6rem; margin: .25rem 0; }
.evaluation-dialog .checkbox-label input { flex: 0 0 auto; width: 1rem; height: 1rem; }
.dialog-heading, .dialog-actions { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.dialog-heading h2 { margin: 0; }
.dialog-close { border: 0; background: transparent; font-size: 1.8rem; cursor: pointer; }
.dialog-actions { justify-content: flex-end; margin-top: .75rem; }
.evaluation-group-box { display: grid; gap: .75rem; margin: 1rem 0; padding: 1rem; border: 1px solid #c8d2cc; border-radius: .75rem; background: #fff; }
.evaluation-group-box legend { padding: 0 .5rem; color: #173f32; font-size: 1.05rem; font-weight: 700; }
.evaluation-group-box form { display: grid; gap: .45rem; }
.test-configuration-grid { display: grid; grid-template-columns: repeat(2, minmax(14rem, 1fr)); gap: .75rem; padding: 1rem; border: 1px solid #dce4df; border-radius: .7rem; background: #f8faf9; }
.test-configuration-grid label { display: grid; gap: .3rem; align-content: start; }
.configuration-label { display: flex; align-items: center; gap: .4rem; min-height: 1.75rem; }
.configuration-label strong { padding: .12rem .38rem; border-radius: 999px; background: #e4eee9; color: #17533f; font-size: .68rem; letter-spacing: .04em; }
.configuration-info { width: 1.65rem; height: 1.65rem; margin-left: auto; padding: 0; border: 1px solid #a9bbb2; border-radius: 50%; background: #fff; color: #176b50; font-weight: 800; line-height: 1; cursor: help; }
.configuration-info:hover,.configuration-info:focus-visible { border-color: #176b50; background: #eef7f3; outline: 2px solid #b8dbce; outline-offset: 1px; }
.bound-rag-channel { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem .75rem; padding:.8rem 1rem; border:1px solid #bdd5cb; border-radius:.6rem; background:#f2f8f5; }
.bound-rag-channel small { color:#587067; }
.bound-rag-channel .status-pill { margin-left:auto; }
.bound-channel-inline { display:inline-flex; align-items:center; min-height:2rem; padding:.35rem .65rem; border-radius:.5rem; background:#eef5f1; color:#244d40; font-size:.86rem; font-weight:700; }
.test-configuration-grid label:nth-child(2),.test-configuration-grid label:last-child { grid-column: 1 / -1; }
.rag-channel-configuration { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.rag-parameter-grid { display:grid; grid-template-columns:repeat(2,minmax(16rem,1fr)); gap:1rem; }
.rag-parameter-grid label { display:grid; gap:.35rem; padding:.8rem; border:1px solid #dce4df; border-radius:.65rem; background:#f8faf9; }
.range-control { display:grid; grid-template-columns:minmax(8rem,1fr) 4.5rem; gap:.75rem; align-items:center; }
.range-control input[type="range"] { width:100%; }
.range-control output { text-align:right; font-variant-numeric:tabular-nums; font-weight:700; }
.configuration-origin { margin:.4rem 0 0; }
.mcp-channel-configuration { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.mcp-channel-configuration label { display:grid; gap:.35rem; align-content:start; }
.mcp-safety-boundaries { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; margin-top:1.25rem; }
.mcp-safety-boundaries>div { display:grid; gap:.25rem; padding:.8rem; border:1px solid #dce4df; border-radius:.65rem; background:#f8faf9; }
.mcp-safety-boundaries span { color:#617169; font-size:.76rem; }
.mcp-safety-boundaries strong { color:#173f32; font-size:1.05rem; }
.mcp-effective-models { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.mcp-effective-models>div:not(.notice) { display:grid; gap:.2rem; padding:.8rem; border:1px solid #dce4df; border-radius:.65rem; background:#fff; }
.mcp-effective-models span,.mcp-effective-models small { color:#617169; font-size:.76rem; }
.configuration-history { margin-top:1rem; }
.configuration-history>summary { cursor:pointer; color:#17533f; font-weight:800; }
@media (max-width: 760px) { .rag-channel-configuration,.rag-parameter-grid { grid-template-columns:1fr; } }
@media (max-width: 760px) { .mcp-channel-configuration,.mcp-safety-boundaries,.mcp-effective-models { grid-template-columns:1fr; } }
@media (max-width: 760px) { .test-configuration-grid { grid-template-columns: 1fr; } .test-configuration-grid label:nth-child(2),.test-configuration-grid label:last-child { grid-column: auto; } }
.questions-group { background: #fbfcfb; }
.active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .65rem .75rem; border-radius: .5rem; background: #e7f1ec; color: #244d40; }
/* Limpiar filtros es una accion, no una navegacion, asi que se ve como boton. Sigue siendo un `a`
   porque lo que hace es ir a la misma vista sin parametros: como boton de formulario haria falta
   un submit que compita con el envio automatico del filtro. */
.active-filters a { margin-left: auto; }
.dataset-lifecycle { margin-top: 1.15rem; padding: 1rem 1.1rem .9rem; border: 1px solid #d4ded8; border-radius: .8rem; background: linear-gradient(135deg, #fbfdfc 0%, #f2f7f4 100%); box-shadow: 0 5px 16px rgba(23, 63, 50, .06); }
.lifecycle-track { display: grid; grid-template-columns: repeat(4, 1fr); margin: .1rem 0 .9rem; }
.lifecycle-step { position: relative; display: grid; justify-items: center; gap: .45rem; color: #819087; text-align: center; }
.lifecycle-step:not(:last-child)::after { content: ""; position: absolute; z-index: 0; top: .95rem; left: calc(50% + 1.15rem); width: calc(100% - 2.3rem); height: 3px; border-radius: 99px; background: #d8e0db; }
.lifecycle-step.is-complete:not(:last-child)::after { background: #4f8f73; }
.lifecycle-dot { position: relative; z-index: 1; display: grid; place-items: center; width: 1.95rem; height: 1.95rem; border: 2px solid #c7d1cb; border-radius: 50%; background: #fff; font-size: .76rem; font-weight: 800; }
.lifecycle-name { font-size: .73rem; font-weight: 700; letter-spacing: .055em; }
.lifecycle-step.is-complete { color: #3d725d; }
.lifecycle-step.is-complete .lifecycle-dot { border-color: #4f8f73; background: #e1f0e8; }
.lifecycle-step.is-current { color: #123f31; }
.lifecycle-step.is-current .lifecycle-dot { border-color: #176b50; background: #176b50; color: #fff; box-shadow: 0 0 0 5px rgba(23, 107, 80, .13); }
.lifecycle-step.is-current .lifecycle-name { font-weight: 900; }
.lifecycle-description { margin: 0; color: #345247; font-size: .84rem; text-align: center; }
.lifecycle-description strong { color: #173f32; }
.lifecycle-eval-scope { margin: .3rem 0 0; color: #345247; font-size: .8rem; text-align: center; }
.lifecycle-eval-scope strong { color: #173f32; }
.lifecycle-test-note { margin: .4rem 0 0; color: #6a7b73; font-size: .75rem; text-align: center; }
.evaluation-failures { margin-top: .8rem; border-top: 1px solid #dfc9c3; padding-top: .75rem; }
.evaluation-failures > summary { cursor: pointer; color: #6d2c24; font-weight: 800; }
.test-question-failure > summary { border-color: #e6bcbc; background: #fff8f8; }
.failure-list { display: grid; gap: .75rem; margin-top: .75rem; }
.failure-card { padding: .9rem; border: 1px solid #ead1ca; border-radius: .65rem; background: #fffaf8; }
.failure-card p { margin: .55rem 0; }
.failure-heading { display: flex; align-items: start; justify-content: space-between; gap: .75rem; }
.failure-heading div { display: grid; gap: .2rem; }
.failure-heading span { color: #5b6d65; font-size: .82rem; }
.failure-heading .failure-heading-actions { justify-items: stretch; min-width: 11.5rem; }
.failure-run-link { display: block; margin-top: .25rem; font-size: .82rem; font-weight: 700; text-align: center; }
.failure-advice { color: #4d403b; }
.failure-card blockquote { margin: .35rem 0 .6rem; padding: .65rem .75rem; border-left: 3px solid #bd7a66; border-radius: .25rem; background: #fff; color: #3f4a45; }
.question-evaluation-row>td{padding:.35rem .75rem 1rem;background:#f7faf8}.question-latest-evaluation>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem .8rem;border:1px solid #d6e1dc;border-radius:.65rem;background:#fff;cursor:pointer;font-weight:650}.question-latest-evaluation[open]>summary{border-radius:.65rem .65rem 0 0}.question-latest-evaluation>.run-case-card{margin-top:0;border-radius:0 0 .65rem .65rem}.empty-state.compact{margin:.35rem 0;padding:.65rem .8rem}
.evaluation-table tr.question-needs-review>td{background:#fff2f2}.evaluation-table tr.question-evaluation-row.question-needs-review>td{background:#fff2f2}.question-needs-review .question-latest-evaluation>summary{border-color:#e6bcbc;background:#fff8f8}.review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem;padding:.75rem;border:1px solid #d6e1dc;border-radius:.65rem;background:#f7faf8}.review-toolbar form{margin:0}.review-toolbar span{color:#40534c}
.evaluation-table tr.question-status-rejected>td,.evaluation-table tr.question-evaluation-row.question-status-rejected>td{background:#fff0f0}
.evaluation-table tr.question-status-pending>td,.evaluation-table tr.question-evaluation-row.question-status-pending>td{background:#fff8d9}
.question-status-rejected .question-latest-evaluation>summary{border-color:#e6bcbc;background:#fff7f7}
.question-status-pending .question-latest-evaluation>summary{border-color:#e4d59a;background:#fffbed}
.copy-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .35rem; }
.answer-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: .75rem 0; }
.answer-comparison section { padding: .75rem; border: 1px solid #e1ded9; border-radius: .55rem; background: #fff; }
.answer-comparison h4 { margin: 0 0 .65rem; color: #173f32; }
.answer-comparison ul { margin: .35rem 0 .75rem; padding-left: 1.25rem; }
@media (max-width: 760px) { .answer-comparison { grid-template-columns: 1fr; } }
.platform-rag-console { max-width: 1500px; margin: 0 auto; }
.optimization-scope { display: grid; grid-template-columns: auto minmax(14rem, 1fr) auto minmax(14rem, 1fr); align-items: center; gap: .65rem; padding: 1rem; border: 1px solid #d3ddd7; border-radius: .8rem; background: #f7faf8; }
.optimization-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin: 1rem 0; }
.optimization-summary article { display: grid; gap: .2rem; padding: .85rem 1rem; border: 1px solid #d7e0db; border-radius: .7rem; background: #fff; }
.optimization-summary span { color: #617169; font-size: .76rem; text-transform: uppercase; letter-spacing: .04em; }
.optimization-summary strong { color: #173f32; font-size: 1.15rem; }
.optimization-grid { display: grid; grid-template-columns: minmax(20rem, .85fr) minmax(28rem, 1.15fr); gap: 1rem; align-items: start; }
.optimization-panel { padding: 1rem; border: 1px solid #d4ddd8; border-radius: .85rem; background: #fff; box-shadow: 0 8px 24px rgba(24, 61, 49, .06); }
.panel-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.optimization-failure { margin-top: .8rem; padding: .9rem; border: 1px solid #ead5ce; border-radius: .65rem; background: #fffaf8; }
.optimization-failure > div { display: flex; justify-content: space-between; gap: .5rem; }
.optimization-failure small { color: #697a72; }
.profile-panel form { display: grid; gap: .45rem; }
.tuning-control { display: grid; gap: .3rem; padding: .7rem; border: 1px solid #dce4df; border-radius: .6rem; background: #f8faf9; }
.tuning-control > div { display: flex; justify-content: space-between; gap: 1rem; }
.tuning-control output { min-width: 3rem; color: #176b50; font-weight: 850; text-align: right; }
.tuning-control input[type=range] { width: 100%; accent-color: #176b50; }
.tuning-control small,.profile-panel form > small { color: #617169; line-height: 1.35; }
.profile-version,.candidate-result { display: grid; gap: .5rem; margin-top: .8rem; padding: .75rem; border: 1px solid #dce4df; border-radius: .6rem; background: #fbfcfb; }
.profile-version > div { display: flex; justify-content: space-between; gap: .5rem; }
@media (max-width: 980px) { .optimization-grid { grid-template-columns: 1fr; } .optimization-scope { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .optimization-summary { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .dataset-lifecycle { padding-inline: .7rem; } .lifecycle-name { font-size: .62rem; letter-spacing: .02em; } .lifecycle-step:not(:last-child)::after { left: calc(50% + .9rem); width: calc(100% - 1.8rem); } .lifecycle-dot { width: 1.75rem; height: 1.75rem; } }
.feedback-list { display: grid; gap: .75rem; }
.feedback-card { padding: 1rem; border: 1px solid #d8ded9; border-radius: .7rem; background: white; }
.feedback-card dl { display: grid; gap: .3rem; margin: .75rem 0 0; }
.feedback-card dt { margin-top: .45rem; color: #587067; font-size: .8rem; font-weight: 750; }
.feedback-card dd { margin: 0; white-space: pre-wrap; }
.evaluation-dialog form:has(input[name="answerable"]:not(:checked)) .answerable-only { display: none; }
.channel-configuration { display: grid; gap: .6rem; margin: 1.5rem 0; }
.channel-configuration-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: .75rem; }
.channel-configuration-card { display: grid; gap: .15rem; padding: 1rem; border-radius: .7rem; background: #f8faf9; border: 1px solid #e6ebe8; }
.channel-configuration-kind { display: flex; align-items: center; gap: .5rem; margin: 0; color: #587067; font-size: .78rem; font-weight: 750; text-transform: uppercase; }
.channel-configuration-kind .status-pill { margin-left: auto; text-transform: none; }
.channel-configuration-name { margin: .1rem 0 .2rem; font-size: 1rem; font-weight: 650; }
.mcp-configuration { display: grid; gap: .6rem; margin: 1rem 0; }
.mcp-configuration .status-pill { white-space: nowrap; }
.mcp-active-row { background: #f4f7f5; }
.mcp-run-choice { display: grid; gap: .3rem; padding: .6rem .8rem; border: 1px solid #d8ded9; border-radius: .6rem; background: white; }
/* Sin esto el radio hereda el ancho de los inputs del formulario y empuja el texto. */
.mcp-run-choice .checkbox-label input { flex: 0 0 auto; width: 1rem; height: 1rem; }
.run-dialog { width: min(72rem, calc(100vw - 2rem)); max-height: calc(100vh - 4rem); }
.import-dialog { width: min(34rem, calc(100vw - 2rem)); }
.run-dialog-toolbar { justify-content: flex-start; }
.run-activity-pill { margin-left: .5rem; padding: .1rem .5rem; border-radius: 999px; background: #fff5d8; color: #694b00; font-size: .78rem; font-weight: 750; }
/* Los mensajes de la corrida van arriba de todo y son lo primero que se lee al abrir. */
.run-messages { display: grid; gap: .6rem; margin-bottom: 1rem; }
.run-messages:empty { display: none; }
.run-row { cursor: pointer; }
.run-row:hover { background: #f4f7f5; }
.run-row[aria-expanded="true"] { background: #eef5f1; }
.run-row-toggle { color: #587067; }
.run-detail-row > td { padding: 0 !important; background: #f8faf9; }
.run-detail { display: grid; gap: .75rem; padding: 1rem 1.25rem; }
.run-detail-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: .75rem; margin: 0; }
.run-detail-metrics dt { color: #587067; font-size: .78rem; font-weight: 750; text-transform: uppercase; }
.run-detail-metrics dd { margin: .2rem 0 0; font-weight: 650; }
.run-detail-metrics dd small { display: block; color: #587067; font-weight: 400; }
.run-detail-failures { display: grid; gap: .5rem; margin: 0; padding-left: 1.1rem; }
.run-detail-failures small { display: block; color: #587067; }
.answerable-only { display: grid; gap: .55rem; }
/* `display: grid` le gana al `[hidden]` del navegador, así que ocultar por JS no alcanzaba. */
.answerable-only[hidden], .mcp-case-only[hidden], .rag-case-only[hidden], .tool-options .tool-option[hidden] { display: none; }
.tool-picker { display: grid; gap: .4rem; }
.tool-filter { width: 100%; }
.tool-options { display: grid; max-height: 11rem; overflow-y: auto; border: 1px solid #d8ded9; border-radius: .6rem; background: white; }
/* `.evaluation-dialog label` es mas especifico que `.tool-option`: sin el contenedor delante, cada opcion se apila. */
.tool-options .tool-option { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .55rem; margin: 0; padding: .45rem .65rem; font-weight: 400; cursor: pointer; border-bottom: 1px solid #eef1ef; }
.tool-options .tool-option:last-child { border-bottom: none; }
.tool-options .tool-option:hover { background: #f4f7f5; }
.tool-options .tool-option input { margin: 0; width: 1rem; height: 1rem; }
.tool-options .tool-option:has(input:disabled) { color: #96a49d; cursor: not-allowed; background: #fafbfa; }
.tool-options .tool-option:has(input:checked) { background: #eef5f1; }
.tool-name { font-weight: 650; }
.tool-meta { color: #587067; font-size: .82rem; }
.tool-empty { margin: 0; color: #587067; font-size: .88rem; }
.advanced-fields { border-top: 1px solid #e6ebe8; padding-top: .6rem; }
.advanced-fields summary { cursor: pointer; color: #587067; font-size: .88rem; font-weight: 650; }
.advanced-fields[open] { display: grid; gap: .55rem; }
.document-list, .search-results { display: grid; gap: 1rem; margin: 1rem 0 2.5rem; }
.document-card { display: grid; gap: 1rem; padding: 1.25rem; border: 1px solid #d8ded9; border-radius: .8rem; background: white; }
.document-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.document-heading div { display: grid; gap: .25rem; }
.document-heading small { color: #587067; }
.status-pill { padding: .35rem .65rem; border-radius: 999px; font-size: .75rem; font-weight: 800; }
.status-pill.completed { background: #dff2e6; color: #185b36; }
.status-pill.failed { background: #ffe3dd; color: #842d24; }
.status-pill.processing { background: #dcebf9; color: #174c77; }
.status-pill.pending { background: #eeeae1; color: #5b5140; }
/* Ambar para lo que pide atencion: un resultado que nadie sabe todavia. */
.status-pill.warning { background: #fff1c7; color: #6b4a00; }
.models-table { min-width: 920px; }
.models-table td { vertical-align: middle; }
.models-table .row-actions { min-width: 18rem; }
.models-table .row-actions form { display: block; }
.model-dialog { width: min(48rem, calc(100vw - 2rem)); }
.secret-guidance { margin: 0; line-height: 1.45; }
.secret-guidance code { overflow-wrap: anywhere; }
.form-grid.two-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1rem; }
.form-grid.two-columns label { display: block; }
.cell-detail { display: block; margin-top: .3rem; color: #587067; }
.model-capabilities { display: flex; flex-wrap: wrap; gap: .35rem; }
.model-chip { display: inline-flex; padding: .25rem .5rem; border-radius: 999px; background: #e8f1ed; color: #285c4d; font-size: .75rem; font-weight: 750; }
.model-uses { display: grid; gap: .3rem; margin: 0; padding-left: 1rem; }
.muted { color: #70847c; }
.metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); gap: .75rem; margin: 0; }
.metrics div { padding: .7rem; border-radius: .5rem; background: #f5f7f5; }
.metrics dt { font-size: .75rem; color: #587067; }
.metrics dd { margin: .2rem 0 0; font-weight: 750; }
.actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: end; }
.actions form { display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; }
.button.danger { border-color: #8b3027; background: #8b3027; color: #fff; }
.button.danger:hover { background: #72251f; color: #fff; }
.file-action { display: grid; gap: .2rem; margin: 0; font-size: .8rem; }
.file-action input { max-width: 16rem; padding: .45rem; }
.version-list { display: grid; gap: .4rem; }
.search-form { max-width: 48rem; margin-bottom: 1rem; }
/* Buscador en su propio renglon; los tres combos y la casilla comparten el siguiente. */
.question-filters .filter-search { width:100%; }
.question-filters .filter-row { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; margin-top:.6rem; }
.question-filters .filter-row select { flex:1 1 12rem; min-width:10rem; }
.question-filters .filter-row .checkbox-label { flex:0 0 auto; margin:0; white-space:nowrap; }
/* Con JavaScript el filtro se dispara solo y el boton sobra. */
.question-filters.auto-filter .filter-submit { display:none; }
.text-link { font-weight: 700; }
#blazor-error-ui { display: none; position: fixed; inset: auto 0 0; padding: .75rem; background: #ffdf8e; z-index: 1000; }
#blazor-error-ui .dismiss { float: right; cursor: pointer; }
@media (max-width: 720px) { .private-body { grid-template-columns: 1fr; } .sidebar { padding: .75rem; overflow-x: auto; } .sidebar-inner { position: static; width: auto; } .private-navigation { min-width: max-content; } html.sidebar-collapsed .sidebar { display: none; } .navigation-caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } .nav-list { display: flex; } .nav-list a { white-space: nowrap; } .topbar { flex-wrap: wrap; } .tenant-indicator { order: 3; width: 100%; margin-left: 0; } }
.channel-shell { min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; background: #f5f3ec; }
.channel-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; color: white; background: #122c25; }
.channel-content { display: grid; place-items: center; padding: 2rem; }
.channel-card { width: min(100%, 44rem); padding: clamp(1.5rem, 5vw, 3rem); border-top: .5rem solid var(--channel-color); border-radius: 1rem; background: white; box-shadow: 0 1rem 3rem rgba(24,53,43,.1); }
.channel-list { display: grid; gap: .75rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.channel-list .button { width: 100%; }
.chat-shell { width: min(100%, 58rem); }
.chat-transcript { display: grid; gap: 1rem; max-height: 55vh; overflow-y: auto; margin: 1.5rem 0; padding: 1rem; background: #f4f7f5; border-radius: .75rem; }
.chat-message { max-width: 88%; padding: .8rem 1rem; border-radius: .75rem; background: white; box-shadow: 0 .15rem .5rem rgba(24,53,43,.08); }
.chat-message.user { justify-self: end; background: color-mix(in srgb, var(--channel-color) 13%, white); }
.chat-message p { white-space: pre-wrap; margin: .35rem 0; }
.chat-message blockquote { margin: .75rem 0 0; padding: .65rem; border-left: .2rem solid var(--channel-color); background: #f8faf9; }
.chat-composer { display: grid; gap: .6rem; margin-bottom: 1rem; }
.chat-composer textarea { width: 100%; resize: vertical; }
.evidence-warning { color: #8a3f00; font-weight: 600; }
/* Intervencion deliberada del canal, no una busqueda que fallo: no debe leerse como advertencia. */
.evidence-direct { color: #2f6d4f; font-weight: 600; }
.typing-cursor { animation: blink 1s steps(1) infinite; }
/* Herramientas consultadas durante el turno. La fallida se muestra igual: una respuesta
   construida sin el dato que se intento traer no es lo mismo que una que no lo necesito. */
.tool-activity { list-style: none; display: grid; gap: .25rem; margin: .35rem 0; padding: 0; }
.tool-activity li { display: flex; align-items: baseline; gap: .4rem; font-size: .85rem; }
.tool-activity .tool-name { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.tool-activity li::before { content: "•"; }
.tool-activity .tool-started::before { content: "…"; }
.tool-activity .tool-succeeded::before { content: "\2713"; color: #2f6d4f; }
.tool-activity .tool-failed::before { content: "\2717"; color: #8a3f00; }
.tool-activity .tool-failed { color: #8a3f00; }
.mcp-diagnostics { padding: .6rem .75rem; background: #fff; border: 1px solid #d6e1dc; border-radius: .5rem; }
.mcp-diagnostics summary { cursor: pointer; font-weight: 600; }
.mcp-diagnostics-server { margin: .4rem 0 0; display: grid; }
.mcp-diagnostics-excluded { margin: .5rem 0 .25rem; padding-left: 1.1rem; font-size: .85rem; }
.channel-collections { display: grid; gap: .5rem; padding: .75rem; background: #f4f7f5; border-radius: .5rem; }
.channel-collections form { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
@keyframes blink { 50% { opacity: 0; } }
.channel-shell footer { padding: 1rem; text-align: center; color: #587067; }
.evaluation-history{margin-top:1.5rem}.evaluation-history .section-heading,.run-cases .section-heading,.run-title{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.table-scroll{overflow-x:auto}.evaluation-history-table{min-width:1080px}.evaluation-history-table td{vertical-align:middle}.evaluation-history-table th[title]{cursor:help}.history-type-filter{display:block;min-width:170px;margin-top:.45rem;padding:.35rem .45rem;font-size:.8rem;font-weight:400}.run-parameters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.run-parameters div{padding:.75rem;border:1px solid #d6e1dc;border-radius:.65rem}.run-parameters dt{font-size:.78rem;text-transform:uppercase;color:#587067}.run-parameters dd{margin:.25rem 0 0;font-weight:650}.run-cases{margin-top:1.5rem}.run-case-card{margin-top:1rem;padding:1rem;border:1px solid #d6e1dc;border-left:4px solid #16715b;border-radius:.75rem;background:#fff}.run-case-card.failed{border-left-color:#a33}.run-case-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.run-case-meta span{padding:.25rem .5rem;border-radius:999px;background:#f4f7f5;font-size:.82rem}
.evaluation-run-detail,.evaluation-run-detail .data-card,.evaluation-run-detail .run-cases,.evaluation-run-detail .run-case-card,.evaluation-run-detail .evaluation-configuration-detail,.evaluation-run-detail .run-parameters>div,.evaluation-run-detail .answer-comparison>section{min-width:0;max-width:100%}
.evaluation-run-detail pre{box-sizing:border-box;max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.evaluation-run-detail details{max-width:100%}
.evaluate-case-form { display:flex; gap:.45rem; align-items:center; margin-top:.45rem; }
.evaluate-case-form select { min-width:8rem; max-width:12rem; padding:.35rem; }
.question-actions-cell { min-width: 17rem; }
.question-edit-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; width:100%; }
.question-review-actions { display:flex; flex-wrap:wrap; gap:.35rem; }
.question-review-actions .direct-answer-edit { border:1px solid #145d49; background:#fff; color:#145d49; box-shadow:0 1px 2px rgba(20,93,73,.12); }
.question-review-actions .direct-answer-edit:hover { background:#e4eee9; }
.run-actions { display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
.run-actions form { display:block; }
.selected-configuration-summary { min-width:0; display:grid; gap:1rem; padding:1.25rem; border:1px solid #bdd5cb; border-radius:.8rem; background:#f7fbf9; }
.selected-configuration-summary pre { box-sizing:border-box; max-width:100%; white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word; }
.question-edit-actions form { display:block; margin:0; }
.question-edit-actions .button { width:100%; min-height:2rem; }
.failure-reevaluate { margin:.75rem 0; padding:.7rem; border-radius:.55rem; background:#fff7f4; }
.failure-reevaluate select { max-width:20rem; }
.case-job-status { color:#51645b; font-size:.82rem; font-weight:600; white-space:nowrap; }

.empty-state { display:grid; gap:.6rem; margin:1rem 0; padding:1.25rem; border:1px dashed #a9bbb2; border-radius:.8rem; background:#f8faf9; }
.empty-state h2,.empty-state p { margin:0; }
.empty-state small { color:#587067; }
.empty-state .button { justify-self:start; }
.mcp-admin { max-width:1200px; margin:0 auto; }
.mcp-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; margin:1.25rem 0; }
.mcp-summary article { display:grid; gap:.35rem; padding:1rem; border:1px solid #d6e1dc; border-radius:.7rem; background:#fff; }
.mcp-summary article > span { display:grid; place-items:center; width:1.8rem; height:1.8rem; border-radius:50%; background:#dceee7; color:#155a44; font-weight:800; }
.mcp-summary small { color:#587067; }
@media (max-width:900px) { .mcp-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .mcp-summary { grid-template-columns:1fr; } }
.admin-form-panel { margin:1.5rem 0; padding:1.15rem; border:1px solid #d4ddd8; border-radius:.8rem; background:#fff; }
.admin-form-panel h2 { margin-top:0; }
.admin-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.admin-form-grid label { display:grid; gap:.3rem; color:#334b42; font-weight:700; }
.admin-form-grid input,.admin-form-grid select,.admin-form-grid textarea { box-sizing:border-box; width:100%; }
.admin-form-grid .span-all { grid-column:1/-1; }
.admin-form-grid .checkbox-row { display:flex; align-items:center; gap:.5rem; }
.admin-form-grid .checkbox-row input { width:auto; }
/* Los datos de la configuracion efectiva son varios `small` seguidos, y `small` es inline: se
   pegaban uno a otro y se leia «...caracteres de contexto Elegida por 11000000...». Cada dato en su
   renglon, y el nombre de la version separado del detalle. */
.effective-configuration dd { display:flex; flex-direction:column; gap:.15rem; }
.effective-configuration dd strong { margin-bottom:.15rem; }
.effective-configuration dd small { display:block; line-height:1.45; }

.mcp-detail-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(18rem,.7fr); gap:1rem; align-items:start; }
/* General y las tools comparten la columna izquierda para que tengan el mismo ancho y para que la
   tarjeta de estado tenga contra que adherirse: cuando las tools vivian fuera de la grilla, el
   `sticky` se terminaba junto con la grilla y el estado desaparecia apenas empezabas a revisarlas. */
.mcp-detail-grid > .admin-form-panel, .mcp-detail-grid > .mcp-tools-section { grid-column:1; }
.mcp-detail-grid > .mcp-status-card { grid-column:2; grid-row:1 / -1; }
.mcp-status-card { position:sticky; top:1rem; }
.mcp-status-card form { margin:.8rem 0; }
.mcp-tools-section { margin-top:1.5rem; }
.mcp-tool-list { display:grid; gap:1rem; }
.mcp-tool-card { gap:.9rem; }
.mcp-tool-card details pre { max-height:20rem; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; }
.danger-zone { margin-top:1.5rem; padding:1rem; border:1px solid #e2bbb5; border-radius:.8rem; background:#fff8f6; }
.mcp-channel-bindings { margin-top:.75rem; }
.channel-admin-list { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; margin:1.5rem 0; }
.channel-admin-card { min-width:0; gap:.65rem; }
.channel-admin-sections { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; align-items:start; }
.channel-admin-sections .mcp-channel-bindings { margin-top:0; }
.channel-admin-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; padding-top:.25rem; }
.channel-admin-actions form { margin:0; }
.channel-management-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; align-items:start; margin-top:1.25rem; }
.channel-management-grid .admin-section { margin:0; min-width:0; }
.channel-management-grid .span-all { grid-column:1/-1; }
.tool-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; margin-top:1rem; }
.tool-grid .data-card { min-width:0; }
.questions-accordion { margin:1rem 0; }
.questions-accordion > summary { padding:.8rem 1rem; border:1px solid #d4ddd8; border-radius:.7rem; background:#f4f7f5; color:#315348; font-weight:800; cursor:pointer; }
.questions-accordion[open] > summary { margin-bottom:.7rem; }
.channel-rules-override { padding:.65rem; border:1px solid #dce4df; border-radius:.55rem; background:#f8faf9; }
.channel-rules-override summary { color:#315348; font-weight:700; cursor:pointer; }
.channel-rules-override[open] summary { margin-bottom:.65rem; }
.channel-rule-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.55rem; }
.mcp-binding-card { display:grid; gap:.7rem; padding:.75rem; border:1px solid #d6e1dc; border-radius:.65rem; background:#fff; }
.binding-form { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:end!important; }
.binding-form .span-all { grid-column:1/-1; }
.binding-form label { display:grid; gap:.25rem; }
.mcp-binding-tools { display:grid; gap:.45rem; }
.mcp-binding-tools form { justify-content:space-between; border-top:1px solid #edf1ef; padding-top:.45rem; }
.mcp-binding-tools span { display:grid; }
@media (max-width:980px) { .channel-admin-sections,.channel-management-grid,.tool-grid { grid-template-columns:1fr; } .channel-management-grid .span-all { grid-column:auto; } }
@media (max-width:800px) { .admin-form-grid,.mcp-detail-grid,.binding-form { grid-template-columns:1fr; } .admin-form-grid .span-all,.binding-form .span-all { grid-column:auto; } .mcp-status-card { position:static; }
  /* En una sola columna el estado va segundo, entre la configuracion y las tools, y no al final. */
  .mcp-detail-grid > .admin-form-panel,.mcp-detail-grid > .mcp-tools-section,.mcp-detail-grid > .mcp-status-card { grid-column:auto; grid-row:auto; }
  .mcp-detail-grid > .mcp-status-card { order:1; } .mcp-detail-grid > .mcp-tools-section { order:2; } }

/* Tabla de versiones del dataset. `table-layout:fixed` con anchos declarados: sin eso las
   celdas largas (nombre de configuración, fecha, botón) empujaban la tabla fuera del ancho
   de la página. El contenedor propio se lleva el scroll cuando ya no entra. */
.version-table-wrap { max-width:100%; overflow-x:auto; margin:1rem 0 1.5rem; }
.version-table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:.9rem; background:#fff; border:1px solid #dce4df; border-radius:.6rem; }
.version-table thead th { text-align:left; padding:.6rem .7rem; background:#f2f6f4; color:#33443c; font-size:.74rem; font-weight:700; text-transform:uppercase; letter-spacing:.02em; border-bottom:1px solid #dce4df; }
.version-table tbody td { padding:.65rem .7rem; border-bottom:1px solid #eef2f0; color:#33443c; vertical-align:middle; overflow-wrap:anywhere; }
.version-table tbody tr:last-child td { border-bottom:0; }
.version-table tbody tr:hover { background:#f8faf9; }
.version-table col.c-version { width:5rem; }
.version-table col.c-stage { width:8.5rem; }
.version-table col.c-count { width:6rem; }
.version-table col.c-rubric { width:5.5rem; }
.version-table col.c-created { width:9rem; }
.version-table col.c-config { width:9rem; }
.version-table col.c-live { width:9.5rem; }
.version-table col.c-actions { width:11.5rem; }
.version-table td:nth-child(3), .version-table th:nth-child(3),
.version-table td:nth-child(4), .version-table th:nth-child(4) { text-align:center; font-variant-numeric:tabular-nums; }
.version-table td:nth-child(5) { color:#51645b; font-size:.83rem; }
.version-table th:last-child,
.version-table td:last-child { position:sticky; right:0; z-index:1; text-align:right; background:#fff; box-shadow:-.45rem 0 .65rem -.65rem rgb(24 53 43 / 45%); }
.version-table thead th:last-child { z-index:2; background:#f2f6f4; }
.version-table tbody tr:hover td:last-child { background:#f8faf9; }
.version-table td:last-child .button { white-space:nowrap; }
.version-table .status-pill { display:inline-block; }
@media (max-width:1000px) { .version-table { table-layout:auto; min-width:52rem; } .version-table th:nth-child(6), .version-table td:nth-child(6) { width:9rem; max-width:9rem; } }

/* Boton bloqueado: se ve inactivo pero sigue recibiendo el clic, porque un `disabled` real no
   emite eventos y el usuario se queda sin saber por que no puede avanzar. */
.button.is-blocked { opacity:.55; cursor:not-allowed; filter:grayscale(.35); }
.blocked-reason { color:#8a3f00!important; font-weight:600; }
.button.is-blocked:hover { opacity:.55; }
/* Dentro de .run-actions (flex) la nota se ubicaba al lado del boton y estiraba la celda:
   ocupa la fila completa para caer debajo sin ensanchar la tabla. */
.blocked-note { flex:0 0 100%; width:100%; margin-top:.35rem; color:#8a3f00; font-weight:600; white-space:normal; }

/* La tarjeta de version es un grid y su columna implicita es `auto`: cualquier hijo con un
   min-content grande (tablas anchas, filas de controles) estiraba la columna por encima del
   ancho de la tarjeta y desacomodaba todo el contenido. `minmax(0,1fr)` la ata al contenedor
   y deja que el desborde lo resuelvan los contenedores con scroll propio. */
.evaluation-version-card, .evaluation-group-box, .evaluation-group-box > form { grid-template-columns: minmax(0, 1fr); }
.evaluation-version-card > *, .evaluation-group-box > *, .evaluation-group-box > form > * { min-width: 0; }
