:root{
  --bg:#f4f7fb;
  --bg-soft:#eef3f8;
  --card:#ffffff;
  --line:#e6ecf2;
  --line-strong:#d9e2ec;
  --text:#172b4d;
  --muted:#6b7c93;
  --primary:#1155cc;
  --primary-hover:#0e47aa;
  --primary-soft:#e8f0ff;
  --success:#1f9d55;
  --danger:#c62828;
  --warning:#f59e0b;
  --shadow:0 10px 30px rgba(16,24,40,.08);
  --radius:16px;
  --radius-sm:12px;
}

*{box-sizing:border-box}

html,body{
  margin:0;
  padding:0;
}

body{
  font-family:"Segoe UI",Arial,sans-serif;
  background:linear-gradient(180deg,var(--bg) 0%,var(--bg-soft) 100%);
  color:var(--text);
  padding:24px;
}

h1,h2,h3{
  margin:0 0 12px;
  color:var(--text);
}

p{
  color:var(--muted);
}

a{
  color:inherit;
  text-decoration:none;
}

form{
  margin:0;
}

.wrap,
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

.wrap{
  max-width:460px;
  margin:8vh auto;
  padding:28px;
}

.wrap h2{
  font-size:28px;
  margin-bottom:8px;
}

.top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:18px;
}

.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:999px;
  background:var(--primary-soft);
  color:var(--primary);
  font-size:13px;
  font-weight:600;
}

.menu{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:14px 0 20px;
}

.filters,
.grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
  margin-bottom:18px;
}

input,
select,
textarea{
  width:100%;
  padding:12px 14px;
  border:1px solid var(--line-strong);
  border-radius:12px;
  background:#fff;
  color:var(--text);
  font-size:14px;
  outline:none;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

input:focus,
select:focus,
textarea:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 4px rgba(17,85,204,.12);
}

textarea{
  resize:vertical;
  min-height:110px;
}

button,
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:11px 16px;
  border:0;
  border-radius:12px;
  background:var(--primary);
  color:#fff;
  font-weight:600;
  font-size:14px;
  cursor:pointer;
  transition:transform .15s ease, background .15s ease, box-shadow .15s ease;
  box-shadow:0 8px 18px rgba(17,85,204,.18);
}

button:hover,
.btn:hover{
  background:var(--primary-hover);
  transform:translateY(-1px);
}

button:disabled,
.btn:disabled{
  opacity:.65;
  cursor:not-allowed;
  transform:none;
}

.btn-secondary{
  background:#0f172a;
  box-shadow:0 8px 18px rgba(15,23,42,.18);
}

.btn-secondary:hover{
  background:#111827;
}

.err{
  margin-bottom:14px;
  padding:12px 14px;
  border:1px solid #ffd5d5;
  border-radius:12px;
  background:#fff2f2;
  color:var(--danger);
  font-size:14px;
}

.notice{
  margin-bottom:14px;
  padding:12px 14px;
  border:1px solid #d7f3df;
  border-radius:12px;
  background:#f2fff6;
  color:var(--success);
  font-size:14px;
}

.table-wrap{
  overflow:auto;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
}

.table-wrap table{
  min-width:1100px;
  margin:0;
  box-shadow:none;
}

th,td{
  padding:12px 14px;
  border-bottom:1px solid var(--line);
  font-size:14px;
  vertical-align:top;
}

thead th{
  background:#f8fafc;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:12px;
  font-weight:700;
}

tbody tr:nth-child(even){
  background:#fbfdff;
}

tbody tr:hover{
  background:#f5f9ff;
}

tbody tr:last-child td,
tfoot tr:last-child td{
  border-bottom:0;
}

.actions-inline{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}

.kpi{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:12px;
  margin:18px 0;
}

.kpi .card{
  padding:16px;
}

.kpi .label{
  color:var(--muted);
  font-size:13px;
  margin-bottom:6px;
}

.kpi .value{
  color:var(--text);
  font-size:24px;
  font-weight:700;
}

.page-title{
  margin-bottom:6px;
}

.subtle{
  color:var(--muted);
  font-size:14px;
}

.section-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:18px;
  margin-bottom:18px;
}

.section-title{
  margin:0 0 14px;
}

.readonly-note{
  background:#f8fafc;
  border:1px dashed #cbd5e1;
}

.user-admin-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.user-admin-grid label,
.edit-user-form label{
  display:block;
  margin-bottom:6px;
  font-weight:600;
  color:var(--muted);
  font-size:13px;
}

.user-admin-permissions,
.user-admin-actions{
  grid-column:1 / -1;
}

.perm-title{
  display:block;
  margin-bottom:10px;
  font-weight:700;
}

.perm-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.perm-grid.compact{
  margin:10px 0;
}

.perm-card{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f8fafc;
  cursor:pointer;
  font-weight:600;
}

.perm-card input{
  width:auto;
  margin-top:2px;
}

.role-pill{
  display:inline-flex;
  padding:5px 10px;
  border-radius:999px;
  background:var(--primary-soft);
  color:var(--primary);
  font-weight:700;
  font-size:12px;
}

.perm-chip-wrap{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.perm-chip{
  display:inline-flex;
  padding:5px 9px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
}

.perm-on{
  background:#ecfdf3;
  color:#067647;
}

.perm-off{
  background:#fff2f2;
  color:#b91c1c;
}

.edit-user-box summary{
  list-style:none;
}

.edit-user-box summary::-webkit-details-marker{
  display:none;
}

.edit-user-form{
  display:grid;
  gap:10px;
  margin-top:12px;
  min-width:320px;
}

.readonly-box{
  width:100%;
  min-height:46px;
  padding:12px 14px;
  border:1px solid var(--line-strong);
  border-radius:12px;
  background:#f8fafc;
  color:var(--text);
  font-size:14px;
  display:flex;
  align-items:center;
}

.readonly-box.multiline{
  min-height:90px;
  align-items:flex-start;
  white-space:normal;
  line-height:1.5;
}

.detail-item-full{
  grid-column:1 / -1;
}

.section-block-title{
  padding:10px 12px;
  border-radius:10px;
  display:inline-block;
  color:#0f172a;
  font-weight:700;
}

.block-ingresos{
  background:#dff7df;
  color:#166534;
}

.block-proveedor{
  background:#ffe3dc;
  color:#9a3412;
}

.block-consignaciones{
  background:#ffe3dc;
  color:#9a3412;
}

.block-transferencias{
  background:#ffe3dc;
  color:#9a3412;
}

.block-gastos{
  background:#ffd6cc;
  color:#991b1b;
}

.block-efectivo{
  background:#dff7df;
  color:#166534;
}

.block-pendientes{
  background:#ffd6cc;
  color:#991b1b;
}

.block-otros{
  background:#eef4ff;
  color:#0e47aa;
}

@media (max-width: 860px){
  body{
    padding:16px;
  }

  .top{
    flex-direction:column;
    align-items:stretch;
  }

  .wrap{
    margin:24px auto;
    padding:22px;
  }

  .filters,
  .grid,
  .user-admin-grid,
  .perm-grid{
    grid-template-columns:1fr;
  }

  button,
  .btn{
    width:100%;
  }

  .menu .btn{
    width:auto;
  }
}

.money-edit{
  text-align:right;
}

/* ===== Colores del formato original de arqueos ===== */

/* Verde fuerte: títulos principales de ingresos y efectivo */
.thverdeoscuro{
  background:#66F538 !important;
  color:#0b2e13 !important;
}

/* Verde claro: columnas internas de ingresos y efectivo */
.thverde{
  background:#CDFCCA !important;
  color:#0f3d1f !important;
}

/* Rojo/salmón fuerte: títulos generales de egresos y pendientes */
.egresoscolor{
  background:#FF6B4F !important;
  color:#ffffff !important;
}

/* Salmón claro: subencabezados y columnas de egresos */
.thazul{
  background:#FFC4B5 !important;
  color:#5a1f12 !important;
}

/* Encabezados neutros tipo secciones */
.section{
  background:#a2c4c9 !important;
  color:#0f172a !important;
  font-weight:700;
}

/* Totales */
.tfoot{
  background:#f3f3f3 !important;
  font-weight:700;
}

/* Diferencia */
.diff{
  background:#f4cccc !important;
  color:#a00000 !important;
  font-weight:700;
}

/* ===== Forzar colores del formato arqueo sobre celdas reales ===== */

#mainForm .thverdeoscuro,
#mainForm .thverdeoscuro th,
#mainForm .thverdeoscuro td{
  background:#66F538 !important;
  color:#0b2e13 !important;
}

#mainForm .thverde,
#mainForm .thverde th,
#mainForm .thverde td{
  background:#CDFCCA !important;
  color:#0f3d1f !important;
}

#mainForm .egresoscolor,
#mainForm .egresoscolor th,
#mainForm .egresoscolor td{
  background:#FF6B4F !important;
  color:#ffffff !important;
}

#mainForm .thazul,
#mainForm .thazul th,
#mainForm .thazul td{
  background:#FFC4B5 !important;
  color:#5a1f12 !important;
}

#mainForm .section,
#mainForm .section th,
#mainForm .section td{
  background:#a2c4c9 !important;
  color:#0f172a !important;
  font-weight:700;
}

#mainForm .tfoot,
#mainForm .tfoot th,
#mainForm .tfoot td{
  background:#f3f3f3 !important;
  color:#172b4d !important;
  font-weight:700;
}

#mainForm .diff,
#mainForm .diff th,
#mainForm .diff td{
  background:#f4cccc !important;
  color:#a00000 !important;
  font-weight:700;
}

.status-pill{
  display:inline-flex;
  padding:5px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
}
.status-open{
  background:#ecfdf3;
  color:#067647;
}
.status-sent{
  background:#eff6ff;
  color:#1d4ed8;
}

/* ===== Planillas módulo profesional ===== */
.plan-shell{
  max-width: 1440px;
  margin: 0 auto;
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

.plan-shell-header{
  margin-bottom: 18px;
}

.plan-hero{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:22px 24px;
  border-radius:24px;
  background:linear-gradient(135deg,#ffffff 0%,#f8fbff 100%);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}

.plan-kicker{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:#eaf2ff;
  color:var(--primary);
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin-bottom:10px;
}

.plan-title{
  margin:0 0 8px;
  font-size:32px;
  line-height:1.1;
}

.plan-subtitle{
  margin:0;
  color:var(--muted);
  font-size:15px;
  font-weight:500;
}

.plan-hero-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.plan-shell-nav{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}

.plan-nav-form{
  margin:0;
}

.plan-nav-btn{
  appearance:none;
  border:1px solid var(--line-strong);
  background:#fff;
  color:var(--text);
  border-radius:14px;
  padding:12px 18px;
  font-weight:700;
  cursor:pointer;
  transition:all .18s ease;
  box-shadow:0 4px 12px rgba(15,23,42,.04);
}

.plan-nav-btn:hover{
  border-color:var(--primary);
  color:var(--primary);
  transform:translateY(-1px);
}

.plan-nav-btn.is-active{
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-hover) 100%);
  color:#fff;
  border-color:transparent;
  box-shadow:0 10px 24px rgba(17,85,204,.24);
}

.plan-toolbar-card{
  padding:20px 22px;
  border-radius:20px;
}

.plan-toolbar-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  margin-bottom:16px;
}

.plan-block-title{
  margin:0 0 6px;
  font-size:22px;
}

.plan-block-subtitle{
  margin:0;
  color:var(--muted);
  font-size:14px;
}

.plan-sheet-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:var(--shadow);
  overflow:auto;
}

.plan-sheet-card table{
  border-radius:0;
  border:0;
  box-shadow:none;
}

.sent-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:14px;
}

.sent-card{
  margin:0;
}

.sent-card-btn{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  text-align:left;
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);
  padding:16px;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(15,23,42,.05);
  transition:all .18s ease;
}

.sent-card-btn:hover{
  border-color:var(--primary);
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(17,85,204,.12);
}

.sent-card-btn.is-active{
  border-color:var(--primary);
  background:#eef4ff;
  box-shadow:0 12px 28px rgba(17,85,204,.14);
}

.sent-card-btn strong{
  font-size:16px;
  color:var(--text);
}

.sent-card-btn span{
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}

.plan-empty-state{
  padding:18px;
  border:1px dashed var(--line-strong);
  border-radius:16px;
  background:#f8fafc;
  color:var(--muted);
  font-weight:600;
}

.back-open-form{
  display:flex;
  justify-content:flex-start;
}

