:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #17231e;
  background: #eef3f0;
  font-synthesis: none;
  --green-950: #08291f;
  --green-900: #0f3d2e;
  --green-700: #1f6b4f;
  --green-100: #e1f0e8;
  --gold: #f2b84b;
  --gold-soft: #fff1c9;
  --red: #b42318;
  --red-soft: #fee4e2;
  --blue: #175cd3;
  --blue-soft: #eaf2ff;
  --gray-50: #f8faf9;
  --gray-100: #edf1ef;
  --gray-300: #c9d2cd;
  --gray-500: #66756e;
  --shadow: 0 8px 22px rgba(17, 44, 33, 0.09);
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; font-size: 14px; background: linear-gradient(180deg, #e8f0ec 0, #f6f8f7 280px); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.loading-screen { min-height: 100vh; display: grid; place-items: center; font-weight: 800; color: var(--green-900); }
.login-page { min-height: 100vh; display: grid; place-items: center; padding: 16px; background: radial-gradient(circle at top left, #245c46, #0b2d22 58%, #061b15); }
.login-card { width: min(400px, 100%); background: white; border-radius: 19px; padding: 25px; box-shadow: 0 20px 60px rgba(0,0,0,.30); }
.brand-mark { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 16px; background: var(--gold); color: var(--green-950); font-size: 23px; font-weight: 1000; margin-bottom: 14px; }
h1,h2,h3,p { margin-top: 0; }
h1 { font-size: clamp(22px, 3vw, 30px); line-height: 1.08; }
h2 { font-size: 19px; }
.muted { color: var(--gray-500); }
.small { font-size: 11px; }
.field { display: grid; gap: 5px; margin-bottom: 10px; }
.field label { font-weight: 800; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: #405149; }
input, select, textarea { width: 100%; border: 1px solid var(--gray-300); border-radius: 8px; padding: 8px 9px; background: white; color: #14221c; outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--green-700); box-shadow: 0 0 0 3px rgba(31,107,79,.14); }
input:disabled, textarea:disabled { background: #edf1ef; color: #57665f; cursor: not-allowed; }
textarea { min-height: 72px; resize: vertical; }
.btn { border: 0; border-radius: 8px; padding: 8px 12px; font-size: 13px; font-weight: 900; background: var(--green-900); color: white; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.btn:hover { filter: brightness(1.05); transform: translateY(-1px); }
.btn:disabled { opacity: .48; cursor: not-allowed; transform: none; }
.btn.secondary { background: white; color: var(--green-900); border: 1px solid var(--gray-300); }
.btn.gold { background: var(--gold); color: var(--green-950); }
.btn.danger { background: var(--red); }
.btn.blue { background: var(--blue); }
.btn.full { width: 100%; }
.btn.small-btn { padding: 5px 8px; border-radius: 7px; font-size: 11px; }
.credentials { margin-top: 13px; padding: 10px; border: 1px dashed #c69a38; border-radius: 9px; background: var(--gold-soft); font-size: 11px; line-height: 1.5; }
.app-shell { min-height: 100vh; }
.topbar { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 14px; background: rgba(8,41,31,.97); color: white; box-shadow: 0 6px 18px rgba(7,39,29,.16); }
.topbar-brand { display: flex; gap: 8px; align-items: center; min-width: 168px; }
.topbar-logo { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--gold); color: var(--green-950); font-size: 12px; font-weight: 1000; }
.topbar-title { font-size: 13px; font-weight: 950; }
.topbar-subtitle { font-size: 10px; color: #bcd0c6; }
.nav { display: flex; gap: 4px; flex-wrap: wrap; justify-content: center; }
.nav button { border: 0; color: #dce8e2; background: transparent; padding: 6px 8px; border-radius: 7px; font-size: 12px; font-weight: 800; }
.nav button:hover, .nav button.active { background: rgba(255,255,255,.12); color: white; }
.user-menu { text-align: right; white-space: nowrap; font-size: 12px; }
.user-menu strong { display: block; }
.user-menu button { border: 0; background: transparent; color: #f9d57f; padding: 0; font-weight: 800; }
.content { width: min(1520px, calc(100% - 20px)); margin: 14px auto 36px; }
.page-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 12px; }
.page-head h1 { margin-bottom: 4px; }
.page-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.card { background: white; border: 1px solid #dbe3df; border-radius: 12px; padding: 13px; box-shadow: var(--shadow); }
.card + .card { margin-top: 10px; }
.grid { display: grid; gap: 10px; }
.grid.two { grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid.three { grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid.five { grid-template-columns: repeat(5, minmax(0,1fr)); }
.summary-strip { display: grid; grid-template-columns: repeat(6, minmax(120px,1fr)); gap: 8px; margin-bottom: 12px; }
.summary-strip.liters-separated { grid-template-columns: repeat(8, minmax(118px, 1fr)); }
.metric { background: white; border: 1px solid #dbe3df; border-radius: 10px; padding: 10px; box-shadow: 0 5px 14px rgba(17,44,33,.05); }
.metric span { display: block; font-size: 9px; font-weight: 900; color: var(--gray-500); text-transform: uppercase; letter-spacing: .04em; }
.metric strong { display: block; font-size: 18px; margin-top: 3px; font-variant-numeric: tabular-nums; }
.islands-grid { display: grid; grid-template-columns: repeat(5, minmax(175px,1fr)); gap: 9px; }
.island-card { background: white; border: 1px solid #dbe3df; border-radius: 12px; overflow: hidden; box-shadow: var(--shadow); }
.island-header { padding: 11px; background: linear-gradient(135deg, var(--green-900), #1c664b); color: white; }
.island-header.island-one { background: linear-gradient(135deg, #7b4d04, #d09526); }
.island-header h3 { margin: 0 0 3px; font-size: 17px; }
.price-chip { display: inline-block; margin-top: 6px; padding: 3px 7px; border-radius: 999px; background: rgba(255,255,255,.17); font-size: 11px; font-weight: 950; }
.shift-block { padding: 9px 10px; border-top: 1px solid #edf1ef; }
.shift-title { display: flex; justify-content: space-between; gap: 7px; align-items: center; margin-bottom: 6px; font-size: 13px; font-weight: 950; }
.status { display: inline-flex; align-items: center; padding: 3px 6px; border-radius: 999px; font-size: 9px; font-weight: 950; }
.status.OPEN, .status.REOPENED { background: var(--blue-soft); color: var(--blue); }
.status.CLOSED { background: var(--green-100); color: var(--green-700); }
.status.LOCKED { background: var(--gray-100); color: #68746f; }
.balance-ok { color: var(--green-700); }
.balance-short { color: var(--red); }
.balance-surplus { color: var(--blue); }
.shift-mini { font-size: 11px; line-height: 1.45; color: #52625a; }
.shift-mini strong { color: #17231e; }
.notice { padding: 9px 11px; border-radius: 9px; background: var(--blue-soft); color: #174d9c; border: 1px solid #c7dcff; }
.notice.warning { background: var(--gold-soft); border-color: #f0d080; color: #694900; }
.notice.danger { background: var(--red-soft); border-color: #f5b7b2; color: #7a271a; }
.toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; }
.toolbar .field { min-width: 165px; margin: 0; }
.section-title { display: flex; justify-content: space-between; align-items: center; gap: 8px; border-bottom: 1px solid #e6ebe8; padding-bottom: 8px; margin-bottom: 10px; }
.section-title h2, .section-title h3 { margin: 0; }
.table-wrap { overflow-x: auto; border: 1px solid #dce4e0; border-radius: 9px; }
table { width: 100%; border-collapse: collapse; font-size: 11px; }
th { background: #e8eee9; color: #33443c; text-transform: uppercase; font-size: 9px; letter-spacing: .04em; text-align: left; }
th, td { padding: 7px 8px; border-bottom: 1px solid #e4e9e6; vertical-align: middle; }
tr:last-child td { border-bottom: 0; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
.serial-table input { min-width: 105px; text-align: right; font-variant-numeric: tabular-nums; }
.form-row { display: grid; grid-template-columns: repeat(4, minmax(110px,1fr)) auto; gap: 7px; align-items: end; }
.form-row.vehicle { grid-template-columns: 120px 1.35fr 100px 1.2fr auto auto; }
.live-balance { position: sticky; top: 60px; }
.balance-card { border: 2px solid var(--green-900); background: linear-gradient(180deg, white, #f4faf7); }
.balance-total { font-size: 29px; font-weight: 1000; font-variant-numeric: tabular-nums; margin: 3px 0 10px; }
.balance-lines { display: grid; gap: 5px; }
.balance-line { display: flex; justify-content: space-between; gap: 9px; padding-bottom: 5px; border-bottom: 1px dashed #cad6d0; }
.balance-line.total { font-size: 14px; font-weight: 950; border-bottom: 2px solid #7c8c84; }
.balance-result { margin-top: 10px; border-radius: 9px; padding: 10px; text-align: center; font-weight: 950; font-size: 15px; }
.balance-result.BALANCED { background: var(--green-100); color: var(--green-700); }
.balance-result.SHORTAGE { background: var(--red-soft); color: var(--red); }
.balance-result.SURPLUS { background: var(--blue-soft); color: var(--blue); }
.shift-layout { display: grid; grid-template-columns: minmax(0, 2.15fr) minmax(270px, .72fr); gap: 12px; align-items: start; }
.tabs-note { font-size: 10px; color: var(--gray-500); }
.role-chip { padding: 3px 6px; border-radius: 7px; font-size: 9px; font-weight: 900; background: #e8eee9; }
.toast { position: fixed; right: 14px; bottom: 14px; z-index: 100; max-width: min(380px, calc(100vw - 28px)); padding: 9px 12px; border-radius: 9px; background: #15231d; color: white; box-shadow: 0 10px 28px rgba(0,0,0,.25); opacity: 0; transform: translateY(12px); pointer-events: none; transition: .2s ease; }
.toast.show { opacity: 1; transform: translateY(0); }
.toast.error { background: #8b1e16; }
.report-header { text-align: center; padding: 12px 0; }
.report-header h1 { margin-bottom: 8px; }
.report-total-row { background: var(--gold-soft); font-weight: 950; }
hr { border: 0; border-top: 1px solid #dfe6e2; margin: 14px 0; }
.empty { text-align: center; padding: 20px; color: var(--gray-500); }
@media (max-width: 1220px) {
  .islands-grid { grid-template-columns: repeat(3, minmax(190px,1fr)); }
  .summary-strip { grid-template-columns: repeat(3, minmax(135px,1fr)); }
  .summary-strip.liters-separated { grid-template-columns: repeat(4, minmax(135px,1fr)); }
  .grid.five { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 900px) {
  .topbar { align-items: flex-start; flex-wrap: wrap; }
  .nav { order: 3; width: 100%; justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; }
  .shift-layout { grid-template-columns: 1fr; }
  .live-balance { position: static; }
  .form-row, .form-row.vehicle { grid-template-columns: 1fr 1fr; }
  .form-row .btn { grid-column: 1 / -1; }
  .grid.two, .grid.three { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .content { width: min(100% - 14px, 1520px); margin-top: 10px; }
  .topbar { padding: 8px; }
  .topbar-subtitle, .user-menu strong { display: none; }
  .islands-grid { grid-template-columns: 1fr; }
  .summary-strip { grid-template-columns: 1fr 1fr; }
  .summary-strip.liters-separated { grid-template-columns: 1fr 1fr; }
  .page-head { align-items: stretch; flex-direction: column; }
  .form-row, .form-row.vehicle { grid-template-columns: 1fr; }
  .grid.five { grid-template-columns: 1fr; }
}
@media print {
  body { background: white; }
  .topbar, .page-actions, .no-print, .toast { display: none !important; }
  .content { width: 100%; margin: 0; }
  .card { box-shadow: none; break-inside: avoid; }
  .report-page { font-size: 11px; }
}

.cash-currency-block { margin-bottom: 13px; }
.cash-currency-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 7px; }
.cash-currency-head h3 { margin: 0; font-size: 15px; }
.cash-currency-head strong { font-size: 17px; font-variant-numeric: tabular-nums; color: var(--green-900); }
.denomination-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(112px, 1fr)); gap: 7px; }
.denomination-card { display: grid; grid-template-columns: 1fr 58px; align-items: center; gap: 4px 8px; padding: 8px; border: 1px solid #d9e2dd; border-radius: 9px; background: #fbfdfc; }
.denomination-value { font-weight: 950; font-size: 14px; color: var(--green-900); }
.denomination-caption { font-size: 9px; text-transform: uppercase; color: var(--gray-500); text-align: right; font-weight: 900; }
.denomination-card input { grid-column: 2; grid-row: 1 / span 2; padding: 6px; text-align: center; font-weight: 900; }
.denomination-subtotal { grid-column: 1 / -1; padding-top: 4px; border-top: 1px dashed #d6ded9; font-size: 11px; font-weight: 900; text-align: right; color: #43554c; }
.cash-summary-row { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; padding: 9px; border-radius: 9px; background: var(--green-100); }
.cash-summary-row div { display: flex; justify-content: space-between; gap: 7px; }
.cash-summary-row span { font-size: 10px; text-transform: uppercase; font-weight: 900; color: #426354; }
.cash-summary-row strong { font-variant-numeric: tabular-nums; }
.vehicle-hint { margin-top: 6px; color: var(--gray-500); font-size: 10px; }
.catalog-form { display: grid; grid-template-columns: 150px minmax(240px,1fr) auto; gap: 8px; align-items: end; }
.catalog-form.denomination { grid-template-columns: 150px 150px minmax(180px,1fr) auto; }
.catalog-form.calibration { grid-template-columns: minmax(220px,1fr) 160px 180px auto; }
.catalog-form .field { margin-bottom: 0; }
.catalog-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.catalog-chips span { padding: 6px 9px; border-radius: 999px; background: var(--green-100); color: var(--green-900); font-weight: 900; }
.tank-catalog-grid { display: grid; grid-template-columns: repeat(5, minmax(180px,1fr)); gap: 9px; }
.tank-catalog-card { border: 1px solid #dbe3df; border-radius: 10px; padding: 9px; background: #fbfdfc; }
.tank-catalog-card h3 { margin-bottom: 4px; }

@media (max-width: 1100px) {
  .tank-catalog-grid { grid-template-columns: repeat(3, minmax(180px,1fr)); }
  .catalog-form, .catalog-form.denomination, .catalog-form.calibration { grid-template-columns: 1fr 1fr; }
  .catalog-form .btn { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  .cash-summary-row { grid-template-columns: 1fr; }
  .catalog-form, .catalog-form.denomination, .catalog-form.calibration { grid-template-columns: 1fr; }
  .tank-catalog-grid { grid-template-columns: 1fr; }
}

/* v1.0.5: separación clara de monedas y equivalencias permanentes */
.cash-section-card { overflow: hidden; }
.cash-currency-layout { display: grid; grid-template-columns: 1fr; gap: 16px; }
.cash-currency-panel { padding: 11px; border: 2px solid #d5dfda; border-radius: 11px; }
.cash-usd-panel { border-color: #9fc4f3; background: #f4f8ff; }
.cash-bs-panel { border-color: #ebc96e; background: #fffaf0; }
.cash-currency-head { padding-bottom: 8px; border-bottom: 1px solid rgba(50,70,60,.14); }
.currency-kicker { display: block; margin-bottom: 2px; font-size: 8px; font-weight: 950; letter-spacing: .08em; color: var(--gray-500); }
.currency-total { display: grid; justify-items: end; line-height: 1.15; }
.currency-total strong { font-size: 18px; }
.currency-total small { margin-top: 3px; font-size: 11px; font-weight: 850; color: var(--gray-500); }
.cash-usd-panel .denomination-card { background: white; border-color: #cbdcf3; }
.cash-bs-panel .denomination-card { background: white; border-color: #ead9a7; }
.cash-summary-row { margin-top: 13px; background: #eef4f1; border: 1px solid #d5dfda; }
.cash-summary-row div { display: grid; grid-template-columns: 1fr; gap: 2px; align-content: start; }
.cash-summary-row div + div { border-left: 1px solid #cbd7d1; padding-left: 10px; }
.cash-summary-row strong { font-size: 15px; }
.cash-summary-row small { color: var(--gray-500); font-weight: 850; font-variant-numeric: tabular-nums; }
.cash-summary-total { background: white; border-radius: 7px; padding: 6px 8px !important; }
.dual-amount { display: inline-grid; justify-items: end; line-height: 1.15; white-space: nowrap; }
.dual-amount strong { font-size: inherit; }
.dual-amount small { display: block; margin-top: 2px; color: var(--gray-500); font-size: 9px; font-weight: 800; }
.balance-dual { display: inline-flex; justify-content: flex-end; }
.dual-balance-total { display: grid; gap: 1px; }
.dual-balance-total strong { font-size: 29px; }
.dual-balance-total span { color: var(--gray-500); font-size: 14px; font-weight: 900; }
.balance-result { display: grid; gap: 3px; }
.balance-result span { font-size: 11px; font-weight: 850; opacity: .88; }
.shift-mini small { display: block; margin-top: 1px; font-size: 9px; color: var(--gray-500); }
.metric strong { line-height: 1.15; overflow-wrap: anywhere; }
.report-page .dual-amount small { font-size: 8px; }

@media (max-width: 680px) {
  .cash-summary-row div + div { border-left: 0; border-top: 1px solid #cbd7d1; padding-left: 0; padding-top: 7px; }
  .currency-total { justify-items: start; }
  .cash-currency-head { align-items: flex-start; flex-direction: column; }
}


/* v1.0.6: administración segura de denominaciones */
.catalog-denomination-list { display: grid; gap: 7px; }
.catalog-denomination-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 9px;
  border: 1px solid #d6dfda;
  border-radius: 9px;
  background: #fbfdfc;
}
.catalog-denomination-item > div { display: grid; gap: 2px; }
.catalog-denomination-item strong { font-size: 13px; color: var(--green-900); }
.catalog-denomination-item small { font-size: 9px; color: var(--gray-500); font-weight: 800; }
.catalog-denomination-item.inactive { opacity: .72; background: var(--gray-100); border-style: dashed; }
.catalog-denomination-item.inactive strong { text-decoration: line-through; color: var(--gray-500); }
.denomination-history-note { margin-top: 12px; }

/* v1.0.7: medidas de tanques y formato operativo configurable */
.grid.four { grid-template-columns: repeat(4, minmax(0,1fr)); }
.tank-measure-table { min-width: 1180px; }
.tank-measure-table th { white-space: nowrap; }
.tank-measure-box { display: grid; grid-template-columns: 82px minmax(74px,1fr); align-items: center; gap: 6px; min-width: 165px; }
.tank-measure-box input { padding: 6px 7px; text-align: right; font-variant-numeric: tabular-nums; }
.tank-measure-box strong { padding: 6px 7px; border-radius: 7px; background: var(--green-100); color: var(--green-900); text-align: right; font-size: 11px; white-space: nowrap; }
.tank-measure-box strong.invalid-value { background: var(--red-soft); color: var(--red); }
.tank-notes { min-width: 170px; }
.report-tanks { min-width: 1180px; }
.report-tanks small { color: var(--gray-500); font-weight: 800; }

@media (max-width: 1100px) {
  .grid.four { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 680px) {
  .grid.four { grid-template-columns: 1fr; }
}

/* v1.0.8: operadores precargados y flujo completo de tanques */
.field-help { display: block; margin-top: 4px; color: var(--gray-500); font-size: 9px; font-weight: 750; }
.catalog-form.operator { grid-template-columns: minmax(280px, 1fr) auto; }
.catalog-operator-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); gap: 8px; }
.tank-daily-list { display: grid; gap: 12px; margin-top: 12px; }
.tank-daily-card { overflow: hidden; }
.tank-daily-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid #dce5e0; }
.tank-daily-head h2 { margin: 0; }
.tank-reserve-chip { display: grid; justify-items: end; padding: 6px 10px; border-radius: 9px; background: var(--gold-soft); line-height: 1.12; }
.tank-reserve-chip span { font-size: 8px; font-weight: 950; text-transform: uppercase; color: var(--gray-500); }
.tank-reserve-chip strong { font-size: 13px; color: var(--green-900); }
.tank-reserve-chip small { font-size: 9px; font-weight: 850; color: var(--gray-500); }
.tank-flow-grid { display: grid; grid-template-columns: repeat(4,minmax(180px,1fr)); gap: 8px; margin-top: 10px; }
.tank-step { position: relative; padding: 9px; border: 1px solid #d8e2dd; border-radius: 10px; background: #fbfdfc; }
.tank-step.opening { background: #f2f7ff; border-color: #bed2ee; }
.tank-step.closing { background: #f1faf5; border-color: #afd7bf; }
.tank-step > label { display: block; margin: 0 0 6px 24px; font-size: 10px; font-weight: 950; text-transform: uppercase; color: var(--green-900); }
.tank-step > small { display: block; margin-top: 5px; color: var(--gray-500); font-size: 8px; line-height: 1.25; }
.tank-step-number { position: absolute; top: 8px; left: 8px; display: grid; place-items: center; width: 18px; height: 18px; border-radius: 999px; background: var(--green-900); color: white; font-size: 9px; font-weight: 950; }
.tank-step .tank-measure-box { min-width: 0; grid-template-columns: minmax(70px,.8fr) minmax(86px,1fr); }
.tank-step input:disabled { background: #e9efec; color: #33433b; font-weight: 850; }
.tank-delivery-grid { display: grid; grid-template-columns: minmax(150px,.8fr) minmax(150px,.7fr) minmax(180px,.8fr) minmax(240px,1.4fr); gap: 8px; margin-top: 10px; padding: 10px; border-radius: 10px; background: #fffaf0; border: 1px solid #ead7a0; }
.tank-delivery-grid .field { margin: 0; }
.tank-result-grid { display: grid; grid-template-columns: repeat(5,minmax(150px,1fr)); gap: 7px; margin-top: 10px; }
.tank-result-grid > div { display: grid; gap: 2px; padding: 8px; border: 1px solid #dbe4df; border-radius: 9px; background: #f8fbf9; }
.tank-result-grid > div.important { background: var(--green-100); border-color: #abd0bd; }
.tank-result-grid span { font-size: 8px; font-weight: 950; text-transform: uppercase; color: var(--gray-500); }
.tank-result-grid strong { font-size: 13px; color: var(--green-900); font-variant-numeric: tabular-nums; }
.tank-result-grid small { font-size: 8px; color: var(--gray-500); }
.tank-save-bar { position: sticky; bottom: 8px; z-index: 5; display: flex; align-items: center; gap: 12px; margin-top: 12px; padding: 9px 12px; border: 1px solid #d0dcd5; border-radius: 11px; background: rgba(255,255,255,.96); box-shadow: 0 8px 28px rgba(16,55,38,.16); }
.tank-save-bar span { font-size: 10px; color: var(--gray-500); font-weight: 800; }
.report-tanks-detailed { min-width: 1900px; }
.warning-cell { background: #fff4d6; color: #7a4b00; font-weight: 900; }

@media (max-width: 1150px) {
  .tank-flow-grid { grid-template-columns: repeat(2,minmax(180px,1fr)); }
  .tank-delivery-grid { grid-template-columns: repeat(2,minmax(180px,1fr)); }
  .tank-result-grid { grid-template-columns: repeat(3,minmax(150px,1fr)); }
  .catalog-form.operator { grid-template-columns: 1fr auto; }
}
@media (max-width: 680px) {
  .tank-daily-head { align-items: flex-start; }
  .tank-flow-grid, .tank-delivery-grid, .tank-result-grid { grid-template-columns: 1fr; }
  .tank-save-bar { align-items: stretch; flex-direction: column; }
  .catalog-form.operator { grid-template-columns: 1fr; }
}

/* v1.0.9: bancos administrables y múltiples facturas/descargas */
.catalog-form.bank { grid-template-columns: minmax(260px, 1fr) auto auto; }
.catalog-bank-list { display: grid; gap: 7px; }
.catalog-bank-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 10px; border: 1px solid #d9e3de; border-radius: 9px; background: #fbfdfc; }
.catalog-bank-item.inactive { opacity: .62; background: #f2f3f3; }
.catalog-bank-item > div:first-child { display: grid; gap: 2px; }
.catalog-bank-item small { color: var(--gray-500); font-size: 9px; }
.catalog-bank-actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }

.page-subhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 18px 0 8px; }
.page-subhead h2 { margin: 0; }
.dispatch-count { padding: 6px 10px; border-radius: 999px; background: var(--green-100); color: var(--green-900); font-weight: 900; font-size: 10px; }
.tank-opening-closing-grid { display: grid; grid-template-columns: repeat(2, minmax(360px, 1fr)); gap: 10px; margin-top: 10px; }
.tank-opening-closing-card { padding: 10px; border: 1px solid #d8e2dd; border-radius: 11px; background: #fbfdfc; }
.tank-opening-closing-card h3 { margin: 0; font-size: 14px; }
.tank-two-measures { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 9px; }
.tank-daily-mini-results { display: grid; grid-template-columns: repeat(3, minmax(120px, 1fr)); gap: 6px; margin-top: 8px; }
.tank-daily-mini-results > div { display: grid; gap: 2px; padding: 7px; border-radius: 8px; background: #f1f6f3; border: 1px solid #dbe5df; }
.tank-daily-mini-results span { font-size: 8px; font-weight: 950; text-transform: uppercase; color: var(--gray-500); }
.tank-daily-mini-results strong { color: var(--green-900); font-size: 12px; }
.tank-daily-mini-results small { font-size: 8px; color: var(--gray-500); }
.tank-day-note { margin: 8px 0 0; }

.tank-dispatch-list { display: grid; gap: 11px; }
.tank-dispatch-card { border-left: 5px solid var(--green-700); }
.tank-dispatch-card.new-dispatch { border-left-color: var(--gold); background: #fffdf7; }
.tank-dispatch-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid #dce5e0; }
.tank-dispatch-head h2 { margin: 0; }
.dispatch-tanks-chip { padding: 5px 9px; border-radius: 999px; background: var(--green-100); color: var(--green-900); font-size: 9px; font-weight: 900; text-align: right; }
.tank-dispatch-data-grid { display: grid; grid-template-columns: minmax(170px, .8fr) minmax(170px, .8fr) minmax(190px, .9fr) minmax(240px, 1.2fr); gap: 8px; margin-top: 10px; }
.tank-dispatch-data-grid .field { margin: 0; }
.dispatch-allocation-list { display: grid; gap: 6px; margin-top: 10px; }
.dispatch-allocation-row { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(190px, 1fr) minmax(190px, 1fr) minmax(130px, .6fr); gap: 8px; align-items: end; padding: 8px; border: 1px solid #dfe5e2; border-radius: 9px; background: #f3f5f4; opacity: .62; }
.dispatch-allocation-row.selected { background: #f8fcfa; border-color: #b7d3c3; opacity: 1; }
.dispatch-tank-selector { display: flex; align-items: center; gap: 8px; min-height: 38px; cursor: pointer; }
.dispatch-tank-selector input { width: 18px; height: 18px; accent-color: var(--green-700); }
.dispatch-tank-selector span { display: grid; gap: 2px; }
.dispatch-tank-selector small { color: var(--gray-500); font-size: 8px; }
.dispatch-allocation-row .field { margin: 0; }
.dispatch-allocation-result { display: grid; gap: 2px; padding: 7px; border: 1px solid #d7e2dc; border-radius: 8px; background: white; min-height: 38px; }
.dispatch-allocation-result span { font-size: 8px; font-weight: 950; text-transform: uppercase; color: var(--gray-500); }
.dispatch-allocation-result strong { font-size: 12px; color: var(--green-900); text-align: right; }
.tank-dispatch-result-grid { display: grid; grid-template-columns: repeat(3, minmax(180px, 1fr)); gap: 7px; margin-top: 9px; }
.tank-dispatch-result-grid > div { display: grid; gap: 2px; padding: 8px; border-radius: 9px; background: var(--green-100); border: 1px solid #b9d5c6; }
.tank-dispatch-result-grid span { font-size: 8px; font-weight: 950; text-transform: uppercase; color: var(--gray-500); }
.tank-dispatch-result-grid strong { color: var(--green-900); font-size: 13px; }
.tank-dispatch-result-grid small { font-size: 8px; color: var(--gray-500); }
.dispatch-actions { display: flex; gap: 8px; margin-top: 9px; }
.dispatch-invoice-image-field { grid-column: 1 / -1; padding: 9px; border: 1px solid #dbe5df; border-radius: 9px; background: #f8fbf9; }
.dispatch-invoice-image-field input[type="file"] { padding: 6px; background: white; }
.dispatch-invoice-image-field small { display: block; margin-top: 5px; color: var(--gray-500); font-size: 9px; }
.dispatch-invoice-image-status { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-top: 6px; }
.dispatch-invoice-image-name { color: var(--green-900); font-size: 10px; font-weight: 850; overflow-wrap: anywhere; }
.dispatch-invoice-image-buttons { display: flex; gap: 6px; margin-left: auto; flex-wrap: wrap; }
.btn.compact { min-height: 30px; padding: 5px 9px; font-size: 9px; }
.invoice-image-preview-card { width: min(1050px, 96vw); max-height: 94vh; display: flex; flex-direction: column; overflow: hidden; border-radius: 15px; background: white; box-shadow: 0 24px 80px rgba(0,0,0,.38); }
.invoice-image-preview-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; background: var(--green-900); color: white; }
.invoice-image-preview-head span { display: block; color: #bdd0c7; font-size: 8px; font-weight: 950; letter-spacing: .08em; }
.invoice-image-preview-head h2 { margin: 2px 0 0; color: white; font-size: 18px; }
.invoice-image-preview-body { min-height: 320px; overflow: auto; padding: 12px; background: #eef3f0; text-align: center; }
.invoice-image-preview-body img { max-width: 100%; height: auto; max-height: calc(94vh - 90px); object-fit: contain; background: white; border-radius: 8px; }
.tank-dispatch-summary-strip { grid-template-columns: repeat(5, minmax(130px, 1fr)); margin-bottom: 9px; }
.dispatch-measure-summary { white-space: nowrap; margin-bottom: 2px; }
.report-dispatches { min-width: 1200px; }

@media (max-width: 1100px) {
  .tank-opening-closing-grid { grid-template-columns: 1fr; }
  .tank-dispatch-data-grid { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
  .dispatch-allocation-row { grid-template-columns: minmax(180px, 1fr) 1fr 1fr; }
  .dispatch-allocation-result { grid-column: 2 / -1; }
  .tank-dispatch-summary-strip { grid-template-columns: repeat(3, minmax(130px, 1fr)); }
}
@media (max-width: 720px) {
  .catalog-form.bank, .tank-dispatch-data-grid, .tank-two-measures, .tank-daily-mini-results, .tank-dispatch-result-grid, .tank-dispatch-summary-strip { grid-template-columns: 1fr; }
  .catalog-bank-item, .tank-dispatch-head, .page-subhead { align-items: stretch; flex-direction: column; }
  .catalog-bank-actions, .dispatch-actions { justify-content: stretch; flex-direction: column; }
  .dispatch-invoice-image-buttons { width: 100%; margin-left: 0; }
  .dispatch-invoice-image-buttons .btn { flex: 1; }
  .dispatch-allocation-row { grid-template-columns: 1fr; }
  .dispatch-allocation-result { grid-column: auto; }
}

/* Multiestación v1.1 */
.station-switch { display:flex; flex-direction:column; gap:2px; min-width:180px; font-size:10px; color:#dcece5; }
.station-switch select { min-height:30px; padding:4px 28px 4px 8px; border-radius:7px; border:1px solid rgba(255,255,255,.25); background:#fff; color:#123f33; font-weight:700; }
.station-list { display:grid; gap:10px; }
.station-card { display:flex; align-items:center; justify-content:space-between; gap:14px; border:1px solid #ccd8d3; border-radius:10px; padding:12px; background:#fff; }
.station-card.selected { border:2px solid #0b5b46; background:#eef8f4; }
.station-card.inactive { opacity:.58; background:#f2f2f2; }
.station-card h3 { margin:2px 0 4px; }
.station-card p { margin:0 0 4px; color:#5d6864; }
.station-code { display:inline-block; font-size:10px; font-weight:800; letter-spacing:.05em; padding:2px 6px; border-radius:10px; background:#e5efeb; color:#0c513f; }
.station-card-actions { display:flex; flex-direction:column; gap:6px; min-width:112px; }
.checks-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.check-card { display:flex; align-items:center; gap:7px; padding:8px; border:1px solid #d4dfda; border-radius:8px; background:#f9fbfa; }
.check-card input { width:auto; min-height:auto; }
.toggle-line { display:flex; align-items:center; gap:6px; font-size:12px; font-weight:700; }
.toggle-line input { width:auto; min-height:auto; }
.island-config-card.inactive { opacity:.58; background:#f2f2f2; }
@media (max-width: 980px) {
  .station-switch { order:3; width:100%; }
  .station-card { align-items:flex-start; flex-direction:column; }
  .station-card-actions { flex-direction:row; width:100%; }
}


/* v1.2.4: ciclo protegido de seriales */
.serial-cycle-notice { display:flex; align-items:flex-start; gap:10px; margin:8px 0; padding:9px 11px; border-radius:9px; border:1px solid #d7e1dc; }
.serial-cycle-notice strong { white-space:nowrap; color:var(--green-900); }
.serial-cycle-notice span { color:var(--gray-500); font-size:10px; line-height:1.35; }
.serial-cycle-notice.protected { background:#edf8f3; border-color:#acd2bf; }
.serial-cycle-notice.pending { background:#fff8e5; border-color:#efd487; }
.initial-correction-actions { margin-top:9px; display:flex; justify-content:flex-end; }
.initial-correction-panel { margin-top:9px; padding:11px; border:1px solid #e3b7b7; border-radius:10px; background:#fff8f8; }
.initial-correction-panel[hidden] { display:none; }
.initial-correction-panel .button-row { display:flex; gap:8px; justify-content:flex-end; margin-top:8px; }
.save-hint { display:inline-block; margin-left:10px; color:var(--gray-500); font-size:9px; font-weight:750; }
.serial-initial:disabled { background:#e9efec; color:#173c31; font-weight:900; cursor:not-allowed; }
@media (max-width:720px) {
  .serial-cycle-notice { flex-direction:column; gap:3px; }
  .serial-cycle-notice strong { white-space:normal; }
  .save-hint { display:block; margin:7px 0 0; }
  .initial-correction-panel .button-row { flex-direction:column; }
}


/* v1.2.5: catálogo completo de vehículos y fotografía bajo consulta */
.catalog-vehicle-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 8px;
  align-items: end;
  padding: 11px;
  border: 1px solid #d9e2dd;
  border-radius: 10px;
  background: #f8fbf9;
}
.catalog-vehicle-form .field { margin: 0; }
.catalog-vehicle-form .vehicle-owner-field { grid-column: span 2; }
.catalog-vehicle-form .vehicle-wide-field { grid-column: span 2; }
.catalog-vehicle-form .vehicle-photo-field { grid-column: span 2; }
.catalog-vehicle-form input[type="file"] { padding: 6px; background: white; }
.catalog-vehicle-form small { color: var(--gray-500); font-size: 10px; }
.vehicle-remove-photo {
  display: flex;
  gap: 7px;
  align-items: center;
  min-height: 34px;
  font-size: 11px;
  font-weight: 800;
  color: var(--red);
}
.vehicle-remove-photo input { width: auto; }
.vehicle-form-actions { display: flex; gap: 7px; align-items: center; justify-content: flex-end; }
.vehicle-search-toolbar { justify-content: space-between; }
.vehicle-search-toolbar .field { flex: 1; max-width: 560px; }
.catalog-vehicle-actions { display: flex; flex-wrap: wrap; gap: 5px; }
.table-subtext { display: block; color: var(--gray-500); font-size: 9px; margin-top: 2px; }
.photo-status { display: inline-flex; padding: 3px 7px; border-radius: 999px; background: var(--gray-100); color: var(--gray-500); font-size: 9px; font-weight: 900; }
.photo-status.yes { background: var(--green-100); color: var(--green-700); }
.inactive-row { opacity: .66; background: #f5f6f5; }

.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(5, 22, 16, .72);
  backdrop-filter: blur(3px);
}
.vehicle-modal-card {
  width: min(980px, 100%);
  max-height: calc(100vh - 36px);
  overflow: auto;
  border-radius: 15px;
  background: white;
  box-shadow: 0 24px 80px rgba(0,0,0,.35);
}
.vehicle-modal-head {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 15px 17px;
  background: var(--green-900);
  color: white;
}
.vehicle-modal-head h2 { margin: 2px 0 0; font-size: 24px; }
.vehicle-modal-kicker { display: block; color: #bcd0c6; font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.modal-close {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 9px;
  background: rgba(255,255,255,.13);
  color: white;
  font-size: 25px;
  line-height: 1;
}
.vehicle-profile {
  display: grid;
  grid-template-columns: minmax(250px, .85fr) minmax(0, 1.5fr);
  gap: 15px;
  padding: 16px;
}
.vehicle-photo-box {
  min-height: 300px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid #d8e1dc;
  border-radius: 11px;
  background: #eef3f0;
}
.vehicle-photo-box img {
  width: 100%;
  height: 100%;
  max-height: 520px;
  object-fit: contain;
  background: #f7f9f8;
}
.vehicle-photo-empty { color: var(--gray-500); font-weight: 900; text-align: center; padding: 30px; }
.vehicle-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  align-content: start;
}
.vehicle-info-item {
  min-height: 58px;
  padding: 9px;
  border: 1px solid #e0e7e3;
  border-radius: 9px;
  background: #fbfdfc;
}
.vehicle-info-item span { display: block; margin-bottom: 4px; color: var(--gray-500); font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; }
.vehicle-info-item strong { display: block; overflow-wrap: anywhere; font-size: 12px; }
.vehicle-modal-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 9px;
  padding: 12px 16px;
  border-top: 1px solid #e0e7e3;
  background: #f8faf9;
}

@media (max-width: 900px) {
  .catalog-vehicle-form { grid-template-columns: 1fr 1fr; }
  .catalog-vehicle-form .vehicle-owner-field,
  .catalog-vehicle-form .vehicle-wide-field,
  .catalog-vehicle-form .vehicle-photo-field { grid-column: span 2; }
  .vehicle-profile { grid-template-columns: 1fr; }
  .vehicle-photo-box { min-height: 220px; }
}
@media (max-width: 580px) {
  .catalog-vehicle-form { grid-template-columns: 1fr; }
  .catalog-vehicle-form .vehicle-owner-field,
  .catalog-vehicle-form .vehicle-wide-field,
  .catalog-vehicle-form .vehicle-photo-field { grid-column: auto; }
  .vehicle-info-grid { grid-template-columns: 1fr; }
  .vehicle-modal-foot { align-items: stretch; flex-direction: column; }
}

.soft-separator {
  border: 0;
  border-top: 1px solid #d9e3de;
  margin: 1rem 0;
}

.privacy-login-note {
  border-color: #a8cdbd;
  background: #eef8f3;
}

/* Permisos personalizados v1.2.9 */
.users-permissions-layout {
  grid-template-columns: minmax(430px, 1.05fr) minmax(520px, 1fr);
  align-items: start;
}
.permission-editor-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 14px 0 9px;
  padding: 10px 12px;
  border: 1px solid #d7e2dd;
  border-radius: 10px;
  background: #f5f9f7;
}
.permission-default-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 900;
}
.permission-default-toggle input { width: 17px; height: 17px; }
.permission-mode-note { color: var(--gray-500); font-size: 11px; text-align: right; }
.permission-matrix {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.permission-group {
  padding: 10px;
  border: 1px solid #dce5e0;
  border-radius: 11px;
  background: #fbfdfc;
}
.permission-group h4 {
  margin: 0 0 8px;
  padding-bottom: 7px;
  border-bottom: 1px solid #e3eae6;
  color: var(--green-800);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.permission-options { display: grid; gap: 6px; }
.permission-option {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  padding: 7px;
  border: 1px solid transparent;
  border-radius: 8px;
  cursor: pointer;
}
.permission-option:hover { border-color: #b9d1c5; background: #f0f7f3; }
.permission-option input { width: 16px; height: 16px; margin-top: 2px; }
.permission-option strong { display: block; font-size: 11px; }
.permission-option small { display: block; margin-top: 2px; color: var(--gray-500); font-size: 9px; line-height: 1.35; }
.permission-option.permission-unavailable { opacity: .48; cursor: not-allowed; }
.permission-summary {
  display: inline-block;
  padding: 4px 7px;
  border-radius: 999px;
  background: #e9f4ee;
  color: var(--green-800);
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
}
.permission-summary.custom { background: #fff0c7; color: #745000; }
.user-permission-modal-card {
  width: min(1050px, 100%);
  max-height: calc(100vh - 34px);
  overflow: auto;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 24px 80px rgba(0,0,0,.38);
}
.user-permission-modal-card form { padding: 16px; }
.modal-form-actions {
  position: sticky;
  bottom: 0;
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  margin: 14px -16px -16px;
  padding: 12px 16px;
  border-top: 1px solid #dce5e0;
  background: rgba(255,255,255,.97);
}

@media (max-width: 1120px) {
  .users-permissions-layout { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .permission-matrix { grid-template-columns: 1fr; }
  .permission-editor-head { align-items: flex-start; flex-direction: column; }
  .permission-mode-note { text-align: left; }
}

/* Dashboard ejecutivo v1.3.0 */
.dashboard-kicker {
  display: block;
  margin-bottom: 4px;
  color: var(--green-700);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.dashboard-page-head { align-items: center; }
.dashboard-filters { align-items: end; }
.dashboard-filters .field { min-width: 142px; margin-bottom: 0; }
.dashboard-empty-day { margin-bottom: 12px; }
.executive-metrics-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(150px, 1fr));
  gap: 9px;
  margin-bottom: 17px;
}
.executive-metric {
  min-height: 105px;
  padding: 13px;
  border: 1px solid #dbe4df;
  border-left: 5px solid var(--green-700);
  border-radius: 13px;
  background: linear-gradient(145deg, #fff, #f5f9f7);
  box-shadow: 0 8px 22px rgba(15,61,46,.08);
}
.executive-metric > span {
  display: block;
  min-height: 24px;
  color: var(--gray-500);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.executive-metric strong { display: block; margin-top: 6px; font-size: 22px; line-height: 1.05; font-variant-numeric: tabular-nums; }
.executive-metric small { display: block; margin-top: 7px; color: var(--gray-500); font-size: 10px; font-weight: 800; }
.executive-metric.gold-tone { border-left-color: var(--gold); background: linear-gradient(145deg, #fff, #fff8e5); }
.executive-metric.green-tone, .executive-metric.ok-tone { border-left-color: #27845f; }
.executive-metric.blue-tone { border-left-color: var(--blue); background: linear-gradient(145deg, #fff, #edf4ff); }
.executive-metric.danger-tone { border-left-color: var(--red); background: linear-gradient(145deg, #fff, #fff0ef); }
.dashboard-section-head, .dashboard-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.dashboard-section-head { margin: 2px 0 10px; }
.dashboard-section-head h2, .dashboard-panel-head h2 { margin: 0; }
.dashboard-section-head p { margin: 3px 0 0; color: var(--gray-500); font-size: 11px; }
.dashboard-tanks-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(190px, 1fr));
  gap: 10px;
  margin-bottom: 17px;
}
.dashboard-tank-card {
  overflow: hidden;
  border: 1px solid #d8e1dc;
  border-radius: 14px;
  background: white;
  box-shadow: var(--shadow);
}
.dashboard-tank-card.super97 { box-shadow: inset 0 4px 0 var(--gold), var(--shadow); }
.dashboard-tank-card.premium91 { box-shadow: inset 0 4px 0 var(--green-700), var(--shadow); }
.dashboard-tank-head { display: flex; align-items: start; justify-content: space-between; gap: 8px; padding: 12px 12px 7px; }
.dashboard-tank-head span { display: block; color: var(--gray-500); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.dashboard-tank-head strong { display: block; margin-top: 2px; font-size: 12px; }
.dashboard-tank-head b { padding: 5px 7px; border-radius: 999px; background: var(--green-100); color: var(--green-900); font-size: 11px; }
.tank-visual-wrap { display: grid; grid-template-columns: 78px minmax(0,1fr); gap: 10px; align-items: center; padding: 5px 12px 13px; }
.tank-visual {
  position: relative;
  width: 68px;
  height: 188px;
  margin: 0 auto;
  overflow: hidden;
  border: 3px solid #8ca99b;
  border-radius: 22px 22px 15px 15px / 15px 15px 12px 12px;
  background: linear-gradient(90deg, #eef4f1, #fff 47%, #dce8e2);
  box-shadow: inset 8px 0 12px rgba(255,255,255,.8), inset -8px 0 12px rgba(40,75,59,.12), 0 8px 14px rgba(20,55,41,.14);
}
.tank-visual::before { content: ''; position: absolute; z-index: 5; left: 8px; right: 8px; top: 8px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.75); }
.tank-fuel-fill {
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: visible;
  background: linear-gradient(90deg, #e4862d, #ffb453 46%, #d96a13);
  transition: height .65s cubic-bezier(.2,.8,.2,1);
}
.super97 .tank-fuel-fill { background: linear-gradient(90deg, #e59b1d, #ffd36a 48%, #d77e08); }
.tank-fuel-fill::before,
.tank-fuel-fill::after,
.tank-water-fill::before {
  content: '';
  position: absolute;
  left: -55%;
  width: 210%;
  height: 17px;
  border-radius: 43% 57% 48% 52%;
  pointer-events: none;
}
.tank-fuel-fill::before {
  top: -8px;
  background: rgba(255,255,255,.35);
  animation: tank-wave 5.5s linear infinite;
}
.tank-fuel-fill::after {
  top: -5px;
  background: rgba(255,196,95,.38);
  animation: tank-wave-reverse 7.2s linear infinite;
}
.super97 .tank-fuel-fill::after { background: rgba(255,227,142,.46); }
.liquid-shine {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.liquid-shine::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 24px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.28), transparent);
  transform: skewX(-12deg);
  animation: liquid-shimmer 4.8s ease-in-out infinite;
}
.tank-water-fill {
  position: absolute;
  z-index: 4;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(90deg, #1677ca, #60c2ff 50%, #0d68b4);
  opacity: .92;
  transition: height .55s ease;
}
.tank-water-fill::before {
  top: -6px;
  height: 11px;
  background: rgba(193,234,255,.62);
  animation: tank-wave 4.2s linear infinite;
}
.tank-fuel-fill.is-empty::before,
.tank-fuel-fill.is-empty::after,
.tank-fuel-fill.is-empty .liquid-shine,
.tank-water-fill.is-empty::before { display: none; }
.tank-reserve-zone {
  position: absolute;
  z-index: 3;
  left: 0;
  right: 0;
  bottom: 0;
  border-top: 1px solid rgba(30,129,88,.22);
  background: linear-gradient(0deg, rgba(33,142,92,.16), rgba(33,142,92,.035));
  pointer-events: none;
}
.tank-reserve-marker {
  position: absolute;
  z-index: 7;
  left: -3px;
  right: -3px;
  height: 0;
  border-top: 2px dashed #1d8d5d;
  filter: drop-shadow(0 1px 1px rgba(255,255,255,.9));
  pointer-events: none;
}
.tank-reserve-marker::before,
.tank-reserve-marker::after {
  content: '';
  position: absolute;
  top: -5px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #1d8d5d;
  box-shadow: 0 0 0 2px rgba(255,255,255,.8);
}
.tank-reserve-marker::before { left: -1px; }
.tank-reserve-marker::after { right: -1px; }
.tank-reserve-marker span {
  position: absolute;
  right: 2px;
  bottom: 4px;
  padding: 2px 4px;
  border-radius: 5px;
  background: rgba(15,73,52,.9);
  color: white;
  font-size: 6px;
  font-weight: 950;
  letter-spacing: .02em;
  text-transform: uppercase;
  white-space: nowrap;
}
.dashboard-tank-card.reserve-alert {
  animation: reserve-card-pulse 2.2s ease-in-out infinite;
  box-shadow: inset 0 4px 0 #cf3b2f, 0 0 0 2px rgba(207,59,47,.15), var(--shadow);
}
.dashboard-tank-card.reserve-alert .dashboard-tank-head b {
  background: #ffe1de;
  color: #a6241b;
  animation: reserve-badge-pulse 1.5s ease-in-out infinite;
}
.tank-capacity-label, .tank-current-label { position: absolute; z-index: 6; left: 3px; right: 3px; text-align: center; font-size: 8px; font-weight: 950; text-shadow: 0 1px 2px #fff; }
.tank-capacity-label { top: 22px; color: #395148; }
.tank-current-label { bottom: 9px; color: #10261d; }
.tank-dashboard-values { display: grid; gap: 6px; }
.tank-dashboard-values div { padding-bottom: 5px; border-bottom: 1px dashed #dce4e0; }
.tank-dashboard-values span { display: block; color: var(--gray-500); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.tank-dashboard-values strong { display: block; margin-top: 2px; font-size: 11px; }
.tank-dashboard-values .water-value strong { color: var(--blue); }
.tank-dashboard-values .reserve-value {
  margin: -1px -3px 0;
  padding: 6px 5px;
  border: 1px solid #b9ddcb;
  border-radius: 7px;
  background: linear-gradient(135deg, #f3fbf7, #e3f4eb);
}
.tank-dashboard-values .reserve-value span { color: #287a57; }
.tank-dashboard-values .reserve-value strong { color: #155f41; }
@keyframes tank-wave {
  0% { transform: translateX(-8%) rotate(0deg); }
  50% { transform: translateX(4%) rotate(2deg); }
  100% { transform: translateX(-8%) rotate(0deg); }
}
@keyframes tank-wave-reverse {
  0% { transform: translateX(6%) rotate(1deg); }
  50% { transform: translateX(-7%) rotate(-2deg); }
  100% { transform: translateX(6%) rotate(1deg); }
}
@keyframes liquid-shimmer {
  0%, 18% { left: -45px; opacity: 0; }
  35% { opacity: .9; }
  70%, 100% { left: 110%; opacity: 0; }
}
@keyframes reserve-card-pulse {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes reserve-badge-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(207,59,47,.24); }
  50% { box-shadow: 0 0 0 6px rgba(207,59,47,0); }
}
@media (prefers-reduced-motion: reduce) {
  .tank-fuel-fill::before,
  .tank-fuel-fill::after,
  .tank-water-fill::before,
  .liquid-shine::after,
  .dashboard-tank-card.reserve-alert,
  .dashboard-tank-card.reserve-alert .dashboard-tank-head b { animation: none !important; }
  .tank-fuel-fill, .tank-water-fill { transition: none; }
}
@media print {
  .tank-fuel-fill::before,
  .tank-fuel-fill::after,
  .tank-water-fill::before,
  .liquid-shine::after,
  .dashboard-tank-card.reserve-alert,
  .dashboard-tank-card.reserve-alert .dashboard-tank-head b { animation: none !important; }
}
.dashboard-two-columns { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 11px; margin-bottom: 12px; }
.dashboard-panel { padding: 13px; overflow: hidden; border: 1px solid #dbe3df; border-radius: 14px; background: white; box-shadow: var(--shadow); }
.chart-legend { display: flex; gap: 13px; color: var(--gray-500); font-size: 10px; font-weight: 900; }
.chart-legend span::before { content: ''; display: inline-block; width: 17px; height: 3px; margin-right: 5px; vertical-align: middle; border-radius: 3px; }
.chart-legend .purchase::before { background: var(--green-700); }
.chart-legend .sale::before { background: var(--gold); }
.monthly-line-chart { width: 100%; min-height: 235px; margin-top: 7px; overflow: visible; }
.chart-grid-line { stroke: #e4ebe7; stroke-width: 1; }
.chart-axis { stroke: #b6c4bd; stroke-width: 1.2; }
.chart-axis-label { fill: #6b7972; font-size: 9px; font-weight: 700; }
.chart-line { fill: none; stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; }
.chart-purchase { stroke: var(--green-700); }
.chart-sale { stroke: var(--gold); }
.chart-dot { stroke: white; stroke-width: 1.4; }
.chart-dot-purchase { fill: var(--green-700); }
.chart-dot-sale { fill: var(--gold); }
.dashboard-bottom-grid { align-items: stretch; }
.water-summary-list { display: grid; gap: 5px; margin-top: 10px; }
.water-summary-row { display: grid; grid-template-columns: minmax(0,1fr) 80px 80px; align-items: center; gap: 8px; padding: 8px; border: 1px solid #e2e9e5; border-radius: 9px; background: #f9fbfa; }
.water-summary-row span strong, .water-summary-row span small { display: block; }
.water-summary-row span small { margin-top: 2px; color: var(--gray-500); font-size: 9px; }
.water-summary-row b { color: var(--blue); text-align: right; }
.water-summary-row em { color: #395148; text-align: right; font-style: normal; font-weight: 900; }
.water-total-row { display: flex; justify-content: space-between; align-items: center; margin-top: 9px; padding: 10px; border-radius: 9px; background: var(--blue-soft); color: #164d97; font-weight: 900; }
.operational-status-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 7px; margin-top: 10px; }
.operational-status-grid div { padding: 9px; border-radius: 9px; background: #f4f8f6; text-align: center; }
.operational-status-grid span { display: block; color: var(--gray-500); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.operational-status-grid strong { display: block; margin-top: 3px; font-size: 22px; }
.dashboard-alert-list { display: grid; gap: 6px; margin-top: 9px; }
.dashboard-alert { display: grid; grid-template-columns: 8px minmax(0,1fr); gap: 9px; align-items: center; padding: 8px; border: 1px solid #e1e8e4; border-radius: 9px; }
.dashboard-alert > span { width: 8px; height: 8px; border-radius: 50%; background: var(--blue); }
.dashboard-alert.warning > span { background: var(--gold); }
.dashboard-alert.danger > span { background: var(--red); }
.dashboard-alert strong, .dashboard-alert small { display: block; }
.dashboard-alert small { margin-top: 2px; color: var(--gray-500); font-size: 9px; }
.dashboard-no-alerts { padding: 18px 10px; color: var(--green-700); text-align: center; font-weight: 850; }
.dashboard-quick-actions { display: flex; justify-content: flex-end; gap: 7px; margin-top: 12px; }

/* Agua fija editable por tanque */
.tank-water-section { margin-bottom: 11px; }
.tank-water-grid { display: grid; grid-template-columns: repeat(5, minmax(180px,1fr)); gap: 8px; margin-top: 10px; }
.tank-water-card { padding: 10px; border: 1px solid #dce5e0; border-radius: 11px; background: linear-gradient(155deg, #fff, #f4f8fb); }
.tank-water-card-head { display: flex; justify-content: space-between; gap: 7px; }
.tank-water-card-head span, .tank-water-card-head strong, .tank-water-card-head small { display: block; }
.tank-water-card-head span { color: var(--gray-500); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.tank-water-card-head strong { margin-top: 2px; font-size: 12px; }
.tank-water-card-head small { margin-top: 2px; color: var(--gray-500); font-size: 8px; }
.fixed-water-badge { align-self: start; padding: 4px 6px; border-radius: 999px; background: var(--blue-soft); color: var(--blue) !important; font-size: 8px !important; }
.tank-water-reading { display: grid; grid-template-columns: repeat(2,1fr); gap: 5px; margin: 9px 0; }
.tank-water-reading div { padding: 7px; border-radius: 8px; background: white; border: 1px solid #e1e8e4; }
.tank-water-reading span { display: block; color: var(--gray-500); font-size: 7px; font-weight: 900; text-transform: uppercase; }
.tank-water-reading strong { display: block; margin-top: 3px; color: var(--blue); font-size: 13px; }
.tank-water-edit-form { margin-top: 9px; padding-top: 9px; border-top: 1px dashed #cbd8d1; }
.tank-water-total { margin-left: auto; max-width: 380px; }
.water-history-modal { width: min(980px,100%); }
.water-cell { color: var(--blue); background: #f3f8ff; }

@media (max-width: 1250px) {
  .executive-metrics-grid { grid-template-columns: repeat(3, minmax(150px,1fr)); }
  .dashboard-tanks-grid, .tank-water-grid { grid-template-columns: repeat(3, minmax(190px,1fr)); }
}
@media (max-width: 900px) {
  .dashboard-two-columns { grid-template-columns: 1fr; }
  .dashboard-tanks-grid, .tank-water-grid { grid-template-columns: repeat(2, minmax(175px,1fr)); }
  .executive-metrics-grid { grid-template-columns: repeat(2, minmax(145px,1fr)); }
}
@media (max-width: 620px) {
  .dashboard-page-head, .dashboard-section-head, .dashboard-panel-head { align-items: flex-start; flex-direction: column; }
  .executive-metrics-grid, .dashboard-tanks-grid, .tank-water-grid { grid-template-columns: 1fr; }
  .tank-visual-wrap { grid-template-columns: 86px minmax(0,1fr); }
  .water-summary-row { grid-template-columns: minmax(0,1fr) 72px 72px; }
  .dashboard-quick-actions { align-items: stretch; flex-direction: column; }
  .dashboard-quick-actions .btn { width: 100%; }
}

/* Restablecimiento confiable de contraseñas */
.password-reset-entry { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 14px 0 4px; padding: 12px; border: 1px solid #d8e3dd; border-radius: 11px; background: #f6f9f7; }
.password-reset-entry strong, .password-reset-entry small { display: block; }
.password-reset-entry small { margin-top: 3px; color: var(--gray-500); }
.password-reset-overlay { z-index: 1200; }
.password-reset-modal-card { width: min(700px, 100%); }
.password-reset-body { padding: 18px 20px 22px; }
.password-reset-explanation { margin-bottom: 14px; padding: 11px; border-radius: 9px; background: var(--blue-soft); color: #174c91; font-weight: 750; }
.password-input-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.password-reset-help { display: block; margin-top: -4px; color: var(--gray-500); }
.password-reset-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 17px; }
.password-reset-success { text-align: center; }
.password-reset-success-icon { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 10px; border-radius: 50%; background: #dff3e8; color: var(--green-700); font-size: 29px; font-weight: 950; }
.password-reset-success h3 { margin-bottom: 4px; }
.password-reset-success p { color: var(--gray-500); }
.credential-result-row { display: grid; grid-template-columns: 150px minmax(0, 1fr); align-items: center; gap: 10px; margin-top: 10px; padding: 11px; border: 1px solid #dce5e0; border-radius: 9px; background: #f8faf9; text-align: left; }
.credential-result-row span { color: var(--gray-500); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.credential-result-row strong { overflow-wrap: anywhere; font-size: 16px; }
.credential-password { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: #174c91; }
.password-reset-warning { margin-top: 12px; padding: 9px; border: 1px solid #efc15c; border-radius: 8px; background: #fff4ce; color: #6f4c00; font-weight: 800; }
@media (max-width: 620px) {
  .password-reset-entry, .password-reset-actions { align-items: stretch; flex-direction: column; }
  .credential-result-row { grid-template-columns: 1fr; }
}


/* v1.3.4 · programación del formato operativo por fecha */
.operation-mode-planner { border-top: 4px solid var(--gold, #f5b83f); }
.mode-current-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 10px 0 18px;
  padding: 14px 18px;
  border: 1px solid #b9d6ca;
  border-radius: 14px;
  background: linear-gradient(135deg, #edf8f3, #fff9e9);
}
.mode-current-banner span,
.mode-current-banner small { display: block; color: #536b63; }
.mode-current-banner strong { display: block; margin-top: 3px; font-size: 1.22rem; color: #0b4c38; }
.operation-mode-schedule-form { align-items: end; }
.operation-mode-schedule-form .action-field .btn { width: 100%; min-height: 46px; }
.scheduled-modes-wrap { margin-top: 18px; }
.scheduled-modes-wrap h3 { margin: 0 0 10px; }
@media (max-width: 760px) {
  .mode-current-banner { align-items: flex-start; flex-direction: column; }
}

/* v1.3.6: ajustes finales de efectivo y reportes por período */
.cash-adjustment-card { width: min(1120px, 100%); }
.cash-adjustment-content { padding: 16px; }
.cash-adjustment-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 12px 0; }
.cash-adjustment-currency { padding: 11px; border: 2px solid #d8e2dd; border-radius: 12px; }
.cash-adjustment-currency.usd { background: #f3f8ff; border-color: #a8c9f4; }
.cash-adjustment-currency.bs { background: #fff9eb; border-color: #ebca71; }
.cash-adjustment-result { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 12px 0; }
.cash-adjustment-result > div { display: grid; gap: 3px; padding: 10px; border: 1px solid #dbe4df; border-radius: 9px; background: #f7faf8; }
.cash-adjustment-result span { font-size: 9px; font-weight: 900; text-transform: uppercase; color: var(--gray-500); }
.cash-adjustment-result strong { font-size: 17px; color: var(--green-900); }
.report-filter-bar { display: flex; align-items: end; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.report-filter-bar .field { min-width: 145px; margin: 0; }
.report-kpis-four { grid-template-columns: repeat(4, minmax(150px, 1fr)); }
.vehicle-period-report table td, .vehicle-period-report table th,
.operator-ranking-report table td, .operator-ranking-report table th { vertical-align: middle; }
.operator-ranking-list { display: grid; gap: 8px; margin: 12px 0; }
.operator-rank-row { display: grid; grid-template-columns: 44px minmax(0, 1fr) minmax(150px, .3fr); align-items: center; gap: 12px; padding: 10px; border: 1px solid #dce5e0; border-radius: 11px; background: #fbfdfc; }
.operator-rank-number { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--gold); color: var(--green-950); font-size: 16px; font-weight: 1000; }
.operator-rank-head { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 5px; }
.operator-rank-head strong { font-size: 14px; }
.operator-rank-head span { font-weight: 1000; color: var(--green-900); }
.operator-rank-track { height: 9px; overflow: hidden; border-radius: 999px; background: #e3ebe7; }
.operator-rank-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--green-700), var(--gold)); }
.operator-rank-main small { display: block; margin-top: 5px; color: var(--gray-500); }
.operator-rank-extra { display: grid; justify-items: end; gap: 2px; }
.operator-rank-extra span { font-size: 9px; font-weight: 900; text-transform: uppercase; color: var(--gray-500); }
.operator-rank-extra small { color: var(--gray-500); font-weight: 800; }

@media (max-width: 900px) {
  .cash-adjustment-grid { grid-template-columns: 1fr; }
  .cash-adjustment-result { grid-template-columns: 1fr; }
  .report-kpis-four { grid-template-columns: 1fr 1fr; }
  .operator-rank-row { grid-template-columns: 38px minmax(0, 1fr); }
  .operator-rank-extra { grid-column: 2; justify-items: start; }
}
@media (max-width: 580px) {
  .report-filter-bar { width: 100%; justify-content: stretch; }
  .report-filter-bar .field, .report-filter-bar .btn { width: 100%; }
  .report-kpis-four { grid-template-columns: 1fr; }
}

/* v1.3.7 · módulos opcionales, reserva editable y operación diaria prioritaria */
.station-modules-card { border-top: 4px solid var(--green-700); }
.station-feature-grid { display: grid; grid-template-columns: repeat(2, minmax(260px, 1fr)); gap: 10px; margin: 10px 0 12px; }
.station-feature-option { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 10px; align-items: start; padding: 12px; border: 1px solid #d8e2dd; border-radius: 11px; background: #f9fbfa; cursor: pointer; }
.station-feature-option input { width: 19px; height: 19px; margin-top: 2px; accent-color: var(--green-700); }
.station-feature-option span, .station-feature-option strong, .station-feature-option small { display: block; }
.station-feature-option strong { color: var(--green-950); font-size: 13px; }
.station-feature-option small { margin-top: 4px; color: var(--gray-500); line-height: 1.35; }
.station-feature-option.disabled { opacity: .5; cursor: not-allowed; }
.tank-primary-operation-section { border-top: 4px solid var(--green-700); box-shadow: 0 10px 30px rgba(16,55,38,.1); }
.fixed-tank-setting-section { margin-top: 16px; }
.tank-reserve-section { border-top: 4px solid #42a675; }
.tank-reserve-setting-card { background: linear-gradient(155deg, #fff, #eff9f3); border-color: #c9e2d5; }
.reserve-badge { background: #dff3e8; color: #176344 !important; }
.reserve-reading strong { color: #176344; }
.tank-reserve-edit-form { margin-top: 9px; padding-top: 9px; border-top: 1px dashed #b9d8c8; }
.tank-reserve-total { margin-left: auto; max-width: 380px; background: #e4f5eb; color: #176344; }
@media (max-width: 850px) {
  .station-feature-grid { grid-template-columns: 1fr; }
}


/* v1.3.8 · historial consolidado de vehículos */
.vehicle-history-kpis { grid-template-columns: repeat(5, minmax(140px, 1fr)); }
.vehicle-history-notice { margin: 12px 0 16px; }
.history-source-badge,
.operative-source-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 7px;
  border-radius: 999px;
  font-size: 8px;
  font-weight: 1000;
  letter-spacing: .05em;
}
.history-source-badge { background: #fff1c7; color: #8b5a00; border: 1px solid #edcb6f; }
.operative-source-badge { background: #dff3e8; color: #176344; border: 1px solid #afd7c0; }
@media (max-width: 1100px) {
  .vehicle-history-kpis { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
}
@media (max-width: 700px) {
  .vehicle-history-kpis { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 460px) {
  .vehicle-history-kpis { grid-template-columns: 1fr; }
}

/* v1.3.9 · biblioteca de formatos y balance volumétrico */
.format-catalog { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 340px)); gap: 12px; margin: 12px 0 18px; }
.format-card { position: relative; padding: 18px; border: 1px solid #d5e0da; border-radius: 15px; background: linear-gradient(145deg, #ffffff, #eef7f2); box-shadow: var(--shadow); }
.format-card.active { border-top: 5px solid var(--green-700); }
.format-card h2 { margin: 7px 0 5px; }
.format-card p { margin: 0 0 12px; color: var(--gray-500); line-height: 1.45; }
.format-number, .section-kicker { color: var(--green-700); font-size: 9px; font-weight: 1000; letter-spacing: .13em; text-transform: uppercase; }
.format-toolbar { align-items: end; }
.volumetric-report { padding: 16px; overflow: hidden; }
.volumetric-official-header { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(560px, 2fr) minmax(260px, .8fr); min-height: 104px; margin-bottom: 14px; border: 1px solid #252525; }
.volumetric-logo-space { border-right: 1px solid #252525; }
.volumetric-title-block { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; padding: 10px; text-align: center; }
.volumetric-title-block strong { font-size: 13px; }
.volumetric-title-block span { font-size: 13px; }
.volumetric-title-block small { color: #4f5f57; font-weight: 900; text-transform: uppercase; }
.volumetric-doc-meta { display: grid; grid-template-rows: 1fr 1fr 1fr; border-left: 1px solid #252525; font-size: 10px; text-align: center; }
.volumetric-doc-meta > div { display: grid; border-bottom: 1px solid #252525; }
.volumetric-doc-meta > div:last-child { border-bottom: 0; }
.volumetric-doc-meta b, .volumetric-doc-meta span { display: block; padding: 3px; }
.volumetric-doc-meta b { border-bottom: 1px solid #252525; }
.volumetric-doc-meta .meta-two { grid-template-columns: 1fr 1fr; }
.volumetric-doc-meta .meta-two p { margin: 0; }
.volumetric-doc-meta .meta-two p:first-child { border-right: 1px solid #252525; }
.volumetric-table-wrap { width: 100%; overflow-x: auto; }
.volumetric-table { min-width: 1660px; width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 8px; }
.volumetric-table th, .volumetric-table td { height: 22px; padding: 3px 4px; border: 1px solid #1c2c25; white-space: nowrap; }
.volumetric-table .group-head th { background: #4595cf; color: white; font-size: 8px; text-align: center; }
.volumetric-table .group-head th:nth-child(3), .volumetric-table .group-head th:nth-child(4), .volumetric-table .group-head th:nth-child(5), .volumetric-table .group-head th:nth-child(6), .volumetric-table .group-head th:nth-child(7) { color: #eaff00; }
.volumetric-table .fuel-head th { background: #00b52a; color: #071e12; text-align: center; }
.volumetric-table .fuel-head th:nth-child(3n) { background: #8b8b8b; color: white; }
.volumetric-table tbody tr:nth-child(odd) td { background: #eaf4fb; }
.volumetric-table tbody tr:nth-child(even) td { background: #ffffff; }
.volumetric-table td:nth-child(2) { text-align: center; }
.volumetric-table .day-number { width: 34px; }
.volumetric-table .negative { color: #a52020; font-weight: 900; }
.volumetric-table .positive { color: #176344; font-weight: 900; }
.volumetric-table .balance-empty { color: transparent; }
.volumetric-table .volumetric-total-row th, .volumetric-table .volumetric-total-row td { background: #7fb9e8 !important; font-weight: 1000; }
.volumetric-summary { width: min(560px, 100%); margin: 20px 0 0 70px; }
.volumetric-summary table { width: 100%; border-collapse: collapse; font-size: 10px; }
.volumetric-summary th, .volumetric-summary td { padding: 5px 7px; border: 1px solid #202d27; text-align: right; }
.volumetric-summary th:first-child { background: #80bce9; text-align: left; }
.volumetric-summary thead th { background: #0dac28; color: #fff; text-align: center; }
.volumetric-summary thead th:first-child, .volumetric-summary thead th:last-child { background: #80bce9; color: #10271d; }
.format-generated-at { margin: 12px 0 0; color: var(--gray-500); font-size: 9px; text-align: right; }
@media (max-width: 900px) {
  .volumetric-official-header { grid-template-columns: 1fr; }
  .volumetric-logo-space { display: none; }
  .volumetric-doc-meta { border-top: 1px solid #252525; border-left: 0; }
  .volumetric-summary { margin-left: 0; }
}
@media print {
  @page { size: landscape; margin: 6mm; }
  .volumetric-report { padding: 0; border: 0; }
  .volumetric-official-header { grid-template-columns: 18% 57% 25%; min-height: 65px; margin-bottom: 4px; }
  .volumetric-title-block { gap: 3px; padding: 4px; }
  .volumetric-title-block strong, .volumetric-title-block span { font-size: 8px; }
  .volumetric-title-block small { font-size: 6px; }
  .volumetric-doc-meta { font-size: 6px; }
  .volumetric-doc-meta b, .volumetric-doc-meta span { padding: 1px; }
  .volumetric-table-wrap { overflow: visible; }
  .volumetric-table { min-width: 0; font-size: 5.2px; }
  .volumetric-table th, .volumetric-table td { height: 13px; padding: 1px 2px; }
  .volumetric-table .group-head th { font-size: 5.4px; }
  .volumetric-summary { width: 38%; margin: 6px 0 0 4%; }
  .volumetric-summary table { font-size: 6px; }
  .volumetric-summary th, .volumetric-summary td { padding: 2px 3px; }
  .format-generated-at { display: none; }
}

/* v1.3.11 · control acumulado Súper Premium */
.super-premium-tabs { display:flex; gap:8px; margin: 10px 0 14px; }
.super-tab { border:1px solid #c9d8d0; background:#fff; color:#173e31; border-radius:999px; padding:10px 18px; font-weight:900; cursor:pointer; }
.super-tab.active { background:var(--green-800); color:#fff; border-color:var(--green-800); box-shadow:0 6px 18px rgba(18,83,61,.18); }
.super-premium-page { display:grid; gap:14px; }
.super-premium-hero { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px 24px; border-radius:18px; background:linear-gradient(120deg,#0b4b37 0%,#176344 62%,#f2b53f 180%); color:#fff; box-shadow:var(--shadow); }
.super-premium-hero h2 { margin:4px 0 6px; font-size:30px; }
.super-premium-hero p { margin:0; max-width:720px; opacity:.88; }
.super-premium-hero .section-kicker { color:#ffd875; }
.super-premium-big-number { min-width:280px; padding:16px 20px; border-radius:14px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); text-align:right; }
.super-premium-big-number span,.super-premium-big-number small { display:block; font-size:10px; font-weight:900; letter-spacing:.08em; }
.super-premium-big-number strong { display:block; margin:5px 0; font-size:28px; }
.super-premium-big-number small { color:#ffe18a; font-size:14px; }
.super-premium-metrics { grid-template-columns:repeat(4,minmax(180px,1fr)); }
.super-premium-metrics .metric { min-height:92px; }
.super-premium-relation tfoot th,.super-premium-relation tfoot td { background:#fff1b8; font-weight:1000; }
.super-premium-relation .negative { color:#b52626; font-weight:900; }
.super-premium-relation .positive { color:#176344; font-weight:900; }
.deposit-summary { grid-template-columns:repeat(3,minmax(220px,1fr)); }
.inactive-row { opacity:.58; text-decoration:line-through; }
@media (max-width:1100px){ .super-premium-metrics{grid-template-columns:repeat(2,minmax(180px,1fr));}.super-premium-hero{align-items:flex-start;flex-direction:column}.super-premium-big-number{width:100%;text-align:left}.deposit-summary{grid-template-columns:1fr 1fr 1fr;} }
@media (max-width:700px){ .super-premium-metrics,.deposit-summary{grid-template-columns:1fr}.super-premium-tabs{overflow:auto}.super-premium-hero h2{font-size:24px} }
@media print { .super-premium-tabs{display:none}.super-premium-hero{background:#fff!important;color:#111;border:1px solid #222;box-shadow:none}.super-premium-big-number{border:1px solid #444;background:#fff}.super-premium-big-number small,.super-premium-hero .section-kicker{color:#111}.super-premium-page .card{box-shadow:none} }

/* v1.3.12 · interfaz ejecutiva compacta y pestañas mejoradas */
:root {
  --ui-radius-lg: 16px;
  --ui-radius-md: 11px;
  --ui-soft: #f4f8f6;
  --ui-line: #d8e4de;
  --ui-gold-soft: #fff6da;
}

/* Navegación principal: más limpia, compacta y legible */
.topbar { gap: 8px; padding: 7px 12px; }
.nav { gap: 3px; align-items: center; }
.nav button {
  position: relative;
  padding: 7px 9px;
  border-radius: 8px;
  font-size: 10.5px;
  font-weight: 950;
  letter-spacing: .035em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.nav button:hover { background: rgba(255,255,255,.09); transform: translateY(-1px); }
.nav button.active {
  background: rgba(255,255,255,.15);
  color: #fff;
  box-shadow: inset 0 -2px 0 var(--gold), 0 3px 10px rgba(0,0,0,.08);
}
.nav button.active::after {
  content: '';
  position: absolute;
  left: 22%; right: 22%; bottom: 1px;
  height: 2px;
  border-radius: 999px;
  background: var(--gold);
}

/* Cabeceras de página más ejecutivas */
.page-head { align-items: center; margin-bottom: 10px; }
.page-head h1 { font-size: clamp(24px, 2.2vw, 34px); letter-spacing: -.025em; }
.page-head .section-kicker { letter-spacing: .12em; }
.report-filter-bar { padding: 6px; border: 1px solid var(--ui-line); border-radius: 12px; background: rgba(255,255,255,.72); }
.report-filter-bar .field label { font-size: 9px; text-transform: uppercase; letter-spacing: .06em; }

/* Grid real para métricas: corrige el apilado vertical de Súper Premium */
.metric-grid { display: grid; gap: 10px; }
.metric {
  min-width: 0;
  border-radius: var(--ui-radius-md);
  padding: 11px 12px;
  background: linear-gradient(180deg,#fff 0%,#fbfdfc 100%);
  box-shadow: 0 5px 14px rgba(17,44,33,.045);
}
.metric span { font-size: 8.5px; letter-spacing: .075em; }
.metric strong { font-size: 17px; line-height: 1.12; }

/* Pestañas internas: aspecto de selector profesional */
.super-premium-tabs {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 4px 0 10px;
  padding: 4px;
  border: 1px solid var(--ui-line);
  border-radius: 12px;
  background: #eef4f1;
  box-shadow: 0 4px 12px rgba(17,44,33,.04);
}
.super-tab {
  min-width: 150px;
  border: 0;
  background: transparent;
  color: #48645a;
  border-radius: 9px;
  padding: 9px 16px;
  font-size: 11px;
  font-weight: 1000;
  letter-spacing: .07em;
  text-transform: uppercase;
  box-shadow: none;
  transition: all .16s ease;
}
.super-tab:hover { background: rgba(255,255,255,.72); color: var(--green-900); }
.super-tab.active {
  background: var(--green-800);
  color: #fff;
  box-shadow: 0 5px 14px rgba(18,83,61,.18);
}

/* Súper Premium: menos scroll y jerarquía visual clara */
.super-premium-page { gap: 10px; }
.super-premium-hero {
  gap: 16px;
  padding: 16px 18px;
  border-radius: var(--ui-radius-lg);
  background: linear-gradient(118deg,#0a4935 0%,#176344 68%,#b98416 145%);
  box-shadow: 0 10px 26px rgba(10,73,53,.14);
}
.super-premium-hero h2 {
  margin: 2px 0 4px;
  font-size: 25px;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: .015em;
}
.super-premium-hero p { max-width: 760px; font-size: 12px; line-height: 1.4; }
.super-premium-big-number {
  min-width: 250px;
  padding: 12px 16px;
  border-radius: 12px;
  background: rgba(255,255,255,.13);
}
.super-premium-big-number span { text-transform: uppercase; letter-spacing: .09em; }
.super-premium-big-number strong { margin: 3px 0; font-size: 24px; }
.super-premium-big-number small { font-size: 13px; }

.super-premium-metrics { grid-template-columns: repeat(4, minmax(160px,1fr)); }
.super-premium-metrics .metric {
  position: relative;
  min-height: 78px;
  padding: 10px 12px;
  overflow: hidden;
}
.super-premium-metrics .metric::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg,var(--green-700),#6ea88f);
}
.super-premium-metrics .metric:nth-child(3)::before,
.super-premium-metrics .metric:nth-child(7)::before { background: linear-gradient(90deg,#c78b13,var(--gold)); }
.super-premium-metrics .metric:nth-child(5)::before { background: linear-gradient(90deg,#166d4d,#31a276); }
.super-premium-metrics .metric:nth-child(6)::before { background: linear-gradient(90deg,#4d6a60,#7f998f); }
.super-premium-metrics .metric span { margin-top: 2px; }
.super-premium-metrics .metric strong { font-size: 17px; }

/* Relaciones/tablas: títulos en mayúsculas y espacio reducido */
.super-premium-page .card { padding: 11px 12px; border-radius: 13px; }
.super-premium-page .section-title { margin-bottom: 8px; }
.super-premium-page .section-title h2 {
  margin: 0 0 2px;
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: .025em;
}
.super-premium-page .tabs-note { font-size: 10px; line-height: 1.35; }
.super-premium-page table { font-size: 11px; }
.super-premium-page table th {
  font-size: 9px;
  letter-spacing: .055em;
  text-transform: uppercase;
  background: #edf4f0;
}
.super-premium-page table th,
.super-premium-page table td { padding: 7px 8px; }
.super-premium-relation tfoot th,
.super-premium-relation tfoot td { background: var(--ui-gold-soft); }

.deposit-summary { grid-template-columns: repeat(3,minmax(180px,1fr)); }

/* Botones: tipografía consistente */
.btn, button.btn { font-weight: 950; letter-spacing: .015em; }

@media (max-width: 1280px) {
  .nav button { padding: 6px 7px; font-size: 9.5px; }
  .super-premium-metrics { grid-template-columns: repeat(3,minmax(160px,1fr)); }
}
@media (max-width: 980px) {
  .super-premium-metrics { grid-template-columns: repeat(2,minmax(150px,1fr)); }
  .super-premium-hero { align-items: flex-start; flex-direction: column; }
  .super-premium-big-number { width: 100%; text-align: left; }
}
@media (max-width: 700px) {
  .super-premium-tabs { display: flex; width: 100%; overflow: hidden; }
  .super-tab { flex: 1 1 0; min-width: 0; padding: 9px 8px; font-size: 9.5px; }
  .super-premium-metrics, .deposit-summary { grid-template-columns: 1fr; }
  .super-premium-hero h2 { font-size: 22px; }
}
@media print {
  .metric-grid { display:grid !important; }
  .super-premium-metrics { grid-template-columns: repeat(4,1fr) !important; gap: 5px; }
  .super-premium-metrics .metric { min-height: 0; padding: 6px; box-shadow: none; }
}


/* v1.3.13 · carga rápida en islas */
.cash-currency-panel {
  overflow: hidden;
}
.denomination-grid {
  gap: 9px;
}
.denomination-card {
  --denom-accent: #1f7a59;
  position: relative;
  min-height: 76px;
  grid-template-columns: minmax(52px, 1fr) 70px;
  padding: 9px 10px 8px 12px;
  border: 1px solid color-mix(in srgb, var(--denom-accent) 30%, #d9e2dd);
  border-left: 5px solid var(--denom-accent);
  border-radius: 11px;
  background: linear-gradient(145deg, #fff 0%, color-mix(in srgb, var(--denom-accent) 5%, #fff) 100%);
  transition: border-color .12s ease, box-shadow .12s ease, transform .12s ease, background .12s ease;
}
.denomination-card:focus-within {
  border-color: var(--denom-accent);
  background: color-mix(in srgb, var(--denom-accent) 8%, #fff);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--denom-accent) 17%, transparent), 0 7px 18px rgba(14,56,40,.10);
  transform: translateY(-1px);
}
.denomination-value {
  font-size: 15px;
  line-height: 1;
  color: var(--denom-accent);
}
.denomination-caption {
  font-size: 8px;
  letter-spacing: .08em;
  color: #68776f;
}
.denomination-card .cash-quantity {
  width: 70px;
  min-height: 35px;
  padding: 5px 7px;
  border: 2px solid color-mix(in srgb, var(--denom-accent) 24%, #cfd9d3);
  border-radius: 9px;
  background: #fff;
  color: #071f17;
  font-size: 16px;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
  caret-color: var(--denom-accent);
}
.denomination-card .cash-quantity:focus {
  outline: none;
  border-color: var(--denom-accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--denom-accent) 15%, transparent);
}
.denomination-subtotal {
  color: color-mix(in srgb, var(--denom-accent) 72%, #24352d);
  border-top-color: color-mix(in srgb, var(--denom-accent) 20%, #d6ded9);
}
.cash-usd-panel .denomination-card:nth-child(1) { --denom-accent:#0b6e4f; }
.cash-usd-panel .denomination-card:nth-child(2) { --denom-accent:#13795b; }
.cash-usd-panel .denomination-card:nth-child(3) { --denom-accent:#176f87; }
.cash-usd-panel .denomination-card:nth-child(4) { --denom-accent:#245f9e; }
.cash-usd-panel .denomination-card:nth-child(5) { --denom-accent:#4a5aa8; }
.cash-usd-panel .denomination-card:nth-child(6) { --denom-accent:#6b4da0; }
.cash-bs-panel .denomination-card:nth-child(1) { --denom-accent:#b36b00; }
.cash-bs-panel .denomination-card:nth-child(2) { --denom-accent:#a75c00; }
.cash-bs-panel .denomination-card:nth-child(3) { --denom-accent:#996200; }
.cash-bs-panel .denomination-card:nth-child(4) { --denom-accent:#8a6c00; }
.cash-bs-panel .denomination-card:nth-child(5) { --denom-accent:#7a7110; }
.cash-bs-panel .denomination-card:nth-child(6) { --denom-accent:#6e7622; }
.cash-bs-panel .denomination-card:nth-child(7) { --denom-accent:#5c7b32; }
.cash-bs-panel .denomination-card:nth-child(8) { --denom-accent:#477d42; }

/* Sin flechas +/-: el operador escribe la cantidad directamente. */
.cash-quantity,
.no-number-spinner,
.serial-initial,
.serial-final,
#vehicle-liters {
  -moz-appearance: textfield;
  appearance: textfield;
}
.cash-quantity::-webkit-inner-spin-button,
.cash-quantity::-webkit-outer-spin-button,
.no-number-spinner::-webkit-inner-spin-button,
.no-number-spinner::-webkit-outer-spin-button,
.serial-initial::-webkit-inner-spin-button,
.serial-initial::-webkit-outer-spin-button,
.serial-final::-webkit-inner-spin-button,
.serial-final::-webkit-outer-spin-button,
#vehicle-liters::-webkit-inner-spin-button,
#vehicle-liters::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.quick-replace-input:focus {
  outline: none;
  border-color: #1a7454 !important;
  box-shadow: 0 0 0 3px rgba(26,116,84,.13) !important;
  background: #f8fffb !important;
}
#pos-form .field:focus-within label,
#vehicle-form .field:focus-within label {
  color: #0f6a4b;
}
#pos-form input.quick-replace-input,
#vehicle-form input.quick-replace-input {
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 700px) {
  .denomination-card { grid-template-columns: minmax(48px,1fr) 64px; }
  .denomination-card .cash-quantity { width:64px; }
}

.quick-replace-input[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
}
.quick-replace-input[type="number"]::-webkit-inner-spin-button,
.quick-replace-input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* v1.3.14 · Reporte anual visual de compras y ventas */
.annual-fuel-report-section {
  margin: 14px 0 16px;
  padding: 14px;
  border: 1px solid #d7e2dc;
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.annual-report-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.annual-report-title-row h2 { margin: 2px 0 3px; font-size: 20px; letter-spacing: .01em; }
.annual-report-title-row p { margin: 0; color: var(--gray-500); font-size: 10px; }
.annual-report-actions { display: flex; gap: 7px; align-items: center; }
.tanker-receipts-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-bottom: 11px; }
.tanker-receipt-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(190px, .9fr) minmax(160px, 1.1fr);
  align-items: center;
  min-height: 112px;
  padding: 8px 13px;
  overflow: hidden;
  border: 1px solid #d8e3dd;
  border-radius: 13px;
  background: linear-gradient(135deg,#f9fcfa,#edf6f1);
}
.tanker-receipt-card.super97 { border-top: 4px solid #d5a52c; background: linear-gradient(135deg,#fffdf7,#f8f2df); }
.tanker-receipt-card.premium91 { border-top: 4px solid #1d7656; }
.tanker-stage { position: relative; height: 94px; display: flex; align-items: center; justify-content: center; }
.tanker-stage img {
  position: relative;
  z-index: 2;
  display: block;
  width: min(100%, 275px);
  max-height: 88px;
  object-fit: contain;
  filter: drop-shadow(0 8px 7px rgba(18,44,33,.18));
  animation: tanker-idle 3.4s ease-in-out infinite;
}
.tanker-road {
  position: absolute;
  left: 3%; right: 3%; bottom: 6px;
  height: 5px;
  border-radius: 999px;
  background: linear-gradient(90deg,#d6dfda 0 18%,#aebcb5 18% 34%,#d6dfda 34% 52%,#aebcb5 52% 70%,#d6dfda 70% 100%);
  background-size: 130px 100%;
  animation: road-drift 4.8s linear infinite;
  opacity: .75;
}
.tanker-copy { padding: 4px 0 4px 9px; border-left: 1px dashed #ccd8d2; }
.tanker-copy span { display:block; color: var(--gray-500); font-size: 8px; font-weight: 950; letter-spacing: .07em; }
.tanker-copy strong { display:block; margin-top: 3px; font-size: 13px; }
.tanker-copy b { display:block; margin-top: 5px; color: var(--green-900); font-size: 25px; line-height: 1; }
.tanker-receipt-card.super97 .tanker-copy b { color: #9b6905; }
.tanker-copy small { display:block; margin-top: 5px; color: var(--gray-500); font-size: 9px; }
@keyframes tanker-idle { 0%,100% { transform: translateY(1px); } 50% { transform: translateY(-3px); } }
@keyframes road-drift { from { background-position-x: 0; } to { background-position-x: 130px; } }

.annual-fuel-table-wrap { overflow-x: auto; border: 1px solid #cedbd4; border-radius: 11px; }
.annual-fuel-table { width: 100%; min-width: 920px; border-collapse: collapse; table-layout: fixed; background: white; }
.annual-fuel-table th, .annual-fuel-table td { border: 1px solid #d6dfda; padding: 6px 8px; text-align: center; white-space: nowrap; }
.annual-fuel-table th { font-size: 9px; font-weight: 950; }
.annual-fuel-table td { font-size: 10px; font-weight: 760; font-variant-numeric: tabular-nums; }
.annual-fuel-table thead .fuel-group-head th { background: #f5e8bd; color: #1c2d25; font-size: 11px; }
.annual-fuel-table thead tr:nth-child(2) th { background: #168142; color: white; }
.annual-fuel-table thead tr:nth-child(2) th:nth-child(4),
.annual-fuel-table thead tr:nth-child(2) th:nth-child(7) { background: #6f7773; }
.annual-fuel-table tbody tr:nth-child(even) { background: #f8fbf9; }
.annual-fuel-table tbody tr:hover { background: #edf7f1; }
.annual-fuel-table tbody th { background: #fbf3d7; text-align: left; padding-left: 12px; }
.annual-fuel-table tbody tr.current-history-month { background: linear-gradient(90deg,#fff9e9,#f4fbf7); box-shadow: inset 4px 0 0 var(--gold); }
.annual-fuel-table tfoot th, .annual-fuel-table tfoot td { background: #fff0be; font-weight: 950; font-size: 10px; }
.annual-fuel-table col.month-col { width: 105px; }
.fuel-pair-sparkline { display:block; width: 100%; height: 28px; overflow: visible; }
.fuel-spark-line { stroke: #5d6b65; stroke-width: 2; stroke-linecap: round; }
.fuel-spark-dot { stroke: #fff; stroke-width: 1.4; }
.fuel-spark-dot.purchase { fill: #1d7656; }
.fuel-spark-dot.sale { fill: #e33d2e; }
.annual-report-foot { display:flex; justify-content:center; align-items:center; gap: 18px; margin-top: 8px; padding: 7px 10px; background:#fff4cf; border-radius: 8px; }
.annual-report-foot span { font-size: 14px; font-weight: 950; }
.annual-report-foot small { color: var(--gray-500); font-size: 9px; }

@media (max-width: 980px) {
  .tanker-receipt-card { grid-template-columns: 1fr; text-align:center; }
  .tanker-copy { border-left: 0; border-top: 1px dashed #ccd8d2; padding: 8px 0 2px; }
  .annual-report-title-row { flex-direction: column; }
}
@media (max-width: 680px) {
  .tanker-receipts-grid { grid-template-columns: 1fr; }
  .annual-report-actions { width:100%; flex-direction:column; }
  .annual-report-actions .btn { width:100%; }
}
@media (prefers-reduced-motion: reduce) {
  .tanker-stage img, .tanker-road { animation: none !important; }
}
@media print {
  body.print-annual-fuel { background:#fff !important; }
  body.print-annual-fuel .topbar,
  body.print-annual-fuel .content > *:not(.annual-fuel-report-section),
  body.print-annual-fuel .annual-report-actions { display:none !important; }
  body.print-annual-fuel .annual-fuel-report-section {
    display:block !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
    break-inside:avoid;
  }
  body.print-annual-fuel .tanker-receipt-card,
  body.print-annual-fuel .annual-fuel-table thead .fuel-group-head th,
  body.print-annual-fuel .annual-fuel-table thead tr:nth-child(2) th,
  body.print-annual-fuel .annual-fuel-table tfoot th,
  body.print-annual-fuel .annual-fuel-table tfoot td,
  body.print-annual-fuel .annual-report-foot { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body.print-annual-fuel .tanker-stage img, body.print-annual-fuel .tanker-road { animation:none !important; }
  body.print-annual-fuel .annual-fuel-table-wrap { overflow:visible; }
  body.print-annual-fuel .annual-fuel-table { min-width:0; font-size:8px; }
}

/* v1.3.15 · Rediseño premium del reporte anual */
.annual-fuel-report-section {
  --annual-ink:#14231d;
  --annual-muted:#66746e;
  --annual-line:#dce6e1;
  --annual-super:#c99012;
  --annual-super-soft:#fff8e7;
  --annual-super-deep:#8f6100;
  --annual-premium:#176347;
  --annual-premium-soft:#eef8f3;
  --annual-premium-deep:#0d4c35;
  margin: 16px 0 20px;
  padding: 18px;
  border: 1px solid #dbe6e0;
  border-radius: 22px;
  background:
    radial-gradient(circle at 3% 0%, rgba(240,181,52,.08), transparent 26%),
    radial-gradient(circle at 98% 0%, rgba(23,99,71,.08), transparent 28%),
    #fff;
  box-shadow: 0 18px 45px rgba(22,58,43,.08);
}
.annual-report-hero {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding: 2px 2px 14px;
  border-bottom:1px solid var(--annual-line);
  margin-bottom:14px;
}
.annual-report-heading { max-width: 850px; }
.annual-report-heading .dashboard-kicker {
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--annual-premium);
  font-size:9px;
  font-weight:950;
  letter-spacing:.14em;
}
.annual-report-heading .dashboard-kicker::before {
  content:"";
  width:8px;height:8px;border-radius:50%;
  background:linear-gradient(135deg,var(--annual-super),#f7c652);
  box-shadow:0 0 0 5px rgba(201,144,18,.12);
}
.annual-report-heading h2 {
  margin:6px 0 4px;
  font-size:24px;
  line-height:1.05;
  letter-spacing:-.025em;
  color:var(--annual-ink);
}
.annual-report-heading p { margin:0; color:var(--annual-muted); font-size:10px; line-height:1.45; }
.annual-report-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.annual-report-actions .btn { min-height:38px; border-radius:10px; font-size:10px; letter-spacing:.035em; }

.tanker-receipts-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:0 0 12px;
}
.tanker-receipt-card {
  display:block;
  min-height:0;
  padding:0;
  border-radius:17px;
  border:1px solid var(--annual-line);
  overflow:hidden;
  box-shadow:0 10px 26px rgba(20,45,35,.055);
}
.tanker-receipt-card.super97 {
  border-top:0;
  background:linear-gradient(145deg,#fffdf7 0%,#fff6dd 100%);
  box-shadow:inset 0 4px 0 var(--annual-super), 0 10px 26px rgba(143,97,0,.07);
}
.tanker-receipt-card.premium91 {
  border-top:0;
  background:linear-gradient(145deg,#fbfffd 0%,#eaf7f1 100%);
  box-shadow:inset 0 4px 0 var(--annual-premium), 0 10px 26px rgba(13,76,53,.07);
}
.tanker-card-head {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  padding:11px 13px 5px;
}
.tanker-product-dot { width:10px; height:10px; border-radius:50%; background:var(--annual-premium); box-shadow:0 0 0 5px rgba(23,99,71,.09); }
.tanker-receipt-card.super97 .tanker-product-dot { background:var(--annual-super); box-shadow:0 0 0 5px rgba(201,144,18,.1); }
.tanker-card-head small { display:block; font-size:7px; line-height:1; color:var(--annual-muted); font-weight:950; letter-spacing:.1em; }
.tanker-card-head strong { display:block; margin-top:3px; color:var(--annual-ink); font-size:12px; }
.tanker-count-badge {
  display:inline-flex; align-items:center; justify-content:center;
  min-height:24px; padding:0 9px; border-radius:999px;
  background:rgba(23,99,71,.09); color:var(--annual-premium-deep);
  font-size:8px; font-weight:950; white-space:nowrap;
}
.tanker-receipt-card.super97 .tanker-count-badge { background:rgba(201,144,18,.12); color:var(--annual-super-deep); }
.tanker-card-body {
  display:grid;
  grid-template-columns:minmax(190px,.95fr) minmax(180px,1.05fr);
  align-items:center;
  min-height:112px;
  padding:0 12px 11px;
}
.tanker-stage { height:96px; }
.tanker-stage img {
  width:min(100%,290px);
  max-height:92px;
  filter:drop-shadow(0 10px 9px rgba(20,40,32,.2));
  animation:tanker-premium-idle 4.2s ease-in-out infinite;
}
.tanker-road { bottom:4px; height:4px; opacity:.6; }
.tanker-volume-block {
  padding:10px 0 10px 18px;
  border-left:1px dashed rgba(62,91,78,.25);
}
.tanker-volume-block > span { display:block; color:var(--annual-muted); font-size:8px; font-weight:950; letter-spacing:.08em; }
.tanker-volume-block b {
  display:block;
  margin-top:5px;
  color:var(--annual-premium-deep);
  font-size:29px;
  line-height:1;
  letter-spacing:-.035em;
  font-variant-numeric:tabular-nums;
}
.tanker-receipt-card.super97 .tanker-volume-block b { color:var(--annual-super-deep); }
.tanker-volume-block b em { font-size:13px; font-style:normal; letter-spacing:0; }
.tanker-volume-block small { display:block; margin-top:7px; color:var(--annual-muted); font-size:8px; }
.tanker-receipt-card.no-dispatch .tanker-stage img { filter:grayscale(.18) opacity(.85) drop-shadow(0 8px 8px rgba(20,40,32,.14)); }
@keyframes tanker-premium-idle { 0%,100%{transform:translateX(-2px) translateY(1px)} 50%{transform:translateX(4px) translateY(-2px)} }

.annual-products-summary-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:0 0 10px;
}
.annual-product-summary {
  position:relative;
  overflow:hidden;
  padding:13px 14px 12px;
  border:1px solid var(--annual-line);
  border-radius:15px;
  background:#fff;
}
.annual-product-summary::after {
  content:""; position:absolute; inset:auto -45px -55px auto; width:140px; height:140px; border-radius:50%; opacity:.08;
  background:currentColor;
}
.annual-product-summary.super97 { color:var(--annual-super-deep); background:linear-gradient(145deg,#fffdf8,#fff9ea); border-color:#ecdcae; }
.annual-product-summary.premium91 { color:var(--annual-premium-deep); background:linear-gradient(145deg,#fbfffd,#f1f9f5); border-color:#cfe4da; }
.annual-product-summary-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.annual-product-summary-head span { display:block; font-size:7px; font-weight:950; letter-spacing:.11em; opacity:.72; }
.annual-product-summary-head strong { display:block; margin-top:3px; color:var(--annual-ink); font-size:15px; }
.annual-balance-pill { padding:5px 8px; border-radius:999px; background:rgba(23,99,71,.1); color:var(--annual-premium-deep); font-size:9px; white-space:nowrap; }
.annual-balance-pill.negative { background:#fff0ec; color:#a83a28; }
.annual-product-summary-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:11px; }
.annual-product-summary-metrics > div { padding:8px 9px; border-radius:10px; background:rgba(255,255,255,.68); border:1px solid rgba(92,119,106,.1); }
.annual-product-summary-metrics small { display:block; color:var(--annual-muted); font-size:7px; font-weight:900; }
.annual-product-summary-metrics b { display:block; margin-top:3px; color:var(--annual-ink); font-size:12px; font-variant-numeric:tabular-nums; }
.annual-ratio-track { height:5px; margin-top:10px; border-radius:999px; background:rgba(80,105,93,.11); overflow:hidden; }
.annual-ratio-track span { display:block; height:100%; min-width:2px; border-radius:inherit; background:currentColor; box-shadow:0 0 10px currentColor; }

.annual-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0 0 13px; }
.annual-kpi-card {
  position:relative;
  min-height:64px;
  padding:10px 11px;
  border:1px solid #dfe8e3;
  border-radius:12px;
  background:#fff;
  overflow:hidden;
}
.annual-kpi-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--annual-premium); }
.annual-kpi-card.super97::before { background:var(--annual-super); }
.annual-kpi-card span { display:block; color:var(--annual-muted); font-size:7px; font-weight:950; letter-spacing:.08em; }
.annual-kpi-card strong { display:block; margin-top:7px; color:var(--annual-ink); font-size:15px; font-variant-numeric:tabular-nums; }
.annual-kpi-card strong em { font-size:8px; font-style:normal; color:var(--annual-muted); }
.annual-kpi-card small { color:var(--annual-muted); font-size:7px; }

.annual-table-heading { display:flex; justify-content:space-between; align-items:end; gap:12px; margin:4px 2px 7px; }
.annual-table-heading span { display:block; color:var(--annual-premium); font-size:7px; font-weight:950; letter-spacing:.11em; }
.annual-table-heading strong { display:block; margin-top:2px; color:var(--annual-ink); font-size:13px; }
.annual-table-legend { display:flex; align-items:center; gap:6px; color:var(--annual-muted); font-size:7px; font-weight:900; }
.annual-table-legend i { width:8px; height:8px; border-radius:50%; background:#1d7656; }
.annual-table-legend i.sale { background:#e8a629; }
.annual-table-legend i.balance { background:#5f6f67; }

.annual-fuel-table-wrap {
  overflow:auto;
  border:1px solid #d7e2dc;
  border-radius:14px;
  box-shadow:inset 0 1px 0 #fff;
  background:#fff;
}
.annual-fuel-table { min-width:980px; border:0; }
.annual-fuel-table th,.annual-fuel-table td { border-color:#dde6e1; padding:7px 9px; }
.annual-fuel-table thead .fuel-group-head th {
  padding:8px 9px;
  background:#f7f2e5;
  color:var(--annual-ink);
  font-size:10px;
  letter-spacing:.04em;
}
.annual-fuel-table thead .fuel-group-head .super-group { background:linear-gradient(135deg,#f7e6b7,#fff4d4); color:#765000; }
.annual-fuel-table thead .fuel-group-head .premium-group { background:linear-gradient(135deg,#dff0e8,#eff9f4); color:#0b563a; }
.annual-fuel-table thead tr:nth-child(2) th { background:#196647; font-size:8px; letter-spacing:.055em; }
.annual-fuel-table thead tr:nth-child(2) th:nth-child(-n+3) { background:#b6810d; }
.annual-fuel-table thead tr:nth-child(2) th:nth-child(4),
.annual-fuel-table thead tr:nth-child(2) th:nth-child(7) { background:#4e5f57; }
.annual-fuel-table tbody tr { transition:background .16s ease, transform .16s ease; }
.annual-fuel-table tbody tr:nth-child(even) { background:#fbfcfb; }
.annual-fuel-table tbody tr:hover { background:#f3f9f6; }
.annual-fuel-table tbody th {
  position:relative;
  min-width:86px;
  padding-left:13px;
  background:#fffaf0;
  color:#25352e;
  text-align:left;
}
.annual-month-label { font-size:9px; font-weight:950; letter-spacing:.035em; }
.annual-current-badge { display:inline-flex; margin-left:6px; padding:2px 5px; border-radius:999px; background:#f0b435; color:#493000; font-size:6px; font-weight:950; vertical-align:middle; }
.annual-fuel-table tbody tr.current-history-month { background:linear-gradient(90deg,#fff9e7 0%,#fffdf8 36%,#f5fbf8 100%); box-shadow:inset 4px 0 0 #e4ab2f; }
.annual-data { position:relative; font-size:9px!important; font-weight:850!important; }
.annual-cell-caption { display:none; }
.annual-data.super-data { background:rgba(255,248,226,.28); }
.annual-data.premium-data { background:rgba(236,248,242,.28); }
.annual-trend-cell { position:relative; padding-right:47px!important; }
.annual-delta {
  position:absolute; right:7px; top:50%; transform:translateY(-50%);
  min-width:39px; padding:3px 4px; border-radius:6px;
  background:#eaf5ef; color:#166044; font-size:6px; font-weight:950;
}
.annual-delta.negative { background:#fff0ed; color:#ac3a29; }
.fuel-pair-sparkline { height:30px; }
.fuel-spark-line { stroke:#738078; stroke-width:2.2; }
.fuel-spark-dot.purchase { fill:#176347; }
.fuel-spark-dot.sale { fill:#e5a326; }
.annual-fuel-table tfoot th,.annual-fuel-table tfoot td {
  padding:9px;
  background:linear-gradient(180deg,#fff4cf,#ffefb8);
  color:#1d2c25;
  font-size:9px;
  border-color:#e4d8af;
}
.annual-report-foot {
  justify-content:space-between;
  margin-top:9px;
  padding:8px 11px;
  border:1px solid #efe0b0;
  background:linear-gradient(90deg,#fff5d8,#fffaf0);
}
.annual-report-foot span { color:#5f4607; font-size:12px; letter-spacing:.07em; }
.annual-report-foot small { font-size:8px; }

@media (max-width:1100px) {
  .annual-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tanker-card-body { grid-template-columns:1fr; }
  .tanker-volume-block { border-left:0; border-top:1px dashed rgba(62,91,78,.22); padding:9px 3px 5px; text-align:center; }
}
@media (max-width:780px) {
  .annual-report-hero { flex-direction:column; }
  .annual-report-actions { width:100%; }
  .annual-report-actions .btn { flex:1; }
  .tanker-receipts-grid,.annual-products-summary-grid { grid-template-columns:1fr; }
  .annual-product-summary-metrics { grid-template-columns:1fr 1fr; }
  .annual-product-summary-metrics > div:last-child { grid-column:1/-1; }
  .annual-table-heading { align-items:flex-start; flex-direction:column; }
}
@media (max-width:520px) {
  .annual-fuel-report-section { padding:11px; border-radius:16px; }
  .annual-report-heading h2 { font-size:20px; }
  .annual-kpi-grid { grid-template-columns:1fr 1fr; gap:6px; }
  .tanker-card-head { grid-template-columns:auto 1fr; }
  .tanker-count-badge { grid-column:1/-1; justify-self:start; margin-left:19px; }
}
@media (prefers-reduced-motion:reduce) {
  .tanker-stage img,.tanker-road { animation:none!important; }
}
@media print {
  @page { size: landscape; margin:8mm; }
  body.print-annual-fuel .annual-fuel-report-section { padding:0!important; background:#fff!important; }
  body.print-annual-fuel .annual-report-hero { margin-bottom:6px; padding-bottom:6px; }
  body.print-annual-fuel .tanker-receipts-grid { grid-template-columns:1fr 1fr!important; gap:6px; margin-bottom:6px; }
  body.print-annual-fuel .tanker-card-body { grid-template-columns:1fr 1fr!important; min-height:74px; padding-bottom:4px; }
  body.print-annual-fuel .tanker-stage { height:66px; }
  body.print-annual-fuel .tanker-stage img { max-height:62px; }
  body.print-annual-fuel .tanker-volume-block b { font-size:18px; }
  body.print-annual-fuel .annual-products-summary-grid { grid-template-columns:1fr 1fr!important; gap:6px; margin-bottom:5px; }
  body.print-annual-fuel .annual-product-summary { padding:7px 8px; }
  body.print-annual-fuel .annual-product-summary-metrics { margin-top:5px; gap:4px; }
  body.print-annual-fuel .annual-product-summary-metrics > div { padding:4px 5px; }
  body.print-annual-fuel .annual-kpi-grid { display:none!important; }
  body.print-annual-fuel .annual-table-heading { margin:2px 0 3px; }
  body.print-annual-fuel .annual-fuel-table { min-width:0!important; }
  body.print-annual-fuel .annual-fuel-table th,body.print-annual-fuel .annual-fuel-table td { padding:3px 4px!important; font-size:7px!important; }
  body.print-annual-fuel .fuel-pair-sparkline { height:18px; }
  body.print-annual-fuel .annual-delta { font-size:5px; padding:1px 2px; right:2px; }
  body.print-annual-fuel .annual-trend-cell { padding-right:34px!important; }
  body.print-annual-fuel .annual-report-foot { margin-top:4px; padding:4px 7px; }
}

/* v1.3.16 · Centro de seguridad */
.security-summary-grid { grid-template-columns: repeat(6, minmax(150px, 1fr)); }
.security-summary-grid .summary-card { min-height: 92px; border-top: 4px solid #0f5b43; }
.security-summary-grid .summary-card.warning { border-top-color: #e6a526; background: #fffaf0; }
.security-summary-grid .summary-card.danger { border-top-color: #b42318; background: #fff5f4; }
.security-summary-grid .summary-card.success { border-top-color: #18864b; background: #f2fbf5; }
.security-2fa-card { border-left: 5px solid #0f5b43; }
.security-secret {
  padding: 14px 16px; margin: 12px 0; border-radius: 10px; border: 1px dashed #0f5b43;
  background: #eef8f3; font: 700 18px/1.3 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: 1.6px; word-break: break-all; user-select: all;
}
.security-agent { max-width: 420px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.form-warning { padding: 10px 12px; background: #fff3cd; border: 1px solid #e3bd55; border-radius: 8px; color: #654b00; }
.btn.danger { background: #9f241a; border-color: #9f241a; color: #fff; }
.btn.danger:hover { background: #7e1c14; }
@media (max-width: 1350px) { .security-summary-grid { grid-template-columns: repeat(3, minmax(160px, 1fr)); } }
@media (max-width: 760px) { .security-summary-grid { grid-template-columns: repeat(2, minmax(130px, 1fr)); } .security-agent { max-width: 220px; } }

.security-page-head {
  margin-bottom: 10px;
}

.security-tabs {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}

.security-tab-btn {
  border: 1px solid rgba(17, 73, 61, 0.16);
  background: #fff;
  color: var(--primary);
  border-radius: 999px;
  padding: 9px 14px;
  font-weight: 700;
  cursor: pointer;
}

.security-tab-btn.active {
  background: var(--primary);
  color: #fff;
}

.security-overview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}

.security-kpi-card {
  background: #fff;
  border: 1px solid rgba(17, 73, 61, 0.08);
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
}

.security-kpi-card span {
  display: block;
  font-size: 0.9rem;
  color: var(--muted);
  margin-bottom: 4px;
}

.security-kpi-card strong {
  display: block;
  font-size: 1.55rem;
  line-height: 1.1;
  margin-bottom: 4px;
}

.security-kpi-card small {
  color: var(--muted);
}

.security-kpi-card.warning {
  border-color: rgba(194, 122, 0, 0.3);
}

.security-kpi-card.danger {
  border-color: rgba(183, 28, 28, 0.3);
}

.security-kpi-card.success {
  border-color: rgba(25, 135, 84, 0.3);
}

.compact-card {
  padding-top: 18px;
  padding-bottom: 18px;
}

.security-checklist,
.security-tips {
  display: grid;
  gap: 10px;
}

.security-tips {
  margin: 0;
  padding-left: 18px;
}

.security-tips li.warning {
  color: #946200;
  font-weight: 600;
}

.history-filter-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  align-items: end;
  margin-bottom: 14px;
}

.history-search-field {
  grid-column: span 2;
}

.history-filter-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

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

.module-control-card {
  border: 1px solid rgba(17, 73, 61, 0.1);
  border-radius: 16px;
  padding: 14px;
  display: grid;
  gap: 12px;
  background: #fff;
}

.module-control-card h3 {
  margin: 0 0 4px;
}

.module-control-card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
}

.module-control-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.toggle-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(17, 73, 61, 0.16);
  border-radius: 999px;
  padding: 8px 12px;
  font-weight: 600;
  background: #f8faf9;
}

.toggle-chip.static {
  opacity: 0.75;
}

.toggle-chip input {
  margin: 0;
}

@media (max-width: 900px) {
  .history-search-field {
    grid-column: span 1;
  }
}

.master-data-warning {
  margin-bottom: 14px;
}

.master-data-table td,
.master-data-table th {
  vertical-align: middle;
}

.data-source-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 8px;
  background: #eef6f2;
  color: #0f5d46;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.master-data-explain p {
  margin: 5px 0 0;
  color: var(--muted);
}

.span-2 {
  grid-column: span 2;
}

.modal-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  flex-wrap: wrap;
}

@media (max-width: 760px) {
  .span-2 {
    grid-column: span 1;
  }
}

.master-data-layout {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 16px;
}
.master-data-table-list {
  display: grid;
  align-content: start;
  gap: 7px;
  max-height: 720px;
  overflow: auto;
  padding-right: 4px;
}
.master-data-table-btn {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  width: 100%;
  border: 1px solid #dce8e3;
  background: #fff;
  border-radius: 10px;
  padding: 10px 12px;
  text-align: left;
  font-weight: 700;
  color: #123c31;
  cursor: pointer;
}
.master-data-table-btn small {
  background: #edf4f1;
  padding: 3px 7px;
  border-radius: 999px;
}
.master-data-table-btn.active {
  background: #0d4c3a;
  color: #fff;
  border-color: #0d4c3a;
}
.master-data-table-btn.active small {
  background: rgba(255,255,255,.16);
}
.master-data-content { min-width: 0; }
.master-explorer-search {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}
.master-explorer-search input { flex: 1; }
.master-data-wide-table { max-height: 610px; }
.master-data-wide-table table { white-space: nowrap; font-size: .82rem; }
.master-data-wide-table th { position: sticky; top: 0; z-index: 2; }
.backup-action-grid { margin-bottom: 14px; }
.backup-upload-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.backup-upload-row input { flex: 1; min-width: 260px; }
@media (max-width: 900px) {
  .master-data-layout { grid-template-columns: 1fr; }
  .master-data-table-list { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 280px; }
}

/* v1.3.20 · Súper Premium: ganancias y comparación por fuente */
.super-profit-section {
  margin: 14px 0;
  padding: 18px;
  border-radius: 18px;
  border: 1px solid rgba(17, 73, 61, .10);
  background: linear-gradient(135deg, #f8fbf9 0%, #fffaf0 100%);
  box-shadow: 0 10px 28px rgba(16, 63, 52, .06);
}

.super-profit-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.super-profit-head h2 {
  margin: 2px 0 0;
}

.profit-margin-pill {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 10px 12px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(17, 73, 61, .12);
}

.profit-margin-pill span {
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .05em;
  color: var(--muted);
}

.profit-margin-pill strong {
  font-size: 1.15rem;
}

.super-profit-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.super-profit-card {
  min-height: 112px;
  padding: 16px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(17, 73, 61, .10);
  border-top: 4px solid #1f7a5a;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
}

.super-profit-card.invoice { border-top-color: #e3a62f; }
.super-profit-card.electronic { border-top-color: #2369c9; }
.super-profit-card.measurement { border-top-color: #1f7a5a; }

.super-profit-card span {
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .05em;
  color: var(--muted);
}

.super-profit-card strong {
  font-size: clamp(1.3rem, 2vw, 2rem);
  line-height: 1.05;
}

.super-profit-card small {
  color: var(--muted);
  font-weight: 600;
}

@media (max-width: 900px) {
  .super-profit-grid { grid-template-columns: 1fr; }
  .super-profit-head { align-items: flex-start; flex-direction: column; }
}

/* v1.3.21 · Control Súper Premium por período */
.super-period-panel {
  max-width: 760px;
  margin-left: auto;
}
.super-period-form {
  display: flex;
  align-items: end;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  padding: 8px;
  border: 1px solid rgba(17,73,61,.12);
  border-radius: 14px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 6px 20px rgba(15,61,50,.05);
}
.super-period-form .field { min-width: 125px; margin: 0; }
.super-period-form .field label { font-size: 9px; letter-spacing: .06em; }
.super-period-form input,
.super-period-form select { min-height: 36px; }
.super-premium-control-grid { grid-template-columns: repeat(3,minmax(180px,1fr)); }
.super-availability-note {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3px 18px;
  align-items: center;
  padding: 11px 14px;
  border-radius: 13px;
  border: 1px solid rgba(17,73,61,.12);
  background: linear-gradient(90deg,#eef8f3,#fffaf0);
}
.super-availability-note span {
  grid-row: 1 / span 2;
  align-self: center;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
  color: #176344;
}
.super-availability-note strong { font-size: 14px; }
.super-availability-note small { color: var(--muted); font-size: 10px; }
.super-profit-card small { line-height: 1.35; }
@media (max-width: 1100px) {
  .super-period-panel { max-width: none; width: 100%; }
  .super-period-form { justify-content: flex-start; }
  .super-premium-control-grid { grid-template-columns: repeat(2,minmax(170px,1fr)); }
}
@media (max-width: 680px) {
  .super-period-form { display: grid; grid-template-columns: 1fr 1fr; }
  .super-period-form .field { min-width: 0; }
  .super-premium-control-grid { grid-template-columns: 1fr; }
  .super-availability-note { grid-template-columns: 1fr; }
  .super-availability-note span { grid-row: auto; }
}

/* v1.3.22 - Cobertura de facturas Súper Premium */
.deposit-rule-banner {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr)) minmax(260px, 1.4fr);
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
  padding: 14px 16px;
  border: 1px solid rgba(8, 76, 60, .12);
  border-radius: 16px;
  background: linear-gradient(135deg, #f7fbf9 0%, #fffaf0 100%);
}
.deposit-rule-banner > div { display: flex; flex-direction: column; gap: 3px; }
.deposit-rule-banner span { font-size: .68rem; letter-spacing: .08em; font-weight: 800; color: #527168; }
.deposit-rule-banner strong { font-size: 1.1rem; color: #0c4939; }
.deposit-rule-banner small { color: #63716d; line-height: 1.35; }

.invoice-coverage-hero {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 22px;
  align-items: center;
  padding: 20px 22px;
  margin-bottom: 14px;
  border-radius: 18px;
  background: linear-gradient(135deg, #0b513d 0%, #1b6a4e 65%, #9a7a1f 150%);
  color: #fff;
  box-shadow: 0 12px 28px rgba(9, 63, 49, .12);
}
.invoice-coverage-hero h2 { margin: 4px 0 5px; color: #fff; }
.invoice-coverage-hero p { margin: 0; color: rgba(255,255,255,.84); max-width: 820px; }
.invoice-coverage-hero .section-kicker { color: #ffd86b; }
.coverage-ring {
  --coverage: 0;
  width: 112px;
  height: 112px;
  border-radius: 50%;
  display: grid;
  place-content: center;
  text-align: center;
  background: radial-gradient(circle at center, #175f47 0 57%, transparent 58%), conic-gradient(#f5bf43 calc(var(--coverage) * 1%), rgba(255,255,255,.2) 0);
  border: 1px solid rgba(255,255,255,.2);
}
.coverage-ring strong { font-size: 1.35rem; }
.coverage-ring span { font-size: .62rem; font-weight: 800; letter-spacing: .08em; opacity: .85; }

.invoice-coverage-metrics { margin-bottom: 14px; }
.coverage-status-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.coverage-status-strip > div {
  padding: 14px 16px;
  border: 1px solid rgba(8, 76, 60, .12);
  border-radius: 14px;
  background: #fff;
}
.coverage-status-strip span { display: block; color: #557169; font-size: .68rem; letter-spacing: .06em; font-weight: 800; margin-bottom: 3px; }
.coverage-status-strip strong { display: block; color: #0b4938; font-size: 1rem; }
.coverage-status-strip small { display: block; margin-top: 3px; color: #6b7773; }

.coverage-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 82px;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .04em;
}
.coverage-badge.paid { background: #dcf5e8; color: #087047; }
.coverage-badge.partial { background: #fff0c9; color: #9a6500; }
.coverage-badge.pending { background: #eef2f1; color: #66736e; }
.coverage-table td, .coverage-table th { vertical-align: middle; }

.deposit-allocation-list { display: grid; gap: 9px; }
.deposit-allocation-item {
  border: 1px solid rgba(8, 76, 60, .12);
  border-radius: 13px;
  background: #fff;
  overflow: hidden;
}
.deposit-allocation-item summary {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 12px 14px;
  cursor: pointer;
  list-style: none;
  background: #fbfcfc;
}
.deposit-allocation-item summary::-webkit-details-marker { display: none; }
.deposit-allocation-item summary > div { display: flex; flex-direction: column; gap: 2px; }
.deposit-allocation-item summary > div:last-child { text-align: right; }
.deposit-allocation-item summary span, .deposit-allocation-item summary small { color: #6b7773; }
.deposit-allocation-detail { padding: 9px 14px 13px; border-top: 1px solid #edf1ef; }
.deposit-allocation-detail > div { display: flex; justify-content: space-between; gap: 14px; padding: 7px 0; border-bottom: 1px dashed #e5ebe8; }
.deposit-allocation-detail > div:last-child { border-bottom: 0; }
.deposit-allocation-detail p { margin: 4px 0; color: #6b7773; }

@media (max-width: 850px) {
  .deposit-rule-banner { grid-template-columns: 1fr; }
  .invoice-coverage-hero { grid-template-columns: 1fr; }
  .coverage-ring { width: 94px; height: 94px; }
  .coverage-status-strip { grid-template-columns: 1fr; }
}

/* v1.3.23 · Recuperación de reserva antes de ganancia real */
.reserve-recovery-banner {
  display: grid;
  grid-template-columns: 190px 240px minmax(280px, 1fr);
  gap: 12px;
  margin-bottom: 14px;
  padding: 14px;
  border-radius: 16px;
  background: linear-gradient(135deg, #fff8df 0%, #f5fbf8 100%);
  border: 1px solid rgba(202, 145, 31, .22);
}

.reserve-recovery-banner > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.reserve-recovery-banner span {
  color: var(--muted);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .04em;
}

.reserve-recovery-banner strong {
  font-size: 1.15rem;
}

.reserve-recovery-explanation {
  padding-left: 14px;
  border-left: 2px solid rgba(31, 122, 90, .22);
}

.reserve-recovery-explanation strong {
  color: var(--primary);
}

.profit-recovery-card {
  justify-content: flex-start;
  min-height: 255px;
}

.profit-card-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.profit-recovery-status {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 5px 8px;
  font-size: .64rem !important;
  font-weight: 900 !important;
  letter-spacing: .03em !important;
}

.profit-recovery-status.covered {
  color: #11613f !important;
  background: #e7f7ef;
}

.profit-recovery-status.recovering {
  color: #8a5900 !important;
  background: #fff1c9;
}

.profit-recovery-breakdown {
  display: grid;
  gap: 0;
  margin-top: 8px;
  border-top: 1px solid rgba(17, 73, 61, .10);
}

.profit-recovery-breakdown > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px dashed rgba(17, 73, 61, .10);
}

.profit-recovery-breakdown span {
  font-size: .72rem;
  letter-spacing: 0;
  font-weight: 700;
}

.profit-recovery-breakdown b {
  white-space: nowrap;
  font-size: .82rem;
}

@media (max-width: 980px) {
  .reserve-recovery-banner { grid-template-columns: 1fr 1fr; }
  .reserve-recovery-explanation { grid-column: 1 / -1; padding-left: 0; padding-top: 10px; border-left: 0; border-top: 2px solid rgba(31, 122, 90, .15); }
}

@media (max-width: 640px) {
  .reserve-recovery-banner { grid-template-columns: 1fr; }
  .reserve-recovery-explanation { grid-column: auto; }
}
