/* Formularios y paneles SCD; tamaños, color y tipografía desde los tokens. */
body[data-telo-design="v2"] .tv2-ui :is(select,textarea).tv2-input { background: var(--tv2-surface-soft) !important; border: 1px solid var(--tv2-border) !important; border-radius: var(--tv2-radius-control) !important; box-shadow: none !important; color: var(--tv2-ink) !important; font: var(--tv2-weight-normal) var(--tv2-text-md)/var(--tv2-leading) var(--tv2-font) !important; padding: var(--tv2-space-2) var(--tv2-space-3) !important; width: 100%; }
body[data-telo-design="v2"] .tv2-ui select.tv2-input { height: var(--tv2-control) !important; padding-right: var(--tv2-space-6) !important; appearance: auto !important; }
body[data-telo-design="v2"] .tv2-ui textarea.tv2-input { height: auto !important; min-height: 84px; resize: vertical; }
.tv2-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: var(--tv2-space-4); }
/* Consulta compacta, en flujo normal y separada de los resultados. */
.tv2-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--tv2-space-3); min-width: 0; margin: 0 0 var(--tv2-space-4); }
.tv2-filters > .tv2-field { flex: 1 1 140px; min-width: 0; }
.tv2-filters > .tv2-filters__search { flex: 2 1 240px; }
.tv2-ui .tv2-filters > .tv2-field:has(.tv2-choice-card) { flex-basis: 240px; }
.tv2-filters > .tv2-filters__wide { flex: 1 0 100%; min-width: 0; }
.tv2-filters > .tv2-toolbar { flex-wrap: wrap; max-width: 100%; }
.tv2-card > .tv2-filters:last-child { margin-bottom: 0; }
/* The central controller measures the label/control boundary in each wrapped row.
   Helpers keep their natural height below the control; no fixed label/helper heights. */