@media (max-width: 860px){
  .plan-hero{
    flex-direction:column;
    align-items:flex-start;
  }

  .plan-hero-actions{
    width:100%;
  }

  .plan-hero-actions .btn{
    width:100%;
  }

  .plan-shell-nav{
    display:grid;
    grid-template-columns:1fr;
  }

  .plan-nav-form,
  .plan-nav-btn{
    width:100%;
  }

  .plan-title{
    font-size:26px;
  }
}

/* ===== Planilla: colores corporativos ingreso / egreso ===== */
:root{
  --plan-ing-900:#0b6b3a;
  --plan-ing-700:#15803d;
  --plan-ing-100:#eaf7ef;

  --plan-egr-900:#9f1239;
  --plan-egr-700:#be123c;
  --plan-egr-100:#fdecef;

  --plan-white:#ffffff;
}

/* Base de la hoja */
.plan-sheet-card table{
  border-collapse:separate;
  border-spacing:0;
}

.plan-sheet-card td,
.plan-sheet-card th{
  border-color:#d9e2ec !important;
}

.plan-sheet-card .money{
  font-weight:700;
}

.plan-sheet-card td.money[colspan="2"]{
  text-align:center !important;
  vertical-align:middle !important;
}

.plan-sheet-card .center{
  text-align:center;
}

/* ===== INGRESOS ===== */
.plan-sheet-card td.sec-verde-f,
.plan-sheet-card tr.sec-verde-f > td{
  background:#0b6b3a !important;
  background-image:none !important;
  color:#ffffff !important;
  font-weight:800 !important;
  text-align:center !important;
  border-color:#09552f !important;
}

.plan-sheet-card td.sec-verde,
.plan-sheet-card tr.sec-verde > td{
  background:#eaf7ef !important;
  background-image:none !important;
  color:#0b6b3a !important;
  font-weight:700 !important;
  text-align:center !important;
  border-color:#b9dfc5 !important;
}

/* ===== EGRESOS ===== */
.plan-sheet-card td.sec-rojo,
.plan-sheet-card tr.sec-rojo > td{
  background:#9f1239 !important;
  background-image:none !important;
  color:#ffffff !important;
  font-weight:800 !important;
  text-align:center !important;
  border-color:#881337 !important;
}

.plan-sheet-card td.sec-rojo-f,
.plan-sheet-card tr.sec-rojo-f > td{
  background:#fdecef !important;
  background-image:none !important;
  color:#9f1239 !important;
  font-weight:700 !important;
  text-align:center !important;
  border-color:#f3c2cf !important;
}

/* TOTAL EGRESO */
.plan-sheet-card td.sec-naranja,
.plan-sheet-card tr.sec-naranja > td{
  background:#9f1239 !important;
  background-image:none !important;
  color:#ffffff !important;
  font-weight:800 !important;
  border-color:#881337 !important;
}

/* Heredar color correctamente */
.plan-sheet-card td.sec-verde-f *,
.plan-sheet-card tr.sec-verde-f > td *,
.plan-sheet-card td.sec-verde *,
.plan-sheet-card tr.sec-verde > td *,
.plan-sheet-card td.sec-rojo *,
.plan-sheet-card tr.sec-rojo > td *,
.plan-sheet-card td.sec-rojo-f *,
.plan-sheet-card tr.sec-rojo-f > td *,
.plan-sheet-card td.sec-naranja *,
.plan-sheet-card tr.sec-naranja > td *{
  color:inherit !important;
}

/* Filas vacías */
.plan-sheet-card tr td.center{
  background:#fbfcfe;
  color:#64748b;
}

/* Impresión / PDF */
.plan-sheet-card td.sec-verde-f,
.plan-sheet-card tr.sec-verde-f > td,
.plan-sheet-card td.sec-verde,
.plan-sheet-card tr.sec-verde > td,
.plan-sheet-card td.sec-rojo,
.plan-sheet-card tr.sec-rojo > td,
.plan-sheet-card td.sec-rojo-f,
.plan-sheet-card tr.sec-rojo-f > td,
.plan-sheet-card td.sec-naranja,
.plan-sheet-card tr.sec-naranja > td{
  -webkit-print-color-adjust:exact;
  print-color-adjust:exact;
}

.plan-print-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.plan-send-card{
  margin-bottom:22px;
  padding:26px;
  border-radius:24px;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  border:1px solid #dbe5f0;
  box-shadow:0 14px 34px rgba(15,23,42,.10);
}

.plan-send-card__head{
  margin-bottom:18px;
  padding-bottom:14px;
  border-bottom:1px solid #e6ecf2;
}

.plan-send-card__form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  align-items:end;
}

.plan-send-card__field{
  display:flex;
  flex-direction:column;
}

.plan-send-card__field label{
  display:block;
  margin-bottom:8px;
  font-weight:700;
  color:var(--text);
  font-size:14px;
}

.plan-send-card__actions{
  grid-column:1 / -1;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  padding-top:6px;
}

.plan-send-card__head{
  margin-bottom:18px;
}

.plan-send-card__form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  align-items:end;
}

.plan-send-card__field label{
  display:block;
  margin-bottom:8px;
  font-weight:700;
  color:var(--text);
}

.plan-send-card__actions{
  grid-column:1 / -1;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}

@media (max-width: 860px){
  .plan-send-card__form{
    grid-template-columns:1fr;
  }

  .plan-send-card__actions{
    flex-direction:column;
    align-items:stretch;
  }

  .plan-send-card__actions .btn{
    width:100%;
  }
}

.plan-block-title{
  margin:0 0 6px;
  font-size:24px;
  color:#0f2f63;
}

.plan-block-subtitle{
  margin:0;
  color:#5f7493;
  font-size:14px;
  line-height:1.5;
}


.plan-doc-top td{
  background:#fff !important;
  color:#111827 !important;
  border-color:#9ca3af !important;
}

.plan-doc-logo-cell{
  background:#fff !important;
  text-align:center !important;
  vertical-align:middle !important;
  padding:6px 8px !important;
  width:170px !important;
  min-width:170px !important;
  max-width:170px !important;
  overflow:hidden !important;
}

.plan-doc-logo{
  display:block !important;
  margin:0 auto !important;
  width:150px !important;
  min-width:150px !important;
  max-width:150px !important;
  height:auto !important;
  max-height:70px !important;
  object-fit:contain !important;
}

.plan-doc-title{
  text-align:center;
  font-weight:700;
  font-size:16px;
  letter-spacing:.02em;
  background:#fff !important;
}

.plan-doc-meta{
  text-align:left;
  font-size:14px;
  white-space:nowrap;
  background:#fff !important;
}

.plan-doc-top{
  height:auto !important;
}

.plan-doc-top td{
  vertical-align:middle !important;
}

.plan-sheet-card table{
  table-layout:fixed !important;
}

.plan-doc-gap{
  height:12px;
  background:#fff !important;
  border-top:0 !important;
  border-bottom:0 !important;
}

@media print{
  .plan-doc-logo{
  display:block;
  margin:0 auto;
  width:140px !important;
  height:70px !important;
  max-width:140px !important;
  max-height:70px !important;
  object-fit:contain;
}

  .plan-doc-title{
    font-size:12px !important;
  }

  .plan-doc-meta{
    font-size:10px !important;
  }

  .plan-doc-logo-cell{
    padding:6px 8px !important;
  }

  .plan-doc-gap{
    height:6px !important;
  }
}

.plan-sign-box{
  padding:20px 24px 26px;
  border-top:1px solid var(--line);
  background:#fff;
}

.plan-sign-title{
  font-size:15px;
  font-weight:800;
  color:#0f2f63;
  margin-bottom:14px;
}

.plan-sign-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-bottom:26px;
}

.plan-sign-item{
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fbff;
}

.plan-sign-item span{
  display:block;
  font-size:12px;
  color:var(--muted);
  margin-bottom:6px;
}

.plan-sign-item strong{
  display:block;
  font-size:15px;
  color:var(--text);
  font-weight:700;
}

.plan-sign-line{
  width:340px;
  max-width:100%;
  margin:0 auto 8px;
  border-top:1.5px solid #172b4d;
}

.plan-sign-caption{
  text-align:center;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}

.trabajador-lookup-ok{
  border-color:#86efac !important;
  background:#f0fdf4 !important;
}

.trabajador-lookup-error{
  border-color:#fecaca !important;
  background:#fef2f2 !important;
}

@media (max-width: 860px){
  .plan-sign-grid{
    grid-template-columns:1fr;
  }
}

@media print{
  .plan-sign-box{
    padding:12px 10px 18px !important;
  }

  .plan-sign-item{
    padding:8px 10px !important;
  }

  .plan-sign-title,
  .plan-sign-caption,
  .plan-sign-item span,
  .plan-sign-item strong{
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
}

/* ===== Corrección final doble firma planilla ===== */
.plan-sign-box-dual .plan-sign-caption{
  text-align:inherit !important;
}

.plan-sign-left .plan-sign-title,
.plan-sign-left .plan-sign-info,
.plan-sign-left .plan-sign-caption{
  text-align:left !important;
}

.plan-sign-right .plan-sign-title,
.plan-sign-right .plan-sign-info,
.plan-sign-right .plan-sign-caption{
  text-align:right !important;
}

.plan-sign-left .plan-sign-line{
  margin-left:0 !important;
  margin-right:auto !important;
}

.plan-sign-right .plan-sign-line{
  margin-left:auto !important;
  margin-right:0 !important;
}

@media print{
  .plan-sign-left .plan-sign-title,
  .plan-sign-left .plan-sign-info,
  .plan-sign-left .plan-sign-caption{
    text-align:left !important;
  }

  .plan-sign-right .plan-sign-title,
  .plan-sign-right .plan-sign-info,
  .plan-sign-right .plan-sign-caption{
    text-align:right !important;
  }
}

/* ===== Ajuste final: firmas abajo y datos alineados ===== */

.plan-sign-box-dual{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:40px !important;
  padding:34px 42px 28px !important;
  border-top:1px solid var(--line) !important;
  background:#fff !important;
}

.plan-sign-col{
  min-height:190px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-end !important;
}

.plan-sign-left{
  text-align:left !important;
}

.plan-sign-right{
  text-align:right !important;
}

/* Títulos */
.plan-sign-left .plan-sign-title{
  text-align:left !important;
}

.plan-sign-right .plan-sign-title{
  text-align:right !important;
}

/* Datos de ambas firmas */
.plan-sign-info{
  font-size:14px !important;
  line-height:1.5 !important;
  margin-bottom:22px !important;
  color:#172b4d !important;
}

/* Datos de quien envía: izquierda */
.plan-sign-left .plan-sign-info{
  text-align:left !important;
  width:340px !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:auto !important;
}

/* Datos de quien recibe: columna derecha, pero texto hacia la izquierda */
.plan-sign-right .plan-sign-info{
  text-align:left !important;
  width:340px !important;
  max-width:100% !important;
  margin-left:auto !important;
  margin-right:0 !important;
}

/* Líneas */
.plan-sign-line{
  width:340px !important;
  max-width:100% !important;
  border-top:1.8px solid #172b4d !important;
  margin-bottom:8px !important;
}

.plan-sign-left .plan-sign-line{
  margin-left:0 !important;
  margin-right:auto !important;
}

.plan-sign-right .plan-sign-line{
  margin-left:auto !important;
  margin-right:0 !important;
}

/* Textos debajo de la línea */
.plan-sign-left .plan-sign-caption{
  text-align:left !important;
}

.plan-sign-right .plan-sign-caption{
  text-align:right !important;
}

/* Móvil */
@media (max-width: 860px){
  .plan-sign-box-dual{
    grid-template-columns:1fr !important;
    gap:24px !important;
    padding:24px !important;
  }

  .plan-sign-right,
  .plan-sign-right .plan-sign-title,
  .plan-sign-right .plan-sign-caption{
    text-align:left !important;
  }

  .plan-sign-right .plan-sign-info,
  .plan-sign-right .plan-sign-line{
    margin-left:0 !important;
    margin-right:auto !important;
  }
}

/* Impresión */
@media print{
  .plan-sign-box-dual{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:24px !important;
    padding:16px 14px 18px !important;
    page-break-inside:avoid !important;
    break-inside:avoid !important;
  }

  .plan-sign-col{
    min-height:115px !important;
    justify-content:flex-end !important;
  }

  .plan-sign-title{
    font-size:9px !important;
    margin-bottom:8px !important;
  }

  .plan-sign-info{
    font-size:8px !important;
    line-height:1.25 !important;
    margin-bottom:16px !important;
  }

  .plan-sign-line{
    width:90% !important;
  }

  .plan-sign-caption{
    font-size:8px !important;
  }

  .plan-sign-right .plan-sign-info{
    text-align:left !important;
    margin-left:auto !important;
    margin-right:0 !important;
  }
}

/* ===== Impresión limpia para Carta / Oficio ===== */
@media print{
  body.print-legal .plan-sheet-card table{
    font-size:7.2px !important;
  }

  body.print-legal .plan-sheet-card th,
  body.print-legal .plan-sheet-card td{
    padding:1.4px 3px !important;
    line-height:.95 !important;
  }

  body.print-legal .plan-doc-logo{
    width:110px !important;
    min-width:110px !important;
    max-width:110px !important;
    max-height:54px !important;
  }

  body.print-legal .plan-doc-logo-cell{
    width:130px !important;
    min-width:130px !important;
    max-width:130px !important;
    padding:3px 5px !important;
  }

  body.print-legal .plan-doc-title{
    font-size:9px !important;
    line-height:1 !important;
  }

  body.print-legal .plan-doc-meta{
    font-size:7px !important;
    line-height:1 !important;
  }

  body.print-legal .plan-doc-gap{
    height:3px !important;
  }

  body.print-legal .plan-sign-box-dual{
    padding:8px 10px 10px !important;
    gap:14px !important;
  }

  body.print-legal .plan-sign-col{
    min-height:82px !important;
  }

  body.print-legal .plan-sign-title{
    font-size:7.5px !important;
    margin-bottom:5px !important;
  }

  body.print-legal .plan-sign-info{
    font-size:7px !important;
    line-height:1.15 !important;
    margin-bottom:12px !important;
  }

  body.print-legal .plan-sign-caption{
    font-size:7px !important;
  }

  body.print-legal .plan-sign-line{
    width:92% !important;
  }

  body.print-legal.print-landscape .plan-sheet-card{
    transform:none !important;
    zoom:.92;
  }

  body.print-legal.print-portrait .plan-sheet-card{
    transform:none !important;
    zoom:.82;
  }
}

/* ===== Ajuste visual final módulo planillas ===== */
.toolbar-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:var(--shadow);
  margin-bottom:18px;
}

