/* «Editar contrato» / «Nuevo contrato» (26/10): el diálogo de contrato-editor.js, con los colores del rediseño
   (ui/tokens.css) y valores de reserva para las páginas que no los cargan. */
.ce-dialog { border: 0; border-radius: 14px; padding: 0; color: var(--m-text, #17201b); background: var(--m-surface, #fff);
  box-shadow: var(--m-shadow-pop, 0 16px 48px rgba(17, 21, 18, .2)); font-family: var(--m-font, system-ui, sans-serif); max-height: calc(100vh - 32px); }
.ce-dialog::backdrop { background: var(--m-scrim, rgba(17, 21, 18, .52)); }
.ce-dialog--aviso, .ce-dialog--inicio { width: min(560px, calc(100vw - 32px)); padding: 24px; }
.ce-dialog--form { width: min(960px, calc(100vw - 32px)); }
.ce-dialog h2 { margin: 0; font-size: 1.3rem; line-height: 1.25; }
.ce-dialog h3 { margin: 0 0 4px; font-size: 1.02rem; }
.ce-eyebrow { margin: 0 0 4px; font-size: .875rem; color: var(--m-text-2, #3c4741); }
.ce-nota { margin: 0; font-size: .875rem; color: var(--m-text-2, #3c4741); }
.ce-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ce-acciones { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.ce-btn { min-height: 44px; padding: 0 16px; border-radius: 8px; border: 1px solid #c3cbc6; background: #fff; color: inherit; font: inherit;
  font-weight: 600; font-size: .95rem; cursor: pointer; }
.ce-btn:hover { background: var(--m-hover, #f2f5f3); }
.ce-btn--primario { background: var(--m-action, #17201b); border-color: var(--m-action, #17201b); color: #fff; }
.ce-btn--primario:hover { background: var(--m-action-hover, #2c3832); }
.ce-btn--peligro { background: var(--m-danger, #b3123a); border-color: var(--m-danger, #b3123a); color: #fff; }
.ce-btn--suelto { align-self: flex-start; border-style: dashed; }
.ce-btn--compacto { min-height: 34px; padding: 0 12px; font-size: .875rem; }
.ce-btn[aria-busy="true"] { opacity: .65; cursor: progress; }
.ce-btn:focus-visible, .ce-cerrar:focus-visible { outline: 3px solid var(--m-focus, #0a7d4f); outline-offset: 2px; }
.ce-botones { display: inline-flex; flex-wrap: wrap; gap: 8px; }

/* Aviso y «¿cómo quieres empezar?» */
.ce-aviso__txt { margin: 14px 0 18px; line-height: 1.5; }
.ce-aviso__txt ul { margin: 6px 0 0; padding-left: 20px; }
.ce-inicio { border: 0; padding: 0; margin: 16px 0; display: flex; flex-direction: column; gap: 10px; }
.ce-opcion { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border: 1px solid #c3cbc6; border-radius: 10px; cursor: pointer; }
.ce-opcion:has(input:checked) { border: 2px solid var(--m-action, #17201b); background: var(--m-subtle, #eef1ef); }
.ce-opcion > span { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.ce-opcion small { font-size: .875rem; color: var(--m-text-2, #3c4741); }
.ce-opcion input, .ce-version input, .ce-pago input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--m-action, #17201b); }
.ce-versiones { display: flex; flex-direction: column; gap: 6px; margin-top: 6px; }
.ce-version { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border: 1px solid var(--m-line, #e2e6e3); border-radius: 8px; background: #fff; font-size: .92rem; }
.ce-dialog--inicio .ce-nota { margin-bottom: 18px; }

/* El formulario */
.ce-form { display: flex; flex-direction: column; max-height: calc(100vh - 32px); }
.ce-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 20px 24px 12px; border-bottom: 1px solid var(--m-line, #e2e6e3); }
.ce-cerrar { width: 40px; height: 40px; border: 0; border-radius: 8px; background: transparent; font-size: 1.6rem; line-height: 1; cursor: pointer; color: inherit; }
.ce-cuerpo { overflow: auto; padding: 16px 24px; display: flex; flex-direction: column; gap: 14px; background: var(--m-bg, #f6f7f6); }
.ce-banda { margin: 0; padding: 12px 14px; border-radius: 10px; background: #fff; border: 1px solid var(--m-line, #e2e6e3); line-height: 1.45; font-size: .95rem; }
.ce-banda--aviso { background: var(--m-warn-bg, #fff4cc); border-color: var(--m-warn-line, #a37f00); color: var(--m-warn-ink, #5c4300); }
.ce-sec { background: #fff; border: 1px solid var(--m-line, #e2e6e3); border-radius: 12px; padding: 16px 18px; display: flex; flex-direction: column; gap: 12px; }
.ce-rejilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.ce-campo { display: flex; flex-direction: column; gap: 5px; margin: 0; font-size: .9rem; }
.ce-campo__et { font-weight: 600; color: var(--m-text-2, #3c4741); display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ce-campo input, .ce-campo textarea { min-height: 42px; border: 1px solid #b9c2bc; border-radius: 8px; padding: 8px 12px; font: inherit; font-size: .95rem; color: inherit; background: #fff; }
.ce-campo textarea { min-height: 90px; resize: vertical; }
.ce-campo input[readonly] { background: var(--m-subtle, #eef1ef); }
.ce-campo.is-cambiado input, .ce-campo.is-cambiado textarea { border: 2px solid var(--m-warn-line, #a37f00); }
.ce-chip { padding: 1px 8px; border-radius: 999px; background: var(--m-warn-bg, #fff4cc); color: var(--m-warn-ink, #5c4300); font-size: .75rem; font-weight: 700; }
.ce-antes { font-size: .82rem; color: var(--m-text-2, #3c4741); }
.ce-opcional { font-weight: 400; }
.ce-pagos { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ce-pagos legend { font-weight: 600; font-size: .9rem; color: var(--m-text-2, #3c4741); margin-bottom: 6px; display: flex; gap: 6px; align-items: center; }
.ce-pago { display: inline-flex; gap: 8px; align-items: center; min-height: 42px; padding: 0 14px; border: 1px solid #b9c2bc; border-radius: 999px; cursor: pointer; }
.ce-pago:has(input:checked) { border: 2px solid var(--m-action, #17201b); background: var(--m-subtle, #eef1ef); font-weight: 600; }
.ce-anexos { display: flex; flex-direction: column; gap: 8px; }
.ce-ficheros { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ce-fichero { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 12px; border: 1px solid var(--m-line, #e2e6e3); border-radius: 8px; }
.ce-pie { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 24px; border-top: 1px solid var(--m-line, #e2e6e3); background: #fff; border-radius: 0 0 14px 14px; }
.ce-pie__estado { margin: 0; font-size: .92rem; color: var(--m-text-2, #3c4741); flex: 1 1 220px; }
.ce-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 100; margin: 0; padding: 12px 18px; border-radius: 10px;
  background: var(--m-chrome, #111512); color: #fff; box-shadow: var(--m-shadow-pop, 0 16px 48px rgba(0, 0, 0, .2)); max-width: calc(100vw - 32px); }

/* La tarjeta «Contrato» del cajón y de la ficha */
.ce-tarjeta { border: 1px solid #c9d1cc; border-radius: 12px; padding: 14px 16px; background: #fff; display: flex; flex-direction: column; gap: 10px; margin: 0 0 12px; }
.ce-tarjeta__cab { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ce-tarjeta__t { margin: 0; font-size: 1rem; font-weight: 700; }
.ce-estado { padding: 2px 10px; border-radius: 999px; font-size: .78rem; font-weight: 700; background: var(--m-subtle, #eef1ef); }
.ce-estado--firmado { background: var(--m-done-bg, #e6f4e8); color: var(--m-done-ink, #1f6a2b); }
.ce-estado--pendiente { background: var(--m-warn-bg, #fff4cc); color: var(--m-warn-ink, #5c4300); }
.ce-tarjeta__txt { margin: 0; font-size: .9rem; color: var(--m-text-2, #3c4741); }
.ce-tarjeta__acc { display: flex; flex-wrap: wrap; gap: 8px; }
.ce-anteriores { font-size: .9rem; }
.ce-anteriores summary { cursor: pointer; font-weight: 600; color: var(--m-text-2, #3c4741); min-height: 32px; display: flex; align-items: center; }
.ce-anteriores ul { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ce-anteriores li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding: 8px 10px; border: 1px solid var(--m-line, #e2e6e3); border-radius: 8px; }
@media (max-width: 640px) { .ce-cab, .ce-cuerpo, .ce-pie { padding-left: 16px; padding-right: 16px; } .ce-acciones { justify-content: stretch; } .ce-acciones .ce-btn { flex: 1 1 auto; } }
.ce-enlace { border: 0; background: none; padding: 0; font: inherit; color: var(--m-brand-ink, #007e50); text-decoration: underline; cursor: pointer; }
.ce-btn--enlace { display: inline-flex; align-items: center; text-decoration: none; }

/* 27/10: checks en «Lo que falta» del cajón (Administración) y el resumen del material */
.ce-check-fila { display: flex; flex-direction: column; gap: 4px; padding: 8px 12px; list-style: none; }
.ce-check { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; min-height: 40px; margin: 0; cursor: pointer; font-size: .95rem; }
.ce-check input { width: 20px; height: 20px; margin: 0; accent-color: var(--m-action, #17201b); flex: none; cursor: pointer; }
.ce-check input:disabled { cursor: not-allowed; }
.ce-check input:disabled + .ce-check__t { color: var(--m-later-ink, #56615b); }
.ce-check__t { font-weight: 600; }
.ce-check__d { font-size: .82rem; color: var(--m-text-2, #3c4741); flex-basis: 100%; padding-left: 30px; }
.ce-check--na { min-height: 32px; padding-left: 30px; font-size: .85rem; }
.ce-check--na .ce-check__t { font-weight: 400; }
.ce-check-fila.is-hecho .ce-check__t { color: var(--m-done-ink, #1f6a2b); }
.ce-check-cab { list-style: none; padding: 10px 12px 2px; font-size: .95rem; }
.ce-check__mas { margin-left: 30px; align-self: flex-start; min-height: 32px; font-size: .88rem; }
.ce-material { margin-left: 30px; }
.ce-material__dl { display: grid; grid-template-columns: max-content 1fr; gap: 3px 12px; margin: 2px 0 0; font-size: .86rem; }
.ce-material__dl dt { color: var(--m-text-2, #3c4741); margin: 0; }
.ce-material__dl dd { margin: 0; }
