/* Documento impreso — papel blanco, tinta marina, teal como único acento. */

@page {
  size: A4 landscape;
  margin: 11mm 12mm;
}

#app { display: none !important; }
.modal { display: none !important; }

#printRoot {
  display: block !important;
  background: #fff;
  color: #08192C;
  font-family: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
  font-size: 10pt;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.sheet {
  page-break-after: always;
  break-after: page;
  display: flex;
  flex-direction: column;
  min-height: 178mm;
}
.sheet:last-child { page-break-after: auto; break-after: auto; }

/* --- Encabezado --- */

.sheet__head {
  background: #08192C;
  color: #fff;
  padding: 7mm 8mm 6mm;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10mm;
  border-bottom: 2.6mm solid #1F9A8F;
}
.sheet__org {
  font-size: 8.4pt;
  letter-spacing: .03em;
  color: #8FB6C9;
  margin: 0 0 1.5mm;
}
.sheet__title {
  font-family: "Bricolage Grotesque", "IBM Plex Sans", sans-serif;
  font-size: 21pt;
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.015em;
  margin: 0;
}
.sheet__sub { font-size: 9.6pt; color: #A9C6D6; margin: 1.6mm 0 0; }
.sheet__stamp { text-align: right; flex-shrink: 0; }
.sheet__stamp .term {
  font-family: "Bricolage Grotesque", sans-serif;
  font-size: 13pt;
  font-weight: 600;
  color: #54D2C4;
  display: block;
  line-height: 1.1;
}
.sheet__stamp .hours { font-size: 8.6pt; color: #8FB6C9; display: block; margin-top: 1mm; }

/* --- Rejilla --- */

.sheet__grid { width: 100%; border-collapse: collapse; margin-top: 5mm; table-layout: fixed; }

.sheet__grid th {
  font-size: 9.4pt;
  font-weight: 600;
  text-align: left;
  padding: 2.4mm 2.6mm;
  border-bottom: 0.5mm solid #08192C;
  color: #08192C;
}
.sheet__grid th.t { width: 20mm; color: #4A6A85; font-weight: 500; }

.sheet__grid td {
  border-bottom: 0.2mm solid #D3DFE7;
  border-left: 0.2mm solid #E4EBF0;
  padding: 0;
  vertical-align: top;
  height: 15mm;
}
.sheet__grid td.t {
  border-left: none;
  color: #4A6A85;
  font-size: 8.6pt;
  padding: 2mm 2.6mm 0 0;
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

tr.rest td.gapcell {
  height: auto;
  background: #EDF3F6;
  border-bottom: 0.2mm solid #D3DFE7;
  padding: 1.1mm 2.6mm;
  font-size: 7.6pt;
  color: #56778C;
}
tr.rest td.t.gapcell { text-align: right; border-left: none; }

tr.extra-divider td.gapcell {
  height: auto;
  background: #FBF3E2;
  border-top: 0.3mm dashed #C4922B;
  border-bottom: 0.2mm solid #E8DCC2;
  padding: 1.1mm 2.6mm;
  font-size: 7.6pt;
  color: #8A6516;
}
tr.extra-divider td.t.gapcell { text-align: right; border-left: none; }
tr.is-extra td.t { color: #8A6516; }

/* --- Bloque de clase --- */

.cls {
  height: 100%;
  border-left: 1.1mm solid #1F9A8F;
  background: #F1F7F8;
  padding: 1.9mm 2.2mm;
}
.cls--extra { border-left-color: #C4922B; background: #FBF5E8; }
.cls__name {
  font-weight: 600;
  font-size: 9.6pt;
  line-height: 1.2;
  margin: 0 0 0.9mm;
  color: #08192C;
}
.cls__line { font-size: 8.4pt; color: #3E5B72; line-height: 1.35; margin: 0; }
.cls__span { font-size: 8pt; color: #1F7C74; font-variant-numeric: tabular-nums; }
.cls--extra .cls__span { color: #8A6516; }
.cls--cont { border-left-color: #1F9A8F; background: #F1F7F8; }

/* --- Pie --- */

.sheet__foot {
  margin-top: auto;
  padding-top: 3.5mm;
  border-top: 0.3mm solid #C6D5DF;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8mm;
  font-size: 8pt;
  color: #56778C;
}
.sheet__legend { max-width: 74%; line-height: 1.5; }
.sheet__legend b { color: #08192C; font-weight: 600; }
.sheet__issued { text-align: right; white-space: nowrap; }

.sheet__empty {
  margin-top: 8mm;
  padding: 6mm;
  border: 0.3mm dashed #A9BECC;
  text-align: center;
  color: #56778C;
  font-size: 9.4pt;
}