.plan-toolbar-card{
  padding:22px 24px;
}

.plan-shell > .toolbar-card,
.plan-shell > .section-card,
.plan-shell > .plan-sheet-card{
  width:100%;
}

.plan-sheet-card{
  margin-top:18px;
}

.sent-grid{
  margin-top:14px;
}

@media (max-width: 860px){
  .plan-toolbar-card{
    padding:18px;
  }
}


/* ===== Ajuste columnas planilla general ===== */
.plan-main-table{
  table-layout:fixed !important;
}

/* Más ancho para FECHA */
.plan-main-table .plan-col-fecha{
  width:12% !important;
}

/* Más ancho para PREFIJO / N. COMPROBANTE */
.plan-main-table .plan-col-comprobante{
  width:16% !important;
}

/* Columnas centrales */
.plan-main-table .plan-col-beneficiario-a{
  width:13% !important;
}

.plan-main-table .plan-col-beneficiario-b{
  width:13% !important;
}

.plan-main-table .plan-col-concepto{
  width:14% !important;
}

.plan-main-table .plan-col-observacion-a{
  width:12% !important;
}

.plan-main-table .plan-col-observacion-b{
  width:12% !important;
}

/* Reducir columna VALOR */
.plan-main-table .plan-col-valor{
  width:8% !important;
}

/* Todos los TOTAL alineados a la izquierda */
.plan-sheet-card .plan-total-label{
  text-align:left !important;
  padding-left:14px !important;
  font-weight:800 !important;
}

/* Valores centrados en columna reducida */
.plan-sheet-card .plan-value-cell{
  text-align:center !important;
  white-space:nowrap !important;
  font-weight:800 !important;
}

/* Evitar corte feo en fecha y comprobante */
.plan-main-table td:nth-child(1),
.plan-main-table td:nth-child(2){
  word-break:normal !important;
  overflow-wrap:normal !important;
}

/* Forzar que TOTAL gane sobre colores de sección */
.plan-sheet-card tr.sec-verde > td.plan-total-label,
.plan-sheet-card tr.sec-rojo-f > td.plan-total-label,
.plan-sheet-card tr.sec-naranja > td.plan-total-label{
  text-align:left !important;
}

/* Impresión */
@media print{
  .plan-main-table .plan-col-fecha{
    width:12% !important;
  }

  .plan-main-table .plan-col-comprobante{
    width:16% !important;
  }

  .plan-main-table .plan-col-valor{
    width:8% !important;
  }

  .plan-sheet-card .plan-total-label{
    text-align:left !important;
    padding-left:3px !important;
  }

  .plan-sheet-card .plan-value-cell{
    text-align:center !important;
    white-space:nowrap !important;
  }

  .plan-sheet-card tr.sec-verde > td.plan-total-label,
  .plan-sheet-card tr.sec-rojo-f > td.plan-total-label,
  .plan-sheet-card tr.sec-naranja > td.plan-total-label{
    text-align:left !important;
  }
}

/* ===== Ajuste definitivo: columnas centradas y totales a la derecha ===== */

/* Centrar encabezados y contenido de todas las columnas */
.plan-sheet-card table.plan-main-table th,
.plan-sheet-card table.plan-main-table td{
  text-align:center !important;
  vertical-align:middle !important;
}

/* Alinear las etiquetas de TOTAL y resúmenes a la derecha */
.plan-sheet-card table.plan-main-table tr > td.plan-total-label{
  text-align:right !important;
  padding-left:4px !important;
  padding-right:14px !important;
  font-weight:800 !important;
}

/* Mantener los valores monetarios centrados */
.plan-sheet-card table.plan-main-table tr > td.plan-value-cell{
  text-align:center !important;
  vertical-align:middle !important;
  white-space:nowrap !important;
  font-weight:800 !important;
}

/* Conservar correctamente el encabezado superior del documento */
.plan-sheet-card table.plan-main-table .plan-doc-logo-cell,
.plan-sheet-card table.plan-main-table .plan-doc-title{
  text-align:center !important;
}

.plan-sheet-card table.plan-main-table .plan-doc-meta{
  text-align:left !important;
}

/* Mantener fecha y comprobante centrados y sin cortes incorrectos */
.plan-sheet-card table.plan-main-table td:nth-child(1),
.plan-sheet-card table.plan-main-table td:nth-child(2){
  text-align:center !important;
  vertical-align:middle !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}

/* Impresión y PDF */
@media print{
  .plan-sheet-card table.plan-main-table th,
  .plan-sheet-card table.plan-main-table td{
    text-align:center !important;
    vertical-align:middle !important;
  }

  .plan-sheet-card table.plan-main-table tr > td.plan-total-label{
    text-align:right !important;
    padding-left:2px !important;
    padding-right:4px !important;
  }

  .plan-sheet-card table.plan-main-table tr > td.plan-value-cell{
    text-align:center !important;
    white-space:nowrap !important;
  }

  .plan-sheet-card table.plan-main-table .plan-doc-logo-cell,
  .plan-sheet-card table.plan-main-table .plan-doc-title{
    text-align:center !important;
  }

  .plan-sheet-card table.plan-main-table .plan-doc-meta{
    text-align:left !important;
  }
}


/* ===== Metadatos del encabezado alineados a la derecha ===== */
.plan-sheet-card table.plan-main-table td.plan-doc-meta{
  text-align:right !important;
  padding-left:6px !important;
  padding-right:18px !important;
  vertical-align:middle !important;
  white-space:nowrap !important;
}

/* Impresión y PDF */
@media print{
  .plan-sheet-card table.plan-main-table td.plan-doc-meta{
    text-align:right !important;
    padding-left:2px !important;
    padding-right:5px !important;
    white-space:nowrap !important;
  }
}

/* =====================================================================
   PLANILLA GENERAL — PALETA CORPORATIVA PROFESIONAL
   Este bloque debe permanecer al final del archivo para sobrescribir
   los estilos anteriores sin alterar la lógica ni la estructura.
   ===================================================================== */
:root{
  --plan-corp-navy:#17365d;
  --plan-corp-navy-dark:#102a43;
  --plan-corp-teal:#176b5b;
  --plan-corp-teal-soft:#e8f4f1;
  --plan-corp-wine:#8b2f4b;
  --plan-corp-wine-soft:#f8ecef;
  --plan-corp-slate:#475569;
  --plan-corp-slate-soft:#f1f5f9;
  --plan-corp-border:#cbd5e1;
  --plan-corp-amber:#8a5a00;
  --plan-corp-amber-soft:#fff7df;
}

/* Contenedor y tabla */
.plan-sheet-card{
  border:1px solid var(--plan-corp-border) !important;
  border-radius:18px !important;
  box-shadow:0 18px 45px rgba(15,42,67,.12) !important;
  background:#ffffff !important;
}

.plan-sheet-card table.plan-main-table{
  background:#ffffff !important;
  color:#1e293b !important;
}

.plan-sheet-card table.plan-main-table td,
.plan-sheet-card table.plan-main-table th{
  border-color:#d5dde7 !important;
}

/* Encabezado institucional */
.plan-sheet-card table.plan-main-table .plan-doc-top > td{
  background:#f8fafc !important;
  color:var(--plan-corp-navy-dark) !important;
}

.plan-sheet-card table.plan-main-table .plan-doc-logo-cell{
  background:#ffffff !important;
}

.plan-sheet-card table.plan-main-table .plan-doc-title{
  color:var(--plan-corp-navy-dark) !important;
  font-weight:800 !important;
  letter-spacing:.025em !important;
}

.plan-sheet-card table.plan-main-table .plan-doc-meta{
  color:#334155 !important;
  font-weight:500 !important;
}

.plan-sheet-card table.plan-main-table .plan-doc-meta b{
  color:var(--plan-corp-navy-dark) !important;
}

.plan-sheet-card table.plan-main-table .plan-doc-gap{
  height:9px !important;
  background:#e8eef5 !important;
  border-top:0 !important;
  border-bottom:0 !important;
}

/* INGRESOS: verde petróleo sobrio */
.plan-sheet-card table.plan-main-table td.sec-verde-f,
.plan-sheet-card table.plan-main-table tr.sec-verde-f > td{
  background:var(--plan-corp-teal) !important;
  color:#ffffff !important;
  border-color:#125548 !important;
  font-weight:800 !important;
  letter-spacing:.025em !important;
}

.plan-sheet-card table.plan-main-table td.sec-verde,
.plan-sheet-card table.plan-main-table tr.sec-verde > td{
  background:var(--plan-corp-teal-soft) !important;
  color:#145447 !important;
  border-color:#b8d8d0 !important;
  font-weight:750 !important;
}

/* EGRESOS: vino corporativo, menos intenso que rojo puro */
.plan-sheet-card table.plan-main-table td.sec-rojo,
.plan-sheet-card table.plan-main-table tr.sec-rojo > td{
  background:var(--plan-corp-wine) !important;
  color:#ffffff !important;
  border-color:#74263e !important;
  font-weight:800 !important;
  letter-spacing:.025em !important;
}

.plan-sheet-card table.plan-main-table td.sec-rojo-f,
.plan-sheet-card table.plan-main-table tr.sec-rojo-f > td{
  background:var(--plan-corp-wine-soft) !important;
  color:#7d2943 !important;
  border-color:#e5c5cf !important;
  font-weight:750 !important;
}

/* Saldo inicial */
.plan-sheet-card table.plan-main-table tr.plan-opening-row > td{
  background:#f8fafc !important;
  color:var(--plan-corp-navy) !important;
  border-top:1px solid var(--plan-corp-border) !important;
  border-bottom:1px solid var(--plan-corp-border) !important;
}

/* Subtotales internos */
.plan-sheet-card table.plan-main-table tr.plan-subtotal-row > td{
  background:var(--plan-corp-slate-soft) !important;
  color:#334155 !important;
  border-top:1px solid #b8c4d1 !important;
  border-bottom:1px solid #d5dde7 !important;
  font-weight:800 !important;
}

.plan-sheet-card table.plan-main-table tr.plan-subtotal-income > td{
  box-shadow:inset 4px 0 0 #5b9b8e !important;
}

.plan-sheet-card table.plan-main-table tr.plan-subtotal-expense > td{
  box-shadow:inset 4px 0 0 #b96a82 !important;
}

/* Total general de ingresos */
.plan-sheet-card table.plan-main-table tr.plan-total-income > td{
  background:#dcefe8 !important;
  color:#104f43 !important;
  border-top:2px solid var(--plan-corp-teal) !important;
  border-bottom:1px solid #a8cec4 !important;
  font-weight:900 !important;
}