.tv2-ui [data-tv2-filter-slot] { align-self: start !important; margin-top: calc(var(--tv2-filter-base-margin,0px) + var(--tv2-filter-offset,0px)) !important; }
/* Related query actions occupy their content width and wrap as one group. */
.tv2-ui :is(.tv2-filter-actions,[data-tv2-filter-actions]) { display: flex; flex: 0 1 auto; flex-wrap: wrap; align-items: center; justify-content: flex-start; justify-self: start; gap: var(--tv2-space-2); width: max-content; max-width: 100%; min-width: 0; margin-inline: 0; }
.tv2-ui :is(.tv2-filter-actions,[data-tv2-filter-actions]) > :is(.tv2-field,.tv2-toolbar,.tv2-button) { flex: 0 1 auto; width: auto; max-width: 100%; min-width: 0; margin-inline: 0; }
.tv2-ui :is(.tv2-filter-actions,[data-tv2-filter-actions]) > :is(.tv2-field,.tv2-toolbar) { display: flex; align-items: center; justify-content: flex-start; gap: var(--tv2-space-2); }
.tv2-form-section { margin-top: var(--tv2-space-5); padding-top: var(--tv2-space-4); border-top: 1px solid var(--tv2-border); }
.tv2-form-section > h3, .tv2-form-section > .tv2-caption { margin-bottom: var(--tv2-space-3); }
.tv2-form-toggles, .tv2-form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--tv2-space-2); margin-top: var(--tv2-space-3); }
.tv2-form-actions { justify-content: flex-end; padding-block: var(--tv2-space-3); }
.tv2-form-actions > .tv2-caption, .tv2-form-actions > .tv2-badge { margin-right: auto; }
.tv2-span-2 { grid-column: 1 / -1; }
.tv2-disclosure { border-bottom: 1px solid var(--tv2-border); margin-block: var(--tv2-space-3); padding-bottom: var(--tv2-space-3); }
.tv2-disclosure > summary { cursor: pointer; padding-block: var(--tv2-space-3); font-size: var(--tv2-text-md); font-weight: var(--tv2-weight-medium); }
.tv2-disclosure > summary > span { margin-left: var(--tv2-space-2); }
.tv2-disclosure[open] > summary { margin-bottom: var(--tv2-space-2); }
/* Query criteria stay in the page, including mobile. Disclosure is for details, not filters. */
.tv2-ui details.tv2-filter-panel:not(.tv2-card) { border: 0; padding: 0; margin: 0 0 var(--tv2-space-3); }
.tv2-ui .tv2-filter-panel.tv2-card { padding: var(--tv2-space-3) var(--tv2-space-4); margin-block: 0; }
.tv2-ui details.tv2-filter-panel[open] > .tv2-filter-panel__heading { display: flex; align-items: center; flex-wrap: wrap; gap: var(--tv2-space-2); cursor: default; list-style: none; min-height: 0; padding: 0; margin: 0 0 var(--tv2-space-1); font-size: var(--tv2-text-sm); font-weight: var(--tv2-weight-medium); }
.tv2-ui details.tv2-filter-panel.tv2-card[open] > .tv2-filter-panel__heading { margin-bottom: var(--tv2-space-2); }
.tv2-ui details.tv2-filter-panel[open] > .tv2-filter-panel__heading > span { flex-wrap: wrap; align-items: baseline; gap: var(--tv2-space-1) var(--tv2-space-2); }
.tv2-ui .tv2-filter-panel__heading::marker,.tv2-ui .tv2-filter-panel__heading::-webkit-details-marker { display: none; content: ''; }
.tv2-ui .tv2-filter-panel__heading::after { display: none; }
.tv2-ui .tv2-filter-panel__heading > :is(.fa-chevron-down,.fa-chevron-up,.fa-angle-down,.fa-angle-up) { display: none; }
.tv2-ui .tv2-filter-panel .tv2-filters:last-child { margin-bottom: 0; }
/* Query context shares a compact line when space permits; every label stays visible. */
.tv2-ui .tv2-card:has(> .tv2-filter-panel) > .tv2-card__header { margin-bottom: var(--tv2-space-2); gap: var(--tv2-space-2); align-items: baseline; }
.tv2-ui .tv2-card:has(> .tv2-filter-panel) > .tv2-card__header > div:has(> :is(h2,h3,h4)):has(> p) { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--tv2-space-1) var(--tv2-space-3); min-width: 0; }
.tv2-ui .tv2-card:has(> .tv2-filter-panel) > .tv2-card__header > div > p { margin: 0; font-size: var(--tv2-text-sm); color: var(--tv2-muted); }
.tv2-ui .tv2-button--danger { color: var(--tv2-danger); background: var(--tv2-danger-soft); border-color: var(--tv2-danger-soft); }
.tv2-ui .tv2-button[aria-disabled="true"] { opacity: .45; pointer-events: none; }
.tv2-ui button:disabled { cursor: not-allowed; }
.tv2-ui form[aria-busy="true"] button { cursor: wait; }
.tv2-drawer { width: min(600px,calc(100vw - 24px)); margin: var(--tv2-space-3) var(--tv2-space-3) var(--tv2-space-3) auto; max-height: calc(100dvh - 24px); height: calc(100dvh - 24px); padding: 0; overflow: hidden; }
.tv2-drawer--wide { width: min(820px,calc(100vw - 24px)); }
.tv2-drawer[open] { display: flex; flex-direction: column; }
.tv2-drawer > .tv2-dialog__header { padding: var(--tv2-space-5); margin: 0; border-bottom: 1px solid var(--tv2-border); flex-shrink: 0; }
.tv2-drawer > .tv2-dialog__header > div { min-width: 0; }
.tv2-drawer > .tv2-dialog__header h2 { overflow-wrap: anywhere; }
.tv2-drawer__body { min-height: 0; overflow: auto; overscroll-behavior: contain; padding: var(--tv2-space-5); }
body:has(.tv2-drawer[open]) { overflow: hidden; }
.tv2-confirm { max-width: 450px; }
.tv2-form-error { margin-bottom: var(--tv2-space-3); }
.tv2-facts { margin: var(--tv2-space-4) 0; }
.tv2-facts > div { display: flex; align-items: baseline; justify-content: space-between; gap: var(--tv2-space-3); padding-block: var(--tv2-space-2); border-bottom: 1px solid var(--tv2-border); }
.tv2-facts dt { font-weight: var(--tv2-weight-normal); font-size: var(--tv2-text-sm); color: var(--tv2-muted); }
.tv2-facts dd { margin: 0; text-align: right; font-weight: var(--tv2-weight-medium); overflow-wrap: anywhere; max-width: 65%; }
.tv2-facts--grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--tv2-space-3); }
.tv2-timeline { list-style: none; padding: 0; margin: var(--tv2-space-3) 0; }
.tv2-timeline li { display: flex; justify-content: space-between; gap: var(--tv2-space-3); padding: var(--tv2-space-3) 0; border-bottom: 1px solid var(--tv2-border); }
.tv2-timeline strong { font-weight: var(--tv2-weight-medium); }
.tv2-timeline small { display: block; color: var(--tv2-muted); font-size: var(--tv2-text-sm); overflow-wrap: anywhere; }
.tv2-timeline time { font-size: var(--tv2-text-xs); white-space: nowrap; color: var(--tv2-muted); }
@media(max-width:600px) { .tv2-form-grid { grid-template-columns: minmax(0,1fr); } .tv2-drawer, .tv2-drawer--wide { margin: var(--tv2-space-2); width: calc(100vw - 16px); max-height: calc(100dvh - 16px); height: calc(100dvh - 16px); } .tv2-drawer > .tv2-dialog__header,.tv2-drawer__body { padding: var(--tv2-space-4); } .tv2-form-actions .tv2-button { white-space: normal; } .tv2-timeline time { max-width: 90px; white-space: normal; } }

/* Compact description columns: each label stays above its value and helpers. */
.tv2-facts--columns { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,160px),1fr)); gap: var(--tv2-space-3); min-width: 0; }
.tv2-facts--columns > div { display: block; min-width: 0; overflow-wrap: anywhere; }
.tv2-facts--columns dt { margin: 0 0 var(--tv2-space-1); }
.tv2-facts--columns dd { text-align: left; max-width: none; }
.tv2-facts--columns dd > .tv2-caption { display: block; margin-top: var(--tv2-space-1); }
