/* Ajustes → Correo (1.7.0): Plantillas, Envíos, Diseño y el editor de plantillas, con los tokens de Corporativo
   (static/corporativo.css) y selectores :root[data-theme] para Oscuro. Maqueta aprobada: design/maqueta-correo.html. */
.mail-stack { display: grid; gap: 24px; }
.mail-stack > .panel, .mail-stack > .pagination, .mail-stack > .stats, .mail-stack > .notice, .mail-col > .panel, .mail-preview { margin: 0; }
.mail-seg { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 3px; border-radius: 10px; background: var(--co-tint-strong); }
:root[data-theme=dark] .mail-seg { background: rgba(0, 0, 0, .32); }
.mail-seg button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 36px; padding: 0 12px; border: 0; border-radius: var(--co-radius-control); background: transparent; color: var(--muted); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; transition: color .15s; }
.mail-seg button:is([aria-pressed=true], [aria-selected=true]) { background: var(--co-pop); color: var(--ink); box-shadow: var(--co-card-shadow); }
:root[data-theme=dark] .mail-seg button:is([aria-pressed=true], [aria-selected=true]) { box-shadow: var(--co-card-shadow), inset 0 0 0 1px rgba(255, 255, 255, .08); }
@media (hover: hover) { .mail-seg button:hover:not([aria-pressed=true]):not([aria-selected=true]):not(:disabled) { color: var(--ink); } }
/* Sobre el tinte del grupo, el gris secundario de Corporativo para Claro (4,5:1). */
:root[data-theme=light] :is(.mail-seg button, .mail-subnav a, .mail-chipset button, .mail-chip) { color: #4f5a6b; }
:root[data-theme=light] :is(.mail-seg button:is([aria-pressed=true], [aria-selected=true]), .mail-subnav a[aria-current=page]) { color: var(--ink); }
:root[data-theme=light] .mail-chipset button[aria-pressed=true] { color: var(--on-primary); }
/* Texto secundario sobre superficies tintadas (bloque abierto o con el puntero encima, su cuerpo, la etiqueta «Sin
   disparador», los menús con hover tintado y la numeración del código): el gris general queda en el límite o por
   debajo de 4,5:1 en Claro. */
:root[data-theme=light] :is(.mail-block-head small, .mail-tag.soon, .mail-block-body .mail-help, .mail-varitem small, .mail-suggest-item small, .mail-add-menu small, .mail-gutter) { color: #4f5a6b; }
.mail-seg button:focus-visible { outline: 2px solid var(--blue-500); outline-offset: 1px; }
.mail-seg button:disabled { opacity: .45; cursor: not-allowed; }
.mail-help { display: block; margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 17px; }
.mail-small { font-size: 12px; }
.mail-error { display: block; margin-top: 6px; color: var(--red-700); font-size: 12px; font-weight: 600; }
.mail-error[hidden] { display: none; }

/* Envío y apartados */
.mail-send { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px 24px; align-items: center; padding: 20px 24px; }
.mail-send .notice { margin: 12px 0 0; }
.mail-send-switch { display: flex; align-items: center; gap: 14px; cursor: pointer; }
.mail-send-switch strong { display: block; font-size: 16px; }
.mail-send-switch small { display: block; color: var(--muted); font-size: 13px; }
.mail-from { margin: 12px 0 0; font-size: 14px; color: var(--ink); overflow-wrap: anywhere; }
.mail-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.mail-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 28px; padding: 0 10px; border-radius: 999px; background: var(--co-tint-strong); color: var(--muted); font-size: 12px; font-weight: 600; overflow-wrap: anywhere; }
.mail-chip .icon { transform: scale(.72); margin: 0 -2px; }
.mail-chip.ok { color: var(--green-700); }
:root[data-theme=light] .mail-chip.ok { color: var(--green-900); }
.mail-send-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.mail-subnav { display: flex; gap: 2px; padding: 3px; border-radius: 10px; background: var(--co-tint-strong); justify-self: start; }
:root[data-theme=dark] .mail-subnav { background: rgba(0, 0, 0, .32); }
.mail-subnav a { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 16px; border-radius: var(--co-radius-control); color: var(--muted); font-size: 14px; font-weight: 600; text-decoration: none; transition: color .15s; }
.mail-subnav a[aria-current=page] { background: var(--co-pop); color: var(--ink); box-shadow: var(--co-card-shadow); }
@media (hover: hover) { .mail-subnav a:hover:not([aria-current=page]) { color: var(--ink); } }
.mail-subnav a:focus-visible { outline: 2px solid var(--blue-500); outline-offset: 1px; }

/* Plantillas y filtros */
.mail-filters { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; padding: 12px; }
.mail-chipset { display: flex; flex-wrap: wrap; gap: 6px; }
.mail-chipset button { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border: 1px solid var(--co-card-line); border-radius: 999px; background: var(--surface); color: var(--muted); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.mail-chipset button b { font-weight: 600; opacity: .8; }
.mail-chipset button[aria-pressed=true] { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }
@media (hover: hover) { .mail-chipset button:hover:not([aria-pressed=true]) { color: var(--ink); border-color: var(--co-field-hover); } }
.mail-chipset button:focus-visible { outline: 2px solid var(--blue-500); outline-offset: 2px; }
.mail-search { position: relative; flex: 0 1 300px; min-width: 200px; }
.mail-search .icon { position: absolute; left: 12px; top: 50%; margin-top: -12px; color: var(--muted); pointer-events: none; }
.mail-search .input { width: 100%; padding-left: 42px; }
.mail-group .panel-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.mail-row { display: flex; align-items: center; gap: 14px; padding: 14px 24px; border-top: 1px solid var(--co-line); }
.mail-group .panel-head + .mail-row { border-top: 0; }
.mail-row-icon { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 10px; background: var(--co-tint-strong); color: var(--ink); }
.mail-row-text { flex: 1; min-width: 0; }
.mail-row-name { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-weight: 600; font-size: 15px; }
.mail-row-text small { display: block; margin-top: 2px; color: var(--muted); font-size: 13px; }
.mail-tag { display: inline-flex; align-items: center; gap: 4px; min-height: 20px; padding: 0 8px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .01em; white-space: nowrap; }
.mail-tag.custom { background: var(--blue-100); color: var(--blue-500); }
.mail-tag.code { background: var(--co-tint-strong); color: var(--ink); font-family: Consolas, 'Courier New', monospace; font-weight: 600; }
.mail-tag.soon { background: var(--co-tint-strong); color: var(--muted); }
.mail-row-name .info-wrap { margin-left: -4px; }
.mail-state { display: flex; align-items: center; gap: 10px; cursor: pointer; }

/* Envíos (1.13.0): opción 2 «Detalle desplegable» de design/envios-propuestas.html con las acciones 5 «Aviso tintado» de
   design/envios-acciones.html, elegidas por el propietario el 14 de octubre de 2026. Cifras del periodo; filtros por
   estado, periodo, rango de fechas con el calendario del panel y búsqueda; una línea por envío y, al desplegarla, su
   recorrido, sus datos y un aviso tintado con lo que se puede hacer. Hasta 680 px, filtros plegados con su resumen y
   filas de dos líneas, como Registro. Fuentes de la maqueta: design/envios-final/. */
.mail-stats { margin: 0; }
.send-stats.mail-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) { .send-stats.mail-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.send-filter-panel { padding: 0; }
.send-filter-summary { display: none; }
.send-filters { display: grid; gap: 14px; padding: 14px 16px 16px; }
.send-filter-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; }
.send-filter-row .mail-search { flex: 0 1 320px; }
.send-range { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; }
.send-dates { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.send-date { display: flex; align-items: center; gap: 8px; }
.send-date-label { display: inline-flex; align-items: center; gap: 4px; }
.send-date-label > label { color: var(--muted); font-size: 13px; font-weight: 600; line-height: 18px; white-space: nowrap; }
.send-date .app-control, .send-date > .input { width: 168px; }
:root[data-theme=light] :is(.send-date-label > label, .send-filter-summary > span) { color: #4f5a6b; }

.send-results { overflow: hidden; }
.send-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 14px; line-height: 20px; }
.send-col-when { width: 156px; }
.send-col-who { width: 27%; }
.send-col-status { width: 184px; }
.send-col-toggle { width: 60px; }
.send-table th { padding: 12px 16px; border-bottom: 1px solid var(--co-line); color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .02em; line-height: 16px; text-align: left; text-transform: uppercase; }
.send-table td { height: 60px; padding: 0 16px; border-bottom: 1px solid var(--co-line); vertical-align: middle; }
.send-table tbody > tr.send-row:nth-last-child(2):not(.open) > td, .send-table tbody > tr.send-more:last-child > td { border-bottom: 0; }
.send-row { cursor: pointer; }
.send-row > td { transition: background-color .15s var(--co-ease); }
@media (hover: hover) { .send-row:hover > td { background-color: var(--co-tint); } }
/* El hover genérico de las tablas (tbody tr:hover, sin límite a ratón) no se aplica a estas filas: su hover va en las
   celdas y solo con ratón; así no se queda pegado al tocar ni borra la marca de la fila abierta en móvil. */
:root[data-theme] .send-table tbody tr.send-row:hover { background-color: transparent; }
/* Regla de las tablas con detalle desplegable (1.13.0, igual que Registro): la fila abierta conserva su fondo y solo el
   detalle va tintado; la marca de 3 px del acento recorre fila y detalle, pintada como fondo (una sombra interior deja
   costuras de 1 px en tablas escaladas). */
.send-row.open > td { border-bottom-color: transparent; }
.send-row.open > td:first-child, .send-more > td { background-image: linear-gradient(var(--primary), var(--primary)); background-size: 3px 100%; background-repeat: no-repeat; }
.send-when { color: var(--muted); font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.send-two { display: grid; min-width: 0; }
.send-two > * { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.send-two b { font-weight: 600; }
.send-two small { color: var(--muted); font-size: 12px; line-height: 16px; }
.send-test { color: var(--muted); font-weight: 400; }
.send-toggle-cell { text-align: right; }
:root[data-theme] .send-table td.send-toggle-cell { padding: 0 10px 0 0; }
.send-row .send-toggle-cell .icon { transition: transform .25s var(--co-ease); }
.send-row.open .send-toggle-cell .icon { --icon-hover: rotate(180deg) translateY(2px); transform: rotate(180deg); }
:root[data-theme] .send-toggle-cell .row-icon-action[aria-expanded=true] { background: transparent; color: inherit; }
.send-more[hidden] { display: none; }
.send-more > td { height: auto; padding: 18px 16px 20px 19px; background-color: var(--co-tint-strong); border-bottom: 1px solid var(--co-line); }
:root[data-theme=light] :is(.send-when, .send-two small, .send-table th, .send-facts dt, .send-track small, .send-test) { color: #4f5a6b; }

.send-detail { display: grid; gap: 18px; min-width: 0; }
.send-track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); margin: 0; padding: 4px 0 0; list-style: none; }
.send-track li { position: relative; min-width: 0; padding: 22px 16px 0 0; --st: var(--muted); }
.send-track li::before { content: ''; position: absolute; left: 0; top: 2px; width: 12px; height: 12px; border-radius: 50%; background: var(--st); box-shadow: 0 0 0 3px var(--co-tint-strong); }
.send-track li::after { content: ''; position: absolute; left: 18px; right: 6px; top: 7px; height: 2px; border-radius: 1px; background: var(--co-line); }
.send-track li:last-child::after { display: none; }
.send-track li.ok { --st: var(--green-700); }
.send-track li.warn { --st: var(--yellow-900); }
.send-track li.bad { --st: var(--red-700); }
.send-track li.info { --st: var(--primary); }
.send-track b { display: block; font-size: 14px; font-weight: 600; line-height: 20px; }
.send-track small { display: block; color: var(--muted); font-size: 12px; line-height: 16px; overflow-wrap: anywhere; }
.send-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 24px; margin: 0; }
.send-facts > div { min-width: 0; }
.send-facts dt { color: var(--muted); font-size: 12px; line-height: 16px; }
.send-facts dd { margin: 2px 0 0; overflow: hidden; font-size: 13px; line-height: 18px; text-overflow: ellipsis; white-space: nowrap; }
.send-facts .mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; }
/* Aperturas y spam (1.14.0, propuesta 3 «Icono junto al estado» de design/envios-aperturas.html): interruptor «Medir
   aperturas» en el bloque Envío, cinco cifras, ojo azul junto al estado con su burbuja y paso «Abierto» del recorrido. */
.mail-track { display: flex; align-items: center; gap: 8px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--co-line); }
.mail-track .mail-send-switch strong { font-size: 15px; }
.send-stats.mail-stats.five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 900px) { .send-stats.mail-stats.five { grid-template-columns: repeat(2, minmax(0, 1fr)); } .send-stats.mail-stats.five > :first-child { grid-column: 1 / -1; } }
.send-badges { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.send-track li.open { --st: var(--blue-500); }
:root[data-theme] .send-open-mark .info-trigger { color: var(--blue-500); }
.send-open-mark .info-trigger .icon { flex: 0 0 20px; width: 20px; height: 20px; }
.send-open-mark .icon::before, .send-open-mark .icon img { left: calc(var(--icon-left) * .8333); top: calc(var(--icon-top) * .8333); width: calc(var(--icon-width) * .8333); height: calc(var(--icon-height) * .8333); }
@supports (mask-image: url('/static/assets/omnica-icons/info.svg')) {
  .send-open-mark .icon img { visibility: hidden; }
  .send-open-mark .icon::before { content: ''; position: absolute; background: currentColor; mask-image: var(--icon-mask); mask-mode: alpha; mask-position: center; mask-size: 100% 100%; mask-repeat: no-repeat; }
}
/* Aviso tintado: el aviso del panel con su color según el estado (neutro, aplazado o error) y las acciones dentro. */
.send-notice { align-items: center; margin: 0; }
.send-notice > .icon { flex: none; }
.send-notice > p { flex: 1; padding: 0; font-weight: 600; }
.send-actions { display: flex; flex: none; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.send-notice-plain { display: flex; justify-content: flex-end; }

/* Editor y diseño */
.editor-page.editor-page-mail-template { max-width: none; }
.mail-editor { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 24px; align-items: start; }
.mail-col { display: grid; gap: 24px; min-width: 0; }
.mail-preview { position: sticky; top: calc(var(--header-height, 64px) + 16px); min-width: 0; }
.mail-preview .panel-head, .mail-code .panel-head, .mail-blocks .panel-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 12px; }
.mail-preview-tools { display: flex; flex-wrap: wrap; gap: 8px; }
.mail-preview-body { padding: 0 24px 24px; }
.mail-modebar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 24px; }
.mail-modebar .mail-seg button { min-height: 40px; padding: 0 16px; font-size: 14px; }
.mail-fields { display: grid; gap: 18px; }
.mail-field { min-width: 0; }
.mail-field .field-label { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.mail-label, .mail-field .field-label label { margin: 0; font-weight: 600; font-size: 14px; }
.mail-count { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.mail-count.over { color: var(--red-700); font-weight: 600; }
.mail-field .input { width: 100%; }
.mail-active { border-top: 0; }
.mail-active small { display: block; }
.input[aria-invalid=true] { border-color: var(--red-700) !important; }
.mail-blocks-list, .mail-block-body { display: grid; grid-template-columns: minmax(0, 1fr); }
.mail-blocks-notice { padding: 0 20px; }
.mail-block { border-top: 1px solid var(--co-line); }
.mail-block:first-child { border-top: 0; }
.mail-block-head { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 56px; padding: 10px 20px; border: 0; background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.mail-block-head:focus-visible { outline: 2px solid var(--blue-500); outline-offset: -2px; }
@media (hover: hover) { .mail-block-head:hover { background: var(--co-tint); } }
.mail-block.open > .mail-block-head { background: var(--co-tint-strong); box-shadow: inset 3px 0 0 var(--primary); }
.mail-bicon { display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 8px; background: var(--co-tint-strong); }
.mail-bicon .icon { transform: scale(.8); }
.mail-btext { flex: 1; min-width: 0; }
.mail-block-head b { display: block; font-size: 14px; }
.mail-block-head small { display: block; overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.mail-lock, .mail-chev { color: var(--muted); }
.mail-chev .icon { transition: transform .15s; }
.mail-block.open .mail-chev .icon { transform: rotate(180deg); }
.mail-dot-error { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--red-700); }
.mail-block-body { gap: 14px; padding: 16px 20px 18px 62px; background: var(--co-tint); }
.mail-block-body[hidden] { display: none; }
.mail-block-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.mail-mini { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.mail-mini button { min-height: 32px; padding: 0 10px; border: 1px solid var(--co-card-line); border-radius: 6px; background: var(--surface); color: var(--ink); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.mail-mini button:focus-visible { outline: 2px solid var(--blue-500); outline-offset: 1px; }
.mail-rows-edit { display: grid; gap: 10px; }
.mail-row-edit { display: grid; grid-template-columns: 44px minmax(0, .8fr) minmax(0, 1.2fr) auto; gap: 8px; align-items: start; }
.mail-row-edit > div { min-width: 0; }
.mail-iconpick { display: grid; place-items: center; width: 44px; height: 40px; border: 1px solid var(--co-field-line); border-radius: var(--co-radius-control); background: var(--co-field); color: var(--ink); cursor: pointer; }
.mail-iconpick:focus-visible { outline: 2px solid var(--blue-500); outline-offset: 1px; }
.mail-iconpick:disabled { cursor: default; opacity: .7; }
.mail-blocks-foot { display: flex; flex-wrap: wrap; gap: 10px; padding: 16px 20px; border-top: 1px solid var(--co-line); }
.mail-targets { display: grid; gap: 8px; }
.mail-target { display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 12px; border: 1px solid var(--co-card-line); border-radius: var(--co-radius-control); background: var(--surface); cursor: pointer; font-size: 14px; }
.mail-target:has(input:checked) { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); }
.mail-target input { margin: 0; }
.mail-inline-switch { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 14px; cursor: pointer; }
/* Interruptores fuera de .security-row (Envío, la lista de plantillas y el diseño): el mismo de Corporativo. */
:is(.mail-send-switch, .mail-state, .mail-inline-switch) input.switch { appearance: none; -webkit-appearance: none; flex: 0 0 38px; width: 38px; height: 22px; min-height: 22px; margin: 0; padding: 0; background: var(--grey-600); border: 1px solid var(--grey-600); border-radius: 999px; position: relative; cursor: pointer; }
:is(.mail-send-switch, .mail-state, .mail-inline-switch) input.switch::before { content: ''; position: absolute; width: 16px; height: 16px; top: 2px; left: 2px; background: #fff; border-radius: 50%; transform: none; mask: none; box-shadow: 0 1px 3px rgba(0, 0, 0, .3); transition: left .2s var(--co-ease); }
:is(.mail-send-switch, .mail-state, .mail-inline-switch) input.switch:checked { background: var(--primary); border-color: var(--primary); background-image: none; }
:is(.mail-send-switch, .mail-state, .mail-inline-switch) input.switch:checked::before { left: 18px; background: var(--on-primary); }
:root[data-theme=dark] :is(.mail-send-switch, .mail-state, .mail-inline-switch) input.switch:not(:checked) { background: #35363e; border-color: #4a4c55; }
:is(.mail-send-switch, .mail-state, .mail-inline-switch) input.switch:focus-visible { outline: 2px solid var(--blue-500); outline-offset: 2px; }
:is(.mail-send-switch, .mail-state, .mail-inline-switch) input.switch:disabled { opacity: .5; cursor: not-allowed; }
/* «Subir» usa el chevron oficial hacia abajo girado: el archivo no cambia. */
.icon.icon-up { transform: rotate(180deg); }
.mail-html-block { font-family: Consolas, 'Courier New', monospace !important; font-size: 13px !important; min-height: 120px; }
/* Menús del editor: iconos, añadir bloque, fragmentos, variables y sugerencias. */
:is(.mail-icon-menu, .mail-add-menu, .mail-varpick, .mail-suggest):popover-open { position: fixed; inset: auto; margin: 0; border: 1px solid var(--co-card-line); border-radius: var(--co-radius-menu); background: var(--co-pop); box-shadow: var(--co-pop-shadow); color: var(--ink); animation: co-pop-in .14s var(--co-ease); }
.mail-icon-menu:popover-open { width: 248px; padding: 10px; }
.mail-icon-grid { display: grid; grid-template-columns: repeat(5, 40px); gap: 6px; }
.mail-icon-grid button { display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 8px; background: transparent; color: var(--ink); cursor: pointer; }
.mail-icon-grid button[aria-pressed=true] { background: var(--primary); color: var(--on-primary); }
@media (hover: hover) { .mail-icon-grid button:hover:not([aria-pressed=true]) { background: var(--co-tint-strong); } }
.mail-icon-grid button:focus-visible { outline: 2px solid var(--blue-500); outline-offset: 1px; }
.mail-add-menu:popover-open { width: 260px; padding: 6px; }
.mail-add-menu button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 42px; padding: 0 12px; border: 0; border-radius: 8px; background: transparent; color: var(--ink); font: inherit; font-size: 14px; text-align: left; cursor: pointer; }
@media (hover: hover) { .mail-add-menu button:hover { background: var(--co-tint-strong); } }
.mail-add-menu button:focus-visible { outline: 2px solid var(--blue-500); outline-offset: -2px; }
.mail-add-menu small { display: block; color: var(--muted); font-size: 12px; }
.mail-add-menu code { font: 12px Consolas, monospace; color: var(--blue-500); }
.mail-varpick:popover-open { display: flex; flex-direction: column; width: 340px; max-height: min(460px, calc(100vh - 32px)); padding: 0; overflow: hidden; }
.mail-varpick-head { display: flex; align-items: center; justify-content: space-between; padding: 8px 8px 6px 16px; }
.mail-varpick .mail-search { flex: none; margin: 0 12px 8px; }
.mail-varpick-list { overflow: auto; padding: 0 6px 8px; }
.mail-vargroup p { margin: 8px 10px 4px; color: var(--muted); font-size: 12px; font-weight: 700; }
.mail-varitem { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 10px; align-items: center; width: 100%; min-height: 44px; padding: 6px 10px; border: 0; border-radius: 8px; background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
@media (hover: hover) { .mail-varitem:hover { background: var(--co-tint-strong); } }
.mail-varitem:focus-visible { outline: 2px solid var(--blue-500); outline-offset: -2px; }
.mail-varitem[hidden], .mail-vargroup[hidden] { display: none; }
.mail-varpick.sheet:popover-open { left: 0; right: 0; bottom: 0; top: auto; width: 100%; max-height: 72vh; border-radius: 16px 16px 0 0; }
.mail-varpick.sheet::backdrop { background: var(--co-backdrop); }
.mail-suggest:popover-open { width: 290px; max-height: 300px; overflow: auto; padding: 6px; }
.mail-suggest-head { margin: 4px 8px 6px; color: var(--muted); font-size: 12px; font-weight: 600; }
.mail-suggest-item { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 8px; align-items: center; min-height: 40px; padding: 6px 8px; border-radius: 8px; cursor: pointer; }
.mail-suggest-item.active { background: var(--co-tint-strong); box-shadow: inset 3px 0 0 var(--primary); }
:is(.mail-varitem, .mail-suggest-item) code { font: 12px Consolas, 'Courier New', monospace; color: var(--blue-500); overflow-wrap: anywhere; }
:is(.mail-varitem, .mail-suggest-item) b { display: block; font-size: 13px; font-weight: 600; }
:is(.mail-varitem, .mail-suggest-item) small { display: block; color: var(--muted); font-size: 12px; }
/* Variables en píldoras (variante D) */
.mail-field-tools { display: inline-flex; align-items: center; gap: 10px; }
.mail-varbtn { display: inline-flex; align-items: center; gap: 4px; min-height: 32px; padding: 0 12px 0 6px; border: 1px solid var(--co-card-line); border-radius: 999px; background: var(--surface); color: var(--ink); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.mail-varbtn[aria-expanded=true] { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); }
@media (hover: hover) { .mail-varbtn:hover { border-color: var(--co-field-hover); } }
.mail-varbtn:focus-visible { outline: 2px solid var(--blue-500); outline-offset: 2px; }
:root[data-theme] .mail-tokens { height: auto; min-height: 44px; padding: 9px 12px; line-height: 24px; white-space: pre-wrap; overflow-wrap: anywhere; cursor: text; }
:root[data-theme] .mail-tokens.area { min-height: 100px; }
:root[data-theme] .mail-tokens.readonly { cursor: default; background: var(--co-tint); }
:root[data-theme] .mail-tokens:focus { outline: none; border-color: var(--blue-500); box-shadow: 0 0 0 3px var(--co-focus-ring); }
:root[data-theme] .mail-row-edit .mail-tokens { min-height: 40px; padding: 7px 10px; }
.mail-pill { display: inline-block; margin: 0 1px; padding: 0 8px; border-radius: 999px; background: var(--blue-100); color: var(--blue-500); font-size: 13px; font-weight: 600; line-height: 22px; white-space: nowrap; vertical-align: 1px; }
:root[data-theme=dark] .mail-pill { background: #22304d; color: #a6c4ff; }
/* Código */
.mail-code-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 0 24px 12px; }
.mail-code-tools .grow { flex: 1; }
.mail-code-notice { margin: 0 24px 12px; }
.mail-code-notice .notice { margin: 0; }
.mail-code-editor { display: grid; grid-template-columns: 44px minmax(0, 1fr); grid-template-rows: 440px; margin: 0 24px; border: 1px solid var(--co-field-line); border-radius: var(--co-radius-control); background: var(--co-field); overflow: hidden; font: 13px/20px Consolas, 'Courier New', monospace; }
.mail-gutter { padding: 10px 8px 10px 0; text-align: right; color: var(--muted); background: var(--co-tint-strong); user-select: none; white-space: pre; overflow: hidden; }
.mail-code-area { position: relative; min-width: 0; }
.mail-code-area pre, .mail-code-area textarea { position: absolute; inset: 0; margin: 0; padding: 10px 12px; border: 0; font: inherit; white-space: pre; overflow: auto; tab-size: 2; }
.mail-code-area pre { color: var(--ink); pointer-events: none; }
:root[data-theme] .mail-code-area textarea { resize: none; height: auto; min-height: 0; border-radius: 0; background: transparent; color: transparent; caret-color: var(--ink); outline: none; box-shadow: none; }
.mail-code-area textarea::selection { background: color-mix(in srgb, var(--blue-500) 30%, transparent); color: transparent; }
.mail-code-editor:focus-within { border-color: var(--blue-500); box-shadow: 0 0 0 1px var(--blue-500); }
.mail-code-editor + .mail-help { margin: 8px 24px 0; }
.hl-tag, .hl-prop { color: #0b57d0; } .hl-attr, .hl-sel { color: #8a3ffc; } .hl-str { color: #0f7b3e; } .hl-com { color: #6d7889; font-style: italic; } .hl-var { color: #a14a00; font-weight: 700; }
:root[data-theme=dark] :is(.hl-tag, .hl-prop) { color: #8db0f8; } :root[data-theme=dark] :is(.hl-attr, .hl-sel) { color: #c7a6ff; } :root[data-theme=dark] .hl-str { color: #93dcb0; } :root[data-theme=dark] .hl-com { color: #8a8f99; } :root[data-theme=dark] .hl-var { color: #f3c77a; }
.mail-plain-wrap { padding: 0 24px; }
:root[data-theme] textarea.mail-plain { display: block; width: 100%; height: 440px; min-height: 440px; resize: vertical; padding: 10px 12px; font: 13px/20px Consolas, 'Courier New', monospace; white-space: pre-wrap; }
.mail-checks { list-style: none; display: grid; gap: 6px; margin: 16px 24px 24px; padding: 0; font-size: 13px; }
.mail-checks:empty { display: none; }
.mail-checks li { display: flex; gap: 8px; align-items: flex-start; }
.mail-checks li::before { flex: none; width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; }
.mail-checks .ok::before { content: '✓'; background: color-mix(in srgb, var(--green-700) 16%, transparent); color: var(--green-700); }
.mail-checks .warn::before { content: '!'; background: color-mix(in srgb, #d97a00 18%, transparent); color: #9a5a00; }
.mail-checks .bad::before { content: '×'; background: color-mix(in srgb, var(--red-700) 16%, transparent); color: var(--red-700); }
:root[data-theme=dark] .mail-checks .warn::before { color: #f3c77a; }
.mail-checks code, .mail-code-notice code { font: 12px Consolas, monospace; }
/* Vista previa y bandeja */
.mail-inbox { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 12px; margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--co-line); border-radius: 10px; background: var(--co-tint); }
.mail-inbox-avatar { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1px var(--co-line); }
.mail-inbox-avatar img { width: 24px; height: 24px; }
.mail-inbox-top { display: flex; justify-content: space-between; gap: 8px; font-size: 14px; }
.mail-inbox-top span { color: var(--muted); font-size: 12px; }
.mail-inbox-subject { margin-top: 2px; font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
.mail-inbox-pre { margin-top: 2px; color: var(--muted); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mail-frame { max-width: 640px; min-height: 200px; margin: 0 auto; overflow: hidden; border: 1px solid var(--co-line); border-radius: 10px; transition: max-width .2s var(--co-ease); }
.mail-frame.narrow { max-width: 360px; }
.mail-mobile-tabs { display: none; }
.mail-dirty { margin-right: auto; color: var(--muted); font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; gap: 8px; }
.mail-dirty::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #d97a00; }
.mail-dirty[hidden] { display: none; }
.editor-page-mail-template .editor-actions, .mail-stack > .editor-actions { margin-top: 0; }
/* Diseño común */
.mail-address { display: flex; align-items: stretch; }
:root[data-theme] .mail-address .input { flex: 1; min-width: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.mail-address span { display: inline-flex; align-items: center; padding: 0 12px; border: 1px solid var(--co-field-line); border-left: 0; border-radius: 0 var(--co-radius-control) var(--co-radius-control) 0; background: var(--co-tint-strong); color: var(--muted); font-size: 14px; white-space: nowrap; }
.mail-swatches { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.mail-swatch { width: 36px; height: 36px; border: 2px solid transparent; border-radius: 50%; background: var(--sw, #0068ff); cursor: pointer; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .12); }
.mail-swatch[aria-pressed=true] { border-color: var(--ink); box-shadow: inset 0 0 0 3px var(--surface); }
.mail-swatch:focus-visible { outline: 2px solid var(--blue-500); outline-offset: 2px; }
:root[data-theme=dark] .mail-swatch { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); }
:root[data-theme] .mail-hex { width: 120px; font-family: Consolas, monospace; }
.mail-contrast { font-size: 12px; font-weight: 600; }
.mail-contrast.ok { color: var(--green-700); } .mail-contrast.bad { color: var(--red-700); }
:root[data-theme=light] .mail-contrast.ok { color: var(--green-900); }

@media (max-width: 1100px) { .mail-editor { grid-template-columns: minmax(0, 1fr); } .mail-preview { position: static; } }
@media (max-width: 680px), (max-width: 900px) and (max-height: 500px) and (pointer: coarse) {
  .mail-send { grid-template-columns: minmax(0, 1fr); padding: 16px; }
  .mail-send-actions { justify-content: stretch; }
  .mail-send-actions .btn { flex: 1; justify-content: center; }
  .mail-subnav { display: flex; justify-self: stretch; } .mail-subnav a { flex: 1; justify-content: center; min-height: 44px; padding: 0 8px; }
  .mail-filters { flex-direction: column; align-items: stretch; }
  .mail-search { flex: 1 1 auto; }
  .mail-row { padding: 14px 16px; gap: 12px; }
  .mail-row-icon { width: 32px; height: 32px; }
  .mail-mobile-tabs { display: flex; margin-bottom: 16px; }
  .mail-mobile-tabs button { flex: 1; min-height: 44px; }
  .mail-editor[data-tab=content] .mail-preview, .mail-editor[data-tab=preview] .mail-col { display: none; }
  .mail-preview-body { padding: 0 16px 16px; }
  .mail-dirty { width: 100%; justify-content: center; margin: 0; }
  .mail-block-body { padding: 14px 16px 16px; }
  .mail-block-head { padding: 10px 16px; }
  .mail-row-edit { grid-template-columns: 44px minmax(0, 1fr) auto; }
  .mail-row-edit .mail-row-value { grid-column: 2 / 3; }
  .mail-code-editor { margin: 0 16px; grid-template-rows: 360px; }
  .mail-code-tools, .mail-plain-wrap { padding-left: 16px; padding-right: 16px; }
  :root[data-theme] textarea.mail-plain { height: 360px; min-height: 360px; }
  .mail-checks { margin: 14px 16px 16px; }
  .mail-code-notice { margin-left: 16px; margin-right: 16px; }
  .mail-modebar .mail-seg { display: flex; width: 100%; } .mail-modebar .mail-seg button { flex: 1; }
  .mail-varbtn { min-height: 32px; }
}
/* Envíos en móvil y horizontal táctil bajo: filtros plegados con su resumen y filas de dos líneas. */
@media (max-width: 680px), (max-width: 900px) and (max-height: 500px) and (pointer: coarse) {
  .send-stats.mail-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .send-stats .stat { padding: 12px 14px; }
  :root[data-theme] .send-stats .stat .label { flex-direction: row; align-items: center; gap: 8px; font-size: 12px; line-height: 16px; }
  .send-stats .stat-icon { width: 26px; height: 26px; }
  .send-stats .stat-icon .icon { transform: scale(.8); }
  :root[data-theme] .send-stats .stat .value { margin: 8px 0 2px; font-size: 20px; line-height: 26px; }
  .send-stats .stat .caption { font-size: 11px; line-height: 15px; }
  .send-filter-summary { display: flex; align-items: center; gap: 12px; padding: 12px 12px 12px 16px; }
  .send-filter-summary > span { flex: 1; min-width: 0; color: var(--muted); font-size: 13px; line-height: 18px; overflow-wrap: anywhere; }
  .send-filter-summary .btn { flex: none; }
  .send-filter-panel:not(.open) .send-filters { display: none; }
  .send-filter-panel.open .send-filter-summary { border-bottom: 1px solid var(--co-line); }
  .send-filter-row, .send-range { flex-direction: column; align-items: stretch; gap: 12px; }
  .send-filter-row .mail-search { flex: 1 1 auto; min-width: 0; }
  .send-range .mail-seg { display: flex; } .send-range .mail-seg button { flex: 1; }
  .send-dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .send-date { display: grid; gap: 6px; }
  .send-date .app-control, .send-date > .input { width: 100%; }

  .send-table, .send-table > tbody { display: block; }
  .send-table > colgroup { display: none; }
  .send-table > thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .send-table tr.send-row { display: grid; grid-template-columns: minmax(0, 1fr) auto 36px; grid-template-areas: "tpl status toggle" "who when toggle"; align-items: center; gap: 4px 10px; padding: 10px 6px 10px 14px; border-bottom: 1px solid var(--co-line); }
  .send-table tbody > tr.send-row:nth-last-child(2):not(.open) { border-bottom: 0; }
  .send-table tr.send-row > td { display: block; height: auto; padding: 0; border: 0; background: none; box-shadow: none; }
  :root[data-theme] .send-table tr.send-row.open { border-bottom-color: transparent; background-image: linear-gradient(var(--primary), var(--primary)); background-size: 3px 100%; background-repeat: no-repeat; }
  .send-table tr.send-row.open > td:first-child { background-image: none; }
  .send-tpl-cell { grid-area: tpl; min-width: 0; }
  .send-tpl-cell small { display: none; }
  .send-status-cell { grid-area: status; }
  .send-toggle-cell { grid-area: toggle; align-self: center; }
  :root[data-theme] .send-table td.send-toggle-cell { padding: 0; }
  .send-who-cell { grid-area: who; min-width: 0; }
  .send-who-cell b { color: var(--muted); font-size: 12px; font-weight: 400; line-height: 16px; }
  .send-who-cell small { display: none; }
  .send-table td.send-when { grid-area: when; font-size: 12px; line-height: 16px; text-align: right; }
  .send-table tr.send-more { display: block; }
  .send-more > td { display: block; padding: 14px 14px 18px 17px; }
  .send-detail { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .send-track { grid-auto-flow: row; grid-auto-rows: auto; gap: 0; }
  .send-track li { padding: 0 0 14px 24px; }
  .send-track li::before { top: 4px; }
  .send-track li::after { left: 5px; right: auto; top: 20px; bottom: 2px; width: 2px; height: auto; }
  .send-facts { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .send-actions { flex-direction: column; align-items: stretch; width: 100%; }
  .send-actions .btn { justify-content: center; width: 100%; }
  .send-notice { flex-wrap: wrap; align-items: flex-start; }
  .send-notice > p { flex: 1 1 calc(100% - 40px); }
}
@media (pointer: coarse) { .mail-varbtn, .mail-mini button, .mail-chipset button, .mail-seg button { min-height: 44px; } .mail-iconpick { height: 44px; } .send-actions .btn { min-height: 44px; } }
@media (prefers-reduced-motion: reduce) { .mail-frame, .mail-chev .icon, .mail-seg button { transition: none !important; } :is(.mail-icon-menu, .mail-add-menu, .mail-varpick, .mail-suggest):popover-open { animation: none !important; } }