/* Total general de egresos */
.plan-sheet-card table.plan-main-table tr.plan-total-expense > td{
  background:#f2e1e7 !important;
  color:#76243d !important;
  border-top:2px solid var(--plan-corp-wine) !important;
  border-bottom:1px solid #d9afbc !important;
  font-weight:900 !important;
}

/* Saldo en caja: principal resultado financiero */
.plan-sheet-card table.plan-main-table tr.plan-balance-row > td{
  background:var(--plan-corp-navy) !important;
  color:#ffffff !important;
  border-color:var(--plan-corp-navy-dark) !important;
  font-weight:900 !important;
}

/* Efectivo y cheque */
.plan-sheet-card table.plan-main-table tr.plan-summary-row > td{
  background:#edf2f7 !important;
  color:var(--plan-corp-navy) !important;
  border-color:#cbd5e1 !important;
  font-weight:800 !important;
}

/* Diferencia: verde si está cuadrada, rojo suave si existe diferencia */
.plan-sheet-card table.plan-main-table tr.plan-difference-row.is-balanced > td{
  background:#e4f2ed !important;
  color:#0f5f50 !important;
  border-top:2px solid var(--plan-corp-teal) !important;
  border-bottom:1px solid #add1c7 !important;
  font-weight:900 !important;
}

.plan-sheet-card table.plan-main-table tr.plan-difference-row.is-alert > td{
  background:#fff1f2 !important;
  color:#9f1239 !important;
  border-top:2px solid #be123c !important;
  border-bottom:1px solid #fecdd3 !important;
  font-weight:900 !important;
}

/* Pendientes por legalizar */
.plan-sheet-card table.plan-main-table tr.plan-total-pending > td{
  background:var(--plan-corp-amber-soft) !important;
  color:#765000 !important;
  border-top:2px solid #b77900 !important;
  border-bottom:1px solid #ead29a !important;
  font-weight:900 !important;
}

/* Tipografía monetaria uniforme */
.plan-sheet-card table.plan-main-table .plan-total-label{
  letter-spacing:.015em !important;
}

.plan-sheet-card table.plan-main-table .plan-value-cell,
.plan-sheet-card table.plan-main-table td.money{
  font-variant-numeric:tabular-nums !important;
}

/* Asegurar que textos internos hereden el color de la fila */
.plan-sheet-card table.plan-main-table tr.plan-opening-row > td *,
.plan-sheet-card table.plan-main-table tr.plan-subtotal-row > td *,
.plan-sheet-card table.plan-main-table tr.plan-total-income > td *,
.plan-sheet-card table.plan-main-table tr.plan-total-expense > td *,
.plan-sheet-card table.plan-main-table tr.plan-balance-row > td *,
.plan-sheet-card table.plan-main-table tr.plan-summary-row > td *,
.plan-sheet-card table.plan-main-table tr.plan-difference-row > td *,
.plan-sheet-card table.plan-main-table tr.plan-total-pending > td *{
  color:inherit !important;
}

