/* Contratos: cabecera compacta, filtros laterales, "Requieren atención",
   resumen gráfico plegable y detalle deslizante. Solo presentación,
   delimitada a #view-contratos. Se carga antes de ui-nova.css; los
   selectores con body.ui-2026.ui-nova ganan por especificidad. */

/* ── Cabecera en una línea: identidad · totales · acciones ── */
#view-contratos .ctr-kpis-inline { display:flex!important; flex-wrap:wrap; gap:6px!important; margin:0 0 0 auto!important; padding:0!important; }
body.ui-2026.ui-nova #view-contratos .ctr-kpis-inline>div {
  display:flex!important; align-items:baseline; gap:6px; min-height:0!important; padding:6px 11px!important;
  border:1px solid var(--ds-border)!important; border-radius:9px!important; background:var(--ds-surface)!important; box-shadow:none!important; animation:none!important;
}

/* ── Filtros laterales + tabla ── */
#view-contratos .ctr-c-main { min-width:0; display:flex; flex-direction:column; gap:14px; }
#view-contratos .ctr-c-side {
  position:sticky; top:12px; max-height:calc(100vh - 24px); overflow-y:auto; display:flex; flex-direction:column; gap:16px;
  padding:16px; background:var(--ds-card); border:1px solid var(--ds-border); border-radius:14px;
}
#view-contratos .ctr-c-block { display:flex; flex-direction:column; gap:8px; }
#view-contratos .ctr-c-block h5 { margin:0; font-size:10.5px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; color:var(--ds-muted); }
#view-contratos .ctr-c-search { display:flex; align-items:center; gap:8px; padding:9px 11px; border:1px solid var(--ds-border); border-radius:9px; background:var(--ds-surface); color:var(--ds-muted); }
#view-contratos .ctr-c-search:focus-within { border-color:var(--ds-accent); box-shadow:0 0 0 3px var(--ds-accent-soft); }
#view-contratos .ctr-c-search input { flex:1; min-width:0; border:0; outline:0; background:transparent; font:inherit; font-size:13px; color:var(--ds-text); }
#view-contratos .ctr-c-search kbd { font-size:10px; padding:2px 6px; border:1px solid var(--ds-border); border-radius:5px; background:var(--ds-card); color:var(--ds-muted); }
#view-contratos .ctr-c-toggle { display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; color:var(--ds-text-secondary); cursor:pointer; }
#view-contratos .ctr-c-toggle input { accent-color:var(--ds-accent); width:14px; height:14px; }
#view-contratos .ctr-c-count { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:12px; color:var(--ds-muted); font-weight:600; }
#view-contratos .ctr-c-count button { border:0; background:transparent; color:var(--ds-err); font:inherit; font-size:12px; font-weight:700; cursor:pointer; padding:2px 0; }

#view-contratos .ctr-c-atencion { display:flex; flex-direction:column; gap:5px; }
#view-contratos .ctr-c-at {
  display:flex; justify-content:space-between; align-items:center; gap:8px; padding:8px 10px; text-align:left;
  border:1px solid var(--ds-border); border-radius:9px; background:var(--ds-surface); color:var(--ds-text); font:inherit; font-size:12.5px; cursor:pointer;
}
#view-contratos .ctr-c-at b { font-variant-numeric:tabular-nums; }
#view-contratos .ctr-c-at[data-tono="err"] b { color:var(--ds-err); }
#view-contratos .ctr-c-at[data-tono="warn"] b { color:var(--ds-warn); }
#view-contratos .ctr-c-at[data-tono="mute"] b { color:var(--ds-muted); }
#view-contratos .ctr-c-at:hover { border-color:var(--ds-accent); }
#view-contratos .ctr-c-at.on { border-color:var(--ds-accent); background:var(--ds-accent-soft); box-shadow:inset 3px 0 var(--ds-accent); font-weight:650; }

body.ui-2026.ui-nova #view-contratos .ctr-c-tabs { display:flex!important; flex-direction:column!important; align-items:stretch!important; gap:3px!important; margin:0!important; padding:0!important; background:transparent!important; border:0!important; }
#view-contratos .ctr-c-chips { display:flex; flex-wrap:wrap; gap:5px; }
#view-contratos .ctr-c-chips .ds-chip { font-size:11.5px; padding:5px 9px; cursor:pointer; }
#view-contratos .ctr-c-chips .ds-chip-sep { display:none; }