/* Impresión y PDF: conservar colores profesionales */
@media print{
  .plan-sheet-card{
    box-shadow:none !important;
    border-radius:0 !important;
  }

  .plan-sheet-card table.plan-main-table .plan-doc-top > td,
  .plan-sheet-card table.plan-main-table td.sec-verde-f,
  .plan-sheet-card table.plan-main-table tr.sec-verde-f > td,
  .plan-sheet-card table.plan-main-table td.sec-verde,
  .plan-sheet-card table.plan-main-table tr.sec-verde > td,
  .plan-sheet-card table.plan-main-table td.sec-rojo,
  .plan-sheet-card table.plan-main-table tr.sec-rojo > td,
  .plan-sheet-card table.plan-main-table td.sec-rojo-f,
  .plan-sheet-card table.plan-main-table tr.sec-rojo-f > td,
  .plan-sheet-card table.plan-main-table tr.plan-opening-row > td,
  .plan-sheet-card table.plan-main-table tr.plan-subtotal-row > td,
  .plan-sheet-card table.plan-main-table tr.plan-total-income > td,
  .plan-sheet-card table.plan-main-table tr.plan-total-expense > td,
  .plan-sheet-card table.plan-main-table tr.plan-balance-row > td,
  .plan-sheet-card table.plan-main-table tr.plan-summary-row > td,
  .plan-sheet-card table.plan-main-table tr.plan-difference-row > td,
  .plan-sheet-card table.plan-main-table tr.plan-total-pending > td{
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
}

/* =====================================================================
   PLANILLA — TOTALES SIN BORDES DECORATIVOS Y SEPARADORES LIMPIOS
   ===================================================================== */

/*
 * Quitar barras laterales y bordes decorativos de:
 * saldo inicial, subtotales, totales y resumen financiero.
 * Se conservan los colores de fondo.
 */
.plan-sheet-card table.plan-main-table tr.plan-opening-row > td,
.plan-sheet-card table.plan-main-table tr.plan-subtotal-row > td,
.plan-sheet-card table.plan-main-table tr.plan-grand-total-row > td,
.plan-sheet-card table.plan-main-table tr.plan-balance-row > td,
.plan-sheet-card table.plan-main-table tr.plan-summary-row > td,
.plan-sheet-card table.plan-main-table tr.plan-difference-row > td,
.plan-sheet-card table.plan-main-table tr.plan-total-pending > td{
  border-top:0 !important;
  border-bottom:0 !important;
  box-shadow:none !important;
}

/* La fila anterior al espacio no debe dejar una línea abajo */
.plan-sheet-card table.plan-main-table tr.plan-gap-before > td{
  border-bottom:0 !important;
}

/* Separadores completamente limpios */
.plan-sheet-card table.plan-main-table tr.plan-section-gap,
.plan-sheet-card table.plan-main-table tr.plan-section-gap > td{
  height:18px !important;
  min-height:18px !important;
  padding:0 !important;
  background:#ffffff !important;
  background-image:none !important;
  border:0 !important;
  box-shadow:none !important;
  outline:0 !important;
}

/* Separador un poco más pequeño después de 2.4 */
.plan-sheet-card table.plan-main-table tr.plan-section-gap-small,
.plan-sheet-card table.plan-main-table tr.plan-section-gap-small > td{
  height:12px !important;
  min-height:12px !important;
}

/* Espacio del encabezado institucional */
.plan-sheet-card table.plan-main-table tr.plan-document-gap,
.plan-sheet-card table.plan-main-table tr.plan-document-gap > td{
  height:14px !important;
  min-height:14px !important;
}

/* La fila posterior al espacio no debe dejar una línea arriba */
.plan-sheet-card table.plan-main-table tr.plan-section-gap + tr > td{
  border-top:0 !important;
}

/* Impresión y PDF */
@media print{
  .plan-sheet-card table.plan-main-table tr.plan-section-gap,
  .plan-sheet-card table.plan-main-table tr.plan-section-gap > td{
    height:6px !important;
    min-height:6px !important;
    padding:0 !important;
    background:#ffffff !important;
    border:0 !important;
    box-shadow:none !important;
  }

  .plan-sheet-card table.plan-main-table tr.plan-section-gap-small,
  .plan-sheet-card table.plan-main-table tr.plan-section-gap-small > td{
    height:4px !important;
    min-height:4px !important;
  }

  .plan-sheet-card table.plan-main-table tr.plan-document-gap,
  .plan-sheet-card table.plan-main-table tr.plan-document-gap > td{
    height:5px !important;
    min-height:5px !important;
  }

  .plan-sheet-card table.plan-main-table tr.plan-gap-before > td{
    border-bottom:0 !important;
  }

  .plan-sheet-card table.plan-main-table tr.plan-section-gap + tr > td{
    border-top:0 !important;
  }
}

/* =====================================================================
   PLANILLA — IMPRESIÓN VERTICAL CON MÁRGENES ESTRECHOS
   ===================================================================== */

@media print{

  /* Carta y Oficio tienen el mismo ancho en orientación vertical */
  body.print-letter.print-portrait .plan-sheet-card,
  body.print-legal.print-portrait .plan-sheet-card{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    transform:none !important;
    zoom:.78 !important;
  }

  body.print-letter.print-portrait .plan-sheet-card table,
  body.print-legal.print-portrait .plan-sheet-card table{
    width:100% !important;
    max-width:100% !important;
    table-layout:fixed !important;
    font-size:6.8px !important;
  }

  body.print-letter.print-portrait .plan-sheet-card th,
  body.print-letter.print-portrait .plan-sheet-card td,
  body.print-legal.print-portrait .plan-sheet-card th,
  body.print-legal.print-portrait .plan-sheet-card td{
    padding:1.2px 2px !important;
    line-height:1 !important;
  }

  /* Encabezado más compacto */
  body.print-letter.print-portrait .plan-doc-logo,
  body.print-legal.print-portrait .plan-doc-logo{
    width:100px !important;
    min-width:100px !important;
    max-width:100px !important;
    height:auto !important;
    max-height:48px !important;
  }

  body.print-letter.print-portrait .plan-doc-logo-cell,
  body.print-legal.print-portrait .plan-doc-logo-cell{
    width:115px !important;
    min-width:115px !important;
    max-width:115px !important;
    padding:3px 4px !important;
  }

  body.print-letter.print-portrait .plan-doc-title,
  body.print-legal.print-portrait .plan-doc-title{
    font-size:8px !important;
    line-height:1 !important;
  }

  body.print-letter.print-portrait .plan-doc-meta,
  body.print-legal.print-portrait .plan-doc-meta{
    font-size:6.5px !important;
    line-height:1 !important;
    padding-right:3px !important;
  }

  /* Firmas compactas para evitar páginas innecesarias */
  body.print-letter.print-portrait .plan-sign-box-dual,
  body.print-legal.print-portrait .plan-sign-box-dual{
    padding:8px 10px 10px !important;
    gap:14px !important;
  }

  body.print-letter.print-portrait .plan-sign-col,
  body.print-legal.print-portrait .plan-sign-col{
    min-height:80px !important;
  }

  body.print-letter.print-portrait .plan-sign-title,
  body.print-legal.print-portrait .plan-sign-title{
    font-size:7px !important;
    margin-bottom:5px !important;
  }

  body.print-letter.print-portrait .plan-sign-info,
  body.print-legal.print-portrait .plan-sign-info{
    font-size:6.5px !important;
    line-height:1.15 !important;
    margin-bottom:11px !important;
  }

  body.print-letter.print-portrait .plan-sign-caption,
  body.print-legal.print-portrait .plan-sign-caption{
    font-size:6.5px !important;
  }

  /* Espacios entre bloques más pequeños al imprimir */
  body.print-letter.print-portrait .plan-section-gap,
  body.print-letter.print-portrait .plan-section-gap > td,
  body.print-legal.print-portrait .plan-section-gap,
  body.print-legal.print-portrait .plan-section-gap > td{
    height:4px !important;
    min-height:4px !important;
  }
}


/* =====================================================================
   PLANILLA — TEXTO MÁS GRANDE EN ENCABEZADO Y FIRMAS AL IMPRIMIR
   APLICA A CARTA Y OFICIO VERTICAL
   Debe permanecer al final absoluto de panel.css
   ===================================================================== */

@media print {

  /* ==============================================================
     PRIMERA PARTE: ENCABEZADO INSTITUCIONAL
     ============================================================== */

  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table .plan-doc-title,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table .plan-doc-title {
    font-size: 10px !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
  }

  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table .plan-doc-meta,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table .plan-doc-meta {
    font-size: 8px !important;
    line-height: 1.15 !important;
    font-weight: 600 !important;
  }

  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table .plan-doc-meta b,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table .plan-doc-meta b {
    font-size: inherit !important;
    font-weight: 800 !important;
  }

  /* ==============================================================
     ÚLTIMA PARTE: FIRMAS
     ============================================================== */

  body.print-letter.print-portrait
  .plan-sign-box-dual .plan-sign-title,
  body.print-legal.print-portrait
  .plan-sign-box-dual .plan-sign-title {
    font-size: 9px !important;
    line-height: 1.2 !important;
    margin-bottom: 6px !important;
  }

  body.print-letter.print-portrait
  .plan-sign-box-dual .plan-sign-info,
  body.print-legal.print-portrait
  .plan-sign-box-dual .plan-sign-info {
    font-size: 8px !important;
    line-height: 1.3 !important;
    margin-bottom: 13px !important;
  }

  body.print-letter.print-portrait
  .plan-sign-box-dual .plan-sign-caption,
  body.print-legal.print-portrait
  .plan-sign-box-dual .plan-sign-caption {
    font-size: 7.5px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
  }

  body.print-letter.print-portrait
  .plan-sign-box-dual .plan-sign-info b,
  body.print-legal.print-portrait
  .plan-sign-box-dual .plan-sign-info b {
    font-size: inherit !important;
    font-weight: 800 !important;
  }
}


/* ==============================================================
   ÚLTIMA PARTE: FIRMAS MÁS GRANDES EN CARTA Y OFICIO
   ============================================================== */

@media print {

  /* Firma de quien envía / Firma de quien recibe */
  body.print-letter.print-portrait
  .plan-sign-box-dual .plan-sign-title,
  body.print-legal.print-portrait
  .plan-sign-box-dual .plan-sign-title {
    font-size: 13px !important;
    line-height: 1.25 !important;
    margin-bottom: 7px !important;
    font-weight: 800 !important;
  }

  /* Cédula, nombre y campo Nombre de quien recibe */
  body.print-letter.print-portrait
  .plan-sign-box-dual .plan-sign-info,
  body.print-legal.print-portrait
  .plan-sign-box-dual .plan-sign-info {
    font-size: 12px !important;
    line-height: 1.35 !important;
    margin-bottom: 14px !important;
  }

  /* Firma de quien envía / Firma de quien recibe debajo de la línea */
  body.print-letter.print-portrait
  .plan-sign-box-dual .plan-sign-caption,
  body.print-legal.print-portrait
  .plan-sign-box-dual .plan-sign-caption {
    font-size: 12px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
  }

  /* Negrillas de Cédula y Nombre */
  body.print-letter.print-portrait
  .plan-sign-box-dual .plan-sign-info b,
  body.print-legal.print-portrait
  .plan-sign-box-dual .plan-sign-info b {
    font-size: inherit !important;
    font-weight: 800 !important;
  }
}


/* ==============================================================
   FIRMA DE QUIEN RECIBE — ALINEACIÓN COMPLETA
   PANTALLA E IMPRESIÓN
   ============================================================== */

/* --------------------------------------------------------------
   VISTA NORMAL EN PANTALLA
   -------------------------------------------------------------- */
@media screen {

  /* Columna completa alineada a la izquierda */
  .plan-sign-box-dual .plan-sign-right{
    text-align:left !important;
    align-items:flex-start !important;
  }

  /* Título */
  .plan-sign-box-dual
  .plan-sign-right
  .plan-sign-title{
    width:340px !important;
    max-width:100% !important;

    margin-left:0 !important;
    margin-right:auto !important;
    margin-bottom:14px !important;

    text-align:left !important;
    align-self:flex-start !important;
  }

  /* Bloque Nombre */
  .plan-sign-box-dual
  .plan-sign-right
  .plan-sign-info,
  .plan-sign-box-dual
  .plan-sign-right
  .plan-sign-info-manual{
    width:340px !important;
    max-width:100% !important;

    margin-left:0 !important;
    margin-right:auto !important;
    margin-bottom:22px !important;

    text-align:left !important;
    align-self:flex-start !important;
  }

  .plan-sign-box-dual
  .plan-sign-right
  .manual-sign-field{
    display:block !important;
    width:100% !important;
    text-align:left !important;
  }

  .plan-sign-box-dual
  .plan-sign-right
  .manual-sign-field b{
    display:block !important;
    width:100% !important;
    text-align:left !important;
  }

  /* Línea donde se firma */
  .plan-sign-box-dual
  .plan-sign-right
  .plan-sign-line{
    width:340px !important;
    max-width:100% !important;

    margin-left:0 !important;
    margin-right:auto !important;
    margin-bottom:8px !important;

    text-align:left !important;
    align-self:flex-start !important;
  }

  /* Texto debajo de la línea */
  .plan-sign-box-dual
  .plan-sign-right
  .plan-sign-caption{
    width:340px !important;
    max-width:100% !important;

    margin-left:0 !important;
    margin-right:auto !important;

    text-align:left !important;
    align-self:flex-start !important;
  }
}


/* --------------------------------------------------------------
   CARTA Y OFICIO VERTICAL
   Mantener la impresión alineada
   -------------------------------------------------------------- */
@media print {

  body.print-letter.print-portrait
  .plan-sign-box-dual .plan-sign-right,

  body.print-legal.print-portrait
  .plan-sign-box-dual .plan-sign-right{
    text-align:left !important;
    align-items:flex-start !important;
  }

  body.print-letter.print-portrait
  .plan-sign-right .plan-sign-title,

  body.print-letter.print-portrait
  .plan-sign-right .plan-sign-info,

  body.print-letter.print-portrait
  .plan-sign-right .plan-sign-line,

  body.print-letter.print-portrait
  .plan-sign-right .plan-sign-caption,

  body.print-legal.print-portrait
  .plan-sign-right .plan-sign-title,

  body.print-legal.print-portrait
  .plan-sign-right .plan-sign-info,

  body.print-legal.print-portrait
  .plan-sign-right .plan-sign-line,

  body.print-legal.print-portrait
  .plan-sign-right .plan-sign-caption{
    margin-left:0 !important;
    margin-right:auto !important;
    text-align:left !important;
    align-self:flex-start !important;
  }

  body.print-letter.print-portrait
  .plan-sign-right .manual-sign-field,

  body.print-legal.print-portrait
  .plan-sign-right .manual-sign-field{
    width:100% !important;
    text-align:left !important;
  }
}

/* ==============================================================
   PLANILLA — FIRMAS COMPACTAS EN PANTALLA
   IGUALAR LA VISTA NORMAL CON LA IMPRESIÓN
   ============================================================== */

@media screen {

  /* Contenedor general de las dos firmas */
  .plan-sheet-card .plan-sign-box-dual{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;

    gap:36px !important;

    padding:14px 16px 16px !important;

    border-top:1px solid var(--line) !important;
    background:#ffffff !important;
  }

  /*
   * Eliminar el espacio vertical exagerado.
   * Las firmas empiezan inmediatamente debajo de TOTAL PENDIENTES.
   */
  .plan-sheet-card
  .plan-sign-box-dual
  .plan-sign-col{
    min-height:0 !important;
    height:auto !important;

    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    align-items:flex-start !important;

    padding:0 !important;
    margin:0 !important;

    text-align:left !important;
  }

  /* Ambas columnas alineadas de la misma forma */
  .plan-sheet-card
  .plan-sign-box-dual
  .plan-sign-left,

  .plan-sheet-card
  .plan-sign-box-dual
  .plan-sign-right{
    text-align:left !important;
    align-items:flex-start !important;
  }

  /* Títulos */
  .plan-sheet-card
  .plan-sign-box-dual
  .plan-sign-title{
    width:340px !important;
    max-width:100% !important;

    margin:0 0 7px !important;

    text-align:left !important;
    align-self:flex-start !important;

    font-size:15px !important;
    line-height:1.2 !important;
    font-weight:800 !important;
  }

  /* Cédula, nombre y campo Nombre de quien recibe */
  .plan-sheet-card
  .plan-sign-box-dual
  .plan-sign-info,

  .plan-sheet-card
  .plan-sign-box-dual
  .plan-sign-info-manual{
    width:340px !important;
    max-width:100% !important;

    margin:0 0 12px !important;

    text-align:left !important;
    align-self:flex-start !important;

    font-size:14px !important;
    line-height:1.4 !important;
  }

  .plan-sheet-card
  .plan-sign-box-dual
  .manual-sign-field,

  .plan-sheet-card
  .plan-sign-box-dual
  .manual-sign-field b{
    display:block !important;
    width:100% !important;
    text-align:left !important;
  }

  /* Líneas de firma */
  .plan-sheet-card
  .plan-sign-box-dual
  .plan-sign-line{
    width:340px !important;
    max-width:100% !important;

    margin:0 0 7px !important;

    border-top:1.8px solid #172b4d !important;

    text-align:left !important;
    align-self:flex-start !important;
  }

  /* Textos debajo de las líneas */
  .plan-sheet-card
  .plan-sign-box-dual
  .plan-sign-caption{
    width:340px !important;
    max-width:100% !important;

    margin:0 !important;

    text-align:left !important;
    align-self:flex-start !important;

    font-size:12px !important;
    line-height:1.2 !important;
    font-weight:700 !important;
  }
}


/* ==============================================================
   MÓVIL — UNA FIRMA DEBAJO DE LA OTRA
   ============================================================== */

@media screen and (max-width:860px){

  .plan-sheet-card .plan-sign-box-dual{
    grid-template-columns:1fr !important;
    gap:24px !important;
    padding:18px !important;
  }

  .plan-sheet-card
  .plan-sign-box-dual
  .plan-sign-title,

  .plan-sheet-card
  .plan-sign-box-dual
  .plan-sign-info,

  .plan-sheet-card
  .plan-sign-box-dual
  .plan-sign-line,

  .plan-sheet-card
  .plan-sign-box-dual
  .plan-sign-caption{
    width:100% !important;
  }
}

/* =====================================================================
   CENTRO DE REPORTES
   ===================================================================== */

.report-hero{
  max-width:1400px;
  margin:20px auto;
  padding:28px 30px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  border:1px solid #d9e2ec;
  border-radius:18px;
  color:#fff;
  background:
    radial-gradient(circle at 85% 15%, rgba(102,245,56,.22), transparent 34%),
    linear-gradient(135deg, #0f2747 0%, #1155cc 100%);
  box-shadow:0 18px 42px rgba(15,39,71,.18);
}

.report-hero h1{
  margin:4px 0 8px;
  font-size:30px;
  line-height:1.1;
}

.report-hero p{
  margin:0;
  max-width:760px;
  color:rgba(255,255,255,.82);
}

.report-eyebrow{
  display:inline-block;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:12px;
  font-weight:800;
  color:#b7ff9d;
}

.report-export-btn{
  flex:0 0 auto;
  background:#66f538 !important;
  color:#10233d !important;
  border:0 !important;
  font-weight:800 !important;
  box-shadow:0 10px 24px rgba(102,245,56,.24);
}

.report-filter-card,
.report-kpis,
.report-table-head{
  max-width:1400px;
  margin-left:auto;
  margin-right:auto;
}

.report-filters{
  display:grid;
  grid-template-columns:repeat(5, minmax(160px, 1fr));
  gap:14px;
  align-items:end;
}

.report-filters label{
  display:flex;
  flex-direction:column;
  gap:7px;
}

.report-filters label > span{
  font-size:12px;
  font-weight:800;
  color:#51657d;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.report-filters input,
.report-filters select,
#reportSearch{
  height:44px;
  border:1px solid #cbd5e1;
  border-radius:10px;
  background:#fff;
  padding:0 12px;
  color:#172b4d;
  box-shadow:0 2px 7px rgba(15,39,71,.04);
}

.report-filter-actions{
  display:flex;
  gap:8px;
  align-items:center;
}

.report-state-filter.is-hidden{
  display:none;
}

.report-kpis{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:16px;
  margin-top:18px;
  margin-bottom:18px;
}

.report-kpi{
  position:relative;
  overflow:hidden;
  padding:20px;
  border:1px solid #d9e2ec;
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 26px rgba(15,39,71,.08);
}

.report-kpi::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(#1155cc, #66f538);
}

.report-kpi span{
  display:block;
  margin-bottom:8px;
  color:#6b7c93;
  font-size:13px;
  font-weight:700;
}

.report-kpi strong{
  color:#172b4d;
  font-size:24px;
}

.report-table-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:14px;
}

.report-table-head .section-title{
  margin-bottom:4px;
}

#reportSearch{
  width:min(360px, 100%);
}

.report-table-wrap{
  max-height:68vh;
  border:1px solid #dbe4ee;
  border-radius:12px;
}

.report-table-wrap table{
  min-width:1450px;
}

.report-table-wrap thead th{
  position:sticky;
  top:0;
  z-index:2;
  color:#fff;
  background:#172b4d;
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.14);
}

.report-table-wrap tbody tr:nth-child(even){
  background:#f8fafc;
}

.report-table-wrap tbody tr:hover{
  background:#eef6ff;
}

.menu .btn.is-active{
  background:#66f538;
  color:#10233d;
}

@media (max-width:1050px){
  .report-filters{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .report-kpis{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .report-hero{
    align-items:flex-start;
    flex-direction:column;
  }
}

@media (max-width:620px){
  .report-filters,
  .report-kpis{
    grid-template-columns:1fr;
  }

  .report-table-head{
    align-items:stretch;
    flex-direction:column;
  }

  .report-hero{
    padding:22px 18px;
    border-radius:14px;
  }
}

/* ==============================================================
   BOTONES DE ACCIONES — EDITAR Y ELIMINAR
   ============================================================== */

/* Editar: color ámbar profesional */
.btn-edit{
  background:#f59e0b !important;
  color:#172b4d !important;
  border:1px solid #d97706 !important;
  box-shadow:0 8px 18px rgba(245,158,11,.24) !important;
}

.btn-edit:hover,
.btn-edit:focus{
  background:#d97706 !important;
  color:#ffffff !important;
  border-color:#b45309 !important;
  box-shadow:0 10px 22px rgba(217,119,6,.30) !important;
  transform:translateY(-1px);
}

/* Eliminar: rojo de acción peligrosa */
.btn-danger{
  background:#dc2626 !important;
  color:#ffffff !important;
  border:1px solid #b91c1c !important;
  box-shadow:0 8px 18px rgba(220,38,38,.24) !important;
}

.btn-danger:hover,
.btn-danger:focus{
  background:#b91c1c !important;
  color:#ffffff !important;
  border-color:#991b1b !important;
  box-shadow:0 10px 22px rgba(185,28,28,.30) !important;
  transform:translateY(-1px);
}

/* Evitar cambios de color al presionar */
.btn-edit:active,
.btn-danger:active{
  transform:translateY(0);
  box-shadow:none !important;
}


/* =====================================================================
   PLANILLA — ALINEACIÓN Y CIERRE VISUAL DE SECCIONES
   Afecta únicamente la tabla principal de planilla.php.
   ===================================================================== */

/*
 * Regla base:
 * - Textos y descripciones a la izquierda.
 * - Fechas centradas.
 * - Valores monetarios a la derecha.
 */
.plan-sheet-card table.plan-main-table td{
  text-align:left;
}

.plan-sheet-card table.plan-main-table .plan-date-head,
.plan-sheet-card table.plan-main-table .plan-date-cell{
  text-align:center !important;
  white-space:nowrap !important;
}

.plan-sheet-card table.plan-main-table td.money:not(.plan-total-label),
.plan-sheet-card table.plan-main-table td.plan-value-cell{
  text-align:right !important;
  white-space:nowrap !important;
  font-variant-numeric:tabular-nums !important;
}

/* Los textos TOTAL, SALDO, EFECTIVO, CHEQUE, etc. quedan a la izquierda. */
.plan-sheet-card table.plan-main-table td.plan-total-label{
  text-align:left !important;
}

/*
 * TOTAL INGRESOS funciona como barra de cierre del bloque,
 * usando el mismo verde corporativo del encabezado de INGRESOS.
 */
.plan-sheet-card table.plan-main-table tr.plan-total-income > td{
  background:var(--plan-corp-teal) !important;
  color:#ffffff !important;
  border-color:#125548 !important;
  font-weight:900 !important;
}

.plan-sheet-card table.plan-main-table tr.plan-total-income > td *{
  color:inherit !important;
}

/* Gastos pendientes: naranja oscuro y naranja suave. */
.plan-sheet-card table.plan-main-table td.sec-pendiente,
.plan-sheet-card table.plan-main-table tr.sec-pendiente > td{
  background:#9a4d0a !important;
  color:#ffffff !important;
  border-color:#7c3d08 !important;
  font-weight:850 !important;
  text-align:center !important;
  letter-spacing:.025em !important;
}

.plan-sheet-card table.plan-main-table td.sec-pendiente-f,
.plan-sheet-card table.plan-main-table tr.sec-pendiente-f > td{
  background:#ffedd5 !important;
  color:#7c2d12 !important;
  border-color:#fdba74 !important;
  font-weight:750 !important;
  text-align:center !important;
}

/* Total de pendientes coherente con el nuevo bloque naranja. */
.plan-sheet-card table.plan-main-table tr.plan-total-pending > td{
  background:#c2410c !important;
  color:#ffffff !important;
  border-color:#9a3412 !important;
  font-weight:900 !important;
}

.plan-sheet-card table.plan-main-table tr.plan-total-pending > td *{
  color:inherit !important;
}

@media print{
  .plan-sheet-card table.plan-main-table tr.plan-total-income > td,
  .plan-sheet-card table.plan-main-table td.sec-pendiente,
  .plan-sheet-card table.plan-main-table tr.sec-pendiente > td,
  .plan-sheet-card table.plan-main-table td.sec-pendiente-f,
  .plan-sheet-card table.plan-main-table tr.sec-pendiente-f > td,
  .plan-sheet-card table.plan-main-table tr.plan-total-pending > td{
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }

  .plan-sheet-card table.plan-main-table .plan-date-head,
  .plan-sheet-card table.plan-main-table .plan-date-cell{
    text-align:center !important;
  }

  .plan-sheet-card table.plan-main-table td.money:not(.plan-total-label),
  .plan-sheet-card table.plan-main-table td.plan-value-cell{
    text-align:right !important;
  }

  .plan-sheet-card table.plan-main-table td.plan-total-label{
    text-align:left !important;
  }
}


/* =====================================================================
   PLANILLA GENERAL Y PLANILLA DEL PANEL
   Líneas verticales finas, columnas de texto a la izquierda y cierres
   de bloque con la misma paleta de su encabezado.
   Este bloque debe permanecer al final de panel.css.
   ===================================================================== */

/* Líneas verticales muy delgadas entre columnas. */
.plan-sheet-card table.plan-main-table td,
.plan-sheet-card table.plan-main-table th{
  border-left:0.5px solid #e1e7ee !important;
  border-right:0.5px solid #e1e7ee !important;
}

/*
 * N. COMPROBANTE, BENEFICIARIO, CONCEPTO y OBSERVACIÓN:
 * centrado vertical y alineación horizontal a la izquierda.
 */
.plan-sheet-card table.plan-main-table .plan-text-head,
.plan-sheet-card table.plan-main-table .plan-text-cell{
  text-align:left !important;
  vertical-align:middle !important;
  padding-left:8px !important;
  padding-right:8px !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}

/* Fecha permanece centrada. */
.plan-sheet-card table.plan-main-table .plan-date-head,
.plan-sheet-card table.plan-main-table .plan-date-cell{
  text-align:center !important;
  vertical-align:middle !important;
  white-space:nowrap !important;
}

/* Valores monetarios a la derecha; etiquetas de total a la izquierda. */
.plan-sheet-card table.plan-main-table td.money:not(.plan-total-label),
.plan-sheet-card table.plan-main-table td.plan-value-cell{
  text-align:right !important;
  vertical-align:middle !important;
  white-space:nowrap !important;
  font-variant-numeric:tabular-nums !important;
}

.plan-sheet-card table.plan-main-table td.plan-total-label{
  text-align:left !important;
  vertical-align:middle !important;
  padding-left:10px !important;
  padding-right:8px !important;
}

/* Cierre de subbloques de ingresos: mismo verde claro del inicio. */
.plan-sheet-card table.plan-main-table tr.plan-subtotal-income > td{
  background:var(--plan-corp-teal-soft) !important;
  color:#145447 !important;
  border-color:#b8d8d0 !important;
  box-shadow:none !important;
  font-weight:850 !important;
}

/* Cierre general de ingresos: mismo verde oscuro del título. */
.plan-sheet-card table.plan-main-table tr.plan-total-income > td{
  background:var(--plan-corp-teal) !important;
  color:#ffffff !important;
  border-color:#125548 !important;
  box-shadow:none !important;
  font-weight:900 !important;
}

/* Cierre de subbloques de egresos: mismo vino claro del inicio. */
.plan-sheet-card table.plan-main-table tr.plan-subtotal-expense > td{
  background:var(--plan-corp-wine-soft) !important;
  color:#7d2943 !important;
  border-color:#e5c5cf !important;
  box-shadow:none !important;
  font-weight:850 !important;
}

/* Cierre general de egresos: mismo vino oscuro del título. */
.plan-sheet-card table.plan-main-table tr.plan-total-expense > td{
  background:var(--plan-corp-wine) !important;
  color:#ffffff !important;
  border-color:#74263e !important;
  box-shadow:none !important;
  font-weight:900 !important;
}

/* Gastos pendientes: inicio y cierre con el mismo naranja oscuro. */
.plan-sheet-card table.plan-main-table td.sec-pendiente,
.plan-sheet-card table.plan-main-table tr.sec-pendiente > td,
.plan-sheet-card table.plan-main-table tr.plan-total-pending > td{
  background:#9a4d0a !important;
  color:#ffffff !important;
  border-color:#7c3d08 !important;
  box-shadow:none !important;
  font-weight:900 !important;
}

.plan-sheet-card table.plan-main-table td.sec-pendiente-f,
.plan-sheet-card table.plan-main-table tr.sec-pendiente-f > td{
  background:#ffedd5 !important;
  color:#7c2d12 !important;
  border-color:#fdba74 !important;
  font-weight:800 !important;
}

/* Divisiones sutiles en las barras oscuras. */
.plan-sheet-card table.plan-main-table tr.plan-total-income > td,
.plan-sheet-card table.plan-main-table tr.plan-total-expense > td,
.plan-sheet-card table.plan-main-table td.sec-pendiente,
.plan-sheet-card table.plan-main-table tr.sec-pendiente > td,
.plan-sheet-card table.plan-main-table tr.plan-total-pending > td{
  border-left-color:rgba(255,255,255,.34) !important;
  border-right-color:rgba(255,255,255,.34) !important;
}

.plan-sheet-card table.plan-main-table tr.plan-subtotal-income > td *,
.plan-sheet-card table.plan-main-table tr.plan-total-income > td *,
.plan-sheet-card table.plan-main-table tr.plan-subtotal-expense > td *,
.plan-sheet-card table.plan-main-table tr.plan-total-expense > td *,
.plan-sheet-card table.plan-main-table td.sec-pendiente *,
.plan-sheet-card table.plan-main-table tr.sec-pendiente > td *,
.plan-sheet-card table.plan-main-table tr.plan-total-pending > td *{
  color:inherit !important;
}

@media print{
  .plan-sheet-card table.plan-main-table td,
  .plan-sheet-card table.plan-main-table th{
    border-left:0.25pt solid #d8dee7 !important;
    border-right:0.25pt solid #d8dee7 !important;
  }

  .plan-sheet-card table.plan-main-table .plan-text-head,
  .plan-sheet-card table.plan-main-table .plan-text-cell{
    text-align:left !important;
    vertical-align:middle !important;
    padding-left:2px !important;
    padding-right:2px !important;
  }

  .plan-sheet-card table.plan-main-table .plan-date-head,
  .plan-sheet-card table.plan-main-table .plan-date-cell{
    text-align:center !important;
  }

  .plan-sheet-card table.plan-main-table td.money:not(.plan-total-label),
  .plan-sheet-card table.plan-main-table td.plan-value-cell{
    text-align:right !important;
  }

  .plan-sheet-card table.plan-main-table td.plan-total-label{
    text-align:left !important;
    padding-left:3px !important;
    padding-right:2px !important;
  }

  .plan-sheet-card table.plan-main-table tr.plan-subtotal-income > td,
  .plan-sheet-card table.plan-main-table tr.plan-total-income > td,
  .plan-sheet-card table.plan-main-table tr.plan-subtotal-expense > td,
  .plan-sheet-card table.plan-main-table tr.plan-total-expense > td,
  .plan-sheet-card table.plan-main-table td.sec-pendiente,
  .plan-sheet-card table.plan-main-table tr.sec-pendiente > td,
  .plan-sheet-card table.plan-main-table td.sec-pendiente-f,
  .plan-sheet-card table.plan-main-table tr.sec-pendiente-f > td,
  .plan-sheet-card table.plan-main-table tr.plan-total-pending > td{
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
}


/* =====================================================================
   PLANILLA GENERAL Y PLANILLA DEL PANEL
   Separador horizontal entre cada TOTAL de egresos y el bloque siguiente.
   Debe permanecer al final de panel.css.
   ===================================================================== */

/*
 * Los subtotales y los encabezados de egresos usan el mismo fondo vino
 * claro. Esta línea horizontal evita que visualmente parezcan una sola
 * fila o un único bloque.
 */
.plan-sheet-card table.plan-main-table
tr.plan-subtotal-expense > td{
  border-bottom:1px solid #bf8b9b !important;
}

/* Refuerza la separación al iniciar el siguiente subbloque de egresos. */
.plan-sheet-card table.plan-main-table
tr.plan-subtotal-expense + tr > td{
  border-top:1px solid #bf8b9b !important;
}

/*
 * Conserva visible la división entre la etiqueta TOTAL y su valor,
 * sin engrosar las demás líneas verticales de la tabla.
 */
.plan-sheet-card table.plan-main-table
tr.plan-subtotal-expense > td.plan-total-label{
  border-right:1px solid #c79aaa !important;
}

.plan-sheet-card table.plan-main-table
tr.plan-subtotal-expense > td.plan-value-cell{
  border-left:1px solid #c79aaa !important;
}

@media print{
  .plan-sheet-card table.plan-main-table
  tr.plan-subtotal-expense > td{
    border-bottom:0.5pt solid #ad7a8b !important;
  }

  .plan-sheet-card table.plan-main-table
  tr.plan-subtotal-expense + tr > td{
    border-top:0.5pt solid #ad7a8b !important;
  }

  .plan-sheet-card table.plan-main-table
  tr.plan-subtotal-expense > td.plan-total-label{
    border-right:0.5pt solid #ad7a8b !important;
  }

  .plan-sheet-card table.plan-main-table
  tr.plan-subtotal-expense > td.plan-value-cell{
    border-left:0.5pt solid #ad7a8b !important;
  }
}


/* =====================================================================
   PLANILLA GENERAL Y PLANILLA DEL PANEL
   Separación del subtotal de ingresos e impresión uniforme.
   Este bloque debe permanecer al final de panel.css.
   ===================================================================== */

/*
 * Separa visualmente el TOTAL del subbloque de ingresos del encabezado
 * que comienza inmediatamente después.
 */
.plan-sheet-card table.plan-main-table
tr.plan-subtotal-income > td{
  border-bottom:1px solid #6f9f94 !important;
}

.plan-sheet-card table.plan-main-table
tr.plan-subtotal-income + tr > td{
  border-top:0 !important;
}

/* División visible entre la etiqueta del total y su valor. */
.plan-sheet-card table.plan-main-table
tr.plan-subtotal-income > td.plan-total-label{
  border-right:1px solid #89afa7 !important;
}

.plan-sheet-card table.plan-main-table
tr.plan-subtotal-income > td.plan-value-cell{
  border-left:1px solid #89afa7 !important;
}

/*
 * Impresión:
 * - mismo tamaño de letra en toda la tabla y las firmas;
 * - texto más grande que la configuración anterior;
 * - sin reducción por zoom;
 * - bordes delgados y limpios.
 */
@media print{
  body.print-letter.print-portrait .plan-sheet-card,
  body.print-legal.print-portrait .plan-sheet-card{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    zoom:1 !important;
    transform:none !important;
    border:0.45pt solid #94a3b8 !important;
  }

  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table{
    width:100% !important;
    max-width:100% !important;
    table-layout:fixed !important;
    font-size:9px !important;
    line-height:1.12 !important;
    border:0.45pt solid #94a3b8 !important;
  }

  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table th,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table td,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table th *,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table td *,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table th,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table td,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table th *,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table td *{
    font-size:9px !important;
    line-height:1.12 !important;
  }

  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table th,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table td,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table th,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table td{
    padding:2px 3px !important;
    border:0.35pt solid #b8c2ce !important;
    box-shadow:none !important;
  }

  /*
   * Las firmas quedan con el mismo tamaño tipográfico utilizado
   * dentro de la tabla.
   */
  body.print-letter.print-portrait .plan-sign-box-dual,
  body.print-letter.print-portrait .plan-sign-box-dual *,
  body.print-legal.print-portrait .plan-sign-box-dual,
  body.print-legal.print-portrait .plan-sign-box-dual *{
    font-size:9px !important;
    line-height:1.2 !important;
  }

  body.print-letter.print-portrait .plan-sign-title,
  body.print-letter.print-portrait .plan-sign-info,
  body.print-letter.print-portrait .plan-sign-caption,
  body.print-legal.print-portrait .plan-sign-title,
  body.print-legal.print-portrait .plan-sign-info,
  body.print-legal.print-portrait .plan-sign-caption{
    font-size:9px !important;
  }

  /* Separación del subtotal de ingresos también en PDF. */
  .plan-sheet-card table.plan-main-table
  tr.plan-subtotal-income > td{
    border-bottom:0.5pt solid #648f85 !important;
  }

  .plan-sheet-card table.plan-main-table
  tr.plan-subtotal-income + tr > td{
    border-top:0 !important;
  }

  .plan-sheet-card table.plan-main-table
  tr.plan-subtotal-income > td.plan-total-label{
    border-right:0.5pt solid #789f96 !important;
  }

  .plan-sheet-card table.plan-main-table
  tr.plan-subtotal-income > td.plan-value-cell{
    border-left:0.5pt solid #789f96 !important;
  }
}

/* ==============================================================
   PLANILLAS — LETRA MÁS GRANDE AL IMPRIMIR
   Aplica a Planilla General y Planilla Editar
   ============================================================== */
@media print{

  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table{
    font-size:15px !important;
    line-height:1.15 !important;
  }

  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table th,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table td,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table th *,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table td *,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table th,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table td,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table th *,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table td *{
    font-size:10px !important;
    line-height:1.15 !important;
  }

  body.print-letter.print-portrait
  .plan-sign-box-dual,
  body.print-letter.print-portrait
  .plan-sign-box-dual *,
  body.print-legal.print-portrait
  .plan-sign-box-dual,
  body.print-legal.print-portrait
  .plan-sign-box-dual *{
    font-size:10px !important;
    line-height:1.2 !important;
  }
}


/* =====================================================================
   PLANILLA GENERAL Y PLANILLA DEL PANEL
   IMPRESIÓN OFICIO CON MARGEN ESTRECHO
   Debe permanecer al final absoluto de panel.css.
   ===================================================================== */

@media print{

  /*
   * El margen físico de la hoja Oficio se define desde imprimirPlanilla()
   * en 1.5 mm. Aquí se eliminan márgenes internos adicionales.
   */
  body.print-legal.print-portrait,
  body.print-legal.print-portrait .wrap.plan-shell{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    background:#ffffff !important;
  }

  body.print-legal.print-portrait .plan-sheet-card{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    overflow:visible !important;
  }

  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    table-layout:fixed !important;
  }

  /*
   * Impide que elementos externos del módulo agreguen espacio arriba
   * o abajo de la hoja impresa.
   */
  body.print-legal.print-portrait .plan-shell-header,
  body.print-legal.print-portrait .plan-shell-nav,
  body.print-legal.print-portrait .toolbar-card,
  body.print-legal.print-portrait .plan-send-card,
  body.print-legal.print-portrait .plan-hero-actions,
  body.print-legal.print-portrait .sent-card-btn,
  body.print-legal.print-portrait .back-open-form,
  body.print-legal.print-portrait footer{
    display:none !important;
  }
}


/* =====================================================================
   CORRECCIÓN DEFINITIVA DE IMPRESIÓN — CARTA Y OFICIO
   Debe permanecer al final absoluto de panel.css.
   ===================================================================== */

@media print{

  html,
  body{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    background:#ffffff !important;
  }

  /*
   * @page tiene margen 0.
   * El margen visible queda controlado aquí:
   * - Carta:  1.5 mm
   * - Oficio: 0.8 mm
   */
  body.print-letter.print-portrait .wrap.plan-shell{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding:1.5mm !important;
    box-sizing:border-box !important;
    background:#ffffff !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
  }

  body.print-legal.print-portrait .wrap.plan-shell{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0.8mm !important;
    box-sizing:border-box !important;
    background:#ffffff !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
  }

  body.print-letter.print-portrait .plan-sheet-card,
  body.print-legal.print-portrait .plan-sheet-card{
    display:block !important;
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
    overflow:visible !important;
    border-radius:0 !important;
    box-shadow:none !important;
    transform:none !important;
    transform-origin:top left !important;
    zoom:1 !important;
  }

  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table{
    position:relative !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    table-layout:fixed !important;
    border-collapse:collapse !important;
    border-spacing:0 !important;
    transform:none !important;
    transform-origin:top left !important;
    zoom:1 !important;
  }

  /*
   * Evitar cualquier reducción heredada de configuraciones anteriores.
   */
  body.print-legal.print-portrait .plan-sheet-card,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table,
  body.print-letter.print-portrait .plan-sheet-card,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table{
    scale:1 !important;
  }

  /*
   * Solo se imprime la hoja de la planilla.
   */
  body.print-letter.print-portrait .plan-shell-header,
  body.print-letter.print-portrait .plan-shell-nav,
  body.print-letter.print-portrait .toolbar-card,
  body.print-letter.print-portrait .plan-send-card,
  body.print-letter.print-portrait .plan-hero-actions,
  body.print-letter.print-portrait .sent-card-btn,
  body.print-letter.print-portrait .back-open-form,
  body.print-letter.print-portrait footer,
  body.print-legal.print-portrait .plan-shell-header,
  body.print-legal.print-portrait .plan-shell-nav,
  body.print-legal.print-portrait .toolbar-card,
  body.print-legal.print-portrait .plan-send-card,
  body.print-legal.print-portrait .plan-hero-actions,
  body.print-legal.print-portrait .sent-card-btn,
  body.print-legal.print-portrait .back-open-form,
  body.print-legal.print-portrait footer{
    display:none !important;
  }
}


/* =====================================================================
   IMPRESIÓN AISLADA DE PLANILLAS — CARTA Y OFICIO
   Este bloque solo se utiliza en el iframe creado al imprimir.
   Debe permanecer al final absoluto de panel.css.
   ===================================================================== */

@media print{

  html.planilla-print-isolated,
  html.planilla-print-isolated body{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    background:#ffffff !important;
  }

  html.planilla-print-isolated
  body.planilla-print-isolated{
    box-sizing:border-box !important;
  }

  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card{
    display:block !important;
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    overflow:visible !important;
    transform:none !important;
    transform-origin:top left !important;
    scale:1 !important;
    zoom:1 !important;
  }

  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    table-layout:fixed !important;
    border-collapse:collapse !important;
    border-spacing:0 !important;
    transform:none !important;
    transform-origin:top left !important;
    scale:1 !important;
    zoom:1 !important;
  }
}


/* =====================================================================
   AJUSTE FINAL DE IMPRESIÓN — PLANILLA GENERAL Y PLANILLA EDITAR
   Tamaño uniforme de 14 px y márgenes visibles.
   Debe permanecer al final absoluto de panel.css.
   ===================================================================== */

@media print{

  /*
   * MARGEN INTERIOR VISIBLE
   * Carta: 6 mm.
   * Oficio: 5 mm.
   *
   * Aplica al documento aislado creado por imprimirPlanilla().
   */
  html.planilla-print-isolated
  body.planilla-print-isolated.print-letter{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:6mm !important;
    box-sizing:border-box !important;
    background:#ffffff !important;
  }

  html.planilla-print-isolated
  body.planilla-print-isolated.print-legal{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:5mm !important;
    box-sizing:border-box !important;
    background:#ffffff !important;
  }

  /*
   * Respaldo para impresión directa, en caso de que alguna vista todavía
   * no utilice el documento aislado.
   */
  body.print-letter.print-portrait .wrap.plan-shell{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:6mm !important;
    box-sizing:border-box !important;
  }

  body.print-legal.print-portrait .wrap.plan-shell{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:5mm !important;
    box-sizing:border-box !important;
  }

  /*
   * HOJA Y TABLA
   */
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card,
  body.print-letter.print-portrait .plan-sheet-card,
  body.print-legal.print-portrait .plan-sheet-card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    overflow:visible !important;
    transform:none !important;
    scale:1 !important;
    zoom:1 !important;
  }

  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    table-layout:fixed !important;
    border-collapse:collapse !important;
    border-spacing:0 !important;
    transform:none !important;
    scale:1 !important;
    zoom:1 !important;
    font-size:14px !important;
    line-height:1.18 !important;
  }

  /*
   * TAMAÑO UNIFORME DE 14 PX
   * Se aplica a toda la tabla, encabezados, valores, totales y textos.
   */
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table th,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table td,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table th *,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table td *,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table th,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table td,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table th *,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table td *,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table th,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table td,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table th *,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table td *{
    font-size:12px !important;
    line-height:1.18 !important;
  }

  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table th,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table td,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table th,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table td,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table th,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table td{
    padding:3px 4px !important;
  }

  /*
   * ENCABEZADO INSTITUCIONAL A 14 PX
   */
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-doc-title,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-doc-meta,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-doc-meta *,
  body.print-letter.print-portrait .plan-doc-title,
  body.print-letter.print-portrait .plan-doc-meta,
  body.print-letter.print-portrait .plan-doc-meta *,
  body.print-legal.print-portrait .plan-doc-title,
  body.print-legal.print-portrait .plan-doc-meta,
  body.print-legal.print-portrait .plan-doc-meta *{
    font-size:14px !important;
    line-height:1.18 !important;
  }

  /*
   * FIRMAS A 14 PX
   */
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sign-box-dual,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sign-box-dual *,
  body.print-letter.print-portrait .plan-sign-box-dual,
  body.print-letter.print-portrait .plan-sign-box-dual *,
  body.print-legal.print-portrait .plan-sign-box-dual,
  body.print-legal.print-portrait .plan-sign-box-dual *{
    font-size:14px !important;
    line-height:1.25 !important;
  }

  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sign-title,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sign-info,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sign-caption,
  body.print-letter.print-portrait .plan-sign-title,
  body.print-letter.print-portrait .plan-sign-info,
  body.print-letter.print-portrait .plan-sign-caption,
  body.print-legal.print-portrait .plan-sign-title,
  body.print-legal.print-portrait .plan-sign-info,
  body.print-legal.print-portrait .plan-sign-caption{
    font-size:14px !important;
    line-height:1.25 !important;
  }
}