/* Resumen gráfico plegable */
#view-contratos .ctr-resumen { border:1px solid var(--ds-border); border-radius:14px; background:var(--ds-card); }
#view-contratos .ctr-resumen>summary { list-style:none; cursor:pointer; padding:11px 16px; font-size:13px; font-weight:700; color:var(--ds-text); display:flex; align-items:center; gap:10px; }
#view-contratos .ctr-resumen>summary::-webkit-details-marker { display:none; }
#view-contratos .ctr-resumen>summary::before { content:'▸'; color:var(--ds-muted); font-size:12px; width:10px; }
#view-contratos .ctr-resumen[open]>summary::before { content:'▾'; }
#view-contratos .ctr-resumen>summary span { font-size:11.5px; font-weight:500; color:var(--ds-muted); }
#view-contratos #ctr-bento { display:grid; grid-template-columns:1.1fr .8fr 1.3fr 1.3fr; gap:14px; padding:0 14px 14px; }

/* Tabla */
#view-contratos #ctr-tbody tr { cursor:pointer; }

/* ── Detalle del contrato: panel deslizante ── */
#view-contratos #ctr-detail { display:none; }
#view-contratos #ctr-detail.open {
  display:block; position:fixed; top:16px; right:16px; bottom:16px; width:min(400px, calc(100vw - 32px)); z-index:60; overflow-y:auto;
  border-radius:18px; box-shadow:0 24px 60px rgba(15,23,42,.24); animation:ctrDetIn .18s ease-out both;
}
#view-contratos #ctr-detail.open #ctr-detail-content { min-height:100%; max-height:none!important; }
@keyframes ctrDetIn { from { transform:translateX(24px); opacity:0 } to { transform:none; opacity:1 } }
#view-contratos :is(.ctr-c-at, .ctr-resumen>summary):focus-visible { outline:2px solid var(--ds-accent); outline-offset:2px; }

/* Menos de 1.500 px: la tabla no cabe junto a la columna; filtros arriba. */
@media (max-width:1499px) {
  #view-contratos .ctr-c-side { position:static; max-height:none; display:grid; grid-template-columns:repeat(auto-fit, minmax(230px,1fr)); align-items:start; }
  body.ui-2026.ui-nova #view-contratos .ctr-c-tabs { flex-direction:row!important; flex-wrap:wrap!important; }
  #view-contratos #ctr-bento { grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:1100px) { #view-contratos .ctr-kpis-inline { margin-left:0!important; } }
@media (max-width:600px) {
  #view-contratos #ctr-detail.open { top:0; right:0; bottom:0; width:100vw; border-radius:0; }
  #view-contratos #ctr-bento { grid-template-columns:1fr; }
}
/* Selector de titular: hereda colores y superficies del tema activo. */
.ctr-titular-modal { width:min(720px, calc(100vw - 32px)); max-height:calc(100dvh - 32px); display:flex; flex-direction:column; overflow:hidden; padding:20px; gap:12px; color:var(--ds-text); }
.ctr-titular-modal header, .ctr-titular-modal footer { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.ctr-titular-modal h2 { font-size:1.1rem; margin:0; }
.ctr-titular-modal p { margin:0; font-size:.82rem; line-height:1.5; }
.ctr-titular-modal #ctr-titular-ayuda { color:var(--ds-muted); }
.ctr-titular-modal form { display:flex; flex-direction:column; gap:10px; min-height:0; flex:1; }
.ctr-titular-modal form > :not(#ctr-titular-resultados) { flex-shrink:0; }
.ctr-titular-modal input[type="search"] { width:100%; box-sizing:border-box; padding:12px; border:1px solid var(--ds-border); border-radius:8px; background:var(--ds-surface); color:var(--ds-text); font:inherit; }
.ctr-titular-modal #ctr-titular-resultados { border:1px solid var(--ds-border); border-radius:8px; margin:0; padding:0; min-height:100px; flex:1; overflow:auto; }
.ctr-titular-opcion { display:flex; align-items:flex-start; gap:10px; padding:12px; border-bottom:1px solid var(--ds-border); cursor:pointer; }
.ctr-titular-opcion:last-child { border-bottom:0; }
.ctr-titular-opcion:has(input:checked) { background:var(--ds-surface); outline:2px solid var(--accent); outline-offset:-2px; }
.ctr-titular-opcion > span { display:flex; flex-direction:column; gap:4px; min-width:0; overflow-wrap:anywhere; }
.ctr-titular-opcion span span { font-size:.8rem; color:var(--ds-muted); }
.ctr-titular-modal button { padding:9px 14px; border:1px solid var(--ds-border); border-radius:8px; background:var(--ds-surface); color:var(--ds-text); cursor:pointer; font:inherit; }
.ctr-titular-modal button[type="submit"] { background:var(--accent); color:#fff; }
.ctr-titular-modal button:disabled { opacity:.5; cursor:not-allowed; }
.ctr-titular-modal :focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