/* =====================================================================
   CORRECCIÓN REAL DE MÁRGENES — CARTA Y OFICIO
   El margen principal se establece también dentro del iframe desde
   planilla.php y planilla_editar.php. Este bloque actúa como respaldo.
   Debe permanecer al final absoluto de panel.css.
   ===================================================================== */

@media print{

  /*
   * Carta vertical: 6 mm visibles en los cuatro lados.
   * Oficio vertical: 5 mm visibles en los cuatro lados.
   */
  html.planilla-print-isolated
  body.planilla-print-isolated.print-letter{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:6mm !important;
    box-sizing:border-box !important;
    background:#ffffff !important;
  }

  html.planilla-print-isolated
  body.planilla-print-isolated.print-legal{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:5mm !important;
    box-sizing:border-box !important;
    background:#ffffff !important;
  }

  /*
   * La hoja ocupa únicamente el área interior del body ya descontada
   * por el padding. No se vuelve a reducir ni se añade un segundo margen.
   */
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
    transform:none !important;
    scale:1 !important;
    zoom:1 !important;
  }

  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    table-layout:fixed !important;
    transform:none !important;
    scale:1 !important;
    zoom:1 !important;
  }

  /*
   * Respaldo para una impresión directa sin iframe.
   */
  body.print-letter.print-portrait .wrap.plan-shell{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:6mm !important;
    box-sizing:border-box !important;
  }

  body.print-legal.print-portrait .wrap.plan-shell{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:5mm !important;
    box-sizing:border-box !important;
  }
}


/* =====================================================================
   PLANILLAS — IMPRESIÓN UNIFORME A 12 PX
   Encabezado institucional, contenido de la tabla y firmas.
   Aplica a Carta y Oficio en Planilla General y planilla_editar.php.
   Debe permanecer al final absoluto de panel.css.
   ===================================================================== */

@media print{

  /*
   * CONTENIDO COMPLETO DE LA TABLA A 12 PX
   */
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table th,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table td,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table th *,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table td *,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table th,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table td,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table th *,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table td *,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table th,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table td,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table th *,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table td *{
    font-size:12px !important;
    line-height:1.2 !important;
  }

  /*
   * ENCABEZADO INSTITUCIONAL COMPLETO A 12 PX:
   * empresa, NIT, nombre del formato, código, versión y fecha.
   */
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-doc-title,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-doc-title *,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-doc-meta,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-doc-meta *,
  body.print-letter.print-portrait .plan-doc-title,
  body.print-letter.print-portrait .plan-doc-title *,
  body.print-letter.print-portrait .plan-doc-meta,
  body.print-letter.print-portrait .plan-doc-meta *,
  body.print-legal.print-portrait .plan-doc-title,
  body.print-legal.print-portrait .plan-doc-title *,
  body.print-legal.print-portrait .plan-doc-meta,
  body.print-legal.print-portrait .plan-doc-meta *{
    font-size:12px !important;
    line-height:1.2 !important;
  }

  /*
   * FIRMAS COMPLETAS A 12 PX:
   * títulos, cédula, nombres, campo manual y textos bajo las líneas.
   */
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sign-box-dual,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sign-box-dual *,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sign-title,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sign-info,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sign-info *,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sign-caption,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .manual-sign-field,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .manual-sign-field *,
  body.print-letter.print-portrait .plan-sign-box-dual,
  body.print-letter.print-portrait .plan-sign-box-dual *,
  body.print-letter.print-portrait .plan-sign-title,
  body.print-letter.print-portrait .plan-sign-info,
  body.print-letter.print-portrait .plan-sign-info *,
  body.print-letter.print-portrait .plan-sign-caption,
  body.print-letter.print-portrait .manual-sign-field,
  body.print-letter.print-portrait .manual-sign-field *,
  body.print-legal.print-portrait .plan-sign-box-dual,
  body.print-legal.print-portrait .plan-sign-box-dual *,
  body.print-legal.print-portrait .plan-sign-title,
  body.print-legal.print-portrait .plan-sign-info,
  body.print-legal.print-portrait .plan-sign-info *,
  body.print-legal.print-portrait .plan-sign-caption,
  body.print-legal.print-portrait .manual-sign-field,
  body.print-legal.print-portrait .manual-sign-field *{
    font-size:11px !important;
    line-height:1.2 !important;
  }
}


/* =====================================================================
   PLANILLA GENERAL Y PLANILLA EDITAR
   Columna VALOR más ancha para evitar cortes de importes.
   Debe permanecer al final absoluto de panel.css.
   ===================================================================== */

/*
 * Distribución total: 100 %
 * FECHA              12 %
 * COMPROBANTE        16 %
 * BENEFICIARIO A     13 %
 * BENEFICIARIO B     13 %
 * CONCEPTO           14 %
 * OBSERVACIÓN A      10.5 %
 * OBSERVACIÓN B      10.5 %
 * VALOR              11 %
 */
.plan-sheet-card table.plan-main-table
.plan-col-observacion-a,
.plan-sheet-card table.plan-main-table
.plan-col-observacion-b{
  width:10.5% !important;
}

.plan-sheet-card table.plan-main-table
.plan-col-valor{
  width:11% !important;
}

/*
 * Mantener los importes completos, alineados a la derecha y sin saltos.
 */
.plan-sheet-card table.plan-main-table
td.plan-value-cell,
.plan-sheet-card table.plan-main-table
td.money.plan-value-cell{
  min-width:0 !important;
  padding-left:5px !important;
  padding-right:5px !important;
  text-align:right !important;
  white-space:nowrap !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
  overflow:visible !important;
  font-variant-numeric:tabular-nums !important;
}

/* Encabezado VALOR centrado dentro de la nueva anchura. */
.plan-sheet-card table.plan-main-table
tr.sec-verde > td:last-child,
.plan-sheet-card table.plan-main-table
tr.sec-rojo-f > td:last-child,
.plan-sheet-card table.plan-main-table
tr.sec-pendiente-f > td:last-child{
  text-align:center !important;
  white-space:nowrap !important;
}

@media print{
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table
  .plan-col-observacion-a,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table
  .plan-col-observacion-b,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table
  .plan-col-observacion-a,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table
  .plan-col-observacion-b,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table
  .plan-col-observacion-a,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table
  .plan-col-observacion-b{
    width:10.5% !important;
  }

  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table
  .plan-col-valor,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table
  .plan-col-valor,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table
  .plan-col-valor{
    width:11% !important;
  }

  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table
  td.plan-value-cell,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table
  td.plan-value-cell,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table
  td.plan-value-cell{
    padding-left:3px !important;
    padding-right:3px !important;
    text-align:right !important;
    white-space:nowrap !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    overflow:visible !important;
  }
}


/* =====================================================================
   PLANILLA GENERAL Y PLANILLA EDITAR
   VISTA GENERAL A 12 PX E IMPRESIÓN A 11 PX
   Debe permanecer al final absoluto de panel.css.
   ===================================================================== */

@media screen{
  .plan-sheet-card,
  .plan-sheet-card table.plan-main-table,
  .plan-sheet-card table.plan-main-table th,
  .plan-sheet-card table.plan-main-table td,
  .plan-sheet-card table.plan-main-table th *,
  .plan-sheet-card table.plan-main-table td *,
  .plan-sheet-card .plan-doc-title,
  .plan-sheet-card .plan-doc-title *,
  .plan-sheet-card .plan-doc-meta,
  .plan-sheet-card .plan-doc-meta *,
  .plan-sheet-card .plan-sign-box-dual,
  .plan-sheet-card .plan-sign-box-dual *,
  .plan-sheet-card .plan-sign-title,
  .plan-sheet-card .plan-sign-info,
  .plan-sheet-card .plan-sign-info *,
  .plan-sheet-card .plan-sign-caption,
  .plan-sheet-card .manual-sign-field,
  .plan-sheet-card .manual-sign-field *{
    font-size:12px !important;
    line-height:1.2 !important;
  }
}

@media print{
  html.planilla-print-isolated body.planilla-print-isolated .plan-sheet-card,
  html.planilla-print-isolated body.planilla-print-isolated .plan-sheet-card *,
  body.print-letter.print-portrait .plan-sheet-card,
  body.print-letter.print-portrait .plan-sheet-card *,
  body.print-legal.print-portrait .plan-sheet-card,
  body.print-legal.print-portrait .plan-sheet-card *{
    font-size:11px !important;
    line-height:1.2 !important;
  }

  html.planilla-print-isolated body.planilla-print-isolated .plan-doc-title,
  html.planilla-print-isolated body.planilla-print-isolated .plan-doc-meta,
  html.planilla-print-isolated body.planilla-print-isolated .plan-doc-meta *,
  html.planilla-print-isolated body.planilla-print-isolated .plan-sign-title,
  html.planilla-print-isolated body.planilla-print-isolated .plan-sign-info,
  html.planilla-print-isolated body.planilla-print-isolated .plan-sign-info *,
  html.planilla-print-isolated body.planilla-print-isolated .plan-sign-caption,
  html.planilla-print-isolated body.planilla-print-isolated .manual-sign-field,
  html.planilla-print-isolated body.planilla-print-isolated .manual-sign-field *,
  body.print-letter.print-portrait .plan-doc-title,
  body.print-letter.print-portrait .plan-doc-meta,
  body.print-letter.print-portrait .plan-doc-meta *,
  body.print-letter.print-portrait .plan-sign-title,
  body.print-letter.print-portrait .plan-sign-info,
  body.print-letter.print-portrait .plan-sign-info *,
  body.print-letter.print-portrait .plan-sign-caption,
  body.print-letter.print-portrait .manual-sign-field,
  body.print-letter.print-portrait .manual-sign-field *,
  body.print-legal.print-portrait .plan-doc-title,
  body.print-legal.print-portrait .plan-doc-meta,
  body.print-legal.print-portrait .plan-doc-meta *,
  body.print-legal.print-portrait .plan-sign-title,
  body.print-legal.print-portrait .plan-sign-info,
  body.print-legal.print-portrait .plan-sign-info *,
  body.print-legal.print-portrait .plan-sign-caption,
  body.print-legal.print-portrait .manual-sign-field,
  body.print-legal.print-portrait .manual-sign-field *{
    font-size:11px !important;
    line-height:1.2 !important;
  }
}


/* =====================================================================
   PLANILLA GENERAL Y PLANILLA EDITAR — PREFIJO A LA IZQUIERDA
   Aplica en pantalla, Carta y Oficio.
   Debe permanecer al final absoluto de panel.css.
   ===================================================================== */

.plan-sheet-card table.plan-main-table .plan-prefix-head,
.plan-sheet-card table.plan-main-table .plan-prefix-cell{
  text-align:left !important;
  vertical-align:middle !important;
  padding-left:8px !important;
  padding-right:5px !important;
  white-space:nowrap !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}

@media print{
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table .plan-prefix-head,
  html.planilla-print-isolated
  body.planilla-print-isolated
  .plan-sheet-card table.plan-main-table .plan-prefix-cell,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table .plan-prefix-head,
  body.print-letter.print-portrait
  .plan-sheet-card table.plan-main-table .plan-prefix-cell,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table .plan-prefix-head,
  body.print-legal.print-portrait
  .plan-sheet-card table.plan-main-table .plan-prefix-cell{
    text-align:left !important;
    vertical-align:middle !important;
    padding-left:3px !important;
    padding-right:2px !important;
    white-space:nowrap !important;
  }
}
